diff --git a/.travis.yml b/.travis.yml index ed448d645..83b04fc74 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,12 +26,10 @@ install: bash $MINICONDA_FILE -b export PATH=/Users/travis/miniconda3/bin:$PATH - - conda update --yes conda - conda install --yes conda-build=1.20.0 jinja2 anaconda-client conda config --add channels conda-forge conda config --set show_channel_urls true - + conda install --yes --quiet conda-forge-build-setup + source run_conda_forge_build_setup script: - conda build ./recipe diff --git a/README.md b/README.md index 4277fa5da..d880120b8 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ About conda-forge conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the -conda-forge GitHub organization. The conda-forge organization contains one repository +conda-forge GitHub organization. The conda-forge organization contains one repository for each of the installable packages. Such a repository is known as a *feedstock*. A feedstock is made up of a conda recipe (the instructions on what and how to build @@ -71,7 +71,7 @@ Current build status ==================== Linux: [![Circle CI](https://circleci.com/gh/conda-forge/python-feedstock.svg?style=svg)](https://circleci.com/gh/conda-forge/python-feedstock) -OSX: [![TravisCI](https://travis-ci.org/conda-forge/python-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/python-feedstock) +OSX: [![TravisCI](https://travis-ci.org/conda-forge/python-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/python-feedstock) Windows: [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/conda-forge/python-feedstock?svg=True)](https://ci.appveyor.com/project/conda-forge/python-feedstock/branch/master) Current release info @@ -92,7 +92,7 @@ install and use. In order to produce a uniquely identifiable distribution: * If the version of a package **is not** being increased, please add or increase - the [``build/number``](http://conda.pydata.org/docs/building/meta-yaml.html#build-number-and-string). + the [``build/number``](http://conda.pydata.org/docs/building/meta-yaml.html#build-number-and-string). * If the version of a package **is** being increased, please remember to return the [``build/number``](http://conda.pydata.org/docs/building/meta-yaml.html#build-number-and-string) back to 0. diff --git a/appveyor.yml b/appveyor.yml index 862efd78d..c5d03ebea 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,6 +1,6 @@ # This file was automatically generated by conda-smithy. To update a component of this # file, make changes to conda-forge.yaml and/or recipe/meta.yaml, and run -# "conda-smithy regenerate". +# "conda smithy rerender". environment: @@ -46,18 +46,14 @@ install: - cmd: rmdir C:\cygwin /s /q - appveyor DownloadFile "https://raw.githubusercontent.com/pelson/Obvious-CI/master/bootstrap-obvious-ci-and-miniconda.py" - cmd: python bootstrap-obvious-ci-and-miniconda.py %CONDA_INSTALL_LOCN% %TARGET_ARCH% %CONDA_PY:~0,1% --without-obvci - - cmd: set PATH=%CONDA_INSTALL_LOCN%;%CONDA_INSTALL_LOCN%\scripts;%PATH% + - cmd: call %CONDA_INSTALL_LOCN%\Scripts\activate.bat - cmd: set PYTHONUNBUFFERED=1 - - cmd: conda config --add channels conda-forge - cmd: conda config --set show_channel_urls true - cmd: conda install -c pelson/channel/development --yes --quiet obvious-ci - - cmd: conda info - - cmd: conda install -n root --quiet --yes conda-build anaconda-client jinja2 setuptools - # Workaround for Python 3.4 and x64 bug in latest conda-build. - # FIXME: Remove once there is a release that fixes the upstream issue - # ( https://github.com/conda/conda-build/issues/895 ). - - cmd: if "%TARGET_ARCH%" == "x64" if "%CONDA_PY%" == "34" conda install conda-build=1.20.0 --yes + - cmd: conda config --add channels conda-forge + - cmd: conda install -n root --quiet --yes conda-forge-build-setup + - cmd: run_conda_forge_build_setup # Skip .NET project specific build phase. build: off diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index bba3b1353..6bef066f0 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -14,7 +14,6 @@ config=$(cat < ~/.condarc # A lock sometimes occurs with incomplete builds. The lock file is stored in build_artefacts. conda clean --lock -conda update --yes --all -conda install --yes conda-build -conda info +conda install --yes --quiet conda-forge-build-setup +source run_conda_forge_build_setup # Embarking on 1 case(s). set -x diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 9f72bbb45..a50f2fd94 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -8,14 +8,17 @@ source: sha256: 1524b840e42cf3b909e8f8df67c1724012c7dc7f9d076d4feef2d3eff031e8a0 patches: - omit-local-site-packages.patch # [osx] + - osx64-dist.patch # [osx and x86_64] + - win-find_exe.patch # [win] + - win-library_bin.patch # [win] build: - number: 1 + number: 2 # Windows has issues updating python if conda is using files itself. # Copy rather than link. no_link: - - DLLs/_ctypes.py # [win] - - bin/python + - DLLs/_ctypes.pyd # [win] + - bin/python3.5 # [unix] track_features: - vc14 # [win] @@ -37,6 +40,7 @@ requirements: - xz 5.2.* # [unix] - zlib 1.2.* # [unix] - ncurses 5.9* # [linux] + - vs2015_runtime # [win] test: commands: diff --git a/recipe/osx64-dist.patch b/recipe/osx64-dist.patch new file mode 100644 index 000000000..875c98e90 --- /dev/null +++ b/recipe/osx64-dist.patch @@ -0,0 +1,12 @@ +diff --git Lib/distutils/unixccompiler.py Lib/distutils/unixccompiler.py +index 094a2f0..4252605 100644 +--- Lib/distutils/unixccompiler.py ++++ Lib/distutils/unixccompiler.py +@@ -191,6 +191,7 @@ class UnixCCompiler(CCompiler): + linker[i] = self.compiler_cxx[i] + + if sys.platform == 'darwin': ++ ld_args = ['-arch', 'x86_64'] + ld_args + linker = _osx_support.compiler_fixup(linker, ld_args) + + self.spawn(linker + ld_args) diff --git a/recipe/win-find_exe.patch b/recipe/win-find_exe.patch new file mode 100644 index 000000000..f16c12f48 --- /dev/null +++ b/recipe/win-find_exe.patch @@ -0,0 +1,35 @@ +diff --git Lib/distutils/spawn.py Lib/distutils/spawn.py +index 5dd415a..ce85901 100644 +--- Lib/distutils/spawn.py ++++ Lib/distutils/spawn.py +@@ -176,17 +176,16 @@ def find_executable(executable, path=None): + path = os.environ['PATH'] + + paths = path.split(os.pathsep) +- base, ext = os.path.splitext(executable) +- +- if (sys.platform == 'win32') and (ext != '.exe'): +- executable = executable + '.exe' +- +- if not os.path.isfile(executable): +- for p in paths: +- f = os.path.join(p, executable) +- if os.path.isfile(f): +- # the file exists, we have a shot at spawn working +- return f +- return None +- else: +- return executable ++ ++ for ext in '.exe', '.bat', '': ++ newexe = executable + ext ++ ++ if os.path.isfile(newexe): ++ return newexe ++ else: ++ for p in paths: ++ f = os.path.join(p, newexe) ++ if os.path.isfile(f): ++ # the file exists, we have a shot at spawn working ++ return f ++ return None diff --git a/recipe/win-library_bin.patch b/recipe/win-library_bin.patch new file mode 100644 index 000000000..cc8d70d8a --- /dev/null +++ b/recipe/win-library_bin.patch @@ -0,0 +1,12 @@ +--- Lib/site.py.orig 2016-07-23 09:17:55.000000000 -0500 ++++ Lib/site.py 2016-07-23 09:25:06.000000000 -0500 +@@ -556,6 +556,9 @@ + execsitecustomize() + if ENABLE_USER_SITE: + execusercustomize() ++ if sys.platform == 'win32': ++ os.environ["PATH"] = r"%s\Library\bin;%s" % (sys.prefix, ++ os.environ["PATH"]) + + # Prevent edition of sys.path when python was started with -S and + # site is imported later.