DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 0/3] enable PPC in test-meson-builds on ubuntu
@ 2023-08-31 12:10 Bruce Richardson
  2023-08-31 12:10 ` [PATCH 1/3] vhost: fix build for powerpc Bruce Richardson
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Bruce Richardson @ 2023-08-31 12:10 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

To help developers catch errors as soon as possible, we want to ensure
that as wide a variety of builds are done by test-meson-builds as
possible. Unfortunately, for those using Ubuntu, the shipped version
of GCC compiler for PowerPC on that system is not correctly detected by
the script. We fix this by detecting if Ubuntu is in use, and pointing
to the correct cross-file in that case.

On enabling those PPC builds on my system, a couple of other build
issues we encountered. These are fixed by the set before enabling the
build in the script.

Bruce Richardson (3):
  vhost: fix build for powerpc
  build: fix failures due to incompatible IPSec lib
  devtools: enable testing ppc builds on ubuntu

 devtools/test-meson-builds.sh       | 3 +++
 drivers/crypto/ipsec_mb/meson.build | 5 +++++
 lib/vhost/vduse.c                   | 9 ++++++---
 3 files changed, 14 insertions(+), 3 deletions(-)

--
2.39.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/3] vhost: fix build for powerpc
  2023-08-31 12:10 [PATCH 0/3] enable PPC in test-meson-builds on ubuntu Bruce Richardson
@ 2023-08-31 12:10 ` Bruce Richardson
  2023-09-01 14:59   ` Bruce Richardson
  2023-09-29 14:47   ` Maxime Coquelin
  2023-08-31 12:10 ` [PATCH 2/3] crypto/ipsec_mb: fix build failures due to incompatible lib Bruce Richardson
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 10+ messages in thread
From: Bruce Richardson @ 2023-08-31 12:10 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson, maxime.coquelin, stable, Chenbo Xia, David Marchand

When building on Ubuntu using the packaged powerpc compiler[1], a
warning is issued about the print format of the __u64 values.

../../lib/vhost/vduse.c: In function ‘vduse_vring_setup’:
../../lib/vhost/vhost.h:676:17: error: format ‘%llx’ expects argument of
type ‘long long unsigned int’, but argument 5 has type ‘__u64’ {aka
‘long unsigned int’} [-Werror=format=]
  676 |                 "VHOST_CONFIG: (%s) " fmt, prefix, ##args)
      |                 ^~~~~~~~~~~~~~~~~~~~~

Changing the format specifier to %lx, or to use PRIx64 breaks other
builds, so the safest solution is to explicitly typecast the printed
values to match the format string.

[1] powerpc64le-linux-gnu-gcc (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0

Fixes: a9120db8b98b ("vhost: add VDUSE device startup")
Cc: maxime.coquelin@redhat.com
Cc: stable@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/vhost/vduse.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/vhost/vduse.c b/lib/vhost/vduse.c
index 73ed424232..e2b6d35d37 100644
--- a/lib/vhost/vduse.c
+++ b/lib/vhost/vduse.c
@@ -162,9 +162,12 @@ vduse_vring_setup(struct virtio_net *dev, unsigned int index)
 
 	VHOST_LOG_CONFIG(dev->ifname, INFO, "VQ %u info:\n", index);
 	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tnum: %u\n", vq_info.num);
-	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdesc_addr: %llx\n", vq_info.desc_addr);
-	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdriver_addr: %llx\n", vq_info.driver_addr);
-	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdevice_addr: %llx\n", vq_info.device_addr);
+	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdesc_addr: %llx\n",
+			(unsigned long long)vq_info.desc_addr);
+	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdriver_addr: %llx\n",
+			(unsigned long long)vq_info.driver_addr);
+	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdevice_addr: %llx\n",
+			(unsigned long long)vq_info.device_addr);
 	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tavail_idx: %u\n", vq_info.split.avail_index);
 	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tready: %u\n", vq_info.ready);
 
-- 
2.39.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 2/3] crypto/ipsec_mb: fix build failures due to incompatible lib
  2023-08-31 12:10 [PATCH 0/3] enable PPC in test-meson-builds on ubuntu Bruce Richardson
  2023-08-31 12:10 ` [PATCH 1/3] vhost: fix build for powerpc Bruce Richardson
