@@ -84,7 +84,6 @@ fetcher does know how to use HTTP as a transport.
Here are some examples that show commonly used mirror definitions::
PREMIRRORS ?= "\
- cvs://.*/.\* http://somemirror.org/sources/ \
git://.*/.\* http://somemirror.org/sources/ \
hg://.*/.\* http://somemirror.org/sources/ \
p4://.*/.\* http://somemirror.org/sources/ \
@@ -264,76 +263,6 @@ Some example URLs are as follows::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
-
-.. _cvs-fetcher:
-
-CVS fetcher (``(cvs://``)
--------------------------
-
-This submodule handles checking out files from the CVS version control
-system. You can configure it using a number of different variables:
-
-- :term:`FETCHCMD_cvs <FETCHCMD>`: The name of the executable to use when running
- the ``cvs`` command. This name is usually "cvs".
-
-- :term:`SRCDATE`: The date to use when fetching the CVS source code. A
- special value of "now" causes the checkout to be updated on every
- build.
-
-- :term:`CVSDIR`: Specifies where a temporary
- checkout is saved. The location is often ``DL_DIR/cvs``.
-
-- CVS_PROXY_HOST: The name to use as a "proxy=" parameter to the
- ``cvs`` command.
-
-- CVS_PROXY_PORT: The port number to use as a "proxyport="
- parameter to the ``cvs`` command.
-
-As well as the standard username and password URL syntax, you can also
-configure the fetcher with various URL parameters:
-
-The supported parameters are as follows:
-
-- *"method":* The protocol over which to communicate with the CVS
- server. By default, this protocol is "pserver". If "method" is set to
- "ext", BitBake examines the "rsh" parameter and sets ``CVS_RSH``. You
- can use "dir" for local directories.
-
-- *"module":* Specifies the module to check out. You must supply this
- parameter.
-
-- *"tag":* Describes which CVS TAG should be used for the checkout. By
- default, the TAG is empty.
-
-- *"date":* Specifies a date. If no "date" is specified, the
- :term:`SRCDATE` of the configuration is used to
- checkout a specific date. The special value of "now" causes the
- checkout to be updated on every build.
-
-- *"localdir":* Used to rename the module. Effectively, you are
- renaming the output directory to which the module is unpacked. You
- are forcing the module into a special directory relative to
- :term:`CVSDIR`.
-
-- *"rsh":* Used in conjunction with the "method" parameter.
-
-- *"scmdata":* Causes the CVS metadata to be maintained in the tarball
- the fetcher creates when set to "keep". The tarball is expanded into
- the work directory. By default, the CVS metadata is removed.
-
-- *"fullpath":* Controls whether the resulting checkout is at the
- module level, which is the default, or is at deeper paths.
-
-- *"norecurse":* Causes the fetcher to only checkout the specified
- directory with no recurse into any subdirectories.
-
-- *"port":* The port to which the CVS server connects.
-
-Some example URLs are as follows::
-
- SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
- SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
-
.. _svn-fetcher:
Subversion (SVN) Fetcher (``svn://``)
@@ -1131,10 +1131,6 @@ overview of their function and contents.
Specifies the directory BitBake uses to store a cache of the metadata
so it does not need to be parsed every time BitBake is started.
- :term:`CVSDIR`
- The directory in which files checked out under the CVS system are
- stored.
-
:term:`DEFAULT_PREFERENCE`
Specifies a weak bias for recipe selection priority.
@@ -1635,9 +1631,6 @@ overview of their function and contents.
- ``ccrc://``: Fetches files from a ClearCase repository.
- - ``cvs://``: Fetches files from a CVS revision control
- repository.
-
- ``file://``: Fetches files, which are usually files shipped
with the Metadata, from the local machine.
The path is relative to the :term:`FILESPATH`
@@ -2100,7 +2100,6 @@ class FetchConnectionCache(object):
self.cache[cn].close()
del self.cache[cn]
-from . import cvs
from . import git
from . import gitsm
from . import gitannex
@@ -2127,7 +2126,6 @@ methods.append(svn.Svn())
methods.append(git.Git())
methods.append(gitsm.GitSM())
methods.append(gitannex.GitANNEX())
-methods.append(cvs.Cvs())
methods.append(ssh.SSH())
methods.append(sftp.SFTP())
methods.append(s3.S3())
deleted file mode 100644
@@ -1,157 +0,0 @@
-"""
-BitBake 'Fetch' implementations
-
-Classes for obtaining upstream sources for the
-BitBake build tools.
-
-"""
-
-# Copyright (C) 2003, 2004 Chris Larson
-#
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Based on functions from the base bb module, Copyright 2003 Holger Schurig
-#
-
-import os
-import bb
-from bb.fetch2 import FetchMethod, FetchError, MissingParameterError, logger
-from bb.fetch2 import runfetchcmd
-
-class Cvs(FetchMethod):
- """
- Class to fetch a module or modules from cvs repositories
- """
- def supports(self, ud, d):
- """
- Check to see if a given url can be fetched with cvs.
- """
- return ud.type in ['cvs']
-
- def urldata_init(self, ud, d):
- if not "module" in ud.parm:
- raise MissingParameterError("module", ud.url)
- ud.module = ud.parm["module"]
-
- ud.tag = ud.parm.get('tag', "")
-
- # Override the default date in certain cases
- if 'date' in ud.parm:
- ud.date = ud.parm['date']
- elif ud.tag:
- ud.date = ""
-
- norecurse = ''
- if 'norecurse' in ud.parm:
- norecurse = '_norecurse'
-
- fullpath = ''
- if 'fullpath' in ud.parm:
- fullpath = '_fullpath'
-
- ud.localfile = d.expand('%s_%s_%s_%s%s%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date, norecurse, fullpath))
-
- pkg = d.getVar('PN')
- cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
- ud.pkgdir = os.path.join(cvsdir, pkg)
-
- def need_update(self, ud, d):
- if (ud.date == "now"):
- return True
- if not os.path.exists(ud.localpath):
- return True
- return False
-
- def download(self, ud, d):
-
- method = ud.parm.get('method', 'pserver')
- localdir = ud.parm.get('localdir', ud.module)
- cvs_port = ud.parm.get('port', '')
-
- cvs_rsh = None
- if method == "ext":
- if "rsh" in ud.parm:
- cvs_rsh = ud.parm["rsh"]
-
- if method == "dir":
- cvsroot = ud.path
- else:
- cvsroot = ":" + method
- cvsproxyhost = d.getVar('CVS_PROXY_HOST')
- if cvsproxyhost:
- cvsroot += ";proxy=" + cvsproxyhost
- cvsproxyport = d.getVar('CVS_PROXY_PORT')
- if cvsproxyport:
- cvsroot += ";proxyport=" + cvsproxyport
- cvsroot += ":" + ud.user
- if ud.pswd:
- cvsroot += ":" + ud.pswd
- cvsroot += "@" + ud.host + ":" + cvs_port + ud.path
-
- options = []
- if 'norecurse' in ud.parm:
- options.append("-l")
- if ud.date:
- # treat YYYYMMDDHHMM specially for CVS
- if len(ud.date) == 12:
- options.append("-D \"%s %s:%s UTC\"" % (ud.date[0:8], ud.date[8:10], ud.date[10:12]))
- else:
- options.append("-D \"%s UTC\"" % ud.date)
- if ud.tag:
- options.append("-r %s" % ud.tag)
-
- cvsbasecmd = d.getVar("FETCHCMD_cvs") or "/usr/bin/env cvs"
- cvscmd = cvsbasecmd + " '-d" + cvsroot + "' co " + " ".join(options) + " " + ud.module
- cvsupdatecmd = cvsbasecmd + " '-d" + cvsroot + "' update -d -P " + " ".join(options)
-
- if cvs_rsh:
- cvscmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvscmd)
- cvsupdatecmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvsupdatecmd)
-
- # create module directory
- logger.debug2("Fetch: checking for module directory")
- moddir = os.path.join(ud.pkgdir, localdir)
- workdir = None
- if os.access(os.path.join(moddir, 'CVS'), os.R_OK):
- logger.info("Update " + ud.url)
- bb.fetch2.check_network_access(d, cvsupdatecmd, ud.url)
- # update sources there
- workdir = moddir
- cmd = cvsupdatecmd
- else:
- logger.info("Fetch " + ud.url)
- # check out sources there
- bb.utils.mkdirhier(ud.pkgdir)
- workdir = ud.pkgdir
- logger.debug("Running %s", cvscmd)
- bb.fetch2.check_network_access(d, cvscmd, ud.url)
- cmd = cvscmd
-
- runfetchcmd(cmd, d, cleanup=[moddir], workdir=workdir)
-
- if not os.access(moddir, os.R_OK):
- raise FetchError("Directory %s was not readable despite sucessful fetch?!" % moddir, ud.url)
-
- scmdata = ud.parm.get("scmdata", "")
- if scmdata == "keep":
- tar_flags = ""
- else:
- tar_flags = "--exclude='CVS'"
-
- # tar them up to a defined filename
- workdir = None
- if 'fullpath' in ud.parm:
- workdir = ud.pkgdir
- cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, localdir)
- else:
- workdir = os.path.dirname(os.path.realpath(moddir))
- cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.basename(moddir))
-
- runfetchcmd(cmd, d, cleanup=[ud.localpath], workdir=workdir)
-
- def clean(self, ud, d):
- """ Clean CVS Files and tarballs """
-
- bb.utils.remove(ud.pkgdir, True)
- bb.utils.remove(ud.localpath)
-
@@ -158,39 +158,6 @@ class URITest(unittest.TestCase):
'query': {},
'relative': False
},
- "cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg" : {
- 'uri': 'cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg',
- 'scheme': 'cvs',
- 'hostname': 'cvs.handhelds.org',
- 'port': None,
- 'hostport': 'cvs.handhelds.org',
- 'path': '/cvs',
- 'userinfo': 'anoncvs',
- 'username': 'anoncvs',
- 'password': '',
- 'params': {
- 'module': 'familiar/dist/ipkg'
- },
- 'query': {},
- 'relative': False
- },
- "cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg": {
- 'uri': 'cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg',
- 'scheme': 'cvs',
- 'hostname': 'cvs.handhelds.org',
- 'port': None,
- 'hostport': 'cvs.handhelds.org',
- 'path': '/cvs',
- 'userinfo': 'anoncvs:anonymous',
- 'username': 'anoncvs',
- 'password': 'anonymous',
- 'params': collections.OrderedDict([
- ('tag', 'V0-99-81'),
- ('module', 'familiar/dist/ipkg')
- ]),
- 'query': {},
- 'relative': False
- },
"file://example.diff": { # NOTE: Not RFC compliant!
'uri': 'file:example.diff',
'scheme': 'file',
@@ -1417,8 +1384,6 @@ class URLHandle(unittest.TestCase):
password = urllib.parse.quote(r"!#$%^&*()-_={}[]\|:?,.<>~`", r"!$&'/()*+,;=")
datatable = {
"http://www.google.com/index.html" : ('http', 'www.google.com', '/index.html', '', '', {}),
- "cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', '', {'module': 'familiar/dist/ipkg'}),
- "cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', collections.OrderedDict([('tag', 'V0-99-81'), ('module', 'familiar/dist/ipkg')])),
"git://git.openembedded.org/bitbake;branch=@foo;protocol=https" : ('git', 'git.openembedded.org', '/bitbake', '', '', {'branch': '@foo', 'protocol' : 'https'}),
"file://somelocation;someparam=1": ('file', '', 'somelocation', '', '', {'someparam': '1'}),
"file://example@.service": ('file', '', 'example@.service', '', '', {}),
CVS is extremely dated technology and is not used anywhere significant/public any more. The existing code is not well maintained and is hard to test without any public CVS repositories. To be honest, if you're still using CVS you really shouldn't be. Remove the fetcher as obsolete and a generally bad idea now. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> --- .../bitbake-user-manual-fetching.rst | 71 -------- .../bitbake-user-manual-ref-variables.rst | 7 - lib/bb/fetch2/__init__.py | 2 - lib/bb/fetch2/cvs.py | 157 ------------------ lib/bb/tests/fetch.py | 35 ---- 5 files changed, 272 deletions(-) delete mode 100644 lib/bb/fetch2/cvs.py