Re: drkonqi's many debuggers

2023-08-31 Thread Thiago Macieira
On Thursday, 31 August 2023 03:42:59 PDT Halla Rempt wrote:
> On dinsdag 29 augustus 2023 05:22:56 CEST Thiago Macieira wrote:
> > True, but the majority of our user base is still Linux, so if we had to
> > choose only one, it would have to be gdb.
> 
> Um, no? The majority is on Windows.

Yes, we have certain hero apps (like Krita) that would skew the statistics. So 
maybe you're right.

But that doesn't change the conclusion because the vast majority of Windows 
users won't have a debugger installed. Those few that do won't have the 
debugger in the standard $PATH because it's just not the way things are done 
on Windows.

So rephrasing what I meant to say, "the vast majority of users who have any 
debugger installed are Linux users with gdb".

But I maintain that we should support both GDB and LLDB.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering





Re: drkonqi's many debuggers

2023-08-28 Thread Thiago Macieira
On Monday, 28 August 2023 21:33:25 PDT Nate Graham wrote:
> On 8/28/23 22:25, Thiago Macieira wrote:
> > It does because it might be missing in the system far more often than gdb.
> > We'd get more backtraces and therefore more data if we focused on gdb
> > 
> > Another point is that Linux distributions have been shipping gdb with
> > debuginfod support for a year or two. lldb support for it is still
> > pending:
> > https://github.com/llvm/llvm-project/issues/52732
> > 
> > Therefore, I repeat: if there's room for only one, it's gdb.
> > 
> > If we do support both, then on Linux gdb must be used in preference.
> 
> DrKonqi itself could declare a required build dependency on lldb, and
> then we would know it's present on the system. Distros that don't
> package it would then have to omit DrKonqi, or start packaging it.

Build dependencies don't necessarily translate to runtime dependencies. What 
you're asking for is package management, something we don't control. Yes, we 
could convince all packagers to add it, but

a) that's not a sure-fire guarantee
b) do we even want to? Do we want to make it so every user who installs Plasma 
Workspace must have a debugger?

No, debuggers are optional.

Then there's my argument about libdebuginfo integration.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering





Re: drkonqi's many debuggers

2023-08-28 Thread Thiago Macieira
On Monday, 28 August 2023 20:30:36 PDT Harald Sitter wrote:
> I am not quite following. We can depend on any debugger we want,
> surely? I mean, there are practical implications to consider for sure,
> but gdb being the dominant debugger on Linux doesn't prevent us from
> depending on lldb instead.

It does because it might be missing in the system far more often than gdb. 
We'd get more backtraces and therefore more data if we focused on gdb

Another point is that Linux distributions have been shipping gdb with 
debuginfod support for a year or two. lldb support for it is still pending:
https://github.com/llvm/llvm-project/issues/52732

Therefore, I repeat: if there's room for only one, it's gdb.

If we do support both, then on Linux gdb must be used in preference.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering
.




Re: drkonqi's many debuggers

2023-08-28 Thread Thiago Macieira
On Monday, 28 August 2023 12:59:01 PDT Adriaan de Groot wrote:
> (puts on FreeBSD hat) On the non-GNU side of the world, lldb is the thing
> that is "installed anyway" and gdb takes extra effort. Though I don't know
> if the lldb integration works -- I have both installed, and I don't know if
> I ever bother to interact with DrKonqi (sorry).

True, but the majority of our user base is still Linux, so if we had to choose 
only one, it would have to be gdb.

That's probably why we need to have both gdb and lldb supported.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering





Re: drkonqi's many debuggers

2023-08-28 Thread Thiago Macieira
On Monday, 28 August 2023 08:23:00 PDT Harald Sitter wrote:
> On a related note: does anyone have opinions on using lldb instead of
> gdb?

This contradicts your earlier point of:

> I am wondering if we couldn't just focus on one debugger
> and get less code with a better experience (both in writing and
> reading it).

If you want *one* debugger, then it has to be GDB on Linux, because it's the 
one that most people will have installed.

$ lldb --version
zsh: command not found: lldb

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering





Re: Fwd: KDiff3 v 1.9.6 Windows crash

2022-11-16 Thread Thiago Macieira
On Wednesday, 16 November 2022 13:51:47 PST Michael Reeves wrote:
> This is the question  I need answered. Windows by default gives the most
> useless crash report I've ever seen. All I know from that is that the crash
> point is inside qt but that doesn't help at all with a Qt  based
> application. Worse a lot the documentation I find assumes you are a)
> debugging a drive and/or b) working with msvc project that you can
> reproduce the crash in.

The same as anywhere else: run the application inside the debugger (gdb if it 
is MinGW). When it crashes, type "bt".

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering





Re: global shortcuts

2022-01-22 Thread Thiago Macieira
On Saturday, 22 January 2022 04:33:24 PST Martin Koller wrote:
> Hi,
> 
> which component is responsible for acting on global shortcuts, e.g.
> what triggers that Alt-F2 is opening krunner ?

kglobalacceld

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DPG Cloud Engineering





Re: KPluginLoader UBSAN warnings (object has invalid vptr)

2020-10-16 Thread Thiago Macieira
On Thursday, 15 October 2020 07:22:59 PDT Milian Wolff wrote:
> I have the feeling that this might be a limitation of UBSAN? Or is this an
> actual problem - does anyone know?

I've seen similar warnings that were impossible. See
https://bugreports.qt.io/browse/QTBUG-85398

I'm not sure yet if this is an UBSan bug or if there was some weird, duplicate 
symbol problem.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DPG Cloud Engineering





Re: Is kdeinit still actual?

2020-05-01 Thread Thiago Macieira
On Monday, 27 April 2020 03:53:38 PDT Alexander Volkov wrote:
> As for KIO slaves, they are started from processes that are already
> linked with many KDE libraries and there is no
> 
> much benefit in starting them from kdeinit.

That's an incorrect conclusion. Your premise is correct: the process that 
launches them links to many KDE libraries. But since that launch is a regular 
fork() + exec(), the premise is irrelevant. The KDE libraries will be loaded 
again, relocated and initialised, before the ioslave code is run.

A quick test here shows kdeinit and one ioslave (file.so, that was already 
running) are sharing 2380 kB between them. The ioslave has a total of 548 kB 
of additional private memory that isn't shared with anything else in the 
system.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel System Software Products





Re: ELF Dissector in kdereview

2019-10-01 Thread Thiago Macieira
On Tuesday, 1 October 2019 05:06:57 PDT Jonathan Riddell wrote:
> -isystem
> /usr/include/capstone/..
[...]
> /usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: No such file or
> directory

That -isystem is the mistake.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel System Software Products





Re: Time formats / LC_TIME challenge for 4-digit year support

2018-12-04 Thread Thiago Macieira
On Tuesday, 4 December 2018 11:42:41 PST Jaroslaw Staniek wrote:
> I did not know there are such differences for the locale system. But by no
> means my email is a call to "patch" the Qt-level problem by having a KF5
> solution. And I am skeptical if Qt can be patched in version 5 with such
> incompatible change. Hopefully these poor man analysis help some other app
> developers 

If you want that, please submit your patch to unicode.org. They need to update 
the CLDR to have 4-digit years for the locale of your choice.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center





Re: Installing qml caches

2018-07-31 Thread Thiago Macieira
On Sunday, 8 July 2018 09:06:58 PDT Simon Hausmann wrote:
> And use the QtQuickCompiler build
> option with 5.11.

Is that just running qmlcachegen on all the *.qml?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center





Re: c++11 and workspace

2017-08-17 Thread Thiago Macieira
On Thursday, 17 August 2017 08:52:21 PDT Martin Flöser wrote:
> Am 2017-08-17 16:48, schrieb Hugo Pereira Da Costa:
> > Hi,
> > 
> > Quick question on the status of c++11 features that I can include in
> > breeze. Are std::function allowed ?
> 
> In workspace you can/should use C++11, KWin/master even requires C++14.

Confirm if you mean the core language or the standard library.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: QProcess::startDetached and bash stdout capture

2017-03-25 Thread Thiago Macieira
On sábado, 25 de março de 2017 09:03:28 PDT David Faure wrote:
> On samedi 25 mars 2017 16:50:37 CET Thiago Macieira wrote:
> > One problem is because the launched process inherits the pipes to stdout
> > and stderr
> 
> Really, even with startDetached? I assumed that was more "detached" than
> that 

But you may want:

int fd = open("/dev/null", O_RDWR);
dup2(fd, STDIN_FILENO);
dup2(fd, STDOUT_FILENO);
dup2(fd, STDERR_FILENO);
close(fd);

Like I said, this may be useful to add as a flag to QProcess::startDetached 
too.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: QProcess::startDetached and bash stdout capture

2017-03-25 Thread Thiago Macieira
On sábado, 25 de março de 2017 09:03:28 PDT David Faure wrote:
> On samedi 25 mars 2017 16:50:37 CET Thiago Macieira wrote:
> > One problem is because the launched process inherits the pipes to stdout
> > and stderr
> 
> Really, even with startDetached? I assumed that was more "detached" than
> that ;)

Right, nothing in it closes stdout, because people want to see the output. 
When we're connected to the terminal, that's usually useful.

If we're connected to a pipe... not so much.

> > but the shell sees the process group it launched exiting.
> 
> I never understood much about "process group". Is it the issue here? Is the
> helper considered part of the same process group as kdialog?

startDetached does setsid(), so it starts a new session and process group. I 
have to confess not understanding SID and PGID very well either, but I do know 
that each process the shell launches is in its own process group and the shell 
waits for the process group to exit, not just the process it launched.

> > It will probably close the pipe. Normally, this process would exit soon
> > with SIGPIPE, but since a lot of code relating to sockets and pipes turns
> > SIGPIPE off, it's possible that the detached process never receives
> > SIGPIPE and simply remains forever.
> 
> I'm confused as to which one you call the "detached process" here,
> kdialog or the helper.

The helper.

> Are you saying what I need is a call to sigaction to re-enable exiting on
> SIGPIPE, in kdialog, just before returning from main()?

No, that won't help.

> Could it be related to SIGCHLD, rather? I know QProcess[Manager] plays with
> that, and it sounds like what the shell is waiting for from kdialog. But
> surely inhibiting the -receiving- of SIGCHLD in kdialog shouldn't break the
> parent shell receiving SIGCHLD when kdialog terminates?

No, SIGCHLD isn't the case here. SIGCHLD is reset to default state by exec() 
and even if it were ignored in the helper, it wouldn't make a difference.

> > > I tried close(1) like the kde4 kdialog was doing (due to forking,
> > > though),
> > > no change.
> > 
> > There's another problem: you have a race condition between the parent
> > (kdialog) exiting and the grandchild (helper) writing its information
> > before closing stdout.
> 
> No no, kdialog is the one writing to stdout. It's just writing out the dbus
> service name that it knows the helper will use.
> It's much simpler that way, it avoids all the issues you mention.

Hmm... ok, then I don't understand. I need a bit more of information.