@ 2023-08-31 12:10 ` Bruce Richardson
  2023-08-31 13:18   ` Power, Ciara
  2023-08-31 12:10 ` [PATCH 3/3] devtools: enable testing ppc builds on ubuntu Bruce Richardson
  2023-10-11  9:14 ` [PATCH 0/3] enable PPC in test-meson-builds " Thomas Monjalon
  3 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2023-08-31 12:10 UTC (permalink / raw)
  To: dev
  Cc: Bruce Richardson, stable, Kai Ji, Pablo de Lara, Akhil Goyal,
	Ciara Power, Ray Kinsella, Fan Zhang

When cross-compiling for PowerPC on Ubuntu, the x86 IPSec_MB library was
getting found by the build system for use in the PPC build. This led to
failures at compile time due to the library not being linkable.

We can avoid these failures by checking the discovered library for
compatibility at configuration time. This needs a version check as it is
supported only from version 0.60 of meson onwards.

Fixes: c75542ae4200 ("crypto/ipsec_mb: introduce IPsec_mb framework")
Cc: stable@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/crypto/ipsec_mb/meson.build | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/crypto/ipsec_mb/meson.build b/drivers/crypto/ipsec_mb/meson.build
index 3057e6fd10..87bf965554 100644
--- a/drivers/crypto/ipsec_mb/meson.build
+++ b/drivers/crypto/ipsec_mb/meson.build
@@ -16,6 +16,11 @@ lib = cc.find_library('IPSec_MB', required: false)
 if not lib.found()
     build = false
     reason = 'missing dependency, "libIPSec_MB"'
+# if the lib is found, check it's the right format
+elif meson.version().version_compare('>=0.60') and not cc.links(
+        'int main(void) {return 0;}', dependencies: lib)
+    build = false
+    reason = 'incompatible dependency, "libIPSec_MB"'
 else
     ext_deps += lib
 
-- 
2.39.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 3/3] devtools: enable testing ppc builds on ubuntu
  2023-08-31 12:10 [PATCH 0/3] enable PPC in test-meson-builds on ubuntu Bruce Richardson
  2023-08-31 12:10 ` [PATCH 1/3] vhost: fix build for powerpc Bruce Richardson
  2023-08-31 12:10 ` [PATCH 2/3] crypto/ipsec_mb: fix build failures due to incompatible lib Bruce Richardson
@ 2023-08-31 12:10 ` Bruce Richardson
  2023-09-01  1:16   ` Tyler Retzlaff
  2023-10-11  9:14 ` [PATCH 0/3] enable PPC in test-meson-builds " Thomas Monjalon
  3 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2023-08-31 12:10 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

When running PPC builds with the packaged Ubuntu compiler, a different
cross-file needs to be used. Adjust the test-meson-builds script to take
account of this, so that developers can easier pick up on errors.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 devtools/test-meson-builds.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index c41659d28b..605a855999 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -282,6 +282,9 @@ build build-loongarch64-generic-gcc $f ABI $use_shared

 # IBM POWER
 f=$srcdir/config/ppc/ppc64le-power8-linux-gcc
+if grep -q 'NAME="Ubuntu"' /etc/os-release ; then
+	f=$f-ubuntu
+fi
 build build-ppc64-power8-gcc $f ABI $use_shared

 # generic RISC-V
--
2.39.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH 2/3] crypto/ipsec_mb: fix build failures due to incompatible lib
  2023-08-31 12:10 ` [PATCH 2/3] crypto/ipsec_mb: fix build failures due to incompatible lib Bruce Richardson
