Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Build on xcode9 #18134

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Aug 2, 2020
22 changes: 6 additions & 16 deletions 22 .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ matrix:
env:
- PRE=--pre
- os: osx
osx_image: xcode9
language: generic # https://github.com/travis-ci/travis-ci/issues/2312
only: master
cache:
Expand All @@ -101,26 +102,15 @@ matrix:
allow_failures:
- python: "nightly"

before_install: |
before_install:
- |
# Install libraries and set up ccache
case "$TRAVIS_OS_NAME" in
linux)
export PATH=/usr/lib/ccache:$PATH
;;
osx)
set -e
ci/silence brew update
brew uninstall numpy gdal postgis
brew unlink python@2
brew install python || brew upgrade python
brew install ffmpeg imagemagick mplayer ccache
hash -r
which python
python --version
set +e
# We could install ghostscript and inkscape here to test svg and pdf
# but this makes the test time really long.
# brew install ghostscript inkscape
export PATH=/usr/local/opt/python/libexec/bin:/usr/local/opt/ccache/libexec:$PATH
ci/osx-deps
;;
esac

Expand Down Expand Up @@ -169,7 +159,7 @@ install:
export CPPFLAGS=--coverage
fi
- |
python -mpip install -ve . # Install Matplotlib.
python -mpip install -e . # Install Matplotlib.
- |
if [[ $TRAVIS_OS_NAME != 'osx' ]]; then
unset CPPFLAGS
Expand Down
77 changes: 77 additions & 0 deletions 77 ci/osx-deps
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
#!/bin/bash

set -euo pipefail

fold_start() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤯

key=$1
title=$2
echo -e "travis_fold:start:$key\e[2K"
echo -e "travis_time:start:$key\e[2K"
tick="$(date +%s)"
echo "$title"
}

fold_end() {
key=$1
tock="$(date +%s)"
nano=000000000
echo -e "travis_time:end:$key:start=$tick$nano,finish=$tock$nano,duration=$((tock - tick))$nano\e[2K"
echo -e "travis_fold:end:$key\e[2K"
}

fold_start Python "Install Python 3.8 from python.org"
curl -O https://www.python.org/ftp/python/3.8.5/python-3.8.5-macosx10.9.pkg
sudo installer -package python-3.8.5-macosx10.9.pkg -target /
sudo ln -s /usr/local/bin/python3 /usr/local/bin/python
hash -r
fold_end Python

fold_start Qt4.8 "Install Qt 4.8 from qt.io"
curl -O https://download.qt.io/archive/qt/4.8/4.8.7/qt-opensource-mac-4.8.7.dmg
hdiutil attach qt-opensource-mac-4.8.7.dmg
sudo installer -package '/Volumes/Qt 4.8.7/packages/Qt_headers.pkg' -target /
sudo installer -package '/Volumes/Qt 4.8.7/packages/Qt_imports.pkg' -target /
sudo installer -package '/Volumes/Qt 4.8.7/packages/Qt_libraries.pkg' -target /
hdiutil detach '/Volumes/Qt 4.8.7'
fold_end Qt4.8

fold_start ccache 'Install ccache (compile it ourselves)'
curl -O -L https://github.com/ccache/ccache/releases/download/v3.7.11/ccache-3.7.11.tar.xz
tar xf ccache-3.7.11.tar.xz
pushd ccache-3.7.11
./configure --prefix=/usr/local
make
make install
popd
for compiler in clang clang++ cc gcc c++ g++; do
ln -sf ccache /usr/local/bin/$compiler
done
fold_end ccache

fold_start pkg-config 'Install pkg-config (compile it ourselves)'
curl -O -L https://dl.bintray.com/homebrew/mirror/pkg-config-0.29.2.tar.gz
tar xf pkg-config-0.29.2.tar.gz
pushd pkg-config-0.29.2
./configure --disable-debug --prefix=/usr/local --disable-host-tool \
--with-internal-glib --with-pc-path=/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/local/pkgconfig \
--with-system-include-path=/usr/include
make
make install
popd
fold_end pkg-config

fold_start libpng 'Install libpng (compile it ourselves)'
curl -O -L https://downloads.sourceforge.net/libpng/libpng-1.6.37.tar.xz
jkseppan marked this conversation as resolved.
Show resolved Hide resolved
tar xf libpng-1.6.37.tar.xz
pushd libpng-1.6.37
./configure --disable-dependency-tracking --disable-silent-rules --prefix=/usr/local
make
make install
popd
fold_end libpng

fold_start freetype 'Install freetype (just unpack into the build directory)'
curl -O -L https://download.savannah.gnu.org/releases/freetype/freetype-2.6.1.tar.gz
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why can't we just rely on what's already going on in setupext.py?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sure I added this because of some reason, but the details are lost in the rebases... I'll see if and how the build fails without this step.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build ends with the error message

error: Failed to download FreeType. Please download one of ['https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz', 'https://download.savannah.gnu.org/releases/freetype/freetype-2.6.1.tar.gz'] and extract it into build/freetype-2.6.1 at the top-level of the source repository.

I don't know how it is trying to download the file, but perhaps the older MacOS version doesn't support it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's just using standard library urllib. Two possibilities, the SSL certificates are old/not found, or the cache location is not writable.

mkdir -p build
tar -x -C build -f freetype-2.6.1.tar.gz
fold_end freetype
6 changes: 6 additions & 0 deletions 6 lib/matplotlib/tests/test_backend_qt.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
import pytest


try:
from matplotlib.backends.qt_compat import QtGui
except ImportError:
pytestmark = pytest.mark.skip('No usable Qt5 bindings')


@pytest.fixture
def qt_core(request):
backend, = request.node.get_closest_marker('backend').args
Expand Down
8 changes: 8 additions & 0 deletions 8 lib/matplotlib/tests/test_backends_interactive.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@
# versions so we don't fail on missing backends.

def _get_testable_interactive_backends():
try:
from matplotlib.backends.qt_compat import QtGui # noqa
have_qt5 = True
except ImportError:
have_qt5 = False

backends = []
for deps, backend in [
(["cairo", "gi"], "gtk3agg"),
Expand All @@ -39,6 +45,8 @@ def _get_testable_interactive_backends():
reason = "{} cannot be imported".format(", ".join(missing))
elif backend == 'macosx' and os.environ.get('TF_BUILD'):
reason = "macosx backend fails on Azure"
elif 'qt5' in backend and not have_qt5:
reason = "no usable Qt5 bindings"
if reason:
backend = pytest.param(
backend,
Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.