1) does the shell read properly from kdialog and get the service address? Is 
it correct?

2) did kdialog exit? Is kialog the process in  state?

3) is the helper still running? Can you paste the ps j for it? I'd like to see 
the PGID and SID. If you can show the shell, the zombie process and ps itself, 
it would help comparison.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: QProcess::startDetached and bash stdout capture

2017-03-25 Thread Thiago Macieira
On sábado, 25 de março de 2017 08:50:37 PDT Thiago Macieira wrote:
> One problem is because the launched process inherits the pipes to stdout and
> stderr, but the shell sees the process group it launched exiting. It will
> probably close the pipe. Normally, this process would exit soon with
> SIGPIPE, but since a lot of code relating to sockets and pipes turns
> SIGPIPE off, it's possible that the detached process never receives SIGPIPE
> and simply remains forever.

Just found out that startDetached ignores SIGPIPE for all its child processes. 
And that has been there forever (see [1]). It's one of those old bug reports 
we used to get that the launched process received SIGPIPE after trying to 
write to stdout (like it should!) and then we decided to "help" the customer 
without understanding the issue properly.

The problem is that this is very common: launched processes often write 
debugging information to stderr... So we can't change it now. Instead, we 
could add a flag to startDetached and to indicate we should close stdin, stdout 
and stderr, reopening with /dev/null, and let SIGPIPE back to the default.

[1] http://code.qt.io/cgit/qt/qt.git/tree/src/corelib/io/qprocess_unix.cpp?
h=v4.5.1#n1316

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: What's kde-core-devel for?

2016-12-16 Thread Thiago Macieira
On quinta-feira, 15 de dezembro de 2016 22:18:31 PST Albert Astals Cid wrote:
> In the old days it had kdelibs development discussion but not that that has
> moved over to kde-frameworks-devel, waht's kde-core-devel for?
> 
> Can we kill it and move parts of it to kde-devel and other parts maybe to
> release-team (like adding new software to releases and such)?
> 
> What do people that read this list think?

This list is about discussions about changes that affect all applications.

How about killing kde-frameworks-devel and bringing that discussion back here 
where it belongs?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: Test your applications on Wayland

2016-10-12 Thread Thiago Macieira
Em quarta-feira, 12 de outubro de 2016, às 07:47:44 CEST, Martin Graesslin 
escreveu:
> Best is of course if Qt would release a 5.7.1, so that this cherry-picking
> is no longer required. Most important is the first of those three patches
> as without the applications are pretty much unusable.

Should happen in the next couple of weeks, now that 5.6.2 is closed.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: Review Request 128909: initial, minimal support for OS X

2016-09-14 Thread Thiago Macieira
On quarta-feira, 14 de setembro de 2016 17:58:26 PDT René J.V. Bertin wrote:
> > On Sept. 14, 2016, 7:33 p.m., Anthony Fieroni wrote:
> > > processcore/processes_darwin_p.cpp, line 104
> > > <https://git.reviewboard.kde.org/r/128909/diff/1/?file=476875#file476875
> > > line104>> > 
> > > *inline* must be used in function definition not in declaration.
> 
> I didn't see the point of the way the keyword is being used here either, but
> I aligned myself to the current practice.
> 
> So I take it I shouldn't only correct `argMax()`?

It's all in the same .cpp, it doesn't matter. Inline is correct where it is.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: Why do we need to run two kwalletd?

2016-05-28 Thread Thiago Macieira
Em sábado, 28 de maio de 2016, às 16:14:23 BRT, Albert Astals Cid escreveu:
> El dissabte, 28 de maig de 2016, a les 10:19:59 CEST, Thiago Macieira va
> 
> escriure:
> > Commit https://quickgit.kde.org/?
> > p=kwallet.git=commit=f7c1586264e029be50f3d9ca15ccad268a8c5601 renamed
> > the binary and the D-Bus name for kwalletd in the name of
> > coinstallability.
> > 
> > Coinstallation is fine, but as a consequence, people with mixed KDE 4 and
> > KF5- based systems now have two kwalletd running and often two
> > kwalletmanager running, with two icons in their systrays and little
> > information which is which.
> > 
> > Moreover, there are two sets of wallets, with subtle differences because
> > one was migrated off the other at some point in time, but then they
> > diverged.
> > 
> > Was that the correct/wise decision? Why not have *one* wallet for all
> > programs?
> 
> I think it was not a wise decision, it was probably done for people thinking
> with a "KDE 5" mindset in which everything would move to KF5 & friends at
> the same time.
> 
> I don't think it's an easily fixable solution at this point unfortunately,
> I'd like to be proven wrong :)

It's simple to make kwalletd5 acquire both D-Bus names, which would prevent 
kwalletd from doing so. I don't know how to prevent it from being launched in 
the first place, though, so we just need to make sure that kwalletd5 starts 
first.

There also needs to be a way to migrate the contents of the old wallet into 
the new.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Why do we need to run two kwalletd?

2016-05-28 Thread Thiago Macieira
Commit https://quickgit.kde.org/?
p=kwallet.git=commit=f7c1586264e029be50f3d9ca15ccad268a8c5601 renamed the 
binary and the D-Bus name for kwalletd in the name of coinstallability.

Coinstallation is fine, but as a consequence, people with mixed KDE 4 and KF5-
based systems now have two kwalletd running and often two kwalletmanager 
running, with two icons in their systrays and little information which is 
which.

Moreover, there are two sets of wallets, with subtle differences because one 
was migrated off the other at some point in time, but then they diverged.

Was that the correct/wise decision? Why not have *one* wallet for all 
programs?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: Qt 4 Builds

2016-03-27 Thread Thiago Macieira
On domingo, 27 de março de 2016 10:57:18 PDT Ben Cooksley wrote:
> As a general anecdote, the community needs to decide if we are going
> to continue releasing and supporting Qt 4 builds at all. Considering
> Qt 4 itself is EOL per upstream I believe, I think it's time we
> followed suit.

Not completely EOL'ed yet. Security fixes are still applied for now, but no 
other changes.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: Policy regarding QtWebKit and QtScript

2016-03-07 Thread Thiago Macieira
Em sábado, 5 de março de 2016, às 08:09:22 PST, Thomas Friedrichsmeier 
escreveu:
> I would advise KDE projects to be very
> reluctant about moving away from QtWebKit, unless and until they have
> very compelling reason to do so

Like security. That's a compelling reason.

The other day I noticed something strange with one of my online web mail 
accounts I only access using rekonq (QtWebKit), so it may be that the engine 
is already past expiration date.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: KDE file dialog

2016-03-01 Thread Thiago Macieira
On terça-feira, 1 de março de 2016 21:20:03 PST Mark Gaiser wrote:
> Isn't it possible to have the platform theme as it was before (with no
> plasma deps) for others to use and then some "more fancy" plugin on top of
> that which would implement just the plasma specific things? That way
> everyone would be happy.

Yes. Just volunteer to write that plugin. It may be even accepted as part of 
the Qt Project.

The point is that it's not going to happen without developer effort.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: KDE file dialog

2016-02-29 Thread Thiago Macieira
On terça-feira, 1 de março de 2016 00:44:05 PST Sven Brauch wrote:
> > If you're not in the Plasma desktop, you should get the dialogs from the
> > desktop you're in. For example, if you're in GNOME, the GTK style plugin
> > should get the GTK dialogs.
> 
> But that assumes the desktop you're in actually provides this
> functionality. 

Only if it's a Qt-based desktop. If it's another desktop, then it's Qt's job 
to integrate with it properly.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: KDE file dialog

2016-02-29 Thread Thiago Macieira
On segunda-feira, 29 de fevereiro de 2016 21:42:11 PST Sven Brauch wrote:
> Hey,
> 
> On 02/28/2016 03:58 PM, Luigi Toscano wrote:
> > This is what I use:
> > export QT_QPA_PLATFORMTHEME=kde
> > 
> > and  you need the integration plugin installed. It used to be part of
> > Frameworks (frameworksintegration), it will be part of Plasma (but
> > hopefully still usable without).
> 
> It isn't, unfortunately. For example, it requires KSNI support, because
> for some weird reason that is part of the platform theme.
> 
> So using QT_QPA_PLATFORMTHEME=kde is basically not a viable solution for
> any non-plasma desktop out there. Instead you are stuck with a 3rd party
> solution like qt5ct to at least set the Qt / icon theme (color scheme is
> quite hard already), and there is basically no viable option to get e.g.
> KDE file dialogs back (instead of the unusable Qt5 default ones).

If you're not in the Plasma desktop, you should get the dialogs from the 
desktop you're in. For example, if you're in GNOME, the GTK style plugin 
should get the GTK dialogs.

The only left-over is for a Qt 5 app on a KDE 4 desktop. In that case, I'd 
argue that the Plasma plugin should be loaded, but it needs to be installed 
too.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



Re: Policy regarding QtWebKit and QtScript

2015-12-26 Thread Thiago Macieira
On Saturday 26 December 2015 11:50:16 Adriaan de Groot wrote:
> On Friday 25 December 2015 13:34:01 Allan Sandfeld Jensen wrote:
> > Does Chromium build on FreeBSD already? In know in QtWebEngine we have
> > several  qmake conditions that would need to be changed from linux to
> > posix:!mac, but I haven't tried because I wasn't sure if FreeBSD was even
> > support by Chromium.
> 
> There is a chromium port. I took a look at it, there's 380 patches that it
> applies. I don't know how much of that is related to the application or how
> much applies to the underlying engine. I have no idea if the application
> works (well). I'll kick off a build just before I leave for Xmas dinner.

Some of those changes may be only to unbundle some libraries and cause 
chromium to link to system-provided ones.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Policy regarding QtWebKit and QtScript

2015-12-23 Thread Thiago Macieira
On Tuesday 22 December 2015 16:07:06 Lisandro Damián Nicanor Pérez Meyer 
wrote:
> IIRC Thiago said that it didn't use private stuff, so recompiling should be 
> more than enough (in case it is really needed).

I might be wrong. But that's the kind of breakage that is easily caught before 
Qt releases and should get fixed in updated qtwebkit source packages.

qtquick1 is a whole other story. Its life ends now.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Policy regarding QtWebKit and QtScript

2015-12-23 Thread Thiago Macieira
On Wednesday 23 December 2015 00:06:18 Luigi Toscano wrote:
> Shouldn't it be the other way around? Workable solution first and drop the
> old one later?

The big problem of keeping qtwebkit in the 5.6 release is that it would need 
to be supported for the 3 years of the long term support release and that is 
simply too much to ask for, for a module that needs security updates we are 
hardly getting from upstream.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
 


Re: Why is C90 enforced in KDE?

2015-12-07 Thread Thiago Macieira
On Monday 07 December 2015 09:29:59 Thomas Lübking wrote:
> Either way, Qt5 supports down to MSVC 2010, Qt4 down to MSVC 2008, so either
> we

Qt 5.6 supports MSVC 2008. Qt 5.7 raises the minimum to MSVC 2012.

