Re: [Development] Security-relevant 3rd party components bundled with Qt

2022-10-12 Thread Volker Hilsheimer via Development
> On 7 Oct 2022, at 22:08, Robert Löhning via Development 
>  wrote:
> 
> Am 20.09.22 um 14:47 schrieb Volker Hilsheimer:
>> Hi,
>> Some of the 3rd party components we bundle in Qt are directly involved in 
>> code paths that are designed to process untrusted data. Following up on the 
>> situation with freetype [1] and the discussion we had during summer [2], it 
>> would help know which of the 3rd party components we bundle today have a 
>> security relevant surface. All components process data, but many only 
>> process data that the application developer has full control over (for 
>> example, we explicitly state that you should not load any untrusted QML code 
>> or content [3]). Those that are designed to process data from anywhere are 
>> the ones that are most interesting here.
>> Those components should then be watched closer, and always get updated to 
>> the latest version, perhaps even for patch releases. To that end, I’ve 
>> started to collect a list of such components on
>> https://wiki.qt.io/Third_Party_Code_in_Qt
>> and would appreciate if you could have a look and add missing components to 
>> that page, esp if you are in charge of some of them. I’ve included a column 
>> that describes what kind of patches we apply when we update the 3rd party 
>> code (and this is perhaps a good opportunity to see if all of those are 
>> still necessary).
>> In the line of the previous discussion [1], we can then start investigating 
>> our options for those 3rd party components; for instance, can we build them 
>> some of them as shared libraries so that they can be easily updated? On 
>> which platforms are some of them available as system libraries or SDKs, and 
>> do we test that those work in CI?
>> Thanks,
>> Volker
>> PS: Given the nature of Qt WebEngine, we can probably skip that particular 
>> repository in this exercise.
>> [1] https://lists.qt-project.org/pipermail/development/2022-July/042795.html
>> [2] https://lists.qt-project.org/pipermail/development/2022-July/042729.html
>> [3] https://doc.qt.io/qt-6/qtqml-documents-networktransparency.html
>> ___
>> Development mailing list
>> Development@qt-project.org
>> https://lists.qt-project.org/listinfo/development
> 
> Hi,
> 
> thank you for this initiative Volker.
> 
> Would it make sense to add a column to that table containing the contact info 
> of the respective 3rd party component's maintainer(s) and/or bug tracker? 
> It's awkward to have found an issue and not know whom to tell about it.

Sure, add what you think is useful.


> By the way: If anybody knows how to reach a maintainer of libtiff, please let 
> me know.

http://www.libtiff.org specifies t...@remotesensing.org as the mailing list 
address, and names a few individuals. Based on 
https://www.asmail.be/msg0054916394.html it would seem that you found that 
already though.

Volker



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Using '#pragma once' instead of include guards?

2022-10-12 Thread Hasselmann Mathias

Sounds like an excellent plan.

Ciao
Mathias

Am 12.10.2022 um 12:35 schrieb Volker Hilsheimer via Development:

On 11 Oct 2022, at 22:11, Thiago Macieira  wrote:

On Tuesday, 11 October 2022 12:25:13 PDT Kyle Edwards via Development wrote:

Speaking as co-maintainer of CMake, we have effectively required #pragma
once to build CMake itself since August 2017, we officially codified
this as policy in September 2020, and we will soon be writing a
clang-tidy plugin to enforce this in our CI. We have not received any
complaints about it. Just my $0.02.

Thanks for the information. This confirms what we already knew that all systems
and compilers where Qt would be compiled do support it.

However, neither Qt Creator nor CMake are libraries. They are not comparable.


Thanks all for sharing your insights and digging up the previous discussions as 
well.

The summary of all this then seems to be:

- ok to use '#pragma once’ in headers that are not designed to be included by 
Qt users, i.e. in tools, applications, examples and demos, tests
- for everything else, in particular for public and, for consistency’s sake - 
private headers in Qt, we continue to use conventional include guards

Rationale: #pragma once is not well enough defined and not part of the 
standard, and we cannot make any assumptions about how Qt is installed, used as 
part of a larger SDK etc. So best to stay conservative.

If that’s not entirely off, then I’d like to put this into 
https://wiki.qt.io/Coding_Conventions [1], preempting perhaps a new thread on 
this topic in a few years.

Volker

