automake
[Top][All Lists]
Advanced

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

Re: make distcheck fails for simple Makefile.am


From: Roger Leigh
Subject: Re: make distcheck fails for simple Makefile.am
Date: Mon, 20 Jun 2005 10:11:10 +0100
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ralf Wildenhues <address@hidden> writes:

> * Roger Leigh wrote on Sat, Jun 18, 2005 at 12:47:08PM CEST:
>> 
>> In a simple Makefile.am:
>> 
>> pamdir = /etc/pam.d
>> pam_DATA = schroot
>> EXTRA_DIST = $(pam_DATA)
>> 
>> make distcheck fails:
>
> Make that 
>   pamdir = $(prefix)/etc/pam.d
>
> but you really should be using sysconfdir:
>   pamdir = $(sysconfdir)/pam.d
>
> so that both the casual user and the distribution packager can easily
> override the values: the former could do
>   configure --sysconfdir=/etc   # rest goes under /usr/local
> whereas the latter does
>   configure --prefix=/

In this case, it will always be /etc/pam.d.  This directory is the
location of the Linux-PAM service configuration files.  For security,
libpam won't look anywhere else.  The package has other files to
install in $(sysconfdir), so using $(sysconfdir) would be wrong
because it's likely I might want that to be some other value.

I /could/ do this, but I would likely need to override pamdir during
'make install' if it was wrong, which really defeats the point.  If it
only works when $(sysconfdir)=/etc, it's broken the rest of the time.

> So no, this is not a bug in Automake.

IMO the ability to use literal absolute paths is unconventional, but
sometimes required.  If "make distcheck" used $(DESTDIR) rather than
relying on the fact that *all* install paths begin with $(prefix), it
would be rather more reliable.

It's often the case that a package installs files in locations picked
up by configure.  e.g. in gimp-print the CUPS PPD files get installed
in `cups-config --datadir`, and the drivers in `cups-config
- --serverbin`/filter.  'make distcheck' has never worked because of
this.

In both of these cases, the location is dictated by packages already
installed on the system.  That location is completely independent of
$(prefix).

In summary:
- - any location that does not start with $(prefix) will break distcheck
- - this could be fixed by using $(DESTDIR)


- -- 
Roger Leigh
                Printing on GNU/Linux?  http://gimp-print.sourceforge.net/
                Debian GNU/Linux        http://www.debian.org/
                GPG Public Key: 0x25BFB848.  Please sign and encrypt your mail.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>

iD8DBQFCtogsVcFcaSW/uEgRAiKvAJ0ZGJTRKaR8jbdtSkmMQOgDLon4ggCghaWB
H+2hTK+ctTD8HLujdPbKKzc=
=KW8k
-----END PGP SIGNATURE-----




reply via email to

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