@ 2023-08-31 13:18   ` Power, Ciara
  0 siblings, 0 replies; 10+ messages in thread
From: Power, Ciara @ 2023-08-31 13:18 UTC (permalink / raw)
  To: Richardson, Bruce, dev
  Cc: stable, Ji, Kai, De Lara Guarch, Pablo, Akhil Goyal,
	Ray Kinsella, Fan Zhang



> -----Original Message-----
> From: Richardson, Bruce <bruce.richardson@intel.com>
> Sent: Thursday, August 31, 2023 1:11 PM
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>; stable@dpdk.org; Ji, Kai
> <kai.ji@intel.com>; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> Akhil Goyal <gakhil@marvell.com>; Power, Ciara <ciara.power@intel.com>;
> Ray Kinsella <mdr@ashroe.eu>; Fan Zhang <fanzhang.oss@gmail.com>
> Subject: [PATCH 2/3] crypto/ipsec_mb: fix build failures due to incompatible
> lib
> 
> When cross-compiling for PowerPC on Ubuntu, the x86 IPSec_MB library was
> getting found by the build system for use in the PPC build. This led to failures
> at compile time due to the library not being linkable.
> 
> We can avoid these failures by checking the discovered library for compatibility
> at configuration time. This needs a version check as it is supported only from
> version 0.60 of meson onwards.
> 
> Fixes: c75542ae4200 ("crypto/ipsec_mb: introduce IPsec_mb framework")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Ciara Power <ciara.power@intel.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] devtools: enable testing ppc builds on ubuntu
  2023-08-31 12:10 ` [PATCH 3/3] devtools: enable testing ppc builds on ubuntu Bruce Richardson
@ 2023-09-01  1:16   ` Tyler Retzlaff
  0 siblings, 0 replies; 10+ messages in thread
From: Tyler Retzlaff @ 2023-09-01  1:16 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

On Thu, Aug 31, 2023 at 01:10:58PM +0100, Bruce Richardson wrote:
> When running PPC builds with the packaged Ubuntu compiler, a different
> cross-file needs to be used. Adjust the test-meson-builds script to take
> account of this, so that developers can easier pick up on errors.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] vhost: fix build for powerpc
  2023-08-31 12:10 ` [PATCH 1/3] vhost: fix build for powerpc Bruce Richardson
@ 2023-09-01 14:59   ` Bruce Richardson
  2023-09-12 18:30     ` David Christensen
  2023-09-29 14:47   ` Maxime Coquelin
  1 sibling, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2023-09-01 14:59 UTC (permalink / raw)
  To: dev, David Christensen
  Cc: maxime.coquelin, stable, Chenbo Xia, David Marchand

+PPC maintainer

On Thu, Aug 31, 2023 at 01:10:56PM +0100, Bruce Richardson wrote:
> When building on Ubuntu using the packaged powerpc compiler[1], a
> warning is issued about the print format of the __u64 values.
> 
> ../../lib/vhost/vduse.c: In function ‘vduse_vring_setup’:
> ../../lib/vhost/vhost.h:676:17: error: format ‘%llx’ expects argument of
> type ‘long long unsigned int’, but argument 5 has type ‘__u64’ {aka
> ‘long unsigned int’} [-Werror=format=]
>   676 |                 "VHOST_CONFIG: (%s) " fmt, prefix, ##args)
>       |                 ^~~~~~~~~~~~~~~~~~~~~
> 
> Changing the format specifier to %lx, or to use PRIx64 breaks other
> builds, so the safest solution is to explicitly typecast the printed
> values to match the format string.
> 
> [1] powerpc64le-linux-gnu-gcc (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
> 
> Fixes: a9120db8b98b ("vhost: add VDUSE device startup")
> Cc: maxime.coquelin@redhat.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
>  lib/vhost/vduse.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/vhost/vduse.c b/lib/vhost/vduse.c
> index 73ed424232..e2b6d35d37 100644
> --- a/lib/vhost/vduse.c
> +++ b/lib/vhost/vduse.c
> @@ -162,9 +162,12 @@ vduse_vring_setup(struct virtio_net *dev, unsigned int index)
>  
>  	VHOST_LOG_CONFIG(dev->ifname, INFO, "VQ %u info:\n", index);
>  	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tnum: %u\n", vq_info.num);
> -	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdesc_addr: %llx\n", vq_info.desc_addr);
> -	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdriver_addr: %llx\n", vq_info.driver_addr);
> -	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdevice_addr: %llx\n", vq_info.device_addr);
> +	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdesc_addr: %llx\n",
> +			(unsigned long long)vq_info.desc_addr);
> +	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdriver_addr: %llx\n",
> +			(unsigned long long)vq_info.driver_addr);
> +	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdevice_addr: %llx\n",
> +			(unsigned long long)vq_info.device_addr);
>  	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tavail_idx: %u\n", vq_info.split.avail_index);
>  	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tready: %u\n", vq_info.ready);
>  
> -- 
> 2.39.2
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] vhost: fix build for powerpc
  2023-09-01 14:59   ` Bruce Richardson
