[Top][All Lists]
[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-----