[wireguard-kmod] Now in mainstream 5.6 kernel
by Robert-André Mauchin
commit c5fbe5c0bbbe5d73be4c89009e08998e12af35d2
Author: Robert-André Mauchin <zebob.m(a)gmail.com>
Date: Wed Mar 25 17:30:02 2020 +0100
Now in mainstream 5.6 kernel
.gitignore | 18 --------
dead.package | 1 +
sources | 1 -
wireguard-kmod.spec | 130 ----------------------------------------------------
4 files changed, 1 insertion(+), 149 deletions(-)
---
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..7a92327
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+Now in mainstream 5.6 kernel
4 years, 8 months
[qt5-qtwebengine-freeworld] sync patches from fedora
by Rex Dieter
commit 638f368adf4165ffa456a3b44cd6c46b1a5b27cf
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Wed Mar 25 10:19:05 2020 -0500
sync patches from fedora
qt5-qtwebengine-freeworld.spec | 17 +-
...d-clock_nanosleep-in-Linux-sandbox-manual.patch | 129 +++++
...ne-everywhere-5.13.2-fix-chromium-headers.patch | 578 +++++++++++++++++++++
3 files changed, 723 insertions(+), 1 deletion(-)
---
diff --git a/qt5-qtwebengine-freeworld.spec b/qt5-qtwebengine-freeworld.spec
index 8f7e23d..460e68c 100644
--- a/qt5-qtwebengine-freeworld.spec
+++ b/qt5-qtwebengine-freeworld.spec
@@ -42,7 +42,7 @@
Summary: Qt5 - QtWebEngine components (freeworld version)
Name: qt5-qtwebengine-freeworld
Version: 5.13.2
-Release: 2%{?dist}
+Release: 3%{?dist}
%global major_minor %(echo %{version} | cut -d. -f-2)
%global major %(echo %{version} | cut -d. -f1)
@@ -82,6 +82,15 @@ Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
Patch25: qtwebengine-everywhere-5.13.2-missing-semicolon-in-blink.patch
# Use Python2
Patch26: qtwebengine-everywhere-5.13.2-use-python2.patch
+# Fix missing include in chromium
+Patch27: qtwebengine-everywhere-5.13.2-fix-chromium-headers.patch
+# Fix for clock_nanosleep
+# https://bugreports.qt.io/browse/QTBUG-81313
+# https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/292352
+# Qt: https://codereview.qt-project.org/gitweb?p=qt/qtwebengine-chromium.git;a=...
+# Chromium: https://chromium.googlesource.com/chromium/src/+/54407b422a9cbf775a68c1d5...
+# Didn't apply cleanly, manually ported
+Patch28: qtwebengine-everywhere-5.13.2-allow-restricted-clock_nanosleep-in-Linux-sandbox-manual.patch
## Upstream patches:
# qtwebengine-chromium
@@ -342,6 +351,9 @@ popd
%patch24 -p1 -b .aarch64-new-stat
%patch25 -p1 -b .missing-semicolon-in-blink
%patch26 -p1 -b .use-python2
+%patch27 -p1 -b .fix-chromium
+
+%patch28 -p0 -b .allow-clock_nanosleep
# the xkbcommon config/feature was renamed in 5.12, so need to adjust QT_CONFIG references
# when building on older Qt releases
@@ -434,6 +446,9 @@ echo "%{_libdir}/%{name}" \
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
%changelog
+* Wed Mar 25 2020 Rex Dieter <rdieter(a)fedoraproject.org> - 5.13.2-3
+- sync patches from fedora
+
* Wed Feb 05 2020 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 5.13.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/qtwebengine-everywhere-5.13.2-allow-restricted-clock_nanosleep-in-Linux-sandbox-manual.patch b/qtwebengine-everywhere-5.13.2-allow-restricted-clock_nanosleep-in-Linux-sandbox-manual.patch
new file mode 100644
index 0000000..2cc4e0a
--- /dev/null
+++ b/qtwebengine-everywhere-5.13.2-allow-restricted-clock_nanosleep-in-Linux-sandbox-manual.patch
@@ -0,0 +1,129 @@
+diff -ur ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+--- ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2020-03-25 12:57:05.214021490 +0000
++++ ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2020-03-25 12:58:35.813396054 +0000
+@@ -137,7 +137,7 @@
+ return Allow();
+ #endif
+
+- if (sysno == __NR_clock_gettime) {
++ if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) {
+ return RestrictClockID();
+ }
+
+diff -ur ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
+--- ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc 2020-03-25 12:57:05.214021490 +0000
++++ ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc 2020-03-25 13:01:05.971702078 +0000
+@@ -393,6 +393,18 @@
+ syscall(SYS_clock_gettime, CLOCK_MONOTONIC_RAW, &ts);
+ }
+
++BPF_DEATH_TEST_C(BaselinePolicy,
++ ClockNanosleepWithDisallowedClockCrashes,
++ DEATH_SEGV_MESSAGE(GetErrorMessageContentForTests()),
++ BaselinePolicy) {
++ struct timespec ts;
++ struct timespec out_ts;
++ ts.tv_sec = 0;
++ ts.tv_nsec = 0;
++ syscall(SYS_clock_nanosleep, (~0) | CLOCKFD, 0, &ts, &out_ts);
++}
++
++
+ #if !defined(GRND_RANDOM)
+ #define GRND_RANDOM 2
+ #endif
+diff -ur ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
+--- ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h 2020-03-25 12:57:05.213021508 +0000
++++ ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h 2020-03-25 13:03:32.058081155 +0000
+@@ -86,12 +86,13 @@
+ // process).
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictGetrusage();
+
+-// Restrict |clk_id| for clock_getres(), clock_gettime() and clock_settime().
+-// We allow accessing only CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID,
+-// CLOCK_REALTIME, and CLOCK_THREAD_CPUTIME_ID. In particular, this disallows
+-// access to arbitrary per-{process,thread} CPU-time clock IDs (such as those
+-// returned by {clock,pthread}_getcpuclockid), which can leak information
+-// about the state of the host OS.
++// Restrict |clk_id| for clock_getres(), clock_gettime(), clock_settime(), and
++// clock_nanosleep(). We allow accessing only CLOCK_BOOTTIME,
++// CLOCK_MONOTONIC{,_RAW,_COARSE}, CLOCK_PROCESS_CPUTIME_ID,
++// CLOCK_REALTIME{,_COARSE}, and CLOCK_THREAD_CPUTIME_ID. In particular, on
++// non-Android platforms this disallows access to arbitrary per-{process,thread}
++// CPU-time clock IDs (such as those returned by {clock,pthread}_getcpuclockid),
++// which can leak information about the state of the host OS.
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictClockID();
+
+ // Restrict the flags argument to getrandom() to allow only no flags, or
+diff -ur ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
+--- ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc 2020-03-25 12:57:05.213021508 +0000
++++ ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc 2020-03-25 13:06:05.643325692 +0000
+@@ -59,6 +59,7 @@
+ switch (sysno) {
+ case __NR_clock_gettime:
+ case __NR_clock_getres:
++ case __NR_clock_nanosleep:
+ return RestrictClockID();
+ default:
+ return Allow();
+@@ -99,6 +100,25 @@
+ #endif
+ }
+
++void CheckClockNanosleep(clockid_t clockid) {
++ struct timespec ts;
++ struct timespec out_ts;
++ ts.tv_sec = 0;
++ ts.tv_nsec = 0;
++ clock_nanosleep(clockid, 0, &ts, &out_ts);
++}
++
++BPF_TEST_C(ParameterRestrictions,
++ clock_nanosleep_allowed,
++ RestrictClockIdPolicy) {
++ CheckClockNanosleep(CLOCK_MONOTONIC);
++ CheckClockNanosleep(CLOCK_MONOTONIC_COARSE);
++ CheckClockNanosleep(CLOCK_MONOTONIC_RAW);
++ CheckClockNanosleep(CLOCK_BOOTTIME);
++ CheckClockNanosleep(CLOCK_REALTIME);
++ CheckClockNanosleep(CLOCK_REALTIME_COARSE);
++}
++
+ BPF_DEATH_TEST_C(ParameterRestrictions,
+ clock_gettime_crash_monotonic_raw,
+ DEATH_SEGV_MESSAGE(sandbox::GetErrorMessageContentForTests()),
+@@ -107,6 +127,17 @@
+ syscall(SYS_clock_gettime, CLOCK_MONOTONIC_RAW, &ts);
+ }
+
++BPF_DEATH_TEST_C(ParameterRestrictions,
++ clock_nanosleep_crash_clock_fd,
++ DEATH_SEGV_MESSAGE(sandbox::GetErrorMessageContentForTests()),
++ RestrictClockIdPolicy) {
++ struct timespec ts;
++ struct timespec out_ts;
++ ts.tv_sec = 0;
++ ts.tv_nsec = 0;
++ syscall(SYS_clock_nanosleep, (~0) | CLOCKFD, 0, &ts, &out_ts);
++}
++
+ #if !defined(OS_ANDROID)
+ BPF_DEATH_TEST_C(ParameterRestrictions,
+ clock_gettime_crash_cpu_clock,
+diff -ur ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+--- ../qtwebengine-everywhere-src-5.13.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc 2020-03-25 12:57:05.213021508 +0000
++++ ./src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc 2020-03-25 13:06:50.881514077 +0000
+@@ -35,9 +35,10 @@
+ return true;
+ case __NR_adjtimex: // Privileged.
+ case __NR_clock_adjtime: // Privileged.
+- case __NR_clock_getres: // Could be allowed.
+- case __NR_clock_gettime:
+- case __NR_clock_nanosleep: // Could be allowed.
++ case __NR_clock_getres: // Allowed only on Android with parameters
++ // filtered by RestrictClokID().
++ case __NR_clock_gettime: // Parameters filtered by RestrictClockID().
++ case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID().
+ case __NR_clock_settime: // Privileged.
+ #if defined(__i386__) || \
+ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
diff --git a/qtwebengine-everywhere-5.13.2-fix-chromium-headers.patch b/qtwebengine-everywhere-5.13.2-fix-chromium-headers.patch
new file mode 100644
index 0000000..d14f1e0
--- /dev/null
+++ b/qtwebengine-everywhere-5.13.2-fix-chromium-headers.patch
@@ -0,0 +1,578 @@
+From 033c7aa2da1bc78347765d60c15843ece02ef4d8 Mon Sep 17 00:00:00 2001
+From: Troy Dawson <tdawson(a)redhat.com>
+Date: Tue, 11 Feb 2020 15:43:30 -0800
+Subject: [PATCH] fix chromium headers
+
+---
+ .../chromium/cc/base/list_container_helper.cc | 250 -----------------
+ .../chromium/cc/base/list_container_helper.h | 254 ++++++++++++++++++
+ .../aec3/clockdrift_detector.h | 1 +
+ .../modules/video_coding/decoding_state.h | 1 +
+ 4 files changed, 256 insertions(+), 250 deletions(-)
+
+diff --git a/src/3rdparty/chromium/cc/base/list_container_helper.cc b/src/3rdparty/chromium/cc/base/list_container_helper.cc
+index 380ad3dd1..c4a9245d9 100644
+--- a/src/3rdparty/chromium/cc/base/list_container_helper.cc
++++ b/src/3rdparty/chromium/cc/base/list_container_helper.cc
+@@ -13,258 +13,8 @@
+ #include "base/macros.h"
+ #include "base/memory/aligned_memory.h"
+
+-namespace {
+-const size_t kDefaultNumElementTypesToReserve = 32;
+-} // namespace
+-
+ namespace cc {
+
+-// CharAllocator
+-////////////////////////////////////////////////////
+-// This class deals only with char* and void*. It does allocation and passing
+-// out raw pointers, as well as memory deallocation when being destroyed.
+-class ListContainerHelper::CharAllocator {
+- public:
+- // CharAllocator::InnerList
+- /////////////////////////////////////////////
+- // This class holds the raw memory chunk, as well as information about its
+- // size and availability.
+- struct InnerList {
+- std::unique_ptr<char[], base::AlignedFreeDeleter> data;
+- // The number of elements in total the memory can hold. The difference
+- // between capacity and size is the how many more elements this list can
+- // hold.
+- size_t capacity;
+- // The number of elements have been put into this list.
+- size_t size;
+- // The size of each element is in bytes. This is used to move from between
+- // elements' memory locations.
+- size_t step;
+-
+- InnerList() : capacity(0), size(0), step(0) {}
+-
+- void Erase(char* position) {
+- // Confident that destructor is called by caller of this function. Since
+- // CharAllocator does not handle construction after
+- // allocation, it doesn't handle desctrution before deallocation.
+- DCHECK_LE(position, LastElement());
+- DCHECK_GE(position, Begin());
+- char* start = position + step;
+- std::copy(start, End(), position);
+-
+- --size;
+- // Decrease capacity to avoid creating not full not last InnerList.
+- --capacity;
+- }
+-
+- void InsertBefore(size_t alignment, char** position, size_t count) {
+- DCHECK_LE(*position, LastElement() + step);
+- DCHECK_GE(*position, Begin());
+-
+- // Adjust the size and capacity
+- size_t old_size = size;
+- size += count;
+- capacity = size;
+-
+- // Allocate the new data and update the iterator's pointer.
+- std::unique_ptr<char[], base::AlignedFreeDeleter> new_data(
+- static_cast<char*>(base::AlignedAlloc(size * step, alignment)));
+- size_t position_offset = *position - Begin();
+- *position = new_data.get() + position_offset;
+-
+- // Copy the data before the inserted segment
+- memcpy(new_data.get(), data.get(), position_offset);
+- // Copy the data after the inserted segment.
+- memcpy(new_data.get() + position_offset + count * step,
+- data.get() + position_offset, old_size * step - position_offset);
+- data = std::move(new_data);
+- }
+-
+- bool IsEmpty() const { return !size; }
+- bool IsFull() { return capacity == size; }
+- size_t NumElementsAvailable() const { return capacity - size; }
+-
+- void* AddElement() {
+- DCHECK_LT(size, capacity);
+- ++size;
+- return LastElement();
+- }
+-
+- void RemoveLast() {
+- DCHECK(!IsEmpty());
+- --size;
+- }
+-
+- char* Begin() const { return data.get(); }
+- char* End() const { return data.get() + size * step; }
+- char* LastElement() const { return data.get() + (size - 1) * step; }
+- char* ElementAt(size_t index) const { return data.get() + index * step; }
+-
+- private:
+- DISALLOW_COPY_AND_ASSIGN(InnerList);
+- };
+-
+- CharAllocator(size_t alignment, size_t element_size, size_t element_count)
+- // base::AlignedAlloc does not accept alignment less than sizeof(void*).
+- : alignment_(std::max(sizeof(void*), alignment)),
+- element_size_(element_size),
+- size_(0),
+- last_list_index_(0),
+- last_list_(nullptr) {
+- // If this fails, then alignment of elements after the first could be wrong,
+- // and we need to pad sizes to fix that.
+- DCHECK_EQ(element_size % alignment, 0u);
+- AllocateNewList(element_count > 0 ? element_count
+- : kDefaultNumElementTypesToReserve);
+- last_list_ = storage_[last_list_index_].get();
+- }
+-
+- ~CharAllocator() = default;
+-
+- void* Allocate() {
+- if (last_list_->IsFull()) {
+- // Only allocate a new list if there isn't a spare one still there from
+- // previous usage.
+- if (last_list_index_ + 1 >= storage_.size())
+- AllocateNewList(last_list_->capacity * 2);
+-
+- ++last_list_index_;
+- last_list_ = storage_[last_list_index_].get();
+- }
+-
+- ++size_;
+- return last_list_->AddElement();
+- }
+-
+- size_t alignment() const { return alignment_; }
+- size_t element_size() const { return element_size_; }
+- size_t list_count() const { return storage_.size(); }
+- size_t size() const { return size_; }
+- bool IsEmpty() const { return size() == 0; }
+-
+- size_t Capacity() const {
+- size_t capacity_sum = 0;
+- for (const auto& inner_list : storage_)
+- capacity_sum += inner_list->capacity;
+- return capacity_sum;
+- }
+-
+- void Clear() {
+- // Remove all except for the first InnerList.
+- DCHECK(!storage_.empty());
+- storage_.erase(storage_.begin() + 1, storage_.end());
+- last_list_index_ = 0;
+- last_list_ = storage_[0].get();
+- last_list_->size = 0;
+- size_ = 0;
+- }
+-
+- void RemoveLast() {
+- DCHECK(!IsEmpty());
+- last_list_->RemoveLast();
+- if (last_list_->IsEmpty() && last_list_index_ > 0) {
+- --last_list_index_;
+- last_list_ = storage_[last_list_index_].get();
+-
+- // If there are now two empty inner lists, free one of them.
+- if (last_list_index_ + 2 < storage_.size())
+- storage_.pop_back();
+- }
+- --size_;
+- }
+-
+- void Erase(PositionInCharAllocator* position) {
+- DCHECK_EQ(this, position->ptr_to_container);
+-
+- // Update |position| to point to the element after the erased element.
+- InnerList* list = storage_[position->vector_index].get();
+- char* item_iterator = position->item_iterator;
+- if (item_iterator == list->LastElement())
+- position->Increment();
+-
+- list->Erase(item_iterator);
+- // TODO(weiliangc): Free the InnerList if it is empty.
+- --size_;
+- }
+-
+- void InsertBefore(ListContainerHelper::Iterator* position, size_t count) {
+- if (!count)
+- return;
+-
+- // If |position| is End(), then append |count| elements at the end. This
+- // will happen to not invalidate any iterators or memory.
+- if (!position->item_iterator) {
+- // Set |position| to be the first inserted element.
+- Allocate();
+- position->vector_index = storage_.size() - 1;
+- position->item_iterator = storage_[position->vector_index]->LastElement();
+- // Allocate the rest.
+- for (size_t i = 1; i < count; ++i)
+- Allocate();
+- } else {
+- storage_[position->vector_index]->InsertBefore(
+- alignment_, &position->item_iterator, count);
+- size_ += count;
+- }
+- }
+-
+- InnerList* InnerListById(size_t id) const {
+- DCHECK_LT(id, storage_.size());
+- return storage_[id].get();
+- }
+-
+- size_t FirstInnerListId() const {
+- // |size_| > 0 means that at least one vector in |storage_| will be
+- // non-empty.
+- DCHECK_GT(size_, 0u);
+- size_t id = 0;
+- while (storage_[id]->size == 0)
+- ++id;
+- return id;
+- }
+-
+- size_t LastInnerListId() const {
+- // |size_| > 0 means that at least one vector in |storage_| will be
+- // non-empty.
+- DCHECK_GT(size_, 0u);
+- size_t id = storage_.size() - 1;
+- while (storage_[id]->size == 0)
+- --id;
+- return id;
+- }
+-
+- size_t NumAvailableElementsInLastList() const {
+- return last_list_->NumElementsAvailable();
+- }
+-
+- private:
+- void AllocateNewList(size_t list_size) {
+- std::unique_ptr<InnerList> new_list(new InnerList);
+- new_list->capacity = list_size;
+- new_list->size = 0;
+- new_list->step = element_size_;
+- new_list->data.reset(static_cast<char*>(
+- base::AlignedAlloc(list_size * element_size_, alignment_)));
+- storage_.push_back(std::move(new_list));
+- }
+-
+- std::vector<std::unique_ptr<InnerList>> storage_;
+- const size_t alignment_;
+- const size_t element_size_;
+-
+- // The number of elements in the list.
+- size_t size_;
+-
+- // The index of the last list to have had elements added to it, or the only
+- // list if the container has not had elements added since being cleared.
+- size_t last_list_index_;
+-
+- // This is equivalent to |storage_[last_list_index_]|.
+- InnerList* last_list_;
+-
+- DISALLOW_COPY_AND_ASSIGN(CharAllocator);
+-};
+-
+ // PositionInCharAllocator
+ //////////////////////////////////////////////////////
+ ListContainerHelper::PositionInCharAllocator::PositionInCharAllocator(
+diff --git a/src/3rdparty/chromium/cc/base/list_container_helper.h b/src/3rdparty/chromium/cc/base/list_container_helper.h
+index c79cf1f18..a44ecb4de 100644
+--- a/src/3rdparty/chromium/cc/base/list_container_helper.h
++++ b/src/3rdparty/chromium/cc/base/list_container_helper.h
+@@ -8,10 +8,18 @@
+ #include <stddef.h>
+
+ #include <memory>
++#include <algorithm>
++#include <vector>
+
++#include "base/logging.h"
+ #include "base/macros.h"
++#include "base/memory/aligned_memory.h"
+ #include "cc/base/base_export.h"
+
++namespace {
++const size_t kDefaultNumElementTypesToReserve = 32;
++} // namespace
++
+ namespace cc {
+
+ // Helper class for ListContainer non-templated logic. All methods are private,
+@@ -174,6 +182,252 @@ class CC_BASE_EXPORT ListContainerHelper final {
+ DISALLOW_COPY_AND_ASSIGN(ListContainerHelper);
+ };
+
++// CharAllocator
++////////////////////////////////////////////////////
++// This class deals only with char* and void*. It does allocation and passing
++// out raw pointers, as well as memory deallocation when being destroyed.
++class ListContainerHelper::CharAllocator {
++ public:
++ // CharAllocator::InnerList
++ /////////////////////////////////////////////
++ // This class holds the raw memory chunk, as well as information about its
++ // size and availability.
++ struct InnerList {
++ std::unique_ptr<char[], base::AlignedFreeDeleter> data;
++ // The number of elements in total the memory can hold. The difference
++ // between capacity and size is the how many more elements this list can
++ // hold.
++ size_t capacity;
++ // The number of elements have been put into this list.
++ size_t size;
++ // The size of each element is in bytes. This is used to move from between
++ // elements' memory locations.
++ size_t step;
++
++ InnerList() : capacity(0), size(0), step(0) {}
++
++ void Erase(char* position) {
++ // Confident that destructor is called by caller of this function. Since
++ // CharAllocator does not handle construction after
++ // allocation, it doesn't handle desctrution before deallocation.
++ DCHECK_LE(position, LastElement());
++ DCHECK_GE(position, Begin());
++ char* start = position + step;
++ std::copy(start, End(), position);
++
++ --size;
++ // Decrease capacity to avoid creating not full not last InnerList.
++ --capacity;
++ }
++
++ void InsertBefore(size_t alignment, char** position, size_t count) {
++ DCHECK_LE(*position, LastElement() + step);
++ DCHECK_GE(*position, Begin());
++
++ // Adjust the size and capacity
++ size_t old_size = size;
++ size += count;
++ capacity = size;
++
++ // Allocate the new data and update the iterator's pointer.
++ std::unique_ptr<char[], base::AlignedFreeDeleter> new_data(
++ static_cast<char*>(base::AlignedAlloc(size * step, alignment)));
++ size_t position_offset = *position - Begin();
++ *position = new_data.get() + position_offset;
++
++ // Copy the data before the inserted segment
++ memcpy(new_data.get(), data.get(), position_offset);
++ // Copy the data after the inserted segment.
++ memcpy(new_data.get() + position_offset + count * step,
++ data.get() + position_offset, old_size * step - position_offset);
++ data = std::move(new_data);
++ }
++
++ bool IsEmpty() const { return !size; }
++ bool IsFull() { return capacity == size; }
++ size_t NumElementsAvailable() const { return capacity - size; }
++
++ void* AddElement() {
++ DCHECK_LT(size, capacity);
++ ++size;
++ return LastElement();
++ }
++
++ void RemoveLast() {
++ DCHECK(!IsEmpty());
++ --size;
++ }
++
++ char* Begin() const { return data.get(); }
++ char* End() const { return data.get() + size * step; }
++ char* LastElement() const { return data.get() + (size - 1) * step; }
++ char* ElementAt(size_t index) const { return data.get() + index * step; }
++
++ private:
++ DISALLOW_COPY_AND_ASSIGN(InnerList);
++ };
++
++ CharAllocator(size_t alignment, size_t element_size, size_t element_count)
++ // base::AlignedAlloc does not accept alignment less than sizeof(void*).
++ : alignment_(std::max(sizeof(void*), alignment)),
++ element_size_(element_size),
++ size_(0),
++ last_list_index_(0),
++ last_list_(nullptr) {
++ // If this fails, then alignment of elements after the first could be wrong,
++ // and we need to pad sizes to fix that.
++ DCHECK_EQ(element_size % alignment, 0u);
++ AllocateNewList(element_count > 0 ? element_count
++ : kDefaultNumElementTypesToReserve);
++ last_list_ = storage_[last_list_index_].get();
++ }
++
++ ~CharAllocator() = default;
++
++ void* Allocate() {
++ if (last_list_->IsFull()) {
++ // Only allocate a new list if there isn't a spare one still there from
++ // previous usage.
++ if (last_list_index_ + 1 >= storage_.size())
++ AllocateNewList(last_list_->capacity * 2);
++
++ ++last_list_index_;
++ last_list_ = storage_[last_list_index_].get();
++ }
++
++ ++size_;
++ return last_list_->AddElement();
++ }
++
++ size_t alignment() const { return alignment_; }
++ size_t element_size() const { return element_size_; }
++ size_t list_count() const { return storage_.size(); }
++ size_t size() const { return size_; }
++ bool IsEmpty() const { return size() == 0; }
++
++ size_t Capacity() const {
++ size_t capacity_sum = 0;
++ for (const auto& inner_list : storage_)
++ capacity_sum += inner_list->capacity;
++ return capacity_sum;
++ }
++
++ void Clear() {
++ // Remove all except for the first InnerList.
++ DCHECK(!storage_.empty());
++ storage_.erase(storage_.begin() + 1, storage_.end());
++ last_list_index_ = 0;
++ last_list_ = storage_[0].get();
++ last_list_->size = 0;
++ size_ = 0;
++ }
++
++ void RemoveLast() {
++ DCHECK(!IsEmpty());
++ last_list_->RemoveLast();
++ if (last_list_->IsEmpty() && last_list_index_ > 0) {
++ --last_list_index_;
++ last_list_ = storage_[last_list_index_].get();
++
++ // If there are now two empty inner lists, free one of them.
++ if (last_list_index_ + 2 < storage_.size())
++ storage_.pop_back();
++ }
++ --size_;
++ }
++
++ void Erase(PositionInCharAllocator* position) {
++ DCHECK_EQ(this, position->ptr_to_container);
++
++ // Update |position| to point to the element after the erased element.
++ InnerList* list = storage_[position->vector_index].get();
++ char* item_iterator = position->item_iterator;
++ if (item_iterator == list->LastElement())
++ position->Increment();
++
++ list->Erase(item_iterator);
++ // TODO(weiliangc): Free the InnerList if it is empty.
++ --size_;
++ }
++
++ void InsertBefore(ListContainerHelper::Iterator* position, size_t count) {
++ if (!count)
++ return;
++
++ // If |position| is End(), then append |count| elements at the end. This
++ // will happen to not invalidate any iterators or memory.
++ if (!position->item_iterator) {
++ // Set |position| to be the first inserted element.
++ Allocate();
++ position->vector_index = storage_.size() - 1;
++ position->item_iterator = storage_[position->vector_index]->LastElement();
++ // Allocate the rest.
++ for (size_t i = 1; i < count; ++i)
++ Allocate();
++ } else {
++ storage_[position->vector_index]->InsertBefore(
++ alignment_, &position->item_iterator, count);
++ size_ += count;
++ }
++ }
++
++ InnerList* InnerListById(size_t id) const {
++ DCHECK_LT(id, storage_.size());
++ return storage_[id].get();
++ }
++
++ size_t FirstInnerListId() const {
++ // |size_| > 0 means that at least one vector in |storage_| will be
++ // non-empty.
++ DCHECK_GT(size_, 0u);
++ size_t id = 0;
++ while (storage_[id]->size == 0)
++ ++id;
++ return id;
++ }
++
++ size_t LastInnerListId() const {
++ // |size_| > 0 means that at least one vector in |storage_| will be
++ // non-empty.
++ DCHECK_GT(size_, 0u);
++ size_t id = storage_.size() - 1;
++ while (storage_[id]->size == 0)
++ --id;
++ return id;
++ }
++
++ size_t NumAvailableElementsInLastList() const {
++ return last_list_->NumElementsAvailable();
++ }
++
++ private:
++ void AllocateNewList(size_t list_size) {
++ std::unique_ptr<InnerList> new_list(new InnerList);
++ new_list->capacity = list_size;
++ new_list->size = 0;
++ new_list->step = element_size_;
++ new_list->data.reset(static_cast<char*>(
++ base::AlignedAlloc(list_size * element_size_, alignment_)));
++ storage_.push_back(std::move(new_list));
++ }
++
++ std::vector<std::unique_ptr<InnerList>> storage_;
++ const size_t alignment_;
++ const size_t element_size_;
++
++ // The number of elements in the list.
++ size_t size_;
++
++ // The index of the last list to have had elements added to it, or the only
++ // list if the container has not had elements added since being cleared.
++ size_t last_list_index_;
++
++ // This is equivalent to |storage_[last_list_index_]|.
++ InnerList* last_list_;
++
++ DISALLOW_COPY_AND_ASSIGN(CharAllocator);
++};
++
+ } // namespace cc
+
+ #endif // CC_BASE_LIST_CONTAINER_HELPER_H_
+diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+index 22528c948..69e624e8b 100644
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+
+ #include <array>
++#include <cstddef>
+
+ namespace webrtc {
+
+diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
+index b87fb2d03..ec972949d 100644
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_VIDEO_CODING_DECODING_STATE_H_
+ #define MODULES_VIDEO_CODING_DECODING_STATE_H_
+
++#include <cstdint>
+ #include <map>
+ #include <set>
+ #include <vector>
+--
+2.24.1
+
4 years, 8 months
[gnuboy] Dropped svgalib dependency (BZ #5567) Clean up spec file
by Andrea Musuruane
commit 107d63e440c7d7d8b18d50f6fcca153a0a47d5e6
Author: Andrea Musuruane <musuruan(a)gmail.com>
Date: Tue Mar 24 16:59:07 2020 +0100
Dropped svgalib dependency (BZ #5567)
Clean up spec file
gnuboy.spec | 59 ++++++++++++-----------------------------------------------
1 file changed, 12 insertions(+), 47 deletions(-)
---
diff --git a/gnuboy.spec b/gnuboy.spec
index 8fca2bb..e2206f4 100644
--- a/gnuboy.spec
+++ b/gnuboy.spec
@@ -1,21 +1,16 @@
Summary: Nintendo GameBoy Color emulator
Name: gnuboy
Version: 1.0.3
-Release: 24%{?dist}
+Release: 25%{?dist}
License: GPLv2
-Group: Applications/Emulators
URL: http://brightrain.aerifal.cx/~laguna/
Source: http://brightrain.aerifal.cx/~laguna/src/%{name}-%{version}.tar.gz
Patch0: gnuboy-1.0.3-s64.patch
Patch1: gnuboy-1.0.3-xgnuboy.patch
Patch2: gnuboy-1.0.3-manpages.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: SDL-devel >= 1.2.0
BuildRequires: libXt-devel
BuildRequires: gcc
-%ifarch %{ix86} x86_64
-BuildRequires: svgalib-devel
-%endif
%package sdl
Summary: Nintendo GameBoy Color emulator (SDL version)
@@ -31,10 +26,6 @@ Group: Applications/Emulators
Summary: Nintendo GameBoy Color emulator (frame buffer version)
Group: Applications/Emulators
-%package svgalib
-Summary: Nintendo GameBoy Color emulator (svgalib version)
-Group: Applications/Emulators
-
%description
gnuboy (all lowercase) is a portable program for emulating the Nintendo
GameBoy Color software platform. gnuboy is Free Software, distributed
@@ -69,14 +60,6 @@ everyone's enjoyment.
This is the frame buffer version.
-%description svgalib
-gnuboy (all lowercase) is a portable program for emulating the Nintendo
-GameBoy Color software platform. gnuboy is Free Software, distributed
-under the terms of the GNU General Public License. Our goal is to provide
-a great emulator that runs on many platforms and is accessible for
-everyone's enjoyment.
-
-This is the svgalib version.
%prep
%setup -q
@@ -87,64 +70,46 @@ This is the svgalib version.
%patch2 -p1
%build
-%ifarch %{ix86} x86_64
-%configure --disable-arch --disable-optimize --disable-asm \
- --with-sdl --with-x --with-fb --with-svgalib
-%else
%configure --disable-arch --disable-optimize --disable-asm \
--with-sdl --with-x --with-fb
-%endif
-make %{?_smp_mflags}
+%make_build
%install
-rm -rf %{buildroot}
%makeinstall
#install man pages
install -d %{buildroot}%_mandir/man1
install -m 644 sdlgnuboy.1 %{buildroot}%{_mandir}/man1
install -m 644 xgnuboy.1 %{buildroot}%{_mandir}/man1
-%ifarch %{ix86} x86_64
-install -m 644 sgnuboy.1 %{buildroot}%{_mandir}/man1
-%endif
-
-%clean
-rm -rf %{buildroot}
%files sdl
-%defattr(-, root, root)
%{_bindir}/sdlgnuboy
%{_mandir}/man1/sdlgnuboy.1*
-%doc COPYING README
+%license COPYING
+%doc README
%doc docs/{CHANGES,CONFIG,CREDITS,FAQ,LIBERTY,README.old,WHATSNEW}
%doc etc/*.rc
%files x
-%defattr(-, root, root)
%{_bindir}/xgnuboy
%{_mandir}/man1/xgnuboy.1*
-%doc COPYING README
+%license COPYING
+%doc README
%doc docs/{CHANGES,CONFIG,CREDITS,FAQ,LIBERTY,README.old,WHATSNEW}
%doc etc/*.rc
%files fb
-%defattr(-, root, root)
%{_bindir}/fbgnuboy
-%doc COPYING README
+%license COPYING
+%doc README
%doc docs/{CHANGES,CONFIG,CREDITS,FAQ,LIBERTY,README.old,WHATSNEW}
%doc etc/*.rc
-%ifarch %{ix86} x86_64
-%files svgalib
-%defattr(-, root, root)
-%{_bindir}/sgnuboy
-%{_mandir}/man1/sgnuboy.1*
-%doc COPYING README
-%doc docs/{CHANGES,CONFIG,CREDITS,FAQ,LIBERTY,README.old,WHATSNEW}
-%doc etc/*.rc
-%endif
-
%changelog
+* Tue Mar 24 2020 Andrea Musuruane <musuruan(a)gmail.com> - 1.0.3-25
+- Dropped svgalib dependency (BZ #5567)
+- Clean up spec file
+
* Tue Feb 04 2020 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 1.0.3-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
4 years, 8 months
[mythtv: 2/2] Update to v31.0. Remove/Obsolete mythgallery package as it is no longer. Remove/Obsolete mythnetvisi
by Richard Shaw
commit 3fb79d26af57e638d4615fa8d097ff1b953ef705
Merge: fad2e6e a9f768b
Author: Richard Shaw <hobbes1069(a)gmail.com>
Date: Tue Mar 24 10:36:56 2020 -0500
Update to v31.0.
Remove/Obsolete mythgallery package as it is no longer.
Remove/Obsolete mythnetvision as it is buggy.
mythtv.spec | 6 ++++++
1 file changed, 6 insertions(+)
---
diff --cc mythtv.spec
index de3c596,e2e922a..1567208
--- a/mythtv.spec
+++ b/mythtv.spec
@@@ -1396,11 -1455,12 +1396,17 @@@ exit
%changelog
+* Mon Mar 23 2020 Richard Shaw <hobbes1069(a)gmail.com> - 31.0-1
+- Update to v31.0.
+- Remove/Obsolete mythgallery package as it is no longer.
+- Remove/Obsolete mythnetvision as it is buggy.
+
+ * Sun Feb 23 2020 RPM Fusion Release Engineering <leigh123linux(a)googlemail.com> - 30.0-17.20191226gita27754ae7f
+ - Rebuild for x265
+
+ * Wed Feb 05 2020 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 30.0-16.20191226gita27754ae7f
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
* Thu Dec 26 2019 Richard Shaw <hobbes1069(a)gmail.com> - 30.0-15.20191226gita27754ae7f
- Update to latest v30 fixes.
- Clean up spec file and remove sysvinit sources.
4 years, 8 months
[mythtv: 1/2] Update to v31.0. Remove/Obsolete mythgallery package as it is no longer. Remove/Obsolete mythnetvisi
by Richard Shaw
commit fad2e6ebeb6f3096277b18fe17fc9893e0556c89
Author: Richard Shaw <hobbes1069(a)gmail.com>
Date: Tue Mar 24 10:34:41 2020 -0500
Update to v31.0.
Remove/Obsolete mythgallery package as it is no longer.
Remove/Obsolete mythnetvision as it is buggy.
.gitignore | 1 +
mythtv-ChangeLog | 845 -------
mythtv-php72_fix.patch | 13 -
mythtv-py3_configure.patch | 21 -
mythtv-py3_urllib.patch | 592 -----
mythtv-python3.patch | 3519 ----------------------------
mythtv-space_in_GB.patch | 4 +-
mythtv.spec | 122 +-
sources | 2 +-
v30.0..a27754ae7f.patch | 5442 --------------------------------------------
10 files changed, 38 insertions(+), 10523 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 32fad4b..493296a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@ mythtv-0.27.5.tar.gz
/v29.1..9f0acf372d.patch
/mythtv-30.0.tar.gz
/v30.0..b774c4140b.patch
+/mythtv-31.0.tar.gz
diff --git a/mythtv-ChangeLog b/mythtv-ChangeLog
index 7f2d96a..e69de29 100644
--- a/mythtv-ChangeLog
+++ b/mythtv-ChangeLog
@@ -1,845 +0,0 @@
-commit 5cde0578d84926171b20c8f7e95a101e9b0b9457
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Thu Aug 8 12:45:52 2019 -0400
-
- dbcheck: Enforce correct recgroupids for special recording groups
-
- If the mysql server is set up with auto_increment_increment=2 or
- some value other than 1, the wrong values were set for the special
- recording groups.
-
- This only fixes it for new database setups or upgrades from schema
- id 1320.
-
- Refs #13473
-
- (cherry picked from commit da558ca5f531b8074155946b96c82ef4fe0ddefa)
-
-commit e094a020179aba2d955a21b8fd067231a87e3334
-Author: Paul B. Henson <henson(a)acm.org>
-Date: Thu Jul 25 11:44:28 2019 +0200
-
- DVB symbol errros with gcc 8.3
-
- Include of dvbchannel.h in channelscanner.cpp is now
- conditional on USING_DVB.
- This does solve the compilation issue for gcc 8.3.
- Note that there are no compilation issues with
- newer gcc versions, as tested with gcc 9.1.
-
- Signed-off-by: Klaas de Waal <kdewaal(a)mythtv.org>
- (cherry picked from commit 06a1158ead9aafd6c394e90860049b53e1e16978)
- Signed-off-by: Klaas de Waal <kdewaal(a)mythtv.org>
-
-commit a4bc92e244d815351bd6de6f8d4c2569f22bc403
-Author: Tom Dexter <digitalaudiorock(a)gmail.com>
-Date: Thu Jul 11 16:34:08 2019 +0100
-
- Gentoo users may not have nvidia-settings utils installed. From https://bugs.gentoo.org/688084
-
- Signed-off-by: Stuart Auchterlonie <stuarta(a)mythtv.org>
- (cherry picked from commit 13ec89b65ea4a95dafbdfc31ff27a621ca126860)
-
-commit 83e27017203abfac6958bd3a6ce3284c372fa2d4
-Author: Paul Harrison <pharrison(a)mythtv.org>
-Date: Fri Jul 5 21:18:04 2019 +0100
-
- mythzmserver: fix merge error after 84e5caebaa
-
- Refs #13466
-
-commit 84e5caebaa9650b88a6082f19cb46d46b831b566
-Author: Paul Harrison <pharrison(a)mythtv.org>
-Date: Fri Jul 5 19:02:40 2019 +0100
-
- mythzmserver: don't try to get the shared memory pointers for a disabled Monitor
-
- Also allow for a NULL result for the Host field in the Monitors table.
- Fixes #13466
-
- (cherry picked from commit 7924ad992c75c2dad04eef992d51c349d9e4a64d)
-
-commit d794f3108195eb8fe5333a73db38275185ff73c2
-Author: Paul Harrison <pharrison(a)mythtv.org>
-Date: Wed Jun 19 01:34:36 2019 +0100
-
- ZMClient: use locking to make sure only one command runs at a time
-
- (cherry picked from commit b57372d484c1c9306ecb26b5e18906708980b4fe)
-
-commit 80434249139b36701b050c7990cf20a09de268a1
-Author: Paul Harrison <pharrison(a)mythtv.org>
-Date: Fri Apr 19 16:43:49 2019 +0100
-
- MythZoneMinder: fix saving the enabled/disabled monitor notification setting
-
- (cherry picked from commit cca393352f1df6ef97b655f048b18c2f0b98732a)
-
-commit 4dae2f4106d537babfe8ddca0c7871a113a139e5
-Author: Paul Harrison <pharrison(a)mythtv.org>
-Date: Tue Feb 5 11:41:09 2019 +0000
-
- MythWeather: fix some of the weather grabber scripts
-
- Remove the no longer supported "use encoding 'utf8'" directive.
-
- (cherry picked from commit 4f58fd152f56089ac15db90433ea952d11d7b026)
-
-commit dac22b7f1043d4b212d1d73045ada3b8b113e090
-Author: Stuart Auchterlonie <stuarta(a)mythtv.org>
-Date: Thu Jul 4 11:57:25 2019 +0100
-
- Fixes #13467 - Handle null blocks in DSMCC
-
- (cherry picked from commit 9dfa5c7a70bb422d748ab327f4b1a0cb3e435794)
-
-commit b9c1b41a6c01a387bad8f325e2b8000327045cc6
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Mon Jun 17 15:20:19 2019 -0400
-
- android: Fix problem with guide grid colors.
-
- assets file system does not support file handles.
-
- Refs #13454
-
- (cherry picked from commit 9ee9894bf540a6838fe67545de205ffd23acc63f)
-
-commit ef55cb239b27741954b1ed026297a0c59b4ac0e1
-Author: Robert Watson <robertabcdefgwatson(a)gmail.com>
-Date: Thu Jun 13 10:48:32 2019 +0200
-
- Compute seek offset 64 bits in playback of Blu-Ray iso.
-
- Fixes #13461
-
- Signed-off-by: Klaas de Waal <kdewaal(a)mythtv.org>
- (cherry picked from commit f0ed96407e6a20db3c6b6ca1a59cb8498736a5cc)
- Signed-off-by: Klaas de Waal <kdewaal(a)mythtv.org>
-
-commit 4761e7a6d42a86c11f10bd4dea83ca8eb022b016
-Author: Jan Ceuleers <jan.ceuleers(a)gmail.com>
-Date: Thu May 30 16:14:27 2019 -0500
-
- tmdb3.py: Prevent program from stalling
-
- From the -users list. If one (or more) requests stall, no
- more metadata is retrieved until all stalled requests are
- killed (or the backend is rebooted.)
-
- Signed-off-by: Bill Meek <billmeek(a)mythtv.org>
- (cherry picked from commit 98f4fc8c47040b1afb8cbca1886765cc06943923)
-
-commit 402e8274435cfab094cd902105a11231b7eadfbc
-Author: Bill Meek <billmeek(a)mythtv.org>
-Date: Fri May 10 11:28:31 2019 -0500
-
- HTTP Status: Restore thousands separators and use proper LOCALE choice
-
- In #3957 the LOCALE was fixed to QLocale::C, and a report on the Forum
- pointed out the commas were lost after upgrading to Ubuntu 18.04 from
- 16.04. I haven't found any Qt documentation that says the existing
- method is wrong, but this fix puts commas back and should have the
- side affect of using the correct separator in other LOCALS.
-
- (cherry picked from commit 9f6230f1dc9db1d34be9c5ef3986ac640e7f4316)
-
-commit aa26a6b76bf00fcd5ddb051c76f9994757e09913
-Author: Bill Meek <billmeek(a)mythtv.org>
-Date: Fri May 10 14:34:14 2019 -0500
-
- Python Bindings: Fix version test for Frontend services
-
- Use Frontend/version to 'prime' the session for POSTs (was always
- using Myth/version.)
-
- (cherry picked from commit c12ff7cac94d570f9c6b566b455811c5a90735d6)
-
-commit 8d04874b1ecffebe0085997a3cd797b99643bc11
-Author: Bill Meek <billmeek(a)mythtv.org>
-Date: Tue Jun 4 11:02:03 2019 -0500
-
- mythwelcome: Final --override-settings fix
-
- This adds to a previous commit and allows libCECEnabled=0 to take
- affect. Needed to be done before the Context was initialized.
-
- Thanks to trx-913 on the Forum for testing both fixes.
-
- (cherry picked from commit ee893973bb9f4b1e3c0803917ed1850061fa054e)
-
-commit 8325b0780455cd7b90bc6e676b47d6a2aa32250c
-Author: Bill Meek <billmeek(a)mythtv.org>
-Date: Thu May 30 14:33:25 2019 -0500
-
- mythwelcome: --override-settings choice(s) don't take affect
-
- mythwelcome --override-settings is valid, but overrides weren't
- being used. 139919a (2011) claimed to fix it, but never called
- ApplySettingsOverride(). Applies to override-settings-file too.
-
- Thanks to trx-913 on the Forum for spotting this.
-
- (cherry picked from commit 807c09b44a970b95cfb04d2112deb44f717f0d36)
-
-commit 6bd8cd499382fd8b132218274fb4ae326c2b0243
-Author: Klaas de Waal <klaas(a)modu.home.lan>
-Date: Thu May 30 10:26:43 2019 +0200
-
- Remove m_ in class member names for backport to fixes-30
-
- Refs #13415
-
-commit 57ffe65dbc1a80b0f4289f7c6a2b8f2e73e2cf51
-Author: Simon Hyde <simon(a)icedrop.net>
-Date: Tue Feb 26 21:32:19 2019 +0000
-
- Prevent data corruption in dvbchannel.cpp causing hang
-
- m_is_open was being corrupted by multiple simultaneous modifications,
- leading to it managing to create infinite loops within its underlying
- data structure. This patch extends the locking of m_hw_lock to cover
- all uses of m_is_open, preventing issues.
-
-commit a32ec4bdea1380ecf587c717bc882cbe9469e5c7
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Tue Apr 30 14:10:13 2019 -0400
-
- Fix mythgame configuration with minizip 2.8.6
-
- Minizip apparently moved its header files in/before version 2.0.
- Update the mythplugins configure script to look in both the old and
- new locations.
-
- Fixes #13453.
-
-commit fc79822ce4c8775361053d1bdd8d9dce2dc44ec1
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Tue Apr 30 13:32:08 2019 -0400
-
- Fix compilation with exiv2 > 0.27.0.
-
- Remove an old workaround that was introduced so that MythTV would
- continue to compile after the introduction of exiv2 version 0.21. The
- exiv2 file this workaround required was removed in 0.27.1.
-
- MythTV now requires upon exiv2 0.21 or better.
-
- Fixes #13452.
-
-commit f92255ce0620978cb0fffecd37832df3d6c56565
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Fri Apr 26 12:40:56 2019 -0400
-
- Playback: Fix DB Update that caused bookmark key bindings to be lost
-
- The database update is clearing the key binding before it can be
- converted. This fixes it for people upgrading from 29.
-
- (cherry picked from commit cdb895e92e30c48b62498e262ecff50e1adcede6)
-
-commit 30a59af73f16c7b97c4704a721b3a366b5b96175
-Author: David Engel <dengel(a)mythtv.org>
-Date: Thu Apr 25 09:35:24 2019 -0500
-
- Account for very, large pre-roll values in AssignGroupInput.
-
- Refs #13423
-
- (cherry picked from commit b71875f16c156abeb347e6035c8b7bb72c457904)
-
-commit 97786a019daa7973207149d728a0b9da978bec1f
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Fri Apr 19 19:04:20 2019 -0400
-
- Lengthen timers in test_mythtimer.
-
- This allows some slop for build systems being busy while the tests are
- running, but still keeps the same ratio of the timers so the test
- should still be valid.
-
- (cherry picked from commit b3e9db8c06c90f81fb7a430679a14b4271e8dc7b)
-
-commit 0bd850a54244d81dd086556d5425890b44dc2018
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Fri Apr 19 16:13:43 2019 -0400
-
- Add delay to handle race condition in FreeBSD testing.
-
- Calls to read the data output by the shell generate an EBADF error.
- Apparently FreeBSD is fast enough that the file descriptors have often
- been closed and cleaned up before the test code tries to read from
- them. Add a one second delay after output so that stdout and stderr
- can be read consistently.
-
- (cherry picked from commit 1593c82103b10c4243e18de00469c5881e9399cb)
-
-commit d41d45ed6f50620a8836580c97bfd6fa25214633
-Author: David Engel <dengel(a)mythtv.org>
-Date: Mon Apr 15 15:10:39 2019 -0500
-
- Enable Schedule as Group by default.
-
- This also includes the case when the maximum recordings is set to 1.
- Both the core feature scheduling feature and the on-demand addition of
- inputs feature are stable and and should be enabled by default for all
- users.
-
- (cherry picked from commit 895daa592802ea3b16d8f1e583d69cc8fea5f2c3)
-
-commit b61283d7d1ffcdb17a909216220283e005e52a47
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Wed Apr 24 09:51:35 2019 -0400
-
- Restore code that fixes up key bindings.
-
- This partially reverts commit 453178430d86f7fdf4030cc1a76d7a135df60aa0.
-
- (cherry picked from commit 3be5b080f8fb447645ff3ddcf174aa998108a41b)
-
-commit 5a67176bf907ca0686a7bd44c791a7003a544cfc
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Sun Apr 14 16:35:42 2019 -0400
-
- android: Fix for android OpenGL ES failures
-
- Android devices that do not support high precision were failing
- on an OpenGL error due to no precision specifiction. The result
- was no GUI display, just a black screen.
-
- (cherry picked from commit b60b8678904bb36349a97ce3e8e7370f8c9c8a13)
-
-commit 4d995941851b277b6365fed4ea003b8706432c2d
-Author: Dag Nygren <dag(a)newtech.fi>
-Date: Mon Apr 8 11:33:42 2019 -0400
-
- Update Finish EIT fixups.
-
- 1) Remove 'Film' or 'Elokuva' at the start of titles. 2) Remove age
- limit at the end of the title.
-
- Fixes #13215.
-
- Signed-off-by: David Hampton <mythtv(a)love2code.net>
- (cherry picked from commit 753a062b10d93485830a4dbf7a52d8336e2edf96)
-
-commit 09393940d6b448d74fcf5f983b21641f972a38bd
-Author: Bill Meek <billmeek(a)mythtv.org>
-Date: Sun Apr 7 11:01:24 2019 -0500
-
- WebFrontend: Fix TV->Program Search (by Channel)
-
- Only a single channel is presented with v30. Commit 63a5a20e
- added extra filtering options to Channel/GetChannelInfoList.
- Adjusted programsearch.qsp file to account for this.
-
- Bug reported by user tekdoc on the Forum and thanks for testing
- the fix too.
-
- (cherry picked from commit 56cb2e4db98d96380258334cea8f7911363cb603)
-
-commit 3f494f57e27fef4285e094e919d6f795a8583e33
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Tue Apr 2 22:56:37 2019 -0400
-
- Fix "in progress" check in mythplayer.
-
- The clang-tidy "implicit boolean conversion" check pointed out a
- couple of nonsensical implicit conversion from TVState to boolean.
- Fix the code to properly test for one of two TV watching states.
-
- Fixes #13442.
-
- https://clang.llvm.org/extra/clang-tidy/checks/readability-implicit-bool-...
- (cherry picked from commit 0bf0880d3e7ff0f78d1b90953e1f48618421e62d)
-
-commit 8e50fcf60bf9aaaddb5c8dbca4c957a0117d62c9
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Thu Mar 28 08:55:36 2019 -0400
-
- Fix timeout on mediaserver announcements.
-
- The socket code was converted in 2009 from taking a boolean to indicate
- a 'short' timeout, to taking an actual timeout in milliseconds. Fix
- one location that didn't get converted.
-
- Fixes #13439.
-
- (cherry picked from commit 66d8960da3e47023344a4caa1edaa37eff6f64b8)
-
-commit 3af3cad3d74735a561ab594910a3400b2472645c
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Mon Mar 25 19:32:11 2019 -0400
-
- tidy: Fix memory leak in HLSSegment::DecodeData.
-
- The clang-tidy "memory leak" checker pointed out that the
- RecorderBase::CheckForRingBufferSwitch function would leak the memory
- pointed to by the 'recq' variable if the 'm_tvrec' variable contains
- nullptr. Add a line to free the memory pointed to by the 'recq'
- variable in this case.
-
- Fixes #13438.
-
- (cherry picked from commit e6a39281b112fb03ef2f804c13bc6ebe9d336c90)
-
-commit 0999fd0ff08d21bf7873daf78fe9e453925cd83d
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Sun Mar 24 14:51:17 2019 -0400
-
- tidy: Fix test to retrieve picture from FLAC file.
-
- The clang-tidy "call and message" check pointed out the inevitability
- of calling a function through a nullptr. The getPictureFromFile
- function was testing the wrong variable when determining whether or
- not a picture was the requested type. While there, make a variable
- 'auto' to tighten up the code.
-
- Fixes #13437.
-
- (cherry picked from commit 6a21dd100e453d24437e980ef01c5525a53efbc1)
-
-commit ff4c7158f4fb241760e77fad7c2a8eef1a4eb5c3
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Mon Mar 25 14:02:11 2019 -0400
-
- tidy: Fix rare null pointer dereference in cc707decoder.cpp.
-
- The clang-tidy "non-null parameter checker" pointed out to possibility
- of the cc708 decoder dereferencing through a null pointer. This code
- starts with a default buffer size of 512 and then attempts to allocate
- a larger buffer when necessary (in this case, if a single subtitle is
- more than 512 characters.) If the reallocation fails, the code would
- end up storing the nullptr error return into the buffer pointer, and
- then dereference it an an attempt to store the new characters. Catch
- this rare condition and drop the characters that won't fit into the
- existing buffer.
-
- Fixes #13436.
-
- (cherry picked from commit d0356aba3c9394200a86dcab7d1cf17a558c5eab)
-
-commit 094e0d0c8038dac291dc4634e268c5fdc9dc0502
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Mon Mar 25 17:43:51 2019 -0400
-
- tidy: Fix memory leak in HLSSegment::DecodeData.
-
- The clang-tidy "memory leak" checker pointed out that
- HLSSegment::DecodeData function would leak memory if it read an
- invalid padding size from the end of the buffer. Add a line to free
- the temporary buffer in this error condition.
-
- Fixes #13435.
-
- (cherry picked from commit 221e867bcbf5a79ff5f68eb5d30aa78538a2dbfb)
-
-commit 81081957a0cbb83e7419269129b4babfe306a8ac
-Author: Yianni Vidalis <yiannividalis(a)hotmail.com>
-Date: Wed Mar 20 12:50:31 2019 -0400
-
- EIT fixes/enhancements for greek TV. (dvb-s and dvb-t)
-
- Fixes #13426.
-
- Signed-off-by: David Hampton <mythtv(a)love2code.net>
- (cherry picked from commit 2887266263db0ed423d697ea2d7e74915e2a4c68)
-
-commit df4b1b78ae4e6d551b9a5ce07a0af33d436b96fd
-Author: David Engel <dengel(a)mythtv.org>
-Date: Tue Mar 19 14:05:09 2019 -0500
-
- Include episode information in Scheduler-generated ProgramInfos.
-
- Also, include the generic, episode indication when writing to the
- oldrecorded table.
-
- Refs #13425
-
- (cherry picked from commit f9794e0ac7d4214599bb9b43f77b46c8dfcfa8fc)
-
-commit 363d00440163d55456bcb2eb353eb8a3ac9dc93d
-Author: John Poet <jpoet(a)mythtv.org>
-Date: Tue Feb 26 13:57:12 2019 -0700
-
- mythexternrecorder: Allow config to pass logging options.
-
- (cherry picked from commit 5b63846899946c0c150d1bf3ca4c90289293ca9f)
-
-commit 068e7e1958c46bcce65cca71603eeb537dbd9a1a
-Author: John Poet <jpoet(a)mythtv.org>
-Date: Fri Feb 1 20:33:46 2019 -0700
-
- ChannelUtil::GetChannelDatast: Make sure results are more predictable.
-
-
- Order results so lower numbered visible channels are prefered. If no
- visible channels are available, then return an invisible one.
-
- (cherry picked from commit cf7e9cc8293719ee7d726dfa44b2501e5a38f80a)
-
-commit 2327369fd558fcf00af6a280017560801534b44d
-Author: John Poet <jpoet(a)mythtv.org>
-Date: Tue Feb 5 14:04:00 2019 -0700
-
- RemoteFile::Read: Try and "resume" if read fails.
-
-
- When a remote frontend is paused for more than 5 minutes, the "remotefile"
- connection can end up in a state where no data is returned. Attempt to use
- RemoteFile::Resume to reestablish the connection.
-
- (cherry picked from commit b7b737044eff2fff1090c582c1bf3bd61f6c2f26)
-
-commit 01cde24f00573a44f7c62f8ddf6cdcccb0a865a8
-Author: John Poet <jpoet(a)mythtv.org>
-Date: Mon Feb 4 15:14:50 2019 -0700
-
- ExternalStreamhandler: Don't spam log files due to very low bitrate streams
-
-
- (cherry picked from commit fa86a6a2935c305c97fa75fcd8fd82fe25eae66a)
-
-commit 60cfb7c05ae21d0049537aaa66f8f70a836a1138
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Sun Mar 10 15:06:41 2019 -0400
-
- Fix compile error from bceea69806d
-
- Rename of member variables cause the cherry-pick to use the old
- variable name.
-
-commit 76ea9755b69cad0eb6595407a7dec3c63df9f8c5
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Wed Mar 6 13:45:46 2019 -0500
-
- Playback: Fix jerkiness with codec-deinterlaced content
-
- Remove unneeded setting of m_fps that was overwriting the correct
- value. m_fps is suppsed to contain the framerate before deinterlacing.
-
- Fixes #13419
-
- (cherry picked from commit 0e7e57f9c2eb0e2c4f47dcb30788a4e54d6808ba)
-
-commit 13f5fd83072a5b57c3aa3409d6db2038feb1f573
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Mon Mar 4 16:09:49 2019 -0500
-
- Playback: Improve "Music Choice" detection
-
- Some recordings could be incorrectly detected as "Music Choice",
- resulting in audio-video sync problems. This improves detection to
- reduce the likelihood of that.
-
- (cherry picked from commit e0534ab0964bbec10e52de62dce87aa3cf76165a)
-
-commit bceea69806d9d24fd1662edca23c2215bee2e8cf
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Mon Mar 4 15:53:39 2019 -0500
-
- AVSync2: Use frame timestamps to determine elapsed play time
-
- MythTV uses frame count to determine the elapsed time of a recording
- for display, jumps, etc. This can be inaccurate with variable rate
- content and also with frame doubling being done in the decoder.
- This change recalculates the frame count based on the time code.
- This ensures MythTV elapsed time will be accurate.
-
- Fixes #13416
-
- (cherry picked from commit 6a5fb07fa17d7a7da09bd8a7be0394c8e4948122)
-
-commit 90468ec49a0116068fffb11d799ae67e100ef1fe
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Sun Feb 24 14:28:56 2019 -0500
-
- Playback: AvSync2 fix fast forward/rewind
-
- Fast forward and rewind were not handling frame timing correctly so that
- they were dropping frames, resulting in no frames displayed in some cases.
-
- (cherry picked from commit 4089bf1ff031224fa1fefe990ef376628ef7589e)
-
-commit 042c180902bcdcf58ac12cef45a9cf0e5f348912
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Thu Mar 7 14:38:13 2019 -0500
-
- Previously Recorded List: Fix 2 bugs
-
- 1. Time zone bug - In a USA time zone at 11 PM on tha last day of
- the month you can see the following month listed, albeit with
- no entries.
-
- 2. Program Guide->select a program that has not been recorded, then
- Menu->Schedule Info->Previously Recorded, then press left or right.
- This causes a seg fault.
-
- Fixes #13397
- Fixes #13421
-
- (cherry picked from commit c08b7ae0e7589dbe54d817a1d6296688e576d675)
-
-commit e3474f8afb7191d5593d5fa5baac24611842bbec
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Mon Feb 25 14:45:13 2019 -0500
-
- Program Guide: Fix for current selection text not showing
-
- With certain themes (e.g. Blue Abstract) the current selection program name
- was not showing in the guide grid.
-
- (cherry picked from commit d6252135d684a9f6c1aa486fd9b684025f3d23d7)
-
-commit 26034244e8b664f2ae0e74027653293625615a86
-Author: Roland Ernst <rcrernst(a)gmail.com>
-Date: Mon Feb 18 13:51:10 2019 -0600
-
- Services API: Allow images/icons immediately after BE startup. Refs #13404
-
- Register <QFileInfo> to QMetaType at backend startup.
-
- Tested on master with:
-
- curl --header Accept:Application/JSON --output /tmp/preview.out \
- --silent localhost:6544/Content/GetPreviewImage?RecordedId=<validRID>
-
- curl --header Accept:Application/JSON --output /tmp/icon.out \
- --silent localhost:6544/Guide/GetChannelIcon?ChanId=<validChanID>
-
- Also, without --header ... for XML responses.
-
- Required because Services need this type already registered. Without this
- fix expect:
-
- JSON: {'': ''}
- XML: <?xml version="1.0" encoding="UTF-8"?><></>
-
- Thanks Roland.
-
- Signed-off-by: Bill Meek <billmeek(a)mythtv.org>
- (cherry picked from commit f7b5fd704be1e75071f8452b669d303ab053a245)
-
-commit 70a58c0a38c637657f74f28ad86e04a157163f57
-Author: Klaas de Waal <klaas.de.waal(a)gmail.com>
-Date: Sun Feb 17 13:35:42 2019 -0600
-
- Don't leave HDHomeRun channels open after EIT scans.
-
- The HDHomeRun unlocks the tuner due to inactivity but MythTV still
- thinks it's open. The result is the next recording or EIT scan fails.
- The fix is to always close the channel immediately after finishing
- with it.
-
- Refs #13407
-
- Signed-off-by: David Engel <dengel(a)mythtv.org>
- (cherry picked from commit e7e2270d68838bf72c8a7a12a1f027905a12e199)
-
-commit 5100ef5870eed4012e02c0d62d4adb1f20c0f312
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Fri Feb 15 14:50:29 2019 -0500
-
- AVSync2: Improve resync speed and accuracy
-
- 1. If out of sync by more than 200 ms fix the sync more quickly.
- 2. Measure audio and video timecode at the same instant.
- 3. Base audio / video adjustment on the prior frame timecodes.
- 4. When there is excess audio (more than 200 ms) discard it.
- 5. No longer limit adjustments to when error is over 40 ms.
-
- Fixes #13383
-
- (cherry picked from commit 6b402ca5a3b8c45c9ee190aaaf0e63a0d5548855)
-
-commit f0644ebd2a33f096dc1b8d97b36a22804d913c5f
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Fri Feb 15 14:49:37 2019 -0500
-
- AVSync2: Fix never-ending stutter on Live TV
-
- With AVSync2, Live TV could continue to stutter until pause
- is pressed. Added a timecode reset so that it can add a small
- delay to allow catch up.
-
- (cherry picked from commit 90b4ec347fd01e40f97427de8ab261f74e9b2d68)
-
-commit f7b66345c5da82915e9db25817c59f42182766ab
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Sat Feb 2 14:42:40 2019 -0500
-
- Update custom FreeBSD type declarations in videodev2.h.
-
- (cherry picked from commit 209c15535056407ffd9af9fbf557b0f1c98dad8f)
-
-commit 7c0dc9b25906e0bdf9f6cb878268c9d0fc2316bb
-Author: David Hampton <mythtv(a)love2code.net>
-Date: Fri Jan 25 15:20:30 2019 -0500
-
- Fix spurious font mismatch errors.
-
- Strip out any text between square brackets before comparing font
- names. This will allow a font family name like "Droid Sans [MONO]" to
- match the request for "Droid Sans".
-
- Fixes #13385.
-
- (cherry picked from commit 60a1db79f36e4f0734c79c4783864340d4e695bf)
-
-commit b774c4140b2b9e148ccf699d1ad746bc4c84289c
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Sun Feb 10 12:17:53 2019 -0500
-
- Remove debugging code.
-
- Program guide fix included some debugging code.
-
- (cherry picked from commit 7fd7b8443073ab53804b284f69968d37932825cc)
-
-commit c6760c6210597453c140079628a509683b738f54
-Author: Peter Bennett <pbennett(a)mythtv.org>
-Date: Sun Feb 10 11:25:55 2019 -0500
-
- Guide Grid: Fix missing text when using QT painter
-
- Grid icons, arrows and record status, caused text to show as blank.
- Changed to paint the text first, which resolves the issue.
-
- Fixes #13398
-
- (cherry picked from commit f561a3c4b2f8d59df8674849d40e046874aee8a2)
-
-commit 1c2068c62bd67f5458009a49412e8b50a4bafbe5
-Author: David Engel <dengel(a)mythtv.org>
-Date: Fri Feb 1 20:04:46 2019 -0600
-
- Missed a locking difference in the previous GetPlaybackURL commit.
-
- (cherry picked from commit 068c9664724122d0b116d29aea31850a4ae85ed6)
-
-commit e5672657dce54a8059a2437f5a4899dcc07d3d10
-Author: David Engel <dengel(a)mythtv.org>
-Date: Fri Feb 1 18:37:43 2019 -0600
-
- Completely move GetPlaybackURL() to libmythprotoserver.
-
- It was copied previously but not completely marked as static in both
- locations. This change completely removes it from the old location so
- that only the new location is used.
-
- (cherry picked from commit 692219f9c9544f0344b69cb3ce053cadd948fa16)
-
-commit f11c5aba6ed1e88c22f1b3b6828fc085e1699b97
-Author: David Engel <dengel(a)mythtv.org>
-Date: Sat Jan 26 11:48:15 2019 -0600
-
- Tweak some VB_FILE log levels to make it more useful at loglevel INTO.
-
- (cherry picked from commit 85dc2a48dff419fe78cc6b9371bc46333247d06e)
-
-commit b06510032478ec887fd2491b5f9a5dad415c30f0
-Author: David Engel <dengel(a)mythtv.org>
-Date: Sat Jan 26 11:28:54 2019 -0600
-
- Don't start RingBuffer thread if it's not open.
-
- The RingBuffer thread will exit immediately if the underlying file
- isn't open. That can cause the thread waiting for it to start to
- deadlock.
-
- (cherry picked from commit 425386b93f3df1ec6872ef845e521c0546e70c61)
-
-commit 4fd4d574c6dacba22233d3eb3e6c9c4564a3c7ac
-Author: David Engel <dengel(a)mythtv.org>
-Date: Fri Jan 25 10:09:50 2019 -0600
-
- Restore (cached) call to GetFilesystemInfos() in AutoExpire.
-
- A previous change removed it because it was believed to be redundant.
- It actually is redundant in that it doesn't need to be called again so
- soon. However, a logic bug left the needed filesystem information
- empty. Rather than attempt to thread safely re-use the data completely
- within AutoExpire, restore the call to GetFilesystemInfos() but used
- the previously cached results.
-
- (cherry picked from commit 193eb990ceb30d6cd69c57972be7f9d380d1368e)
-
-commit 39794c9b6cfa83a03d0f8b0589f67924a6d0f5a0
-Author: David Engel <dengel(a)mythtv.org>
-Date: Thu Jan 24 23:39:20 2019 -0600
-
- Don't double print the log timestamp and level on Android.
-
- (cherry picked from commit 86ad64b4ef6a044c3e5c439c06cbd2cb3ba5dcb6)
-
-commit 2b8211e8e5d1cd512f96dd31f7cecffc353c19ba
-Author: David Engel <dengel(a)mythtv.org>
-Date: Wed Jan 23 17:12:11 2019 -0600
-
- Simpify previous FileSystemInfo caching change.
-
- (cherry picked from commit ab65230280cbeda555b0b25d79933d27a823540b)
-
-commit 6b5490bfab0301c70ab79c313cf6b8369ed3507a
-Author: David Engel <dengel(a)mythtv.org>
-Date: Mon Jan 21 20:55:52 2019 -0600
-
- Cache FileSystemInfo data to avoid unwanted blocking.
-
- Change the MainServer to cache updated, FileSystemInfo data and
- optionally return the cached data when requested. The Scheduler uses
- this data to decide where to put a recording right before it starts.
- Previously, an unresponsive, remote filesystem could block the
- Scheduler for up to several minutes. Now, the Scheduler always uses
- the cached data to avoid getting blocked. The AutoExpirer does not
- and should not use the cached data so that the data gets updated
- periodically.
-
- (cherry picked from commit df607e9bfcb5cc0798989b2e983e0071cb973ae6)
-
-commit 18c9bc9c35f7cb58a8b67d7d53ed73a71aaf4994
-Author: David Engel <dengel(a)mythtv.org>
-Date: Mon Jan 21 17:59:58 2019 -0600
-
- Work around to get A/V subtitles working on Android.
-
- fontconfig doesn't yet work for us on Android. For the time being,
- more explicitly set a font we know should exist. This was adapted
- from VLC master as of 2019-01-21.
-
- (cherry picked from commit a3d7b79b445457d027710dd6509155753a1aa3a5)
-
-commit 57e69de0ba76333d9cb6a08c51cd0837c155d94d
-Author: David Engel <dengel(a)mythtv.org>
-Date: Mon Jan 21 17:31:18 2019 -0600
-
- Fix libass logging.
-
- Previously, logs from libass were accumulated until one happened to
- end with a newline and then all were printed without newlines between
- them. Now, each log is printed as is as they are received.
-
- (cherry picked from commit 7fe5013c90e17cfaac79f343097001d7d248dc35)
-
-commit 44fee4bc8a4a69b2ae2ee09fb6568f47d1f8269d
-Author: Mark Kendall <mark.kendall(a)gmail.com>
-Date: Sat Jan 19 15:15:15 2019 +0000
-
- OpenGLVideo: Fix texture filtering
-
- - this was most apparent using the default OpenGL profile and the kernel
- deinterlacer but would have been impacting quality elsewhere.
-
-commit c62e2733944311f3a0adf17e718f5fb60b006991
-Author: John Poet <jpoet(a)mythtv.org>
-Date: Thu Jan 17 21:25:51 2019 -0700
-
- Move BottomLine: Allow user to save horizontal adjustments as well.
-
-commit 07fc9359b383b97d84cc756825db9c0f97583d33
-Author: David Engel <dengel(a)mythtv.org>
-Date: Wed Jan 16 23:36:51 2019 -0600
-
- Fix issues with recent live TV channels commit.
-
- (cherry picked from commit ccf39fad9213c80ce8b7b4fd79dfa0ff63c090ca)
diff --git a/mythtv-space_in_GB.patch b/mythtv-space_in_GB.patch
index 86130e0..de2b723 100644
--- a/mythtv-space_in_GB.patch
+++ b/mythtv-space_in_GB.patch
@@ -13,7 +13,7 @@
group.setAttribute("dir" , directory );
if (fsID == "total")
-@@ -495,9 +495,9 @@ void HttpStatus::FillStatusXML( QDomDocu
+@@ -497,9 +497,9 @@ void HttpStatus::FillStatusXML( QDomDocu
{
iExpirable = query.value(0).toLongLong();
}
@@ -26,7 +26,7 @@
total = group;
}
else
-@@ -1267,36 +1267,36 @@ int HttpStatus::PrintMachineInfo( QTextS
+@@ -1269,36 +1269,36 @@ int HttpStatus::PrintMachineInfo( QTextS
<< " <ul>\r\n";
os << " <li>Total Space: ";
diff --git a/mythtv.spec b/mythtv.spec
index 369b258..de3c596 100644
--- a/mythtv.spec
+++ b/mythtv.spec
@@ -33,7 +33,6 @@
#
# --without vdpau Disable VDPAU support
# --without vaapi Disable VAAPI support
-# --without crystalhd Disable Crystal HD support
# --without perl Disable building of the perl bindings
# --without php Disable building of the php bindings
# --without python Disable building of the python bindings
@@ -42,7 +41,6 @@
#
# --without mytharchive
# --without mythbrowser
-# --without mythgallery
# --without mythgame
# --without mythmusic
# --without mythnetvision
@@ -57,22 +55,22 @@
%global desktop_applications mythfrontend mythtv-setup
# git has used to fetch fixes diff
-%global githash a27754ae7f7ec04f6046fcfd61e336986dc2c750
+%global githash 9579662cdcb020440fdb358e044f417f20b55321
%global shorthash %(c=%{githash}; echo ${c:0:10})
# MythTV Version string -- preferably the output from git describe
-%global vers_string v30.0-79-ga27754ae7f
-%global rel_date 20191226
+%global vers_string v31.0
+%global rel_date 20200323
%global rel_string .%{rel_date}git%{shorthash}
-%global branch fixes/30
+%global branch fixes/31
#
# Basic descriptive tags for this package:
#
Name: mythtv
-Version: 30.0
-Release: 15%{?rel_string}%{?dist}
+Version: 31.0
+Release: 1%{?dist}
Summary: A digital video recorder (DVR) application
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -80,12 +78,8 @@ Summary: A digital video recorder (DVR) application
License: GPLv2+ and LGPLv2+ and LGPLv2 and (GPLv2 or QPL) and (GPLv2+ or LGPLv2+)
URL: http://www.mythtv.org/
Source0: https://github.com/MythTV/%{name}/archive/v%{version}/%{name}-%{version}....
-Patch0: https://github.com/MythTV/%{name}/compare/v%{version}..%{shorthash}.patch
+#Patch0: https://github.com/MythTV/%{name}/compare/v%{version}..%{shorthash}.patch
Patch1: %{name}-space_in_GB.patch
-Patch2: %{name}-php72_fix.patch
-Patch3: mythtv-python3.patch
-Patch4: mythtv-py3_configure.patch
-Patch5: mythtv-py3_urllib.patch
################################################################################
@@ -102,7 +96,6 @@ Patch5: mythtv-py3_urllib.patch
# The following options are enabled by default. Use --without to disable them
%bcond_without vdpau
%bcond_without vaapi
-%bcond_without crystalhd
%bcond_without sdnotify
%bcond_without perl
%bcond_without php
@@ -113,17 +106,12 @@ Patch5: mythtv-py3_urllib.patch
%bcond_without plugins
%bcond_without mytharchive
%bcond_without mythbrowser
-%bcond_without mythgallery
%bcond_without mythgame
%bcond_without mythmusic
%bcond_without mythnews
%bcond_without mythweather
%bcond_without mythzoneminder
-%if 0%{?fedora} || 0%{?rhel} > 7
-%bcond_without mythnetvision
-%else
%bcond_with mythnetvision
-%endif
# Python2 prefix for building on rhel
%if 0%{?rhel} && 0%{?rhel} < 8
@@ -271,10 +259,6 @@ BuildRequires: libvdpau-devel
BuildRequires: libva-devel
%endif
-%if %{with crystalhd}
-BuildRequires: libcrystalhd-devel
-%endif
-
%if %{with sdnotify}
BuildRequires: systemd-devel
%endif
@@ -313,24 +297,14 @@ BuildRequires: perl(IO::Socket::INET6)
%if %{with python}
BuildRequires: %{py_prefix}-devel
BuildRequires: %{py_prefix}-lxml
-%if 0%{?fedora} || 0%{?rhel} > 7
+BuildRequires: %{py_prefix}-simplejson
BuildRequires: %{py_prefix}-mysql
-BuildRequires: %{py_prefix}-urlgrabber
-%else
-BuildRequires: python-urlgrabber
-BuildRequires: MySQL-python
-%endif
%endif
# Plugin Build Requirements
%if %{with plugins}
-%if %{with mythgallery}
-BuildRequires: libexif-devel >= 0.6.9
-BuildRequires: dcraw
-%endif
-
%if %{with mythgame}
BuildRequires: zlib-devel
%endif
@@ -367,6 +341,7 @@ Requires: perl(JSON)
BuildRequires: %{py_prefix}-pycurl
BuildRequires: %{py_prefix}-lxml
BuildRequires: %{py_prefix}-oauth
+BuildRequires: %{py_prefix}-urllib3
%endif
%endif
@@ -441,6 +416,12 @@ Requires: freetype%{?_isa} >= 2
Requires: qt5-qtbase-mysql%{?_isa}
Requires: libudisks2%{?_isa}
+# Handle package obsoletes here as this is the only "common" package.
+# mythgallery is dead
+Obsoletes: mythgallery < 31
+# mythnetvision is buggy and doesn't want to build with python3-urllib3
+Obsoletes: mythnetvision < 31
+
%description libs
Common library code for MythTV and add-on modules (development)
MythTV provides a unified graphical interface for recording and viewing
@@ -518,9 +499,6 @@ Requires: libvdpau-devel%{?_isa}
Requires: libva-devel%{?_isa}
%endif
-%if %{with crystalhd}
-Requires: libcrystalhd-devel%{?_isa}
-%endif
%description devel
This package contains the header files and libraries for developing
@@ -680,7 +658,7 @@ Provides a PHP-based interface to interacting with MythTV.
Summary: Python bindings for MythTV
%if 0%{?fedora} > 30
%{?python_provide:%python_provide python3-%{name}}
-Obsoletes: python2-MythTV
+Obsoletes: python2-MythTV < 30.0-9.20190601git6bd8cd4993
%else
%{?python_provide:%python_provide python2-%{name}}
%{?python_provide:%python_provide python2-MythTV}
@@ -715,9 +693,6 @@ Requires: mythmusic%{?_isa} = %{version}-%{release}
%if %{with mythweather}
Requires: mythweather%{?_isa} = %{version}-%{release}
%endif
-%if %{with mythgallery}
-Requires: mythgallery%{?_isa} = %{version}-%{release}
-%endif
%if %{with mythgame}
Requires: mythgame%{?_isa} = %{version}-%{release}
%endif
@@ -787,18 +762,6 @@ links in a simple mythplugin.
%endif
################################################################################
-%if %{with mythgallery}
-
-%package -n mythgallery
-Summary: A gallery/slideshow module for MythTV
-Requires: mythtv-frontend-api%{?_isa} = %{mythfeapiver}
-Requires: dcraw
-
-%description -n mythgallery
-A gallery/slideshow module for MythTV.
-
-%endif
-################################################################################
%if %{with mythgame}
%package -n mythgame
@@ -868,6 +831,7 @@ Requires: %{py_prefix}-MythTV = %{version}-%{release}
Requires: %{py_prefix}-pycurl
Requires: %{py_prefix} >= 2.5
Requires: %{py_prefix}-lxml
+Requires: %{py_prefix}-urllib3
# This is packaged in adobe's yum repo
#Requires: flash-plugin
@@ -939,9 +903,6 @@ pushd mythtv
%if ! %{with vdpau}
--disable-vdpau \
%endif
-%if ! %{with crystalhd}
- --disable-crystalhd \
-%endif
%if ! %{with vaapi}
--disable-vaapi \
%endif
@@ -1020,13 +981,6 @@ pushd mythplugins
%else
--disable-mythbrowser \
%endif
- %if %{with mythgallery}
- --enable-mythgallery \
- --enable-exif \
- --enable-new-exif \
- %else
- --disable-mythgallery \
- %endif
%if %{with mythgame}
--enable-mythgame \
%else
@@ -1140,9 +1094,6 @@ pushd mythplugins
%if %{with mythmusic}
mkdir -p %{buildroot}%{_localstatedir}/lib/mythmusic
%endif
-%if %{with mythgallery}
- mkdir -p %{buildroot}%{_localstatedir}/lib/pictures
-%endif
%if %{with mythgame}
mkdir -p %{buildroot}%{_datadir}/mythtv/games/nes/{roms,screens}
mkdir -p %{buildroot}%{_datadir}/mythtv/games/snes/{roms,screens}
@@ -1173,7 +1124,7 @@ find %{buildroot}%{_datadir}/mythtv/ -type f -name "*.py" -exec sed -i '1s:#!/us
# Add the "mythtv" user, with membership in the audio and video group
getent group mythtv >/dev/null || groupadd -r mythtv
getent passwd mythtv >/dev/null || \
- useradd -r -g mythtv -d %{_localstatedir}/lib/mythtv -s /sbin/nologin \
+ useradd -r -g mythtv -d %{_sysconfdir}/mythtv -s /sbin/nologin \
-c "mythbackend user" mythtv
# Make sure the mythtv user is in the audio and video group for existing
# or new installs.
@@ -1184,7 +1135,7 @@ exit 0
# Add the "mythtv" user, with membership in the audio and video group
getent group mythtv >/dev/null || groupadd -r mythtv
getent passwd mythtv >/dev/null || \
- useradd -r -g mythtv -d %{_localstatedir}/lib/mythtv -s /sbin/nologin \
+ useradd -r -g mythtv -d %{_sysconfdir}/lib/mythtv -s /sbin/nologin \
-c "mythbackend user" mythtv
# Make sure the mythtv user is in the audio and video group for existing
# or new installs.
@@ -1261,6 +1212,7 @@ exit 0
%attr(-,mythtv,mythtv) %dir %{_localstatedir}/log/mythtv
%{_datadir}/mythtv/internetcontent/
%{_datadir}/mythtv/html/
+%{_datadir}/mythtv/externrecorder/
%files setup
%{_bindir}/mythtv-setup
@@ -1275,7 +1227,6 @@ exit 0
%{_bindir}/mythshutdown
%{_bindir}/mythwelcome
%dir %{_libdir}/mythtv
-%{_libdir}/mythtv/filters/
%dir %{_libdir}/mythtv/plugins
%dir %{_datadir}/mythtv/i18n
%dir %{_datadir}/mythtv/fonts
@@ -1293,16 +1244,16 @@ exit 0
%{_datadir}/mythtv/themes/
%files libs
-%{_libdir}/libmyth-30.so.*
+%{_libdir}/libmyth-31.so.*
%{_libdir}/libmythavutil.so.*
-%{_libdir}/libmythbase-30.so.*
-%{_libdir}/libmythfreemheg-30.so.*
-%{_libdir}/libmythmetadata-30.so.*
-%{_libdir}/libmythprotoserver-30.so.*
-%{_libdir}/libmythservicecontracts-30.so.*
-%{_libdir}/libmythtv-30.so.*
-%{_libdir}/libmythui-30.so.*
-%{_libdir}/libmythupnp-30.so.*
+%{_libdir}/libmythbase-31.so.*
+%{_libdir}/libmythfreemheg-31.so.*
+%{_libdir}/libmythmetadata-31.so.*
+%{_libdir}/libmythprotoserver-31.so.*
+%{_libdir}/libmythservicecontracts-31.so.*
+%{_libdir}/libmythtv-31.so.*
+%{_libdir}/libmythui-31.so.*
+%{_libdir}/libmythupnp-31.so.*
%files devel
%{_includedir}/*
@@ -1372,16 +1323,6 @@ exit 0
%{_datadir}/mythtv/i18n/mythbrowser_*.qm
%endif
-%if %{with mythgallery}
-%files -n mythgallery
-%doc mythplugins/mythgallery/AUTHORS
-%doc mythplugins/mythgallery/COPYING
-%doc mythplugins/mythgallery/README
-%{_libdir}/mythtv/plugins/libmythgallery.so
-%{_datadir}/mythtv/i18n/mythgallery_*.qm
-%attr(0775,mythtv,mythtv) %{_localstatedir}/lib/pictures
-%endif
-
%if %{with mythgame}
%files -n mythgame
%dir %{_sysconfdir}/mythgame
@@ -1455,6 +1396,11 @@ exit 0
%changelog
+* Mon Mar 23 2020 Richard Shaw <hobbes1069(a)gmail.com> - 31.0-1
+- Update to v31.0.
+- Remove/Obsolete mythgallery package as it is no longer.
+- Remove/Obsolete mythnetvision as it is buggy.
+
* Thu Dec 26 2019 Richard Shaw <hobbes1069(a)gmail.com> - 30.0-15.20191226gita27754ae7f
- Update to latest v30 fixes.
- Clean up spec file and remove sysvinit sources.
diff --git a/sources b/sources
index 44593b1..90e27b3 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7cf06b015e72051412a729be801392ef mythtv-30.0.tar.gz
+SHA512 (mythtv-31.0.tar.gz) = 8df6bf6105a073a0a019f93e22228ff8500945f57a2205ffcd7ef20a69e7d74467068b7b3b2ee0896808e54b11007273dd6a520d75a716fac146c566c4f8ae3e
4 years, 8 months
[gens/f32] Fix FTBFS
by Andrea Musuruane
Summary of changes:
9bcd795... Fix FTBFS (*)
(*) This commit already existed in another branch; no separate mail sent
4 years, 8 months