Neither compiler supports stdint.h or some other nice C99 functions, like 
isnanf. You need MSVC 2013 for that.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Why is C90 enforced in KDE?

2015-12-07 Thread Thiago Macieira
On Monday 07 December 2015 21:36:13 Thomas Lübking wrote:
> You also may have some (personal, at least) data on relevant MSVC 2013 is in
> practice? Because every gcc in the wild as well as clang should be able to
> handle C99 - and so should MSVC 2015 and the intel compiler(s of the past).
> Afaics, MSVC 2013 is the deal breaker here; but no warranty on that
> statement...

MSVC 2013 has good support for C99. MSVC 2012 does not.

I should point all that MSVC has supported // comments in C sources since 
before it was known as Visual.

But that's not the problem. The problem is the C99 Library, which MSVC did not 
support until 2013 and it only did so because C++11 imported it by reference.

Microsoft does not care for C. They didn't implement C99 because they didn't 
want to, not because their compiler team was unable to.

So my recommendation: write C++ code.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: KSyCoca, Thread safety, and Cache invalidation

2015-11-14 Thread Thiago Macieira
On Saturday 14 November 2015 14:19:18 David Faure wrote:
> indeed.
> > > This code:
> > > qCDebug(SYCOCA) << "checking file timestamps";
> > > const QDateTime stamp = QDateTime::fromMSecsSinceEpoch(timestamp);
> > 
> > You're using the function that creates a LocalTime timestamp and yet:
> QDateTime::fromMSecsSinceEpoch() indeed creates a localtime timestamp,
> which means it calls qt_localtime() which calls tzset(), so it's not
> threadsafe.
> 
> #1  0x77118d1f in qt_tzset () at tools/qdatetime.cpp:2117
> #2  0x77119194 in qt_localtime (msecsSinceEpoch=1447506886000,
> localDate=0x7fffbed0, localTime=0x7fffbec0,
> daylightStatus=0x7fffbebc) at tools/qdatetime.cpp:2 333

We can easily add a mutex around this. An uncontended mutex on Linux is very, 
very fast. It might cause some false sharing and cache thrashing, but it 
shouldn't be too noticeable.

> Yeah, I'm 100% sure most code out there doesn't convert to localtime,
> hence my suggestion of QFileInfo::lastModifiedUtc(), to avoid breaking code.
> 
> But then we also need QDateTime::fromMSecsSinceEpoch(time_t, UTC) ?

Yeah... 

Another way, a little more difficult, would be to be lazy: keep the UTC date 
and wait for the user to decide which timezone to use. The problem with lazy 
is that QDateTime is shared and I removed the laziness in 5.5 due to threading 
problems. It's possible to do it if we do it right: we'd have to make sure we 
always write to the same members and in the same order. We'd need some 
atomics.

> Is there really no way to do localtime/UTC conversions in a threadsafe way?

The problem is finding out what timezone it is in the first place. We have 
QTimeZone and we could read the system file, bypassing localtime_r and tzset. 
John would know more.

> This tzset() issue is really awful, we'll never manage to make sure that
> 100% of the code that needs to be threadsafe uses UTC everywhere.

Hence the mutex.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: [Development] Please help me get my pending review count down

2015-09-23 Thread Thiago Macieira
On Thursday 20 August 2015 17:16:40 Thiago Macieira wrote:
> On Friday 21 August 2015 01:45:12 Albert Astals Cid wrote:
> > So with your new patches and https://git.reviewboard.kde.org/r/124856/ i
> > can  run konsole fine both with --nofork and in the normal mode.
> 
> It wasn't racy before because the call from the parent process was queued
> in  the socket of the child process, but it didn't get processed until
> app.exec() back in main() had been called. At that point, app existed and
> had been registered.
> 
> With the patches, the handling of the socket is done in a thread, so it 
> happens immediately, before KUniqueApplication::start returns and,
> therefore,  before the /MainApplication object is registered.
> 
> The solution in the patch is a hammer. We can do it with more finesse by
> having  the child automatically start the new instance if it wasn't running
> before. I don't see why we need the call to newInstance from the parent.

The patches are in for Qt 5.6.

My review count is now down to 51 pending patches.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Best-practise currently for testing internal parts of libs? *_TEST_EXPORT macro?

2015-08-31 Thread Thiago Macieira
On Monday 31 August 2015 14:41:00 Friedrich W. H. Kossebau wrote:
> #ifdef COMPILING_TESTS
> #if defined _WIN32 || defined _WIN64

Remove the Windows check. The next lines are valid outside of Windows too and 
should be used on all platforms.

If and when I change Q_DECL_EXPORT to be protected visibility instead of 
default, this will be required.

> # if defined(calligrasheetsodf_EXPORTS)
> #   define CALLIGRA_SHEETS_ODF_TEST_EXPORT KDE_EXPORT
> #   else
> #   define CALLIGRA_SHEETS_ODF_TEST_EXPORT KDE_IMPORT
> #   endif

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: [Development] Please help me get my pending review count down

2015-08-20 Thread Thiago Macieira
On Sunday 02 August 2015 10:32:21 Thiago Macieira wrote:
 ... which makes me wonder: did I fix the problem but never gave Albert the 
 patches that fixed them?

And the answer is... yes-kinda.

I had fixed the issue, but never applied it to QtDBus. By replacing QThread 
with QDaemonThread, the problems went away.

Note that continuing execution on the child side of fork() was not supported 
and now is TOTALLY broken. You'll deadlock.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Using nullptr instead of Q_NULLPTR

2015-08-18 Thread Thiago Macieira
On Friday 14 August 2015 23:53:44 Jarosław Staniek wrote:
  Don't do that. If you use nullptr, there's no going back to zero because
  it's not the same. You've irrevocably locked yourself into requiring a
  compiler that supports it.
 
 I should say back to Q_NULLPTR, right? 
 
 It's just helping people with old compilers by making the code SC.

Back to anything that is not nullptr: 0, NULL, __null, Q_NULLPTR, whatever.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Using nullptr instead of Q_NULLPTR

2015-08-14 Thread Thiago Macieira
On Friday 14 August 2015 04:07:41 Thomas Lübking wrote:
 We could just detect the compiler, and in need define nullptr 0x0, look the
 other side and hope for the best (ie. anybody on modern compilers anyway
 and nobody actually making use of std::nullptr_t atm. but just of the
 keyword) - not very nice, but better than breaking compilation(?) and not
 as invasive.

It's not the same thing.

First of all, it can't be a variable, it would have to be a macro. Second, a 
literal zero can be cast to boolean, integrals and floating point, but nullptr 
can't. That's the whole reason why nullptr exists in the first place.

Q_NULLPTR isn't nullptr: when you use it, you acknowledge that it may be a 
zero and thus won't resolve ambiguities when calling overloads -- or, worse, 
will call the wrong overload (the one with int instead of the one with a 
pointer).

Defining a macro for nullptr is dangerous...

My recommendation: it's broken now so leave it. Fix it if someone complains, 
but otherwise just leave it. In one year's time, the discussion will be moot.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Using nullptr instead of Q_NULLPTR

2015-08-14 Thread Thiago Macieira
On Friday 14 August 2015 14:34:49 Jarosław Staniek wrote:
 I also think we agree that anything other than 0 is good for readability
 and  readability should be the priority.

Note that the Qt 5.7 policy still allows and even asks for use of 0 as null in 
some places. The policy is:

 * always use nullptr in public headers. No exceptions.
 * use nullptr or 0 in non-public headers or regular sources so readability is 
   good. There's no point in using nullptr where 0 is obviously a null 
   pointer, like:
char *s = 0;

 Then, there's the consistency factor -- a reason to cover the topic of null 
 pointers in the guide. I find neither Qt is consistent in what to use, Qt
 is not an example here then.

The policy above applies to Qt 5.7. For 5.6, only the first part applies and it 
needs to be Q_NULLPTR.

 In the worst case if someone calls us too modern, e.g for embedded
 projects,  we'd be able a macro to ECM kdecompilersettings that defined
 nullptr back to 0 (or is this already supported by cmake/etc.?)

Don't do that. If you use nullptr, there's no going back to zero because it's 
not the same. You've irrevocably locked yourself into requiring a compiler 
that supports it.

 PS: A Krazy check checking for usage of NULLs and Q_NULLPTR would be
 lovely.  Checking the use of 0's isn't easy, right?

-Wzero-as-null-pointer-constant

Qt headers should pass that starting with 5.6.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Using nullptr instead of Q_NULLPTR

2015-08-14 Thread Thiago Macieira
On Friday 14 August 2015 08:28:51 Ivan Čukić wrote:
  It isn't. The page is just plainly wrong.
 
 In that case, I retract my previous comments. Where are the *proper*
 requirements documented then (for future reference)?
 
  That's the list of platforms the Qt CI tests on.
 
 It lists both CI tested and untested things there.

I would have said the docs or the wiki somewhere, but I've just discovered 
that the docs are wrong... :-)

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Using nullptr instead of Q_NULLPTR

2015-08-13 Thread Thiago Macieira
On Thursday 13 August 2015 12:59:01 Ivan Čukić wrote:
 Qt 5.5 requires gcc 4.8 for linux and windows. So even they increment
 the versions from time to time.

s/8/5/ and you'd be correct.

The Qt minimum version will rise to GCC 4.7 with Qt 5.7 and Qt will stop 
compiling in C++98 mode at that time.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Using nullptr instead of Q_NULLPTR

2015-08-13 Thread Thiago Macieira
On Friday 14 August 2015 01:08:19 Ivan Čukić wrote:
 This is from the Officially supported platforms page at
 http://doc.qt.io/QtSupportedPlatforms/
 
 Qt 5.5:
 Windows * - MinGW 4.9, MinGW 4.8 (apart from MSVC)
 Linux - 32/64bitgcc 4.8.1, gcc 4.9.1
 
 I thought that was official enough.

It isn't. The page is just plainly wrong. That's the list of platforms the Qt 
CI tests on.

It's not the list of platforms we are supposed to compile with and support.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: [Development] Please help me get my pending review count down

2015-08-05 Thread Thiago Macieira
On Tuesday 28 July 2015 19:06:59 Thiago Macieira wrote:
 Deadline: 6 weeks before Qt 5.7 feature freeze.
 
 If we reach that date and the patches are still not integrated, I will have
 to  make a decision as Maintainer as to the future of them. It will be to
 either apply them despite any breakages caused in KDE applications or to
 drop them altogether, including all the fixes for race conditions and
 deadlocks. I will probably err on the side of caution, though.

The Qt release team has published the feature freeze date for Qt 5.7 as Dec 
18.

6 weeks before that is Nov 13.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-04 Thread Thiago Macieira
On Tuesday 04 August 2015 17:52:18 Ben Cooksley wrote:
 I'm assuming QLocale isn't routed through the platform plugin like
 other parts of Qt do in these cases, so we can't manipulate things
 there?

Right.

If a LC_TIME solution isn't possible, we could consider a QSystemLocale 
configuration that allowed the GUI platform plugin to set some details.

