From 983f43d7388c2ba47d356fbece86a70cc2f47170 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 23 Sep 2020 14:08:22 +1000 Subject: [PATCH 01/12] cmake: minor improvements to crashpad find script --- cmake/FindGoogleCrashpad.cmake | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/cmake/FindGoogleCrashpad.cmake b/cmake/FindGoogleCrashpad.cmake index 0e56c35ec..2f9f50ce6 100644 --- a/cmake/FindGoogleCrashpad.cmake +++ b/cmake/FindGoogleCrashpad.cmake @@ -66,7 +66,8 @@ set (_crashpad_components client util third_party/mini_chromium/mini_chromium/base - compat) + compat +) foreach (COMPONENT ${_crashpad_components}) get_filename_component(SHORT_COMPONENT ${COMPONENT} NAME) string(TOUPPER ${SHORT_COMPONENT} UPPER_COMPONENT) @@ -80,13 +81,6 @@ foreach (COMPONENT ${_crashpad_components}) list(APPEND CRASHPAD_LIBRARIES ${CRASHPAD_${UPPER_COMPONENT}_LIB}) endforeach() -if (UNIX AND NOT APPLE) - list(APPEND CRASHPAD_LIBRARIES - ${CMAKE_DL_LIBS} # Crashpad compat lib needs libdl.so (-ldl) - Threads::Threads # Link against libpthread.so (-lpthread) - ) -endif() - # Find Breakpad's minidump_stackwalk if (UNIX) find_path(BREAKPAD_BIN_DIR @@ -102,7 +96,17 @@ endif() find_package_handle_standard_args(GoogleCrashpad REQUIRED_VARS - CRASHPAD_LIBRARIES - CRASHPAD_INCLUDE_DIRS + CRASHPAD_CLIENT_LIB + CRASHPAD_UTIL_LIB + CRASHPAD_BASE_LIB BREAKPAD_BIN_DIR + CRASHPAD_CLIENT_INCLUDE_DIR + CRASHPAD_BASE_INCLUDE_DIR ) + +if (UNIX AND NOT APPLE) + list(APPEND CRASHPAD_LIBRARIES + ${CMAKE_DL_LIBS} # Crashpad compat lib needs libdl.so (-ldl) + Threads::Threads # Link against libpthread.so (-lpthread) + ) +endif() From e98261658e04f44efbc60dab53855d27b4443395 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 23 Sep 2020 21:12:36 +1000 Subject: [PATCH 02/12] use different push URL --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d3e873c1..f7395477e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,7 +105,7 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git show -s --format=%ct)" \ -F comment="$(git show -s --format=%B)" \ - https://olivevideoeditor.org/dl/push.php + http://ci.olivevideoeditor.org/push.php windows: strategy: @@ -254,7 +254,7 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \ -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \ - https://olivevideoeditor.org/dl/push.php + http://ci.olivevideoeditor.org/push.php curl -X POST \ -F file=@$PKGNAME.zip \ @@ -262,7 +262,7 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \ -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \ - https://olivevideoeditor.org/dl/push.php + http://ci.olivevideoeditor.org/push.php - name: Export Crashpad Symbols and Upload To Server working-directory: ${{ runner.workspace }}/build @@ -407,4 +407,4 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \ -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \ - https://olivevideoeditor.org/dl/push.php + http://ci.olivevideoeditor.org/push.php From d186f69eb103e1ce0e00d9e531c07e05bc486160 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 23 Sep 2020 21:12:40 +1000 Subject: [PATCH 03/12] removed extraneous release text file --- release.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 release.txt diff --git a/release.txt b/release.txt deleted file mode 100644 index b551f4c07..000000000 --- a/release.txt +++ /dev/null @@ -1 +0,0 @@ -NOTE: This build is by no means stable or intended for serious use. It's a complete rewrite of the entire program and only here to simplify testing of what has been implemented. For any serious work, stick to the 0.1.x releases below. From 34d527020f2e63696c86e772a4a5448d53ad647a Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 23 Sep 2020 21:19:53 +1000 Subject: [PATCH 04/12] cmake: ensure 8 character hash Fixes #1219 --- CMakeLists.txt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 82cb7d22f..ec30ceff1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,20 +78,12 @@ endif() if(EXISTS "${CMAKE_SOURCE_DIR}/.git") find_package(Git) if(GIT_FOUND) - execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h + execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short=8 HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) endif() -elseif(UNIX AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") - # Fallback for Ubuntu/Launchpad (extracts Git hash from debian/changelog rather than Git repo) - # (see https://answers.launchpad.net/launchpad/+question/678556) - execute_process(COMMAND sh -c "grep -Po '(?<=-)(([a-z0-9])\\w+)(?=\\+)' -m 1 changelog" - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/debian - OUTPUT_VARIABLE GIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) endif() if(DEFINED GIT_HASH) message("Olive: Git hash = " "${GIT_HASH}") From 3855da23353eee9cbc6e75e4163980040a421acd Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 23 Sep 2020 21:35:30 +1000 Subject: [PATCH 05/12] use https for site communication --- .github/workflows/ci.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f7395477e..a8b435f31 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,7 +105,7 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git show -s --format=%ct)" \ -F comment="$(git show -s --format=%B)" \ - http://ci.olivevideoeditor.org/push.php + https://ci.olivevideoeditor.org/push.php windows: strategy: @@ -155,31 +155,31 @@ jobs: - name: Acquire FFmpeg shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ffmpeg-win.7z + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ffmpeg-win.7z $EXTRACT_TOOL ffmpeg-win.7z - name: Acquire OpenColorIO shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ocio-win.7z + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ocio-win.7z $EXTRACT_TOOL ocio-win.7z - name: Acquire OpenEXR shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/openexr-win.7z + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/openexr-win.7z $EXTRACT_TOOL openexr-win.7z - name: Acquire OpenImageIO shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/oiio-win.7z + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/oiio-win.7z $EXTRACT_TOOL oiio-win.7z - name: Acquire Crashpad shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/crashpad-win.7z + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/crashpad-win.7z $EXTRACT_TOOL crashpad-win.7z - name: Configure CMake @@ -254,7 +254,7 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \ -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \ - http://ci.olivevideoeditor.org/push.php + https://ci.olivevideoeditor.org/push.php curl -X POST \ -F file=@$PKGNAME.zip \ @@ -262,7 +262,7 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \ -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \ - http://ci.olivevideoeditor.org/push.php + https://ci.olivevideoeditor.org/push.php - name: Export Crashpad Symbols and Upload To Server working-directory: ${{ runner.workspace }}/build @@ -322,31 +322,31 @@ jobs: - name: Acquire FFmpeg shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ffmpeg-mac.zip + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ffmpeg-mac.zip $EXTRACT_TOOL ffmpeg-mac.zip - name: Acquire OpenColorIO shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ocio-mac.zip + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ocio-mac.zip $EXTRACT_TOOL ocio-mac.zip - name: Acquire OpenEXR shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/openexr-mac.zip + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/openexr-mac.zip $EXTRACT_TOOL openexr-mac.zip - name: Acquire OpenImageIO shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/oiio-mac.zip + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/oiio-mac.zip $EXTRACT_TOOL oiio-mac.zip - name: Acquire Crashpad shell: bash run: | - $DOWNLOAD_TOOL http://olivevideoeditor.org/deps/crashpad-mac.zip + $DOWNLOAD_TOOL https://olivevideoeditor.org/deps/crashpad-mac.zip $EXTRACT_TOOL crashpad-mac.zip - name: Configure CMake @@ -407,4 +407,4 @@ jobs: -F hash="$GITHUB_SHA" \ -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \ -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \ - http://ci.olivevideoeditor.org/push.php + https://ci.olivevideoeditor.org/push.php From 7f4157042dad760ba436adc1a0d45eab608edaf0 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Wed, 23 Sep 2020 14:23:42 +0200 Subject: [PATCH 06/12] github: issue template formatting Wrap lines at ~80 characters, add space after subjects in title --- .github/ISSUE_TEMPLATE/00-olive_unsupported.md | 13 ++++++++----- .github/ISSUE_TEMPLATE/01-crash_issue.md | 4 ++-- .github/ISSUE_TEMPLATE/50-build_issue.md | 9 ++++++--- .github/ISSUE_TEMPLATE/50-cache_issue.md | 9 ++++++--- .github/ISSUE_TEMPLATE/50-codec_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-color_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-editing_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-export_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-node_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-playback_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-project_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-renderer_issue.md | 8 +++++--- .github/ISSUE_TEMPLATE/50-ui_issue.md | 8 +++++--- 13 files changed, 67 insertions(+), 40 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/00-olive_unsupported.md b/.github/ISSUE_TEMPLATE/00-olive_unsupported.md index 88e715ff8..2fd86f774 100644 --- a/.github/ISSUE_TEMPLATE/00-olive_unsupported.md +++ b/.github/ISSUE_TEMPLATE/00-olive_unsupported.md @@ -1,11 +1,14 @@ --- name: Legacy Olive 0.1.x issue ⛔ -about: Olive 0.1 is no longer supported and issues made about it will be automatically closed. -title: "[UNSUPPORTED]" -labels: "Legacy (Unsupported)" +about: >- + Olive 0.1 is no longer supported and issues made about it will be + automatically closed. +title: '[UNSUPPORTED] ' +labels: 'Legacy (Unsupported)' assignees: '' --- # Olive 0.1 is unsupported -Unfortunately no one is supporting Olive 0.1 at this time. Any reports pertaining to it will be -closed to keep the issue tracker focused on supported versions. +Unfortunately no one is supporting Olive 0.1 at this time. Any reports +pertaining to it will be closed to keep the issue tracker focused on supported +versions. diff --git a/.github/ISSUE_TEMPLATE/01-crash_issue.md b/.github/ISSUE_TEMPLATE/01-crash_issue.md index 87e916dee..24f1d03ec 100644 --- a/.github/ISSUE_TEMPLATE/01-crash_issue.md +++ b/.github/ISSUE_TEMPLATE/01-crash_issue.md @@ -1,8 +1,8 @@ --- name: Crash about: Report a fatal crash that resulted in Olive unexpectedly closing. -title: "[CRASH]" -labels: "Crash, Triage" +title: '[CRASH] ' +labels: 'Crash, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-build_issue.md b/.github/ISSUE_TEMPLATE/50-build_issue.md index 155c7c750..66e56f503 100644 --- a/.github/ISSUE_TEMPLATE/50-build_issue.md +++ b/.github/ISSUE_TEMPLATE/50-build_issue.md @@ -1,8 +1,11 @@ --- name: Build/Packaging -about: Report an issue related to compiling or packaging (including continuous integration). Note that we do not officially support custom build configurations and may choose not to address issues involving them. -title: "[BUILD]" -labels: "Building/Packaging, Triage" +about: >- + Report an issue related to compiling or packaging (including nightly builds / + continuous integration). Note that we do not officially support custom build + configurations and may choose not to address issues involving them. +title: '[BUILD] ' +labels: 'Building/Packaging, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-cache_issue.md b/.github/ISSUE_TEMPLATE/50-cache_issue.md index f346d8245..aa67eb877 100644 --- a/.github/ISSUE_TEMPLATE/50-cache_issue.md +++ b/.github/ISSUE_TEMPLATE/50-cache_issue.md @@ -1,8 +1,11 @@ --- name: Disk Cache -about: Report an issue related to the disk cache system, including failure to cache, frames being set to appear at the wrong time, disk space or memory usage issues, etc. -title: "[CACHE]" -labels: "Disk Cache, Triage" +about: >- + Report an issue related to the disk cache system, including failure to cache, + frames being set to appear at the wrong time, disk space or memory usage + issues, etc. +title: '[CACHE] ' +labels: 'Disk Cache, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-codec_issue.md b/.github/ISSUE_TEMPLATE/50-codec_issue.md index 09fc991ac..c0a94eef6 100644 --- a/.github/ISSUE_TEMPLATE/50-codec_issue.md +++ b/.github/ISSUE_TEMPLATE/50-codec_issue.md @@ -1,8 +1,10 @@ --- name: Codec -about: Report an issue related to codec handling, including importing footage or any footage usage issues while editing. -title: "[CODEC]" -labels: "Codec, Triage" +about: >- + Report an issue related to codec handling, including importing footage or any + footage usage issues while editing. +title: '[CODEC] ' +labels: 'Codec, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-color_issue.md b/.github/ISSUE_TEMPLATE/50-color_issue.md index 99e4c803c..7fb55c049 100644 --- a/.github/ISSUE_TEMPLATE/50-color_issue.md +++ b/.github/ISSUE_TEMPLATE/50-color_issue.md @@ -1,8 +1,10 @@ --- name: Color Management -about: Report an issue related to the management of pixels and color, including inaccurate results, color inconsistencies, etc. -title: "[COLOR]" -labels: "Color Management, Triage" +about: >- + Report an issue related to the management of pixels and color, including + inaccurate results, color inconsistencies, etc. +title: '[COLOR] ' +labels: 'Color Management, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-editing_issue.md b/.github/ISSUE_TEMPLATE/50-editing_issue.md index 88d2f16c1..08d8cb93f 100644 --- a/.github/ISSUE_TEMPLATE/50-editing_issue.md +++ b/.github/ISSUE_TEMPLATE/50-editing_issue.md @@ -1,8 +1,10 @@ --- name: Timeline/Editing -about: Report an issue related to the overall editing experience, including usage of the timeline, interchange, synchronization, multi-camera support, etc. -title: "[EDIT]" -labels: "Timeline/Editing, Triage" +about: >- + Report an issue related to the overall editing experience, including usage of + the timeline, interchange, synchronization, multi-camera support, etc. +title: '[EDIT] ' +labels: 'Timeline/Editing, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-export_issue.md b/.github/ISSUE_TEMPLATE/50-export_issue.md index 4e6e1f3a2..9f7544115 100644 --- a/.github/ISSUE_TEMPLATE/50-export_issue.md +++ b/.github/ISSUE_TEMPLATE/50-export_issue.md @@ -1,8 +1,10 @@ --- name: Export -about: Report an issue related to exporting videos from Olive, including errors while exporting, issues with the resulting video, etc. -title: "[EXPORT]" -labels: "Export, Triage" +about: >- + Report an issue related to exporting videos from Olive, including errors + while exporting, issues with the resulting video, etc. +title: '[EXPORT] ' +labels: 'Export, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-node_issue.md b/.github/ISSUE_TEMPLATE/50-node_issue.md index ec31c8989..3d60610aa 100644 --- a/.github/ISSUE_TEMPLATE/50-node_issue.md +++ b/.github/ISSUE_TEMPLATE/50-node_issue.md @@ -1,8 +1,10 @@ --- name: Node/Compositing -about: Report an issue related to the node-based compositing system, including node graph usability issues, issues working with node effects, issues with composited output, etc. -title: "[NODES]" -labels: "Nodes/Compositing, Triage" +about: >- + Report an issue related to the node-based compositing system, including node graph + usability issues, issues working with node effects, issues with composited output, etc. +title: '[NODES] ' +labels: 'Nodes/Compositing, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-playback_issue.md b/.github/ISSUE_TEMPLATE/50-playback_issue.md index 32a3cc13b..14aa90f62 100644 --- a/.github/ISSUE_TEMPLATE/50-playback_issue.md +++ b/.github/ISSUE_TEMPLATE/50-playback_issue.md @@ -1,8 +1,10 @@ --- name: Playback -about: Report an issue related to the playback of video or audio, including laggy or inconsistent playback, failure to playback, etc. -title: "[PLAYBACK]" -labels: "Playback, Triage" +about: >- + Report an issue related to the playback of video or audio, including laggy or + inconsistent playback, failure to playback, etc. +title: '[PLAYBACK] ' +labels: 'Playback, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-project_issue.md b/.github/ISSUE_TEMPLATE/50-project_issue.md index ff9175354..1cf79b649 100644 --- a/.github/ISSUE_TEMPLATE/50-project_issue.md +++ b/.github/ISSUE_TEMPLATE/50-project_issue.md @@ -1,8 +1,10 @@ --- name: Project Management -about: Report an issue related to project management, including working with and organizing imported files. -title: "[PROJECT]" -labels: "Project, Triage" +about: >- + Report an issue related to project management, including working with and + organizing imported files. +title: '[PROJECT] ' +labels: 'Project, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-renderer_issue.md b/.github/ISSUE_TEMPLATE/50-renderer_issue.md index e77316402..4f6ffd0da 100644 --- a/.github/ISSUE_TEMPLATE/50-renderer_issue.md +++ b/.github/ISSUE_TEMPLATE/50-renderer_issue.md @@ -1,8 +1,10 @@ --- name: Renderer -about: Report an issue related to rendering, including corrupted frames, incorrect render results, unexpected black or white frames, etc. -title: "[RENDER]" -labels: "Renderer, Triage" +about: >- + Report an issue related to rendering, including corrupted frames, incorrect + render results, unexpected black or white frames, etc. +title: '[RENDER] ' +labels: 'Renderer, Triage' assignees: '' --- **Commit Hash** diff --git a/.github/ISSUE_TEMPLATE/50-ui_issue.md b/.github/ISSUE_TEMPLATE/50-ui_issue.md index f746024de..251a65b1e 100644 --- a/.github/ISSUE_TEMPLATE/50-ui_issue.md +++ b/.github/ISSUE_TEMPLATE/50-ui_issue.md @@ -1,8 +1,10 @@ --- name: User Interface -about: Report an issue related to general user interface usability, including behavior issues, usability issues, look and feel, etc. -title: "[UI]" -labels: "User Interface, Triage" +about: >- + Report an issue related to general user interface usability, including + behavior issues, usability issues, look and feel, etc. +title: '[UI] ' +labels: 'User Interface, Triage' assignees: '' --- **Commit Hash** From 21412c5eee41e132abd30cc6339b2b56596bcbbe Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Wed, 23 Sep 2020 14:34:12 +0200 Subject: [PATCH 07/12] github: Fix build issue templates There's a limitation to the length of frontmatter fields it seems: About is too long (maximum is 200 characters) --- .github/ISSUE_TEMPLATE/50-build_issue.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/50-build_issue.md b/.github/ISSUE_TEMPLATE/50-build_issue.md index 66e56f503..556e4cabe 100644 --- a/.github/ISSUE_TEMPLATE/50-build_issue.md +++ b/.github/ISSUE_TEMPLATE/50-build_issue.md @@ -1,9 +1,9 @@ --- name: Build/Packaging about: >- - Report an issue related to compiling or packaging (including nightly builds / - continuous integration). Note that we do not officially support custom build - configurations and may choose not to address issues involving them. + Report an issue related to compiling or packaging (including continuous + integration). Note that we do not officially support custom build + configurations and may not address issues involving them. title: '[BUILD] ' labels: 'Building/Packaging, Triage' assignees: '' From faf36708508dc40ef689ef99588e7e747f04aa23 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Wed, 23 Sep 2020 14:50:48 +0200 Subject: [PATCH 08/12] ci: Don't trigger build on certain paths Makes no sense for updates to issue templates, the funding config and readme. Also exclude docker folder, as changes will not affect the build until someone builds & pushes updated images. Do not exclude the LICENSE file however, as it gets packaged in CI runs. --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8b435f31..9a1f1f0ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,12 @@ on: push: branches: - master + paths-ignore: + - '.github/ISSUE_TEMPLATE/**' + - '.github/FUNDING.yml' + - 'docker/**' + - 'CONTRIBUTING.md' + - 'README.md' env: DOWNLOAD_TOOL: curl -fLOSs --retry 3 From 615ce8ef79df36931f3ec324d7f8f8d69242409e Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Wed, 23 Sep 2020 17:50:31 +0100 Subject: [PATCH 09/12] Fix Issue #1218 Add an error message if there is no active sequence. Selected a Sequence panel as opposed to a generic time based panel as we will only ever export a sequence. Also makes error logic slightly easier. --- app/core.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/core.cpp b/app/core.cpp index 5ba51ee45..a9c0d659f 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -355,18 +355,23 @@ void Core::DialogProjectPropertiesShow() void Core::DialogExportShow() { - TimeBasedPanel* latest_time_based = PanelManager::instance()->MostRecentlyFocused(); + SequenceViewerPanel* latest_sequence = PanelManager::instance()->MostRecentlyFocused(); - if (latest_time_based && latest_time_based->GetConnectedViewer()) { - if (latest_time_based->GetConnectedViewer()->GetLength() == 0) { + if (latest_sequence && latest_sequence->GetConnectedViewer()) { + if (latest_sequence->GetConnectedViewer()->GetLength() == 0) { QMessageBox::critical(main_window_, tr("Error"), tr("This Sequence is empty. There is nothing to export."), QMessageBox::Ok); } else { - ExportDialog ed(latest_time_based->GetConnectedViewer(), main_window_); + ExportDialog ed(latest_sequence->GetConnectedViewer(), main_window_); ed.exec(); } + } else { + QMessageBox::critical(main_window_, + tr("Error"), + tr("No valid sequence detected.\nMake sure a sequence is loaded and it has a connected Viewer node."), + QMessageBox::Ok); } } From 654370425d8fd454dca290290aeb92a6060e69a8 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 24 Sep 2020 23:56:58 +1000 Subject: [PATCH 10/12] crashpad: detect when crashpad handler is missing --- app/common/crashpadinterface.cpp | 67 +++++++++++++++++++------------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/app/common/crashpadinterface.cpp b/app/common/crashpadinterface.cpp index 393cba4c6..c65db16d0 100644 --- a/app/common/crashpadinterface.cpp +++ b/app/common/crashpadinterface.cpp @@ -71,49 +71,62 @@ bool LinuxExceptionHandler(int, siginfo_t*, ucontext_t*) bool InitializeCrashpad() { - QString exe_dir = QCoreApplication::applicationDirPath(); + QString handler_fn; + // Determine filename of handler from platform #ifdef OS_WIN - base::FilePath handler(QSTRING_TO_BASE_STRING(QDir(exe_dir).filePath(QStringLiteral("crashpad_handler.exe")))); + handler_fn = QStringLiteral("crashpad_handler.exe"); #else - // FIXME: On Linux, probably should put this in a subdir so that it doesn't conflict with - // anything else in /usr/bin - base::FilePath handler(QSTRING_TO_BASE_STRING(QDir(exe_dir).filePath(QStringLiteral("crashpad_handler")))); + handler_fn = QStringLiteral("crashpad_handler"); #endif - base::FilePath reports_dir = GenerateReportPathForCrashpad(); + // Generate absolute path + QString handler_abs_path = QDir(QCoreApplication::applicationDirPath()).filePath(handler_fn); - base::FilePath metrics_dir(QSTRING_TO_BASE_STRING(QDir(OLIVE_NAMESPACE::FileFunctions::GetTempFilePath()).filePath(QStringLiteral("metrics")))); + bool status = false; - // Metadata that will be posted to the server with the crash report map - std::map annotations; + if (QFileInfo::exists(handler_abs_path)) { + base::FilePath handler(QSTRING_TO_BASE_STRING(handler_fn)); - // Disable crashpad rate limiting so that all crashes have dmp files - std::vector arguments; - arguments.push_back("--no-rate-limit"); - arguments.push_back("--no-upload-gzip"); + base::FilePath reports_dir = GenerateReportPathForCrashpad(); - // Initialize Crashpad database - std::unique_ptr database = crashpad::CrashReportDatabase::Initialize(reports_dir); - if (database == NULL) return false; + base::FilePath metrics_dir(QSTRING_TO_BASE_STRING(QDir(OLIVE_NAMESPACE::FileFunctions::GetTempFilePath()).filePath(QStringLiteral("metrics")))); - // Disable automated crash uploads - crashpad::Settings *settings = database->GetSettings(); - if (settings == NULL) return false; - settings->SetUploadsEnabled(false); + // Metadata that will be posted to the server with the crash report map + std::map annotations; + + // Disable crashpad rate limiting so that all crashes have dmp files + std::vector arguments; + arguments.push_back("--no-rate-limit"); + arguments.push_back("--no-upload-gzip"); + + // Initialize Crashpad database + std::unique_ptr database = crashpad::CrashReportDatabase::Initialize(reports_dir); + if (database == NULL) return false; + + // Disable automated crash uploads + crashpad::Settings *settings = database->GetSettings(); + if (settings == NULL) return false; + settings->SetUploadsEnabled(false); + + // Start crash handler + client = new crashpad::CrashpadClient(); + status = client->StartHandler(handler, reports_dir, metrics_dir, + "https://olivevideoeditor.org/crashpad/report.php", + annotations, arguments, true, true); + } - // Start crash handler - client = new crashpad::CrashpadClient(); - bool status = client->StartHandler(handler, reports_dir, metrics_dir, - "https://olivevideoeditor.org/crashpad/report.php", - annotations, arguments, true, true); // Override Crashpad exception filter with our own + if (status) { #if defined(OS_WIN) - SetUnhandledExceptionFilter(Win32ExceptionHandler); + SetUnhandledExceptionFilter(Win32ExceptionHandler); #elif defined(OS_LINUX) - crashpad::CrashpadClient::SetFirstChanceExceptionHandler(LinuxExceptionHandler); + crashpad::CrashpadClient::SetFirstChanceExceptionHandler(LinuxExceptionHandler); #endif + } else { + qWarning() << "Failed to start Crashpad, automatic crash reporting will be disabled"; + } return status; } From 0a1cd0e1c0927bbbf1c710d095dd23dc0761685f Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 25 Sep 2020 00:04:23 +1000 Subject: [PATCH 11/12] ui: force full screen border on Windows Fixes #1226 Workaround for known Qt issue: https://doc.qt.io/qt-5/windows-issues.html --- app/core.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/core.cpp b/app/core.cpp index 5ba51ee45..c06123206 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -29,6 +29,9 @@ #include #include #include +#ifdef Q_OS_WINDOWS +#include +#endif #include "audio/audiomanager.h" #include "cli/clitask/clitaskdialog.h" @@ -655,12 +658,19 @@ void Core::StartGUI(bool full_screen) // Create main window and open it main_window_ = new MainWindow(); + if (full_screen) { main_window_->showFullScreen(); } else { main_window_->showMaximized(); } +#ifdef Q_OS_WINDOWS + // Workaround for Qt bug where menus don't appear in full screen mode + // See: https://doc.qt.io/qt-5/windows-issues.html + QWindowsWindowFunctions::setHasBorderInFullScreen(main_window_->windowHandle(), true); +#endif + // When a new project is opened, update the mainwindow connect(this, &Core::ProjectOpened, main_window_, &MainWindow::ProjectOpen); connect(this, &Core::ProjectClosed, main_window_, &MainWindow::ProjectClose); From 378708c9d350fe98b5bca255dc63cf7996089924 Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Thu, 24 Sep 2020 17:46:11 +0100 Subject: [PATCH 12/12] Exporter falls back to timeline if all else fails If no recent TimeBasedPanel can be found the exporter defaults to the first timeline. If this also fails an error is shown. --- app/core.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/core.cpp b/app/core.cpp index a9c0d659f..432fb10bb 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -355,22 +355,29 @@ void Core::DialogProjectPropertiesShow() void Core::DialogExportShow() { - SequenceViewerPanel* latest_sequence = PanelManager::instance()->MostRecentlyFocused(); + // First try the most recently focused time based window + TimeBasedPanel* time_panel = PanelManager::instance()->MostRecentlyFocused(); - if (latest_sequence && latest_sequence->GetConnectedViewer()) { - if (latest_sequence->GetConnectedViewer()->GetLength() == 0) { + // If that fails try defaulting to the first timeline (i.e. if a project has just been loaded). + if (!time_panel->GetConnectedViewer()) { + // Safe to assume there will always be one timeline. + time_panel = PanelManager::instance()->GetPanelsOfType().first(); + } + + if (time_panel && time_panel->GetConnectedViewer()) { + if (time_panel->GetConnectedViewer()->GetLength() == 0) { QMessageBox::critical(main_window_, tr("Error"), tr("This Sequence is empty. There is nothing to export."), QMessageBox::Ok); } else { - ExportDialog ed(latest_sequence->GetConnectedViewer(), main_window_); + ExportDialog ed(time_panel->GetConnectedViewer(), main_window_); ed.exec(); } } else { QMessageBox::critical(main_window_, tr("Error"), - tr("No valid sequence detected.\nMake sure a sequence is loaded and it has a connected Viewer node."), + tr("No valid sequence detected.\n\nMake sure a sequence is loaded and it has a connected Viewer node."), QMessageBox::Ok); } }