automake
[Top][All Lists]
Advanced

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

Re: cannot create directory `.am2128': Permission denied


From: Dave Hart
Subject: Re: cannot create directory `.am2128': Permission denied
Date: Sat, 20 Feb 2010 09:51:28 +0000

On Sat, Feb 20, 2010 at 8:52 UTC, Ralf Wildenhues wrote:
> Isn't this still a user error though?  The problem with your info files
> depending on compiled programs is that you then cannot easily distribute
> them?  Put another way, if something in the source tree depends on
> something in the build tree, then that is a packaging bug, because it
> prevents building off a readonly medium, and causes things to be
> regenerated that shouldn't need to.

NTP uses Autogen's autoopts and derives .texi files from the option
definitions file (.def) and from the compiled binary (to get the usage
text) and ran into some issues with the odd dependency.  NTP does not
currently generate .info files so we haven't run into the bug with the
read-only source directory and Automake's .texi.info rule.

NTP 4.2.6 and later[1] solve the dependency problem by avoiding it:
there is no dependency of the .texi on the compiled binary listed,
rather, we rely on the fact that the real source of the usage text
embedded in the compiled binary is the options definitions file, such
as ntpd-opts.def, and any files it includes.  The .texi product is
listed in our .am files under both EXTRA_DIST and noinst_DATA, which
seems to have the desired effect of deferring .texi generation until
after the compiled binary is ready.

If you build from a read-only source directory, no problem, because
your .def file will be older than your .texi, arranged by the
bootstrap script run by someone building from a SCM checkout, or by
the tarball builder.  No attempt to make the .texi will occur.

You might also notice autogen is invoked in NTP builds with the build
dir prepended to $PATH.  This is needed by aginfo.tpl, the template
that is used to generate the .texi/.menu output, because it invokes
the compiled binary from $PATH if it is not in the current directory,
and we invoke it in the source directory (so that we can distribute
the .texi and most users and even developers then don't need the
latest Autogen to build NTP).

Cheers,
Dave Hart
A.K.A. address@hidden

[1]  
http://ntp.bkbits.net:8080/ntp-stable/ntpdc/Makefile.am?PAGE=anno&REV=4b3ae9b3ljwKXdhRVvoPxS6G_K2K5Q
or http://tinyurl.com/yhsd2rt




reply via email to

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