Obviously this would not apply to non-GUI apps.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-04 Thread Thiago Macieira
On Tuesday 04 August 2015 10:03:20 John Layt wrote:
  One problem would be to update running processes (QLocale to track the
  locale file and emit some signal on changes)
 
 This is one of the areas Qt doesn't do well, on Windows and Mac soon
 as the underlying locale is change you get different results from
 QLocale, leading to inconsistent looking UI and weird bugs. On Linux
 it doesn't respond to changes at all until the app restarts, a more
 consistent approach. The best approach would be to have a QEvent that
 the app can catch and know to refresh everything when it is ready to
 do so. Again, something on the plan but a longer term issue to solve,
 as monitoring locale files or envvars or a registry for changes across
 multiple platforms in Qt would take some work.

The problem with that is a thundering herd. All applications suddenly start 
updating, even if they haven't got anything to show.

It's the same problem and requires the same solution as the language itself. 
There are mechanisms, but they're neither very well-used and they cause 
thundering herd.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-04 Thread Thiago Macieira
On Tuesday 04 August 2015 10:03:20 John Layt wrote:
 Nor do we want to use the data in the POSIX file as it
 has too many shortcomings and lacks features and simply uses a
 different set of format codes to CLDR. That POSIX file can only ever
 really be used to tell non-Qt POSIX locale using apps what settings to
 use under Plasma (i.e. Gtk/glibc stuff). If we're going to use a
 locale file for Qt internally we'd be better looking to load the CLDR
 json format instead. Indeed, it's an option I had been thinking of to
 replace Qt's custom locale feature once we stop shipping our internal
 CLDR data, or to allow embedded platforms to choose what supported
 locales to ship, but there are issues there and I'm not sure it's
 something Thiago would buy into.

Ugh...

If the date/time format in the POSIX locale is different, there are probably 
other differences too. I withdraw my requirement to make /bin/ls work then.

What's your suggestion to make this work for a KDE environment and 
applications, John?
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-03 Thread Thiago Macieira
On Monday 03 August 2015 21:57:36 John Layt wrote:
 The problem actually is that Plasma is not considered a system
 platform by QLocale, it doesn't go looking for what Plasma wants, it
 just uses the underlying GNU/Linux system settings. Convince Qt to
 hard-code in a lookup of some Plasma config file with user overrides
 to be applied whenever Qt apps run under Plasma and then you can get
 what you need. I had plans somewhere for how that would work, and how
 we could also make Gtk apps use our settings too by manipulating the
 LC_* settings.

That's not going to happen.

The only solution I'm going to accept is one that also applies to /bin/ls.

So far, the idea of setting LC_TIME to a file containing the rules is the only 
solution I've seen to accomplish that.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-03 Thread Thiago Macieira
On Monday 03 August 2015 22:15:51 John Layt wrote:
 One problem is Qt completely ignores the contents of that file, and
 indeed I'm not sure it would even manage to extract the correct locale
 name even so you'd end up with some default.

We just need to fix QSystemLocale and make it fall back to the C API if the 
locale is a file or one not found in the database it carries.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-03 Thread Thiago Macieira
On Monday 03 August 2015 22:00:04 John Layt wrote:
 On 3 August 2015 at 20:07, David Jarvie djar...@kde.org wrote:
  As I understand it, a QDateTime is invalid if either the date or time
  component is invalid. People would usually expect that if
  QDateTime::isValid() returns false, the object must be invalid. So a
  date-only value in which only the date was valid would make the whole
  object invalid, which is misleading and would almost certainly lead to
  mistakes.
 That is correct and it is a long-standing QDateTime behaviour that I
 would hate to change in a non-major release due to the huge amount of
 code that expects it to work that way. It's just not an option to use.

QDateTime::isValid() indicates whether it's a valid date-time pair. It isn't. 
The QDateTime object may still contain a valid date or valid time though.

And I agree with John that we can't change it in 5.x and we probably won't 
change in 6.0 either because that would lead instead to code that assuming 
that a date-only QDateTime equals a full QDateTime at midnight. Or, worse, 
somehow parsing a time-only QDateTime as a few hours into Nov 24, -4713, which 
leads to severe issues when this time-only QDateTime somehow gets converted to 
time_t (out of range).

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-03 Thread Thiago Macieira
On Monday 03 August 2015 08:33:54 Martin Klapetek wrote:
  If the format you're looking for requires support from translators, please
  add
  a new class to QtCore.
 
 Suppose there's such QLocale setting as described above, then it would
 be just a matter of some regexp inside the time formatting function which
 would add/remove the ap/AP strings for the clock. I imagine.

How would that setting be set? Who would set it? Is that something that the 
clock app would use and allow the user to set?

If so, why not extract the time format and show that to the user? Or, at 
least, parse it to set the default of Use 24-hour clock? If the user wants 
to toggle 24-hour, save the new time format in the config file and use it to 
format the time next time.

 
   Alternatively, do you John have any roadmap about QLocale? Perhaps
   we could help with filling the missing bits into QLocale directly too.
  
  The roadmap currently stands as follows:
 Does this mean there is no roadmap? :)

It means the roadmap is empty.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Replacement for KDateTime

2015-08-02 Thread Thiago Macieira
On Sunday 02 August 2015 17:08:04 Martin Klapetek wrote:
 On Sun, Aug 2, 2015 at 3:26 PM, John Layt j...@layt.net wrote:
  If you do this you also need all of KLocale again which we also
  do not want. Don't even go there, we changed it for a purpose.
 
 Fwiw, over the year(s) of Plasma5, many times it was expressed
 that KLocale is greatly missed, especially when it comes to date/time
 formatting. QLocale just doesn't cut it and the digital clock applet is
 doing many tricks to get the stuff formatted as wanted. The biggest
 downside is that it applies to the clock applet only, so there can't be
 a single system-wide Use 24h-clock format switch. Clock in panel
 can/will be 24h format while everything else will be LC_TIME format
 (time stamps in Dolphin eg).

If the format you're looking for is in the CLDR, you're welcome to add the 
support to QLocale.

If the format you're looking for requires support from translators, please add 
a new class to QtCore.

 Alternatively, do you John have any roadmap about QLocale? Perhaps
 we could help with filling the missing bits into QLocale directly too.

The roadmap currently stands as follows:

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: [Development] Please help me get my pending review count down

2015-08-02 Thread Thiago Macieira
On Sunday 02 August 2015 13:46:02 Christoph Cullmann wrote:
 Hi,
 
 is one of the problems the misuse of QDBus in KUniqueApplication before the
 actual QApplication is constructed?

That's the working theory, but it's not proven. All I know is what Albert 
reported when I asked him to test my patches in a KF5 environment and a Unity 
one.

 Would it be possible to just create in that case a temporary
 QCoreApplication on the stack in KUniqueApplication::start?

QtDBus is supposed to work with construction, destruction and reconstruction 
of QCoreApplication. I think I have tests for that, but I would be surprised 
if you found a few cobwebs.

 Kate had similar I get stuck problems until the QApplication was correctly
 constructed in all cases before the first QDBus use.

That's one of the things I fix in this patchset by moving the socket handling 
to another thread.

However, I think I forgot to include the patches that change QCoreApplication 
event delivery and creates the QDaemonThread class... QDBusConnectionManager 
isn't using QDaemonThread, but delivery of events when QCoreApplication isn't 
extant relies on those patches.

... which makes me wonder: did I fix the problem but never gave Albert the 
patches that fixed them?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: [Development] Please help me get my pending review count down

2015-07-28 Thread Thiago Macieira
[cross-posting to k-c-d to get KDE dev attention]

On Tuesday 28 July 2015 14:51:49 Thiago Macieira wrote:
 - QtDBus changes:
 https://codereview.qt-project.org/101967
 https://codereview.qt-project.org/102762
 https://codereview.qt-project.org/103731
 https://codereview.qt-project.org/103732
 https://codereview.qt-project.org/103733
 https://codereview.qt-project.org/103734
 https://codereview.qt-project.org/103735
 https://codereview.qt-project.org/103736
 https://codereview.qt-project.org/103737
 https://codereview.qt-project.org/103738
 https://codereview.qt-project.org/103739
 https://codereview.qt-project.org/103740
 https://codereview.qt-project.org/109632
 https://codereview.qt-project.org/109633
 https://codereview.qt-project.org/109634
 https://codereview.qt-project.org/109635
 https://codereview.qt-project.org/109636
 https://codereview.qt-project.org/109859
 https://codereview.qt-project.org/109860
 https://codereview.qt-project.org/110204
 https://codereview.qt-project.org/110446
 https://codereview.qt-project.org/110447
 
 On the QtDBus changes: most are already reviewed and approved (thanks
 Alex!),  but I need someone to investigate why KUniqueApplication is broken
 in konsole. There will be no new bugfixes or features to QtDBus until the
 set of changes above integrates because everything I develop (as can be
 seen from the change numbers) comes on top of the existing changes that
 haven't integrated.

The changes listed above have been pending for months, especially because they 
seem to break konsole. As I don't have a debug build of a KF5-powered Konsole 
(or a release one, for that matter), I cannot debug this issue. I need help.

I need someone to take the whole set of changes, apply to their Qt 5.5 build 
and test KF5-powered applications to see what gets broken and why. Please 
provide patches to either QtDBus, KF5 or the applications.

If you can't provide patches, information will be welcome so others may 
produce patches. I may try to fix the issue myself, but it's not easy to do 
blind fixes for issues you can't reproduce.

Deadline: 6 weeks before Qt 5.7 feature freeze.

If we reach that date and the patches are still not integrated, I will have to 
make a decision as Maintainer as to the future of them. It will be to either 
apply them despite any breakages caused in KDE applications or to drop them 
altogether, including all the fixes for race conditions and deadlocks. I will 
probably err on the side of caution, though.

We don't want either to occur.

Can anyone help?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: KSyCoca, Thread safety, and Cache invalidation

2015-07-20 Thread Thiago Macieira
On Monday 20 July 2015 16:05:06 David Faure wrote:
 Or maybe QDateTime::currentDateTime() could avoid calling the awful tzset()?
 Thiago, any input?

QDateTime::currentDateTimeUtc() does not call tzset.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: KSyCoca, Thread safety, and Cache invalidation

2015-07-14 Thread Thiago Macieira
On Tuesday 14 July 2015 19:28:58 Thomas Lübking wrote:
 Actually, checking currentTime() is already the problem here (causing the IO
 for the timezone stuff), see
 http://marc.info/?l=kde-core-develm=143533622526705w=1 (the 1st paragraph
 part of my comment somehow turned into a second-level quote)
 
 Comparing a monotic timer (QElapsedTime) is however - at least on linux -
 close to cost free PLUS: one can have an entirely free do not check again
 during this event cycle flag.

If you just need to measure duration, QElapsedTime is your tool. Do not use 
QTime for this, as it can be affected by clock jumps and it accesses the 
timezone.

