diff options
Diffstat (limited to 'tools')
6 files changed, 133 insertions, 3 deletions
diff --git a/tools/android/packaging/Makefile.in b/tools/android/packaging/Makefile.in index 7a2850b96b..25e16f33ae 100644 --- a/tools/android/packaging/Makefile.in +++ b/tools/android/packaging/Makefile.in @@ -88,7 +88,7 @@ shared: mkdir -p assets cp -rfp $(PREFIX)/share/@APP_NAME_LC@/* ./assets find `pwd`/assets/ -depth -name ".git" -exec rm -rf {} \; - find `pwd`/assets/ -name "*.so" -not -name "*imaging*.so" -exec rm {} \; + find `pwd`/assets/ -name "*.so" -exec rm {} \; find `pwd`/assets/addons/skin.*/media/* -depth -not -iname "Textures.xbt" -exec rm -rf {} \; cd `pwd`/assets/addons; rm -rf $(EXCLUDED_ADDONS) mkdir -p assets/system/certs @@ -133,6 +133,7 @@ libs: $(PREFIX)/lib/@APP_NAME_LC@/lib@APP_NAME_LC@.so find $(PREFIX)/share/@APP_NAME_LC@/addons -name "*.so" -exec cp -fp {} xbmc/obj/local/$(CPU)/ \; find $(PREFIX)/lib/@APP_NAME_LC@/addons -name "*.so" -exec cp -fp {} xbmc/obj/local/$(CPU)/ \; || true find $(PREFIX)/lib/@APP_NAME_LC@/system -name "*.so" -exec cp -fp {} xbmc/obj/local/$(CPU)/ \; + DIR=${CURDIR}; cd $(PREFIX)/lib/python2.7/site-packages; for i in `find Crypto -name \*.so` ; do FN=`echo $$i | cut -c1- | tr "/" "_"` ; mv $$i $$DIR/xbmc/obj/local/$(CPU)/$$FN ; done cd xbmc/obj/local/$(CPU)/; find . -name "*.so" -not -name "lib*.so" | sed "s/\.\///" | xargs -I@ mv @ lib@ cp -fp xbmc/obj/local/$(CPU)/*.so xbmc/lib/$(CPU)/ $(STRIP) --strip-unneeded xbmc/lib/$(CPU)/*.so diff --git a/tools/depends/target/Makefile b/tools/depends/target/Makefile index 28807633fa..9d0c722fab 100644 --- a/tools/depends/target/Makefile +++ b/tools/depends/target/Makefile @@ -13,7 +13,7 @@ DEPENDS = \ python27 libshairplay \ libplist libcec libbluray tinyxml dummy-libxbmc \ libssh taglib libusb libnfs \ - pythonmodule-pil pythonmodule-setuptools \ + pythonmodule-pil pythonmodule-pycryptodome pythonmodule-setuptools \ libxslt ffmpeg platform crossguid \ libdvdread libdvdnav libdvdcss p8-platform @@ -95,6 +95,7 @@ libpng: $(ZLIB) openssl: $(ZLIB) gnutls: nettle $(ZLIB) nettle: gmp +pythonmodule-pycryptodome: python27 pythonmodule-setuptools pythonmodule-pil: $(ZLIB) libjpeg-turbo libpng freetype2 python27 pythonmodule-setuptools pythonmodule-setuptools: python27 libsdl2: $(LINUX_SYSTEM_LIBS) diff --git a/tools/depends/target/python27/modules.setup b/tools/depends/target/python27/modules.setup index cbb7e277fb..3bfde6d67a 100644 --- a/tools/depends/target/python27/modules.setup +++ b/tools/depends/target/python27/modules.setup @@ -85,7 +85,7 @@ MACHDESTLIB=$(BINLIBDEST) DESTPATH= # Site specific path components -- should begin with : if non-empty -SITEPATH= +SITEPATH=:site-packages # Standard path components for test modules TESTPATH= diff --git a/tools/depends/target/pythonmodule-pycryptodome/01-nosetuptool.patch b/tools/depends/target/pythonmodule-pycryptodome/01-nosetuptool.patch new file mode 100644 index 0000000000..078b065933 --- /dev/null +++ b/tools/depends/target/pythonmodule-pycryptodome/01-nosetuptool.patch @@ -0,0 +1,44 @@ +--- setup_o.py 2017-01-18 17:54:03.361747272 +0100 ++++ setup.py 2017-01-18 17:54:33.337935416 +0100 +@@ -20,10 +20,10 @@ + # SOFTWARE. + # =================================================================== + +-try: +- from setuptools import Extension, Command, setup +-except ImportError: +- from distutils.core import Extension, Command, setup ++#try: ++# from setuptools import Extension, Command, setup ++#except ImportError: ++from distutils.core import Extension, Command, setup + from distutils.command.build_ext import build_ext + from distutils.command.build import build + from distutils.command.install_lib import install_lib +@@ -464,16 +464,16 @@ + "Crypto.Signature", + "Crypto.Util", + "Crypto.Math", +- "Crypto.SelfTest", +- "Crypto.SelfTest.Cipher", +- "Crypto.SelfTest.Hash", +- "Crypto.SelfTest.IO", +- "Crypto.SelfTest.Protocol", +- "Crypto.SelfTest.PublicKey", +- "Crypto.SelfTest.Random", +- "Crypto.SelfTest.Signature", +- "Crypto.SelfTest.Util", +- "Crypto.SelfTest.Math", ++# "Crypto.SelfTest", ++# "Crypto.SelfTest.Cipher", ++# "Crypto.SelfTest.Hash", ++# "Crypto.SelfTest.IO", ++# "Crypto.SelfTest.Protocol", ++# "Crypto.SelfTest.PublicKey", ++# "Crypto.SelfTest.Random", ++# "Crypto.SelfTest.Signature", ++# "Crypto.SelfTest.Util", ++# "Crypto.SelfTest.Math", + ], + package_dir = { "Crypto": "lib/Crypto" }, + package_data = { diff --git a/tools/depends/target/pythonmodule-pycryptodome/02-android-dlopen.patch b/tools/depends/target/pythonmodule-pycryptodome/02-android-dlopen.patch new file mode 100644 index 0000000000..2253426e7c --- /dev/null +++ b/tools/depends/target/pythonmodule-pycryptodome/02-android-dlopen.patch @@ -0,0 +1,31 @@ +--- lib/Crypto/Util/_raw_api_o.py 2017-01-19 07:49:10.126996702 +0100 ++++ lib/Crypto/Util/_raw_api.py 2017-01-19 11:16:23.126321052 +0100 +@@ -101,11 +101,14 @@ + def load_lib(name, cdecl): + import platform + bits, linkage = platform.architecture() +- if "." not in name and not linkage.startswith("Win"): +- full_name = find_library(name) +- if full_name is None: +- raise OSError("Cannot load library '%s'" % name) +- name = full_name ++ try: ++ if "." not in name and not linkage.startswith("Win"): ++ full_name = find_library(name) ++ if full_name is None: ++ raise OSError("Cannot load library '%s'" % name) ++ name = full_name ++ except IOError: ++ raise OSError("Cannot load library '%s'" % name) + return CDLL(name) + + def get_c_string(c_string): +@@ -165,7 +168,7 @@ + for ext, mod, typ in imp.get_suffixes(): + if typ == imp.C_EXTENSION: + try: +- return load_lib(pycryptodome_filename(dir_comps, basename + ext), cdecl) ++ return load_lib("lib" + name.replace(".", "_") + ".so", cdecl) + except OSError: + pass + raise OSError("Cannot load native module '%s'" % name) diff --git a/tools/depends/target/pythonmodule-pycryptodome/Makefile b/tools/depends/target/pythonmodule-pycryptodome/Makefile new file mode 100644 index 0000000000..017b35a252 --- /dev/null +++ b/tools/depends/target/pythonmodule-pycryptodome/Makefile @@ -0,0 +1,53 @@ +include ../../Makefile.include +DEPS= ../../Makefile.include Makefile #pillow-crosscompile.patch + +VERSION.TXT := $(CMAKE_SOURCE_DIR)/version.txt +APP_NAME=$(shell awk '/APP_NAME/ {print tolower($$2)}' $(VERSION.TXT)) + +# lib name, version +LIBNAME=pycryptodome +VERSION=3.4.3 +SOURCE=$(LIBNAME)-$(VERSION) +ARCHIVE=$(SOURCE).tar.gz + +CROSSFLAGS=PYTHONXCPREFIX="$(PREFIX)" CC="$(CC) $(CFLAGS)" LDSHARED="$(CC) -shared" LDFLAGS="$(LDFLAGS)" PYTHONPATH="$(PREFIX)/lib/python2.7/site-packages/" +ifeq ($(OS),android) +CROSSFLAGS=PYTHONXCPREFIX="$(PREFIX)" CC="$(CC) $(CFLAGS)" LDSHARED="$(CC) -shared" LDFLAGS="$(LDFLAGS) -L$(PREFIX)/lib/dummy-lib$(APP_NAME)/ -l$(APP_NAME) -lm" PYTHONPATH="$(PREFIX)/lib/python2.7/site-packages/" +endif +ifeq ($(OS),osx) +CROSSFLAGS=PYTHONXCPREFIX="$(PREFIX)" CC="$(CC)" LDSHARED="$(CC) -shared" LDFLAGS="$(LDFLAGS) -lpython" PYTHONPATH="$(PREFIX)/lib/python2.7/site-packages/" +endif +ifeq ($(OS),ios) +PYTHON_O=$(abs_top_srcdir)/target/python27/$(PLATFORM)/Modules/python.o +CROSSFLAGS=PYTHONXCPREFIX="$(PREFIX)" CC="$(CC) $(CFLAGS)" CCSHARED="$(CC) $(CFLAGS) $(PYTHON_O)" LDFLAGS="$(LDFLAGS)" PYTHONPATH="$(PREFIX)/lib/python2.7/site-packages/" +endif + +LIBDYLIB=$(PLATFORM)/dist/$(LIBNAME)-$(VERSION)-py2.7.egg + +all: .installed-$(PLATFORM) + +$(TARBALLS_LOCATION)/$(ARCHIVE): + cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE) + +$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) + rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM) + cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) + cd $(PLATFORM); patch -p0 < ../01-nosetuptool.patch +ifeq ($(OS),android) + cd $(PLATFORM); patch -p0 < ../02-android-dlopen.patch +endif + +$(LIBDYLIB): $(PLATFORM) + mkdir -p $(PLATFORM)/output + cd $(PLATFORM); $(CROSSFLAGS) $(NATIVEPREFIX)/bin/python setup.py build_ext --plat-name $(OS)-$(TARGET_ARCH) + +.installed-$(PLATFORM): $(LIBDYLIB) + cd $(PLATFORM); $(CROSSFLAGS) $(NATIVEPREFIX)/bin/python setup.py install --prefix=$(PREFIX) + touch $@ + +clean: + $(MAKE) -C $(PLATFORM) clean + rm -f .installed-$(PLATFORM) + +distclean:: + rm -rf $(PLATFORM) .installed-$(PLATFORM) |