Skip to content

Commit 5b92b42

Browse files
authored
Merge branch 'develop' into mainwin-view-docks
2 parents e5bcffc + f7d3518 commit 5b92b42

File tree

505 files changed

+56226
-53082
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

505 files changed

+56226
-53082
lines changed

.gitlab-ci.yml

+10-10
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ linux-builder:
2222
- git log $(git describe --tags --abbrev=0 @^)..@ --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x64/share/$CI_PROJECT_NAME.log"
2323
- cd doc; make html SPHINXOPTS="-D html_theme_options.analytics_id=UA-4381101-5"; cd ..;
2424
- ~/auto-update-sphinx "$CI_PROJECT_DIR/build" "$CI_COMMIT_REF_NAME"
25-
- python3 freeze.py build
26-
- /bin/sh ./installer/mangle-hw-libs.sh "build/exe.linux-x86_64-3.4/"
27-
- python3 installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "False" "$CI_COMMIT_REF_NAME"
25+
- python3 -u freeze.py build
26+
- for dir in "build/*/"; do /bin/sh ./installer/mangle-hw-libs.sh $(realpath "${dir}"); done
27+
- python3 -u installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "False" "$CI_COMMIT_REF_NAME"
2828
when: always
2929
except:
3030
- tags
3131
tags:
32-
- linux
32+
- linux-bionic
3333

3434
mac-builder:
3535
stage: build-openshot-qt
@@ -63,8 +63,8 @@ mac-builder:
6363
- export DYLD_LIBRARY_PATH=$CI_PROJECT_DIR/build/install-x64/lib:DYLD_LIBRARY_PATH
6464
- echo -e "CI_PROJECT_NAME:$CI_PROJECT_NAME\nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME\nCI_COMMIT_SHA:$CI_COMMIT_SHA\nCI_JOB_ID:$CI_JOB_ID" > "build/install-x64/share/$CI_PROJECT_NAME"
6565
- git log $(git describe --tags --abbrev=0 @^)..@ --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x64/share/$CI_PROJECT_NAME.log"
66-
- /Library/Frameworks/Python.Framework/Versions/3.6/bin/python3.6 freeze.py bdist_mac --iconfile=installer/openshot.icns --custom-info-plist=installer/Info.plist --bundle-name="OpenShot Video Editor"
67-
- /Library/Frameworks/Python.Framework/Versions/3.6/bin/python3.6 installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "False" "$CI_COMMIT_REF_NAME"
66+
- /Library/Frameworks/Python.Framework/Versions/3.6/bin/python3.6 -u freeze.py bdist_mac --iconfile=installer/openshot.icns --custom-info-plist=installer/Info.plist --bundle-name="OpenShot Video Editor"
67+
- /Library/Frameworks/Python.Framework/Versions/3.6/bin/python3.6 -u installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "False" "$CI_COMMIT_REF_NAME"
6868
when: always
6969
except:
7070
- tags
@@ -90,8 +90,8 @@ windows-builder-x64:
9090
- New-Item -path "build/install-x64/share/" -Name "$CI_PROJECT_NAME" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID" -ItemType file -force
9191
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
9292
- git log "$PREV_GIT_LABEL..@" --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x64/share/$CI_PROJECT_NAME.log"
93-
- python3 freeze.py build
94-
- python3 installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "False" "$CI_COMMIT_REF_NAME"
93+
- python3 -u freeze.py build
94+
- python3 -u installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "False" "$CI_COMMIT_REF_NAME"
9595
when: always
9696
except:
9797
- tags
@@ -117,9 +117,9 @@ windows-builder-x86:
117117
- New-Item -path "build/install-x86/share/" -Name "$CI_PROJECT_NAME" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID" -ItemType file -force
118118
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
119119
- git log "$PREV_GIT_LABEL..@" --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x86/share/$CI_PROJECT_NAME.log"
120-
- python3 freeze.py build
120+
- python3 -u freeze.py build
121121
- editbin /LARGEADDRESSAWARE "$CI_PROJECT_DIR\build\exe.mingw-3.7\openshot-qt.exe"
122-
- python3 installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "True" "$CI_COMMIT_REF_NAME"
122+
- python3 -u installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "True" "$CI_COMMIT_REF_NAME"
123123
when: always
124124
except:
125125
- tags

.travis.yml

+25-5
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,58 @@ addons:
77
apt:
88
sources:
99
- sourceline: 'ppa:openshot.developers/libopenshot-daily'
10-
packages:
10+
packages: &p_common
1111
- libopenshot-audio-dev
1212
- libopenshot-dev
1313
- libssl-dev
1414
- python3-openshot
1515
- python3-pip
1616
- python3-setuptools
1717
- python3-pyqt5
18-
- python3-pyqt5.qtmultimedia
19-
- python3-pyqt5.qtopengl
2018
- python3-pyqt5.qtsvg
21-
- python3-pyqt5.qtwebkit
2219
- python3-requests
2320
- python3-xdg
2421
- python3-zmq
2522
- qttranslations5-l10n
2623
- xvfb
2724

28-
matrix:
25+
jobs:
2926
include:
3027
- name: "Python 3.5 (Ubuntu 16.04 Xenial)"
3128
os: linux
3229
dist: xenial
3330
python: 3.5
31+
addons:
32+
apt:
33+
sources:
34+
- sourceline: 'ppa:openshot.developers/libopenshot-daily'
35+
packages:
36+
- *p_common
37+
- python3-pyqt5.qtwebkit
3438
- name: "Python 3.6 (Ubuntu 18.04 Bionic)"
3539
os: linux
3640
dist: bionic
3741
python: 3.6
42+
addons:
43+
apt:
44+
sources:
45+
- sourceline: 'ppa:openshot.developers/libopenshot-daily'
46+
packages:
47+
- *p_common
48+
- python3-pyqt5.qtwebengine
49+
- python3-pyqt5.qtopengl
3850
- name: "Python 3.8 (Ubuntu 20.04 Focal)"
3951
os: linux
4052
dist: focal
4153
python: 3.8
54+
addons:
55+
apt:
56+
sources:
57+
- sourceline: 'ppa:openshot.developers/libopenshot-daily'
58+
packages:
59+
- *p_common
60+
- python3-pyqt5.qtwebengine
61+
- python3-pyqt5.qtopengl
4262

4363
install:
4464
- pip3 install 'cx-freeze==6.1'

COPYING

+13-12
Original file line numberDiff line numberDiff line change
@@ -622,17 +622,18 @@ copy of the Program in return for a fee.
622622
18. Exceptions
623623

624624
The OpenShot Video Editor project hereby grants permission for non-GPL
625-
compatible GStreamer, FFMPEG, and libopenshot to be used and distributed together with
626-
GStreamer, FFMPEG, MLT, and OpenShot Video Editor. This permission is above and beyond
627-
the permissions granted by the GPL license by which OpenShot Video Editor
628-
is covered. If you modify this code, you may extend this exception to
629-
your version of the code, but you are not obligated to do so. If you do
630-
not wish to do so, delete this exception statement from your version.
631-
632-
OpenShot Video Editor does not contain or use any proprietary codecs. We support
633-
free and open-source codecs, such as Ogg Vorbis and Theora. However, since we use
634-
the ffmpeg library, it is possible to use any ffmpeg supported codec, assuming
635-
you have legal permission to do so.
625+
compatible GStreamer, FFMPEG, and libopenshot to be used and distributed
626+
together with GStreamer, FFMPEG, MLT, and OpenShot Video Editor. This
627+
permission is above and beyond the permissions granted by the GPL license
628+
by which OpenShot Video Editor is covered. If you modify this code, you
629+
may extend this exception to your version of the code, but you are not
630+
obligated to do so. If you do not wish to do so, delete this exception
631+
statement from your version.
632+
633+
OpenShot Video Editor does not contain or use any proprietary codecs.
634+
We support free and open-source codecs, such as Ogg Vorbis and Theora.
635+
However, since we use the ffmpeg library, it is possible to use any
636+
ffmpeg supported codec, assuming you have legal permission to do so.
636637

637638

638-
END OF TERMS AND CONDITIONS
639+
END OF TERMS AND CONDITIONS

doc/titles.rst

+3-4

freeze.py

+85-31
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"openshot",
7777
"time",
7878
"uuid",
79+
"idna",
7980
"shutil",
8081
"threading",
8182
"subprocess",
@@ -90,6 +91,9 @@
9091
"json"
9192
]
9293

94+
# Modules to include
95+
python_modules = ["idna.idnadata"]
96+
9397
# Determine absolute PATH of OpenShot folder
9498
PATH = os.path.dirname(os.path.realpath(__file__)) # Primary openshot folder
9599

