Hello community,
here is the log from the commit of package obs-service-tar_scm for
openSUSE:Factory checked in at 2018-04-27 15:59:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-tar_scm (Old)
and /work/SRC/openSUSE:Factory/.obs-service-tar_scm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-tar_scm"
Fri Apr 27 15:59:50 2018 rev:47 rq:600981 version:0.9.0.1523267117.de861d8
Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-tar_scm/obs-service-tar_scm.changes
2018-04-22 14:30:58.539780282 +0200
+++
/work/SRC/openSUSE:Factory/.obs-service-tar_scm.new/obs-service-tar_scm.changes
2018-04-27 15:59:57.318911063 +0200
@@ -1,0 +2,10 @@
+Thu Apr 19 09:52:18 UTC 2018 - [email protected]
+
+- Update to version v0.9.0.1523267117.de861d8:
+ * Removing redundant pass statement
+ * fixing indentation warnings from flake8
+ * fixing flake8 warnings, missing imports
+ * missing import for logging functions.
+ * [backend] Adding http proxy support
+
+-------------------------------------------------------------------
Old:
----
obs-service-tar_scm-0.8.0.1520581079.e26b0ae.tar.gz
New:
----
obs-service-tar_scm-0.9.0.1523267117.de861d8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-tar_scm.spec ++++++
--- /var/tmp/diff_new_pack.bnCgn5/_old 2018-04-27 15:59:58.002885959 +0200
+++ /var/tmp/diff_new_pack.bnCgn5/_new 2018-04-27 15:59:58.006885812 +0200
@@ -19,8 +19,8 @@
%bcond_without obs_scm_testsuite
Name: obs-service-tar_scm
-%define version_unconverted 0.8.0.1520581079.e26b0ae
-Version: 0.8.0.1520581079.e26b0ae
+%define version_unconverted 0.9.0.1523267117.de861d8
+Version: 0.9.0.1523267117.de861d8
Release: 0
Summary: An OBS source service: create tar ball from svn/git/hg
License: GPL-2.0-or-later
@@ -51,9 +51,9 @@
BuildRequires: python-dateutil
BuildRequires: python-lxml
BuildRequires: python-mock
-BuildRequires: python-unittest2
%endif
BuildRequires: python >= 2.6
+BuildRequires: python-unittest2
Requires: git-core
Recommends: bzr
Recommends: mercurial
++++++ _service ++++++
--- /var/tmp/diff_new_pack.bnCgn5/_old 2018-04-27 15:59:58.058883903 +0200
+++ /var/tmp/diff_new_pack.bnCgn5/_new 2018-04-27 15:59:58.062883757 +0200
@@ -4,9 +4,10 @@
<param name="scm">git</param>
<param name="exclude">.git</param>
<param name="version">git-master</param>
- <param name="versionformat">0.8.0.%ct.%h</param>
+ <param name="versionformat">@PARENT_TAG@.%ct.%h</param>
<param name="changesgenerate">enable</param>
<param name="extract">dist/obs-service-tar_scm.spec</param>
+ <param name="versionrewrite-pattern">v(.*)</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.bnCgn5/_old 2018-04-27 15:59:58.086882875 +0200
+++ /var/tmp/diff_new_pack.bnCgn5/_new 2018-04-27 15:59:58.086882875 +0200
@@ -5,4 +5,4 @@
<param
name="url">git://github.com/M0ses/obs-service-tar_scm.git</param>
<param
name="changesrevision">b742dfc0e12755cf306a95439494b5bdde7c0c61</param></service><service
name="tar_scm">
<param
name="url">git://github.com/openSUSE/obs-service-tar_scm.git</param>
- <param
name="changesrevision">1d2c3354f318bec26ba21df0c6b2218776a9dc05</param></service></servicedata>
\ No newline at end of file
+ <param
name="changesrevision">092ed79e144abbfee97fef9aebf1e93bc40ab3fa</param></service></servicedata>
\ No newline at end of file
++++++ obs-service-tar_scm-0.8.0.1520581079.e26b0ae.tar.gz ->
obs-service-tar_scm-0.9.0.1523267117.de861d8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/changes.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/changes.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/changes.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/changes.py
2018-04-09 11:45:17.000000000 +0200
@@ -202,6 +202,7 @@
shutil.move(tmp_fp.name, changes_filename)
def get_changesauthor(self, args):
+ changesauthor = None
# return changesauthor if given as cli option
if args.changesauthor:
return args.changesauthor
@@ -211,7 +212,6 @@
files = [[os.path.join(os.environ['HOME'], '.oscrc'), False]]
cfg = Config(files)
- changesauthor = None
section = cfg.get('general', 'apiurl')
if section:
changesauthor = cfg.get(section, 'email')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/base.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/base.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/base.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/base.py
2018-04-09 11:45:17.000000000 +0200
@@ -47,6 +47,12 @@
self._calc_repocachedir()
self._final_rename_needed = False
+ # proxy support
+ self.httpproxy = None
+ self.httpsproxy = None
+ self.noproxy = None
+ self._calc_proxies()
+
def check_scm(self):
'''check version of scm to proof, it is installed and executable'''
subprocess.Popen(
@@ -150,6 +156,27 @@
self.repohash = self.get_repocache_hash(self.args.subdir)
self.repocachedir = os.path.join(repocachedir, self.repohash)
+ def _calc_proxies(self):
+ # check for standard http/https proxy variables
+ # - http_proxy
+ # - https_proxy
+ # - no_proxy
+ httpproxy = os.getenv('http_proxy')
+ httpsproxy = os.getenv('https_proxy')
+ noproxy = os.getenv('no_proxy')
+
+ if httpproxy:
+ logging.debug("HTTP proxy found: %s", httpproxy)
+ self.httpproxy = httpproxy
+
+ if httpsproxy:
+ logging.debug("HTTPS proxy found: %s", httpsproxy)
+ self.httpsproxy = httpsproxy
+
+ if noproxy:
+ logging.debug("HTTP no proxy found: %s", noproxy)
+ self.noproxy = noproxy
+
def prepare_clone_dir(self):
# special case when using osc and creating an obscpio, use
# current work directory to allow the developer to work inside
@@ -257,4 +284,4 @@
self.lock_file = None
def finalize(self):
- pass
+ self.cleanup()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/bzr.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/bzr.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/bzr.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/bzr.py
2018-04-09 11:45:17.000000000 +0200
@@ -8,9 +8,16 @@
class Bzr(Scm):
scm = 'bzr'
+ def _get_scm_cmd(self):
+ """Compose a BZR-specific command line using http proxies."""
+ # Bazaar honors the http[s]_proxy variables, no action needed
+ scmcmd = ['bzr']
+
+ return scmcmd
+
def fetch_upstream_scm(self):
"""SCM specific version of fetch_uptream for bzr."""
- command = ['bzr', 'checkout', self.url, self.clone_dir]
+ command = self._get_scm_cmd() + ['checkout', self.url, self.clone_dir]
if self.revision:
command.insert(3, '-r')
command.insert(4, self.revision)
@@ -21,7 +28,7 @@
def update_cache(self):
"""Update sources via bzr."""
- command = ['bzr', 'update']
+ command = self._get_scm_cmd() + ['update']
if self.revision:
command.insert(3, '-r')
command.insert(4, self.revision)
@@ -39,12 +46,13 @@
if versionformat is None:
versionformat = '%r'
- version = self.helpers.safe_run(['bzr', 'revno'], self.clone_dir)[1]
+ version = self.helpers.safe_run(self._get_scm_cmd() +
+ ['revno'], self.clone_dir)[1]
return re.sub('%r', version.strip(), versionformat)
def get_timestamp(self):
log = self.helpers.safe_run(
- ['bzr', 'log', '--limit=1', '--log-format=long'],
+ self._get_scm_cmd() + ['log', '--limit=1', '--log-format=long'],
self.clone_dir
)[1]
match = re.search(r'timestamp:(.*)', log, re.MULTILINE)
@@ -53,3 +61,7 @@
tsm = match.group(1).strip()
timestamp = dateutil.parser.parse(tsm).strftime("%s")
return int(timestamp)
+
+ # no cleanup is necessary for bzr
+ def cleanup(self):
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/git.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/git.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/git.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/git.py
2018-04-09 11:45:17.000000000 +0200
@@ -8,6 +8,21 @@
class Git(Scm):
scm = 'git'
+ def _get_scm_cmd(self):
+ """Compose a GIT-specific command line using http proxies"""
+ # git should honor the http[s]_proxy variables, but we need to
+ # guarantee this, the variables do not work every time
+ # the no_proxy variable is honored everytime, so no action
+ # is needed here
+ scmcmd = ['git']
+ if self.httpproxy:
+ scmcmd += ['-c', 'http.proxy=' +
+ self.httpproxy]
+ if self.httpsproxy:
+ scmcmd += ['-c', 'https.proxy=' +
+ self.httpsproxy]
+ return scmcmd
+
def switch_revision(self):
"""Switch sources to revision. The git revision may refer to any of the
following:
@@ -29,19 +44,23 @@
if self._ref_exists(rev):
found_revision = True
if os.getenv('OSC_VERSION'):
- stash_text = self.helpers.safe_run(['git', 'stash'],
- cwd=self.clone_dir)[1]
+ stash_text = self.helpers.safe_run(
+ self._get_scm_cmd() +
+ ['stash'],
+ cwd=self.clone_dir)[1]
text = self.helpers.safe_run(
- ['git', 'reset', '--hard', rev],
+ self._get_scm_cmd() + ['reset', '--hard', rev],
cwd=self.clone_dir
)[1]
if stash_text != "No local changes to save\n":
logging.debug("[switch_revision] GIT STASHING")
- text += self.helpers.safe_run(['git', 'stash', 'pop'],
- cwd=self.clone_dir)[1]
+ text += self.helpers.safe_run(
+ self._get_scm_cmd() +
+ ['stash', 'pop'],
+ cwd=self.clone_dir)[1]
else:
text = self.helpers.safe_run(
- ['git', 'reset', '--hard', rev],
+ self._get_scm_cmd() + ['reset', '--hard', rev],
cwd=self.clone_dir
)[1]
# print (text.rstrip())
@@ -53,14 +72,14 @@
# only update submodules if they have been enabled
if os.path.exists(os.path.join(self.clone_dir, '.git', 'modules')):
self.helpers.safe_run(
- ['git', 'submodule', 'update', '--recursive'],
+ self._get_scm_cmd() + ['submodule', 'update', '--recursive'],
cwd=self.clone_dir
)
def fetch_upstream_scm(self):
"""SCM specific version of fetch_uptream for git."""
# clone if no .git dir exists
- command = ['git', 'clone', self.url, self.clone_dir]
+ command = self._get_scm_cmd() + ['clone', self.url, self.clone_dir]
if not self.is_sslverify_enabled():
command += ['--config', 'http.sslverify=false']
if self.repocachedir:
@@ -75,8 +94,8 @@
if self.revision and not self._ref_exists(self.revision):
# fetch reference from url and create locally
self.helpers.safe_run(
- ['git', 'fetch', self.url,
- self.revision + ':' + self.revision],
+ self._get_scm_cmd() + ['fetch', self.url,
+ self.revision + ':' + self.revision],
cwd=self.clone_dir, interactive=sys.stdout.isatty()
)
@@ -87,7 +106,8 @@
self.args.__dict__['submodules'] == 'enable'
):
self.helpers.safe_run(
- ['git', 'submodule', 'update', '--init', '--recursive'],
+ self._get_scm_cmd() + ['submodule', 'update', '--init',
+ '--recursive'],
cwd=self.clone_dir
)
elif (
@@ -95,8 +115,8 @@
self.args.__dict__['submodules'] == 'master'
):
self.helpers.safe_run(
- ['git', 'submodule', 'update', '--init', '--recursive',
- '--remote'],
+ self._get_scm_cmd() + ['submodule', 'update', '--init',
+ '--recursive', '--remote'],
cwd=self.clone_dir
)
@@ -104,18 +124,18 @@
"""Update sources via git."""
# Force origin to the wanted URL in case it switched
self.helpers.safe_run(
- ['git', 'config', 'remote.origin.url', self.url],
+ self._get_scm_cmd() + ['config', 'remote.origin.url', self.url],
cwd=self.clone_dir,
interactive=sys.stdout.isatty()
)
self.helpers.safe_run(
- ['git', 'fetch', '--tags'],
+ self._get_scm_cmd() + ['fetch', '--tags'],
cwd=self.clone_dir,
interactive=sys.stdout.isatty()
)
self.helpers.safe_run(
- ['git', 'fetch'],
+ self._get_scm_cmd() + ['fetch'],
cwd=self.clone_dir,
interactive=sys.stdout.isatty()
)
@@ -126,8 +146,8 @@
"""
Automatic detection of version number for checked-out GIT repository.
"""
- parent_tag = args['parent_tag']
- versionformat = args['versionformat']
+ parent_tag = args['parent_tag']
+ versionformat = args['versionformat']
if versionformat is None:
versionformat = '%ct.%h'
@@ -145,15 +165,15 @@
versionformat)
version = self.helpers.safe_run(
- ['git', 'log', '-n1', '--date=short',
- "--pretty=format:%s" % versionformat],
+ self._get_scm_cmd() + ['log', '-n1', '--date=short',
+ "--pretty=format:%s" % versionformat],
self.clone_dir
)[1]
return self.version_iso_cleanup(version)
def _detect_parent_tag(self, args):
parent_tag = ''
- cmd = ['git', 'describe', '--tags', '--abbrev=0']
+ cmd = self._get_scm_cmd() + ['describe', '--tags', '--abbrev=0']
try:
if args['match_tag']:
cmd.append("--match=%s" % args['match_tag'])
@@ -183,7 +203,8 @@
"as no parent tag was discovered.\033[0m")
rcode, output = self.helpers.run_cmd(
- ['git', 'rev-list', '--count', parent_tag + '..HEAD'],
+ self._get_scm_cmd() + ['rev-list', '--count', parent_tag +
+ '..HEAD'],
self.clone_dir
)
@@ -202,12 +223,13 @@
return int(timestamp)
def get_current_commit(self):
- return self.helpers.safe_run(['git', 'rev-parse', 'HEAD'],
+ return self.helpers.safe_run(self._get_scm_cmd() + ['rev-parse',
+ 'HEAD'],
self.clone_dir)[1]
def _ref_exists(self, rev):
rcode, _ = self.helpers.run_cmd(
- ['git', 'rev-parse', '--verify', '--quiet', rev],
+ self._get_scm_cmd() + ['rev-parse', '--verify', '--quiet', rev],
cwd=self.clone_dir,
interactive=sys.stdout.isatty()
)
@@ -215,7 +237,7 @@
def _log_cmd(self, cmd_args, subdir):
""" Helper function to call 'git log' with args"""
- cmd = ['git', 'log'] + cmd_args
+ cmd = self._get_scm_cmd() + ['log'] + cmd_args
if subdir:
cmd += ['--', subdir]
return self.helpers.safe_run(cmd, cwd=self.clone_dir)[1]
@@ -256,9 +278,9 @@
# We use a temporary shared clone to avoid race conditions
# between multiple services
- org_clone_dir = self.clone_dir
+ org_clone_dir = self.clone_dir
self.clone_dir = self.repodir
- command = ['git', 'clone', '--no-checkout']
+ command = self._get_scm_cmd() + ['clone', '--no-checkout']
use_reference = True
try:
if self.args.package_meta:
@@ -275,3 +297,7 @@
wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
self.helpers.safe_run(
command, cwd=wdir, interactive=sys.stdout.isatty())
+
+ # no cleanup is necessary for git
+ def cleanup(self):
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/hg.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/hg.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/hg.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/hg.py
2018-04-09 11:45:17.000000000 +0200
@@ -1,26 +1,62 @@
import sys
import re
import os
+import tempfile
+import shutil
+import logging
from TarSCM.scm.base import Scm
class Hg(Scm):
scm = 'hg'
+ hgtmpdir = tempfile.mkdtemp()
+
+ def _get_scm_cmd(self):
+ """Compose a HG-specific command line using http proxies."""
+ # Mercurial requires declaring proxies via a --config parameter
+ scmcmd = ['hg']
+ if self.httpproxy:
+ logging.debug("using " + self.hgtmpdir)
+ f = open(self.hgtmpdir + "/tempsettings.rc", "wb")
+ f.write('[http_proxy]\n')
+
+ regexp_proxy = re.match('http://(.*):(.*)',
+ self.httpproxy,
+ re.M | re.I)
+
+ if regexp_proxy.group(1) is not None:
+ print ('using proxy host: ' + regexp_proxy.group(1))
+ f.write('host=' + regexp_proxy.group(1))
+ if regexp_proxy.group(2) is not None:
+ print ('using proxy port: ' + regexp_proxy.group(2))
+ f.write('port=' + regexp_proxy.group(2))
+ if self.noproxy is not None:
+ print ('using proxy exceptions: ' +
+ self.noproxy)
+ f.write('no=' + self.noproxy)
+ f.close()
+
+ # we just point Mercurial to where the config file is
+ os.environ['HGRCPATH'] = self.hgtmpdir
+
+ return scmcmd
+
def switch_revision(self):
"""Switch sources to revision."""
if self.revision is None:
self.revision = 'tip'
- rcode, _ = self.helpers.run_cmd(['hg', 'update', self.revision],
- cwd=self.clone_dir,
- interactive=sys.stdout.isatty())
+ rcode, _ = self.helpers.run_cmd(self._get_scm_cmd() +
+ ['update', self.revision],
+ cwd=self.clone_dir,
+ interactive=sys.stdout.isatty())
if rcode:
sys.exit('%s: No such revision' % self.revision)
def fetch_upstream_scm(self):
"""SCM specific version of fetch_uptream for hg."""
- command = ['hg', 'clone', self.url, self.clone_dir]
+ command = self._get_scm_cmd() + ['clone', self.url, self.clone_dir]
if not self.is_sslverify_enabled():
command += ['--insecure']
wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
@@ -30,7 +66,8 @@
def update_cache(self):
"""Update sources via hg."""
try:
- self.helpers.safe_run(['hg', 'pull'], cwd=self.clone_dir,
+ self.helpers.safe_run(self._get_scm_cmd() +
+ ['pull'], cwd=self.clone_dir,
interactive=sys.stdout.isatty())
except SystemExit as exc:
# Contrary to the docs, hg pull returns exit code 1 when
@@ -43,11 +80,12 @@
"""
Automatic detection of version number for checked-out HG repository.
"""
- versionformat = args['versionformat']
+ versionformat = args['versionformat']
if versionformat is None:
versionformat = '{rev}'
- version = self.helpers.safe_run(['hg', 'id', '-n'], self.clone_dir)[1]
+ version = self.helpers.safe_run(self._get_scm_cmd() +
+ ['id', '-n'], self.clone_dir)[1]
# Mercurial internally stores commit dates in its changelog
# context objects as (epoch_secs, tz_delta_to_utc) tuples (see
@@ -76,8 +114,8 @@
# in openSUSE 12.3).
version = self.helpers.safe_run(
+ self._get_scm_cmd() +
[
- 'hg',
'log',
'-l1',
"-r%s" % version.strip(),
@@ -93,3 +131,10 @@
timestamp = self.detect_version(data)
timestamp = re.sub(r'([0-9]+)\..*', r'\1', timestamp)
return int(timestamp)
+
+ def cleanup(self):
+ try:
+ shutil.rmtree(self.hgtmpdir, ignore_errors=True)
+ except:
+ logging.debug("error on cleanup:", sys.exc_info()[0])
+ raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/svn.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/svn.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/svn.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/svn.py
2018-04-09 11:45:17.000000000 +0200
@@ -3,6 +3,8 @@
import re
import os
import logging
+import tempfile
+import shutil
import dateutil.parser
@@ -12,10 +14,66 @@
class Svn(Scm):
scm = 'svn'
+ svntmpdir = tempfile.mkdtemp()
+
+ def _get_scm_cmd(self):
+ """Compose a SVN-specific command line using http proxies."""
+ # Subversion requires declaring proxies in a file, as it does not
+ # support the http[s]_proxy variables. This creates the temporary
+ # config directory that will be added via '--config-dir'
+ scmcmd = ['svn']
+ if self.httpproxy:
+ logging.debug("using " + self.svntmpdir)
+ f = open(self.svntmpdir + "/servers", "wb")
+ f.write('[global]\n')
+
+ regexp_proxy = re.match('http://(.*):(.*)',
+ self.httpproxy,
+ re.M | re.I)
+
+ if regexp_proxy.group(1) is not None:
+ logging.debug('using proxy host: ' +
+ regexp_proxy.group(1))
+ f.write('http-proxy-host=' +
+ regexp_proxy.group(1) + '\n')
+
+ if regexp_proxy.group(2) is not None:
+ logging.debug('using proxy port: ' +
+ regexp_proxy.group(2))
+ f.write('http-proxy-port=' +
+ regexp_proxy.group(2) + '\n')
+
+ if self.noproxy is not None:
+ logging.debug('using proxy exceptions: ' +
+ self.noproxy)
+ no_proxy_domains = []
+ no_proxy_domains.append(tuple(self.noproxy.split(",")))
+ no_proxy_string = ""
+
+ # for some odd reason subversion expects the domains
+ # to have an asterisk
+ for i in range(len(no_proxy_domains[0])):
+ tmpstr = str(no_proxy_domains[0][i]).strip()
+ if tmpstr.startswith('.'):
+ no_proxy_string += '*' + tmpstr
+ else:
+ no_proxy_string += tmpstr
+
+ if i < len(no_proxy_domains[0]) - 1:
+ no_proxy_string += ','
+
+ no_proxy_string += '\n'
+ logging.debug('no_proxy string = ' + no_proxy_string)
+ f.write('http-proxy-exceptions=' + no_proxy_string)
+ f.close()
+ scmcmd += ['--config-dir', self.svntmpdir]
+
+ return scmcmd
+
def fetch_upstream_scm(self):
"""SCM specific version of fetch_uptream for svn."""
- command = ['svn', 'checkout', '--non-interactive', self.url,
- self.clone_dir]
+ command = self._get_scm_cmd() + ['checkout', '--non-interactive',
+ self.url, self.clone_dir]
if self.revision:
command.insert(4, '-r%s' % self.revision)
if not self.is_sslverify_enabled():
@@ -27,7 +85,7 @@
def update_cache(self):
"""Update sources via svn."""
- command = ['svn', 'update']
+ command = self._get_scm_cmd() + ['update']
if self.revision:
command.insert(3, "-r%s" % self.revision)
self.helpers.safe_run(command, cwd=self.clone_dir,
@@ -41,7 +99,8 @@
if versionformat is None:
versionformat = '%r'
- svn_info = self.helpers.safe_run(['svn', 'info'], self.clone_dir)[1]
+ svn_info = self.helpers.safe_run(self._get_scm_cmd() + ['info'],
+ self.clone_dir)[1]
version = ''
match = re.search('Last Changed Rev: (.*)', svn_info, re.MULTILINE)
@@ -50,7 +109,8 @@
return re.sub('%r', version, versionformat)
def get_timestamp(self):
- svn_info = self.helpers.safe_run(['svn', 'info', '-rHEAD'],
+ svn_info = self.helpers.safe_run(self._get_scm_cmd() + ['info',
+ '-rHEAD'],
self.clone_dir)[1]
match = re.search('Last Changed Date: (.*)', svn_info, re.MULTILINE)
@@ -102,7 +162,8 @@
new_lines = []
xml_lines = self.helpers.safe_run(
- ['svn', 'log', '-r%s:%s' % (revision2, revision1), '--xml'],
+ self._get_scm_cmd() + ['log', '-r%s:%s' % (revision2, revision1),
+ '--xml'],
clone_dir
)[1]
@@ -116,8 +177,8 @@
def _get_rev(self, clone_dir, num_commits):
revisions = self.helpers.safe_run(
- ['svn', 'log', '-l%d' % num_commits, '-q',
- '--incremental'], cwd=clone_dir
+ self._get_scm_cmd() + ['log', '-l%d' % num_commits, '-q',
+ '--incremental'], cwd=clone_dir
)[1].split('\n')
# remove blank entry on end
revisions.pop()
@@ -127,3 +188,10 @@
revision = re.search(r'^r[0-9]*', revision, re.M).group().replace("r",
"")
return revision
+
+ def cleanup(self):
+ try:
+ shutil.rmtree(self.svntmpdir, ignore_errors=True)
+ except:
+ logging.debug("error on cleanup:", sys.exc_info()[0])
+ raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/tar.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/tar.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/scm/tar.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/scm/tar.py
2018-04-09 11:45:17.000000000 +0200
@@ -59,3 +59,7 @@
"""Execute final cleanup of workspace"""
if self._final_rename_needed:
os.rename(self.clone_dir, self.basename)
+
+ # no cleanup is necessary for tar
+ def cleanup(self):
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/tasks.py
new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/tasks.py
--- old/obs-service-tar_scm-0.8.0.1520581079.e26b0ae/TarSCM/tasks.py
2018-03-09 08:37:59.000000000 +0100
+++ new/obs-service-tar_scm-0.9.0.1523267117.de861d8/TarSCM/tasks.py
2018-04-09 11:45:17.000000000 +0200
@@ -51,6 +51,8 @@
# gets raised
if self.scm_object:
self.scm_object.unlock_cache()
+ # calls the corresponding cleanup routine
+ self.scm_object.cleanup()
def generate_list(self):
'''