If you need a machine-comparable time with other systems or across reboots, 
use QDateTime::currentDateTimeUtc(). That avoids refreshing the timezone 
database to convert to local time.

Only use QDateTime::currentDateTime() if you want to show something to the 
user. There's no other valid reason. (writing to a log counts as showing to 
the user)

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Frameworks compiler and Qt requirements after Qt 5.7?

2015-06-28 Thread Thiago Macieira
On Friday 26 June 2015 17:46:21 Martin Gräßlin wrote:
 Thus I think the question about compiler requirement and Qt requirement are 
 not coupled. Just because we raise the one or the other doesn't mean we
 should raise both.

Yes, it does. You need to raise at a minimum to the minimum that the minimum 
Qt requires.

If the minimum Qt is 5.6, then KDE's current requirements are higher than 
Qt's. So no change is necessary.

If the minimum Qt is 5.7, then Qt's requirements are higher. Effectively, Qt's 
requirements become KDE's.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Frameworks compiler and Qt requirements after Qt 5.7?

2015-06-26 Thread Thiago Macieira
On Friday 26 June 2015 16:24:50 Mark Gaiser wrote:
 Qt 5.7 minimal requirement
 GCC 5.1 (or somewhere in 5.x)
 Clang 3.6.1 (or perhaps even 3.7)
 MSVC 2015
 
 We then have full C++11 support across the board and much of C++14
 supported as well. MSVC clearly being the limiting one in that area for the
 C++14 support, but still quite decent.

Current test results for tst_compiler with MSVC 2015:

SKIP   : tst_Compiler::cxx14_binary_literals() Compiler does not support this 
C++14 feature
SKIP   : tst_Compiler::cxx14_init_captures() Compiler does not support this 
C++14 feature
SKIP   : tst_Compiler::cxx14_generic_lambdas() Compiler does not support this 
C++14 feature
SKIP   : tst_Compiler::cxx14_constexpr() Compiler does not support this C++14 
feature
SKIP   : tst_Compiler::cxx14_decltype_auto() Compiler does not support this 
C++14 feature
SKIP   : tst_Compiler::cxx14_return_type_deduction() Compiler does not support 
this C++14 feature
SKIP   : tst_Compiler::cxx14_aggregate_nsdmi() Compiler does not support this 
C++14 feature
SKIP   : tst_Compiler::cxx14_variable_templates() Compiler does not support 
this C++14 feature

The reason for this is that we chose to require SD-6 for C++14 support and 
MSVC 2015 does not follow it. Therefore, for Qt's purposes, MSVC 2015 supports 
*no* C++14.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 123874: Fix build with Qt = 5.4.2

2015-05-21 Thread Thiago Macieira
On Thursday 21 May 2015 17:32:33 Hrvoje Senjan wrote:
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/123874/
 ---
 
 Review request for Build System, Phonon and Harald Sitter.
 
 
 Repository: phonon
 
 
 Description
 ---
 
 Or to be more accurate, with commit 3eca75de67b3fd2c890715b30c7899cebc096fe9
 I am not convinced this is best solution, but requires least changes to
 current cmake code.

Upgrade past commit 083c9269ed73e8771e1dbe10812696b45b7389f3 and report back 
if it worked.

If there are problems, let's fix them in Qt itself. If there are issues that 
can't be fixed in Qt itself, then kde-multimedia would be the wrong mailing 
list to discuss it.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Alternative to QDateTime::isDateOnly ?

2015-05-01 Thread Thiago Macieira
On Tuesday 28 April 2015 22:32:12 Christian Mollekopf wrote:
 On the other hand, the problem of the variable return type is not solved
 by that,
 overloads and separate getters always seemed like a workaround to me,
 so it seems like Qt would benefit from something like boost::variant
 (aka. a discriminated union)

Why wouldn't QVariant be enough?
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Distros and QtWebEngine

2015-04-21 Thread Thiago Macieira
On Tuesday 21 April 2015 15:44:35 Kevin Kofler wrote:
 Thomas Lübking wrote:
 I know nothing about the trouble w/ QWebEngine¹, but what is insinuated
 here is that it's completely unusable, unmaintainable, undistributable
 - ie. Qt then simply won't have any full blown web engine, resp. has
 one that nobody uses? That issue would seem -a tiny bit- fr beyond
 kdepim or anything KDE related, to me those claims read: Qt now has no
 longer a web kit/engine.
 
 That's exactly the problem. I have objected to the QtWebKit deprecation on
 those exact grounds on the upstream Qt mailing list, but my complaints have
 fallen on deaf ears.

I think that's not a fair characterisation that they fell on deaf ears. They 
were heard, but it's simply a matter of fact that WebKit is no longer a 
possible target, since Apple removed the necessary bits out of WebKit and 
they're a much harder group to work with than Google.

So it's simply not an option to continue to develop WebKit.

If someone has 100 full-time developers to spare, I'm sure un-deprecation 
could happen. (I'm not exaggerating)

 That said, Google is a web-centric company and as such more likely to put
 evil stuff into their browser than Apple. In fact, Chromium and Chrome
 already have the reputation of hiding spyware (mis)features in their code.

I'm not sure about spyware, but they do have a history of inserting things of 
theirs, like the HTTP-over-QUIC they recently talked about.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review request: QBluez

2015-02-17 Thread Thiago Macieira
On Tuesday 17 February 2015 23:00:15 Albert Astals Cid wrote:
  It doesn't have the DBus
  ObjectManager, so that call should fail like that.
 
 Well, then the test should try to detect it and QEXPECT_FAIL, havign tests 
 fail means something is bad, and as you say it's not bad, just expected.

QEXPECT_FAIL is when you know it's wrong but either can't solve it or can't do 
it now.

If it's an expected situation, handle the situation.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review request: QBluez

2015-02-16 Thread Thiago Macieira
On Monday 16 February 2015 23:51:17 Albert Astals Cid wrote:
  I'd like to ask for a review of the QBluez library [1].
 
 Using Q* is usually frowned upon since the Qt people have made it quick
 clear  that they reserve the right to use Q* names themselves, i'd look for
 a new name.

Unless, of course, you want to contribute the code to the Qt Project.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 122320: use xcb-screen count instead of qguiapplication.screens

2015-02-04 Thread Thiago Macieira

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


Can you explain why the count is different and why XCB's count is the correct 
one? In the commit message.

- Thiago Macieira


On Fev. 4, 2015, 12:31 a.m., Nick Shaforostoff wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/122320/
 ---
 
 (Updated Fev. 4, 2015, 12:31 a.m.)
 
 
 Review request for kde-workspace, Martin Gräßlin and Thomas Lübking.
 
 
 Repository: plasma-workspace
 
 
 Description
 ---
 
 this patch makes kcminit behave like in kde4: it uses proper xcb screen count 
 which may be different from QGuiApplication::screens().count().
 
 for example when i connext external monitor via vga to my laptop, xcb screen 
 count is still '1', while QGuiApplication::screens().count() returns '2'.
 
 switching from QGuiApplication to QCoreApplication still wasn't possible 
 because modules like 'mouse' need gui initialized and would crash if kcminit 
 uses QCoreApplication.
 
 
 Diffs
 -
 
   startkde/kcminit/CMakeLists.txt b17951f 
   startkde/kcminit/main.cpp 1008966 
 
 Diff: https://git.reviewboard.kde.org/r/122320/diff/
 
 
 Testing
 ---
 
 i have built kcminit on ubuntu vivid alpha 32-bit, replaced binaries and 
 libraries in the system and successfuly could run kcminit_startup and reboot 
 also went fine.
 
 
 Thanks,
 
 Nick Shaforostoff
 




Re: Another proposal for modernization of our infrastructure

2015-02-01 Thread Thiago Macieira
On Saturday 31 January 2015 20:56:41 Martin Graesslin wrote:
 I have to agree. Whenever I need to do a change for Qt I need to google for 
 how to do it. Including putting serious thought in how the push command
 must look like, how I need to adjust the examples provided and for which
 ref/for/foo it has to be this time. This is something which seriously
 concerns me with the outlook of gerrit. git has a steep learning curve,
 gerrit adds quite some further steepness to it

Ossi has been working on a new script called git-gpush that will automate 
most of the pushing work for you. All you'll need to do is tell it which 
commits you want to push, like:

git gpush HEAD +thiago +ossi +tronical

It would have been ready if I had had the time to review it. You can find it in 
his dashboard and mine (in qt/qtrepotools).
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358


signature.asc
Description: This is a digitally signed message part.


Re: Another proposal for modernization of our infrastructure

2015-02-01 Thread Thiago Macieira
On Friday 30 January 2015 10:57:33 Ben Cooksley wrote:
 Given that upstream has had multiple attempts now at an improved
 interface, I would question whether they would be willing to accept a
 user interface which is suitable for our needs. It appears that they
 are quite comfortable with an interface many find unintuitive or
 difficult to use. If they weren't, considering the number of backers
 it has - one would think someone would have sponsored such an
 interface.

They would have if they still had major problems with the usability of the 
tool. It probably just so happens that all the backers are used to the 
interface, however bad it might be, and don't feel the need to sponsor such a 
work.

I find myself in that category. Provided there is a one-page-diff support, 
Gerrit works very well for me and I don't find it clumsy at all. That's not to 
say I don't want it improved -- I do -- but I don't feel the pressing need to 
for someone to work on it.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Another proposal for modernization of our infrastructure

2015-02-01 Thread Thiago Macieira
On Saturday 31 January 2015 20:37:31 Christoph Feck wrote:
 On Saturday 31 January 2015 20:07:42 Eike Hein wrote:
  [...] Qt is using gerrit and we intend to remain a major stakeholde
  in Qt development, which means a sizable number of KDE developers
  need to be familiar with gerrit anyway [...]
 
 Excuse me, but if KDE developers will have to follow equivalent steps
 as described at http://qt-project.org/wiki/Setting-up-Gerrit to
 contribute, then I predict another big loss of developers.

Please note the instructions stop at the Configuring Git heading. All of the 
rest is already done for anyone who is already using Git.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Another proposal for modernization of our infrastructure

2015-01-30 Thread Thiago Macieira
On Thursday 29 January 2015 17:22:45 Thomas Lübking wrote:
 Maybe it's possible to borrow or upstream the Qt mod?

See the repository qtqa/gerrit in the Qt infrastructure (Gitorious, Gerrit, 
etc.). See commits 6f3d74b7bda9d86a16d33ed16a0806b74482d57c, 
f6ec276bbd6980e4619e85abd3b3d62f7156fbfc, 
2f6d90dc0ba7853d32a902dbaf92e69ba133c2b1, 
d124a6d287ef836b3290d92baa2f1e14b18a36bd and 
66522d326988614cbe544103f99be14e415e44bd.

Ismo, what's the status on upstreaming the one-page-review feature? What did 
upstream say last time this was attempted?


-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Another proposal for modernization of our infrastructure

2015-01-30 Thread Thiago Macieira
On Friday 30 January 2015 10:04:01 Martin Graesslin wrote:
 Also I don't think it can be improved, this looks really fundamental in 
 gerrit. I am not the only one who notices the problem and AFAIU Qt even 
 patches around the issues. Given that I'm not confident that we can improve 
 the software, that upstream accepts the changes and that upstream doesn't
 break the UI again in future releases.

Many of your complaints about usability (threading, replies, etc.) are solved 
or at least partially addressed in the new Gerrit UI, which versions like 2.7 
have. It might not be the default on the installation, so check the settings 
and try to turn it on.

Note that there's no patch to make an single-page all-diff for the new UI. It 
only exists for the old UI, which is why the new UI is disabled for the Qt 
Gerrit.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358


signature.asc
Description: This is a digitally signed message part.


Re: Changes to our Git infrastructure

2015-01-04 Thread Thiago Macieira
On Saturday 03 January 2015 15:35:12 Jeff Mitchell wrote:
  - Not needing a CLI tool in an obscure language (PHP, Java, 
  .NET,...).
 
 .NET is a framework, not a language. Maybe you meant C#. Regardless, I 
 fail to see how any of those are obscure. They're three of the most 
 popular and widespread languages in the world.

For command-line applications on Linux?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Changes to our Git infrastructure

2015-01-03 Thread Thiago Macieira
For Gerrit:

 - Code Reviews:
   - CLI client to make changes to the code review system and to manage
 the review (including retrieving the commits/patches)

Check. It's ssh host gerrit subcommand

 Client should have good documentation.
   - System should automatically set the CC / Reviewers / etc for a
 review rather than the submitter needing to know who to set.

Check.

Also, from experience with Tizen's Gerrit: if the automatic list has more than 
3 people, all reviews stop getting done since everyone will be overwhelmed by 
reviews and they will thinki it's someone else's problem on this one.

   - Changes should be shown per-commit.

Check.

   - Updates to reviews should leave prior reviews intact.

Check.

   - Patches should be readable, commentable on line by line.

Check.

   - Proposed changes are vetted by the CI system (compilability, tests,
 etc).

Check. The most common use is to run before merging into the official tree; Qt 
is the only project I know that does it after.

  - Ability to accept the changes through the code review system

Check.

   - Can mark a review as Bad (Don't Ship This) / Okay (Fine with it
 going in) / Good (Ship It)

Check. And you can change at will, add more categories, roles, etc.

   - Can determine whether the review was by someone with commit rights.

Check. Not obvious, but it is doable, since you can look up people's group 
memberships. Might make a nicer feature to list the group(s) they're member of 
in the UI.

   - Can produce a list of review requests given a certain set of
 criteria easily (preferrably savable)

Vague requirement without knowing what criteria were in mind here. So I'm 
going to go and say check since it can look up the criteria I want.

   - Developers can tweak proposed changes easily before they are
 landed without the involvement of the submitter.

Check, you can push a new commit with the same Change-Id.

 - Post Commit Review:
   - Be able to comment on reviews, other than by replying to a mail on
 kde-commits

Check.

 - Project Management:
   - Coherent and Performant

It's Java, but unlike Jenkins, we don't seem to have had problems with it for 
Qt.

   - One canonical place to get the desired information (no more duplication)

Vague requirement.

 - Can either be links to elsewhere or directly hosted by the system 

Check.

 -
 Covers items like documentation (wiki, api), bug tracking, task boards, CI,
 code browsing and reviews, etc.

Vague. Assuming items like documentation ... are in Git, everything works.

 - Repository Hosting:
   - Strong case has been made for retaining scratch repositories.

Out of scope, needs separate website and tools.

   - A weaker case exists for clone repositories - making them more
 nice to have than critical.

Out of scope, needs separate website and tools.

Though it might be possible with the command-line, just not the web UI. I need 
to investigate.

   - Anongit propagation should be within 1 minute.

Totally out of scope.

 - Overall: Sensible email notifications

Check, requires modifications from the Qt Project, since the default email 
notifications are not sensible.

 - Overall: Capable web APIs for the system as a whole

Check.

 There are also a couple of items which come from sysadmin, to make
 things easier for us in the long run:
 
 - Supported well:
   Upstream should be stable with a viable future.
   We should also be able to build a relationship with one or more
 developers who authored/maintain the application.
   This is helpful in obtaining assistance should it be necessary and
 assists us in getting additions upstreamed.

Check. Dozens of projects use Gerrit.

 - Integrated:
   A single application which handles everything will always be able to
 offer a better and more coherent experience than several applications
 we have connected to each other.
   There is also a lower maintenance burden from an integrated
 application, as it is one piece of software to update - not 3 or 4.

Not check, since Gerrit alone will not correspond to KDE's desires (project 
creation, scratch clones, etc.)

 - Care about compatibility:
   Upstream should have an interest in stable interfaces, both
 externally facing (Web APIs) and internal (application plugins, etc)
   As the recent Dr Konqi problems have demonstrated, upstreams which
 act without regard for backwards compatibility can introduce
 significant problems for us.

Check.

 - Scalable:
   The applications which make up our infrastructure need to be able to
 handle the demands we place on them without consuming resources
 unnecessarily.

I understand it is, but you'll have to speak to other sysadmins.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Changes to our Git infrastructure

2015-01-03 Thread Thiago Macieira
On Saturday 03 January 2015 12:39:42 Lydia Pintscher wrote:
 On Sat, Jan 3, 2015 at 12:07 PM, Thiago Macieira thi...@kde.org wrote:
  For Gerrit:
 I think before checking Ben's list against specific implementations we
 should make sure the list is actually correct and complete. It's the
 basis for an important decision so let's do this step-by-step? :)

I was only going to comment on the request to automatically add reviewers but 
then I thought I might as well give more information instead of a single 
paragraph.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Changes to branch management

2014-12-23 Thread Thiago Macieira
On Tuesday 23 December 2014 17:45:23 Milian Wolff wrote:
 +1 to all of the above. What about tags btw? In KDevelop e.g. it would only
 be  a nuisance if someone would delete one of our stable branches, but
 deleting one of the release tags would be ugly as I'd then need to figure
 out what commit was chosen for what release.
 
 Bye and thanks for your continuous work Ben, much appreciated! Take care.

Tags shouldn't be deleted, period. That's something for the repo owner, in 
case of a mistake.

Also note that people will get those tags and git remote prune doesn't delete 
them. So don't push bad tags.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: ThreadWeaver: using QObject's as Jobs

2014-11-25 Thread Thiago Macieira
On Tuesday 25 November 2014 12:07:27 Milian Wolff wrote:
 On Monday 24 November 2014 19:28:57 Thiago Macieira wrote:
  On Monday 24 November 2014 23:00:45 Mirko Boehm wrote:
Can I inherit from QObjectDecorator and pass this as the
JobInterface
*decoratee?
   
   The decorator wraps and object and acts as a QObject. It does not really
   care if the wrapped job is a QObject already. It will add defined
   signals
   to the job.
  
  Please don't create new classes named Q + Capital letter unless you're
  doing that inside the Qt Project.
 
 This object lives in the ThreadWeaver namespace, so that should be fine, no?
 It's decorating a QObject after all.

Ah, then it's ok. It's the global namespace that's a problem.

As long as no one builds Qt with -qtnamespace ThreadWeaver :-)
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: ThreadWeaver: using QObject's as Jobs

2014-11-24 Thread Thiago Macieira
On Monday 24 November 2014 23:00:45 Mirko Boehm wrote:
  Can I inherit from QObjectDecorator and pass this as the JobInterface 
  *decoratee?
 
 The decorator wraps and object and acts as a QObject. It does not really
 care if the wrapped job is a QObject already. It will add defined signals
 to the job. 

Please don't create new classes named Q + Capital letter unless you're doing 
that inside the Qt Project.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: attica_kde.so closing crash

2014-11-17 Thread Thiago Macieira
On Sunday 16 November 2014 18:18:07 Jeremy Whiting wrote:
 ==22353==  Address 0x1cd1b758 is not stack'd, malloc'd or (recently) free'd

This looks like the case of accessing memory from a plugin that has been 
unloaded.

Note how the backtrace started from qlibraryCleanup in qlibrary.cpp, which is 
unloading all plugins.

This is a plugin-unload-order problem. The KDE platform plugin got unloaded 
after the bearer manager plugin.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: attica_kde.so closing crash

2014-11-17 Thread Thiago Macieira
On Monday 17 November 2014 12:07:36 Jeremy Whiting wrote:
 Ok, how can I fix the unload order then?

You don't. The libraries are unloaded in alphabetical order, but I might 
change that later to a QHash and then the order is arbitrary and random.

Fix the problem in a different way. If necessary, submit a patch to 
QNetworkAccessManager and/or the bearer plugins so it stops tracking the 
pointer on plugin unload.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: New CHANGELOG: keyword

2014-11-08 Thread Thiago Macieira
On Saturday 08 November 2014 01:52:06 Albert Astals Cid wrote:
 El Divendres, 7 de novembre de 2014, a les 16:35:21, Thiago Macieira va
 
 escriure:
  On Saturday 08 November 2014 00:58:49 Albert Astals Cid wrote:
   Hi, we've added a new CHANGELOG: keyword to
   https://techbase.kde.org/Policies/Commit_Policy#Special_keywords_in_GIT_
   an
   d_ SVN_log_messages
   
   So that you highlight that that comit should end up in the release
   notes.
   
   We still need something that parses it but step by step :)
  
  Why not use the Qt script[1]? I also recommend making it a tag like Qt's,
  so people can write more than one line.
  
  https://codereview.qt-project.org/76087
 
 Does the Qt tag support being there without text and thus creating the
 changelog based on the first line of the commit?

You'd have to modify the script for that.

We don't do that in Qt because the commit subject and the changelog have 
different audiences. The commit subject and most of the body are meant for 
other developers of the same source code and describe why the change was made, 
how it was made, other alternatives, risks, etc. The changelog is meant for 
the users of the API, who aren't familiar with the internals, and describe 
what changed that is relevant for them.

Example:

QMainWindow: respect the maximum size of the central widget

Make sure the dock widgets get the available space when the
central widget cannot expand any more.

[ChangeLog][QtWidgets][QMainWindow] Dock widgets will now be resized
properly when the central widget has a fixed size.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: KDE4 SSL

2014-10-21 Thread Thiago Macieira
On Tuesday 21 October 2014 08:13:07 Rolf Eike Beer wrote:
 Am Dienstag 21 Oktober 2014, 10:52:38 schrieb Thiago Macieira:
  On Monday 20 October 2014 21:00:51 Pali Rohár wrote:
   Hello!
   
   Do you know which KDE4 libraries are using SSL and TLS protocols?
   And it is now possible to disable SSLv2 and SSLv3 protocols in
   KDE4 libraries?
  
  That would be QtNetwork, by way of kdecore and kio. SSLv2 is already
  disabled by default. To disable SSLv3 by default, you need to modify
  QtNetwork.
 
 What happens if OpenSSL is built with no-ssl3?

Then SSLv3 isn't enabled.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: KDE4 SSL

