Sharing sources in CVS

Michael Schwendt bugs.michael at gmx.net
Sat Jun 10 10:52:33 UTC 2006


On Fri, 09 Jun 2006 22:04:34 -0500, Jeffrey C. Ollie wrote:

> On Fri, 2006-06-09 at 16:43 -0700, Michael Thomas wrote:
> 
> > Is it possible to share a source tarball between two separate packages
> > in CVS? 

Yes.

> Alternately, would it be possible to have two spec files in the
> > same CVS module, so that they could be built separately?

Better don't try this.

> > Or will either
> > of these solutions just confuse the build system?

Likely.

> Yes, it's possible... The build system tracks source tarballs by MD5
> hashes.  The build system will keep only one copy of the source tarball,
> no matter how many packages attempt to upload it.   When no more
> packages reference the source tarball it will be purged from the system.

Don't put more than one spec file into a CVS module root. One src.rpm per
module, one spec file. Don't expect any magic which knows which one of
multiple spec files to use during rpmbuild.

WRT the source tarball, any file not stored in CVS, but uploaded into
lookaside cache with "make upload FILES=..." or "make new-sources
FILES=..." is identified by its filename and MD5 checksum as specified in
the "sources" file in CVS. Any "sources" file in CVS can reference any
file in lookaside cache.

For example:

  cd bar/devel
  make upload FILES=bar-1.0.tar.gz

makes available "bar-1.0.tar.gz" _globally_, i.e. any other branch of
"bar" in CVS, any other module in CVS can access it. No need to try
uploading the tarball from within ../bar/FC-5, ../bar/FC-4 or
../foobar/devel. You only need a proper "sources" file with the right MD5
checksum for this tarball. You can simply copy known good "sources" and
".cvsignore" files to a different branch or module and commit them.




More information about the fedora-extras-list mailing list