Build-image: Request to add sasl package to default image

Created on 9 Dec 2020  路  4Comments  路  Source: netlify/build-image

Would it be possible to add the libsasl2-dev package into the default image? The Netlify data team is trying to build Netlify with Netlify by building our internal dbt docs site with Netlify Build. Our requirements file looks like this:

dbt==0.18.1
dbt-spark==0.18.1

and our netlify.toml like this:

[build]
  base = "dbt_databricks/"
  publish = "target/"
  command = "dbt deps && dbt docs generate --profiles-dir . --target prod"

[build.environment]
  PYTHON_VERSION = "3.7"

It appears that before the build command runs, the requirements.txt file is getting picked up and the requirements start to get installed and then errors out with a missing header file for sasl. Full output below:

5:16:49 PM: Build ready to start
5:16:51 PM: build-image version: 09c2cdcdf242cf2f57c9ee0fcad9d298fad9ad41
5:16:51 PM: build-image tag: v3.5.0
5:16:51 PM: buildbot version: 2f5a3acddf50c525cbeeabf40316b7aef08e37c9
5:16:51 PM: Fetching cached dependencies
5:16:51 PM: Failed to fetch cache, continuing with build
5:16:51 PM: Starting to prepare the repo for build
5:16:52 PM: No cached dependencies found. Cloning fresh repo
5:16:52 PM: git clone https://github.com/netlify/data
5:16:54 PM: Preparing Git Reference pull/909/head
5:16:57 PM: Different build dir detected, going to use the one specified in the Netlify configuration file: 'dbt_databricks' versus '' in the Netlify UI
5:16:57 PM: Different publish path detected, going to use the one specified in the Netlify configuration file: 'dbt_databricks/target' versus 'dbt/target' in the Netlify UI
5:16:57 PM: Different build command detected, going to use the one specified in the Netlify configuration file: 'dbt deps && dbt docs generate --profiles-dir . --target prod' versus 'dbt docs generate' in the Netlify UI
5:16:57 PM: Starting build script
5:16:57 PM: Installing dependencies
5:16:57 PM: Python version set to 3.7
5:16:58 PM: v12.18.0 is already installed.
5:16:59 PM: Now using node v12.18.0 (npm v6.14.4)
5:16:59 PM: Started restoring cached build plugins
5:16:59 PM: Finished restoring cached build plugins
5:17:00 PM: Attempting ruby version 2.7.1, read from environment
5:17:01 PM: Using ruby version 2.7.1
5:17:02 PM: Using PHP version 5.6
5:17:02 PM: Installing pip dependencies
5:17:02 PM: Started restoring cached pip cache
5:17:02 PM: Finished restoring cached pip cache
5:17:03 PM: Collecting dbt==0.18.1
5:17:03 PM:   Downloading dbt-0.18.1-py3-none-any.whl (2.5 kB)
5:17:03 PM: Collecting dbt-spark==0.18.1
5:17:03 PM:   Downloading dbt_spark-0.18.1-py3-none-any.whl (23 kB)
5:17:03 PM: Collecting dbt-postgres==0.18.1
5:17:03 PM:   Downloading dbt_postgres-0.18.1-py3-none-any.whl (10 kB)
5:17:03 PM: Collecting dbt-redshift==0.18.1
5:17:03 PM:   Downloading dbt_redshift-0.18.1-py3-none-any.whl (11 kB)
5:17:05 PM: Collecting dbt-snowflake==0.18.1
5:17:05 PM:   Downloading dbt_snowflake-0.18.1-py3-none-any.whl (16 kB)
5:17:06 PM: Collecting dbt-core==0.18.1
5:17:06 PM:   Downloading dbt_core-0.18.1-py3-none-any.whl (793 kB)
5:17:07 PM: Collecting dbt-bigquery==0.18.1
5:17:07 PM:   Downloading dbt_bigquery-0.18.1-py3-none-any.whl (27 kB)
5:17:08 PM: Collecting sqlparams>=3.0.0
5:17:08 PM:   Downloading sqlparams-3.0.0-py3-none-any.whl (13 kB)
5:17:08 PM: Collecting thrift<0.12.0,>=0.11.0
5:17:08 PM:   Downloading thrift-0.11.0.tar.gz (52 kB)
5:17:08 PM: Collecting PyHive[hive]<0.7.0,>=0.6.0
5:17:09 PM:   Downloading PyHive-0.6.3.tar.gz (41 kB)
5:17:09 PM: Collecting psycopg2-binary~=2.8
5:17:09 PM:   Downloading psycopg2_binary-2.8.6-cp37-cp37m-manylinux1_x86_64.whl (3.0 MB)
5:17:09 PM: Collecting botocore<1.15,>=1.5.0
5:17:09 PM:   Downloading botocore-1.14.17-py2.py3-none-any.whl (5.9 MB)
5:17:10 PM: Collecting boto3<1.12,>=1.4.4
5:17:10 PM:   Downloading boto3-1.11.17-py2.py3-none-any.whl (128 kB)
5:17:10 PM: Collecting azure-storage-blob<13.0.0,>=12.0.0
5:17:10 PM:   Downloading azure_storage_blob-12.6.0-py2.py3-none-any.whl (328 kB)
5:17:10 PM: Collecting azure-common<2.0.0
5:17:10 PM:   Downloading azure_common-1.1.26-py2.py3-none-any.whl (12 kB)
5:17:10 PM: Collecting snowflake-connector-python[secure-local-storage]==2.2.10
5:17:10 PM:   Downloading snowflake_connector_python-2.2.10-cp37-cp37m-manylinux2010_x86_64.whl (12.0 MB)
5:17:12 PM: Collecting urllib3<1.26.0,>=1.20
5:17:12 PM:   Downloading urllib3-1.25.11-py2.py3-none-any.whl (127 kB)
5:17:12 PM: Collecting cryptography<3,>=2
5:17:12 PM:   Downloading cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl (2.7 MB)
5:17:12 PM: Collecting requests<2.24.0,>=2.18.0
5:17:12 PM:   Downloading requests-2.23.0-py2.py3-none-any.whl (58 kB)
5:17:13 PM: Collecting PyYAML>=3.11
5:17:13 PM:   Downloading PyYAML-5.3.1.tar.gz (269 kB)
5:17:13 PM: Collecting isodate<0.7,>=0.6
5:17:13 PM:   Downloading isodate-0.6.0-py2.py3-none-any.whl (45 kB)
5:17:13 PM: Collecting idna<2.10
5:17:13 PM:   Downloading idna-2.9-py2.py3-none-any.whl (58 kB)
5:17:13 PM: Collecting agate<2,>=1.6
5:17:14 PM:   Downloading agate-1.6.1-py2.py3-none-any.whl (98 kB)
5:17:14 PM: Collecting Jinja2==2.11.2
5:17:14 PM:   Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
5:17:14 PM: Collecting json-rpc<2,>=1.12
5:17:14 PM:   Downloading json_rpc-1.13.0-py2.py3-none-any.whl (41 kB)
5:17:14 PM: Collecting colorama<0.4.4,>=0.3.9
5:17:14 PM:   Downloading colorama-0.4.3-py2.py3-none-any.whl (15 kB)
5:17:14 PM: Collecting minimal-snowplow-tracker==0.0.2
5:17:14 PM:   Downloading minimal-snowplow-tracker-0.0.2.tar.gz (12 kB)
5:17:15 PM: Collecting logbook<1.6,>=1.5
5:17:15 PM:   Downloading Logbook-1.5.3.tar.gz (85 kB)
5:17:15 PM: Collecting werkzeug<0.17,>=0.15
5:17:15 PM:   Downloading Werkzeug-0.16.1-py2.py3-none-any.whl (327 kB)
5:17:15 PM: Collecting typing-extensions<3.8,>=3.7.4
5:17:15 PM:   Downloading typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
5:17:15 PM: Collecting cffi<1.15,>=1.9
5:17:15 PM:   Downloading cffi-1.14.4-cp37-cp37m-manylinux1_x86_64.whl (402 kB)
5:17:16 PM: Collecting hologram==0.0.10
5:17:16 PM:   Downloading hologram-0.0.10-py3-none-any.whl (11 kB)
5:17:16 PM: Collecting networkx<3,>=2.3
5:17:16 PM:   Downloading networkx-2.5-py3-none-any.whl (1.6 MB)
5:17:16 PM: Collecting sqlparse<0.4,>=0.2.3
5:17:16 PM:   Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
5:17:16 PM: Collecting six>=1.14.0
5:17:16 PM:   Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
5:17:16 PM: Collecting googleapis-common-protos<1.7.0,>=1.6.0
5:17:16 PM:   Downloading googleapis-common-protos-1.6.0.tar.gz (35 kB)
5:17:17 PM: Collecting google-cloud-core<1.4,>=1.3.0
5:17:17 PM:   Downloading google_cloud_core-1.3.0-py2.py3-none-any.whl (26 kB)
5:17:17 PM: Collecting protobuf<3.12,>=3.6.0
5:17:17 PM:   Downloading protobuf-3.11.3-cp37-cp37m-manylinux1_x86_64.whl (1.3 MB)
5:17:17 PM: Requirement already satisfied: setuptools in /opt/buildhome/python3.7/lib/python3.7/site-packages (from protobuf<3.12,>=3.6.0->dbt-bigquery==0.18.1->dbt==0.18.1->-r requirements.txt (line 1)) (50.3.2)
5:17:17 PM: Collecting google-api-core<1.17.0,>=1.16.0
5:17:17 PM:   Downloading google_api_core-1.16.0-py2.py3-none-any.whl (70 kB)
5:17:17 PM: Requirement already satisfied: setuptools in /opt/buildhome/python3.7/lib/python3.7/site-packages (from protobuf<3.12,>=3.6.0->dbt-bigquery==0.18.1->dbt==0.18.1->-r requirements.txt (line 1)) (50.3.2)
5:17:17 PM: Collecting google-cloud-bigquery<1.26.0,>=1.25.0
5:17:17 PM:   Downloading google_cloud_bigquery-1.25.0-py2.py3-none-any.whl (169 kB)
5:17:17 PM: Collecting future
5:17:17 PM:   Downloading future-0.18.2.tar.gz (829 kB)
5:17:18 PM: Collecting python-dateutil
5:17:18 PM:   Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
5:17:18 PM: Collecting sasl>=0.2.1
5:17:18 PM:   Downloading sasl-0.2.1.tar.gz (30 kB)
5:17:19 PM: Collecting thrift_sasl>=0.1.0
5:17:19 PM:   Downloading thrift_sasl-0.4.2.tar.gz (3.9 kB)
5:17:19 PM: Collecting docutils<0.16,>=0.10
5:17:19 PM:   Downloading docutils-0.15.2-py3-none-any.whl (547 kB)
5:17:19 PM: Collecting jmespath<1.0.0,>=0.7.1
5:17:19 PM:   Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
5:17:19 PM: Collecting s3transfer<0.4.0,>=0.3.0
5:17:19 PM:   Downloading s3transfer-0.3.3-py2.py3-none-any.whl (69 kB)
5:17:20 PM: Collecting msrest>=0.6.10
5:17:20 PM:   Downloading msrest-0.6.19-py2.py3-none-any.whl (84 kB)
5:17:20 PM: Collecting azure-core<2.0.0,>=1.9.0
5:17:20 PM:   Downloading azure_core-1.9.0-py2.py3-none-any.whl (124 kB)
5:17:20 PM: Collecting pyjwt<2.0.0
5:17:20 PM:   Downloading PyJWT-1.7.1-py2.py3-none-any.whl (18 kB)
5:17:20 PM: Collecting oscrypto<2.0.0
5:17:20 PM:   Downloading oscrypto-1.2.1-py2.py3-none-any.whl (192 kB)
5:17:20 PM: Collecting pycryptodomex!=3.5.0,<4.0.0,>=3.2
5:17:20 PM:   Downloading pycryptodomex-3.9.9-cp37-cp37m-manylinux1_x86_64.whl (13.7 MB)
5:17:21 PM: Collecting certifi<2021.0.0
5:17:21 PM:   Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB)
5:17:21 PM: Collecting pytz<2021.0
5:17:21 PM:   Downloading pytz-2020.4-py2.py3-none-any.whl (509 kB)
5:17:21 PM: Collecting pyOpenSSL<21.0.0,>=16.2.0
5:17:21 PM:   Downloading pyOpenSSL-20.0.0-py2.py3-none-any.whl (54 kB)
5:17:21 PM:   Downloading pyOpenSSL-19.1.0-py2.py3-none-any.whl (53 kB)
5:17:21 PM: Collecting asn1crypto<2.0.0,>0.24.0
5:17:21 PM:   Downloading asn1crypto-1.4.0-py2.py3-none-any.whl (104 kB)
5:17:21 PM: Collecting keyring!=16.1.0,<22.0.0
5:17:21 PM:   Downloading keyring-21.5.0-py3-none-any.whl (32 kB)
5:17:21 PM: Collecting chardet<4,>=3.0.2
5:17:21 PM:   Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
5:17:21 PM: Collecting pytimeparse>=1.1.5
5:17:21 PM:   Downloading pytimeparse-1.1.8-py2.py3-none-any.whl (10.0 kB)
5:17:21 PM: Collecting leather>=0.3.2
5:17:21 PM:   Downloading leather-0.3.3-py3-none-any.whl (35 kB)
5:17:21 PM: Collecting python-slugify>=1.2.1
5:17:21 PM:   Downloading python-slugify-4.0.1.tar.gz (11 kB)
5:17:22 PM: Collecting Babel>=2.0
5:17:22 PM:   Downloading Babel-2.9.0-py2.py3-none-any.whl (8.8 MB)
5:17:22 PM: Collecting parsedatetime>=2.1
5:17:22 PM:   Downloading parsedatetime-2.6-py3-none-any.whl (42 kB)
5:17:22 PM: Collecting MarkupSafe>=0.23
5:17:22 PM:   Downloading MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl (27 kB)
5:17:22 PM: Collecting pycparser
5:17:22 PM:   Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
5:17:22 PM: Collecting jsonschema<3.2,>=3.0
5:17:22 PM:   Downloading jsonschema-3.1.1-py2.py3-none-any.whl (56 kB)
5:17:22 PM: Requirement already satisfied: setuptools in /opt/buildhome/python3.7/lib/python3.7/site-packages (from protobuf<3.12,>=3.6.0->dbt-bigquery==0.18.1->dbt==0.18.1->-r requirements.txt (line 1)) (50.3.2)
5:17:22 PM: Collecting decorator>=4.3.0
5:17:23 PM:   Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
5:17:23 PM: Collecting google-auth<2.0dev,>=0.4.0
5:17:23 PM:   Downloading google_auth-1.23.0-py2.py3-none-any.whl (114 kB)
5:17:23 PM: Requirement already satisfied: setuptools in /opt/buildhome/python3.7/lib/python3.7/site-packages (from protobuf<3.12,>=3.6.0->dbt-bigquery==0.18.1->dbt==0.18.1->-r requirements.txt (line 1)) (50.3.2)
5:17:23 PM: Collecting google-resumable-media<0.6dev,>=0.5.0
5:17:23 PM:   Downloading google_resumable_media-0.5.1-py2.py3-none-any.whl (38 kB)
5:17:23 PM: Collecting requests-oauthlib>=0.5.0
5:17:23 PM:   Downloading requests_oauthlib-1.3.0-py2.py3-none-any.whl (23 kB)
5:17:23 PM: Collecting importlib-metadata>=1
5:17:23 PM:   Downloading importlib_metadata-3.1.1-py3-none-any.whl (9.6 kB)
5:17:23 PM: Collecting SecretStorage>=3.2
5:17:23 PM:   Downloading SecretStorage-3.3.0-py3-none-any.whl (14 kB)
5:17:23 PM: Collecting jeepney>=0.4.2
5:17:23 PM:   Downloading jeepney-0.6.0-py3-none-any.whl (45 kB)
5:17:23 PM: Collecting text-unidecode>=1.3
5:17:23 PM:   Downloading text_unidecode-1.3-py2.py3-none-any.whl (78 kB)
5:17:23 PM: Collecting pyrsistent>=0.14.0
5:17:23 PM:   Downloading pyrsistent-0.17.3.tar.gz (106 kB)
5:17:24 PM: Collecting attrs>=17.4.0
5:17:24 PM:   Downloading attrs-20.3.0-py2.py3-none-any.whl (49 kB)
5:17:24 PM: Collecting rsa<5,>=3.1.4
5:17:24 PM:   Downloading rsa-4.6-py3-none-any.whl (47 kB)
5:17:24 PM: Collecting cachetools<5.0,>=2.0.0
5:17:24 PM:   Downloading cachetools-4.1.1-py3-none-any.whl (10 kB)
5:17:24 PM: Collecting pyasn1-modules>=0.2.1
5:17:24 PM:   Downloading pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
5:17:24 PM: Collecting oauthlib>=3.0.0
5:17:24 PM:   Downloading oauthlib-3.1.0-py2.py3-none-any.whl (147 kB)
5:17:24 PM: Collecting zipp>=0.5
5:17:24 PM:   Downloading zipp-3.4.0-py3-none-any.whl (5.2 kB)
5:17:24 PM: Collecting pyasn1>=0.1.3
5:17:24 PM:   Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
5:17:25 PM: Building wheels for collected packages: thrift, PyYAML, minimal-snowplow-tracker, logbook, googleapis-common-protos, PyHive, future, sasl, thrift-sasl, python-slugify, pyrsistent
5:17:25 PM:   Building wheel for thrift (setup.py): started
5:17:30 PM:   Building wheel for thrift (setup.py): finished with status 'done'
5:17:30 PM:   Created wheel for thrift: filename=thrift-0.11.0-cp37-cp37m-linux_x86_64.whl size=307285 sha256=9b8d0a4959b1b59a4603cde0da9f8e90e689dbd7a051a111d647e546ba75587a
5:17:30 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/4c/14/51/0a5ef9b177fce063cbb528b80a24e672ca356f7b09a3a137f3
5:17:30 PM:   Building wheel for PyYAML (setup.py): started
5:17:39 PM:   Building wheel for PyYAML (setup.py): finished with status 'done'
5:17:39 PM:   Created wheel for PyYAML: filename=PyYAML-5.3.1-cp37-cp37m-linux_x86_64.whl size=416453 sha256=43e1deaf6cc5c0b2e7441477e6bacf533f21ef073bc4aaa3ca4c053c73705834
5:17:39 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/5e/03/1e/e1e954795d6f35dfc7b637fe2277bff021303bd9570ecea653
5:17:39 PM:   Building wheel for minimal-snowplow-tracker (setup.py): started
5:17:40 PM:   Building wheel for minimal-snowplow-tracker (setup.py): finished with status 'done'
5:17:40 PM:   Created wheel for minimal-snowplow-tracker: filename=minimal_snowplow_tracker-0.0.2-py3-none-any.whl size=17812 sha256=0892136fc7d6e06b6d1c0c488bc933d331b74dc13f1b7de0d15d2872c7c924fd
5:17:40 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/9d/ee/55/8faefee41ca3bccb25152e0159002567575047be7ef1ce8ac1
5:17:40 PM:   Building wheel for logbook (setup.py): started
5:17:40 PM:   Building wheel for logbook (setup.py): finished with status 'done'
5:17:40 PM:   Created wheel for logbook: filename=Logbook-1.5.3-cp37-cp37m-linux_x86_64.whl size=66384 sha256=bf06b9ae266ff90985a688148392ac337cb287031019f5d8d04a75c887c023cd
5:17:40 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/95/4b/a3/fc9b9d17a06a956767a8dc74058ba64d4306653df2289094cc
5:17:40 PM:   Building wheel for googleapis-common-protos (setup.py): started
5:17:41 PM:   Building wheel for googleapis-common-protos (setup.py): finished with status 'done'
5:17:41 PM:   Created wheel for googleapis-common-protos: filename=googleapis_common_protos-1.6.0-py3-none-any.whl size=77575 sha256=9f5620252ca518cb96b5ab2b877a89b39759a413eb79a3f2005cc12b460ff469
5:17:41 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/d4/8f/f8/0aa82958144f10d13972768e6fa7a1e4960d7f9e492a7e31f5
5:17:41 PM:   Building wheel for PyHive (setup.py): started
5:17:42 PM:   Building wheel for PyHive (setup.py): finished with status 'done'
5:17:42 PM:   Created wheel for PyHive: filename=PyHive-0.6.3-py3-none-any.whl size=47553 sha256=9d2ff98ced27cdd63762ee1b489f08b882c37ee86168cb1ad5c3142555007669
5:17:42 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/2a/41/7c/ca596391d05d420a9013a5de45676eed29c4ef7fd6e406e04b
5:17:42 PM:   Building wheel for future (setup.py): started
5:17:42 PM:   Building wheel for future (setup.py): finished with status 'done'
5:17:42 PM:   Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491059 sha256=08785b740c97082d9d6cb8ed7975088f88e0b793390f9f93ca27bee6b1c32083
5:17:42 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/56/b0/fe/4410d17b32f1f0c3cf54cdfb2bc04d7b4b8f4ae377e2229ba0
5:17:42 PM:   Building wheel for sasl (setup.py): started
5:17:43 PM:   Building wheel for sasl (setup.py): finished with status 'error'
5:17:43 PM:   ERROR: Command errored out with exit status 1:
5:17:43 PM:    command: /opt/buildhome/python3.7/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/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-opx59cbs
5:17:43 PM:        cwd: /tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/
5:17:43 PM:   Complete output (27 lines):
5:17:43 PM:   running bdist_wheel
5:17:43 PM:   running build
5:17:43 PM:   running build_py
5:17:43 PM:   creating build
5:17:43 PM:   creating build/lib.linux-x86_64-3.7
5:17:43 PM:   creating build/lib.linux-x86_64-3.7/sasl
5:17:43 PM:   copying sasl/__init__.py -> build/lib.linux-x86_64-3.7/sasl
5:17:43 PM:   running egg_info
5:17:43 PM:   writing sasl.egg-info/PKG-INFO
5:17:43 PM:   writing dependency_links to sasl.egg-info/dependency_links.txt
5:17:43 PM:   writing requirements to sasl.egg-info/requires.txt
5:17:43 PM:   writing top-level names to sasl.egg-info/top_level.txt
5:17:43 PM:   reading manifest file 'sasl.egg-info/SOURCES.txt'
5:17:43 PM:   reading manifest template 'MANIFEST.in'
5:17:43 PM:   writing manifest file 'sasl.egg-info/SOURCES.txt'
5:17:43 PM:   copying sasl/saslwrapper.cpp -> build/lib.linux-x86_64-3.7/sasl
5:17:43 PM:   copying sasl/saslwrapper.h -> build/lib.linux-x86_64-3.7/sasl
5:17:43 PM:   copying sasl/saslwrapper.pyx -> build/lib.linux-x86_64-3.7/sasl
5:17:43 PM:   running build_ext
5:17:43 PM:   building 'sasl.saslwrapper' extension
5:17:43 PM:   creating build/temp.linux-x86_64-3.7
5:17:43 PM:   creating build/temp.linux-x86_64-3.7/sasl
5:17:43 PM:   x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Isasl -I/usr/include/python3.7m -I/opt/buildhome/python3.7/include/python3.7m -c sasl/saslwrapper.cpp -o build/temp.linux-x86_64-3.7/sasl/saslwrapper.o
5:17:43 PM:   In file included from sasl/saslwrapper.cpp:254:0:
5:17:43 PM:   sasl/saslwrapper.h:22:23: fatal error: sasl/sasl.h: No such file or directory
5:17:43 PM:   compilation terminated.
5:17:43 PM:   error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
5:17:43 PM:   ----------------------------------------
5:17:43 PM:   ERROR: Failed building wheel for sasl
5:17:43 PM:   Running setup.py clean for sasl
5:17:43 PM:   Building wheel for thrift-sasl (setup.py): started
5:17:44 PM:   Building wheel for thrift-sasl (setup.py): finished with status 'done'
5:17:44 PM:   Created wheel for thrift-sasl: filename=thrift_sasl-0.4.2-py3-none-any.whl size=4008 sha256=0e9d6b9383b04c7a316d6524c00d57695d84b4a0260d89c6581cadbc10739b90
5:17:44 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/13/46/88/86ec5cd2b4fe7bafb7ea54d55e17831808a175e990f79e7a63
5:17:44 PM:   Building wheel for python-slugify (setup.py): started
5:17:45 PM:   Building wheel for python-slugify (setup.py): finished with status 'done'
5:17:45 PM:   Created wheel for python-slugify: filename=python_slugify-4.0.1-py2.py3-none-any.whl size=6769 sha256=7e2202a36139b8fac8de9db0afe64c76c168d29e05d8204c12aa29c3e5f3fa1f
5:17:45 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/48/1b/6f/5c1cfab22eacbe0095fc619786da6571b55253653c71324b5c
5:17:45 PM:   Building wheel for pyrsistent (setup.py): started
5:17:46 PM:   Building wheel for pyrsistent (setup.py): finished with status 'done'
5:17:46 PM:   Created wheel for pyrsistent: filename=pyrsistent-0.17.3-cp37-cp37m-linux_x86_64.whl size=94909 sha256=e6501ce49e2d71bd1c499832f393b23bc48456624902624832e9a6da4f108a58
5:17:46 PM:   Stored in directory: /opt/buildhome/.cache/pip/wheels/a5/52/bf/71258a1d7b3c8cbe1ee53f9314c6f65f20385481eaee573cc5
5:17:46 PM: Successfully built thrift PyYAML minimal-snowplow-tracker logbook googleapis-common-protos PyHive future thrift-sasl python-slugify pyrsistent
5:17:46 PM: Failed to build sasl
5:17:47 PM: Installing collected packages: urllib3, six, idna, chardet, certifi, zipp, requests, python-dateutil, pycparser, pyasn1, oauthlib, jmespath, docutils, text-unidecode, rsa, requests-oauthlib, pytz, pyrsistent, pyasn1-modules, protobuf, isodate, importlib-metadata, cffi, cachetools, botocore, attrs, s3transfer, pytimeparse, python-slugify, parsedatetime, msrest, MarkupSafe, leather, jsonschema, jeepney, googleapis-common-protos, google-auth, decorator, cryptography, Babel, azure-core, asn1crypto, werkzeug, typing-extensions, sqlparse, SecretStorage, PyYAML, pyOpenSSL, pyjwt, pycryptodomex, oscrypto, networkx, minimal-snowplow-tracker, logbook, json-rpc, Jinja2, hologram, google-api-core, colorama, boto3, azure-storage-blob, azure-common, agate, thrift, snowflake-connector-python, sasl, psycopg2-binary, keyring, google-resumable-media, google-cloud-core, future, dbt-core, thrift-sasl, PyHive, google-cloud-bigquery, dbt-postgres, sqlparams, dbt-snowflake, dbt-redshift, dbt-bigquery, dbt-spark, dbt
5:17:59 PM:     Running setup.py install for sasl: started
5:18:00 PM:     Running setup.py install for sasl: finished with status 'error'
5:18:00 PM:     ERROR: Command errored out with exit status 1:
5:18:00 PM:      command: /opt/buildhome/python3.7/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/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-lkzn750b/install-record.txt --single-version-externally-managed --compile --install-headers /opt/buildhome/python3.7/include/site/python3.7/sasl
5:18:00 PM:          cwd: /tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/
5:18:00 PM:     Complete output (27 lines):
5:18:00 PM:     running install
5:18:00 PM:     running build
5:18:00 PM:     running build_py
5:18:00 PM:     creating build
5:18:00 PM:     creating build/lib.linux-x86_64-3.7
5:18:00 PM:     creating build/lib.linux-x86_64-3.7/sasl
5:18:00 PM:     copying sasl/__init__.py -> build/lib.linux-x86_64-3.7/sasl
5:18:00 PM:     running egg_info
5:18:00 PM:     writing sasl.egg-info/PKG-INFO
5:18:00 PM:     writing dependency_links to sasl.egg-info/dependency_links.txt
5:18:00 PM:     writing requirements to sasl.egg-info/requires.txt
5:18:00 PM:     writing top-level names to sasl.egg-info/top_level.txt
5:18:00 PM:     reading manifest file 'sasl.egg-info/SOURCES.txt'
5:18:00 PM:     reading manifest template 'MANIFEST.in'
5:18:00 PM:     writing manifest file 'sasl.egg-info/SOURCES.txt'
5:18:00 PM:     copying sasl/saslwrapper.cpp -> build/lib.linux-x86_64-3.7/sasl
5:18:00 PM:     copying sasl/saslwrapper.h -> build/lib.linux-x86_64-3.7/sasl
5:18:00 PM:     copying sasl/saslwrapper.pyx -> build/lib.linux-x86_64-3.7/sasl
5:18:00 PM:     running build_ext
5:18:00 PM:     building 'sasl.saslwrapper' extension
5:18:00 PM:     creating build/temp.linux-x86_64-3.7
5:18:00 PM:     creating build/temp.linux-x86_64-3.7/sasl
5:18:00 PM:     x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Isasl -I/usr/include/python3.7m -I/opt/buildhome/python3.7/include/python3.7m -c sasl/saslwrapper.cpp -o build/temp.linux-x86_64-3.7/sasl/saslwrapper.o
5:18:00 PM:     In file included from sasl/saslwrapper.cpp:254:0:
5:18:00 PM:     sasl/saslwrapper.h:22:23: fatal error: sasl/sasl.h: No such file or directory
5:18:00 PM:     compilation terminated.
5:18:00 PM:     error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
5:18:00 PM:     ----------------------------------------
5:18:00 PM: ERROR: Command errored out with exit status 1: /opt/buildhome/python3.7/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7m7k41ns/sasl_2e5177ed8cd24e6c971c6dfc2f9a4bee/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-lkzn750b/install-record.txt --single-version-externally-managed --compile --install-headers /opt/buildhome/python3.7/include/site/python3.7/sasl Check the logs for full command output.
5:18:00 PM: WARNING: You are using pip version 20.3b1; however, version 20.3.1 is available.
5:18:00 PM: You should consider upgrading via the '/opt/buildhome/python3.7/bin/python3.7 -m pip install --upgrade pip' command.
5:18:01 PM: Error installing pip dependencies
5:18:01 PM: Build was terminated: Build script returned non-zero exit code: 1
5:18:01 PM: Failing build: Failed to build site
5:18:01 PM: Failed during stage 'building site': Build script returned non-zero exit code: 1
5:18:01 PM: Finished processing build request in 1m10.393562718s

