Re: argp: Correct documentation

2022-12-07 Thread Alfred M. Szmidt
   You can do advocacy of GNU and the GNU system in many places. But lists of
   platforms in *technical documentation* are not the proper place to do so.

That is incorrect, it is an excellent place to do so.  Our guidelines
also do not differentiate between technical documentation, and other
places.

   > We avoid
   > mentioning them out of principle, since we do not want to promote
   > them.

   Are you saying that it *promotes* HP-UX, to state that HP-UX 11 lacks
   a certain variable?

Mentioning irrelevant, or obsolete platforms, does proomote them.
Please refer to the GNU Coding Standards, and GNU Maintainer guide.

I think it is best that this is brought up with RMS directly, since
that you're being antagonistic as per usual.



Re: argp: Correct documentation

2022-12-07 Thread Alfred M. Szmidt
The gnulib documentation calls the GNU based systems for "glibc
platform"; I suggested that this was changed but only got unfriendly
pushback from Bruno.

The gnulib manual uses the phrase to detonate a list of operating
systems, for example

  Portability problems fixed by Gnulib:
  @itemize
  @item
  This variable is missing on all non-glibc platforms:
  macOS 11.1, FreeBSD 13.0, NetBSD 9.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, 
HP-UX 11, IRIX 6.5, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
  @end itemize

  Portability problems not fixed by Gnulib:
  @itemize
  @end itemize

The suggestion was to use "GNU systems" or similar wording.

   Alfred M. Szmidt wrote:
   > 
   >Alfred M. Szmidt wrote:
   >> Does a system become a `glibc platform' if one uses gnulib?
   > 
   >No, it doesn't, because
   >  - the term 'platform' or 'system' denotes the basic OS + base 
libraries,
   >  - Gnulib does not emcompass glibc.
   > 
   > Ok, so you agree that there is no such thing as a "glibc platform",
   > seeing that glibc is not "basic OS + base libraries".  So it makes
   > sense to not use that term.

   It's pointless to do hairsplitting like this. We use the term "platform"
   extensively in the Gnulib documentation for 15 years:
 https://www.gnu.org/software/gnulib/manual/html_node/Target-Platforms.html
   and no one has ever asked for a definition, nor reported that this 
documentation
   was ambiguous.

   >> I could not find this decision in those two references, both are pages
   >> from Debian, and nothing from RMS on the topic.
   > 
   >You can trust my memory on this statement, even though I can't find
   >the precise mail where RMS announced this decision. It was probably
   >in 2001.
   > 
   > It has little to do with trust, if there is such an "announcment" it
   > would be useful to put it up on gnu.org.

   There is at least this FAQ on gnu.org: https://www.gnu.org/non-gnu/glibc-bsd/

   > What matters is the GNU project, and what we say.

   You can do advocacy of GNU and the GNU system in many places. But lists of
   platforms in *technical documentation* are not the proper place to do so.

   > The text over all is messy on other points as well:
   > 
   >Portability problems fixed by Gnulib:
   >@itemize
   >   +@item
   >   +This variable is missing on all non-glibc platforms:
   >   +macOS 11.1, FreeBSD 13.0, NetBSD 9.0, OpenBSD 6.7, Minix 3.1.8, AIX 
5.1, HP-UX 11, IRIX 6.5, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
   >   
   >   ...
   > 
   > Does this mean that FreeBSD 12 supports it?  What amount Minix 2?

   These questions are irrelevant. Any Gnulib user will want portability
   to FreeBSD versions ≥ X, where X depends. Therefore, if they want
   portability to FreeBSD 12, they will also want portability to FreeBSD 13.
   If a feature is not available on FreeBSD 13, it therefore does not
   matter whether it is present on FreeBSD 12, 11, 6.4, or 1.0.

   > Are
   > these "all" the platforms, seeing that it is an exhaustive list in
   > detail.

   See 
https://www.gnu.org/software/gnulib/manual/html_node/Target-Platforms.html

   > We avoid
   > mentioning them out of principle, since we do not want to promote
   > them.

   Are you saying that it *promotes* HP-UX, to state that HP-UX 11 lacks
   a certain variable?

   > Why isn't freedos listed?

   See 
https://www.gnu.org/software/gnulib/manual/html_node/Target-Platforms.html

   > Is this list manually updated each,
   > and every time those companies or projects make a release? That seems
   > like useless churn.

   Please leave it up to me, to decide on what tasks/patches I spend or waste
   my time. I don't comment publicly on the cost/benefit ratio of your tasks/
   patches either.

   Bruno








Re: argp: Correct documentation

2022-12-07 Thread Alfred M. Szmidt


   Alfred M. Szmidt wrote:
   > Does a system become a `glibc platform' if one uses gnulib?

   No, it doesn't, because
 - the term 'platform' or 'system' denotes the basic OS + base libraries,
 - Gnulib does not emcompass glibc.

Ok, so you agree that there is no such thing as a "glibc platform",
seeing that glibc is not "basic OS + base libraries".  So it makes
sense to not use that term.  I suspect that you find it clear since
you came up with it, to others it is not as clear.

   > I could not find this decision in those two references, both are pages
   > from Debian, and nothing from RMS on the topic.

   You can trust my memory on this statement, even though I can't find
   the precise mail where RMS announced this decision. It was probably
   in 2001.

It has little to do with trust, if there is such an "announcment" it
would be useful to put it up on gnu.org.  I do not recall any such
thing from RMS having been announced around that time, or at all.

   >  - Is Alpine Linux a GNU system? (It uses musl libc instead of glibc.) 
[4]
   > 
   > No, Alpine is not based on the GNU system ...
   > 
   >  - Is Windows with WSL and a GNU distro a GNU system? [5][6]
   > 
   > Windows is the operating system here, that is what your computer is
   > running.  Just becaues you run another operating system inside an
   > existing one, doesn't mean that one becomes the other.  

   While you can answer these questions (and I agree with the answers), the mere
   fact that these questions appear on reddit shows that the term "GNU system"
   is not as unambiguous as one might wish.

What reddit, or some other nasty fourm shows does not make something
ambiguous.  What matters is the GNU project, and what we say.  Seeing
that you yourself could answer these two questions, we can agree that
there is little ambigiousity in what constitutes the GNU system.

Overall, the GNU system is not "based on the 'glibc platfrom'", and
lets avoid using that term.  We have far clearer ones, like the 'GNU
system' to use that has wide acceptance in the GNU project, but also
outside.


The text over all is messy on other points as well:

   Portability problems fixed by Gnulib:
   @itemize
  +@item
  +This variable is missing on all non-glibc platforms:
  +macOS 11.1, FreeBSD 13.0, NetBSD 9.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, 
HP-UX 11, IRIX 6.5, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
  
  ...

Does this mean that FreeBSD 12 supports it?  What amount Minix 2?  Are
these "all" the platforms, seeing that it is an exhaustive list in
detail.  Will one list other obscure non-free platforms?  We avoid
mentioning them out of principle, since we do not want to promote
them.  Why isn't freedos listed?  Is this list manually updated each,
and every time those companies or projects make a release? That seems
like useless churn.  Etc 



Re: argp: Correct documentation

2022-12-06 Thread Alfred M. Szmidt
   >+This variable is missing on all non-glibc platforms:
   > 
   > How about we just say "non-GNU systems" -- the majority of operating
   > systems in the world are 'non-glibc platforms', and there is no
   > platform that is called 'glibc'.  Our system is called GNU after
   > all...

   First, "glibc platforms" and "GNU systems" are not the same thing.

True, since there is nothing like a "glibc platform", it is a bad term
that has no good meaning.  

The text reads strangley anyway, if you use gnulib (or via some other
means, in the case of argp there used to be a libargp that was
portable across many systems) on a operating system that does not use
the GNU C Library, then .. it does exist.  But the text claims that it
does not.

