From 57447f18e16cf750e1a30836263494be9735b1b5 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 15 Dec 2021 14:43:14 +0100 Subject: [PATCH 1/9] buildserver: move buildserverid to provisioner In order to support Docker, this should be able to operate without ssh, e.g. using vagrant-communicator-docker. This removes the buildserverid hack and makes it a provisioner shell script. --- buildserver/Vagrantfile | 2 ++ buildserver/provision-buildserverid | 9 +++++++++ makebuildserver | 9 --------- 3 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 buildserver/provision-buildserverid diff --git a/buildserver/Vagrantfile b/buildserver/Vagrantfile index 16bc2305..90d459b7 100644 --- a/buildserver/Vagrantfile +++ b/buildserver/Vagrantfile @@ -86,5 +86,7 @@ Vagrant.configure("2") do |config| config.vm.provision "shell", path: "provision-android-ndk", args: ["/opt/android-sdk/ndk", "r21e", "r22b"] config.vm.provision "shell", path: "provision-gradle" + config.vm.provision "shell", path: "provision-buildserverid", + args: [`git rev-parse HEAD`] end diff --git a/buildserver/provision-buildserverid b/buildserver/provision-buildserverid new file mode 100644 index 00000000..f5010c39 --- /dev/null +++ b/buildserver/provision-buildserverid @@ -0,0 +1,9 @@ +#!/bin/bash -e + +test -n "$1" + +echo "Writing buildserver ID ...ID is $1" +set -x +echo "$1" > /home/vagrant/buildserverid +# sync data before we halt() the machine, we had an empty buildserverid otherwise +sync diff --git a/makebuildserver b/makebuildserver index daafd4d4..24fe201a 100755 --- a/makebuildserver +++ b/makebuildserver @@ -584,15 +584,6 @@ def main(): run_via_vagrant_ssh(v, ['rm', '-f', '~/.gradle/caches/modules-2/modules-2.lock']) run_via_vagrant_ssh(v, ['rm', '-fr', '~/.gradle/caches/*/plugin-resolution/']) - p = subprocess.Popen(['git', 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, - universal_newlines=True) - buildserverid = p.communicate()[0].strip() - logging.info("Writing buildserver ID ...ID is %s", buildserverid) - # sync data before we halt() the machine, we had an empty buildserverid otherwise - write_bsid_cmd = 'sh -c "echo \'{}\' >/home/vagrant/buildserverid; sync"'.format(buildserverid) - run_via_vagrant_ssh(v, write_bsid_cmd) - logging.debug("+ {}".format(write_bsid_cmd)) - logging.info("Stopping build server VM") v.halt() From 4e310e3a59485721fb3f49936e17b9d42731c0cf Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 23 Dec 2021 21:38:34 +0100 Subject: [PATCH 2/9] buildserver: setup-env-vars: add var for ~vagrant for CI jobs The CI jobs need to do a little setup based on the 'vagrant' user's $HOME. --- buildserver/setup-env-vars | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildserver/setup-env-vars b/buildserver/setup-env-vars index a4d96781..a5f53fd8 100644 --- a/buildserver/setup-env-vars +++ b/buildserver/setup-env-vars @@ -12,6 +12,8 @@ echo "# generated on "`date` > $bsenv echo export ANDROID_HOME=$1 >> $bsenv echo 'export PATH=$PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:/opt/gradle/bin' >> $bsenv echo "export DEBIAN_FRONTEND=noninteractive" >> $bsenv +echo 'export home_vagrant=/home/vagrant' >> $bsenv +echo 'export fdroidserver=$home_vagrant/fdroidserver' >> $bsenv chmod 0644 $bsenv From f20d3d249a682300118d0396877ea745cc7d9663 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Jan 2022 14:33:35 +0100 Subject: [PATCH 3/9] add Dockerfile to build a docker buildserver image This is just the first step to getting full Docker support for everywhere the buildserver is used. This will at least let us replace the hacks that are separately maintained in fdroid/ci-images-base and fdroid/ci-images-client. --- buildserver/Dockerfile | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 buildserver/Dockerfile diff --git a/buildserver/Dockerfile b/buildserver/Dockerfile new file mode 100644 index 00000000..5b83563f --- /dev/null +++ b/buildserver/Dockerfile @@ -0,0 +1,32 @@ + +FROM debian:stretch + +ENV LANG=C.UTF-8 \ + DEBIAN_FRONTEND=noninteractive + +RUN echo Etc/UTC > /etc/timezone \ + && echo 'APT::Install-Recommends "0";' \ + 'APT::Install-Suggests "0";' \ + 'APT::Acquire::Retries "20";' \ + 'APT::Get::Assume-Yes "true";' \ + 'Dpkg::Use-Pty "0";' \ + 'quiet "1";' \ + >> /etc/apt/apt.conf.d/99gitlab + +# setup 'vagrant' user for compatibility +RUN useradd --create-home -s /bin/bash vagrant && echo -n 'vagrant:vagrant' | chpasswd + +RUN printf "path-exclude=/usr/share/locale/*\npath-exclude=/usr/share/man/*\npath-exclude=/usr/share/doc/*\npath-include=/usr/share/doc/*/copyright\n" >/etc/dpkg/dpkg.cfg.d/01_nodoc \ + && mkdir -p /usr/share/man/man1 \ + && apt-get update \ + && apt-get upgrade \ + && apt-get dist-upgrade \ + && apt-get install sudo \ + && apt-get autoremove --purge \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Vagrant sudo setup for compatibility +RUN echo 'vagrant ALL = NOPASSWD: ALL' > /etc/sudoers.d/vagrant \ + && chmod 440 /etc/sudoers.d/vagrant \ + && sed -i -e 's/Defaults.*requiretty/#&/' /etc/sudoers From 839f5b109af12005f76127f37fa5b0d8968bc3a9 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 2 Dec 2021 16:17:11 +0100 Subject: [PATCH 4/9] gitlab-ci: publish buildserver image to Docker Registry --- .gitlab-ci.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 50927c6a..3a44d413 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -529,3 +529,25 @@ pages: needs: ["Build documentation"] rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' # only publish pages on default (master) branch + + +docker: + dependencies: + - fdroid build + only: + changes: + - .gitlab-ci.yml + - makebuildserver + - buildserver/* + image: docker:git + services: + - docker:dind + variables: + TEST_IMAGE: registry.gitlab.com/$CI_PROJECT_NAMESPACE/${CI_PROJECT_NAME}:$CI_BUILD_REF_NAME + RELEASE_IMAGE: registry.gitlab.com/$CI_PROJECT_NAMESPACE/${CI_PROJECT_NAME}:buildserver + script: + - cd buildserver + - docker build -t $TEST_IMAGE --build-arg GIT_REV_PARSE_HEAD=$(git rev-parse HEAD) . + - docker tag $TEST_IMAGE $RELEASE_IMAGE + - echo $CI_BUILD_TOKEN | docker login -u gitlab-ci-token --password-stdin registry.gitlab.com + - docker push $RELEASE_IMAGE From 7535d75b4086702d44514d4fe7e9b291d4d53d74 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Jan 2022 15:17:07 +0100 Subject: [PATCH 5/9] buildserver: run provision scripts in Dockerfile fdroidserver#119 --- buildserver/Dockerfile | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/buildserver/Dockerfile b/buildserver/Dockerfile index 5b83563f..1a7005e1 100644 --- a/buildserver/Dockerfile +++ b/buildserver/Dockerfile @@ -13,15 +13,40 @@ RUN echo Etc/UTC > /etc/timezone \ 'quiet "1";' \ >> /etc/apt/apt.conf.d/99gitlab +# provision-apt-proxy was deliberately omitted, its not relevant in Docker +COPY provision-android-ndk \ + provision-android-sdk \ + provision-apt-get-install \ + provision-buildserverid \ + provision-gradle \ + setup-env-vars \ + /opt/buildserver/ + +ARG GIT_REV_PARSE_HEAD=unspecified +LABEL org.opencontainers.image.revision=$GIT_REV_PARSE_HEAD + # setup 'vagrant' user for compatibility RUN useradd --create-home -s /bin/bash vagrant && echo -n 'vagrant:vagrant' | chpasswd +# the provision scripts must be run in the same order as in Vagrantfile RUN printf "path-exclude=/usr/share/locale/*\npath-exclude=/usr/share/man/*\npath-exclude=/usr/share/doc/*\npath-include=/usr/share/doc/*/copyright\n" >/etc/dpkg/dpkg.cfg.d/01_nodoc \ && mkdir -p /usr/share/man/man1 \ && apt-get update \ && apt-get upgrade \ && apt-get dist-upgrade \ && apt-get install sudo \ + && bash /opt/buildserver/setup-env-vars /opt/android-sdk \ + && . /etc/profile.d/bsenv.sh \ + && bash /opt/buildserver/provision-apt-get-install https://deb.debian.org/debian \ + && tools=tools_r25.2.5-linux.zip \ + && mkdir -p /vagrant/cache \ + && curl https://dl.google.com/android/repository/$tools > /vagrant/cache/$tools \ + && echo "577516819c8b5fae680f049d39014ff1ba4af870b687cab10595783e6f22d33e /vagrant/cache/$tools" | sha256sum -c \ + && bash /opt/buildserver/provision-android-sdk \ + && bash /opt/buildserver/provision-android-ndk /opt/android-sdk/ndk \ + && bash /opt/buildserver/provision-gradle \ + && bash /opt/buildserver/provision-buildserverid $GIT_REV_PARSE_HEAD \ + && rm -rf /vagrant/cache \ && apt-get autoremove --purge \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* From 55140003768315e98906b81ca9419291e8dac8de Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Jan 2022 17:29:17 +0100 Subject: [PATCH 6/9] buildserver: include packages in Dockerfile that Vagrant boxes have The goal is to have the Docker base image and the Vagrant base box have the same setup. --- buildserver/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/buildserver/Dockerfile b/buildserver/Dockerfile index 1a7005e1..0d968a07 100644 --- a/buildserver/Dockerfile +++ b/buildserver/Dockerfile @@ -29,12 +29,14 @@ LABEL org.opencontainers.image.revision=$GIT_REV_PARSE_HEAD RUN useradd --create-home -s /bin/bash vagrant && echo -n 'vagrant:vagrant' | chpasswd # the provision scripts must be run in the same order as in Vagrantfile +# - vagrant needs openssh-client iproute2 ssh sudo +# - ansible needs python3 RUN printf "path-exclude=/usr/share/locale/*\npath-exclude=/usr/share/man/*\npath-exclude=/usr/share/doc/*\npath-include=/usr/share/doc/*/copyright\n" >/etc/dpkg/dpkg.cfg.d/01_nodoc \ && mkdir -p /usr/share/man/man1 \ && apt-get update \ && apt-get upgrade \ && apt-get dist-upgrade \ - && apt-get install sudo \ + && apt-get install openssh-client iproute2 python3 openssh-server sudo \ && bash /opt/buildserver/setup-env-vars /opt/android-sdk \ && . /etc/profile.d/bsenv.sh \ && bash /opt/buildserver/provision-apt-get-install https://deb.debian.org/debian \ From 97553c516fd18d7c5d457faebd42251305bb7f61 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Jan 2022 22:49:30 +0100 Subject: [PATCH 7/9] provision-android-ndk: let script work when no NDKs will be installed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The other form of find gave: # find $NDK_BASE -type f -executable -print0 | xargs -0 chmod a+x chmod: missing operand after ‘a+x’ Try 'chmod --help' for more information. --- buildserver/provision-android-ndk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildserver/provision-android-ndk b/buildserver/provision-android-ndk index 9672b309..ca2cc325 100644 --- a/buildserver/provision-android-ndk +++ b/buildserver/provision-android-ndk @@ -27,4 +27,4 @@ chmod g+w $NDK_BASE # ensure all users can read and execute the NDK chmod -R a+rX $NDK_BASE/ -find $NDK_BASE/ -type f -executable -print0 | xargs -0 chmod a+x +find $NDK_BASE/ -type f -executable -exec chmod a+x -- {} + From 5d09e70330015bda80e9dc6f2a51812e22cb9994 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 23 Dec 2021 21:39:29 +0100 Subject: [PATCH 8/9] buildserver: give names to all provisioners --- buildserver/Vagrantfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/buildserver/Vagrantfile b/buildserver/Vagrantfile index 90d459b7..140e800a 100644 --- a/buildserver/Vagrantfile +++ b/buildserver/Vagrantfile @@ -78,15 +78,15 @@ Vagrant.configure("2") do |config| owner: 'root', group: 'root', create: true end - config.vm.provision "shell", path: "setup-env-vars", + config.vm.provision "shell", name: "setup-env-vars", path: "setup-env-vars", args: ["/opt/android-sdk"] - config.vm.provision "shell", path: "provision-apt-get-install", + config.vm.provision "shell", name: "apt-get-install", path: "provision-apt-get-install", args: [configfile['debian_mirror']] - config.vm.provision "shell", path: "provision-android-sdk" - config.vm.provision "shell", path: "provision-android-ndk", + config.vm.provision "shell", name: "android-sdk", path: "provision-android-sdk" + config.vm.provision "shell", name: "android-ndk", path: "provision-android-ndk", args: ["/opt/android-sdk/ndk", "r21e", "r22b"] - config.vm.provision "shell", path: "provision-gradle" - config.vm.provision "shell", path: "provision-buildserverid", + config.vm.provision "shell", name: "gradle", path: "provision-gradle" + config.vm.provision "shell", name: "buildserverid", path: "provision-buildserverid", args: [`git rev-parse HEAD`] end From ca5ebcb30f0cd23800e1f5fa960e1410be116665 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 23 Dec 2021 21:39:29 +0100 Subject: [PATCH 9/9] gitlab-ci: fix plugin_fetchsrclibs by using Debian packages * https://gitlab.com/eighthave/fdroidserver/-/jobs/1961701458 Collecting pynacl>=1.0.1 (from paramiko->fdroidserver==2.1a0) Downloading https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz (3.4MB) Installing build dependencies: started Installing build dependencies: finished with status 'error' Complete output from command /builds/eighthave/fdroidserver/env/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-xokvr6uk --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools>=40.8.0 wheel "cffi>=1.4.1; python_implementation != 'PyPy'": Collecting setuptools>=40.8.0 Using cached https://files.pythonhosted.org/packages/eb/53/0dd4c7960579da8be13fa9b2c2591643d37f323e3d79f8bc8b1b6c8e6217/setuptools-60.5.0-py3-none-any.whl Collecting wheel Using cached https://files.pythonhosted.org/packages/27/d6/003e593296a85fd6ed616ed962795b2f87709c3eee2bca4f6d0fe55c6d00/wheel-0.37.1-py2.py3-none-any.whl Collecting cffi>=1.4.1 Downloading https://files.pythonhosted.org/packages/00/9e/92de7e1217ccc3d5f352ba21e52398372525765b2e0c4530e6eb2ba9282a/cffi-1.15.0.tar.gz (484kB) Collecting pycparser (from cffi>=1.4.1) Downloading https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl (118kB) Building wheels for collected packages: cffi Running setup.py bdist_wheel for cffi: started Running setup.py bdist_wheel for cffi: finished with status 'error' Complete output from command /builds/eighthave/fdroidserver/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-djg9jc8p/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-d1knhl7l --python-tag cp37: unable to execute 'x86_64-linux-gnu-gcc': No such file or directory unable to execute 'x86_64-linux-gnu-gcc': No such file or directory No working compiler found, or bogus compiler options passed to the compiler from Python's standard "distutils" module. See the error messages above. Likely, the problem is not related to CFFI but generic to the setup.py of any Python package that tries to compile C code. (Hints: on OS/X 10.8, for errors about -mno-fused-madd see http://stackoverflow.com/questions/22313407/ Otherwise, see https://wiki.python.org/moin/CompLangPython or the IRC channel #python on irc.libera.chat.) Trying to continue anyway. If you are trying to install CFFI from a build done in a different context, you can ignore this warning. running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-3.7 creating build/lib.linux-x86_64-3.7/cffi copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/pkgconfig.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/lock.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/recompiler.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/__init__.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/cparser.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/verifier.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/api.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/commontypes.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/error.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/model.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/_cffi_include.h -> build/lib.linux-x86_64-3.7/cffi copying cffi/parse_c_type.h -> build/lib.linux-x86_64-3.7/cffi copying cffi/_embedding.h -> build/lib.linux-x86_64-3.7/cffi copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-3.7/cffi running build_ext building '_cffi_backend' extension creating build/temp.linux-x86_64-3.7 creating build/temp.linux-x86_64-3.7/c x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/ffi -I/usr/include/libffi -I/builds/eighthave/fdroidserver/env/include -I/usr/include/python3.7m -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.7/c/_cffi_backend.o unable to execute 'x86_64-linux-gnu-gcc': No such file or directory error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ---------------------------------------- Failed building wheel for cffi Running setup.py clean for cffi Failed to build cffi Installing collected packages: setuptools, wheel, pycparser, cffi Running setup.py install for cffi: started Running setup.py install for cffi: finished with status 'error' Complete output from command /builds/eighthave/fdroidserver/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-djg9jc8p/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ek80c81s/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-xokvr6uk --compile --install-headers /builds/eighthave/fdroidserver/env/include/site/python3.7/cffi: unable to execute 'x86_64-linux-gnu-gcc': No such file or directory unable to execute 'x86_64-linux-gnu-gcc': No such file or directory No working compiler found, or bogus compiler options passed to the compiler from Python's standard "distutils" module. See the error messages above. Likely, the problem is not related to CFFI but generic to the setup.py of any Python package that tries to compile C code. (Hints: on OS/X 10.8, for errors about -mno-fused-madd see http://stackoverflow.com/questions/22313407/ Otherwise, see https://wiki.python.org/moin/CompLangPython or the IRC channel #python on irc.libera.chat.) Trying to continue anyway. If you are trying to install CFFI from a build done in a different context, you can ignore this warning. running install running build running build_py creating build creating build/lib.linux-x86_64-3.7 creating build/lib.linux-x86_64-3.7/cffi copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/pkgconfig.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/lock.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/recompiler.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/__init__.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/cparser.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/verifier.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/api.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/commontypes.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/error.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/model.py -> build/lib.linux-x86_64-3.7/cffi copying cffi/_cffi_include.h -> build/lib.linux-x86_64-3.7/cffi copying cffi/parse_c_type.h -> build/lib.linux-x86_64-3.7/cffi copying cffi/_embedding.h -> build/lib.linux-x86_64-3.7/cffi copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-3.7/cffi running build_ext building '_cffi_backend' extension creating build/temp.linux-x86_64-3.7 creating build/temp.linux-x86_64-3.7/c x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/ffi -I/usr/include/libffi -I/builds/eighthave/fdroidserver/env/include -I/usr/include/python3.7m -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.7/c/_cffi_backend.o unable to execute 'x86_64-linux-gnu-gcc': No such file or directory error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ---------------------------------------- Command "/builds/eighthave/fdroidserver/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-djg9jc8p/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ek80c81s/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-xokvr6uk --compile --install-headers /builds/eighthave/fdroidserver/env/include/site/python3.7/cffi" failed with error code 1 in /tmp/pip-install-djg9jc8p/cffi/ ---------------------------------------- Command "/builds/eighthave/fdroidserver/env/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-xokvr6uk --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools>=40.8.0 wheel "cffi>=1.4.1; python_implementation != 'PyPy'"" failed with error code 1 in None --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3a44d413..88464987 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -395,8 +395,10 @@ plugin_fetchsrclibs: python3-cffi python3-cryptography python3-matplotlib + python3-nacl python3-pip python3-pil + python3-pycparser python3-venv - python3 -m venv --system-site-packages env - . env/bin/activate