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

Re: Autoconf test for Debian?



On Fri, Jun 01, 2001 at 02:32:59PM +0200, Robert Bihlmeyer wrote:
> James Bromberger <james@rcpt.to> writes:
> 
> > is being created on a Debian system. The reason is that I have a very small 
> > set of diffs that I want applied to the package only for Debian, and hope 
> > at some stage to feed these diffs upstream (things like file paths, etc). 
> 
> Why are these changes only applicable when on a Debian system? What
> about Progeny? Corel? SuSE? Orange Bone Linux? OpenBSD? SunOS? Cygwin?


Ahhh. Well. File locations. The Makefile I want to modify has certain 
installation directories set. Debian's elegent filesystem and FHS compliance 
is perhaps different from the upstream author's locations. With this 
Autoconf test, I can then select where I want these files to go with. 

I could play with the install in other ways, but this seems quite elegent. 
I haven't actually touched the source itself (C code). This is reasonably 
elegent.

> The correct way to to size up OSs and people is to check for
> capabilities, not names.

Yes, but I think in this case, locations of files are specific to Debian. 
 
> For example, if you want to know whether /proc/loadavg is usable, try
> to open it. This test will then work on any Linux, and maybe other
> systems as well, and won't break when Linux 3.17 returns to the purity
> of using /proc only for processes.
> 
> > > if test -f /etc/debian_version ; then
> > >         AC_MSG_RESULT(yes)
> > >         INSTALL="/usr/bin/install"
> > >         AC_SUBST(INSTALL)
> [...]
> 
> Why not check directly whether /usr/bin/install exists? This will then
> work on any OS that has it.

My makefile looks like this in one part:
> ifdef DEBIAN
>         bindir = $(exec_prefix)/lib/apache/1.3
> else
>         bindir = $(exec_prefix)/bin
>         libdir = $(prefix)/lib
>         infodir = $(prefix)/info
> endif



> > Is using /etc/debian_version the right thing to do, or is there a
> > better/more accurate way to determine this? Existence of
> > /usr/bin/dpkg? Existence of /var/lib/dpkg?
> 
> Since /etc/debian_version is a conffile, a user may have removed it.
> My answer would be to check if "dpkg -s base-files" succeeds, but
> that's not 100 % either. Anyway, you shouldn't do that, see above.


Yes, but as Nick Bannon pointed out to me off list, dpkg is portable, and 
supposedly has been ported to other distros/platforms(?). Thus, I was looking 
for a sure fire way to know that I am on a Debian system during compilation. 
Thus these specific file locations can be sent upstream (perhaps?).


Ta,
  James


-- 
 James Bromberger <james_AT_rcpt.to> www.rcpt.to/~james

       * *  C u in Bordeaux - 1st Debian Conference, July 2001 * * 
 Remainder moved to http://www.rcpt.to/~james/james/sig.html

Attachment: pgpFf3oMfkGTn.pgp
Description: PGP signature


Reply to: