KApiDox udpate

2016-05-15 Thread Olivier Churlaud

Hi,

I have 2 questions about kapidox, as there is no active maintainer, 
please consider answering even if you don't feel so concerned, because 
at the end, you are:


1) What scripts except kapidox runs over the metainfo.yml files? Should 
I keep some keys words for compatibility?


2) For 2 weeks I have a pending review: 
https://git.reviewboard.kde.org/r/127747/ . In my opinion, it brings a 
lot of good for project visibility. It's not perfect but usable, and I 
want that this first proof of concept is used and accepted before making 
it perfect (or as perfect as possible). Could you give me the magic 
"Ship it" or else tell me what is wrong for you?


I'm ok to become maintainer of kapidox after I get the "Ship it" word.

Cheers

Olivier

--

Olivier CHURLAUD
Engineer Student at Ecole Centrale de Lyon
in Dual Degree at TU Berlin, M.Sc. Elektrotechnik
@: oliv...@churlaud.com
tel: +49 (0)1575-2931348
in:  http://linkedin.com/in/olivierchurlaud
web: http://olivier.churlaud.com



Re: Review Request 127866: Oxygen: Fix QCache usage

2016-05-15 Thread Mark Gaiser


> On mei 15, 2016, 8:51 a.m., Hugo Pereira Da Costa wrote:
> > To be honest, I am quite puzzle by this whole thing.
> > Now, every insertion in the cache requires at least two searches in there 
> > and (in many case) at least one copy constructor being called. This is 
> > quite expansive ... (even though this happens only if the object is not 
> > found in the cache).
> > 
> > Also: not sure I understand what issue we are trying to fix and how: why is 
> > it that if the object inserted in the cache is immediately deleted, just 
> > retrying an indefinite amount of time will "fix" the issue. Are we not just 
> > transforming a crash into a freeze (infinite loop) ? 
> > 
> > The Qt documentation is very vague about cases where the object is deleted 
> > immediately, and the only case it mentions is: " In particular, if cost is 
> > greater than maxCost(), the object will be deleted immediately."
> > Well, in such cases (that should not appear here), the infinite loop will 
> > not help. Right ? 
> > Since we have no idea on how "predictible" the other deletion cases are, I 
> > don't think the fix is a good fix. 
> > 
> > Does that mean that we should change the code in order to use references 
> > rather than pointer everywhere ? (as you did in the first patch on this 
> > topic) ? 
> > 
> > Or get rid of using QCache (because this absence of guarantee at the 
> > insertion stage is too much of a pain to handle) ? 
> > 
> > Or just commit and wait for bug reports about freezes ? (but with a happy 
> > coverty) ?
> 
> Michael Pyne wrote:
> For the most part the requirements are determined by the current return 
> type within the code. If we return a pointer then currently it has to have 
> come directly out of the QCache. Since QCache is assumed to be the owner, the 
> calling code won't delete the pointer ; but if the caller won't delete the 
> pointer then we'll have a memory leak if we return a pointer to something 
> that had been new'd instead.
> 
> References (i.e. QColor&) are a similar issue; it's safe enough to return 
> a reference to something held within the QCache, but we can't return a 
> reference to a local variable since that reference will invalidate as soon as 
> we return from the function. Of course a reference to a cached QColor may 
> *also* invalidate with the next call to an insert method of that cache, but 
> that's a separate story. 
> 
> It is unfortunate that the Qt docs are vague about this, since if the 
> **only** thing we had to worry about was cost being >maxCost(), we could 
> pretty much just mark 'ignore' for all the Coverity issues associated with 
> this (and I'd be fine doing that). The docs do kind of hint at that but don't 
> make it clear if is the only way that an entry would be deleted immediately.
> 
> I think you're right that a loop is not a good idea... I was figuring 
> that eventually QCache would remove enough other items to make it work but 
> then I suppose QCache::insert() would have done that with the very first 
> attempt.
> 
> As far as other options, I would definitely recommend against QCache for 
> the QColors: I'd say just hold onto specific QColors directly (perhaps in a 
> QHash) and, if possible, return them as values instead of references.
> 
> I'm not sure if we could get away with the same for TileSets, but if so 
> it would again make things easier. If we can't we could look into making 
> TileSet an implicitly shared class so that we can return it by value cheaply.
> 
> I wouldn't recommend a commit only to make Coverity happy. I've marked 
> other reports as "False Positive" and even "That's a bug, but we're ignoring 
> it" before. But it does seem to me that if a crash *is* possible (especially 
> in underlying library code) we should do something to avoid it.
> 
> Either way I'll see if I can work up a revised patch but I'd still 
> appreciate advice on what's workable or not within Oxygen.

Disclaimer: i'm not an oxygen dev! I just read the patch and want to share my 
opinion :)

I'm also quite puzzeled with this change..

A cache is "usually" being used to store the result of a "heavy" operation and 
use that result the next time to speed things up.
That principle sounds great to me and should be used in places if needed. A 
better approach would be to speed up the slow operation to make caching simply 
not needed, but that's a different story.

The changes you've made now make QCache usage heavier and most certainly much 
more difficult to follow because of the added while loops to keep an 
hypothetical case from happening. If QCache requires measures like this then 
perhaps we should not be using QCache at all.

I understand you're trying to do your best, Michael Pyne, but a patch like this 
feels like heading in the wrong direction to me..

I don't know if it's usefull, but there is als QPixmapCache [1] (which uses a 
QCache internally, but seems to behave as a 

Re: Review Request 127866: Oxygen: Fix QCache usage

2016-05-15 Thread Michael Pyne


> On May 15, 2016, 8:51 a.m., Hugo Pereira Da Costa wrote:
> > To be honest, I am quite puzzle by this whole thing.
> > Now, every insertion in the cache requires at least two searches in there 
> > and (in many case) at least one copy constructor being called. This is 
> > quite expansive ... (even though this happens only if the object is not 
> > found in the cache).
> > 
> > Also: not sure I understand what issue we are trying to fix and how: why is 
> > it that if the object inserted in the cache is immediately deleted, just 
> > retrying an indefinite amount of time will "fix" the issue. Are we not just 
> > transforming a crash into a freeze (infinite loop) ? 
> > 
> > The Qt documentation is very vague about cases where the object is deleted 
> > immediately, and the only case it mentions is: " In particular, if cost is 
> > greater than maxCost(), the object will be deleted immediately."
> > Well, in such cases (that should not appear here), the infinite loop will 
> > not help. Right ? 
> > Since we have no idea on how "predictible" the other deletion cases are, I 
> > don't think the fix is a good fix. 
> > 
> > Does that mean that we should change the code in order to use references 
> > rather than pointer everywhere ? (as you did in the first patch on this 
> > topic) ? 
> > 
> > Or get rid of using QCache (because this absence of guarantee at the 
> > insertion stage is too much of a pain to handle) ? 
> > 
> > Or just commit and wait for bug reports about freezes ? (but with a happy 
> > coverty) ?

For the most part the requirements are determined by the current return type 
within the code. If we return a pointer then currently it has to have come 
directly out of the QCache. Since QCache is assumed to be the owner, the 
calling code won't delete the pointer ; but if the caller won't delete the 
pointer then we'll have a memory leak if we return a pointer to something that 
had been new'd instead.

References (i.e. QColor&) are a similar issue; it's safe enough to return a 
reference to something held within the QCache, but we can't return a reference 
to a local variable since that reference will invalidate as soon as we return 
from the function. Of course a reference to a cached QColor may *also* 
invalidate with the next call to an insert method of that cache, but that's a 
separate story. 

It is unfortunate that the Qt docs are vague about this, since if the **only** 
thing we had to worry about was cost being >maxCost(), we could pretty much 
just mark 'ignore' for all the Coverity issues associated with this (and I'd be 
fine doing that). The docs do kind of hint at that but don't make it clear if 
is the only way that an entry would be deleted immediately.

I think you're right that a loop is not a good idea... I was figuring that 
eventually QCache would remove enough other items to make it work but then I 
suppose QCache::insert() would have done that with the very first attempt.

As far as other options, I would definitely recommend against QCache for the 
QColors: I'd say just hold onto specific QColors directly (perhaps in a QHash) 
and, if possible, return them as values instead of references.

I'm not sure if we could get away with the same for TileSets, but if so it 
would again make things easier. If we can't we could look into making TileSet 
an implicitly shared class so that we can return it by value cheaply.

I wouldn't recommend a commit only to make Coverity happy. I've marked other 
reports as "False Positive" and even "That's a bug, but we're ignoring it" 
before. But it does seem to me that if a crash *is* possible (especially in 
underlying library code) we should do something to avoid it.

Either way I'll see if I can work up a revised patch but I'd still appreciate 
advice on what's workable or not within Oxygen.


- Michael


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127866/#review95480
---


On May 8, 2016, 5:03 a.m., Michael Pyne wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127866/
> ---
> 
> (Updated May 8, 2016, 5:03 a.m.)
> 
> 
> Review request for kde-workspace and Hugo Pereira Da Costa.
> 
> 
> Repository: oxygen
> 
> 
> Description
> ---
> 
> This should mostly complete the QCache fixes I kicked off in a previous RR, 
> 127837. Hugo noted there were many other similar usages, and boy he wasn't 
> kidding! ;) The long story short is that these usages can theoretically cause 
> use-after-free behavior (which can lead to crashes and even undefined 
> behavior if the compiler ever gets smart).
> 
> *NOTE* It is -much- easier to review if you download the diff to your git 
> repository for oxygen and then 

