[Top][All Lists]

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

Re: Updating a package's gnulib files in CVS

From: Eric Blake
Subject: Re: Updating a package's gnulib files in CVS
Date: Sun, 18 Nov 2007 17:28:31 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20071031 Thunderbird/ Mnenhy/

Hash: SHA1

According to Denver Gingerich on 11/18/2007 5:03 PM:
> I would like to update the gnulib files for the package I'm
> maintaining (wdiff) in CVS (I've decided to check-in the gnulib files
> so people using CVS don't have to run gnulib).  However, running
> "gnulib-tool --import" or "gnulib-tool --update" creates a bunch of
> files I don't want, such as .cvsignore and backup files (ending in
> "~").

I don't know of any way besides manual filtering of these extra files -
basically, they are created on your machine, but you don't have to check
them into CVS.

>  It also appears to install new files with an added "_" (ie.
> stdlib_.h).

Now for some background: there are two schools of thought on generated
files.  One (which Bruno subscribes to as the author of gnulib-tool, and
which I agree with) is that all files that can be generated by tools
available to maintainers should be omitted from your wget repository,
since anyone else developing wget should be able to use the same
prerequisite tools (or even better, a slightly different version of the
prerequisite tools, without fighting spurious diffs).  In this case,
gnulib-tool's .cvsignore is the right thing (and in fact, doesn't ignore
enough files for my liking - the m4 ./bootstrap script adds additional
entries to .gitignore, including the .gitignore itself).  In this school
of thought, stdint_.h is a generated file, since it was copied from
gnulib, and anyone checking out CVS must use 'gnulib-tool --update'
(perhaps invoked under the hood by ./bootstrap) to get that file.  The
file stdint.h is also a generated file, created at make time according to
the results of ./configure.

The other (which you appear to subscribe to) is that any file that
requires a special tool to regenerate should be versioned alongside the
original source files, so that anyone else can check out a CVS view
without having to also install prerequisite tools.  In this school of
thought, stdint_.h should be checked in to CVS (it was copied by gnulib,
which counts as a maintainer-specific tool that not everyone uses, but is
machine-independent), but stdint.h should be omitted from CVS (it is
created by make which is a standard tool taht everyone uses, it contains
platform-specific information, and checking it in based on your machine
will cause spurious conflicts or even compilation errors when used on
another machine).

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


reply via email to

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