@ 2023-09-12 18:30     ` David Christensen
  0 siblings, 0 replies; 10+ messages in thread
From: David Christensen @ 2023-09-12 18:30 UTC (permalink / raw)
  To: Bruce Richardson, dev; +Cc: maxime.coquelin, stable, Chenbo Xia, David Marchand



On 9/1/23 7:59 AM, Bruce Richardson wrote:
> +PPC maintainer
> 
> On Thu, Aug 31, 2023 at 01:10:56PM +0100, Bruce Richardson wrote:
>> When building on Ubuntu using the packaged powerpc compiler[1], a
>> warning is issued about the print format of the __u64 values.
>>
>> ../../lib/vhost/vduse.c: In function ‘vduse_vring_setup’:
>> ../../lib/vhost/vhost.h:676:17: error: format ‘%llx’ expects argument of
>> type ‘long long unsigned int’, but argument 5 has type ‘__u64’ {aka
>> ‘long unsigned int’} [-Werror=format=]
>>    676 |                 "VHOST_CONFIG: (%s) " fmt, prefix, ##args)
>>        |                 ^~~~~~~~~~~~~~~~~~~~~
>>
>> Changing the format specifier to %lx, or to use PRIx64 breaks other
>> builds, so the safest solution is to explicitly typecast the printed
>> values to match the format string.
>>
>> [1] powerpc64le-linux-gnu-gcc (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
>>
>> Fixes: a9120db8b98b ("vhost: add VDUSE device startup")
>> Cc: maxime.coquelin@redhat.com
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
>> ---

Tested-by: David Christensen <drc@linux.vnet.ibm.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] vhost: fix build for powerpc
  2023-08-31 12:10 ` [PATCH 1/3] vhost: fix build for powerpc Bruce Richardson
  2023-09-01 14:59   ` Bruce Richardson
@ 2023-09-29 14:47   ` Maxime Coquelin
  1 sibling, 0 replies; 10+ messages in thread
From: Maxime Coquelin @ 2023-09-29 14:47 UTC (permalink / raw)
  To: Bruce Richardson, dev; +Cc: stable, Chenbo Xia, David Marchand