2014-10-20 Thread Thiago Macieira
On Monday 20 October 2014 21:00:51 Pali Rohár wrote:
 Hello!
 
 Do you know which KDE4 libraries are using SSL and TLS protocols?
 And it is now possible to disable SSLv2 and SSLv3 protocols in
 KDE4 libraries?

That would be QtNetwork, by way of kdecore and kio. SSLv2 is already disabled 
by default. To disable SSLv3 by default, you need to modify QtNetwork.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358


signature.asc
Description: This is a digitally signed message part.


Re: Question about QSslCipher::protocolString

2014-10-19 Thread Thiago Macieira
On Sunday 19 October 2014 18:14:36 Thomas Lübking wrote:
 On Sonntag, 19. Oktober 2014 16:35:35 CEST, Dawit A wrote:
  protocolString: SSLv3
  ...
  However if one uses openssl directly, the following information is
  returned:
  
  $ openssl s_client -connect blog.mozilla.org:443
  
  New, TLSv1/SSLv3, Cipher is DHE-RSA-AES128-SHA
  ...
  So the negotiated protocol when using openSSL directly is returned as
  TLSv1.1 where as QSslCipher almost always returns SSLv3. My question is
  why
  the negotiated protocol in QSslCipher is different from the one we get
  through openssl directly?
 
 I get SSLv3 from blog.mozilla.org, but TLSv1.2 from mail.google.com.
 
 Checking qDebug()  QSslSocket::defaultCiphers();,
 QSslCipher(name=ECDHE-RSA-AES256-GCM-SHA384, bits=256, proto=TLSv1.2) is
 top of the list here and most SSLv3 variants on the very bottom.
 
 -- THERE IS NO TLSv1.1 IN THAT LIST, NOR IN ::supportedCiphers()
 
 However, I don't know why QSslSocket doesn't provide TLSv1.1 (here)

This is looking like a Qt bug instead. Can you investigate QSslSocket instead?
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 120363: proposal to use the NOGUI switch in CMake files to set the default value for GUIenabled

2014-09-26 Thread Thiago Macieira
On Friday 26 September 2014 07:05:09 Marko Käning wrote:
 Hi Thiago,
 
 On 26 Sep 2014, at 07:01 , Thiago Macieira thi...@kde.org wrote:
  And still it needs to be studied for Qt5, unless the plan is to never
  transition to Qt 5 (which means KDE-on-Mac will stop compiling within 2
  years).
 
 did you miss our efforts on KF5 including setting up an OSX/CI system [1]?
 
 René has also produced patches for KF5 frameworks, which my OSX/CI system
 could prove to be buildable already. :-)
 
 So, we’re aware of it, but René is up to now focusing more on cleaning up
 KDE4, since we’re not yet there with any KF5 ports on MacPorts. But we’re
 getting there these days. :-D

You're missing my point.

My point is that this problem requires a Qt 5 solution, since the proposed 
solution won't work there. That solution should be understood, if not 
developed, before this patch gets accepted.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 120363: proposal to use the NOGUI switch in CMake files to set the default value for GUIenabled

2014-09-26 Thread Thiago Macieira
On Friday 26 September 2014 11:08:23 René J.V. Bertin wrote:
 Patches should *always* be upstreamed, especially when we are
 essentially the distributor (in essence we are carrying forks of our
 own projects due to these patches).
 
 Heh, and when upstream means Qt,  we'll probably have to maintain our own
 local patches waiting and hoping they'll ever get incorporated upstream?
 Remark, that's about the same situation as we (kde-mac) are currently in
 w.r.t. KDE

Why do you think those patches would not get into Qt?
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 120363: proposal to use the NOGUI switch in CMake files to set the default value for GUIenabled

2014-09-25 Thread Thiago Macieira
On Thursday 25 September 2014 13:32:41 René J.V. Bertin wrote:
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/120363/
 ---
 
 Review request for KDE Software on Mac OS X and kdelibs.
 
 
 Repository: kdelibs
 
 
 Description
 ---
 
 Applications can be defined in their CMake file as being `NOGUI`, but until
 now this has had very limited effect. Especially on OS X, those
 applications can still construct a minimal GUI and thus have visual
 presence in the Dock and application switcher (and have a menubar as
 well).
 
 This patch proposes to define a preprocessor token, `KDE_WITHOUT_GUI`, for
 those targets, and uses that token to set the default value for the
 `GUIenabled` option of the `KApplication` and `KUniqueApplication` classes.
 
 This could potentially be combined on OS X with the CoreFoundation call that
 turns a running application into an agent (see
 https://git.reviewboard.kde.org/r/120354).

Note that this change can't apply to a Qt5-based build since QApplication no 
longer has that extra parameter.

Are we sure we want to add a new feature that is Qt4-only and has a short 
lifetime?
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 120363: proposal to use the NOGUI switch in CMake files to set the default value for GUIenabled

2014-09-25 Thread Thiago Macieira
On Thursday 25 September 2014 22:32:35 René J.V. Bertin wrote:
 Ah, apparently Thiago missed the multiple recent reminders of the fact that
 we OS X users are going to be stuck in/with KDE4 for a tad longer than
 the average Linux user (Debian apart, maybe? ;)) Anyway, I guess I'm going
 to have to look again at how exactly `GUIenabled=false` leads to the
 qt_menu.nib not being loaded in Qt ...

Note that you're applying the change to X11 too and that will have an impact, 
but limited lifetime. If the problem is Mac only, then maybe apply the 
solution to Mac only too.

And still it needs to be studied for Qt5, unless the plan is to never 
transition to Qt 5 (which means KDE-on-Mac will stop compiling within 2 
years).
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Using Gerrit for code review in KDE

2014-09-15 Thread Thiago Macieira
On Monday 15 September 2014 16:49:39 Milian Wolff wrote:
 Where do I see the diff there? In the gerrit that runs on qt-project, I can 
 easily click one button to go to a unified or side-by-side diff view. Is
 that a custom extension? Generally, it seems as if the qt-project gerrit
 has a much cleaner GUI. I'm pretty lost when looking at the one up there...

It's an extension.

Ossi, where's the source code for the Gerrit the Qt Project uses?
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Retiring and testament

2014-09-10 Thread Thiago Macieira
On Tuesday 09 September 2014 17:41:59 Kevin Ottens wrote:
 You will still see me around of course. I'm retiring from KDE Frameworks,
 not  from KDE. I just want to focus mainly on Zanshin and some of my
 community work (french promo, manifesto, e.V.). Because of my other
 involvements you'll probably see me sending patches from time to time to
 KF5, just don't expect me to monitor closely what's going on or to drive
 anything anymore.

Hi Kevin

Thank you for so much work you've done and for leading the KF5 effort.

 Also, I am actively discussing with Kevin Krammer to pass him the torch. I 
 guess most of you know him. He will be a good replacement since he has a
 good  view on the whole stack. Not to neglect the fact we both have the
 same first name so you feel right at home.

Yeah, thanks for making the transition easy! The first name helps!

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: KDE Applications December 2014 release: which apps are targeting Qt4/Qt5?

2014-07-22 Thread Thiago Macieira
On Monday 21 July 2014 13:26:32 Frank Reininghaus wrote:
 * Many applications have an embedded terminal, which is provided by
 the Konsole KPart. If Konsole does not release a Qt5-based version in
 December, then any application which does will not have an embedded
 terminal any more.
 
 * All of Konqueror's functionality is provided by KParts that are
 provided by libraries and applications and that are loaded at runtime.
 If some of these KParts will not have a Qt5-based release, then the
 functionality of a Qt5-based Konqueror would be severely limited.

Are we figuring out a way to co-install both sets of KParts and load the right 
one at runtime?

The Qt plugin mechanism should be enough to prevent the wrong .so file from 
being loaded, but it would be easier on the system if the files were on 
different paths on the filesystem.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: code guideline

2014-07-09 Thread Thiago Macieira
On Saturday 28 June 2014 08:51:42 Rodrigo Bonifacio wrote:
 Dear all, is there any code guideline that recommends developers to avoid
 the use of exception handling mechanisms within the core libraries of KDE?

I'm going to let others speak about the use of exceptions in your own code, 
but note this:

Qt classes are not exception-safe.

So if you are allowed to use exceptions in your part of the KDE libraries,  
make sure that you don't:

 a) use Qt container types, like QList and QVector, on types that may throw on 
construction or copying
 b) let exceptions escape back into Qt code, including:
  1) slot activation
  2) event handling
  3) callbacks (such as qSort)

Using QString and QByteArray in code that uses exceptions is mostly safe 
because no exception can happen inside them. Stack unwinding would be no 
different than a regular end of scope anyway.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Compatibility problems with latest GTK+ applications

2014-05-08 Thread Thiago Macieira
Em qui 08 maio 2014, às 15:01:10, Martin Gräßlin escreveu:
 On Thursday 08 May 2014 14:39:49 Matthias Klumpp wrote:
  2014-05-08 9:31 GMT+02:00 Martin Gräßlin mgraess...@kde.org:
   * CSD styled windows don't react on compositing changes [1]
   * Double decorated windows [2]
   * CSD styled windows do not detect when re-parented to a decoration [3]
   * CSD context menu ignores _NET_ALLOWED_ACTIONS [4]
   * CSD context menu doesn't use _NET_DESKTOP_NAMES [5]
   * CSD context menu doesn't honor _NET_DESKTOP_LAYOUT [6]
   * Shadow included in CSD window [7]
   * Window disappears when middle clicking client side decoration [8]
   * Missing maximize and minimize buttons in client side decoration [9]
   * Decoration buttons do not follow custom specified layout in desktop
   environment [10]
   * A hung GTK application cannot be closed [11]
   * Context menu on window decoration is not the one of the environment
   [12]
   * No time based drag delay on window moving [13]
   * No drag delay on window resize [14]
  
  That is pretty great, thank you for taking the time! Some of these
  things unfortunately are design-decisions by GNOME, which I raised in
  IRC discussions a while ago, and where I think the interest is pretty
  low for fixing them (after getting some feedback on e.g. the CSD
  menus).
 
 which of the bug reports do you consider affected by design-decisions? I did
 not even report the mismatching cursors and the missing close button for
 dialogs and similar things.

I'd say at least 11, 12. A design decision of any CSD is that the client 
controls its closing and, therefore, if the client is hung, you can't tell it 
to close. You can kill the application with kill, xkill or using a global 
shortcut (Alt+F4, Ctrl+Alt+Esc, etc.) As for the context menu, it can be said 
it's part of the themeing: the CSD application needs to get information from 
the desktop in order to draw the proper decorations. You could say that 
includes what the context menu should look like.

That said, I fully expect 4, 6, 9, 13 and 14 to be also closed as working as 
designed because of the UX decisions. That is, we think this dialog 
shouldn't have a close button, so we won't draw it, despite what the desktop 
says.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358


signature.asc
Description: This is a digitally signed message part.


