Add changes so Appveyor can do nightly builds for Windows

This commit is contained in:
lovetox 2016-08-07 16:13:58 +02:00
parent e645f4e838
commit 288a88c060
4 changed files with 149 additions and 108 deletions

View file

@ -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.

View file

@ -4,8 +4,8 @@ mkdir gajim_built
hg archive gajim_built hg archive gajim_built
xcopy ..\gajim-plugins\plugin_installer gajim_built\plugins\plugin_installer /e /i xcopy ..\gajim-plugins\plugin_installer gajim_built\plugins\plugin_installer /e /i
copy msgfmt.exe gajim_built rem copy C:\Python34\Lib\site-packages\gnome\msgfmt.exe gajim_built
copy msvcr100.dll gajim_built rem copy C:\Windows\System32\msvcr100.dll gajim_built
cd gajim_built cd gajim_built
@ -17,8 +17,8 @@ move build\exe.win32-3.4 .
rmdir build rmdir build
rename exe.win32-3.4 build rename exe.win32-3.4 build
REM for snarl plugin rem REM for snarl plugin
xcopy ..\win32com build\win32com /e /i rem xcopy ..\win32com build\win32com /e /i
"C:\Program Files (x86)\NSIS\makensis" gajim.nsi "C:\Program Files (x86)\NSIS\makensis" gajim.nsi

View file

@ -149,7 +149,7 @@ Section "Gajim" SecGajim
File "THANKS.artists" File "THANKS.artists"
File /r "build" File /r "build"
SetOutPath "$INSTDIR\build" SetOutPath "$INSTDIR\build"
File "msvcr100.dll" ; File "msvcr100.dll"
WriteRegStr HKCU "Software\Gajim" "" $INSTDIR WriteRegStr HKCU "Software\Gajim" "" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayName" "Gajim" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayName" "Gajim"

View file