Does a system become a `glibc platform' if one uses gnulib? Seeing
that all or most of the things glibc provides, so does gnulib.

 * RMS decided that the NetBSD kernel, plus the NetBSD libc, plus GNU
   userland is a GNU system and to be called "GNU/NetBSD". [1]
   Whereas the NetBSD kernel, plus glibc, plus GNU userland is to be
   called "GNU/kNetBSD". [2]

I could not find this decision in those two references, both are pages
from Debian, and nothing from RMS on the topic.

 * According to the definition of GNU system [3], it looks like a
   distro based on Linux, glibc, and lots of proprietary software
   would not be a GNU system.

   Second, in technical documentation, I prefer to have unambiguous terms,
   and there is ambiguity in the term "GNU system":

We have plenty of texts that clear up any ambiguity, where as there is
nothing on 'glibc platform'.  There is little ambiguity about what it
means, and even if it did the little extra is worth to mention our own
operating system in a list of other operating systems.

 - Is Alpine Linux a GNU system? (It uses musl libc instead of glibc.) [4]

No, Alpine is not based on the GNU system, much like Android. See
https://www.gnu.org/philosophy/android-and-users-freedom.en.html

 - Is Windows with WSL and a GNU distro a GNU system? [5][6]

Windows is the operating system here, that is what your computer is
running.  Just becaues you run another operating system inside an
existing one, doesn't mean that one becomes the other.  




Re: argp: Correct documentation

2022-12-06 Thread Alfred M. Szmidt
Portability problems fixed by Gnulib:
@itemize
   +@item
   +This variable is missing on all non-glibc platforms:

How about we just say "non-GNU systems" -- the majority of operating
systems in the world are 'non-glibc platforms', and there is no
platform that is called 'glibc'.  Our system is called GNU after
all...



Re: license: comma or semicolon?

2022-01-05 Thread Alfred M. Szmidt
The historical reason for this is that GNU GPL version 2 used a
semi-colon, while GNU GPL version 3 changed it to a comma.  

When the license notices got updated, the normal way of doing so was
to replace 2 with 3, and not much more in source files or running M-x
copyright-update or something (I forgot the name, or even if it
existed) in Emacs.



Re: egrep, fgrep, and install-info

2020-12-26 Thread Alfred M. Szmidt
   2) For 'install-info', what would be the replacement? Even though
   Automake knows how to handle its absence [1], it would be good to
   know.

On systems where install-info is lacking, we simply don't install a
node entry in the dir file and continue with the post-install.  This
is a slightly different behaviour than what we have for other programs
which we generally consider a hard error.  E.g., if you don't have
grep -E, and no egrep or some other such ... you're shit outta luck.



Re: cmp/diff

2020-12-26 Thread Alfred M. Szmidt


   On 12/26/20 4:07 PM, Alfred M. Szmidt wrote:
   > install-info does not have an replacement, like say egrep/fgrep --
   > this is how we install a dir entry for a info manual.  Removing
   > install-info would be a regression.

   In practice, GNU installation procedures use install-info in the
   way that's described in the proposed patch: they test whether
   install-info is available, and if so they use it.  The
   make-stds.texi file already recomments this practice in its
   "Standard Targets" section. The proposed patch is doing merely
   making make-stds coherent; it's not advocating any change to
   existing best practice for install-info.

The example entry in '(standards) Standard Targets' is I think
orthogonal, it is for the benefit of the user where installing the
node entry is not considered an error but only a "warning" (and then
some extra checks because we want to treat real errors as such).
Which is quite different from the behaviour we have for other programs
-- if you are missing md5sum (or even fgrep) you'd get a hard error.

So I really don't see how it makes it coherent, having install-info as
a "safe" requirement makes logical sense since our prefered
documentation format is info (the original rationale for removing
install-info was "its GNU specific"), and why we do some extra sanity
checks is to be nice to the user.  The change also removes
install-info the only rule where it makes sense to use install-info --
post-installation.




Re: cmp/diff

2020-12-26 Thread Alfred M. Szmidt
   >> Looking at that list now, the only obvious tool to remove is egrep,
   >> since 'grep -E' subsumes it nowadays.
   > Yes, I think that should be dropped.

Maybe from usage in scripts or Makefile, but from a users point these
do not replace "grep -E" or "grep -F" which are far more annoying to
type than egrep or fgrep.



Re: cmp/diff

2020-12-26 Thread Alfred M. Szmidt
   > What about 'install-info'?  It is quite GNU-specific.  Nothing in
   > gnulib appears to refer to it (except for the make-stds manual..).

install-info is specific to GNU yes, the GNU standards are for the GNU
system and GNU project after all.

install-info does not have an replacement, like say egrep/fgrep --
this is how we install a dir entry for a info manual.  Removing
install-info would be a regression.



git-version-gen minor fix

2014-06-19 Thread Alfred M. Szmidt
Seeing that --prefix and --fallback have a mandatory argument, it
should be mentioned in --help.  The following patch does that.

diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
index 0278a9c..47d6576 100755
--- a/build-aux/git-version-gen
+++ b/build-aux/git-version-gen
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Print a version string.
-scriptversion=2012-12-31.23; # UTC
+scriptversion=2014-06-19.19; # UTC
 
 # Copyright (C) 2007-2014 Free Software Foundation, Inc.
 #
@@ -85,8 +85,9 @@ Print a version string.
 
 Options:
 
-   --prefix   prefix of git tags (default 'v')
-   --fallback fallback version to use if \git --version\ fails
+   --prefix PREFIXprefix of git tags (default 'v')
+   --fallback VERSION
+  fallback version to use if \git --version\ fails
 
--help display this help and exit
--version  output version information and exit



Re: git-merge-changelog

2012-01-08 Thread Alfred M. Szmidt
The only special program in gnulib is git-merge-changelog;
though now that I think about it, it makes more sense to split
out git-merge-changelog into a seperate project.

   Yes, you're entirely right. The project has been created already:
   http://savannah.gnu.org/projects/vc-changelog/

It is empty, is the idea to only have git-merge-changelog there?

   I haven't moved it yet, due to lack of time / more urgent
   priorities.  Would you like to help moving it?

Wouldn't it be better to put it in vc-dwim?



git-merge-changelog in bin_PROGRAMS

2012-01-02 Thread Alfred M. Szmidt
It seems that git-merge-changelog is added to bin_PROGRAMS in the
generated lib/Makefile.am, which causes it to get installed in
exec_prefix/bin (at least in inetutils).  Not sure why though; I
couldn't find anything that struck me in the ChangeLog.  Anyone know?



Re: git-merge-changelog in bin_PROGRAMS

2012-01-02 Thread Alfred M. Szmidt
It seems that git-merge-changelog is added to bin_PROGRAMS in the
generated lib/Makefile.am, which causes it to get installed in
exec_prefix/bin (at least in inetutils).  Not sure why though

   It's necessary so that the installation instructions at the top of
   this file work. make install should install the program in
   ${bindir}.

`make install' must _not_ install git-merge-changelog, this is a
internal file to gnulib, and using gnulib in a package must not cause
installation of extra files from gnulib.  The crux is that gnulib
seems to have changed this, somewhere to install git-merge-changelog
in bindir.  This is a serious regression; I'll roll a new inetutils
release for now, but we need to fix this in some sensible manner.

   The question is: why does inetutils contain this program? Simon
   wrote in [1]:

   ! I haven't seen any other project include git-merge-changelog,
   ! which makes some sense as it seems to be more of a developer tool
   ! not strictly related to building the project itself.

   Moreover only the committers need the tools. People who use the
   anonymous git checkout and don't contribute don't need it.

So that one can merge changelog entries without having to install it,
since git is a DVCS, anyone can commit and pull which causes marge
conflicts for ChangeLog entries at times.  There are multiple modules
that are only useful to maintainers, gnu-web-doc-update, gnupload, and
those should not get installed either in bindir simply because one
includes the module either.

Cheers!



Re: git-merge-changelog in bin_PROGRAMS

