diff --git a/LICENSE b/LICENSE index 5a8e3325..d6456956 100644 --- a/LICENSE +++ b/LICENSE @@ -1,14 +1,202 @@ - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - Copyright (C) 2004 Sam Hocevar + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + 1. Definitions. - 0. You just DO WHAT THE FUCK YOU WANT TO. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Makefile b/Makefile index 564d0a43..aadd5e3d 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ all: build # Get configuration. mk/env.mk: env - @bash --noprofile --norc -c 'source ./env; set -o posix; set' | egrep '^(ANDROID|SDK|NDK|BUILD|TEST|PYTHON)_' > $@ + @bash --noprofile --norc -c 'source ./env; set -o posix; set' | egrep '^(ANDROID|SDK|NDK|BUILD|TEST|PYTHON|SOURCES)_' > $@ -include mk/env.mk # A formula. @@ -13,7 +13,11 @@ $1: $1-$2 $1-$2: ndk $3 $$(info Checking $1 $2 sources...) +ifeq ($(SOURCES_LOCAL),1) + @wget -N -P "src/" -i "mk/$1/$2/sources-local.txt" +else @wget -N -P "src/" -i "mk/$1/$2/sources.txt" +endif ifeq ("$$(wildcard build/.built-$(BUILD_IDENTIFIER)/$1-$2)","") $$(info Building $1 $2...) @bash --noprofile --norc mk/build_single.sh $1 $2 @@ -27,7 +31,7 @@ endef build: python_modules python # Main Python. -$(eval $(call formula,python,3.4.3)) +$(eval $(call formula,python,3.5.1)) # Optional Python modules. python_modules: $(foreach mod,$(subst ',,$(PYTHON_OPTIONAL_MODULES)),python_$(mod)) @@ -45,7 +49,7 @@ $(eval $(call formula,readline,6.3)) python_readline: readline # Python SSL support. -$(eval $(call formula,openssl,1.0.2d)) +$(eval $(call formula,openssl,1.0.2e)) python_ssl: openssl # Python curses support. diff --git a/env b/env index 45243595..2d14bfdf 100644 --- a/env +++ b/env @@ -6,15 +6,30 @@ export ANDROID_TOOL_PREFIX="${BASE}/build-tools" export ANDROID_TEST_PREFIX="${BASE}/build-vm" # SDKs and target platforms. -export NDK_REL=android-ndk-r10d -export SDK_REL=android-sdk-r24.0.2 -export NDK_REV=10d -export SDK_REV=24.0.2 -export ANDROID_API_LEVEL=21 +export NDK_REV=14b +export SDK_REV=25.2.4 +export NDK_REL=android-ndk-r${NDK_REV} +export SDK_REL=android-sdk-r${SDK_REV} +# For Honeywell, we can not go above 23 +# For Zebra we can not go above 22 +export ANDROID_API_LEVEL=22 export ANDROID_PLATFORM=arm +#export ANDROID_PLATFORM=arm64 +#export ANDROID_PLATFORM=x86 export ANDROID_COMPILER=4.9 + +case "${NDK_REV}" in + 10*) + export ANDROID_COMPILER64=clang3.6 + ;; + *) + export ANDROID_COMPILER64=4.9 + ;; +esac + export ANDROID_HOST=x86_64-pc-linux-gnu export ANDROID_AGREE_LICENSE_TERMS=n +export SOURCES_LOCAL=0 # Testing. export ANDROID_VM_NAME=PythonTesting @@ -46,6 +61,10 @@ case "${ANDROID_PLATFORM}" in export ANDROID_TARGET=arm-linux-androideabi export ANDROID_TOOLCHAIN="arm-linux-androideabi-${ANDROID_COMPILER}" ;; + arm64) + export ANDROID_TARGET=aarch64-linux-android + export ANDROID_TOOLCHAIN="aarch64-linux-android-${ANDROID_COMPILER64}" + ;; mips) export ANDROID_TARGET=mipsel-linux-android export ANDROID_TOOLCHAIN="mipsel-linu-android-${ANDROID_COMPILER}" @@ -61,3 +80,4 @@ case "${ANDROID_PLATFORM}" in esac export BUILD_IDENTIFIER="${NDK_REV}-${ANDROID_API_LEVEL}-${ANDROID_TOOLCHAIN}" export TEST_IDENTIFIER="${SDK_REV}-${ANDROID_API_LEVEL}-${ANDROID_PLATFORM}" + diff --git a/mk/build_ndk.sh b/mk/build_ndk.sh index cbc953c3..38424565 100755 --- a/mk/build_ndk.sh +++ b/mk/build_ndk.sh @@ -31,15 +31,15 @@ case "${NDK_REV}" in fi ;; *) - NDK_ARCHIVE="$BASE/sdk/android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z]')-${NDK_ARCH}.tar.bz2" + NDK_ARCHIVE="${BASE}/sdk/android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z]')-${NDK_ARCH}" if [[ ! -d "${BASE}/sdk/${NDK_REL}" ]]; then - # Tar archive. - tar -xf "${NDK_ARCHIVE}" -C "${BASE}/sdk" || exit 1 + # Zip archive + unzip "${NDK_ARCHIVE}" -d "${BASE}/sdk" || exit 1 fi ;; esac if [[ ! -f "${ANDROID_PREFIX}/.built-ndk-${BUILD_IDENTIFIER}" ]]; then - ("${BASE}/sdk/${NDK_REL}/build/tools/make-standalone-toolchain.sh" --platform="android-${ANDROID_API_LEVEL}" --install-dir="${ANDROID_TOOL_PREFIX}/${BUILD_IDENTIFIER}" --toolchain="${ANDROID_TOOLCHAIN}" &&\ + ("${BASE}/sdk/${NDK_REL}/build/tools/make-standalone-toolchain.sh" --force --platform="android-${ANDROID_API_LEVEL}" --install-dir="${ANDROID_TOOL_PREFIX}/${BUILD_IDENTIFIER}" --toolchain="${ANDROID_TOOLCHAIN}" &&\ touch "${ANDROID_PREFIX}/.built-ndk-${BUILD_IDENTIFIER}") || exit 1 fi diff --git a/mk/bzip2/1.0.6/sources-local.txt b/mk/bzip2/1.0.6/sources-local.txt new file mode 100644 index 00000000..d7d248bf --- /dev/null +++ b/mk/bzip2/1.0.6/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/bzip/bzip2/1.0.6/bzip2-1.0.6.tar.gz diff --git a/mk/gdbm/1.11/sources-local.txt b/mk/gdbm/1.11/sources-local.txt new file mode 100644 index 00000000..fdb68f3e --- /dev/null +++ b/mk/gdbm/1.11/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/gdbm/1.11/gdbm-1.11.tar.gz diff --git a/mk/ncurses/5.9/sources-local.txt b/mk/ncurses/5.9/sources-local.txt new file mode 100644 index 00000000..c577005b --- /dev/null +++ b/mk/ncurses/5.9/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/ncurses/5.9/ncurses-5.9.tar.gz diff --git a/mk/ndk_source.sh b/mk/ndk_source.sh index 9728d983..3e0cd9fe 100644 --- a/mk/ndk_source.sh +++ b/mk/ndk_source.sh @@ -20,8 +20,20 @@ case "${NDK_REV}" in NDK_EXT=bin ;; *) - NDK_EXT=tar.bz2 + NDK_EXT=zip ;; esac -echo http://dl.google.com/android/ndk/android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z'])-${NDK_ARCH}.${NDK_EXT} +if [ $SOURCES_LOCAL = 1 ] +then + echo http://artifactory.ops.cld/artifactory/ThirdParty/COTS/android/android-ndk/r${NDK_REV}/android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z'])-${NDK_ARCH}.${NDK_EXT} +else + case "${NDK_REV}" in + 10*) + echo http://dl.google.com/android/ndk/android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z'])-${NDK_ARCH}.${NDK_EXT} + ;; + *) + echo http://dl.google.com/android/repository/android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z'])-${NDK_ARCH}.${NDK_EXT} + ;; + esac +fi \ No newline at end of file diff --git a/mk/openssl/1.0.2d/sources.txt b/mk/openssl/1.0.2d/sources.txt deleted file mode 100644 index 62a2e775..00000000 --- a/mk/openssl/1.0.2d/sources.txt +++ /dev/null @@ -1 +0,0 @@ -https://openssl.org/source/openssl-1.0.2d.tar.gz diff --git a/mk/openssl/1.0.2d/build.sh b/mk/openssl/1.0.2e/build.sh similarity index 100% rename from mk/openssl/1.0.2d/build.sh rename to mk/openssl/1.0.2e/build.sh diff --git a/mk/openssl/1.0.2d/openssl-1.0.2d-android-ndk-target.patch b/mk/openssl/1.0.2e/openssl-1.0.2e-android-ndk-target.patch similarity index 100% rename from mk/openssl/1.0.2d/openssl-1.0.2d-android-ndk-target.patch rename to mk/openssl/1.0.2e/openssl-1.0.2e-android-ndk-target.patch diff --git a/mk/openssl/1.0.2e/sources-local.txt b/mk/openssl/1.0.2e/sources-local.txt new file mode 100644 index 00000000..8d64755d --- /dev/null +++ b/mk/openssl/1.0.2e/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/openssl/1.0.2e/openssl-1.0.2e.tar.gz diff --git a/mk/openssl/1.0.2e/sources.txt b/mk/openssl/1.0.2e/sources.txt new file mode 100644 index 00000000..ac30ccd5 --- /dev/null +++ b/mk/openssl/1.0.2e/sources.txt @@ -0,0 +1 @@ +http://artfiles.org/openssl.org/source/old/1.0.2/openssl-1.0.2e.tar.gz diff --git a/mk/python/3.4.3/sources.txt b/mk/python/3.4.3/sources.txt deleted file mode 100644 index 2529ed0a..00000000 --- a/mk/python/3.4.3/sources.txt +++ /dev/null @@ -1 +0,0 @@ -https://python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz diff --git a/mk/python/3.4.3/build.sh b/mk/python/3.5.1/build.sh similarity index 87% rename from mk/python/3.4.3/build.sh rename to mk/python/3.5.1/build.sh index d54fe998..20826212 100644 --- a/mk/python/3.4.3/build.sh +++ b/mk/python/3.5.1/build.sh @@ -19,8 +19,10 @@ patch -p1 < "${FILESDIR}/${PACKAGE}-cross-compile.patch" || exit 1 patch -p1 < "${FILESDIR}/${PACKAGE}-python-misc.patch" || exit 1 patch -p1 < "${FILESDIR}/${PACKAGE}-android-locale.patch" || exit 1 patch -Ep1 < "${FILESDIR}/${PACKAGE}-android-libmpdec.patch" || exit 1 -[[ "${NDK_REV}" != 10* ]] && (patch -p1 < "${FILESDIR}/${PACKAGE}-android-missing-getdents64-definition.patch" || exit 1) patch -p1 < "${FILESDIR}/${PACKAGE}-android-misc.patch" || exit 1 +#patch -p1 < "${FILESDIR}/${PACKAGE}-android-print.patch" || exit 1 +patch -p1 < "${FILESDIR}/${PACKAGE}-android-extras.patch" || exit 1 +#patch -p1 < "${FILESDIR}/${PACKAGE}-accept4.patch" || exit 1 ./configure CROSS_COMPILE_TARGET=yes HOSTPYTHON="$(pwd)/hostpython" CONFIG_SITE=config.site --prefix="${PREFIX}" --host="${TARGET}" --build="${HOST}" --disable-ipv6 --enable-shared --without-ensurepip || exit 1 make CROSS_COMPILE_TARGET=yes HOSTPYTHON="$(pwd)/hostpython" HOSTPGEN="$(pwd)/Parser/hostpgen" || exit 1 diff --git a/mk/python/3.5.1/python-3.5.1-accept4.patch b/mk/python/3.5.1/python-3.5.1-accept4.patch new file mode 100644 index 00000000..ffe4b558 --- /dev/null +++ b/mk/python/3.5.1/python-3.5.1-accept4.patch @@ -0,0 +1,11 @@ +--- Python-3.5.1/Modules/socketmodule.c 2016-10-20 11:06:38.170393614 -0400 ++++ Python-3.5.1-android/Modules/socketmodule.c 2016-10-20 11:47:06.018345261 -0400 +@@ -421,6 +421,8 @@ + #define INADDR_NONE (-1) + #endif + ++#undef HAVE_ACCEPT4 ++ + /* XXX There's a problem here: *static* functions are not supposed to have + a Py prefix (or use CapitalizedWords). Later... */ + diff --git a/mk/python/3.5.1/python-3.5.1-android-extras.patch b/mk/python/3.5.1/python-3.5.1-android-extras.patch new file mode 100644 index 00000000..3aa312f7 --- /dev/null +++ b/mk/python/3.5.1/python-3.5.1-android-extras.patch @@ -0,0 +1,7 @@ +--- ./config.site 2017-01-16 13:05:00.374771609 -0500 ++++ ./config.new.site 2017-01-16 13:03:16.482767000 -0500 +@@ -1,2 +1,3 @@ + ac_cv_file__dev_ptmx=no + ac_cv_file__dev_ptc=no ++ac_cv_func_wcsftime=no + diff --git a/mk/python/3.4.3/python-3.4.3-android-libmpdec.patch b/mk/python/3.5.1/python-3.5.1-android-libmpdec.patch similarity index 100% rename from mk/python/3.4.3/python-3.4.3-android-libmpdec.patch rename to mk/python/3.5.1/python-3.5.1-android-libmpdec.patch diff --git a/mk/python/3.4.3/python-3.4.3-android-locale.patch b/mk/python/3.5.1/python-3.5.1-android-locale.patch similarity index 88% rename from mk/python/3.4.3/python-3.4.3-android-locale.patch rename to mk/python/3.5.1/python-3.5.1-android-locale.patch index 27ddcbbd..e535a71c 100644 --- a/mk/python/3.4.3/python-3.4.3-android-locale.patch +++ b/mk/python/3.5.1/python-3.5.1-android-locale.patch @@ -1,8 +1,8 @@ diff -ru Python-3.3.5/Modules/Setup.dist Python-3.3.5-android/Modules/Setup.dist --- Python-3.3.5/Modules/Setup.dist 2014-03-09 09:40:23.000000000 +0100 +++ Python-3.3.5-android/Modules/Setup.dist 2014-08-04 22:16:29.000000000 +0200 -@@ -118,7 +118,7 @@ - itertools itertoolsmodule.c # Functions creating iterators for efficient looping +@@ -121,7 +121,7 @@ + time timemodule.c # -lm # time operations and variables # access to ISO C locale support -_locale _localemodule.c # -lintl @@ -60,7 +60,7 @@ diff -ru Python-3.3.5/Modules/_localemodule.c Python-3.3.5-android/Modules/_loca /* if LC_NUMERIC is different in the C library, use saved value */ l = localeconv(); -@@ -189,6 +201,7 @@ +@@ -195,6 +207,7 @@ RESULT_INT(p_sign_posn); RESULT_INT(n_sign_posn); return result; @@ -71,8 +71,8 @@ diff -ru Python-3.3.5/Modules/_localemodule.c Python-3.3.5-android/Modules/_loca diff -ru Python-3.3.5/Modules/main.c Python-3.3.5-android/Modules/main.c --- Python-3.3.5/Modules/main.c 2014-03-09 09:40:27.000000000 +0100 +++ Python-3.3.5-android/Modules/main.c 2014-08-04 22:16:29.000000000 +0200 -@@ -522,7 +522,7 @@ - oldloc = strdup(setlocale(LC_ALL, NULL)); +@@ -549,7 +549,7 @@ + oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, ""); for (p = strtok(buf, ","); p != NULL; p = strtok(NULL, ",")) { -#ifdef __APPLE__ @@ -83,7 +83,7 @@ diff -ru Python-3.3.5/Modules/main.c Python-3.3.5-android/Modules/main.c diff -ru Python-3.3.5/Objects/unicodeobject.c Python-3.3.5-android/Objects/unicodeobject.c --- Python-3.3.5/Objects/unicodeobject.c 2014-03-09 09:40:30.000000000 +0100 +++ Python-3.3.5-android/Objects/unicodeobject.c 2014-08-04 22:16:29.000000000 +0200 -@@ -3295,13 +3295,22 @@ +@@ -3167,13 +3167,22 @@ static int locale_error_handler(const char *errors, int *surrogateescape) { @@ -106,7 +106,7 @@ diff -ru Python-3.3.5/Objects/unicodeobject.c Python-3.3.5-android/Objects/unico return 0; } if (strcmp(errors, "surrogateescape") == 0) { -@@ -3429,7 +3438,7 @@ +@@ -3302,7 +3311,7 @@ { #ifdef HAVE_MBCS return PyUnicode_EncodeCodePage(CP_ACP, unicode, NULL); @@ -115,7 +115,7 @@ diff -ru Python-3.3.5/Objects/unicodeobject.c Python-3.3.5-android/Objects/unico return _PyUnicode_AsUTF8String(unicode, "surrogateescape"); #else PyInterpreterState *interp = PyThreadState_GET()->interp; -@@ -3709,7 +3718,7 @@ +@@ -3586,7 +3595,7 @@ { #ifdef HAVE_MBCS return PyUnicode_DecodeMBCS(s, size, NULL); @@ -124,7 +124,7 @@ diff -ru Python-3.3.5/Objects/unicodeobject.c Python-3.3.5-android/Objects/unico return PyUnicode_DecodeUTF8Stateful(s, size, "surrogateescape", NULL); #else PyInterpreterState *interp = PyThreadState_GET()->interp; -@@ -4835,7 +4844,7 @@ +@@ -4777,7 +4786,7 @@ return NULL; } @@ -148,16 +148,16 @@ diff -ru Python-3.3.5/Python/bltinmodule.c Python-3.3.5-android/Python/bltinmodu diff -ru Python-3.3.5/Python/fileutils.c Python-3.3.5-android/Python/fileutils.c --- Python-3.3.5/Python/fileutils.c 2014-03-09 09:40:32.000000000 +0100 +++ Python-3.3.5-android/Python/fileutils.c 2014-08-04 22:16:29.000000000 +0200 -@@ -10,7 +10,7 @@ - #include - #endif +@@ -20,7 +20,7 @@ + #include + #endif /* HAVE_FCNTL_H */ -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__ANDROID__) extern wchar_t* _Py_DecodeUTF8_surrogateescape(const char *s, Py_ssize_t size); #endif -@@ -44,7 +44,7 @@ +@@ -70,7 +70,7 @@ Py_RETURN_NONE; } @@ -166,7 +166,7 @@ diff -ru Python-3.3.5/Python/fileutils.c Python-3.3.5-android/Python/fileutils.c extern int _Py_normalize_encoding(const char *, char *, size_t); /* Workaround FreeBSD and OpenIndiana locale encoding issue with the C locale. -@@ -194,7 +194,7 @@ +@@ -220,7 +220,7 @@ } #endif /* !defined(__APPLE__) && !defined(MS_WINDOWS) */ @@ -175,18 +175,18 @@ diff -ru Python-3.3.5/Python/fileutils.c Python-3.3.5-android/Python/fileutils.c static wchar_t* decode_ascii_surrogateescape(const char *arg, size_t *size) { -@@ -241,7 +241,7 @@ +@@ -272,7 +272,7 @@ wchar_t* - _Py_char2wchar(const char* arg, size_t *size) + Py_DecodeLocale(const char* arg, size_t *size) { -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__ANDROID__) wchar_t *wstr; wstr = _Py_DecodeUTF8_surrogateescape(arg, strlen(arg)); if (size != NULL) { -@@ -384,7 +384,7 @@ +@@ -423,7 +423,7 @@ char* - _Py_wchar2char(const wchar_t *text, size_t *error_pos) + Py_EncodeLocale(const wchar_t *text, size_t *error_pos) { -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__ANDROID__) @@ -196,7 +196,7 @@ diff -ru Python-3.3.5/Python/fileutils.c Python-3.3.5-android/Python/fileutils.c diff -ru Python-3.3.5/Python/formatter_unicode.c Python-3.3.5-android/Python/formatter_unicode.c --- Python-3.3.5/Python/formatter_unicode.c 2014-03-09 09:40:32.000000000 +0100 +++ Python-3.3.5-android/Python/formatter_unicode.c 2014-08-04 22:16:29.000000000 +0200 -@@ -665,6 +665,7 @@ +@@ -667,6 +667,7 @@ { switch (type) { case LT_CURRENT_LOCALE: { @@ -204,7 +204,7 @@ diff -ru Python-3.3.5/Python/formatter_unicode.c Python-3.3.5-android/Python/for struct lconv *locale_data = localeconv(); locale_info->decimal_point = PyUnicode_DecodeLocale( locale_data->decimal_point, -@@ -680,6 +681,7 @@ +@@ -682,6 +683,7 @@ } locale_info->grouping = locale_data->grouping; break; @@ -241,15 +241,3 @@ diff -ru Python-3.3.5/Python/pystrtod.c Python-3.3.5-android/Python/pystrtod.c if (decimal_point[0] != '.' || decimal_point[1] != 0) { size_t decimal_point_len = strlen(decimal_point); -diff -ru Python-3.3.5/Python/pythonrun.c Python-3.3.5-android/Python/pythonrun.c ---- Python-3.3.5/Python/pythonrun.c 2014-03-09 09:40:33.000000000 +0100 -+++ Python-3.3.5-android/Python/pythonrun.c 2014-08-04 22:16:29.000000000 +0200 -@@ -188,6 +188,8 @@ - return NULL; - } - return get_codec_name(codeset); -+#elif __ANDROID__ -+ return get_codec_name("UTF-8"); - #else - PyErr_SetNone(PyExc_NotImplementedError); - return NULL; diff --git a/mk/python/3.4.3/python-3.4.3-android-misc.patch b/mk/python/3.5.1/python-3.5.1-android-misc.patch similarity index 80% rename from mk/python/3.4.3/python-3.4.3-android-misc.patch rename to mk/python/3.5.1/python-3.5.1-android-misc.patch index 48bb11f4..69613fd6 100644 --- a/mk/python/3.4.3/python-3.4.3-android-misc.patch +++ b/mk/python/3.5.1/python-3.5.1-android-misc.patch @@ -1,7 +1,7 @@ diff -ru Python-3.3.5/Lib/platform.py Python-3.3.5-android/Lib/platform.py --- Python-3.3.5/Lib/platform.py 2014-03-09 09:40:13.000000000 +0100 +++ Python-3.3.5-android/Lib/platform.py 2014-08-04 22:19:36.000000000 +0200 -@@ -368,6 +368,63 @@ +@@ -367,6 +367,64 @@ supported_dists=supported_dists, full_distribution_name=0) @@ -53,6 +53,7 @@ diff -ru Python-3.3.5/Lib/platform.py Python-3.3.5-android/Lib/platform.py + if '=' not in line: + continue + key, val = line.split('=') ++ key, val = line.split('=')[0:2] + key = key.strip() + + if not version_obtained and key == _android_version_property: @@ -68,7 +69,7 @@ diff -ru Python-3.3.5/Lib/platform.py Python-3.3.5-android/Lib/platform.py diff -ru Python-3.3.5/Lib/subprocess.py Python-3.3.5-android/Lib/subprocess.py --- Python-3.3.5/Lib/subprocess.py 2014-03-09 09:40:13.000000000 +0100 +++ Python-3.3.5-android/Lib/subprocess.py 2014-08-04 22:19:36.000000000 +0200 -@@ -1343,9 +1343,18 @@ +@@ -1433,9 +1433,18 @@ args = list(args) if shell: @@ -92,16 +93,16 @@ diff -ru Python-3.3.5/Lib/subprocess.py Python-3.3.5-android/Lib/subprocess.py diff -ru Python-3.3.5/Lib/test/test_subprocess.py Python-3.3.5-android/Lib/test/test_subprocess.py --- Python-3.3.5/Lib/test/test_subprocess.py 2014-03-09 09:40:19.000000000 +0100 +++ Python-3.3.5-android/Lib/test/test_subprocess.py 2014-08-04 22:19:36.000000000 +0200 -@@ -17,6 +17,7 @@ +@@ -18,6 +18,7 @@ import shutil import gc import textwrap +import platform try: - import resource -@@ -1356,7 +1357,10 @@ - fd, fname = mkstemp() + import threading +@@ -1517,7 +1518,10 @@ + fd, fname = tempfile.mkstemp() # reopen in text mode with open(fd, "w", errors="surrogateescape") as fobj: - fobj.write("#!/bin/sh\n") @@ -112,8 +113,8 @@ diff -ru Python-3.3.5/Lib/test/test_subprocess.py Python-3.3.5-android/Lib/test/ fobj.write("exec '%s' -c 'import sys; sys.exit(47)'\n" % sys.executable) os.chmod(fname, 0o700) -@@ -1401,7 +1405,10 @@ - fd, fname = mkstemp() +@@ -1562,7 +1566,10 @@ + fd, fname = tempfile.mkstemp() # reopen in text mode with open(fd, "w", errors="surrogateescape") as fobj: - fobj.write("#!/bin/sh\n") @@ -127,7 +128,7 @@ diff -ru Python-3.3.5/Lib/test/test_subprocess.py Python-3.3.5-android/Lib/test/ diff -ru Python-3.4.2/Modules/pwdmodule.c Python-3.4.2-android/Modules/pwdmodule.c --- Python-3.4.2/Modules/pwdmodule.c 2015-02-24 23:06:31.000000000 +0100 +++ Python-3.4.2-android/Modules/pwdmodule.c 2015-02-24 23:09:14.000000000 +0100 -@@ -72,7 +72,11 @@ +@@ -78,7 +78,11 @@ SETS(setIndex++, p->pw_passwd); PyStructSequence_SET_ITEM(v, setIndex++, _PyLong_FromUid(p->pw_uid)); PyStructSequence_SET_ITEM(v, setIndex++, _PyLong_FromGid(p->pw_gid)); @@ -142,7 +143,7 @@ diff -ru Python-3.4.2/Modules/pwdmodule.c Python-3.4.2-android/Modules/pwdmodule diff -ru Python-3.3.5/Modules/socketmodule.c Python-3.3.5-android/Modules/socketmodule.c --- Python-3.3.5/Modules/socketmodule.c 2014-03-09 09:40:28.000000000 +0100 +++ Python-3.3.5-android/Modules/socketmodule.c 2014-08-04 22:19:36.000000000 +0200 -@@ -150,7 +150,7 @@ +@@ -148,7 +148,7 @@ On the other hand, not all Linux versions agree, so there the settings computed by the configure script are needed! */ @@ -151,7 +152,7 @@ diff -ru Python-3.3.5/Modules/socketmodule.c Python-3.3.5-android/Modules/socket # undef HAVE_GETHOSTBYNAME_R_3_ARG # undef HAVE_GETHOSTBYNAME_R_5_ARG # undef HAVE_GETHOSTBYNAME_R_6_ARG -@@ -169,7 +169,7 @@ +@@ -167,7 +167,7 @@ # define HAVE_GETHOSTBYNAME_R_3_ARG # elif defined(__sun) || defined(__sgi) # define HAVE_GETHOSTBYNAME_R_5_ARG @@ -163,35 +164,23 @@ diff -ru Python-3.3.5/Modules/socketmodule.c Python-3.3.5-android/Modules/socket diff -ru Python-3.3.5/Modules/posixmodule.c Python-3.3.5-android/Modules/posixmodule.c --- Python-3.3.5/Modules/posixmodule.c 2014-03-09 08:40:28.000000000 +0000 +++ Python-3.3.5-android/Modules/posixmodule.c 2015-02-24 19:57:05.368843433 +0000 -@@ -403,6 +403,11 @@ - #endif +@@ -372,6 +372,11 @@ #endif + #define DWORD_MAX 4294967295U + +/* Android doesn't expose AT_EACCESS - manually define it. */ +#if !defined(AT_EACCESS) && defined(__ANDROID__) +#define AT_EACCESS 0x200 +#endif + - #ifdef MS_WINDOWS - static int -diff -ru Python-3.3.5/Python/pytime.c Python-3.3.5-android/Python/pytime.c ---- Python-3.3.5/Python/pytime.c 2015-02-23 11:54:25.000000000 -0500 -+++ Python-3.3.5-android/Python/pytime.c 2015-02-23 11:55:19.000000000 -0500 -@@ -3,7 +3,7 @@ - #include - #endif - --#if defined(__APPLE__) && defined(HAVE_GETTIMEOFDAY) && defined(HAVE_FTIME) -+#if (defined(__APPLE__) || defined(__ANDROID__)) && defined(HAVE_GETTIMEOFDAY) && defined(HAVE_FTIME) - /* - * _PyTime_gettimeofday falls back to ftime when getttimeofday fails because the latter - * might fail on some platforms. This fallback is unwanted on MacOSX because + #define INITFUNC PyInit_nt diff -ru Python-3.4.2/configure Python-3.4.2-android/configure --- Python-3.4.2/configure 2015-02-24 23:18:31.000000000 +0100 +++ Python-3.4.2-android/configure 2015-03-01 20:15:02.000000000 +0100 -@@ -5406,6 +5406,34 @@ - MULTIARCH=$($CC --print-multiarch 2>/dev/null) +@@ -5593,4 +5072,32 @@ + esac +# Test if we're running on Android. @@ -222,13 +211,11 @@ diff -ru Python-3.4.2/configure Python-3.4.2-android/configure +fi +rm -f conftest* + - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBRARY" >&5 -@@ -5650,7 +5678,14 @@ - SOVERSION=`echo $SOVERSION|cut -d "." -f 1` - ;; - esac +@@ -5797,7 +5825,14 @@ + LDLIBRARY='libpython$(LDVERSION).so' + BLDLIBRARY='-L. -lpython$(LDVERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} - INSTSONAME="$LDLIBRARY".$SOVERSION + + if test "$with_android" != yes @@ -244,7 +231,7 @@ diff -ru Python-3.4.2/configure Python-3.4.2-android/configure diff -ru Python-3.4.2/configure.ac Python-3.4.2-android/configure.ac --- Python-3.4.2/configure.ac 2015-02-24 23:18:31.000000000 +0100 +++ Python-3.4.2-android/configure.ac 2015-03-01 20:14:54.000000000 +0100 -@@ -796,6 +796,21 @@ +@@ -726,6 +726,21 @@ MULTIARCH=$($CC --print-multiarch 2>/dev/null) AC_SUBST(MULTIARCH) @@ -264,12 +251,12 @@ diff -ru Python-3.4.2/configure.ac Python-3.4.2-android/configure.ac + ] +) - AC_SUBST(LIBRARY) - AC_MSG_CHECKING(LIBRARY) -@@ -970,7 +985,14 @@ - SOVERSION=`echo $SOVERSION|cut -d "." -f 1` - ;; - esac + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c < ++ + /* snprintf() wrappers. If the platform has vsnprintf, we use it, else we + emulate it in a half-hearted way. Even if the platform has it, we wrap + it because platforms differ in what vsnprintf does in case the buffer +@@ -93,6 +95,9 @@ + assert(to_copy < size); + memcpy(str, buffer, to_copy); + str[to_copy] = '\0'; ++ ++ __android_log_print(ANDROID_LOG_DEBUG, "Python3", str); ++ + } + PyMem_FREE(buffer); + #endif + diff --git a/mk/python/3.5.1/python-3.5.1-android_extras.patch b/mk/python/3.5.1/python-3.5.1-android_extras.patch new file mode 100644 index 00000000..b7e681b1 --- /dev/null +++ b/mk/python/3.5.1/python-3.5.1-android_extras.patch @@ -0,0 +1,6 @@ +--- ./config.site 2017-01-16 13:05:00.374771609 -0500 ++++ ./config.new.site 2017-01-16 13:03:16.482767000 -0500 +@@ -1,2 +1,3 @@ + ac_cv_file__dev_ptmx=no + ac_cv_file__dev_ptc=no ++ac_cv_func_wcsftime=no diff --git a/mk/python/3.4.3/python-3.4.3-cross-compile.patch b/mk/python/3.5.1/python-3.5.1-cross-compile.patch similarity index 93% rename from mk/python/3.4.3/python-3.4.3-cross-compile.patch rename to mk/python/3.5.1/python-3.5.1-cross-compile.patch index 7bceb491..a58b10d4 100644 --- a/mk/python/3.4.3/python-3.4.3-cross-compile.patch +++ b/mk/python/3.5.1/python-3.5.1-cross-compile.patch @@ -1,16 +1,14 @@ diff -ru Python-3.3.5/Makefile.pre.in Python-3.3.5-android/Makefile.pre.in --- Python-3.3.5/Makefile.pre.in 2014-03-09 09:40:23.000000000 +0100 +++ Python-3.3.5-android/Makefile.pre.in 2014-08-04 22:13:00.000000000 +0200 -@@ -674,7 +674,7 @@ - $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS) +@@ -780,5 +780,5 @@ + $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN) @$(MKDIR_P) Include - $(MAKE) $(PGEN) - $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) - $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS) - $(MAKE) $(GRAMMAR_H) + $(GRAMMAR_C): $(GRAMMAR_H) touch $(GRAMMAR_C) -@@ -1243,6 +1243,7 @@ +@@ -1415,6 +1415,7 @@ # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods @@ -21,7 +19,7 @@ diff -ru Python-3.3.5/Makefile.pre.in Python-3.3.5-android/Makefile.pre.in diff -ru Python-3.3.5/configure Python-3.3.5-android/configure --- Python-3.3.5/configure 2014-03-09 09:40:34.000000000 +0100 +++ Python-3.3.5-android/configure 2014-08-04 22:13:00.000000000 +0200 -@@ -2943,13 +2943,18 @@ +@@ -2979,13 +2979,18 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5 $as_echo_n "checking for python interpreter for cross build... " >&6; } if test -z "$PYTHON_FOR_BUILD"; then @@ -50,7 +48,7 @@ diff -ru Python-3.3.5/configure Python-3.3.5-android/configure diff -ru Python-3.3.5/configure.ac Python-3.3.5-android/configure.ac --- Python-3.3.5/configure.ac 2014-03-09 09:40:34.000000000 +0100 +++ Python-3.3.5-android/configure.ac 2014-08-04 22:13:00.000000000 +0200 -@@ -56,13 +56,18 @@ +@@ -59,13 +59,18 @@ if test "$cross_compiling" = yes; then AC_MSG_CHECKING([for python interpreter for cross build]) if test -z "$PYTHON_FOR_BUILD"; then diff --git a/mk/python/3.4.3/python-3.4.3-python-misc.patch b/mk/python/3.5.1/python-3.5.1-python-misc.patch similarity index 81% rename from mk/python/3.4.3/python-3.4.3-python-misc.patch rename to mk/python/3.5.1/python-3.5.1-python-misc.patch index 57450625..37e8f5d2 100644 --- a/mk/python/3.4.3/python-3.4.3-python-misc.patch +++ b/mk/python/3.5.1/python-3.5.1-python-misc.patch @@ -18,8 +18,8 @@ diff -ru Python-3.3.5/Lib/test/test_pwd.py Python-3.3.5-android/Lib/test/test_pw self.assertRaises(TypeError, pwd.getpwuid) self.assertRaises(TypeError, pwd.getpwuid, 3.14) diff -ru Python-3.4.2/Modules/python.c Python-3.4.2-android/Modules/python.c ---- Python-3.4.2/Modules/python.c 2015-02-24 22:42:37.000000000 +0100 -+++ Python-3.4.2-android/Modules/python.c 2015-02-24 23:04:27.000000000 +0100 +--- Python-3.4.2/Programs/python.c 2015-02-24 22:42:37.000000000 +0100 ++++ Python-3.4.2-android/Programs/python.c 2015-02-24 23:04:27.000000000 +0100 @@ -44,10 +44,13 @@ fpsetmask(m & ~FP_X_OFL); #endif @@ -55,7 +55,7 @@ diff -ru Python-3.4.2/Modules/python.c Python-3.4.2-android/Modules/python.c diff -ru Python-3.3.5/setup.py Python-3.3.5-android/setup.py --- Python-3.3.5/setup.py 2014-03-09 09:40:35.000000000 +0100 +++ Python-3.3.5-android/setup.py 2014-08-04 22:14:36.000000000 +0200 -@@ -562,7 +562,7 @@ +@@ -592,7 +592,7 @@ libraries=math_libs) ) # time libraries: librt may be needed for clock_gettime() @@ -64,7 +64,18 @@ diff -ru Python-3.3.5/setup.py Python-3.3.5-android/setup.py lib = sysconfig.get_config_var('TIMEMODULE_LIB') if lib: time_libs.append(lib) -@@ -639,7 +639,8 @@ +@@ -651,7 +651,9 @@ + missing.append('spwd') + + # select(2); not on ancient System V +- exts.append( Extension('select', ['selectmodule.c']) ) ++ # pyepoll_poll needs math_libs for ceil() ++ exts.append( Extension('select', ['selectmodule.c'], ++ libraries=math_libs) ) + + # Fred Drake's interface to the Python parser + exts.append( Extension('parser', ['parsermodule.c']) ) +@@ -675,7 +677,8 @@ # Operations on audio samples # According to #993173, this one should actually work fine on # 64-bit platforms. @@ -74,7 +85,7 @@ diff -ru Python-3.3.5/setup.py Python-3.3.5-android/setup.py # readline do_readline = self.compiler.find_library_file(lib_dirs, 'readline') -@@ -1904,7 +1905,8 @@ +@@ -1948,7 +1951,8 @@ sources=sources, depends=depends) ext_test = Extension('_ctypes_test', diff --git a/mk/python/3.5.1/python-3.5.1-setup.patch b/mk/python/3.5.1/python-3.5.1-setup.patch new file mode 100644 index 00000000..f153f6ba --- /dev/null +++ b/mk/python/3.5.1/python-3.5.1-setup.patch @@ -0,0 +1,28 @@ +diff -Nru Python-3.4.3/setup.py Python-3.4.3-android/setup.py > Python-3.4.3-setup.patch +--- Python-3.4.3/setup.py 2016-01-06 09:22:17.000000000 -0500 ++++ Python-3.4.3-android/setup.py 2016-01-06 09:30:58.000000000 -0500 +@@ -651,7 +651,9 @@ + missing.append('spwd') + + # select(2); not on ancient System V +- exts.append( Extension('select', ['selectmodule.c']) ) ++ # pyepoll_poll needs math_libs for ceil() ++ exts.append( Extension('select', ['selectmodule.c'], ++ libraries=math_libs) ) + + # Fred Drake's interface to the Python parser + exts.append( Extension('parser', ['parsermodule.c']) ) +@@ -675,8 +677,11 @@ + # Operations on audio samples + # According to #993173, this one should actually work fine on + # 64-bit platforms. ++ ++ ++ # audioop needs math_libs for floor() in multiple functions. + exts.append( Extension('audioop', ['audioop.c'], +- libraries=['m']) ) ++ libraries=math_libs) ) + + # readline + do_readline = self.compiler.find_library_file(lib_dirs, 'readline') + diff --git a/mk/python/3.5.1/sources-local.txt b/mk/python/3.5.1/sources-local.txt new file mode 100644 index 00000000..d04cbbec --- /dev/null +++ b/mk/python/3.5.1/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/Python/3.5.1/Python-3.5.1.tar.xz diff --git a/mk/python/3.5.1/sources.txt b/mk/python/3.5.1/sources.txt new file mode 100644 index 00000000..ba94f12b --- /dev/null +++ b/mk/python/3.5.1/sources.txt @@ -0,0 +1 @@ +https://python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz diff --git a/mk/readline/6.3/sources-local.txt b/mk/readline/6.3/sources-local.txt new file mode 100644 index 00000000..f6ad4778 --- /dev/null +++ b/mk/readline/6.3/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/readline/6.3/readline-6.3.tar.gz diff --git a/mk/sqlite/3.8.10.2/sources-local.txt b/mk/sqlite/3.8.10.2/sources-local.txt new file mode 100644 index 00000000..a040062f --- /dev/null +++ b/mk/sqlite/3.8.10.2/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/sqlite-autoconf/3081001/sqlite-autoconf-3081001.tar.gz diff --git a/mk/xz/5.2.1/sources-local.txt b/mk/xz/5.2.1/sources-local.txt new file mode 100644 index 00000000..a5d5b134 --- /dev/null +++ b/mk/xz/5.2.1/sources-local.txt @@ -0,0 +1 @@ +http://artifactory.ops.cld/artifactory/ThirdParty/COTS/xz/5.2.1/xz-5.2.1.tar.xz