KDE Frameworks 5.22.0 released

2016-05-15 Thread David Faure
15th May 2016. KDE today announces the release of KDE Frameworks 5.22.0.

KDE Frameworks are 70 addon libraries to Qt which provide a wide variety of·
commonly needed functionality in mature, peer reviewed and well tested·
libraries with friendly licensing terms. For an introduction see the·
Frameworks 5.0 release announcement.

Attica

  Properly check if a URL is a local file

Baloo

  Compilation fixes for Windows

Breeze Icons

  Many new action and application icons.
  Specify offered extensions as per change in kiconthemes

Extra CMake Modules

  Android deployment: support projects without things in share or lib/qml (bug 
362578)
  Enables KDE_INSTALL_USE_QT_SYS_PATHS if CMAKE_INSTALL_PREFIX Qt5 prefix
  ecm_qt_declare_logging_category: improve error message when using without 
including

Framework Integration

  Remove platformtheme plugin as it's in plasma-integration

KCoreAddons

  Provide a way to disable inotify use in KDirWatch
  Fix KAboutData::applicationData() to init from current Q*Application 
metadata
  Make clear that KRandom is not recommended for cryptography purposes

KDBusAddons

  KDBusService: turn '-' into '_' in object paths

KDeclarative

  Don't crash if we have no openGL context

KDELibs 4 Support

  Provide a fallback MAXPATHLEN if not defined
  Fix KDateTime::isValid() for ClockTime values (bug 336738)

KDocTools

  Added entity applications

KFileMetaData

  Merge branch 'externalextractors'
  Fixed external plugins and tests
  Added support for external writer plugins
  Added writer plugin support
  Add external extractor plugin support

KHTML

  Implement toString for Uint8ArrayConstructor and friends
  Merge in several Coverity-related fixes
  Correctly use QCache::insert
  Fix some memory leaks
  Sanity check CSS web font parsing, avoid potential mem leak
  dom: Add tag priorities for 'comment' tag

KI18n

  libgettext: Fix potential use-after-free using non-g++ compilers

KIconThemes

  Use appropriate container for internal pointer array
  Add opportunity to reduce unneeded disk accesses, introduces KDE-Extensions
  Save some disk accesses

