Implementing notrans_man_MANS (Was: Automake bug #516 -- and more)

2008-02-19 Thread Peter Breitenlohner

On Wed, 30 Jan 2008, Ralf Wildenhues wrote:

Hello Ralf,


* Peter Breitenlohner wrote on Wed, Jan 23, 2008 at 10:28:28AM CET:
[...]

(1) In some cases it is completely inadequate to apply the program name
transform to manpage names.
[...]
Maybe that could be taken care of by something like notransform_MAN_MANS
(needs a better name).


notrans_man_MANS sounds good to me.


I now have a working version of notrans_man1_MANS & Co, but I noticed an
additional problem: The target 'install-man1' tries to install, e.g.,
'$(dist_man1_MANS)' but doesn't depend on it. I want to fix that as well, at
the same time omitting unused variables.

Still missing are: (1) documentation in autoconf.texi, (2) a test case, and
(3) a ChangeLog entry.

How should I proceed, once all that is finished? Email to you and/or
automake bugzilla?

Are unified diffs against the autoamke-1.10.1 tarball OK?

What about re-indenting existing code?


(2) There are packages with translated manpages -- good. But automake
provides no way to supress their installation or to install them for a
subset of the available languages -- not good.


I'll come back to this at some later time.

Regards Peter




Re: Implementing notrans_man_MANS

2008-02-19 Thread Ralf Wildenhues
Hello Peter,

* Peter Breitenlohner wrote on Tue, Feb 19, 2008 at 10:25:34AM CET:
>
> I now have a working version of notrans_man1_MANS & Co, but I noticed an
> additional problem: The target 'install-man1' tries to install, e.g.,
> '$(dist_man1_MANS)' but doesn't depend on it. I want to fix that as well, at
> the same time omitting unused variables.
>
> Still missing are: (1) documentation in autoconf.texi, (2) a test case, and
> (3) a ChangeLog entry.
>
> How should I proceed, once all that is finished? Email to you and/or
> automake bugzilla?

[EMAIL PROTECTED] is best.

> Are unified diffs against the autoamke-1.10.1 tarball OK?

Yes.

> What about re-indenting existing code?

Please as a separate patch if possible, and please following the
already-used style.

Thanks,
Ralf




Support for a non-standard directory

2008-02-19 Thread Richard Bos
Hi,

Summary:
For an open source project, that I work on, it is needed to define a webserver 
root directory.  This is done using a variable webserver_document_root, that 
is (in my case) defined as /srv/www/htdocs.

(please Cc me as I'm not subscribe to the automake ML).

When I now run:
DISTCHECK_CONFIGURE_FLAGS="--with-dist=suse --without-openpkg" make distcheck 
it fails :(

Whatever I do to the webserver_document_root (more details about this below) 
it either fails the 'make distcheck', or 'make install' installs in an 
incorrect location.

I'm now going to use a workaround to (mis)use the configure argument --htmldir 
to define the webserver root directory.

Two questions:
1) is a feature request feasible, asking to extend configure so it gets a 
command line option that can be used to define the webserver root directory 
(--webserverdir e.g.)?  If I search the internet, more people are fighting 
this battle to obtain a webserver root directory with autotools and 
have 'make distcheck' work.  Hence, it would serve multiple people.

2) Is there a way, that I can make it work with the current automake, autoconf 
combo?  I use automake-1.10

I tried:
$(distdir)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(prefix)$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(prefix)/$(webserver_document_root)$(webserver_web_prefix)
The changes above result in a working distcheck, but not in a correct
behaving: 'make install DESTDIR='.  The result is e.g:
[/var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/ME] >
ls ./var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/ME
(even more details below)

The webserver_document_root is defined in a file that is included from 
Makefile.am with a variable @[EMAIL PROTECTED]  The variable is filled in 
during 
configure time.  Snappit from Makefile.am:
EXTRA_DIST =
CLEANFILES =

@distribution@
@common@
.


Hopefully, you don't shoot me for this lenghty email.  What is your advice 
regarding this?



-- 
TIA,

Richard Bos
Without a home the journey is endless


Some more data


Create tarbal:
kolab-webadmin> ./bootstrap
kolab-webadmin> ./configure --without-openpkg --with-dist=suse
kolab-webadmin> make distcheck > out 2>&1
kolab-webadmin> grep -c openpkg out
144
This is not good, as there should be no openpkg reference due to
the --without-openpkg argument.

The correct way to execute 'make distcheck' is therefor:
kolab-webadmin> DISTCHECK_CONFIGURE_FLAGS="--with-dist=suse --without-openpkg" 
make distcheck > out 2>&1
kolab-webadmin> grep -c openpkg out
0
This is good, but now 'make distcheck' fails:
kolab-webadmin> tail -7 out
test -z "/srv/www/htdocs/kolab/admin/pics" || /bin/mkdir -p 
"/srv/www/htdocs/kolab/admin/pics"
/bin/mkdir: cannot create directory `/srv/www/htdocs/kolab': Permission denied
make[2]: *** [install-dist_wspicsDATA] Error 1
make[2]: Leaving directory 
`/var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/_build'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory 
`/var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/_build'
make: *** [distcheck] Error 2

The reason is the definition of the webserver directory in Makefile.am
kolab-webadmin> grep -n webserver_document_root Makefile.am
21:wstopleveldir = $(webserver_document_root)$(webserver_web_prefix)
29:wskolabdir = $(webserver_document_root)$(webserver_web_prefix)/admin

This definition does not take the destination directory into account.
Whatever I tried to change the behaviour of automake, I did not get it 
correct.
I tried e.g.:
$(distdir)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(prefix)$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(prefix)/$(webserver_document_root)$(webserver_web_prefix)
The changes above result in a working distcheck, but not in a correct
behaving: 'make install DESTDIR='.

When 
21:wstopleveldir = $(webserver_document_root)$(webserver_web_prefix)
29:wskolabdir = $(webserver_document_root)$(webserver_web_prefix)/admin
is changed to:
21:wstopleveldir = $(htmldir)$(webserver_web_prefix)
29:wskolabdir = $(htmldir)$(webserver_web_prefix)/admin
make distcheck works as well
make install DESTDIR=.







Re: AM_INIT_AUTOMAKE uses a deprecated macro

2008-02-19 Thread Ralf Wildenhues
* NightStrike wrote on Tue, Feb 19, 2008 at 06:53:04AM CET:
> When I use AM_INIT_AUTOMAKE, it makes use of _AM_SET_OPTIONS, which
> uses AC_FOREACH, which is deprecated in autoconf and referenced in the
> autoconf manual as deprecated.  I thought I was using all of the
> "latest and greatest" tools.  Has this been updated?  If so, how/where
> do I get the update?

Fixed thusly, master and branch-1-10.  Thanks for the report.

Cheers,
Ralf

2008-02-19  Ralf Wildenhues  <[EMAIL PROTECTED]>

PR automake/498
* m4/options.m4 (_AM_SET_OPTIONS): Use m4_foreach_w instead of
obsolete AC_FOREACH.
Report by NightStrike and [EMAIL PROTECTED]

diff --git a/m4/options.m4 b/m4/options.m4
index 34c086d..8e5017e 100644
--- a/m4/options.m4
+++ b/m4/options.m4
@@ -1,12 +1,12 @@
 # Helper functions for option handling. -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # _AM_MANGLE_OPTION(NAME)
 # ---
@@ -23,7 +23,7 @@ AC_DEFUN([_AM_SET_OPTION],
 # --
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
 
 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
 # ---