def install(): system_identify() Travis_Dispatcher().install() # Install, which also builds Python C extensions. Use this instead of # ``build_ext`` so that Enki will have an already-installed qutepart, # rather than needing to regenerate the command below. xqt('python -m pip install -e .')
def test(): if build_os == 'Windows': # The PATH can't be set in install_, since changes to the environment # get lost when Python quits. os.environ['PATH'] = CTAGS_VER + '\\;' + os.environ['PATH'] else: qutepart_travis.set_display() with pushd('tests'): xqt('python run_all.py')
def qt5_Linux(self): # There are two Qt version strings here -- keep them in sync. See # https://launchpad.net/~beineri/+archive/ubuntu/opt-qt551-trusty. xqt('sudo add-apt-repository -y ppa:beineri/opt-qt551', 'sudo apt-get update', # The base package doesn't include QWebKit -- install it also. See # the details at https://launchpad.net/~beineri/+archive/ubuntu/opt-qt551/+packages. # Do this now (rather than in Enki) so that PyQt5 will be built with # QWebKit support. 'sudo apt-get install -y qt55base qt55webkit')
def install(): system_identify() # Install OS-dependent items. cid = CI_Dispatcher() cid.install() if build_os == 'Linux': qutepart_travis.set_display() xqt('sh -e /etc/init.d/xvfb start') xqt('python -m pip install -e .')
def install(): system_identify() # Install qutepart OS-dependent items. (Note: no installs needed for Windows -- everything is statically linked.) qutepart_travis.Travis_Dispatcher().install() # Install Enki's OS-dependent items. cid = CI_Dispatcher() cid.install() # Install Enki. xqt('python -m pip install -e .')
def pcre_Linux(self): # Travis Linux notes: this fixed the error:: # # This application failed to start because it could not find or load the Qt platform plugin "xcb" # in "". # Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb. # # To help debug, run ``QT_DEBUG_PLUGINS=1 python run_all.py``, which # produced (along with lots of other output):: # # Cannot load library /home/travis/virtualenv/python3.5.2/lib/python3.5/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libEGL.so.1: cannot open shared object file: No such file or directory) # # Adding the ``libegl1-mesa`` package fixes this. xqt('sudo apt-get install -y libpcre3-dev libegl1-mesa')
def install(should_identify=True): # Based on ideas from https://github.com/harvimt/quamash/blob/master/.travis.yml if should_identify: system_identify() td = Travis_Dispatcher() # PCRE td.pcre() # Qutepart if build_os == 'Linux': set_display() xqt('sh -e /etc/init.d/xvfb start') # Install, which also builds Python C extensions. Use this instead of # ``build_ext`` so that Enki will have an already-installed qutepart, # rather than needing to regenrate the command below. xqt('python -m pip install -e .')
def install_Linux(self): # Travis Linux notes: adding the ``libegl1-mesa`` package fixes the error:: # # This application failed to start because it could not find or load the Qt platform plugin "xcb" # in "". # Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb. # # To help debug, run ``QT_DEBUG_PLUGINS=1 python run_all.py``, which # produced (along with lots of other output):: # # Cannot load library /home/travis/virtualenv/python3.5.2/lib/python3.5/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libEGL.so.1: cannot open shared object file: No such file or directory) # # Travis Linux notes: adding the test repo then installing ``libstdc++6`` fixes ``ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /home/travis/virtualenv/python3.5.2/lib/python3.5/site-packages/PyQt5/Qt/lib/libQt5WebEngineCore.so.5)``. xqt('sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test', 'sudo apt-get update', 'sudo apt-get install -y libpcre3-dev libegl1-mesa libstdc++6') set_display() xqt('sh -e /etc/init.d/xvfb start')
def install(should_identify=True): if should_identify: system_identify() # Create a place to store downloads. if not isdir(DOWNLOADS): mkdir(DOWNLOADS) # Download and install PyQt5. Only download if we don't have a cached copy # available. install_PyQt5 = os.path.join(DOWNLOADS, 'install-PyQt5.exe') if not isfile(install_PyQt5): wget( 'http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-5.5.1/' 'PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe', install_PyQt5) # See https://github.com/appveyor/ci/issues/363#issuecomment-148915001. xqt( 'REG ADD HKCU\\Software\\Python\\PythonCore\\3.4\\InstallPath /f /ve ' '/t REG_SZ /d C:\\Python34', install_PyQt5 + ' /S') # Download and compile PCRE. pcre_ver = 'pcre-8.38' pcre_zip = pcre_ver + '.zip' pcre_zip_path = os.path.join(DOWNLOADS, pcre_zip) if not isfile(pcre_zip_path): # Note: Don't use ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/, # because this sometimes hangs during download, causing the build to # fail. Instead, use the more reliable SourceForge mirror. wget( 'http://downloads.sourceforge.net/project/pcre/pcre/8.38/' + pcre_zip, pcre_zip_path) # See https://sevenzip.osdn.jp/chm/cmdline/commands/extract_full.htm. xqt('7z x {} > nul'.format(pcre_zip_path)) with pushd(pcre_ver): mkdir('build') chdir('build') xqt( 'cmake .. -DBUILD_SHARED_LIBS:BOOL=OFF -DPCRE_SUPPORT_UTF:BOOL=ON ' '-DPCRE_SUPPORT_JIT:BOOL=ON -G "Visual Studio 10 2010"', 'cmake --build . --config Release') # Install, which also builds Python C extensions. Use this instead of # ``build_ext`` so that Enki will have an already-installed qutepart, # rather than needing to regenrate the command below. xqt('python setup.py install --include-dir={}/build ' '--lib-dir={}/build/Release --force'.format(pcre_ver, pcre_ver))
def install(should_identify=True): if should_identify: system_identify() # Create a place to store downloads. if not isdir(DOWNLOADS): mkdir(DOWNLOADS) # Download and install PyQt5. Only download if we don't have a cached copy # available. install_PyQt5 = os.path.join(DOWNLOADS, 'install-PyQt5.exe') if not isfile(install_PyQt5): wget('http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-5.5.1/' 'PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe', install_PyQt5) # See https://github.com/appveyor/ci/issues/363#issuecomment-148915001. xqt('REG ADD HKCU\\Software\\Python\\PythonCore\\3.4\\InstallPath /f /ve ' '/t REG_SZ /d C:\\Python34', install_PyQt5 + ' /S') # Download and compile PCRE. pcre_ver = 'pcre-8.38' pcre_zip = pcre_ver + '.zip' pcre_zip_path = os.path.join(DOWNLOADS, pcre_zip) if not isfile(pcre_zip_path): # Note: Don't use ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/, # because this sometimes hangs during download, causing the build to # fail. Instead, use the more reliable SourceForge mirror. wget('http://downloads.sourceforge.net/project/pcre/pcre/8.38/' + pcre_zip, pcre_zip_path) # See https://sevenzip.osdn.jp/chm/cmdline/commands/extract_full.htm. xqt('7z x {} > nul'.format(pcre_zip_path)) with pushd(pcre_ver): mkdir('build') chdir('build') xqt('cmake .. -DBUILD_SHARED_LIBS:BOOL=OFF -DPCRE_SUPPORT_UTF:BOOL=ON ' '-DPCRE_SUPPORT_JIT:BOOL=ON -G "Visual Studio 10 2010"', 'cmake --build . --config Release') # Install, which also builds Python C extensions. Use this instead of # ``build_ext`` so that Enki will have an already-installed qutepart, # rather than needing to regenrate the command below. xqt('python setup.py install --include-dir={}/build ' '--lib-dir={}/build/Release --force'.format(pcre_ver, pcre_ver))
def install(should_identify=True): if should_identify: system_identify() # Create a place to store downloads. if not isdir(DOWNLOADS): mkdir(DOWNLOADS) # Download and compile PCRE. pcre_raw_ver = '8.42' pcre_ver = 'pcre-' + pcre_raw_ver pcre_zip = pcre_ver + '.zip' pcre_zip_path = os.path.join(DOWNLOADS, pcre_zip) if not isfile(pcre_zip_path): # Note: Don't use ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/, # because this sometimes hangs during download, causing the build to # fail. Instead, use the more reliable SourceForge mirror. wget( 'http://downloads.sourceforge.net/project/pcre/pcre/{}/{}'.format( pcre_raw_ver, pcre_zip), pcre_zip_path) # See https://sevenzip.osdn.jp/chm/cmdline/commands/extract_full.htm. xqt('7z x {} > nul'.format(pcre_zip_path)) with pushd(pcre_ver): mkdir('build') chdir('build') # Per https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2014%202015.html, # add the Win64 string for 64-bit Python. use_Win64 = ' Win64' if is_64bits else '' xqt( 'cmake .. -DBUILD_SHARED_LIBS:BOOL=OFF -DPCRE_SUPPORT_UTF:BOOL=ON ' '-DPCRE_SUPPORT_JIT:BOOL=ON -G "Visual Studio 14 2015{}"'.format( use_Win64), 'cmake --build . --config Release') # First, build Python C extensions. Use this instead of # ``build_ext`` so that Enki will have an already-installed qutepart, # rather than needing to regenrate the command below. xqt('python setup.py build_ext --include-dir={}/build ' '--lib-dir={}/build/Release --force'.format(pcre_ver, pcre_ver)) # Next, install it along with its dependencies. See comments at # ``install_requires`` on why this is necessary. xqt('python -m pip install -e .')
def install(should_identify=True): if should_identify: system_identify() # Create a place to store downloads. if not isdir(DOWNLOADS): mkdir(DOWNLOADS) # Download and compile PCRE. pcre_raw_ver = '8.39' pcre_ver = 'pcre-' + pcre_raw_ver pcre_zip = pcre_ver + '.zip' pcre_zip_path = os.path.join(DOWNLOADS, pcre_zip) if not isfile(pcre_zip_path): # Note: Don't use ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/, # because this sometimes hangs during download, causing the build to # fail. Instead, use the more reliable SourceForge mirror. wget('http://downloads.sourceforge.net/project/pcre/pcre/{}/{}'. format(pcre_raw_ver, pcre_zip), pcre_zip_path) # See https://sevenzip.osdn.jp/chm/cmdline/commands/extract_full.htm. xqt('7z x {} > nul'.format(pcre_zip_path)) with pushd(pcre_ver): mkdir('build') chdir('build') # Per https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2014%202015.html, # add the Win64 string for 64-bit Python. use_Win64 = ' Win64' if is_64bits else '' xqt('cmake .. -DBUILD_SHARED_LIBS:BOOL=OFF -DPCRE_SUPPORT_UTF:BOOL=ON ' '-DPCRE_SUPPORT_JIT:BOOL=ON -G "Visual Studio 14 2015{}"'. format(use_Win64), 'cmake --build . --config Release') # First, build Python C extensions. Use this instead of # ``build_ext`` so that Enki will have an already-installed qutepart, # rather than needing to regenrate the command below. xqt('python setup.py build_ext --include-dir={}/build ' '--lib-dir={}/build/Release --force'.format(pcre_ver, pcre_ver)) # Next, install it along with its dependencies. See comments at # ``install_requires`` on why this is necessary. xqt('python -m pip install -e .')
def install(): system_identify() # First, install OS-independent items. Install the development version of # CodeChat, rather than the (older) released version on PyPI that the pip # install would do. xqt('git clone https://github.com/bjones1/CodeChat.git') with pushd('CodeChat'): xqt('python setup.py install') xqt('python -m pip install -U -r requirements.txt') # Install OS-dependent items. cid = CI_Dispatcher() # The qutepart install script assumes the working directory is qutepart. with pushd('qutepart'): cid.install_qutepart() cid.install()
def install_Linux(self): xqt('sudo apt-get install -y ctags')
def install_OS_X(self): xqt('brew install ctags')
def test(): chdir('tests') xqt('python run_all.py')
def test(): set_display() chdir('tests') # Now run the tests. xqt('python run_all.py')
def install(should_identify=True): # Based on ideas from https://github.com/harvimt/quamash/blob/master/.travis.yml if should_identify: system_identify() td = Travis_Dispatcher() xqt( # Cached Downloads 'sudo mkdir -p /downloads', 'sudo chmod a+rw /downloads') sip_ver = 'sip-4.17' if not isfile('/downloads/sip.tar.gz'): wget('http://downloads.sourceforge.net/project/pyqt/sip/{}/{}'. format(sip_ver, _gz(sip_ver)), '/downloads/sip.tar.gz') # _`pyqt_ver`: Select a PyQt version. See also qt5_Linux_ and qt5_OS_X_. pyqt_ver = '5.5.1' pyqt_gpl_ver = 'PyQt-gpl-' + pyqt_ver if not isfile('/downloads/pyqt5.tar.gz'): wget('http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-{}/{}'. format(pyqt_ver, _gz(pyqt_gpl_ver)), '/downloads/pyqt5.tar.gz') # Builds xqt('sudo mkdir -p /builds', 'sudo chmod a+rw /builds') # Qt5 td.qt5() # SIP. With Linux or OS_X, don't use the package manager to install these, # since they're installed for the system python, not the pyenv version # we're testing with. with pushd('/builds'): xqt('tar xzf /downloads/sip.tar.gz --keep-newer-files') chdir(sip_ver) xqt('python configure.py', 'make', 'sudo make install') # PyQt5 with pushd('/builds'): xqt('tar xzf /downloads/pyqt5.tar.gz --keep-newer-files') chdir(pyqt_gpl_ver) td.pyqt5_configure() xqt('make', 'sudo make install') # PCRE td.pcre() # Qutepart if build_os == 'Linux': set_display() xqt('sh -e /etc/init.d/xvfb start') # Install, which also builds Python C extensions. Use this instead of # ``build_ext`` so that Enki will have an already-installed qutepart, # rather than needing to regenrate the command below. xqt('python setup.py install')
def install_Linux(self): # Need to install Qutepart dependencies the wheel can't capture, plus Enki # dependencies. xqt('sudo apt-get install -y ctags libpcre3-dev libegl1-mesa')
def pyqt5_configure_Linux(self): # The environment variables set by the script are lost when the shell # exits. So, run configure.py in the same bash instance. xqt('source /opt/qt55/bin/qt55-env.sh; python configure.py' + self.configure_options)
def test(): if build_os == 'Linux': set_display() chdir('tests') # Now run the tests. xqt('python run_all.py')
def pyqt5_configure_OS_X(self): # The path to qmake can be obtained by looking at the output of ``brew # install qt55``. xqt('python configure.py --qmake=/usr/local/Cellar/qt55/5.5.1/bin/qmake' + self.configure_options)
def pcre_Linux(self): xqt('sudo apt-get install -y libpcre3-dev')
def qt5_OS_X(self): # Note: ``brew linkapps qt55`` doesn't link qmake, so it's omitted. xqt('brew install qt55')
def pcre_OS_X(self): xqt('brew install pcre')