[OE-core] [PATCH] recipes-qt: add fix for QWSLock on qt4e

Laszlo Papp lpapp at kde.org
Sat Aug 24 19:28:48 UTC 2013


Well, you should ask upstream about it... maybe it ended up in a decision
it is the wrong way, and something better went in, or being planned to go
in. I think a change should not be integrated like this in grey area.


On Sat, Aug 24, 2013 at 8:25 PM, Eric Nelson <
eric.nelson at boundarydevices.com> wrote:

> Hi Laszlo,
>
>
> On 08/24/2013 12:15 PM, Laszlo Papp wrote:
>
>> This is strange. According to the bugtracker it should be in 4.8.5
>> already... and the recipe seems to be about 4.8.5. It needs more
>> investigation.
>>
>>
> I saw this, but there's no evidence that any change was committed
> and I verified that the bug is still there (it's trivially easy to
> reproduce) and that this patch fixes it.
>
>
>> On Sat, Aug 24, 2013 at 8:13 PM, Saul Wold <sgw at linux.intel.com
>> <mailto:sgw at linux.intel.com>> wrote:
>>
>>     On 08/24/2013 09:49 AM, Eric Nelson wrote:
>>
>>         This patch adds a patch for Qt-Embedded to only
>>         destroy semaphores in the process which created
>>         them.
>>
>>         Original patch by Neil Jerram for the OpenMoko project:
>>         http://lists.openmoko.org/__**pipermail/community/2012-__**
>> November/067806.html<http://lists.openmoko.org/__pipermail/community/2012-__November/067806.html>
>>
>>         <http://lists.openmoko.org/**pipermail/community/2012-**
>> November/067806.html<http://lists.openmoko.org/pipermail/community/2012-November/067806.html>
>> >
>>
>>         See also Bug 31254:
>>         https://bugreports.qt-project.**__org/browse/QTBUG-31254
>>         <https://bugreports.qt-**project.org/browse/QTBUG-31254<https://bugreports.qt-project.org/browse/QTBUG-31254>
>> **>
>>
>>         Signed-off-by: Eric Nelson <eric.nelson at boundarydevices._**_com
>>         <mailto:eric.nelson@**boundarydevices.com<eric.nelson at boundarydevices.com>
>> >>
>>
>>
>>     Besides this, we need an Upstream-Status: Tag, this is either a
>>     Backport or Submitted maybe?
>>
>>
> I submitted a patch, but haven't received any feedback from the Qt'ers:
>         https://codereview.qt-project.**org/#change,62842<https://codereview.qt-project.org/#change,62842>
>
> Should I re-send with Upstream-Status: tag and a reference?
>
>      Sau!
>>
>>
>>         ---
>>            meta/recipes-qt/qt4/qt4-4.8.5.**__inc                  |  1 +
>>            ...-Only-destroy-semaphores-__**in-process-owner.patch | 77
>>
>>         ++++++++++++++++++++++
>>            2 files changed, 78 insertions(+)
>>            create mode 100644
>>         meta/recipes-qt/qt4/qt4-4.8.5/**__0028-QWSLock-Only-destroy-__**
>> semaphores-in-process-owner.__**patch
>>
>>         diff --git a/meta/recipes-qt/qt4/qt4-4.8.**__5.inc
>>         b/meta/recipes-qt/qt4/qt4-4.8.**__5.inc
>>         index 95a14f3..be16bff 100644
>>         --- a/meta/recipes-qt/qt4/qt4-4.8.**__5.inc
>>         +++ b/meta/recipes-qt/qt4/qt4-4.8.**__5.inc
>>
>>         @@ -24,6 +24,7 @@ SRC_URI =
>>         "http://download.qt-project.__**org/official_releases/qt/4.8/$**
>> __{PV}/qt-ever
>>         <http://download.qt-project.**org/official_releases/qt/4.8/$**
>> %7BPV%7D/qt-ever<http://download.qt-project.org/official_releases/qt/4.8/$%7BPV%7D/qt-ever>
>> >
>>
>>           file://0022-Fix-drawing-of-0-_**_width-polylines-from-outside-*
>> *__the-de.patch \
>>
>>           file://0023-QHttpMultiPart-__**fix-data-corruption-in-__**readData-metho.patch
>> \
>>
>>           file://0027-tools.pro-disable-**__qmeegographicssystemhelper._*
>> *_patch \
>>         +
>>         file://0028-QWSLock-Only-__**destroy-semaphores-in-process-**
>> __owner.patch
>>
>>         \
>>                       file://g++.conf \
>>                       file://linux.conf \
>>                       "
>>         diff --git
>>         a/meta/recipes-qt/qt4/qt4-4.8.**__5/0028-QWSLock-Only-destroy-**
>> __semaphores-in-process-owner.**__patch
>>         b/meta/recipes-qt/qt4/qt4-4.8.**__5/0028-QWSLock-Only-destroy-**
>> __semaphores-in-process-owner.**__patch
>>
>>         new file mode 100644
>>         index 0000000..d67a746
>>         --- /dev/null
>>         +++
>>         b/meta/recipes-qt/qt4/qt4-4.8.**__5/0028-QWSLock-Only-destroy-**
>> __semaphores-in-process-owner.**__patch
>>         @@ -0,0 +1,77 @@
>>         +From 9af565935d16ecf8a8c04b5ea850dd**__b34a7c1294 Mon Sep 17
>>         00:00:00 2001
>>         +From: Eric Nelson <eric.nelson at boundarydevices._**_com
>>         <mailto:eric.nelson@**boundarydevices.com<eric.nelson at boundarydevices.com>
>> >>
>>
>>         +Date: Mon, 12 Aug 2013 11:54:05 -0700
>>         +Subject: [PATCH] QWSLock: Only destroy semaphores in process
>> owner
>>         +
>>         +This fixes the case when QT_POSIX_IPC is not defined.
>>         +
>>         +Original patch by Neil Jerram for the OpenMoko project:
>>         +
>>         http://lists.openmoko.org/__**pipermail/community/2012-__**
>> November/067806.html<http://lists.openmoko.org/__pipermail/community/2012-__November/067806.html>
>>
>>         <http://lists.openmoko.org/**pipermail/community/2012-**
>> November/067806.html<http://lists.openmoko.org/pipermail/community/2012-November/067806.html>
>> >
>>         +
>>         +See also Bug 31254:
>>         + https://bugreports.qt-project.**__org/browse/QTBUG-31254
>>         <https://bugreports.qt-**project.org/browse/QTBUG-31254<https://bugreports.qt-project.org/browse/QTBUG-31254>
>> **>
>>         +
>>         +Signed-off-by: Eric Nelson <eric.nelson at boundarydevices._**_com
>>         <mailto:eric.nelson@**boundarydevices.com<eric.nelson at boundarydevices.com>
>> >>
>>
>>         +---
>>         + src/gui/embedded/qwslock.cpp | 13 +++++++++----
>>         + src/gui/embedded/qwslock_p.h |  2 +-
>>         + 2 files changed, 10 insertions(+), 5 deletions(-)
>>         +
>>         +diff --git a/src/gui/embedded/qwslock.cpp
>>         b/src/gui/embedded/qwslock.cpp
>>         +index 3f8f306..cd6a48d 100644
>>         +--- a/src/gui/embedded/qwslock.cpp
>>         ++++ b/src/gui/embedded/qwslock.cpp
>>         +@@ -83,9 +83,12 @@ QWSLock::QWSLock(int id) : semId(id)
>>         +     QWSSignalHandler::instance()->**__addWSLock(this);
>>
>>         + #endif
>>         +
>>         ++    owned = false;
>>         ++
>>         + #ifndef QT_POSIX_IPC
>>         +     if (semId == -1) {
>>         +         semId = semget(IPC_PRIVATE, 3, IPC_CREAT | 0666);
>>         ++        owned = true;
>>         +         if (semId == -1) {
>>         +             perror("QWSLock::QWSLock");
>>         +             qFatal("Unable to create semaphore");
>>         +@@ -100,7 +103,6 @@ QWSLock::QWSLock(int id) : semId(id)
>>         +     }
>>         + #else
>>         +     sems[0] = sems[1] = sems[2] = SEM_FAILED;
>>         +-    owned = false;
>>         +
>>         +     if (semId == -1) {
>>         +         // ### generate really unique IDs
>>         +@@ -134,9 +136,12 @@ QWSLock::~QWSLock()
>>         +
>>         +     if (semId != -1) {
>>         + #ifndef QT_POSIX_IPC
>>         +-        qt_semun semval;
>>         +-        semval.val = 0;
>>         +-        semctl(semId, 0, IPC_RMID, semval);
>>         ++
>>         ++        if (owned) {
>>         ++            qt_semun semval;
>>         ++            semval.val = 0;
>>         ++            semctl(semId, 0, IPC_RMID, semval);
>>         ++        }
>>         +         semId = -1;
>>         + #else
>>         +         // emulate the SEM_UNDO behavior for the BackingStore
>> lock
>>         +diff --git a/src/gui/embedded/qwslock_p.h
>>         b/src/gui/embedded/qwslock_p.h
>>         +index ead7b89..d16b3d5 100644
>>         +--- a/src/gui/embedded/qwslock_p.h
>>         ++++ b/src/gui/embedded/qwslock_p.h
>>         +@@ -86,8 +86,8 @@ private:
>>         +     int lockCount[2];
>>         + #ifdef QT_POSIX_IPC
>>         +     sem_t *sems[3];
>>         +-    bool owned;
>>         + #endif
>>         ++    bool owned;
>>         + };
>>         +
>>         + QT_END_NAMESPACE
>>         +--
>>         +1.8.1.2
>>         +
>>
>>     ______________________________**___________________
>>     Openembedded-core mailing list
>>     Openembedded-core at lists.__open**embedded.org<http://openembedded.org>
>>     <mailto:Openembedded-core@**lists.openembedded.org<Openembedded-core at lists.openembedded.org>
>> >
>>     http://lists.openembedded.org/**__mailman/listinfo/**
>> openembedded-__core<http://lists.openembedded.org/__mailman/listinfo/openembedded-__core>
>>     <http://lists.openembedded.**org/mailman/listinfo/**openembedded-core<http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>> >
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20130824/ae0a7cb2/attachment-0002.html>


More information about the Openembedded-core mailing list