Build.snapcraft.io: Unable to fetch source archive via FTP

The following part source:

parts:
  libxml2:
    source: ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz

cannot be fetched on build.snapcraft.io, causing build failure:

Pulling libxml2 
Sorry, Snapcraft ran into an error when trying to running through its
lifecycle that generated the following traceback:
Traceback (most recent call last):
  File "/usr/lib/python3.5/urllib/request.py", line 1461, in ftp_open
    host = socket.gethostbyname(host)
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/snapcraft", line 9, in <module>
    load_entry_point('snapcraft==2.42.1', 'console_scripts', 'snapcraft')()
  File "/usr/lib/python3/dist-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py", line 65, in pull
    _execute('pull', parts, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py", line 30, in _execute
    lifecycle.execute(command, project_options, parts)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 79, in execute
    _Executor(config, project_options).run(step, part_names)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 191, in run
    self._run_step(step, part, part_names)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 236, in _run_step
    getattr(part, step)()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/__init__.py", line 350, in pull
    self._runner.pull()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/_runner.py", line 81, in pull
    self._sourcedir)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/_runner.py", line 160, in _run_scriptlet
    scriptlet_name, function_call.strip())))
  File "/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/_runner.py", line 208, in _handle_builtin_function
    function(**function_args)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/__init__.py", line 356, in _do_pull
    self.source_handler.pull()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/sources/_base.py", line 55, in pull
    source_file = self.download()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/sources/_base.py", line 90, in download
    download_urllib_source(self.source, self.file)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/indicators.py", line 110, in download_urllib_source
    UrllibDownloader(uri, destination, message).download()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/indicators.py", line 93, in download
    urlretrieve(self.uri, self.destination, self._progress_callback)
  File "/usr/lib/python3.5/urllib/request.py", line 188, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.5/urllib/request.py", line 466, in open
    response = self._open(req, data)
  File "/usr/lib/python3.5/urllib/request.py", line 484, in _open
    '_open', req)
  File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 1463, in ftp_open
    raise URLError(msg)
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
Build failed

Local build works properly.

Found proper bug regarding this issue: Bug #1662613 “Add support to ftp_proxy env variable” : Bugs : launchpad-buildd

on a sidenote, http://xmlsoft.org/sources/ should offer you the same content as the ftp server (without the massive security flaws the ftp protocol introduces)

1 Like