Re: Co-installability

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 21:00:57, Christoph Feck escreveu:
 I cannot remember we had these issues with the KDE3-KDE4 transition.
 Can anyone explain what changed? What's wrong with separate prefixes?

There's no such thing as separate prefixes. Everything in Linux distro is 
installed to /usr.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: DBus-activated applications

2014-04-05 Thread Thiago Macieira
Em sex 04 abr 2014, às 20:32:55, David Faure escreveu:
 The new idea, as a result of last year's freedesktop summit, is to improve 
 upon this and generalize it : even the first instance can be started with a 
 DBus call, using DBus activation (these .service files installed in
 share/dbus-1/services).

Did you have a chance to discuss with Lennart and Kay about systemd+kdbus not 
using /usr/share/dbus-1/services, but systemd unit files instead?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 117157: Unlock session via DBus

2014-03-31 Thread Thiago Macieira
Em seg 31 mar 2014, às 08:55:05, Martin Gräßlin escreveu:
 Personally I have to disagree. To me the graphical login is a an asset
 which  needs to be protected in a stronger way. Access to a tty should not
 equal access to the graphical system. The fact that X is broken should not
 result in us adding further insecurities which need to be fixed up once we
 transit to Wayland. The opposite has to happen: all the small security
 issues we let in, because X was already broken need to get fixed. This
 thread turned into a nice TODO list

I'm not asking for it to be insecure. I've already authenticated by logging in 
to the virtual console. So let me unlock my session via D-Bus.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358


signature.asc
Description: This is a digitally signed message part.


Re: Review Request 117157: Unlock session via DBus

2014-03-30 Thread Thiago Macieira
Em dom 30 mar 2014, às 10:12:11, Thomas Lübking escreveu:
 On Sonntag, 30. März 2014 00:07:15 CEST, Martin Klapetek wrote:
  However many distros disable gdb attach to running processes by default;
  you have to either be root or echo 1 somewhere in /proc (for which you
  also
  need to be root).
 
 /proc/sys/kernel/yama/ptrace_scope

I'd never heard of Yama. It stands to reason that most distros do not have it, 
which in turn means most distros allow attaching. And I guess most developers 
will enable the tracing feature so they can attach and debug processes.

 On top of this, one could also have ksmserver PTRACE_ATTACH/SEIZE itself (at
 least on linux that used to be a singleton feature), but root access more
 or less implies game over in this context (you could simply replace
 ksmserver or the greeter app with a fixed variant and wait for the next
 incident)

Usually, root access and same-user access imply game-over. Which is why I 
think this feature should be allowed in.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 117157: Unlock session via DBus

2014-03-30 Thread Thiago Macieira
Em dom 30 mar 2014, às 10:10:06, Thomas Lübking escreveu:
 un/locking depending on HW dongles (bluetooth, USB) is certainly a nice
 feature, but requires some sort of internal support (where you'd just
 configure the HW id to trigger this)
 
 Unlocking via a dbus command is imo very problematic.

I disagree. The user already authenticated via their password before they were 
able to send the D-Bus command in the first place. So why not allow them to 
unlock?

 If we require a password, the user would be trapped into having it in his
 shell history or invited to store it (plaintext) on disk. If such tool
 would be required, it could work by having the user solve a captcha
 before reading the PW from stdin (to prevent automization)
 
 $ kscreenlocker unlock
 9*8+3?
 
  75
 
 Password?
 
 $

Please don't invent authentication mechanisms. That's what we have PAM for.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358





Re: Review Request 117157: Unlock session via DBus

2014-03-30 Thread Thiago Macieira
Em dom 30 mar 2014, às 19:38:14, Thomas Lübking escreveu:
  I disagree. The user already authenticated via their password 
 
 I should have been more precise in the first sentence:
 
Unlocking via a dbus command [that requires password authentication] is
 imo very problematic [because that will end up exposing the password
 on-disk]

How does the password end up on disk?

  before they were able to send the D-Bus command in the first place. 
  So why not allow them to unlock?
 
 Because we protect the session, not the shell.
 
 Occasional access will already be stopped by having to use gdb in the first
 place and even then it's possible to protect the process from manipulation
 by the same UID.

I maintain that this is not a protection. Unlocking without a password remains 
possible, but you're making it difficult for those of us who tinker with KDE 
and 
sometimes misconfigure the authentication. In the past, I could kill a process 
when I had improperly installed KDE and the greeter couldn't authenticate via 
PAM. Now I have to kill ksmserver or cause the session to exit via D-Bus.

All processes by the same user should be trusted.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 117157: Unlock session via DBus

2014-03-30 Thread Thiago Macieira
Em dom 30 mar 2014, às 21:40:36, Thomas Lübking escreveu:
 On Sonntag, 30. März 2014 20:53:01 CEST, Thiago Macieira wrote:
  Em dom 30 mar 2014, às 19:38:14, Thomas Lübking escreveu:
  Unlocking via a dbus command [that requires password authentication] is
  imo very problematic [because that will end up exposing the password
  on-disk]
  
  How does the password end up on disk?
 
 One of the use-cases in the linked bug is to invoke this by pam_usb or some
 bluetooth script. If the dbus call would require a password, the script
 could end up looking like 
 qdbus org.kde.kscreenlocker unlock 1ns3cur3

Don't pass the password via D-Bus. The call should just be:
qdbus org.kde.kscreenlocker unlock 

 The development situation is special and actually what i had in mind when
 saying
 
any way to circumvent authentication to this very session should be
 guarded by a special knowwhatido key [or require active authentication]

I've already authenticated by logging in, even if in another terminal. Just 
unlock the session already.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 117157: Unlock session via DBus

2014-03-30 Thread Thiago Macieira
Em seg 31 mar 2014, às 00:01:13, Thomas Lübking escreveu:
  If they can gain access to a TTY login we are already screwed
 
 leaving aside the present issue (/MainApplication quit being exposed to
 dbus) and given ptrace (gdb solution) is denied: in how far? (beyond
 killing the session, ie. being a nasty little jerk

They can already access all of the other applications and the user's files. 
They can attach gdb to any of the user processes. They can listen to all 
messages on D-Bus. They can attach to any IPC mechanism the user has access 
to.

They can also launch new X applications. So they may not cause the session to 
unlock, but they can still launch a keylogger application that will take effect 
when the legitimate user returns and unlocks the screen.

And, oh, the attacker can change the user's password! If it's a matter of 
unlocking the screen, they can use passwd to change the password, unlock the 
screen with the new password and then happily use the running session.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Review Request 117157: Unlock session via DBus

2014-03-30 Thread Thiago Macieira
Em seg 31 mar 2014, às 01:43:22, Thomas Lübking escreveu:
 On Montag, 31. März 2014 00:36:29 CEST, Thiago Macieira wrote:
  They can already access all of the other applications
 
 depends on whether they actively suppress such.
 
  and the user's files.
 
 true.
 
  They can attach gdb to any of the user processes.
 
 depends on whether they actively suppress such.

We've already established that the default is allowing ptracing.

  They can listen to all messages on D-Bus.
  They can attach to any IPC mechanism the user has access
  to.
 
 True.
 Question is whether applications expose secrets or access to other
 shells/services via dbus. Ie. can you highjack an open ssl connection,
 control banking software etc.

Yes, given the use of kioslaves, it's very easy to make extra requests via KIO 
and get the banking details. KWallet passwords and cookies are transferred 
over D-Bus, not to mention that the wallet and the cookie jar will be open and 
ready for requests.

  They can also launch [...] a keylogger
 
 True and if you enter a password into anything that does not grab the
 keyboard, this is a general issue of X11 (and if you've physical access to
 the machine, that doesn't matter either, because you can add a
 cronjob/service to track the device nodes)

Agreed. But we won't get that fixed until Wayland. Neither KWallet nor the KDE 
password dialogs (including those from the polkit agent) nor website passwords 
grab the keyboard. In fact, the only tool I know that does that is pinentry 
(gpg-agent).

 Leaving access to an open shell is certainly bad enough - beyond question.
 The question is whether gaining direct access to a running session and
 random open clients (and leaving the stage untraced) is more valuable and
 thus worth pretection.

We're assuming that the attacker already gained access to the session at this 
point. For example, if you've left a logged in shell in a virtual console. At 
that point, it's already game over.

Since that is so, let's stop trying to cover the sun with a sieve. Instead, 
let's make the life of developers and helpgivers easier: let there be an 
unlock command via D-Bus, without transiting the password again.

  And, oh, the attacker can change the user's password!
 
 Errhemmm... Without providing the present one?
 /That/ trick you gotta show me. =)

Right, it does ask for the current password.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: KF5: Parsing times with timezone abbreviations

2014-03-30 Thread Thiago Macieira
Em seg 24 mar 2014, às 04:33:34, Kevin Kofler escreveu:
 Hi,
 
 what is the recommended way to parse times with short timezone
 abbreviations, such as 16:00 CET, in Qt 5 / KF5 land? (I am asking because
 this is the format the BBC is using for weather observation times in their
 RSS files.)
 
 In kdelibs 4, this should do what we want:
 dateTime = KDateTime::fromString(timeString, %H:%M
 %Z).toLocalZone().dateTime(); but KDateTime is deprecated in KF5.

Time zone abbreviations are useless, since they are not unique. Simply strip 
them out of your string before passing to QDateTime.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Moving Baloo forward

2014-02-22 Thread Thiago Macieira
Em sáb 22 fev 2014, às 10:37:04, GEO escreveu:
  Is the metadata any more sensitive than the data itself? If you're copying
  a file to an unencrypted filesystem, then the data is no longer secure.
 You could a share a document not containing any personal information (a
 third party document stored on your hdd), but the comments or tags could
 contain information you do not want to share with others.

It's just as likely that I may want to back up my data with the metadata.

Also, considering many file formats support embedded revisions and comments, 
before sharing stuff you should always run a cleaner. Many a big company were 
caught putting out documents in Microsoft Word formats where one could read 
older revisions and comments.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



Re: Moving Baloo forward

2014-02-21 Thread Thiago Macieira
Em sex 21 fev 2014, às 21:00:07, Nicolás Alvarez escreveu:
 2014-02-21 20:30 GMT-03:00 Sebastian Kügler se...@kde.org:
  On Thursday, February 20, 2014 08:58:48 GEO wrote:
  Maybe a strange idea, but it would resolve the privacy problem: Baloo
  could
  optionally encrypt all the attributes using a user defined password,
  meaning baloo stores encrypted strings as file attributes. I have no
  experience with file attributes, but I suppose the performance of search
  queries would suck, because of the decryption.
  
  Use an encrypted filesystem. :)
 
 That's a solution for a different problem. The problem in discussion
 is when you copy a file (perhaps to an unencrypted pendrive) unaware
 that you're also copying xattrs/metadata. Encrypting your main
 filesystem doesn't help with that.

Is the metadata any more sensitive than the data itself? If you're copying a 
file to an unencrypted filesystem, then the data is no longer secure.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
  PGP/GPG: 0x6EF45358; fingerprint:
  E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



  1   2   3   4   >