@ -1,135 +1,136 @@
## setup_win32.py (run me as python setup_win32.py py2exe -O2) # setup_win32.py (run me as python setup_win32.py py2exe -O2)
## #
## Copyright (C) 2003-2014 Yann Leboulanger <asterix AT lagaule.org> # Copyright (C) 2003-2014 Yann Leboulanger <asterix AT lagaule.org>
## Copyright (C) 2005-2006 Nikos Kouremenos <kourem AT gmail.com> # Copyright (C) 2005-2006 Nikos Kouremenos <kourem AT gmail.com>
## Copyright (C) 2008 Jonathan Schleifer <js-gajim AT webkeks.org> # Copyright (C) 2008 Jonathan Schleifer <js-gajim AT webkeks.org>
## #
## This file is part of Gajim. # This file is part of Gajim.
## #
## Gajim is free software; you can redistribute it and/or modify # Gajim is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published # it under the terms of the GNU General Public License as published
## by the Free Software Foundation; version 3 only. # by the Free Software Foundation; version 3 only.
## #
## Gajim is distributed in the hope that it will be useful, # Gajim is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details. # GNU General Public License for more details.
## #
## You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
## along with Gajim. If not, see <http://www.gnu.org/licenses/>. # along with Gajim. If not, see <http://www.gnu.org/licenses/>.
## #
from cx_Freeze import setup, Executable
import glob
import sys import sys
import os import os
import site import site
from cx_Freeze import setup, Executable
site_dir = site.getsitepackages()[1] SITEDIR = site.getsitepackages()[1]
include_dll_path = os.path.join(site_dir, "gnome") INCLUDE_DLL_PATH = os.path.join(SITEDIR, "gnome")
sys.path.append('src') sys.path.append('src')
# Collect the list of missing dll when cx_freeze builds the app # 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', 'libgdk-3-0.dll',
'libatk-1.0-0.dll', 'libatk-1.0-0.dll',
'libcairo-gobject-2.dll',
'libgdk_pixbuf-2.0-0.dll', 'libgdk_pixbuf-2.0-0.dll',
'libjpeg-8.dll', 'libjpeg-8.dll',
'libpango-1.0-0.dll', 'libpango-1.0-0.dll',
'libpangocairo-1.0-0.dll', 'libpangocairo-1.0-0.dll',
'libpangoft2-1.0-0.dll', 'libpangoft2-1.0-0.dll',
'libpangowin32-1.0-0.dll', 'libpangowin32-1.0-0.dll',
'libgnutls-26.dll', 'libgnutls-28.dll',
'libp11-kit-0.dll', 'libp11-kit-0.dll',
'libaerial-0.dll', 'libgstrtp-1.0-0.dll',
'libgstrtp-1.0-0.dll', 'libgstrtsp-1.0-0.dll',
'libcurl-4.dll', 'libgstrtspserver-1.0-0.dll',
'libgstrtsp-1.0-0.dll', 'libfarstream-0.2-5.dll',
'libdb-4.8.dll', 'libgstsdp-1.0-0.dll',
'libgstrtspserver-1.0-0.dll', 'libgsttag-1.0-0.dll',
'libfarstream-0.2-2.dll', 'libgssdp-1.0-3.dll',
'libgstsdp-1.0-0.dll', 'libgstvideo-1.0-0.dll',
'libfftw3.dll', 'libgstapp-1.0-0.dll',
'libgsttag-1.0-0.dll', 'libgupnp-1.0-4.dll',
'libfluidsynth-1.dll', 'libgstaudio-1.0-0.dll',
'libgsturidownloader-1.0-0.dll', 'libgupnp-igd-1.0-4.dll',
'libgraphene-1.0-0.dll', 'libgstbase-1.0-0.dll',
'libgstvalidate-1.0-0.dll', 'libnice-10.dll',
'libgssdp-1.0-3.dll', 'librsvg-2-2.dll',
'libgstvalidate-default-overrides-1.0-0.dll', 'libvisual-0.4-0.dll',
'libgstallocators-1.0-0.dll', 'libwebp-5.dll',
'libgstvideo-1.0-0.dll', 'libgstriff-1.0-0.dll',
'libgstapp-1.0-0.dll', 'libepoxy-0.dll',
'libgupnp-1.0-4.dll', 'libharfbuzz-0.dll',
'libgstaudio-1.0-0.dll', 'libtiff-5.dll',
'libgupnp-igd-1.0-4.dll', 'libjasper-1.dll',
'libgstbadbase-1.0-0.dll', 'libgstpbutils-1.0-0.dll',
'libidn-11.dll', 'liborc-0.4-0.dll',
'libgstbadvideo-1.0-0.dll', 'libgstnet-1.0-0.dll',
'libjack.dll', 'libsoup-2.4-1.dll',
'libgstbase-1.0-0.dll', 'liborc-test-0.4-0.dll',
'libjasper-1.dll', 'libavcodec-57.dll',
'libgstbasecamerabinsrc-1.0-0.dll', 'libavutil-55.dll',
'libnice-10.dll', 'libswresample-2.dll',
'libgstcheck-1.0-0.dll', 'libavformat-57.dll',
'libnotify-4.dll', 'libavfilter-6.dll',
'libgstcodecparsers-1.0-0.dll', 'libgssapi-3.dll',
'libopenexr-2.dll', 'libopenssl.dll',
'libgstcontroller-1.0-0.dll', 'libsqlite3-0.dll',
'libopenjp2.dll', 'libproxy.dll',
'libgstfft-1.0-0.dll', 'libstdc++.dll',
'liborc-0.4-0.dll', 'libgstfft-1.0-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',
]
# We need to add all the libraries too (for themes, etc..) # We need to add all the libraries too (for themes, etc..)
gtk_libs = { GTK_LIBS = {
'etc': ['dbus-1', 'fonts', 'gtk-3.0', 'pango'], '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'], 'lib': ['farstream-0.2', 'gdbus-2.0',
'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'], '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 # Create the list of includes as cx_freeze likes
include_files = [] INCLUDE_FILES = []
for dll in missing_dll: for dll in MISSING_DLL:
include_files.append((os.path.join(include_dll_path, dll), dll)) INCLUDE_FILES.append((os.path.join(INCLUDE_DLL_PATH, dll), dll))
# Let's add gtk libraries folders and files # Let's add gtk libraries folders and files
for folder in gtk_libs: for folder in GTK_LIBS:
for lib in gtk_libs[folder]: for lib in GTK_LIBS[folder]:
folder_lib = os.path.join(folder, lib) folder_lib = os.path.join(folder, lib)
include_files.append((os.path.join(include_dll_path, folder_lib), folder_lib)) INCLUDE_FILES.append((os.path.join(INCLUDE_DLL_PATH, folder_lib),
# Let's add gtk locales that we support in Gajim folder_lib))
#Let's add gtk locales that we support in Gajim
for language in next(os.walk('po'))[1]: for language in next(os.walk('po'))[1]:
target_dir = os.path.join('share', 'locale', language) 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): if os.path.isdir(language_dir):
include_files.append((language_dir, target_dir)) INCLUDE_FILES.append((language_dir, target_dir))
options = { OPTIONS = {
'build_exe': { 'build_exe': {
'compressed': False, 'compressed': False,
'includes': ['gi', 'Crypto.PublicKey.DSA', 'Crypto.Hash.HMAC', 'includes': ['gi', 'Crypto.PublicKey.DSA', 'Crypto.Hash.HMAC',
'numbers', 'win32com.client', 'win32com.server' 'numbers', 'win32com.client', 'win32com.server',
], 'cryptography', 'pkg_resources'],
'packages': ['gi', 'cffi', 'cryptography'], 'packages': ['gi', 'cffi', 'cryptography', 'google', 'axolotl'],
'base': 'Win32GUI', 'base': 'Win32GUI',
'include_files': include_files, 'include_files': INCLUDE_FILES,
} }
} }
@ -142,7 +143,6 @@ setup(
url='http://gajim.org/', url='http://gajim.org/',
download_url='http://gajim.org/downloads.php', download_url='http://gajim.org/downloads.php',
license='GPL', license='GPL',
options=options, options=OPTIONS,
executables=[Executable('src/gajim.py', icon='data/pixmaps/gajim.ico'), executables=[Executable('src/gajim.py', icon='data/pixmaps/gajim.ico')],
Executable('src/history_manager.py', icon='data/pixmaps/gajim.ico')],
) )