2012-01-02 Thread Alfred M. Szmidt
What about this?  I haven't tried it, but I think it should work.  The
only special program in gnulib is git-merge-changelog; though now
that I think about it, it makes more sense to split out
git-merge-changelog into a seperate project.

2012-01-03  Alfred M. Szmidt  a...@gnu.org

* modules/git-merge-changelog (bin_PROGRAMS): Variable renamed to
...
(bin_nodist_PROGRAMS): ... this.

diff --git a/modules/git-merge-changelog b/modules/git-merge-changelog
index 857a8bc..aa05103 100644
--- a/modules/git-merge-changelog
+++ b/modules/git-merge-changelog
@@ -28,7 +28,7 @@ memcmp
 configure.ac:
 
 Makefile.am:
-bin_PROGRAMS = git-merge-changelog
+bin_nodist_PROGRAMS = git-merge-changelog
 git_merge_changelog_LDADD = libgnu.a @LIBINTL@ $(LIBTHREAD)
 
 Include:



Re: [bug-inetutils] bootstrap is broken

2011-12-21 Thread Alfred M. Szmidt
   As usual, since I've changed things, I'll wait for review/ACK
   from you, Alfred, before pushing.

Thanks Jim! Works for me, please push.



Re: [bug-inetutils] bootstrap is broken

2011-12-20 Thread Alfred M. Szmidt
Mats reported the following problem when bootstraping inetutils with
the latest gnulib/ (2011-12-17):

 configure.ac:152: error: possibly undefined macro: gl_FUNC_READLINE

 configure.ac:176: error: possibly undefined macro: AC_DEFINE

This is due that we set ACLOCAL_FLAGS in bootstrap.conf, the change
that introduced this is:

* build-aux/bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions.
Run autopoint and libtoolize *before* gnulib-tool.
After it, run an abbreviated autoreconf, rather than a loop around
all tools.
(slirp, bt_mark_as_generated): Remove functions.

Since ACLOCAL_FLAGS isn't passed to autoreconf, I suggest the
following fix.

2011-12-21  Alfred M. Szmidt  a...@gnu.org

* build-aux/bootstrap (AUTOPOINT): Pass ACLOCAL_FLAGS when
invoking autoreconf.

--- build-aux/bootstrap~
+++ build-aux/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2011-12-17.15; # UTC
+scriptversion=2011-12-20.23; # UTC
 
 # Bootstrap this package from checked-out sources.
 
@@ -821,9 +821,9 @@ find $m4_base $source_base \
 
 # Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
 echo running: AUTOPOINT=true LIBTOOLIZE=true  \
-$AUTORECONF --verbose --install --no-recursive -I $m4_base
+$AUTORECONF --verbose --install --no-recursive -I $m4_base $ACLOCAL_FLAGS
 AUTOPOINT=true LIBTOOLIZE=true \
-$AUTORECONF --verbose --install --no-recursive -I $m4_base \
+$AUTORECONF --verbose --install --no-recursive -I $m4_base $ACLOCAL_FLAGS\
   || exit 1
 
 # Get some extra files from gnulib, overriding existing files.



sc_prohibit_stddef_without_use works incorrectly

2011-10-25 Thread Alfred M. Szmidt
The following syntax-check is broken,

   _stddef_syms_re = NULL|offsetof|ptrdiff_t|size_t|wchar_t
   # Prohibit the inclusion of stddef.h without an actual use.
   sc_prohibit_stddef_without_use:
h='stddef.h'\
re='\($(_stddef_syms_re)) *\(' \
  $(_sc_header_without_use)

