Re: [Qt-creator] Qt Creator for Linux Kernel Development
On Tue, Nov 29, 2016 at 10:55 AM, Nikolai Kosjar wrote: > On 11/28/2016 07:03 PM, Jason A. Donenfeld wrote: >> >> On Wed, Nov 23, 2016 at 8:45 AM, Konstantin Tokarev >> wrote: >>> >>> You can set PRECOMPILED_HEADER = header.h in your pro file. It should be >>> applied to all sources. >> >> >> Nope, that's certainly not what that field does. > > > Should work with the Clang Code Model, Qt Creator from the current 4.2 > branch. > > The corresponding report was > https://bugreports.qt.io/browse/QTCREATORBUG-15590. It should also work with the built-in code model. Not sure why Jason claimed it doesn't. Did you try it? - Orgad ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
On 11/29/2016 08:23 PM, Jason A. Donenfeld wrote: Hi Nikolai, On Tue, Nov 29, 2016 at 9:55 AM, Nikolai Kosjar wrote: Should work with the Clang Code Model, Qt Creator from the current 4.2 branch. The corresponding report was https://bugreports.qt.io/browse/QTCREATORBUG-15590. Okay, in that case, I'll wait until 4.2 for it. One question: PRECOMPILED_HEADER -- will this take a list, or only a single value? Providing a list, the code model gets a list :) Nikolai ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
Hi Nikolai, On Tue, Nov 29, 2016 at 9:55 AM, Nikolai Kosjar wrote: > Should work with the Clang Code Model, Qt Creator from the current 4.2 > branch. > > The corresponding report was > https://bugreports.qt.io/browse/QTCREATORBUG-15590. Okay, in that case, I'll wait until 4.2 for it. One question: PRECOMPILED_HEADER -- will this take a list, or only a single value? By the way, I figured out an alternative workaround in the meantime. I add to "clang code model warnings" box the string "-include /path/to/header.h". Jason ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
Hi Marco, I'll start compiling a list for you, so that I can give you something more useful than my last message. For starters, here's one bug found within seconds: 1. Open a file in the project. All seems fine. 2. Ctrl click on a function that points to somewhere in the Linux kernel headers. 3. Close that file. Now there are all sorts of non-nonsensical clang errors in the original file. Here's a video to demonstrate: https://data.zx2c4.com/qt-creator-clang-model-bug-ff94c572-d8ff-4c54-a5ac-3aa6485251a9.mp4 Jason ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
On 11/23/2016 08:45 AM, Konstantin Tokarev wrote: 23.11.2016, 08:51, "Jason A. Donenfeld" : Hello Eike & Qt Creator mailing list, I'm insane and decided to try using an IDE for Linux kernel development. Much to my delight, it actually works well. (Everybody on the mailing list to which this message is cross-posted just vomited a little bit in their mouth and swallowed, but fear not: I'm a competent VIM user too. It's just that sometimes clickity clicking around Qt Creator is buttery nice. Here's a screenshot [2].) I'm working on a small kernel module [1], and for it I made a very minimal .pro file to import its files into Qt Creator. I even hooked the build/run commands up to my qemu testing rig. Seems to work pretty well. Here's the .pro I use: CONFIG -= qt INCLUDEPATH = /usr/src/linux/arch/x86/include /usr/src/linux/arch/x86/include/generated/uapi /usr/src/linux/ arch/x86/include/generated /usr/src/linux/include /usr/src/linux/arch/x86/include/uapi /usr/src/linux/arch/x 86/include/generated/uapi /usr/src/linux/include/uapi /usr/src/linux/include/generated/uapi DEFINES = __KERNEL__ DEBUG MODULE SOURCES = $$system(find -L . -type f -iname $$system_quote(*.c) -and -not -path $$system_quote(./tests/*)) $ $system(find -L . -type f -iname $$system_quote(*.S) -and -not -path $$system_quote(./tests/*)) HEADERS = $$system(find -L . -type f -iname $$system_quote(*.h) -and -not -path $$system_quote(./tests/*)) As you can see, it's a real hack. I also do development on the main Linux kernel tree, and similarly for that, I have a .pro file that works well: CONFIG -= qt INCLUDEPATH = $$system(find -L include/ -type d) SOURCES = $$system(find -L . -type f -iname \'*.c\') HEADERS = $$system(find -L . -type f -iname \'*.h\') INCLUDEPATH = include/ arch/x86/include Download the linux sources, put that in the tree, and load it up in Qt Creator. It works. Amazing! But don't get too excited. Unfortunately, there are two issues that make things unbearable: (A) Qt Creator doesn't seem to parse the C correctly. Things like designated initializers and a few other C features here and there just don't get parsed correctly, and the IDE stops being useful. I suspect this is because things are actually being parsed in C++ mode. Bummer. Developers: any interest in improving C support in Qt Creator? (B) There is no way to tell Qt Creator that a particular header file is included in every file -- that is, that gcc's "-include" is in use. There is a way of messing with the "C++ Code Model" on a file-by-file basis, for the duration of the time that the file is open, but no way to automatically have it included in every file of the project. This is a major hindrance. It means that every ifdef for every kconfig option is a grayed out unclickable region, rendering most things useless. BTW, I'm facing similar issue with QtWebKit: config.h is included into all source files, but never in headers, so all #if's in headers are disabled and code model does not function properly. Could you provide a report for this with a minimal example? Nikolai ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
On 11/28/2016 07:03 PM, Jason A. Donenfeld wrote: On Wed, Nov 23, 2016 at 8:45 AM, Konstantin Tokarev wrote: You can set PRECOMPILED_HEADER = header.h in your pro file. It should be applied to all sources. Nope, that's certainly not what that field does. Should work with the Clang Code Model, Qt Creator from the current 4.2 branch. The corresponding report was https://bugreports.qt.io/browse/QTCREATORBUG-15590. Nikolai ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
On Mon, Nov 28, 2016 at 07:03:39PM +0100, Jason A. Donenfeld wrote: > Hello All, > > Responses to each of you are inline below. > > Sounds to me like there's a lot of work to be done, still, and I > haven't received any enthusiastic responses from the Qt team of, "yes! > we'd love to work on this and make Qt Creator suitable for kernel > development!" I didn't know the Qt Creator team was supposed to be in the cheer-leading business. Andre' ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
On November 28, 2016 19:03:57 "Jason A. Donenfeld" wrote: > Hello All, > > Responses to each of you are inline below. > > Sounds to me like there's a lot of work to be done, still, and I > haven't received any enthusiastic responses from the Qt team of, "yes! > we'd love to work on this and make Qt Creator suitable for kernel > development!" Bummer. Seems like a great opportunity to increase the > tool's user appeal. > > On Wed, Nov 23, 2016 at 8:45 AM, Konstantin Tokarev wrote: >> BTW, I'm facing similar issue with QtWebKit: config.h is included into all >> source files, but never in headers, so all #if's in headers are disabled >> and code model does not function properly. > > Yep, this is pretty much entirely broken. It's not implemented in the > Qt C++ model, and it straight up does not work in the clang mode > model. The lack of good support for this feature -- project wide > -include file -- is pretty limiting. > > On Wed, Nov 23, 2016 at 8:58 AM, Orgad Shaneh wrote: >> Which version do you use? Designated initializers support was added in 3.2 >> (c56b999249d4cb7dc7e8026a3297b63ff56d). >> >> I now see that the members are not detected correctly (for e.g. Find >> Usages), but parsing looks ok. > > I'm using 4.1. No, it still does not work. Here's a screenshot: > https://data.zx2c4.com/designated-init-broken-qt-creator-49b6f51f.png > >> You can set PRECOMPILED_HEADER = header.h in your pro file. It should be >> applied to all sources. > > Nope, that's certainly not what that field does. > > On Wed, Nov 23, 2016 at 10:21 AM, Eike Ziller wrote: >> Are you using the ClangCodeModel plugin? If not, you probably should. >> It does not help for things like find usages and locator, since for this we >> still use the built-in model, >> and fixes for the built-in model will be very limited. >> But for working with the individual _source_ file it should at least help. >> I can even open Objective-C++ files and get decent highlighting and even >> get some completion for Objective-C ;) > > The clang mode model is even more buggy than the built-in one. Not > only that, but it's an order of magnitude slower too, which makes Qt > Creator impossible to use. The only viable usage of the IDE is through > the built-in code model. Hopefully the Qt engineers will put in the > time to bring it up to par with modern times with -include, and add > explicit C support... What is exactly buggy? The code model can handle C but we need that information from the project management. QMake isn't differentiating between C and C++ headers, so we simply don't get that information. Like other have written there could be workarounds. Anyway it would be interesting what is your environment that makes the clang code model so slow. It's quite fine for me. There is the header guard bug which is vanishing with #pragma once. What are actually your problems? > >> One other issue are header files - there is no way Qt Creator can >> automatically tell if a >> .h file is supposed to be C, C++, Objective-C, Objective-C++, >> One hack workaround for C might be to remove *.h from the text/x-c++hdr mime >> type in Options > Environment > Mime Types, >> but that would be a big and global hack (if it worked) ;) >> We could probably provide a project setting for a “default” language to use >> though, which would then also be sharable with all in the project sources >> with a .shared file. > > A project-wide setting would indeed be most welcome for this. > > > On Wed, Nov 23, 2016 at 5:15 PM, Andrzej Telszewski > wrote: >> I don't remember exactly, but I used some other feature of QtC (Import >> Project was it?). >> It allowed to easily setup QtC for kernel development. >> It worked pretty well, most of the time. >> Just a quick search: >> http://stackoverflow.com/questions/5417732/howto-prepare-qtcreator-for-linux-driver-kernel-development > > The solution listed here is basically wrong and doesn't work. The code > model won't actually parse that #include properly. > >> >> I too remember seeing false errors when code model parsed struct members >> initializers. >> >> But this code seems to work just fine now: > > Try something slightly more complicated and it totally blows up again. > See the linked screenshot above. > >> And yes, although I'm not going to be involved in enhancing QtC, I would >> love to see C receiving decent support. >> QtC is my main (well, the only) IDE, and I write both C and C++ code. > > If only the Qt developers cared about this too. Missed opportunity IMHO. > > Jason > ___ > Qt-creator mailing list > qt-crea...@qt-project.org > http://lists.qt-project.org/mailman/listinfo/qt-creator ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
Hello All, Responses to each of you are inline below. Sounds to me like there's a lot of work to be done, still, and I haven't received any enthusiastic responses from the Qt team of, "yes! we'd love to work on this and make Qt Creator suitable for kernel development!" Bummer. Seems like a great opportunity to increase the tool's user appeal. On Wed, Nov 23, 2016 at 8:45 AM, Konstantin Tokarev wrote: > BTW, I'm facing similar issue with QtWebKit: config.h is included into all > source files, but never in headers, so all #if's in headers are disabled > and code model does not function properly. Yep, this is pretty much entirely broken. It's not implemented in the Qt C++ model, and it straight up does not work in the clang mode model. The lack of good support for this feature -- project wide -include file -- is pretty limiting. On Wed, Nov 23, 2016 at 8:58 AM, Orgad Shaneh wrote: > Which version do you use? Designated initializers support was added in 3.2 > (c56b999249d4cb7dc7e8026a3297b63ff56d). > > I now see that the members are not detected correctly (for e.g. Find > Usages), but parsing looks ok. I'm using 4.1. No, it still does not work. Here's a screenshot: https://data.zx2c4.com/designated-init-broken-qt-creator-49b6f51f.png > You can set PRECOMPILED_HEADER = header.h in your pro file. It should be > applied to all sources. Nope, that's certainly not what that field does. On Wed, Nov 23, 2016 at 10:21 AM, Eike Ziller wrote: > Are you using the ClangCodeModel plugin? If not, you probably should. > It does not help for things like find usages and locator, since for this we > still use the built-in model, > and fixes for the built-in model will be very limited. > But for working with the individual _source_ file it should at least help. > I can even open Objective-C++ files and get decent highlighting and even > get some completion for Objective-C ;) The clang mode model is even more buggy than the built-in one. Not only that, but it's an order of magnitude slower too, which makes Qt Creator impossible to use. The only viable usage of the IDE is through the built-in code model. Hopefully the Qt engineers will put in the time to bring it up to par with modern times with -include, and add explicit C support... > One other issue are header files - there is no way Qt Creator can > automatically tell if a > .h file is supposed to be C, C++, Objective-C, Objective-C++, > One hack workaround for C might be to remove *.h from the text/x-c++hdr mime > type in Options > Environment > Mime Types, > but that would be a big and global hack (if it worked) ;) > We could probably provide a project setting for a “default” language to use > though, which would then also be sharable with all in the project sources > with a .shared file. A project-wide setting would indeed be most welcome for this. On Wed, Nov 23, 2016 at 5:15 PM, Andrzej Telszewski wrote: > I don't remember exactly, but I used some other feature of QtC (Import > Project was it?). > It allowed to easily setup QtC for kernel development. > It worked pretty well, most of the time. > Just a quick search: > http://stackoverflow.com/questions/5417732/howto-prepare-qtcreator-for-linux-driver-kernel-development The solution listed here is basically wrong and doesn't work. The code model won't actually parse that #include properly. > > I too remember seeing false errors when code model parsed struct members > initializers. > > But this code seems to work just fine now: Try something slightly more complicated and it totally blows up again. See the linked screenshot above. > And yes, although I'm not going to be involved in enhancing QtC, I would > love to see C receiving decent support. > QtC is my main (well, the only) IDE, and I write both C and C++ code. If only the Qt developers cared about this too. Missed opportunity IMHO. Jason ___ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
> On Nov 23, 2016, at 6:51 AM, Jason A. Donenfeld wrote: > > Hello Eike & Qt Creator mailing list, > > I'm insane and decided to try using an IDE for Linux kernel > development. Much to my delight, it actually works well. (Everybody on > the mailing list to which this message is cross-posted just vomited a > little bit in their mouth and swallowed, but fear not: I'm a competent > VIM user too. It's just that sometimes clickity clicking around Qt > Creator is buttery nice. Here's a screenshot [2].) > > I'm working on a small kernel module [1], and for it I made a very > minimal .pro file to import its files into Qt Creator. I even hooked > the build/run commands up to my qemu testing rig. Seems to work pretty > well. Here's the .pro I use: > > CONFIG -= qt > INCLUDEPATH = /usr/src/linux/arch/x86/include > /usr/src/linux/arch/x86/include/generated/uapi /usr/src/linux/ > arch/x86/include/generated /usr/src/linux/include > /usr/src/linux/arch/x86/include/uapi /usr/src/linux/arch/x > 86/include/generated/uapi /usr/src/linux/include/uapi > /usr/src/linux/include/generated/uapi > DEFINES = __KERNEL__ DEBUG MODULE > SOURCES = $$system(find -L . -type f -iname $$system_quote(*.c) -and > -not -path $$system_quote(./tests/*)) $ > $system(find -L . -type f -iname $$system_quote(*.S) -and -not -path > $$system_quote(./tests/*)) > HEADERS = $$system(find -L . -type f -iname $$system_quote(*.h) -and > -not -path $$system_quote(./tests/*)) > > As you can see, it's a real hack. > > I also do development on the main Linux kernel tree, and similarly for > that, I have a .pro file that works well: > > CONFIG -= qt > INCLUDEPATH = $$system(find -L include/ -type d) > SOURCES = $$system(find -L . -type f -iname \'*.c\') > HEADERS = $$system(find -L . -type f -iname \'*.h\') > INCLUDEPATH = include/ arch/x86/include > > Download the linux sources, put that in the tree, and load it up in Qt > Creator. It works. Amazing! > > But don't get too excited. Unfortunately, there are two issues that > make things unbearable: > > (A) Qt Creator doesn't seem to parse the C correctly. Things like > designated initializers and a few other C features here and there just > don't get parsed correctly, and the IDE stops being useful. I suspect > this is because things are actually being parsed in C++ mode. Bummer. > Developers: any interest in improving C support in Qt Creator? Are you using the ClangCodeModel plugin? If not, you probably should. It does not help for things like find usages and locator, since for this we still use the built-in model, and fixes for the built-in model will be very limited. But for working with the individual _source_ file it should at least help. I can even open Objective-C++ files and get decent highlighting and even get some completion for Objective-C ;) One other issue are header files - there is no way Qt Creator can automatically tell if a .h file is supposed to be C, C++, Objective-C, Objective-C++, One hack workaround for C might be to remove *.h from the text/x-c++hdr mime type in Options > Environment > Mime Types, but that would be a big and global hack (if it worked) ;) We could probably provide a project setting for a “default” language to use though, which would then also be sharable with all in the project sources with a .shared file. Br, Eike > (B) There is no way to tell Qt Creator that a particular header file > is included in every file -- that is, that gcc's "-include" is in use. > There is a way of messing with the "C++ Code Model" on a file-by-file > basis, for the duration of the time that the file is open, but no way > to automatically have it included in every file of the project. This > is a major hindrance. It means that every ifdef for every kconfig > option is a grayed out unclickable region, rendering most things > useless. Developers: any interest in fixing this? I spoke to a few of > you in IRC several months ago about this, and there was interest, but > it seems to have evaporated. > > So, anyway, if you think it would be cool to be able to say, "Qt > Creator is used for Linux Kernel Development!", then maybe we can work > together to actually get things working properly. It's already 85% > there, and the remaining chunk seems well within reach. > > Not only that, but if Qt Creator becomes generally usable for ordinary > C projects, it would most likely become a regular tool during my > professional activities, namely, auditing large code bases for > vulnerabilities and improving the security of systems. > > Let me know if you are interested in assisting with this. > > Thanks, > Jason > > > > [1] https://www.wireguard.io/ > [2] https://data.zx2c4.com/qt-creator-wireguard-development.png > ___ > Qt-creator mailing list > qt-crea...@qt-project.org > http://lists.qt-project.org/mailman/listinfo/qt-creator -- Eike Ziller Principal Software Engineer The Qt Company GmbH Rudower Chaussee 13 D-12489 Berlin eike.
Re: [Qt-creator] Qt Creator for Linux Kernel Development
On Wed, Nov 23, 2016 at 7:51 AM, Jason A. Donenfeld wrote: > (A) Qt Creator doesn't seem to parse the C correctly. Things like > designated initializers and a few other C features here and there just > don't get parsed correctly, and the IDE stops being useful. I suspect > this is because things are actually being parsed in C++ mode. Bummer. > Developers: any interest in improving C support in Qt Creator? > Which version do you use? Designated initializers support was added in 3.2 ( c56b999249d4cb7dc7e8026a3297b63ff56d). I now see that the members are not detected correctly (for e.g. Find Usages), but parsing looks ok. (B) There is no way to tell Qt Creator that a particular header file > is included in every file -- that is, that gcc's "-include" is in use. > There is a way of messing with the "C++ Code Model" on a file-by-file > basis, for the duration of the time that the file is open, but no way > to automatically have it included in every file of the project. This > is a major hindrance. It means that every ifdef for every kconfig > option is a grayed out unclickable region, rendering most things > useless. Developers: any interest in fixing this? I spoke to a few of > you in IRC several months ago about this, and there was interest, but > it seems to have evaporated. > You can set PRECOMPILED_HEADER = header.h in your pro file. It should be applied to all sources. - Orgad ___ WireGuard mailing list WireGuard@lists.zx2c4.com http://lists.zx2c4.com/mailman/listinfo/wireguard
Re: [Qt-creator] Qt Creator for Linux Kernel Development
23.11.2016, 08:51, "Jason A. Donenfeld" : > Hello Eike & Qt Creator mailing list, > > I'm insane and decided to try using an IDE for Linux kernel > development. Much to my delight, it actually works well. (Everybody on > the mailing list to which this message is cross-posted just vomited a > little bit in their mouth and swallowed, but fear not: I'm a competent > VIM user too. It's just that sometimes clickity clicking around Qt > Creator is buttery nice. Here's a screenshot [2].) > > I'm working on a small kernel module [1], and for it I made a very > minimal .pro file to import its files into Qt Creator. I even hooked > the build/run commands up to my qemu testing rig. Seems to work pretty > well. Here's the .pro I use: > > CONFIG -= qt > INCLUDEPATH = /usr/src/linux/arch/x86/include > /usr/src/linux/arch/x86/include/generated/uapi /usr/src/linux/ > arch/x86/include/generated /usr/src/linux/include > /usr/src/linux/arch/x86/include/uapi /usr/src/linux/arch/x > 86/include/generated/uapi /usr/src/linux/include/uapi > /usr/src/linux/include/generated/uapi > DEFINES = __KERNEL__ DEBUG MODULE > SOURCES = $$system(find -L . -type f -iname $$system_quote(*.c) -and > -not -path $$system_quote(./tests/*)) $ > $system(find -L . -type f -iname $$system_quote(*.S) -and -not -path > $$system_quote(./tests/*)) > HEADERS = $$system(find -L . -type f -iname $$system_quote(*.h) -and > -not -path $$system_quote(./tests/*)) > > As you can see, it's a real hack. > > I also do development on the main Linux kernel tree, and similarly for > that, I have a .pro file that works well: > > CONFIG -= qt > INCLUDEPATH = $$system(find -L include/ -type d) > SOURCES = $$system(find -L . -type f -iname \'*.c\') > HEADERS = $$system(find -L . -type f -iname \'*.h\') > INCLUDEPATH = include/ arch/x86/include > > Download the linux sources, put that in the tree, and load it up in Qt > Creator. It works. Amazing! > > But don't get too excited. Unfortunately, there are two issues that > make things unbearable: > > (A) Qt Creator doesn't seem to parse the C correctly. Things like > designated initializers and a few other C features here and there just > don't get parsed correctly, and the IDE stops being useful. I suspect > this is because things are actually being parsed in C++ mode. Bummer. > Developers: any interest in improving C support in Qt Creator? > > (B) There is no way to tell Qt Creator that a particular header file > is included in every file -- that is, that gcc's "-include" is in use. > There is a way of messing with the "C++ Code Model" on a file-by-file > basis, for the duration of the time that the file is open, but no way > to automatically have it included in every file of the project. This > is a major hindrance. It means that every ifdef for every kconfig > option is a grayed out unclickable region, rendering most things > useless. BTW, I'm facing similar issue with QtWebKit: config.h is included into all source files, but never in headers, so all #if's in headers are disabled and code model does not function properly. > Developers: any interest in fixing this? I spoke to a few of > you in IRC several months ago about this, and there was interest, but > it seems to have evaporated. > > So, anyway, if you think it would be cool to be able to say, "Qt > Creator is used for Linux Kernel Development!", then maybe we can work > together to actually get things working properly. It's already 85% > there, and the remaining chunk seems well within reach. > > Not only that, but if Qt Creator becomes generally usable for ordinary > C projects, it would most likely become a regular tool during my > professional activities, namely, auditing large code bases for > vulnerabilities and improving the security of systems. > > Let me know if you are interested in assisting with this. > > Thanks, > Jason > > [1] https://www.wireguard.io/ > [2] https://data.zx2c4.com/qt-creator-wireguard-development.png > ___ > Qt-creator mailing list > qt-crea...@qt-project.org > http://lists.qt-project.org/mailman/listinfo/qt-creator -- Regards, Konstantin ___ WireGuard mailing list WireGuard@lists.zx2c4.com http://lists.zx2c4.com/mailman/listinfo/wireguard