From 288a88c060ae625e700e1097678701e25ee31bc7 Mon Sep 17 00:00:00 2001 From: lovetox Date: Sun, 7 Aug 2016 16:13:58 +0200 Subject: [PATCH] Add changes so Appveyor can do nightly builds for Windows --- appveyor.yml | 41 ++++++++++ build.bat | 8 +- gajim.nsi | 2 +- setup_win32.py | 206 ++++++++++++++++++++++++------------------------- 4 files changed, 149 insertions(+), 108 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index e69de29bb..0a97c0aa9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -0,0 +1,41 @@ +environment: + + matrix: + + - PYTHON: "C:\\Python34" + + +install: + + - hg clone http://hg.gajim.org/gajim-plugins c:\projects\gajim-plugins + - hg clone http://hg.gajim.org/python-nbxmpp c:\projects\python-nbxmpp + - cd c:\\projects\\python-nbxmpp\\ + - python setup.py install + - ps: c:\\projects\\gajim\\download.ps1 + - set PATH=C:\\MinGW\\bin;C:\\Program Files (x86)\\gettext-iconv\\bin;%PATH% + - "%PYTHON%\\python.exe -m pip install --upgrade pip" + - "%PYTHON%\\python.exe -m pip install protobuf" + - ps: Add-Content C:\Python34\Lib\site-packages\google\__init__.py " " + - "%PYTHON%\\python.exe -m pip install pycrypto" + - "%PYTHON%\\python.exe -m pip install cx_freeze" + - "%PYTHON%\\python.exe -m pip install pypiwin32" + - "%PYTHON%\\python.exe -m pip install pyopenssl" + - "%PYTHON%\\python.exe -m pip install --global-option=build_ext --global-option --compiler=mingw32 python-axolotl" + - cd c:\\projects\\gajim\\ + - build.bat + + +build: off + +# artifacts: +# - path: gajim_built\Gajim.exe +# - name: MyApp + +on_finish: + - ps: Push-AppveyorArtifact gajim_built\Gajim.exe -FileName "Gajim-16.10.1-$($env:APPVEYOR_REPO_COMMIT).exe" + + +#on_success: +# You can use this step to upload your artifacts to a public website. +# See Appveyor's documentation for more details. Or you can simply +# access your wheels from the Appveyor "artifacts" tab for your build. \ No newline at end of file diff --git a/build.bat b/build.bat index 5c42aa40a..83027adfe 100644 --- a/build.bat +++ b/build.bat @@ -4,8 +4,8 @@ mkdir gajim_built hg archive gajim_built xcopy ..\gajim-plugins\plugin_installer gajim_built\plugins\plugin_installer /e /i -copy msgfmt.exe gajim_built -copy msvcr100.dll gajim_built +rem copy C:\Python34\Lib\site-packages\gnome\msgfmt.exe gajim_built +rem copy C:\Windows\System32\msvcr100.dll gajim_built cd gajim_built @@ -17,8 +17,8 @@ move build\exe.win32-3.4 . rmdir build rename exe.win32-3.4 build -REM for snarl plugin -xcopy ..\win32com build\win32com /e /i +rem REM for snarl plugin +rem xcopy ..\win32com build\win32com /e /i "C:\Program Files (x86)\NSIS\makensis" gajim.nsi diff --git a/gajim.nsi b/gajim.nsi index f51375352..6b1505d62 100644 --- a/gajim.nsi +++ b/gajim.nsi @@ -149,7 +149,7 @@ Section "Gajim" SecGajim File "THANKS.artists" File /r "build" SetOutPath "$INSTDIR\build" - File "msvcr100.dll" +; File "msvcr100.dll" WriteRegStr HKCU "Software\Gajim" "" $INSTDIR WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayName" "Gajim" diff --git a/setup_win32.py b/setup_win32.py index 53a4c2d45..6372b5cfa 100644 --- a/setup_win32.py +++ b/setup_win32.py @@ -1,135 +1,136 @@ -## setup_win32.py (run me as python setup_win32.py py2exe -O2) -## -## Copyright (C) 2003-2014 Yann Leboulanger -## Copyright (C) 2005-2006 Nikos Kouremenos -## Copyright (C) 2008 Jonathan Schleifer -## -## This file is part of Gajim. -## -## Gajim is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published -## by the Free Software Foundation; version 3 only. -## -## Gajim is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Gajim. If not, see . -## +# setup_win32.py (run me as python setup_win32.py py2exe -O2) +# +# Copyright (C) 2003-2014 Yann Leboulanger +# Copyright (C) 2005-2006 Nikos Kouremenos +# Copyright (C) 2008 Jonathan Schleifer +# +# This file is part of Gajim. +# +# Gajim is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation; version 3 only. +# +# Gajim is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Gajim. If not, see . +# + -from cx_Freeze import setup, Executable -import glob import sys import os import site +from cx_Freeze import setup, Executable -site_dir = site.getsitepackages()[1] -include_dll_path = os.path.join(site_dir, "gnome") +SITEDIR = site.getsitepackages()[1] +INCLUDE_DLL_PATH = os.path.join(SITEDIR, "gnome") sys.path.append('src') # Collect the list of missing dll when cx_freeze builds the app -missing_dll = ['libgtk-3-0.dll', + +MISSING_DLL = ['libgtk-3-0.dll', 'libgdk-3-0.dll', 'libatk-1.0-0.dll', - 'libcairo-gobject-2.dll', 'libgdk_pixbuf-2.0-0.dll', 'libjpeg-8.dll', 'libpango-1.0-0.dll', 'libpangocairo-1.0-0.dll', 'libpangoft2-1.0-0.dll', 'libpangowin32-1.0-0.dll', - 'libgnutls-26.dll', + 'libgnutls-28.dll', 'libp11-kit-0.dll', - 'libaerial-0.dll', -'libgstrtp-1.0-0.dll', -'libcurl-4.dll', -'libgstrtsp-1.0-0.dll', -'libdb-4.8.dll', -'libgstrtspserver-1.0-0.dll', -'libfarstream-0.2-2.dll', -'libgstsdp-1.0-0.dll', -'libfftw3.dll', -'libgsttag-1.0-0.dll', -'libfluidsynth-1.dll', -'libgsturidownloader-1.0-0.dll', -'libgraphene-1.0-0.dll', -'libgstvalidate-1.0-0.dll', -'libgssdp-1.0-3.dll', -'libgstvalidate-default-overrides-1.0-0.dll', -'libgstallocators-1.0-0.dll', -'libgstvideo-1.0-0.dll', -'libgstapp-1.0-0.dll', -'libgupnp-1.0-4.dll', -'libgstaudio-1.0-0.dll', -'libgupnp-igd-1.0-4.dll', -'libgstbadbase-1.0-0.dll', -'libidn-11.dll', -'libgstbadvideo-1.0-0.dll', -'libjack.dll', -'libgstbase-1.0-0.dll', -'libjasper-1.dll', -'libgstbasecamerabinsrc-1.0-0.dll', -'libnice-10.dll', -'libgstcheck-1.0-0.dll', -'libnotify-4.dll', -'libgstcodecparsers-1.0-0.dll', -'libopenexr-2.dll', -'libgstcontroller-1.0-0.dll', -'libopenjp2.dll', -'libgstfft-1.0-0.dll', -'liborc-0.4-0.dll', -'libgstgl-1.0-0.dll', -'liborc-test-0.4-0.dll', -'libgstinsertbin-1.0-0.dll', -'libproxy.dll', -'libgstmpegts-1.0-0.dll', -'librsvg-2-2.dll', -'libgstnet-1.0-0.dll', -'libsoup-2.4-1.dll', -'libgstpbutils-1.0-0.dll', -'libsqlite3-0.dll', -'libgstphotography-1.0-0.dll', -'libvisual-0.4-0.dll', -'libgstreamer-1.0-0.dll', -'libwebp-5.dll', -'libgstriff-1.0-0.dll', -] + 'libgstrtp-1.0-0.dll', + 'libgstrtsp-1.0-0.dll', + 'libgstrtspserver-1.0-0.dll', + 'libfarstream-0.2-5.dll', + 'libgstsdp-1.0-0.dll', + 'libgsttag-1.0-0.dll', + 'libgssdp-1.0-3.dll', + 'libgstvideo-1.0-0.dll', + 'libgstapp-1.0-0.dll', + 'libgupnp-1.0-4.dll', + 'libgstaudio-1.0-0.dll', + 'libgupnp-igd-1.0-4.dll', + 'libgstbase-1.0-0.dll', + 'libnice-10.dll', + 'librsvg-2-2.dll', + 'libvisual-0.4-0.dll', + 'libwebp-5.dll', + 'libgstriff-1.0-0.dll', + 'libepoxy-0.dll', + 'libharfbuzz-0.dll', + 'libtiff-5.dll', + 'libjasper-1.dll', + 'libgstpbutils-1.0-0.dll', + 'liborc-0.4-0.dll', + 'libgstnet-1.0-0.dll', + 'libsoup-2.4-1.dll', + 'liborc-test-0.4-0.dll', + 'libavcodec-57.dll', + 'libavutil-55.dll', + 'libswresample-2.dll', + 'libavformat-57.dll', + 'libavfilter-6.dll', + 'libgssapi-3.dll', + 'libopenssl.dll', + 'libsqlite3-0.dll', + 'libproxy.dll', + 'libstdc++.dll', + 'libgstfft-1.0-0.dll'] + # We need to add all the libraries too (for themes, etc..) -gtk_libs = { - 'etc': ['dbus-1', 'fonts', 'gtk-3.0', 'pango'], - 'lib': ['aspell-0.60', 'enchant', 'farstream-0.2', 'gdbus-2.0', 'gdk-pixbuf-2.0', 'gio', 'girepository-1.0', 'gobject-introspection', 'gstreamer-1.0', 'gtk-3.0', 'libcanberra-0.30'], - 'share': ['dbus-1', 'enchant', 'farstream', 'fonts', 'gir-1.0', 'glib-2.0', 'gobject-introspection-1.0', 'gst-plugins-bad', 'gst-plugins-base', 'gstreamer-1.0', 'gupnp-av', 'gupnp-dlna-2.0', 'icons', 'ssl', 'themes', 'xml'], +GTK_LIBS = { + 'etc': ['dbus-1', 'fonts', 'gtk-3.0', 'pango'], + 'lib': ['farstream-0.2', 'gdbus-2.0', + 'gdk-pixbuf-2.0', 'gio', 'girepository-1.0', + 'gstreamer-1.0', 'gtk-3.0'], + 'share': ['dbus-1', 'farstream', 'fonts', + 'glib-2.0', + 'gst-plugins-base', 'gstreamer-1.0', 'gupnp-av', + 'gupnp-dlna-2.0', 'icons', 'ssl', 'themes', 'xml'] } + +# share 'gobject-introspection-1.0' +# , 'enchant' 'gir-1.0', + + +#lib 'gobject-introspection' +# 'aspell-0.60', 'enchant', 'gst-plugins-bad', + + # Create the list of includes as cx_freeze likes -include_files = [] -for dll in missing_dll: - include_files.append((os.path.join(include_dll_path, dll), dll)) - +INCLUDE_FILES = [] +for dll in MISSING_DLL: + INCLUDE_FILES.append((os.path.join(INCLUDE_DLL_PATH, dll), dll)) + # Let's add gtk libraries folders and files -for folder in gtk_libs: - for lib in gtk_libs[folder]: +for folder in GTK_LIBS: + for lib in GTK_LIBS[folder]: folder_lib = os.path.join(folder, lib) - include_files.append((os.path.join(include_dll_path, folder_lib), folder_lib)) -# Let's add gtk locales that we support in Gajim + INCLUDE_FILES.append((os.path.join(INCLUDE_DLL_PATH, folder_lib), + folder_lib)) + +#Let's add gtk locales that we support in Gajim for language in next(os.walk('po'))[1]: target_dir = os.path.join('share', 'locale', language) - language_dir = os.path.join(include_dll_path, target_dir) + language_dir = os.path.join(INCLUDE_DLL_PATH, target_dir) if os.path.isdir(language_dir): - include_files.append((language_dir, target_dir)) + INCLUDE_FILES.append((language_dir, target_dir)) -options = { +OPTIONS = { 'build_exe': { 'compressed': False, 'includes': ['gi', 'Crypto.PublicKey.DSA', 'Crypto.Hash.HMAC', - 'numbers', 'win32com.client', 'win32com.server' - ], - 'packages': ['gi', 'cffi', 'cryptography'], + 'numbers', 'win32com.client', 'win32com.server', + 'cryptography', 'pkg_resources'], + 'packages': ['gi', 'cffi', 'cryptography', 'google', 'axolotl'], 'base': 'Win32GUI', - 'include_files': include_files, + 'include_files': INCLUDE_FILES, } } @@ -142,7 +143,6 @@ setup( url='http://gajim.org/', download_url='http://gajim.org/downloads.php', license='GPL', - options=options, - executables=[Executable('src/gajim.py', icon='data/pixmaps/gajim.ico'), - Executable('src/history_manager.py', icon='data/pixmaps/gajim.ico')], + options=OPTIONS, + executables=[Executable('src/gajim.py', icon='data/pixmaps/gajim.ico')], )