KIO

  kurlnavigatortoolbutton.cpp - use buttonWidth in paintEvent()
  New file menu: filter out duplicates (e.g. between .qrc and system files) 
(bug 
355390)
  Fix error message on startup of the cookies KCM
  Remove kmailservice5, it can only do harm at this point (bug 354151)
  Fix KFileItem::refresh() for symlinks. The wrong size, filetype and 
permissions were being set
  Fix regression in KFileItem: refresh() would lose the file type, so a dir 
became a file (bug 353195)
  Set text on QCheckbox widget rather than using a separate label (bug 245580)
  Don't enable acl permissions widget if we don't own the file (bug 245580)
  Fix double-slash in KUriFilter results when a name filter is set
  KUrlRequester: add signal textEdited (forwarded from QLineEdit)

KItemModels

  Fix template syntax for test case generation
  Fix linking with Qt 5.4 (wrongly placed #endif)

KParts

  Fix the layout of the BrowserOpenOrSaveQuestion dialogue

KPeople

  Add a check for PersonData being valid

KRunner

  Fix metainfo.yaml: KRunner is neither a porting aid nor deprecated

KService

  Remove too-strict maximum string length in KSycoca database

KTextEditor

  Use proper char syntax '"' instead of '\"'
  doxygen.xml: Use default style dsAnnotation for "Custom Tags" as well (less 
hard-coded colors)
  Add option to show the counter of words
  Improved foreground color contrast for search & replace highlightings
  Fix crash when closing Kate through dbus while the print dialog is open (bug 
#356813) (bug 356813)
  Cursor::isValid(): add note about isValidTextPosition()
  Add API {Cursor, Range}::{toString, static fromString}

KUnitConversion

  Inform the client if we don't know the conversion rate
  Add ILS (Israeli New Shekel) currency (bug 336016)

KWallet Framework

  disable seession restore for kwalletd5

KWidgetsAddons

  KNewPasswordWidget: Remove size hint on spacer, which was leading to some 
always empty space in the layout
  KNewPasswordWidget: fix QPalette when widget is disabled

KWindowSystem

  Fix generation of path to xcb plugin

Plasma Framework

  [QuickTheme] Fix properties
  highlight/highlightedText from proper color group
  ConfigModel: Don't try to resolve empty source path from package
  [calendar] Only show the events mark on days grid, not month or year
  declarativeimports/core/windowthumbnail.h - fix -Wreorder warning
  reload icon theme properly
  Always write the theme name to plasmarc, also if the default theme is chosen
  [calendar] Add a mark to days containing an event
  add Positive, Neutral, Negative text colors
  ScrollArea: Fix warning when contentItem is not Flickable
  Add a prop and method for aligning the menu against a corner of its visual 
parent
  Allow setting minimum width on Menu
  Maintain order in stored item list
  Extend API to allow (re)positioning menu items during procedural insert
  

Re: Review Request 127866: Oxygen: Fix QCache usage

2016-05-15 Thread Hugo Pereira Da Costa

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127866/#review95480
---



To be honest, I am quite puzzle by this whole thing.
Now, every insertion in the cache requires at least two searches in there and 
(in many case) at least one copy constructor being called. This is quite 
expansive ... (even though this happens only if the object is not found in the 
cache).

Also: not sure I understand what issue we are trying to fix and how: why is it 
that if the object inserted in the cache is immediately deleted, just retrying 
an indefinite amount of time will "fix" the issue. Are we not just transforming 
a crash into a freeze (infinite loop) ? 

The Qt documentation is very vague about cases where the object is deleted 
immediately, and the only case it mentions is: " In particular, if cost is 
greater than maxCost(), the object will be deleted immediately."
Well, in such cases (that should not appear here), the infinite loop will not 
help. Right ? 
Since we have no idea on how "predictible" the other deletion cases are, I 
don't think the fix is a good fix. 

Does that mean that we should change the code in order to use references rather 
than pointer everywhere ? (as you did in the first patch on this topic) ? 

Or get rid of using QCache (because this absence of guarantee at the insertion 
stage is too much of a pain to handle) ? 

Or just commit and wait for bug reports about freezes ? (but with a happy 
coverty) ?

- Hugo Pereira Da Costa


On May 8, 2016, 5:03 a.m., Michael Pyne wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127866/
> ---
> 
> (Updated May 8, 2016, 5:03 a.m.)
> 
> 
> Review request for kde-workspace and Hugo Pereira Da Costa.
> 
> 
> Repository: oxygen
> 
> 
> Description
> ---
> 
> This should mostly complete the QCache fixes I kicked off in a previous RR, 
> 127837. Hugo noted there were many other similar usages, and boy he wasn't 
> kidding! ;) The long story short is that these usages can theoretically cause 
> use-after-free behavior (which can lead to crashes and even undefined 
> behavior if the compiler ever gets smart).
> 
> *NOTE* It is -much- easier to review if you download the diff to your git 
> repository for oxygen and then run "git diff -b" to ignore whitespace 
> changes, particularly for the QPixmap changes.
> 
> For QPixmaps we return values instead of pointers, so we simply make a 
> separate copy to be cached when we do insert. For QColor we return references 
> to values so we *must* return pointers, and those have to be owned by a 
> QCache to avoid memleaks. So I added a helper function to loop until the 
> cache accepts the new entry. TileSets are a similar concern, except those 
> have manual loops since I was uncertain about whether TileSet's copy 
> constructor was the best idea or not.
> 
> This fixes a ton of Coverity issues (59717 - 259733, 259739, 259742 - 259752, 
> 1336154, 1336155) and might be associated with Qt bug 38142 and KDE bug 
> 219055 (which doesn't actually appear to be a dupe of a different bug to 
> me...).
> 
> 
> Diffs
> -
> 
>   kstyle/oxygenstylehelper.cpp 612ba37 
>   liboxygen/oxygenhelper.h a6453a0 
>   liboxygen/oxygenhelper.cpp 4843604 
>   liboxygen/oxygenshadowcache.cpp 907e586 
> 
> Diff: https://git.reviewboard.kde.org/r/127866/diff/
> 
> 
> Testing
> ---
> 
> Compiled without warnings, installed and ran `oxygen-demo5 -style oxygen`. 
> Used the GUI Benchmark feature to automatically cycle through all the listed 
> features -- no crashes or obvious rendering errors.
> 
> 
> Thanks,
> 
> Michael Pyne
> 
>



Re: Review Request 127924: Warn about KDateTimeParser::parseDateUnicode not being implemented

2016-05-15 Thread Aleix Pol Gonzalez

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127924/#review95479
---



+1

- Aleix Pol Gonzalez


On May 15, 2016, 10:44 a.m., Albert Astals Cid wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127924/
> ---
> 
> (Updated May 15, 2016, 10:44 a.m.)
> 
> 
> Review request for kdelibs and John Layt.
> 
> 
> Repository: kdelibs
> 
> 
> Description
> ---
> 
> It's been like that for years, so i don't think anyone is actually using it, 
> but at least give a warning in case someone is.
> 
> I'll do the same thing to kdelibs4support if approved.
> 
> 
> Diffs
> -
> 
>   kdecore/date/kdatetimeparser.cpp a416808 
> 
> Diff: https://git.reviewboard.kde.org/r/127924/diff/
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Albert Astals Cid
> 
>



Review Request 127924: Warn about KDateTimeParser::parseDateUnicode not being implemented

2016-05-15 Thread Albert Astals Cid

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127924/
---

Review request for kdelibs and John Layt.


Repository: kdelibs


Description
---

It's been like that for years, so i don't think anyone is actually using it, 
but at least give a warning in case someone is.

I'll do the same thing to kdelibs4support if approved.


Diffs
-

  kdecore/date/kdatetimeparser.cpp a416808 

Diff: https://git.reviewboard.kde.org/r/127924/diff/


Testing
---


Thanks,

Albert Astals Cid