Bundle ssl lib
This commit is contained in:
parent
2f796d33c9
commit
04de7388b1
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
@ -66,6 +66,9 @@ jobs:
|
|||||||
- name: Get Qt
|
- name: Get Qt
|
||||||
run: python ./share/ci/get_qt.py
|
run: python ./share/ci/get_qt.py
|
||||||
|
|
||||||
|
- name: Get ssl
|
||||||
|
run: python ./share/ci/get_qt_ssl.py
|
||||||
|
|
||||||
- name: Get leptonica
|
- name: Get leptonica
|
||||||
run: python ./share/ci/get_leptonica.py
|
run: python ./share/ci/get_leptonica.py
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@ from config import *
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import subprocess as sub
|
import subprocess as sub
|
||||||
|
import shutil
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
if len(sys.argv) > 1 and sys.argv[1] == 'glibc_version': # subcommand
|
if len(sys.argv) > 1 and sys.argv[1] == 'glibc_version': # subcommand
|
||||||
sub.run('ldd --version | head -n 1 | grep -Po "\\d\\.\\d\\d"', shell=True)
|
sub.run('ldd --version | head -n 1 | grep -Po "\\d\\.\\d\\d"', shell=True)
|
||||||
@ -43,6 +45,12 @@ os.environ['VERSION'] = app_version
|
|||||||
# debug flags: -unsupported-bundle-everything -unsupported-allow-new-glibc
|
# debug flags: -unsupported-bundle-everything -unsupported-allow-new-glibc
|
||||||
flags = '' if os.getenv("DEBUG") is None else '-unsupported-allow-new-glibc'
|
flags = '' if os.getenv("DEBUG") is None else '-unsupported-allow-new-glibc'
|
||||||
|
|
||||||
|
out_lib_dir = install_dir + '/usr/lib'
|
||||||
|
os.makedirs(out_lib_dir, exist_ok=True)
|
||||||
|
for f in glob(ssl_dir + '/lib/lib*.so.*'):
|
||||||
|
c.print('>> Copying {} to {}'.format(f, out_lib_dir))
|
||||||
|
shutil.copy(f, out_lib_dir)
|
||||||
|
|
||||||
c.run('{} {}/usr/share/applications/*.desktop {} -appimage -qmake={}/bin/qmake'.format(
|
c.run('{} {}/usr/share/applications/*.desktop {} -appimage -qmake={}/bin/qmake'.format(
|
||||||
linuxdeployqt_bin, install_dir, flags, qt_dir))
|
linuxdeployqt_bin, install_dir, flags, qt_dir))
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ qt_modules = ['qtbase', 'qttools', 'icu',
|
|||||||
'qtdeclarative', 'qtlocation', 'opengl32sw', 'd3dcompiler_47',
|
'qtdeclarative', 'qtlocation', 'opengl32sw', 'd3dcompiler_47',
|
||||||
'qtserialport']
|
'qtserialport']
|
||||||
qt_dir = path.abspath('qt')
|
qt_dir = path.abspath('qt')
|
||||||
|
ssl_dir = path.abspath('ssl')
|
||||||
|
|
||||||
build_dir = path.abspath('build')
|
build_dir = path.abspath('build')
|
||||||
dependencies_dir = path.abspath('deps')
|
dependencies_dir = path.abspath('deps')
|
||||||
|
52
share/ci/get_qt_ssl.py
Normal file
52
share/ci/get_qt_ssl.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
import common as c
|
||||||
|
from config import ssl_dir, os_name
|
||||||
|
import sys
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
c.print('>> Downloading ssl for Qt for {}'.format(os_name))
|
||||||
|
|
||||||
|
if os_name == 'linux':
|
||||||
|
os_url = 'linux_x64'
|
||||||
|
tool_name = 'tools_openssl_x64'
|
||||||
|
root_path = 'Tools/OpenSSL/binary'
|
||||||
|
elif os_name == 'win32':
|
||||||
|
os_url = 'windows_x86'
|
||||||
|
tool_name = 'tools_openssl_x86'
|
||||||
|
root_path = 'Tools/OpenSSL/Win_x86'
|
||||||
|
elif os_name == 'win64':
|
||||||
|
os_url = 'windows_x86'
|
||||||
|
tool_name = 'tools_openssl_x64'
|
||||||
|
root_path = 'Tools/OpenSSL/Win_x64'
|
||||||
|
elif os_name == 'macos':
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
base_url = 'https://download.qt.io/online/qtsdkrepository/{}/desktop/{}' \
|
||||||
|
.format(os_url, tool_name)
|
||||||
|
updates_file = 'Updates-{}-{}.xml'.format(tool_name, os_name)
|
||||||
|
c.download(base_url + '/Updates.xml', updates_file)
|
||||||
|
|
||||||
|
updates = ET.parse(updates_file)
|
||||||
|
updates_root = updates.getroot()
|
||||||
|
url = ''
|
||||||
|
file_name = ''
|
||||||
|
for i in updates_root.iter('PackageUpdate'):
|
||||||
|
name = i.find('Name').text
|
||||||
|
if not 'qt.tools.openssl' in name:
|
||||||
|
continue
|
||||||
|
|
||||||
|
archives = i.find('DownloadableArchives')
|
||||||
|
if archives.text is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
version = i.find('Version').text
|
||||||
|
url = base_url + '/' + name + '/' + version + archives.text
|
||||||
|
file_name = archives.text
|
||||||
|
|
||||||
|
if len(url) == 0:
|
||||||
|
c.print('>> No ssl url found')
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
c.download(url, file_name)
|
||||||
|
c.extract(file_name, '.')
|
||||||
|
|
||||||
|
c.symlink(root_path, ssl_dir)
|
@ -3,6 +3,7 @@ from config import *
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import shutil
|
import shutil
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
artifact_name = '{}-{}-{}.zip'.format(app_name, app_version, os_name)
|
artifact_name = '{}-{}-{}.zip'.format(app_name, app_version, os_name)
|
||||||
if len(sys.argv) > 1 and sys.argv[1] == 'artifact_name': # subcommand
|
if len(sys.argv) > 1 and sys.argv[1] == 'artifact_name': # subcommand
|
||||||
@ -32,4 +33,8 @@ for file in os.scandir(libs_dir):
|
|||||||
c.print('>> Copying {} to {}'.format(full_name, install_dir))
|
c.print('>> Copying {} to {}'.format(full_name, install_dir))
|
||||||
shutil.copy(full_name, install_dir)
|
shutil.copy(full_name, install_dir)
|
||||||
|
|
||||||
|
for f in glob(ssl_dir + '/bin/*.dll'):
|
||||||
|
c.print('>> Copying {} to {}'.format(f, install_dir))
|
||||||
|
shutil.copy(f, install_dir)
|
||||||
|
|
||||||
c.archive(c.get_folder_files(os.path.relpath(install_dir)), artifact_path)
|
c.archive(c.get_folder_files(os.path.relpath(install_dir)), artifact_path)
|
||||||
|
Loading…
Reference in New Issue
Block a user