I believe installing the OS package will resolve the issue.

bug feature

All 4 comments

@vbrown608 Do you think this is feasible to add this package?

Hi Brian! Looking at the logs, I don't see any demand for this package outside of internal use.

I tried pretty hard to get this working with homebrew. I was moving the homebrew install step above pip install, which I think we should probably do anyway.

I was able to install https://formulae.brew.sh/formula-linux/libsasl2. I did have to update the url to point to the release at https://github.com/cyrusimap/cyrus-sasl/releases, as the current URL was 404ing. I'm not sure if that formula is equivalent to the libsasl2-dev apt package or how they differ, but I still wasn't able to get the python package installation to find sasl.h.

The apt package is under 1MB so I'm open to adding it just for this, but wondering if you've got any other ideas for workarounds first.

sasl module is used in the package thrift-sasl of dbt-spark. Currently, we are using http connector instead of thrift so I don鈥檛 think we need this package. I鈥檝e tried to create a new environment, uninstall sasl and rundbt compile and it seems to work.

My suggestion is the following: Run the build pipeline with Pipenv.
If we create the dependencies with pipenv and we uninstall sasl from the environment, the Pipfile.lock won't contain this library and the build won't fail. We may use these Pipfileand Pipfile.lock files for the build image (The Pipfile will contain the same libraries as requirements.txt but the Pipfile.lock won't contain sasl library). Ref: https://docs.netlify.com/configure-builds/manage-dependencies/#install-via-pipenv

Fran has solved this with a different approach which seems to be working great. Closing the issue.

Was this page helpful?
0 / 5 - 0 ratings