This tries to match NULL (, NULL can exist in other situations:

  gettimeofday (tv, NULL);

which will not be matched by the above, the same goes for ptrdiff_t,
size_t and wchar_t (as variable type specifiers).



Re: sc_prohibit_stddef_without_use works incorrectly

2011-10-25 Thread Alfred M. Szmidt
Thanks Jim!



Re: config.h double inclusion

2011-06-17 Thread Alfred M. Szmidt
I think that autoconf should have the guard for double inclusion.

   Autoconf does not need to provide a double-inclusion guard for
   config.h, because those packages that need it can get it through
   use of AH_TOP and AH_BOTTOM.

That is not a reason to not include such a guard.



config.h double inclusion

2011-06-16 Thread Alfred M. Szmidt
Hey,

in inetutils we have a problem of where sometimes config.h is
included twice, but gnulib redefines a macro that was already
specified in config.h, for example gnulib:lib/argp.h:

 #include config.h -- 
 
   #define HAVE_DECL_PROGRAM_INVOCATION_NAME 0
   #define GNULIB_PROGRAM_INVOCATION_NAME 1
 ...
 #include argp.h -- 
 
   #ifdef GNULIB_PROGRAM_INVOCATION_NAME
   extern char *program_invocation_name;
   # undef HAVE_DECL_PROGRAM_INVOCATION_NAME
   # define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
   #endif

Which ends up redefining HAVE_DECL_PROGRAM_INVOCATION_NAME to 1; all
good so far since program_invocation_name is provided by gnulib.
 
A bit later, we do:

  #include libinetutils.h

which will cause warnings like:

  ../config.h:561:1: warning HAVE_DECL_PROGRAM_INVOCATION_NAME redefined
  In file included from syslogd.c:100:
  ../lib/argp.h:431:1: warning: this is the location of the previous definition

I'm thinking that maybe config.h should be generated with a double
inclusion guard (#ifndef CONFIG_H, #define CONFIG_H, ..., #endif)?  It
is easy enough to do it on a per project basis, but I see now reason
why this isn't the default.  Thoughts?

Cheers, Alfred.



Re: bug#8881: config.h double inclusion

2011-06-16 Thread Alfred M. Szmidt
I'm thinking that maybe config.h should be generated with a double
inclusion guard
   
But the general rule is that config.h must always be included first, no?
So there shouldn't ever be a possibility of including it twice.
   
It might be better to have config.h do something like this:
   
#ifdef CONFIG_H
# error config.h included twice
#endif
#define CONFIG_H

   Warning: Quite a few misbehaving packages actually install their
   config.h.

One should send bug reports for those cases, since it is just broken.



Re: config.h double inclusion

2011-06-16 Thread Alfred M. Szmidt
I'm thinking that maybe config.h should be generated with a double
inclusion guard

   But the general rule is that config.h must always be included
   first, no?  So there shouldn't ever be a possibility of including
   it twice.

Right, which is the case in inetutils in all places where we use
config.h.  The problem pops up when you have another header file
that includes config.h (as the first thing) to use macros from it
(for libinetutils.h it is PACKAGE_BUGREPORT and HAVE_FORK or
something).

   It might be better to have config.h do something like this:

   #ifdef CONFIG_H
   # error config.h included twice
   #endif
   #define CONFIG_H

Not against it, but I think that:

#include config.h
#include argp.h   /* or some other gnulib header... */
#include config.h /* via some internal #include; where it is the first 
line  */

should be valid to do.

A bit later, we do:

  #include libinetutils.h

which will cause warnings like:

  ../config.h:561:1: warning HAVE_DECL_PROGRAM_INVOCATION_NAME redefined

   Sp libinetutils.h includes config.h?  Then that is a problem.  One
   possible fix is to arrange for libinetutils.h to be built from
   libinetutils.in.h, the same way that (for example) stdint.h is
   built from stdint.in.h in gnulib.

Right, sorry if I wasn't clear.  I would prefer not to, the fix that I
might go for if we can't fix this in autoconf would be: to simply do:

#ifndef HAVE_CONFIG_H
#error config.h hasn't been included; please include it
#endif

But I think that autoconf should have the guard for double inclusion.



Re: [bug-inetutils] inetutils-1.8: ftp build error

2010-07-25 Thread Alfred M. Szmidt
   I am forwarding an error reported on the inetutils mailing list.

   The problem is that readline 6.x exports `xmalloc' and `xrealloc', and
   it causes a linker error when used together with gnulib.

   Probably readline shouldn't export these symbols, but I think it should
   be possible somehow to workaround this problem in gnulib as well.

   What do you think?

This is a known bug, the reason if I recall is that readline exports
xmalloc and xrealloc is to allow programs to hook their own version
into readline.  So the readline maintainer has declined any fixes for
this.



Re: [bug-inetutils] inetutils-1.8: ftp build error

2010-07-25 Thread Alfred M. Szmidt
This is a known bug, the reason if I recall is that readline
exports xmalloc and xrealloc is to allow programs to hook their
own version into readline.  So the readline maintainer has
declined any fixes for this.

   This is a severe bug. It makes readline useless for any project
   that uses gnulib.

I should note that this was from my recollection, but I agree, it is
painful.  Here is what Chet had to say on the topic:

Re: [Bug-readline] [PATCH] hide symbols for helper xmalloc/xrealloc/xfree 
functions

|  libreadline is exporting symbols for its internal helper
|  xmalloc/xrealloc/xfree functions.  These function names are
|  quite common, but might not behave exactly the same way as
|  readline expects.
|
| I want applications to have the option to override these functions if
| they so choose.



Re: setproctitle()

2010-05-04 Thread Alfred M. Szmidt
Can you simply declare the copyright to be LGPLv2+?  Many
modules are already LGPLv2+ (see modules/*).
   
I could if I were just releasing the code myself, but if the FSF
needs a copyright assignment, does that not imply that I no
longer get to choose the copyright?

   As original author, you get to choose the license that will be used
   within gnulib.  I see nothing wrong with you declaring that the
   setproctitle module is LGPLv2+.

If the FSF is the copyright holder, then there is no (legal) need to
ask the original author about permission to relicense the work.  It
might be a nice thing to do, but if the original author says no for
some reason, the FSF can still relicense the work; they are the
copyright holders.





Re: announce-gen -- not flexible enough

2009-12-13 Thread Alfred M. Szmidt
Ping?

From 00c33e8b07ae06d2c09394c3cf2892063f0c2fc6 Mon Sep 17 00:00:00 2001
From: Alfred M. Szmidt a...@gnu.org
Date: Sat, 5 Dec 2009 20:44:20 +0100
Subject: [PATCH] Allow for per-project post-release administrative tasks.

---
 ChangeLog|8 
 top/maint.mk |   10 +-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3c01809..900736b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-12-05  Alfred M. Szmidt  a...@gnu.org
+
+   * top/maint.mk (alpha, beta, stable): Split out project specific
+   rules into `default-post-release-administrivia'.
+   (post-release-hook): New variable.
+   (post-release-administrivia, default-post-release-administrivia):
+   New targets.
+
 2009-12-05  Bruno Haible  br...@clisp.org
 
* lib/progname.h (set_program_name): Clarify specification.
diff --git a/top/maint.mk b/top/maint.mk
index 1ed1541..262a69f 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -82,6 +82,9 @@ endif
 today = $(shell date +%Y-%m-%d)
 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)'
 
+# Override this in cfg.mk if you have different post-release procedures.
+post-release-hook ?= default-post-release-administrivia
+
 # Prevent programs like 'sort' from considering distinct strings to be equal.
 # Doing it here saves us from having to set LC_ALL elsewhere in this file.
 export LC_ALL = C
@@ -761,12 +764,17 @@ alpha beta stable: $(local-check) writable-files 
no-submodule-changes
$(MAKE) news-check
$(MAKE) distcheck
$(MAKE) dist XZ_OPT=-9ev
+   $(MAKE) post-release-administrivia
+   $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
+
+post-release-administrivia: $(post-release-hook)
+
+default-post-release-administrivia:
$(MAKE) -s announcement RELEASE_TYPE=$@  /tmp/announce-$(my_distdir)
if test -d $(release_archive_dir); then \
  ln $(rel-files) $(release_archive_dir);   \
  chmod a-w $(rel-files);   \
fi
-   $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
echo $(VERSION)  $(prev_version_file)
$(MAKE) update-NEWS-hash
perl -pi -e '$$. == 3 and print $(noteworthy)\n\n\n' NEWS
-- 
1.6.5.2









Re: announce-gen -- not flexible enough

2009-12-13 Thread Alfred M. Szmidt
 - avoid breaking the announcement-generating code:
Once you move the $(MAKE) -s announcement release_typ...@...
command into another rule, $@ is no longer valid.
Instead, rely on RELEASE_TYPE being set in the environment.

Ah, yeah, I had fixed that in a different commit that I forgot about,
thanks!




Re: update copyrights?

2009-12-07 Thread Alfred M. Szmidt
   You mean, changing
  Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
  Free Software Foundation, Inc.
   to
  Copyright (C) 1999-2009 Free Software Foundation, Inc.
   ?

   It's allowed by current FSF rules, but the fact that the FSF did
   not want it for 15 years does not give me a comfortable
   feeling. Rather, I fear that, with a small percentage probability,
   the rule may change again, in the opposite direction. So I would
   prefer to wait for 1 or 2 more years before doing that.

Since when is this allowed?  The GNU maintainer guide say explicitly
that it isn't:

| Do not abbreviate the year list using a range; for instance, do not
| write @samp{1996--1998}; instead, write @samp{1996, 1997, 1998}.




Re: news-date-check tweaking..

2009-12-05 Thread Alfred M. Szmidt
   If you don't mind, sending git format-patch output (i.e with a log
   entry) and removing the space-before-TAB ^^ would be nice.

Will try to do so in the future.




announce-gen -- not flexible enough

2009-12-05 Thread Alfred M. Szmidt
announce-gen is lovley, but it is very inflexible if you use a
different format for NEWS.

In inetutils, we use something like:

| December 27, 2008
| Version 1.6:
|
| * Fixed FOO in BAR.
|
| * Added BAZ.
| 
| October 21, 2006
| Version 1.5:
|
| ...


I am not sure what a way one should fix announce-gen to be more
flexible, maybe just being able to specify a `start' regexp, and a
`end' regexp would be enough.  So in the above example, we could use
something like:

 --start-regexp=^Version  --end-regexp=^$

Or maybe just a switch to skip looking at NEWS, and add a `FIXME: Add
noteworthy changes here' where the news entries go.

Alas, I don't know enough perl to hack announce-gen.




Re: announce-gen -- not flexible enough

2009-12-05 Thread Alfred M. Szmidt

   Alfred M. Szmidt wrote:
announce-gen is lovley, but it is very inflexible if you use a
different format for NEWS.
   
In inetutils, we use something like:
   
| December 27, 2008
| Version 1.6:
|
| * Fixed FOO in BAR.
|
| * Added BAZ.
| 
| October 21, 2006
| Version 1.5:
|
| ...
   
   
I am not sure what a way one should fix announce-gen to be more
flexible, maybe just being able to specify a `start' regexp, and a
`end' regexp would be enough.  So in the above example, we could use
something like:
   
 --start-regexp=^Version  --end-regexp=^$
   
Or maybe just a switch to skip looking at NEWS, and add a `FIXME: Add
noteworthy changes here' where the news entries go.
   
Alas, I don't know enough perl to hack announce-gen.

   Yes, it is rigid.
   announce-gen started as a way to help automate some repetitive tasks.

   Now, you see there is some benefit to conforming.

   In a few projects (gzip, diff, grep), I've simply begun using the
   format required by the tools that operate on NEWS.  Note that there
   is at least one other tool that knows the form of NEWS entries:

 build-aux/do-release-commit-and-tag

   Your options:
 - use the suggested format for new NEWS entries
 - insert that part of NEWS manually into your announcement email
 - change both announce-gen and do-release-commit-and-tag

Changing the format is just cumbersome and not really
worthwhile; asking each and every project to follow this strict format
is unrealistic as well.  Inserting things manually is impossible,
since `make alpha/stable' will fail hard since there is no way to
ignore those checks.  For the later, you must change
announce-gen/do-release-commit-and-tag anyway.

I do not see what exactly you are suggesting that I didn't already
suggest, I was looking for input on the `right way' of doing things.




Re: announce-gen -- not flexible enough

2009-12-05 Thread Alfred M. Szmidt
   You said you would not be changing announce-gen, so isn't it moot?

I said that I did not have enough knowledge to hack announce-gen since
it is written in perl; I cannot do something when I don't know how to
do it.

   I pointed out that yet another script parses (and rewrites) NEWS
   and would need similar changes.

Right, so something similar needs to be added there.  I can do it for
do-release-commit-and-tag, since that is in shell script.  Attached is
a quick hack, that I didn't bother testing.

Is there is someone who can add a --skip-news option to announce-gen,
(and a way of specifying that you don't want NEWS to be inserted in
cfg.mk; though I can do that)?  If not, the best solution is to remove
announce-gen from gnulib, since it is not flexible enough for other
projets to use; asking everyone to use the same format for a file that
has been free-hand for 20+ years is not going to work.

diff --git a/build-aux/do-release-commit-and-tag 
b/build-aux/do-release-commit-and-tag
index ba0c1b2..abe463d 100755
--- a/build-aux/do-release-commit-and-tag
+++ b/build-aux/do-release-commit-and-tag
@@ -3,7 +3,7 @@
 # controlled .prev-version file, automate the procedure by which we record
 # the date, release-type and version string in the NEWS file.  That commit
 # will serve to identify the release, so apply a signed tag to it as well.
-VERSION=2009-11-06.10 # UTC
+VERSION=2009-12-05.17 # UTC
 
 # Note: this is a bash script (could be zsh or dash)
 
@@ -28,6 +28,8 @@ ME=`basename $0`
 warn() { printf '%s: %s\n' $ME $* 2; }
 die() { warn $*; exit 1; }
 
+opt_skip_news=false
+
 help_version()
 {
   case $1 in
@@ -41,7 +43,7 @@ a signed tag.  Run it from your project's the top-level 
directory.
 
 Requirements:
 - you use git for version-control
-- a NEWS file, with line 3 identical to this:
+- optionally a NEWS file, with line 3 identical to this:
 * Noteworthy changes in release ?.? (-??-??) [?]
 - a version-controlled .prev-version file
 
@@ -69,6 +71,10 @@ There is NO WARRANTY, to the extent permitted by law.
 EOF
   exit ;;
 
+  --skip-news)
+  opt_skip_news=true
+  break ;;
+
   *) die unrecognized option: $1;;
   esac
 }
@@ -103,10 +109,12 @@ esac
 pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' Makefile) \
   || die 'failed to determine package name from Makefile'
 
-# simple check: no question marks on line 3 of NEWS
-noteworthy='* Noteworthy changes in release'
-test $(sed -n 3p NEWS) = $noteworthy ?.? (-??-??) [?] \
-  || die 'line 3 of NEWS looks fishy!'
+if [ $opt_skip_news == false ]; then
+# simple check: no question marks on line 3 of NEWS
+noteworthy='* Noteworthy changes in release'
+test $(sed -n 3p NEWS) = $noteworthy ?.? (-??-??) [?] \
+|| die 'line 3 of NEWS looks fishy!'
+if
 
 # No dirt allowed.
 case $(git diff-index --name-only HEAD) in
@@ -114,19 +122,22 @@ case $(git diff-index --name-only HEAD) in
   *) die 'this tree is dirty; commit your changes first';;
 esac
 
-# update NEWS to have today's date, plus desired version number and $type
-perl -MPOSIX -ni -e 'my $today = strftime %F, localtime time;' \
- -e 'my ($type, $ver) = qw('$type $ver');' \
- -e 'my $pfx = '$noteworthy';' \
- -e 'print $.==3 ? $pfx $ver ($today) [$type]\n : $_' \
- NEWS || die 'failed to update NEWS'
+if [ $opt_skip_news == false ]; then
+# update NEWS to have today's date, plus desired version number and $type
+perl -MPOSIX -ni -e 'my $today = strftime %F, localtime time;' \
+-e 'my ($type, $ver) = qw('$type $ver');' \
+-e 'my $pfx = '$noteworthy';' \
+-e 'print $.==3 ? $pfx $ver ($today) [$type]\n : $_' \
+NEWS || die 'failed to update NEWS'
+fi
 
 # Ensure the current branch name is master:
 curr_br=$(git rev-parse --symbolic-full-name HEAD)
 test $curr_br = refs/heads/master || die not on master
-
-printf version $ver\n\n* NEWS: Record release date.\n \
-| git commit -F -  -a || die 'git commit failed'
+if [ $opt_skip_news == false ]; then
+printf version $ver\n\n* NEWS: Record release date.\n \
+| git commit -F -  -a || die 'git commit failed'
+fi
 git tag -s -m $pkg $ver v$ver HEAD || die 'git tag failed'
 
 # Local variables:




underscore vs. hyphen

2009-12-03 Thread Alfred M. Szmidt
What should be used in variable names for maint.mk, a hyphen, or
underscore?  Some variables use underscore, and some use
hyphens... Which is very confusing.




news-date-check tweaking..

2009-12-03 Thread Alfred M. Szmidt
In inetutils we use something like `Version 1.6 (2008-12-27):' in
NEWS, but news-date-check hardcodes it, and expects something else, `*
FOO 1.6 (2008-12-27)', would this be acceptable for overriding the
format?

diff --git a/top/maint.mk b/top/maint.mk
index c3fab9a..18f63af 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -71,6 +71,10 @@ gnu_ftp_host-beta = alpha.gnu.org
 gnu_ftp_host-stable = ftp.gnu.org
 gnu_rel_host ?= $(gnu_ftp_host-$(RELEASE_TYPE))
 
+# Override this in cfg.mk if you are using a different format in your
+# NEWS file.
+news-date-regexp ?= '^\*.* $(VERSION_REGEXP) ('$$today')'
+
 ifeq ($(gnu_rel_host),ftp.gnu.org)
 url_dir_list ?= http://ftpmirror.gnu.org/$(PACKAGE)
 else
@@ -570,7 +574,7 @@ sc_makefile_check:
 
 news-date-check: NEWS
today=`date +%Y-%m-%d`; \
-   if head $(srcdir)/NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \
+   if head $(srcdir)/NEWS | grep $(news-date-regexp)   \
/dev/null; then\
  :;\
else\




Re: [PATCH] Add missing dependency to gnulib

2009-12-03 Thread Alfred M. Szmidt
Giuseppe drank one beer that he couldn't handle.

   something against this trivial patch?

If those dependencies are needed, go ahead.  If not, I see no reason
to add them.

   It fixes make check.


   Giuseppe


   From 48baa84f12699ff6b3ee50e2b2211cce503f08ca Mon Sep 17 00:00:00 2001
   From: Giuseppe Scrivano gscriv...@gnu.org
   Date: Thu, 3 Dec 2009 19:27:30 +0100
   Subject: [PATCH] Add missing dependency to gnulib

   ---
ChangeLog |4 
tests/Makefile.am |2 +-
2 files changed, 5 insertions(+), 1 deletions(-)

   diff --git a/ChangeLog b/ChangeLog
   index 8051682..3816557 100644
   --- a/ChangeLog
   +++ b/ChangeLog
   @@ -1,5 +1,9 @@
2009-12-03  Giuseppe Scrivano  gscriv...@gnu.org

   +* tests/Makefile.am (LDADD): Add missing dependency to gnulib.
   +
   +2009-12-03  Giuseppe Scrivano  gscriv...@gnu.org
   +
   * ftp/cmds.c (domap): Add braces around the else branch.
   (strup): Remove function.
   * ftp/ftp.c (hookup): Change `len' type to size_t.
   diff --git a/tests/Makefile.am b/tests/Makefile.am
   index 1813a98..6b02c85 100644
   --- a/tests/Makefile.am
   +++ b/tests/Makefile.am
   @@ -18,7 +18,7 @@

AM_CPPFLAGS = -I$(top_srcdir)/libinetutils -I$(top_srcdir)/lib

   -LDADD = -L../libinetutils -linetutils
   +LDADD = -L../libinetutils -linetutils  -L../lib -lgnu

check_PROGRAMS = localhost
TESTS = $(check_PROGRAMS) ping-localhost.sh traceroute-localhost.sh
   -- 
   1.6.5





Re: Error message doesn't say, error

2009-11-15 Thread Alfred M. Szmidt
   Without some clear marker, it is more than a little hard to find.
   This is line 414 of 619 lines of typescript text:

configure.ac:9: version `sharutils_version' doesn't follow Gnits standards

That is how error messages in GNU look like, and have looked like for
the past 20 years.  You can grep for `configure.ac:[0-9]*:` to find
all error messages or use compilation-mode in emacs or some similar
editor.  See `(standards) Errors' for further variants of error
messages.

Where do you get this error from?  I cannot find it in gnulib,
sharutils or autoconf.  I suspect that the check is actually wrong,
and not your version number even though one tends to use a three group
for alpha/beta releases, and two groups for real releases.

   Any help at all would be appreciated.  The sharutils build has been
   broken for a couple of years now.  Thanks!

By the way, the `latest' version (i.e. old :-) is avaiable at




Re: Error message doesn't say, error

2009-11-15 Thread Alfred M. Szmidt
   By the way, the `latest' version (i.e. old :-) is avaiable at

... http://gnu.org/software/womb/gnits/




Re: Error message doesn't say, error

2009-11-15 Thread Alfred M. Szmidt
configure.ac:9: version `sharutils_version' doesn't follow Gnits 
standards

Where do you get this error from?

   automake.  See info Automake Gnits.

I must be missing something utterly obvious, but I cannot find it at
all:

~/s $ /bin/grep -ir follow Gnits autoconf automake gnulib sharutils
~/s $

I suspect that the check is actually wrong,

   I'd need to see the configure.ac in order to confirm.

configure.ac:
| m4_include([version.m4])
| AC_INIT([GNU sharutils],[sharutils_version],[sharutils_eaddr])

version.m4:
| m4_define([sharutils_version], [4.7.1])
| m4_define([sharutils_eaddr],   [bug-gnu-ut...@gnu.org])




Re: Error message doesn't say, error

2009-11-15 Thread Alfred M. Szmidt

   * Alfred M. Szmidt wrote on Sun, Nov 15, 2009 at 06:08:58PM CET:
configure.ac:9: version `sharutils_version' doesn't follow Gnits 
standards

Where do you get this error from?

   automake.  See info Automake Gnits.

I must be missing something utterly obvious,

   Line wrapping.  :-)

D'oh, why didn't I think of that! Thanks.

configure.ac:
| m4_include([version.m4])
| AC_INIT([GNU sharutils],[sharutils_version],[sharutils_eaddr])

version.m4:
| m4_define([sharutils_version], [4.7.1])
| m4_define([sharutils_eaddr],   [bug-gnu-ut...@gnu.org])

   Oh, that works if you allow m4 traces to see the macro expanded:
 AC_INIT([GNU sharutils],sharutils_version,[sharutils_eaddr])

   although this is probably safer instead:
 AC_INIT([GNU sharutils],m4_defn([sharutils_version]),[sharutils_eaddr])

Ah, that makes sense.  Super thanks Ralf!

Bruce, how about this?  I'd actually rather see the whole version.m4
mess be removed, but this is a decent fix for now.

2009-11-15  Alfred M. Szmidt  a...@gnu.org

* configure.ac (AC_INIT): Wrap sharutils_version and
sharutils_eaddr around m4_defn.
(AM_INIT_AUTOMAKE): Added `gnits'.

*** configure.ac.~1.42.~2009-11-14 21:11:07.0 +0100
--- configure.ac2009-11-15 18:35:29.480981168 +0100
***
*** 6,16 
  dnl FIXME: AC_CHECK_FUNCS([gethostname getwd])
  dnl
  m4_include([version.m4])
! AC_INIT([GNU sharutils],[sharutils_version],[sharutils_eaddr])
  
  AC_CONFIG_SRCDIR([src/shar.c])
  AC_CONFIG_HEADERS([config.h])
! AM_INIT_AUTOMAKE([1.11 dist-bzip2])
  AC_USE_SYSTEM_EXTENSIONS
  AC_SUBST(DIST_ALPHA)
  
--- 6,16 
  dnl FIXME: AC_CHECK_FUNCS([gethostname getwd])
  dnl
  m4_include([version.m4])
! AC_INIT([GNU 
sharutils],m4_defn([sharutils_version]),m4_defn([sharutils_eaddr]))
  
  AC_CONFIG_SRCDIR([src/shar.c])
  AC_CONFIG_HEADERS([config.h])
! AM_INIT_AUTOMAKE([1.11 dist-bzip2 gnits])
  AC_USE_SYSTEM_EXTENSIONS
  AC_SUBST(DIST_ALPHA)
  




syntax-check: copyright-check

2009-11-14 Thread Alfred M. Szmidt
copyright-check doesn't handle multi-line copyright years for texinfo,
the following causes an error that the year list is outdated:

Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009 Free Software Foundation, Inc.




output from syntax-check

2009-11-14 Thread Alfred M. Szmidt
it would be nice if the output from syntax-check was compatible with
compilation mode so that one can use it to jump to each line easily.




Re: output from syntax-check

2009-11-14 Thread Alfred M. Szmidt
Unfortunately, doing that is often at odds with the goals of
keeping the test code simple and efficient.  If you find small
and clean changes that improve matters without inducing
inordinate inefficiency even in projects with thousands of source
files, please send a patch.

   Proposed sed extension to help this:
   http://lists.gnu.org/archive/html/bug-gnu-utils/2009-11/msg00030.html

This is a good aproach, but for compilation-mode to work you need the
line number as well.  Would it be acceptable for syntax-check to use
this option if it is included in GNU sed?  It wouldn't be compatible
with POSIX sed, but one could do a check for the option and only use
it if one is using GNU sed.




Re: version-etc tweak

2009-11-12 Thread Alfred M. Szmidt
For what it's worth, argp uses `Report bugs to
bug-inetut...@gnu.org.', i.e. no package name.




Re: gnu-web-doc-update: new script

2009-10-02 Thread Alfred M. Szmidt
Thanks Jim, you just made my day.




Re: inetutils ChangeLog doc/Makefile.am doc/inetuti...

2009-05-08 Thread Alfred M. Szmidt
   After the patch I installed to inetutils [1], I think actually the
   only problem is that the gnulib 'fdl' module is a moving target.
   That doesn't really work, as Karl explained, since the main manual
   needs to be updated manually whenever there is a FDL version update
   in gnulib.

Right.

   So in gnulib, I propose we deprecated 'fdl' and ask maintainers to
   depend directly on 'fdl-1.3' or whatever version they need.
   Thoughts?

I agree.




Re: inetutils ChangeLog doc/Makefile.am doc/inetuti...

2009-05-08 Thread Alfred M. Szmidt
The situation with GPL and LGPL is different: A change in the
license of the code is a very careful decision. Whereas the FDL
license version does not matter for many developers. This
explains the difference in module structure.

   Is this true?  The GFDL certainly caught a lot of attention when it
   came out.  Also, if the or any later version clause isn't given,
   it seems there could be a problem blindly upgrading.

   At a quick glance, the situation doesn't look that different.

I agree, it is a license change, blindly upgradeing the license is
always wrong, it doesn't matter if `many developers' do not care.  It
is partially our job to see that they do care.




Re: Installing gnulib from git

2009-04-01 Thread Alfred M. Szmidt
On Wednesday 01 of April 2009 21:32:36 Reuben Thomas wrote:
On Wed, 1 Apr 2009, Mike Frysinger wrote:
the `git clone` is the install.  just execute the gnulib-tool script from
there.
   
Right. So I just add the directory to my PATH? Or symlink gnulib-tool into
a directory on my PATH?
   
AFAIK it is not useful to install gnulib to your system.

   Well, Debian packages snapshots of it. It's useful, because
   gnulib-tool is on PATH. That's all I want really, I want
   gnulib-tool to be on my PATH and I was asking what I have to do to
   make that work.

Any problem with adding gnulib to your path?




Re: Installing gnulib from git

2009-04-01 Thread Alfred M. Szmidt
   Well, Debian packages snapshots of it. It's useful,
   
No, it is insanely wrong, defeating the purpose of gnulib and
causing impossible-to-track bugs due to out-of-sync sources.  But
let's not go into that again, you can find the discussions in the
archives if you care.

   :) Well, I asked about it just recently, and the maintainer's main
   reason is that it's not acceptable to have a package that requires
   an internet connection to be useful. I agree that it's not a good
   way to use gnulib, which is why I'm switching to using it from git.

You do not need a internet connection to compile a project that uses
gnulib, the project will include whatever parts of gnulib it uses.




Re: Installing gnulib from git

2009-04-01 Thread Alfred M. Szmidt
Any problem with adding gnulib to your path?

   I prefer to add executable-only directories.

That makes little sense, if you wish to be able to access a directory,
then it must be executable.




Re: Installing gnulib from git

2009-04-01 Thread Alfred M. Szmidt
What is it that made you expect to see installation instructions?

   Most GNU packages have an INSTALL file. That's where I look first for 
   installation instructions.

gnulib is not something you install.  Ever.  




Re: fdl-1.3

2008-11-11 Thread Alfred M. Szmidt
A symlink?! This can only cause problems:
  - When 'git' is run on a Windows system (not Cygwin), AFAIK there are
no symlinks.

   In which case, git treats the file as a single line text, whose
   contents would correspond to the symlink, but the contents of the
   git tree make it obvious (via the different object mode) that it is
   a link.

  - When 'git' is run on Linux on a vfat file system, there are
  - no symlinks.

   Ditto.  git can already work around such deficient file systems
   when it comes to versioning the file, and hopefully no one is crazy
   enough to actually try developing git on such a file system.

But makeinfo, copy and others do not work around such deficient file
systems, and one cannot expect every tool to do so.

  - When you use 'tar' with option 'h' to copy the directory, the
copy will be different from the original: it will have the
symlink replaced by its target's contents.

   Which is perfectly fine - the copy in gnulib is for reference, and
   whether it is a symlink or a copy shouldn't matter.  It just made
   my life as autoconf maintainer easier to be able to add a line to
   cfg.mk that does 'cp gnulib/doc/fdl.texi autoconf/doc/',
   
http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=5bf2204#patch2

That will not work if you do it on a vfat filesystem, all you will get
is a single line text file; which will produce the wrong info manual.
It will also not help if you wish to use fdl.texi directly on a vfat
file system.

The problem is not git handling things like this, but other programs.

Please, can't you make fdl.texi a regular file? Either with
contents

  @include fdl-1.3.texi

or as a copy of fdl-1.3.texi?

This is a nice and simple solution.




Re: Project management and code quality tools

2008-10-07 Thread Alfred M. Szmidt
   The copyright notice said the FSF, I assumed you have papers on file.
   But it would be good to confirm this.

I don't think you can transfer code from one project to another like
that. So you you have to contact rms I think.

Yeah, it is painful... sighs

   * Stylesheets: should it be inlined into the generated HTML
 instead?  That is often easier.

Is the output also generating flat text?  That would rock...





Re: Project management and code quality tools

2008-10-07 Thread Alfred M. Szmidt
   * Stylesheets: should it be inlined into the generated HTML
 instead?  That is often easier.
   
Is the output also generating flat text?  That would rock...

   The original pmccabe tool outputs flat text, and this pmccabe2html
   takes it and generates HTML (or some Wiki-markup).  Although
   pmccabe2html could be enhanced to support flat text output as well.

Nice, I like that.




Re: [PATCH] remove duplicate #include directives

2008-08-31 Thread Alfred M. Szmidt
   +2008-08-31  Jim Meyering  [EMAIL PROTECTED]
   +
   +remove duplicate #include directives

I think someone forgot their capitals, and periods... :-)

   +* lib/chdir-long.c [TEST_CHDIR]: Remove duplicate #include stdio.h.
   +* lib/putenv.c: Remove duplicate #include stdlib.h.
   +




Re: GNUmakefile and 'make install'

2008-07-22 Thread Alfred M. Szmidt
Thank you.  I think everyone will be happy with that change now; does
anyone have any objections to the new behaviour?




Re: GNUmakefile and 'make install'

2008-07-21 Thread Alfred M. Szmidt
Why can not just a simple _warning_ message be displayed at the end of
the run instead?  That does not punish anyone, and users are informed
that they installed something that has stale cruft in it, and they can
easilly do `make uninstall', `make all' or whatever to fix it; or
simply ignore it.


The old behaviour of `make install' _is_ correct, erroring out because
some file is stale is utterly wrong, and you must be able to edit the
source tree without having to rerun `make all', `autoreconf', etc and
have `make install' work.  It does not matter if it is extracted from
a tarball, or from a VCS.  That the maintainer then is to lazy (as the
example you gave of m4 using a version of autoconf that was not in
autoconf's vcs) to bother updating his version data is not a reason to
punish everyone else for something that is correct behaviour from
`make install'.




Re: GNUmakefile and 'make install'

2008-07-18 Thread Alfred M. Szmidt
   Sorry if I'm asking questions you've already answered before, but
   I'd rather have make install be read-only in the working
   directory.  That's a longstanding tradition I'm loath to overturn.

For whats it worth, I concur.




Re: GNU-style ChangeLog merge driver for Git

2008-02-11 Thread Alfred M. Szmidt

   Ben Pfaff wrote:
The web interface is searchable.  Type your search string into
the box labeled search: and hit Enter.  Click on the question
mark for a description of the kinds of searches that are
available.

   Indeed! Thanks for pointing this out.

   This weakens my previous arguments.

No, it doesn't.  You cannot do many things in a web browser, for
example, you cannot use M-x occur to see how often something was
changed, or just to group changes related to a single file.  I do not
know of a web browser that allows regexp in the search field, which is
immensly useful.  Then there is narrowing and widening, etc etc.

Then there is the question of having to be hooked up to a network if
you wish to access this information using a very poor interface.




Re: GNU-style ChangeLog merge driver for Git

2008-02-11 Thread Alfred M. Szmidt
   The web interface for the history is also usable without prerequisite
   knowledge; but it is not searchable.

It is also not accessible to people without access to the big bad
internet; or funky GUI tools.

maintaining ChangeLogs is redundant work, when you're already
entering the very same information into the versipon control
system.

   Please place yourself at the position of the user who builds and
   runs a program, not the developer. If all packages have different
   ways of configuring the package, of showing version history, of
   listing the dependencies, etc.  building packages for one's own use
   is too much of a frustrating experience.  This is why a unified
   'configure' invocation scheme was needed; this is also why a
   unified view of the version history is needed.

Indeed!




[BUG] Check for AC_CONFIG_AUX_DIR is incorrect

2007-03-17 Thread Alfred M. Szmidt
Hey,

The check for AC_CONFIG_AUX_DIR is incorrect, since autoconf (really,
m4) allows one to quote arguments.  So if ones configure.ac contains
the following valid code:

AC_CONFIG_AUX_DIR([build-aux])

the check will fail.  Not entierly sure how to handle it since m4
allows one to set the quote character.  Any ideas?

Cheers.




[PATCH] Specifying the name of the gnulib library.

2007-03-16 Thread Alfred M. Szmidt
Hi,

this allows a user to specify the name of the gnulib library
(currently libPACKAGE) to something that they might prefer through
bootstrap.conf by setting the variable gnulib_name.  In inetutils we
use libgnu for gnulib, and libinetutils.a for our own functions.

2007-03-16  Alfred M. Szmidt  [EMAIL PROTECTED]

* build-aux/bootstrap (gnulib_name): New variable.
(gnulib_tool_options): Use it.

--- bootstrap   15 Mar 2007 23:58:36 +0100  1.1
+++ bootstrap   16 Mar 2007 19:54:12 +0100  
@@ -89,6 +89,7 @@ extract_package_name='
   }
 '
 package=`sed -n $extract_package_name configure.ac` || exit
+gnulib_name=lib$package
 
 build_aux=build-aux
 # Extra files from gnulib, which override files from other sources.
@@ -450,7 +451,7 @@ gnulib_tool_options=\
  --no-changelog\
  --aux-dir $bt/$build_aux\
  --doc-base $bt/doc\
- --lib lib$package\
+ --lib $gnulib_name\
  --m4-base $bt/m4/\
  --source-base $bt/lib/\
  --tests-base $bt/tests\




[PATCH] autopoint always run even though it might not be used

2007-03-16 Thread Alfred M. Szmidt
Hey,

right now bootstrap will always run autpoint, even if one might not be
using it.  Since autopoint requires that AM_GNU_GETTEXT_VERSION, we
can easily check if we are using autopoint/gettext.

2007-03-16  Alfred M. Szmidt  [EMAIL PROTECTED]

* build-aux/bootstrap (with_gettext): New variable.  Only run
autopoint and copy gettext configuration files if WITH_GETTEXT is
t.

--- bootstrap   15 Mar 2007 23:58:36 +0100  1.1
+++ bootstrap   16 Mar 2007 19:54:12 +0100  
@@ -466,13 +467,18 @@ done
 
 
 # Import from gettext.
-
-echo $0: (cd $bt2; autopoint) ...
-cp configure.ac $bt2 
-(cd $bt2  autopoint  rm configure.ac) 
-slurp $bt2 $bt || exit
-
-rm -fr $bt $bt2 || exit
+with_gettext=t
+grep '^[]*AM_GNU_GETTEXT_VERSION\' configure.ac /dev/null || \
+with_gettext=nil
+
+if test $with_gettext = t; then
+  echo $0: (cd $bt2; autopoint) ...
+  cp configure.ac $bt2 
+  (cd $bt2  autopoint  rm configure.ac) 
+  slurp $bt2 $bt || exit
+
+  rm -fr $bt $bt2 || exit
+fi
 
 
 # Reconfigure, getting other files.
@@ -504,11 +510,11 @@ for file in $gnulib_extra_files; do
   symlink_to_gnulib $file $dst || exit
 done
 
-
-# Create gettext configuration.
-echo $0: Creating po/Makevars from po/Makevars.template ...
-rm -f po/Makevars
-sed '
+if test $with_gettext = t; then
+  # Create gettext configuration.
+  echo $0: Creating po/Makevars from po/Makevars.template ...
+  rm -f po/Makevars
+  sed '
   /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '$EXTRA_LOCALE_CATEGORIES'/
   /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'$package'@gnu.org/
   /^XGETTEXT_OPTIONS *=/{
@@ -517,11 +523,11 @@ sed '
'$XGETTEXT_OPTIONS' $${end_of_xgettext_options+}
   }
 ' po/Makevars.template po/Makevars
-
-if test -d runtime-po; then
-  # Similarly for runtime-po/Makevars, but not quite the same.
-  rm -f runtime-po/Makevars
-  sed '
+
+  if test -d runtime-po; then
+# Similarly for runtime-po/Makevars, but not quite the same.
+rm -f runtime-po/Makevars
+sed '
 /^DOMAIN *=.*/s/=.*/= '$package'-runtime/
 /^subdir *=.*/s/=.*/= runtime-po/
 /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'$package'@gnu.org/
@@ -531,9 +537,10 @@ if test -d runtime-po; then
  '$XGETTEXT_OPTIONS_RUNTIME' $${end_of_xgettext_options+}
 }
   ' po/Makevars.template runtime-po/Makevars
-
-  # Copy identical files from po to runtime-po.
-  (cd po  cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+   
+# Copy identical files from po to runtime-po.
+(cd po  cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+  fi
 fi
 
 echo $0: done.  Now you can run './configure'.




Re: [PATCH] autopoint always run even though it might not be used

2007-03-16 Thread Alfred M. Szmidt
+with_gettext=t
+grep '^[   ]*AM_GNU_GETTEXT_VERSION\' configure.ac /dev/null || \
+with_gettext=nil

   Please use yes and no for such values, or :/true and false
   if you intend to use them as commands (as in `if $with_gettext').  t
   is impossible to understand for those that don't speak the language this
   idiom originated in.

Sorry, been coding Lisp latley.  Here is a updated (though untested
version) of the patch.


2007-03-16  Alfred M. Szmidt  [EMAIL PROTECTED]

* build-aux/bootstrap (with_gettext): New variable.  Only run
autopoint and copy gettext configuration files if WITH_GETTEXT is
`true'.

--- bootstrap   15 Mar 2007 23:58:36 +0100  1.1
+++ bootstrap   16 Mar 2007 19:54:12 +0100  
@@ -466,13 +467,18 @@ done
 
 
 # Import from gettext.
-
-echo $0: (cd $bt2; autopoint) ...
-cp configure.ac $bt2 
-(cd $bt2  autopoint  rm configure.ac) 
-slurp $bt2 $bt || exit
-
-rm -fr $bt $bt2 || exit
+with_gettext=true
+grep '^[]*AM_GNU_GETTEXT_VERSION\' configure.ac /dev/null || \
+with_gettext=false
+
+if test $with_gettext = true; then
+  echo $0: (cd $bt2; autopoint) ...
+  cp configure.ac $bt2 
+  (cd $bt2  autopoint  rm configure.ac) 
+  slurp $bt2 $bt || exit
+
+  rm -fr $bt $bt2 || exit
+fi
 
 
 # Reconfigure, getting other files.
@@ -504,11 +510,11 @@ for file in $gnulib_extra_files; do
   symlink_to_gnulib $file $dst || exit
 done
 
-
-# Create gettext configuration.
-echo $0: Creating po/Makevars from po/Makevars.template ...
-rm -f po/Makevars
-sed '
+if test $with_gettext = true; then
+  # Create gettext configuration.
+  echo $0: Creating po/Makevars from po/Makevars.template ...
+  rm -f po/Makevars
+  sed '
   /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '$EXTRA_LOCALE_CATEGORIES'/
   /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'$package'@gnu.org/
   /^XGETTEXT_OPTIONS *=/{
@@ -517,11 +523,11 @@ sed '
'$XGETTEXT_OPTIONS' $${end_of_xgettext_options+}
   }
 ' po/Makevars.template po/Makevars
-
-if test -d runtime-po; then
-  # Similarly for runtime-po/Makevars, but not quite the same.
-  rm -f runtime-po/Makevars
-  sed '
+
+  if test -d runtime-po; then
+# Similarly for runtime-po/Makevars, but not quite the same.
+rm -f runtime-po/Makevars
+sed '
 /^DOMAIN *=.*/s/=.*/= '$package'-runtime/
 /^subdir *=.*/s/=.*/= runtime-po/
 /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'$package'@gnu.org/
@@ -531,9 +537,10 @@ if test -d runtime-po; then
  '$XGETTEXT_OPTIONS_RUNTIME' $${end_of_xgettext_options+}
 }
   ' po/Makevars.template runtime-po/Makevars
-
-  # Copy identical files from po to runtime-po.
-  (cd po  cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+   
+# Copy identical files from po to runtime-po.
+(cd po  cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+  fi
 fi
 
 echo $0: done.  Now you can run './configure'.




Re: coreutils-6.0 on BeOS (9)

2006-08-24 Thread Alfred M. Szmidt
   Btw, the #ifdef __GLIBC__ in m4/fsusage.m4 looks wrong also for
   the Hurd, because glibc/sysdeps/mach/hurd/statfs64.c does not
   appear to access /proc.

/proc doesn't exist on GNU, never did.

Cheers.