On 8/31/23 14:10, Bruce Richardson wrote:
> When building on Ubuntu using the packaged powerpc compiler[1], a
> warning is issued about the print format of the __u64 values.
> 
> ../../lib/vhost/vduse.c: In function ‘vduse_vring_setup’:
> ../../lib/vhost/vhost.h:676:17: error: format ‘%llx’ expects argument of
> type ‘long long unsigned int’, but argument 5 has type ‘__u64’ {aka
> ‘long unsigned int’} [-Werror=format=]
>    676 |                 "VHOST_CONFIG: (%s) " fmt, prefix, ##args)
>        |                 ^~~~~~~~~~~~~~~~~~~~~
> 
> Changing the format specifier to %lx, or to use PRIx64 breaks other
> builds, so the safest solution is to explicitly typecast the printed
> values to match the format string.
> 
> [1] powerpc64le-linux-gnu-gcc (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
> 
> Fixes: a9120db8b98b ("vhost: add VDUSE device startup")
> Cc: maxime.coquelin@redhat.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
>   lib/vhost/vduse.c | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/vhost/vduse.c b/lib/vhost/vduse.c
> index 73ed424232..e2b6d35d37 100644
> --- a/lib/vhost/vduse.c
> +++ b/lib/vhost/vduse.c
> @@ -162,9 +162,12 @@ vduse_vring_setup(struct virtio_net *dev, unsigned int index)
>   
>   	VHOST_LOG_CONFIG(dev->ifname, INFO, "VQ %u info:\n", index);
>   	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tnum: %u\n", vq_info.num);
> -	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdesc_addr: %llx\n", vq_info.desc_addr);
> -	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdriver_addr: %llx\n", vq_info.driver_addr);
> -	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdevice_addr: %llx\n", vq_info.device_addr);
> +	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdesc_addr: %llx\n",
> +			(unsigned long long)vq_info.desc_addr);
> +	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdriver_addr: %llx\n",
> +			(unsigned long long)vq_info.driver_addr);
> +	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tdevice_addr: %llx\n",
> +			(unsigned long long)vq_info.device_addr);
>   	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tavail_idx: %u\n", vq_info.split.avail_index);
>   	VHOST_LOG_CONFIG(dev->ifname, INFO, "\tready: %u\n", vq_info.ready);
>   

It is surprising PRIx64 does not work on other architectures.
I don't see a better solution, so:

Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/3] enable PPC in test-meson-builds on ubuntu
  2023-08-31 12:10 [PATCH 0/3] enable PPC in test-meson-builds on ubuntu Bruce Richardson
                   ` (2 preceding siblings ...)
  2023-08-31 12:10 ` [PATCH 3/3] devtools: enable testing ppc builds on ubuntu Bruce Richardson
@ 2023-10-11  9:14 ` Thomas Monjalon
  3 siblings, 0 replies; 10+ messages in thread
From: Thomas Monjalon @ 2023-10-11  9:14 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

31/08/2023 14:10, Bruce Richardson:
> To help developers catch errors as soon as possible, we want to ensure
> that as wide a variety of builds are done by test-meson-builds as
> possible. Unfortunately, for those using Ubuntu, the shipped version
> of GCC compiler for PowerPC on that system is not correctly detected by
> the script. We fix this by detecting if Ubuntu is in use, and pointing
> to the correct cross-file in that case.
> 
> On enabling those PPC builds on my system, a couple of other build
> issues we encountered. These are fixed by the set before enabling the
> build in the script.
> 
> Bruce Richardson (3):
>   vhost: fix build for powerpc
>   build: fix failures due to incompatible IPSec lib
>   devtools: enable testing ppc builds on ubuntu

Applied, thanks.




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-10-11  9:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-31 12:10 [PATCH 0/3] enable PPC in test-meson-builds on ubuntu Bruce Richardson
2023-08-31 12:10 ` [PATCH 1/3] vhost: fix build for powerpc Bruce Richardson
2023-09-01 14:59   ` Bruce Richardson
2023-09-12 18:30     ` David Christensen
2023-09-29 14:47   ` Maxime Coquelin
2023-08-31 12:10 ` [PATCH 2/3] crypto/ipsec_mb: fix build failures due to incompatible lib Bruce Richardson
2023-08-31 13:18   ` Power, Ciara
2023-08-31 12:10 ` [PATCH 3/3] devtools: enable testing ppc builds on ubuntu Bruce Richardson
2023-09-01  1:16   ` Tyler Retzlaff
2023-10-11  9:14 ` [PATCH 0/3] enable PPC in test-meson-builds " Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).