@@ -210,6 +214,29 @@ def find_files(directory, patterns):
210214
if os.path.exists(resvg_path):
211215
external_so_files.append((resvg_path, os.path.basename(resvg_path)))
212216

217+
# Add QtWebEngineProcess (if found)
218+
web_process_path = ARCHLIB + "qt5/libexec/QtWebEngineProcess"
219+
if os.path.exists(web_process_path):
220+
external_so_files.append(
221+
(web_process_path, os.path.basename(web_process_path)))
222+
223+
# Add QtWebEngineProcess Resources & Local
224+
qt5_path = "/usr/share/qt5/"
225+
for filename in find_files(os.path.join(qt5_path, "resources"), ["*"]):
226+
external_so_files.append((filename, os.path.relpath(filename, start=qt5_path)))
227+
for filename in find_files(os.path.join(qt5_path, "translations", "qtwebengine_locales"), ["*"]):
228+
external_so_files.append((filename, os.path.relpath(filename, start=qt5_path)))
229+
230+
# Add Qt xcbglintegrations plugin
231+
xcbgl_path = ARCHLIB + "qt5/"
232+
for filename in find_files(os.path.join(xcbgl_path, "plugins", "xcbglintegrations"), ["*"]):
233+
external_so_files.append((filename, os.path.relpath(filename, start=xcbgl_path)))
234+
235+
# Add libsoftokn3
236+
nss_path = ARCHLIB + "nss/"
237+
for filename in find_files(nss_path, ["*"]):
238+
external_so_files.append((filename, os.path.basename(filename)))
239+
213240
# Append Linux ICON file
214241
iconFile += ".svg"
215242
src_files.append((os.path.join(PATH, "xdg", iconFile), iconFile))
@@ -223,15 +250,32 @@ def find_files(directory, patterns):
223250
# Get a list of all openshot.so dependencies (scan these libraries for their dependencies)
224251
pyqt5_mod_files = []
225252
from importlib import import_module
226-
for submod in ['Qt', 'QtWebKit', 'QtSvg', 'QtWebKitWidgets', 'QtWidgets', 'QtCore', 'QtGui', 'QtDBus']:
253+
for submod in ['Qt', 'QtSvg', 'QtWidgets', 'QtCore', 'QtGui', 'QtDBus']:
227254
mod_name = "PyQt5.{}".format(submod)
228255
mod = import_module(mod_name)
229256
pyqt5_mod_files.append(inspect.getfile(mod))
230-
231-
lib_list = [os.path.join(libopenshot_path, "libopenshot.so"),
232-
"/usr/local/lib/libresvg.so",
233-
ARCHLIB + "qt5/plugins/platforms/libqxcb.so"
234-
] + pyqt5_mod_files
257+
# Optional additions
258+
for mod_name in [
259+
'PyQt5.QtWebEngine',
260+
'PyQt5.QtWebEngineWidgets',
261+
'PyQt5.QtWebKit',
262+
'PyQt5.QtWebKitWidgets',
263+
]:
264+
try:
265+
mod = import_module(mod_name)
266+
pyqt5_mod_files.append(inspect.getfile(mod))
267+
except ImportError as ex:
268+
log.warning("Skipping {}: {}".format(mod_name, ex))
269+
270+
271+
lib_list = pyqt5_mod_files
272+
for lib_name in [
273+
os.path.join(libopenshot_path, "libopenshot.so"),
274+
"/usr/local/lib/libresvg.so",
275+
ARCHLIB + "qt5/plugins/platforms/libqxcb.so"
276+
]:
277+
if os.path.exists(lib_name):
278+
lib_list.append(lib_name)
235279

