From: paper42 <paper42@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] gtk4: update to 4.2.1, split docs, gi-docgen
Date: Wed, 07 Jul 2021 22:24:12 +0200 [thread overview]
Message-ID: <20210707202412.Bry_kQ2Mh0VYmvpro4ZI_XkBNkQ4AroUG1aY7frZtYk@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-31820@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 1067 bytes --]
There is an updated pull request by paper42 against master on the void-packages repository
https://github.com/paper42/void-packages gtk4-4.2.1
https://github.com/void-linux/void-packages/pull/31820
gtk4: update to 4.2.1, split docs, gi-docgen
<!-- Mark items with [x] where applicable -->
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)
#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [ ] I generally don't use the affected packages but briefly tested this PR
The gi-docgen package and its dependencies are taken from the libadwaita PR (#31102), I will remove them from there when this PR is merged.
I split the documentation because it's quite big - 70 MB, the -devel subpackage is 10 MB (mostly gir files).
A patch file from https://github.com/void-linux/void-packages/pull/31820.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gtk4-4.2.1-31820.patch --]
[-- Type: text/x-diff, Size: 16817 bytes --]
From 2c371ae33a0e3e877e8ad362cfe63ca9aca062db Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 25 May 2021 00:28:46 +0200
Subject: [PATCH 1/5] New package: python3-smartypants-2.0.1
---
srcpkgs/python3-smartypants/template | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
create mode 100644 srcpkgs/python3-smartypants/template
diff --git a/srcpkgs/python3-smartypants/template b/srcpkgs/python3-smartypants/template
new file mode 100644
index 000000000000..728196e7100c
--- /dev/null
+++ b/srcpkgs/python3-smartypants/template
@@ -0,0 +1,19 @@
+# Template file for 'python3-smartypants'
+pkgname=python3-smartypants
+version=2.0.1
+revision=1
+wrksrc="smartypants.py-$version"
+build_style=python3-module
+hostmakedepends="python3-setuptools"
+depends="python3"
+checkdepends="python3-docutils"
+short_desc="Python with the SmartyPants"
+maintainer="Michal Vasilek <michal@vasilek.cz>"
+license="BSD-3-Clause"
+homepage="https://github.com/leohemsted/smartypants.py/"
+distfiles="https://github.com/leohemsted/smartypants.py/archive/refs/tags/v$version.tar.gz"
+checksum=b98191911ff3b4144ef8ad53e776a2d0ad24bd508a905c6ce523597c40022773
+
+post_install() {
+ vlicense COPYING
+}
From f86e8143af171276909ef8024d954c1026b5f3d5 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 25 May 2021 00:28:53 +0200
Subject: [PATCH 2/5] New package: python3-typogrify-2.0.7
---
srcpkgs/python3-typogrify/template | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
create mode 100644 srcpkgs/python3-typogrify/template
diff --git a/srcpkgs/python3-typogrify/template b/srcpkgs/python3-typogrify/template
new file mode 100644
index 000000000000..f168a9cad689
--- /dev/null
+++ b/srcpkgs/python3-typogrify/template
@@ -0,0 +1,19 @@
+# Template file for 'python3-typogrify'
+pkgname=python3-typogrify
+version=2.0.7
+revision=1
+wrksrc="typogrify-$version"
+build_style=python3-module
+hostmakedepends="python3-setuptools"
+depends="python3-smartypants"
+short_desc="Filters to enhance web typography"
+maintainer="Michal Vasilek <michal@vasilek.cz>"
+license="BSD-3-Clause"
+homepage="https://github.com/mintchaos/typogrify"
+distfiles="https://github.com/mintchaos/typogrify/archive/refs/tags/$version.tar.gz"
+checksum=d5081966c1c1423157e240d5cfe7435b56ca30be57ff8c7fe6f90f6cc42295ee
+make_check=no # conflicting dependencies
+
+post_install() {
+ vlicense LICENSE.txt
+}
From 22597ffd707c22533e4af63025476b60e41e20e0 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 25 May 2021 00:29:00 +0200
Subject: [PATCH 3/5] New package: gi-docgen-2021.6
---
srcpkgs/gi-docgen/template | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 srcpkgs/gi-docgen/template
diff --git a/srcpkgs/gi-docgen/template b/srcpkgs/gi-docgen/template
new file mode 100644
index 000000000000..ff1c217d297e
--- /dev/null
+++ b/srcpkgs/gi-docgen/template
@@ -0,0 +1,14 @@
+# Template file for 'gi-docgen'
+pkgname=gi-docgen
+version=2021.6
+revision=1
+build_style=python3-module
+hostmakedepends="python3-setuptools"
+depends="python3-Pygments python3-typogrify python3-Jinja2 python3-toml"
+short_desc="Documentation generator for GObject-based libraries"
+maintainer="Michal Vasilek <michal@vasilek.cz>"
+license="Apache-2.0, GPL-3.0-or-later"
+homepage="https://gnome.pages.gitlab.gnome.org/gi-docgen/"
+distfiles="https://gitlab.gnome.org/GNOME/gi-docgen/-/archive/$version/gi-docgen-$version.tar.gz"
+checksum=d43cc51cb0c614f8906469bf313dbd23337f355a3281ecd4324980be773cdff1
+make_check=no # no tests, but check fails
From 79d984caf0dc18eecd268b4cba93513bab61919b Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Wed, 7 Jul 2021 17:08:00 +0200
Subject: [PATCH 4/5] sysprof: update to 3.40.1.
---
srcpkgs/sysprof/patches/build.patch | 10 --
srcpkgs/sysprof/patches/musl.patch | 157 ----------------------------
srcpkgs/sysprof/template | 14 +--
3 files changed, 5 insertions(+), 176 deletions(-)
delete mode 100644 srcpkgs/sysprof/patches/build.patch
delete mode 100644 srcpkgs/sysprof/patches/musl.patch
diff --git a/srcpkgs/sysprof/patches/build.patch b/srcpkgs/sysprof/patches/build.patch
deleted file mode 100644
index 4d99d6bc3f32..000000000000
--- a/srcpkgs/sysprof/patches/build.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/libsysprof-capture/sysprof-capture-condition.c
-+++ b/src/libsysprof-capture/sysprof-capture-condition.c
-@@ -269,6 +269,7 @@ sysprof_capture_condition_copy (const SysprofCaptureCondition *self)
- }
-
- sysprof_assert_not_reached ();
-+ return NULL;
- }
-
- static void
diff --git a/srcpkgs/sysprof/patches/musl.patch b/srcpkgs/sysprof/patches/musl.patch
deleted file mode 100644
index abaac692fb37..000000000000
--- a/srcpkgs/sysprof/patches/musl.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 1d2de32e97bf5569cc33ee9a90c873e1bbd2b1e6 Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 6 Sep 2020 18:21:37 +0200
-Subject: [PATCH] fix build on musl
-
----
- .../sysprof-capture-cursor.c | 1 +
- .../sysprof-capture-reader.c | 1 +
- src/libsysprof-capture/sysprof-capture-util.c | 1 +
- .../sysprof-capture-writer-cat.c | 1 +
- src/libsysprof-capture/sysprof-collector.c | 1 +
- src/libsysprof-capture/sysprof-compat.h | 28 +++++++++++++++++++
- src/libsysprof-capture/sysprof-platform.c | 1 +
- 7 files changed, 34 insertions(+)
- create mode 100644 src/libsysprof-capture/sysprof-compat.h
-
-diff --git src/libsysprof-capture/sysprof-capture-cursor.c src/libsysprof-capture/sysprof-capture-cursor.c
-index 24563f0..bb77a60 100644
---- a/src/libsysprof-capture/sysprof-capture-cursor.c
-+++ b/src/libsysprof-capture/sysprof-capture-cursor.c
-@@ -59,6 +59,7 @@
- #include <assert.h>
- #include <stdlib.h>
-
-+#include "sysprof-compat.h"
- #include "sysprof-capture-condition.h"
- #include "sysprof-capture-cursor.h"
- #include "sysprof-capture-reader.h"
-diff --git src/libsysprof-capture/sysprof-capture-reader.c src/libsysprof-capture/sysprof-capture-reader.c
-index 67c6b28..252d006 100644
---- a/src/libsysprof-capture/sysprof-capture-reader.c
-+++ b/src/libsysprof-capture/sysprof-capture-reader.c
-@@ -68,6 +68,7 @@
- #include <sys/types.h>
- #include <unistd.h>
-
-+#include "sysprof-compat.h"
- #include "sysprof-capture-reader.h"
- #include "sysprof-capture-util-private.h"
- #include "sysprof-capture-writer.h"
-diff --git src/libsysprof-capture/sysprof-capture-util.c src/libsysprof-capture/sysprof-capture-util.c
-index 0bbea06..0e5f7e7 100644
---- a/src/libsysprof-capture/sysprof-capture-util.c
-+++ b/src/libsysprof-capture/sysprof-capture-util.c
-@@ -56,6 +56,7 @@
-
- #include "config.h"
-
-+#include <stdint.h>
- #include <assert.h>
- #include <errno.h>
- #include <unistd.h>
-diff --git src/libsysprof-capture/sysprof-capture-writer-cat.c src/libsysprof-capture/sysprof-capture-writer-cat.c
-index 66171b9..9febbbb 100644
---- a/src/libsysprof-capture/sysprof-capture-writer-cat.c
-+++ b/src/libsysprof-capture/sysprof-capture-writer-cat.c
-@@ -63,6 +63,7 @@
- #include <stdlib.h>
- #include <unistd.h>
-
-+#include "sysprof-compat.h"
- #include "sysprof-capture.h"
- #include "sysprof-macros-internal.h"
-
-diff --git src/libsysprof-capture/sysprof-collector.c src/libsysprof-capture/sysprof-collector.c
-index 1d7a0d6..7af6c96 100644
---- a/src/libsysprof-capture/sysprof-collector.c
-+++ b/src/libsysprof-capture/sysprof-collector.c
-@@ -73,6 +73,7 @@
-
- #include "mapped-ring-buffer.h"
-
-+#include "sysprof-compat.h"
- #include "sysprof-capture-util-private.h"
- #include "sysprof-collector.h"
- #include "sysprof-macros-internal.h"
-diff --git src/libsysprof-capture/sysprof-compat.h src/libsysprof-capture/sysprof-compat.h
-new file mode 100644
-index 0000000..ae9bf10
---- /dev/null
-+++ b/src/libsysprof-capture/sysprof-compat.h
-@@ -0,0 +1,28 @@
-+/* added by q66 @ void to fix build on musl */
-+
-+#pragma once
-+
-+#ifndef __GLIBC__
-+
-+#include <stdlib.h>
-+#include <errno.h>
-+
-+/* from glibc */
-+#ifndef TEMP_FAILURE_RETRY
-+# define TEMP_FAILURE_RETRY(expression) \
-+ (__extension__ \
-+ ({ long int __result; \
-+ do __result = (long int) (expression); \
-+ while (__result == -1L && errno == EINTR); \
-+ __result; }))
-+#endif
-+
-+static inline void *reallocarray(void *p, size_t nmemb, size_t sz) {
-+ if (sz && (nmemb > ((size_t)-1 / sz))) {
-+ errno = ENOMEM;
-+ return NULL;
-+ }
-+ return realloc(p, nmemb * sz);
-+}
-+
-+#endif
-diff --git src/libsysprof-capture/sysprof-platform.c src/libsysprof-capture/sysprof-platform.c
-index a80ab89..05bd590 100644
---- a/src/libsysprof-capture/sysprof-platform.c
-+++ b/src/libsysprof-capture/sysprof-platform.c
-@@ -60,6 +60,7 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
-+#include "sysprof-compat.h"
- #include "sysprof-capture-util-private.h"
- #include "sysprof-platform.h"
-
---
-2.28.0
-
-From here onward, blame sgn
-Index: meson.build
-===================================================================
---- a/meson.build
-+++ b/meson.build
-@@ -69,6 +69,7 @@ config_h.set('LOCALEDIR', 'PACKAGE_LOCAL
- config_h.set('HAVE_EXECINFO_H', cc.has_header('execinfo.h'))
-
- config_h.set('HAVE_STRLCPY', cc.has_function('strlcpy'))
-+config_h.set('HAVE_REALLOCARRAY', cc.has_function('reallocarray'))
-
- if get_option('libunwind')
- libunwind_dep = dependency('libunwind-generic', required: false)
-Index: src/libsysprof-capture/sysprof-compat.h
-===================================================================
---- a/src/libsysprof-capture/sysprof-compat.h 2021-02-05 23:39:58.352258624 +0100
-+++ b/src/libsysprof-capture/sysprof-compat.h 2021-02-05 23:47:07.662841454 +0100
-@@ -17,6 +17,7 @@
- __result; }))
- #endif
-
-+#ifndef HAVE_REALLOCARRAY
- static inline void *reallocarray(void *p, size_t nmemb, size_t sz) {
- if (sz && (nmemb > ((size_t)-1 / sz))) {
- errno = ENOMEM;
-@@ -24,5 +25,5 @@
- }
- return realloc(p, nmemb * sz);
- }
--
-+#endif
- #endif
diff --git a/srcpkgs/sysprof/template b/srcpkgs/sysprof/template
index eae51ea7356b..aada873c773b 100644
--- a/srcpkgs/sysprof/template
+++ b/srcpkgs/sysprof/template
@@ -1,33 +1,29 @@
# Template file for 'sysprof'
pkgname=sysprof
-version=3.38.0
+version=3.40.1
revision=1
build_style=meson
configure_args="-Denable_gtk=true -Dsystemdunitdir=deleteme"
hostmakedepends="gettext pkg-config itstool glib-devel"
-makedepends="gtk+3-devel libdazzle-devel polkit-devel glib-devel elogind-devel"
+makedepends="gtk+3-devel libdazzle-devel polkit-devel glib-devel elogind-devel json-glib-devel"
short_desc="System-wide profiler for Linux"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, GPL-3.0-or-later"
-homepage="http://sysprof.com/"
+homepage="https://gitlab.gnome.org/GNOME/sysprof"
distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
-checksum=8bcd728dc2f74e6f589410370dfb1b8801468bb3cc1803aa240735a7cff241ce
+checksum=c25000d6a20e8c4d314f5c861a1f70d7c3e2027117437fd9198fa811b9fc7437
# for ITS rules
if [ "$CROSS_BUILD" ]; then
hostmakedepends+=" polkit-devel"
fi
-pre_build() {
- export SHELL=/bin/bash
-}
-
post_install() {
rm -rf ${DESTDIR}/usr/deleteme
}
sysprof-devel_package() {
- depends="sysprof>=${version}_${revision}"
+ depends="sysprof>=${version}_${revision} json-glib-devel elogind-devel"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
From 9fcdc67497e5170ef6a8cd0c689cd3621270029f Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 1 Jun 2021 23:48:13 +0200
Subject: [PATCH 5/5] gtk4: update to 4.2.1, split docs, enable sysprof
---
srcpkgs/gtk4-doc | 1 +
srcpkgs/gtk4/patches/fix-sysprof.patch | 23 ++++++++++++++++
srcpkgs/gtk4/template | 36 +++++++++++++++++++-------
3 files changed, 50 insertions(+), 10 deletions(-)
create mode 120000 srcpkgs/gtk4-doc
create mode 100644 srcpkgs/gtk4/patches/fix-sysprof.patch
diff --git a/srcpkgs/gtk4-doc b/srcpkgs/gtk4-doc
new file mode 120000
index 000000000000..870d493d73bf
--- /dev/null
+++ b/srcpkgs/gtk4-doc
@@ -0,0 +1 @@
+gtk4
\ No newline at end of file
diff --git a/srcpkgs/gtk4/patches/fix-sysprof.patch b/srcpkgs/gtk4/patches/fix-sysprof.patch
new file mode 100644
index 000000000000..76a86d16cc80
--- /dev/null
+++ b/srcpkgs/gtk4/patches/fix-sysprof.patch
@@ -0,0 +1,23 @@
+--- a/gtk/meson.build
++++ b/gtk/meson.build
+@@ -1001,6 +1001,7 @@ gtk_deps = [
+ epoxy_dep,
+ libm,
+ graphene_dep,
++ libsysprof_dep,
+ ]
+
+ if harfbuzz_dep.found() and pangoft_dep.found()
+diff --git a/tools/meson.build b/tools/meson.build
+index 1811b69..804e37f 100644
+--- a/tools/meson.build
++++ b/tools/meson.build
+@@ -30,7 +30,7 @@ gtk_tools = [
+ 'gtk-builder-tool-enumerate.c',
+ 'gtk-builder-tool-preview.c'], [libgtk_dep] ],
+ ['gtk4-update-icon-cache', ['updateiconcache.c'] + extra_update_icon_cache_objs, [ libgtk_static_dep ] ],
+- ['gtk4-encode-symbolic-svg', ['encodesymbolic.c'], [ libgtk_static_dep ] ],
++ ['gtk4-encode-symbolic-svg', ['encodesymbolic.c'], [ libgtk_static_dep, libsysprof_dep ] ],
+ ]
+
+ if os_unix
diff --git a/srcpkgs/gtk4/template b/srcpkgs/gtk4/template
index 450d393b09c0..226fc8208777 100644
--- a/srcpkgs/gtk4/template
+++ b/srcpkgs/gtk4/template
@@ -1,42 +1,58 @@
# Template file for 'gtk4'
pkgname=gtk4
-version=4.2.0
+version=4.2.1
revision=1
wrksrc="gtk-${version}"
build_style=meson
build_helper="gir"
-configure_args="-Dman-pages=true -Dbuild-tests=false -Dmedia=all
+configure_args="-Dman-pages=true -Dbuild-tests=false -Dgtk_doc=true
-Dbroadway-backend=$(vopt_if broadway true false)
-Dx11-backend=$(vopt_if x11 true false)
-Dwayland-backend=$(vopt_if wayland true false)
-Dintrospection=$(vopt_if gir enabled disabled)
- -Dprint-backends=$(vopt_if cups 'cups,file' file)
-Dcolord=$(vopt_if colord enabled disabled)
-Dcloudproviders=$(vopt_if cloudproviders enabled disabled)
- -Dvulkan=$(vopt_if vulkan enabled disabled)"
-hostmakedepends="gettext-devel glib-devel gtk-doc gtk-update-icon-cache perl
- pkg-config sassc gettext
+ -Dvulkan=$(vopt_if vulkan enabled disabled)
+ -Dsysprof=$(vopt_if sysprof enabled disabled)"
+hostmakedepends="gettext-devel glib-devel gi-docgen gtk-update-icon-cache perl
+ pkg-config sassc gettext libxslt docbook-xsl
$(vopt_if wayland 'wayland-devel wayland-protocols')"
makedepends="at-spi2-atk-devel gdk-pixbuf-devel libepoxy-devel pango-devel
iso-codes graphene-devel gst-plugins-bad1-devel ffmpeg-devel
$(vopt_if colord 'colord-devel') $(vopt_if cups 'cups-devel')
$(vopt_if wayland 'libxkbcommon-devel wayland-devel wayland-protocols MesaLib-devel')
$(vopt_if x11 'libXcursor-devel libXdamage-devel libXext-devel libXinerama-devel libXi-devel libXrandr-devel libXcomposite-devel')
- $(vopt_if cloudproviders 'libcloudproviders-devel') $(vopt_if vulkan 'vulkan-loader Vulkan-Headers')"
+ $(vopt_if cloudproviders 'libcloudproviders-devel') $(vopt_if vulkan 'vulkan-loader Vulkan-Headers')
+ $(vopt_if sysprof 'sysprof-devel')"
depends="gtk-update-icon-cache shared-mime-info $(vopt_if x11 'dbus-x11')"
short_desc="GIMP ToolKit (v4)"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="LGPL-2.1-or-later"
homepage="https://www.gtk.org/"
distfiles="${GNOME_SITE}/gtk/${version%.*}/gtk-${version}.tar.xz"
-checksum=e975f286e911666a79b6bcf486e6f99b0bd9d2b4cc348d19bce487a0b1c97072
+checksum=023169775de43f0a1fde066fbc19d78545ea6a7562c1915abde9b8ae4a7309e6
# Package build options
-build_options="broadway cloudproviders colord cups gir vulkan wayland x11"
+build_options="broadway cloudproviders colord cups gir vulkan wayland x11 sysprof"
desc_option_broadway="Enable support for the HTML5 Broadway backend"
desc_option_cloudproviders="Enable integration with cloudproviders, such as Nextcloud"
+desc_option_sysprof="Enable support for sysprof profiling"
-build_options_default="colord cups broadway wayland x11 cloudproviders vulkan gir"
+build_options_default="broadway cloudproviders colord cups gir vulkan wayland x11 sysprof"
+
+pre_build() {
+ # help gi-docgen find gi files on cross
+ if [ -n "$CROSS_BUILD" ]; then
+ export XDG_DATA_DIRS=/usr/$XBPS_CROSS_TRIPLET/usr/share/
+ fi
+}
+
+gtk4-doc_package() {
+ short_desc+=" - documentation"
+ pkg_install() {
+ vmove usr/share/doc
+ }
+}
gtk4-devel_package() {
depends="${makedepends} ${sourcepkg}>=${version}_${revision}"
next prev parent reply other threads:[~2021-07-07 20:24 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-05 15:12 [PR PATCH] " paper42
2021-07-07 3:08 ` sgn
2021-07-07 20:16 ` [PR PATCH] [Updated] " paper42
2021-07-07 20:18 ` paper42
2021-07-07 20:24 ` paper42 [this message]
2021-07-07 21:07 ` paper42
2021-07-07 21:34 ` paper42
2021-08-04 21:19 ` [PR PATCH] [Updated] " paper42
2021-08-04 21:43 ` [PR PATCH] [Merged]: " paper42
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210707202412.Bry_kQ2Mh0VYmvpro4ZI_XkBNkQ4AroUG1aY7frZtYk@z \
--to=paper42@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).