Mercurial > p > roundup > code
view .github/workflows/build-xapian.yml @ 7968:d7e79f8eb943
issue2551350 - Python changes for 3.12 with roundup 2.3.0 mailer.py
Fix due to change in smtplib.SMTP.starttls() signature.
As of 3.3 it can use an optional ssl context argument for
certificates/keys. In 3.12 it dropped legacy support for specifing
cert/key files as arguments and requires a context.
I modified Andrew's original patch to initialize SSLContext with
ssl.PROTOCOL_TLS_CLIENT.
If there is a cert file specified, enable
check_hostname - verify that the cert supplied by the server matches
the hostname we supplied.
If there is no cert file call
load_default_certs()
Also opened issue2551351 to look into more SMTP ssmtp tightening. We
also should have an option in Roundup to use TLS/SSL (smtps) without
using starttls.
Note that this code is untested by the test suite due to the need to
setup an SMTP server with STARTTLS support. issue2551351 has some
notes on this.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 15 May 2024 00:08:05 -0400 |
| parents | 05ce472d372b |
| children | 131c962fb6af |
line wrap: on
line source
name: build-xapian on: push: # skip if github.ref is 'refs/heads/maint-1.6' # aka github.ref_name of 'maint-1.6' # see https://github.com/orgs/community/discussions/26253 # for mechanism to control matrix based on branch branches: [ "*", '!maint-1.6' ] workflow_dispatch: inputs: debug_enabled: type: boolean description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' required: false default: false # GITHUB_TOKEN only has read repo context. permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: name: build xapian runs-on: ubuntu-22.04 env: # get colorized pytest output even without a controlling tty PYTEST_ADDOPTS: "--color=yes" # OS: ${{ matrix.os }} PYTHON_VERSION: 3.13 steps: # Checkout the latest code from the repo - name: Checkout source # example directives: # disable step # if: {{ false }} # continue running if step fails # continue-on-error: true uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 # Setup version of Python to use - name: Set Up Python 3.13 uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 with: python-version: 3.13 allow-prereleases: true cache: 'pip' - name: Install build tools - setuptools run: pip install setuptools # Display the Python version being used - name: Display Python and key module versions run: | python -c "import sys; print('python version: ', sys.version)" python -c "import sqlite3; print('sqlite version: ', sqlite3.sqlite_version)" python -c "import setuptools; print('setuptools version: ', setuptools.__version__);" - name: Update pip run: python -m pip install --upgrade pip # https://github.com/mxschmitt/action-tmate # allow remote ssh into the CI container. I need this to debug # some xfail cases - name: Setup tmate session uses: mxschmitt/action-tmate@v3 if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} timeout-minutes: 60 with: limit-access-to-actor: true - name: Install xapian run: | set -xv sudo apt-get install libxapian-dev # Sphinx required to build the xapian python bindings. Use 1.8.5 on # older python and newest on newer. pip install sphinx XAPIAN_VER="1.4.25"; echo $XAPIAN_VER; cd /tmp curl -s -O https://oligarchy.co.uk/xapian/$XAPIAN_VER/xapian-bindings-$XAPIAN_VER.tar.xz tar -Jxvf xapian-bindings-$XAPIAN_VER.tar.xz cd xapian-bindings-$XAPIAN_VER/ # edit the configure script. # distutils.sysconfig.get_config_vars('SO') doesn't work for # 3.11 or newer. # Change distutils.sysconfig... to just sysconfig and SO # to EXT_SUFFIX to get valid value. # DISABLED use their script if [[ $PYTHON_VERSION == "X."* ]]; then cp configure configure.FCS; sed -i \ -e '/PYTHON3_SO=/s/distutils\.//g' \ -e '/PYTHON3_SO=/s/"SO"/"EXT_SUFFIX"/g' \ -e '/PYTHON3_CACHE_TAG=/s/imp;print(imp.get_tag())/sys;print(sys.implementation.cache_tag)/' \ -e '/PYTHON3_CACHE_OPT1_EXT=/s/imp\.get_tag()/sys.implementation.cache_tag/g' \ -e '/PYTHON3_CACHE_OPT1_EXT=/s/imp\b/importlib/g' \ configure; diff -u configure.FCS configure || true; fi ./configure --prefix=$VIRTUAL_ENV --with-python3 --disable-documentation make && sudo make install python -c 'import xapian'