236280
import subprocess
237281
for library in lib_list:
@@ -259,6 +303,7 @@ def find_files(directory, patterns):
259303
libpath = libdetailsparts[0].strip()
260304
libpath_file = os.path.basename(libpath)
261305
if (libpath
306+
and os.path.exists(libpath)
262307
and not libpath.startswith("/lib")
263308
and "libnvidia-glcore.so" not in libpath
264309
and libpath_file not in [
@@ -282,31 +327,20 @@ def find_files(directory, patterns):
282327
"libpangoft2-1.0.so.0",
283328
"libharfbuzz.so.0",
284329
"libthai.so.0",
285-
]
286-
and not libpath_file.startswith("libxcb-")
287-
) \
288-
or libpath_file in ["libgcrypt.so.11", "libQt5DBus.so.5", "libpng12.so.0", "libbz2.so.1.0", "libqxcb.so"]:
289-
290-
# Ignore missing files
291-
if os.path.exists(libpath):
292-
filepath, filename = os.path.split(libpath)
293-
external_so_files.append((libpath, filename))
294-
295-
# Manually add missing files (that were missed in the above step). These files are required
296-
# for certain distros (like Fedora, openSUSE, Debian, etc...)
297-
# Also add Glib related files (required for some distros)
298-
299-
for added_lib in [ARCHLIB + "libssl.so",
300-
ARCHLIB + "libcrypto.so",
301-
ARCHLIB + "libglib-2.0.so",
302-
ARCHLIB + "libgio-2.0.so",
303-
ARCHLIB + "libgmodule-2.0.so",
304-
ARCHLIB + "libthread-2.0.so"
305-
]:
306-
if os.path.exists(added_lib):
307-
external_so_files.append((added_lib, os.path.basename(added_lib)))
308-
else:
309-
log.warning("{}: not found, skipping".format(added_lib))
330+
]
331+
) or libpath_file in [
332+
"libgcrypt.so.11",
333+
"libQt5DBus.so.5",
334+
"libpng12.so.0",
335+
"libbz2.so.1.0",
336+
"libqxcb.so",
337+
"libxcb-xinerama.so.0",
338+
"libpcre.so.3",
339+
"libselinux.so.1",
340+
]:
341+
external_so_files.append((libpath, libpath_file))
342+
# Any other lib deps that fail to meet the inclusion
343+
# criteria above will be silently skipped over
310344

311345
elif sys.platform == "darwin":
312346
# Copy Mac specific files that cx_Freeze misses
@@ -327,6 +361,25 @@ def find_files(directory, patterns):
327361
iconFile += ".hqx"
328362
src_files.append((os.path.join(PATH, "xdg", iconFile), iconFile))
329363

364+
# Add QtWebEngineProcess (if found)
365+
qt_install_path = "/usr/local/qt5.15.X/qt5.15/5.15.0/clang_64/"
366+
qt_webengine_path = os.path.join(qt_install_path, "lib", "QtWebEngineCore.framework", "Versions", "5")
367+
web_process_path = os.path.join(qt_webengine_path, "Helpers", "QtWebEngineProcess.app", "Contents", "MacOS", "QtWebEngineProcess")
368+
web_core_path = os.path.join(qt_webengine_path, "QtWebEngineCore")
369+
external_so_files.append((web_process_path, os.path.basename(web_process_path)))
370+
external_so_files.append((web_core_path, os.path.basename(web_core_path)))
371+
372+
# Add QtWebEngineProcess Resources & Local
373+
for filename in find_files(os.path.join(qt_webengine_path, "Resources"), ["*"]):
374+
external_so_files.append((filename, os.path.relpath(filename, start=os.path.join(qt_webengine_path, "Resources"))))
375+
for filename in find_files(os.path.join(qt_webengine_path, "Resources", "qtwebengine_locales"), ["*"]):
376+
external_so_files.append((filename, os.path.relpath(filename, start=os.path.join(qt_webengine_path, "Resources"))))
377+
for filename in find_files(os.path.join(qt_install_path, "plugins"), ["*"]):
378+
relative_filepath = os.path.relpath(filename, start=os.path.join(qt_install_path, "plugins"))
379+
plugin_name = os.path.dirname(relative_filepath)
380+
if plugin_name not in ["sqldrivers", "playlistformats", "gamepads", "bearer"]:
381+
external_so_files.append((filename, relative_filepath))
382+
330383
# Append all source files
331384
src_files.append((os.path.join(PATH, "installer", "qt.conf"), "qt.conf"))
332385
for filename in find_files("openshot_qt", ["*"]):
@@ -335,6 +388,7 @@ def find_files(directory, patterns):
335388
# Dependencies are automatically detected, but it might need fine tuning.
336389
build_exe_options["packages"] = python_packages
337390
build_exe_options["include_files"] = src_files + external_so_files
391+
build_exe_options["includes"] = python_modules
338392

339393
# Set options
340394
build_options["build_exe"] = build_exe_options

images/AboutLogo.png

24.6 KB
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)