[1]: And since that page seems rather outdated - e.g. we do use dynamic_cast in 
Qt today, and the suggestion to normalize signals and slots should rather 
suggest to make connections via PMF syntax - perhaps it’s time to move this to 
a QUIP where we can discuss and review such changes in gerrit. I won’t have 
time to do that for a while (perhaps ditto for 
https://wiki.qt.io/Qt_Coding_Style), but perhaps someone else wants to give 
this a shot.

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Using '#pragma once' instead of include guards?

2022-10-12 Thread Hasselmann Mathias



Am 11.10.2022 um 21:20 schrieb Kevin Kofler via Development:

"locking you down to a vendor" is a funny argument when the Wikipedia
article:
https://en.wikipedia.org/wiki/Pragma_once
cannot name a single compiler that does not support #pragma once, and 20
that do.


Yes, it is supported in a way, that each compiler recognizes this 
#pragma and does something compiler specific with it, but what exactly a 
compiler does with it, how each compiler determinates identity is 
purposefully not listed in that table. Well, and that's exactly the 
problem: Nobody really can tell, what any compiler does with the pragma 
and if behavior might change with the next micro patch version.


I am pretty sure, absolutely nobody on this list would object the use of 
#pragma once, if compiler vendors would have documented somewhere, what 
exactly #pragma once means, what identity means, how it is recognized, 
how it is to be implemented. If #pragma once would be a well documented 
and properly implemented industry standard really nobody could object 
its use, as Qt and its users could rely on the spec and ask tooling and 
compiler vendors to fix their software if it doesn't match this 
specification. Still: It isn't. We basically are discussion the use of a 
feature that's entirely undefined and totally in the void. Doing so is 
something for religion, not for engineering.


Ciao
Mathias

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Using '#pragma once' instead of include guards?

2022-10-12 Thread Volker Hilsheimer via Development

> On 11 Oct 2022, at 22:11, Thiago Macieira  wrote:
> 
> On Tuesday, 11 October 2022 12:25:13 PDT Kyle Edwards via Development wrote:
>> Speaking as co-maintainer of CMake, we have effectively required #pragma
>> once to build CMake itself since August 2017, we officially codified
>> this as policy in September 2020, and we will soon be writing a
>> clang-tidy plugin to enforce this in our CI. We have not received any
>> complaints about it. Just my $0.02.
> 
> Thanks for the information. This confirms what we already knew that all 
> systems 
> and compilers where Qt would be compiled do support it.
> 
> However, neither Qt Creator nor CMake are libraries. They are not comparable.


Thanks all for sharing your insights and digging up the previous discussions as 
well.

The summary of all this then seems to be:

- ok to use '#pragma once’ in headers that are not designed to be included by 
Qt users, i.e. in tools, applications, examples and demos, tests
- for everything else, in particular for public and, for consistency’s sake - 
private headers in Qt, we continue to use conventional include guards

Rationale: #pragma once is not well enough defined and not part of the 
standard, and we cannot make any assumptions about how Qt is installed, used as 
part of a larger SDK etc. So best to stay conservative.

If that’s not entirely off, then I’d like to put this into 
https://wiki.qt.io/Coding_Conventions [1], preempting perhaps a new thread on 
this topic in a few years.

Volker

[1]: And since that page seems rather outdated - e.g. we do use dynamic_cast in 
Qt today, and the suggestion to normalize signals and slots should rather 
suggest to make connections via PMF syntax - perhaps it’s time to move this to 
a QUIP where we can discuss and review such changes in gerrit. I won’t have 
time to do that for a while (perhaps ditto for 
https://wiki.qt.io/Qt_Coding_Style), but perhaps someone else wants to give 
this a shot.

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] [Announce] Qt Creator 9 Beta released

2022-10-12 Thread List for announcements regarding Qt releases and development via Announce via Development
We are happy to announce the release of Qt Creator 9 Beta!

https://www.qt.io/blog/qt-creator-9-beta-released

-- 
Eike Ziller
Principal Software Engineer

The Qt Company GmbH
Erich-Thilo-Straße 10
D-12489 Berlin
eike.zil...@qt.io
http://qt.io
Geschäftsführer: Mika Pälsi,
Juha Varelius, Jouni Lintunen
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 
144331 B


___
Announce mailing list
annou...@qt-project.org
https://lists.qt-project.org/listinfo/announce
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] C++20 goodies (was: Using '#pragma once' instead of include guards?)

2022-10-12 Thread Edward Welbourne via Development
Henry Skoglund (11 October 2022 22:18) wrote:
> Sometime in the far future when Qt requires c++20 things might
> improve: we could use std::source_location::filename
> (https://en.cppreference.com/w/cpp/utility/source_location/file_name )

Nice.  I'm a bit surprised file_name() returns a char* rather than a
std::filesystem::path, but it'll do.  It's also nice to see
source_location has a function_name() that can finally unify the
disparate ways of getting that information.

More things to look forward to when we eventually get to C++20 ...

Eddy.
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Nominating Christian Ehrlicher and Andy Shaw as Qt SQL co-maintainers

2022-10-12 Thread Volker Hilsheimer via Development
> On 26 Sep 2022, at 09:11, Volker Hilsheimer  wrote:
> 
> Hi,
> 
> 
> I would like to nominate Christian and Andy as co-maintainers for Qt SQL.
> 
> Mark Brand, who is currently listed as the maintainer of Qt SQL, hasn’t 
> responded to any of my emails, including one from two weeks ago where I 
> explicitly informed him that he will be removed as maintainer if he doesn’t 
> respond (as per the recent addition to the governance model [1], I cc’ed Alex 
> Blasche as a second maintainer in that email).
> 
> Christian and Andy have already agreed to take on the responsibility 
> together. they both have a long history of working with the module, and as we 
> support a number of SQL drivers in Qt it’s good to have more than one person 
> looking after things.
> 
> 
> Volker
> 
> [1] https://codereview.qt-project.org/c/meta/quips/+/423766


This change is now in effect at https://wiki.qt.io/Maintainers#Qt_Maintainers

Congratulations Christian and Andy, and thanks a lot for stepping up!


Volker

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development