Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 4534 - CVS support in Portage ebuilds
Summary: CVS support in Portage ebuilds
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Daniel Robbins (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-07-04 10:46 UTC by Sean E Russell
Modified: 2011-10-30 22:21 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sean E Russell 2002-07-04 10:46:24 UTC
I'm pretty darned happy with Portage, but before I knew about it and was using 
RPMs, one topic I kept coming back to was the idea of sparse distributions. 
 
Gentoo doesn't have direct support for sparse distributions, and I'd like to 
request some "helper functions" in ebuild to support CVS-based distributions. 
 
Consider a hypothetical system.  I use CVS here because CVS is extremely common 
as a source repository, and CVS clients for practically every OS. 
 
   FRESH INSTALL: 
   1) 'cvs checkout' project in normal build directory. 
   2) Make a tarball from checkout directory, and move it to the  
      tarball dir.  We do this to save space on the client. 
   3) Go about normal build/install process 
 
   UPGRADE: 
   1) Unpack previous tarball to build directory. 
   2) 'cvs up -z3 -rxxx' the directory 
   3) Rebuild tarball, and replace old tarball 
   4) Go about normal build/install process 
 
Rather than downloading a binary in which only a couple of files may have 
changed, we sparsely download only the diffs.  This could drastically reduce 
the amount of network traffic for Gentoo systems.  Consider Mozilla or KDE -- 
enormous distributions which would greatly benefit from CVS distribution, 
even on machines that live on a fast network. 
 
My wishlist then would be the simple addition of one ebuild variable, and some 
additional behavior in Portage if it recognizes the variable: 
 
 CVSSRC=':pserver:...' 
 
If Portage sees CVSSRC, it knows that it is dealing with a CVS distribution, 
and will behave accordingly.  SRC can still be available for downloading patches 
and supporting tarballs. Then, the src_unpack() would handle the CVS checkout 
and tarball creation.  The rest of the build process would proceed normally. 
 
This is analogous to Portage's use of rsync for maintaining the ebuild 
directory on the client machine.  rsync would work just as well as CVS, but CVS 
is much more common as a distribution mechanism.  In fact, once the CVS support 
were added, extending the system to support adding rsync would be probably two 
or three lines of code, and would add a new variable: 
 
 RSYNCSRC="uri" 
 
Thanks for taking the time to read this, and I'm sorry for not implementing it 
myself and sending you patches.
Comment 1 SpanKY gentoo-dev 2002-10-07 13:45:00 UTC
/usr/portage/eclass/cvs.eclass