From: Pierre Langlois <pierre.langlois@gmx.com>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: 25787@debbugs.gnu.org
Subject: [bug#25787] [PATCH 02/02] gnu: Add clementine.
Date: Sun, 29 Oct 2017 20:20:30 +0000 [thread overview]
Message-ID: <cubr2tlr9ip.fsf@gmx.com> (raw)
In-Reply-To: <cubshe1r9ts.fsf@gmx.com>
[-- Attachment #1: Type: text/plain, Size: 203 bytes --]
OK, I messed those emails and the patches are completely
mangled... oups!
Here are the patches as attachments. I would normally use git
send-email
but it wasn't working for me today for some reason.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-libmygpo-qt.patch --]
[-- Type: text/x-patch, Size: 7704 bytes --]
From f8c1602f78cb570d013313cdb5fd100716bcf4bb Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Sat, 25 Feb 2017 12:20:34 +0000
Subject: [PATCH 01/02] gnu: Add libmygpo-qt.
* gnu/packages/music.scm (libmygpo-qt): New variable.
* gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/music.scm | 27 ++++++++++++++
.../patches/libmygpo-qt-fix-jsoncreatortest.patch | 41 ++++++++++++++++++++++
3 files changed, 69 insertions(+)
create mode 100644 gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 90dc7aec1..3012976a8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -801,6 +801,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \
%D%/packages/patches/libmad-frame-length.patch \
%D%/packages/patches/libmad-mips-newgcc.patch \
+ %D%/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index f5df44070..55ae15f1a 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3367,3 +3367,30 @@ the electronic or dubstep genre.")
designed to make a developer's life easy when trying to use the APIs provided
by The Echo Nest.")
(license license:gpl2+)))
+
+(define-public libmygpo-qt
+ (package
+ (name "libmygpo-qt")
+ (version "1.0.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://stefan.derkits.at/files/libmygpo-qt/libmygpo-qt."
+ version ".tar.gz"))
+ (sha256
+ (base32 "1wsgh2vjnd52rkvpncj1ycpbp84sj9hh12ija46b42z9mmqf2jm4"))
+ (patches (search-patches "libmygpo-qt-fix-jsoncreatortest.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags '("-DBUILD_WITH_QT4=OFF")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("qt" ,qtbase)))
+ (home-page "http://wiki.gpodder.org/wiki/Libmygpo-qt")
+ (synopsis "Qt/C++ library wrapping the @url{https://gpodder.net}
+Webservice")
+ (description "@code{libmygpo-qt} is a Qt/C++ library wrapping the
+@url{https://gpodder.net} APIs. It allows applications to discover, manage
+and track podcasts.")
+ (license license:lgpl2.1+)))
diff --git a/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch b/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch
new file mode 100644
index 000000000..c457d592c
--- /dev/null
+++ b/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch
@@ -0,0 +1,41 @@
+From ebe2323727f8d646590245b0bf06dbc92b5808d6 Mon Sep 17 00:00:00 2001
+From: Golubev Alexander <fatzer2@gmail.com>
+Date: Tue, 20 Sep 2016 15:33:30 +0400
+Subject: [PATCH] JsonCreatorTest failed due to extra space
+
+JsonCreatorTest failed with next message:
+```
+********* Start testing of mygpo::JsonCreatorTest *********
+Config: Using QTest library 4.8.6, Qt 4.8.6
+PASS : mygpo::JsonCreatorTest::initTestCase()
+PASS : mygpo::JsonCreatorTest::testAddRemoveSubsToJSON()
+PASS : mygpo::JsonCreatorTest::testSaveSettingsToJSON()
+FAIL! : mygpo::JsonCreatorTest::testEpisodeActionListToJSON() Compared values are not the same
+ Actual (outString2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http://podcast.url","timestamp":"1998-01-01T00:01:02"},{"action":"delete","device":"device3","episode":"http://episode2.url","podcast":"http://podcast2.url","timestamp":"1920-01-01T12:01:02"},{"action":"new","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1998-01-01T00:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1920-01-01T12:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":123,"started":10,"timestamp":"1998-01-01T00:01:02","total":321},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":10,"timestamp":"1998-01-01T00:01:02"}]
+ Expected (expected2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http:
+ Loc: [/var/tmp/portage/media-libs/libmygpo-qt-1.0.9-r1/work/libmygpo-qt-1.0.9/tests/JsonCreatorTest.cpp(138)]
+PASS : mygpo::JsonCreatorTest::testRenameDeviceStringToJSON()
+PASS : mygpo::JsonCreatorTest::testDeviceSynchronizationListsToJSON()
+PASS : mygpo::JsonCreatorTest::cleanupTestCase()
+Totals: 6 passed, 1 failed, 0 skipped
+********* Finished testing of mygpo::JsonCreatorTest *********
+```
+
+This was caused by extra space in the expected string.
+---
+ tests/JsonCreatorTest.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/JsonCreatorTest.cpp b/tests/JsonCreatorTest.cpp
+index b15b006..feb03d5 100644
+--- a/tests/JsonCreatorTest.cpp
++++ b/tests/JsonCreatorTest.cpp
+@@ -133,7 +133,7 @@ void JsonCreatorTest::testEpisodeActionListToJSON()
+
+ output = JsonCreator::episodeActionListToJSON(episodeActions);
+ QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") );
+- QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\" },{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
++ QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
+
+ QCOMPARE(outString2, expected2 );
+ }
--
2.14.3
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-clementine.patch --]
[-- Type: text/x-patch, Size: 10297 bytes --]
From ace833f94b278e445a8e91fd5b1c105de3f39896 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Wed, 25 Oct 2017 19:57:11 +0100
Subject: [PATCH 02/02] gnu: Add clementine.
* gnu/packages/music.scm (clementine): New variable.
* gnu/packages/patches/clementine-use-openssl.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
---
gnu/local.mk | 1 +
gnu/packages/music.scm | 114 ++++++++++++++++++++++
gnu/packages/patches/clementine-use-openssl.patch | 67 +++++++++++++
3 files changed, 182 insertions(+)
create mode 100644 gnu/packages/patches/clementine-use-openssl.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 3012976a8..5530e3342 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -562,6 +562,7 @@ dist_patch_DATA = \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/clang-libc-search-path.patch \
%D%/packages/patches/clang-3.8-libc-search-path.patch \
+ %D%/packages/patches/clementine-use-openssl.patch \
%D%/packages/patches/clisp-remove-failing-test.patch \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/clx-remove-demo.patch \
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 55ae15f1a..453125a8b 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -54,8 +54,11 @@
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages datastructures)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages emacs)
@@ -73,12 +76,14 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages graphics)
+ #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages java)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages libusb)
#:use-module (gnu packages linux) ; for alsa-utils
#:use-module (gnu packages lirc)
#:use-module (gnu packages llvm)
@@ -91,6 +96,7 @@
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio) ;libsndfile
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
@@ -176,6 +182,114 @@ and play MIDI files with a few clicks in a user-friendly interface offering
score, keyboard, guitar, drum and controller views.")
(license license:gpl3+)))
+;; We don't use the latest release because it depends on Qt4. Instead we
+;; download the sources from the tip of the "qt5" branch.
+(define-public clementine
+ (let ((commit "0a59257dc334b8df60a4d7d90b04f1766747efcf")
+ (revision "1"))
+ (package
+ (name "clementine")
+ (version (string-append "1.3.1-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/clementine-player/Clementine.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0cdcj7di7j9jgzc1ihjna1a5df64f9hnmx7b9kh8rlg76hc0l0hi"))
+ (modules '((guix build utils)))
+ (snippet
+ '(for-each
+ (lambda (dir)
+ (delete-file-recursively
+ (string-append "3rdparty/" dir)))
+ (list
+ ;; TODO: The following dependencies are still bundled:
+ ;; - "qxt": Appears to be unmaintained upstream.
+ ;; - "qsqlite"
+ ;; - "qtsingleapplication"
+ ;; - "qocoa"
+ ;; - "qtiocompressor"
+ ;; - "gmock": The tests crash when using our googletest
+ ;; package instead of the bunbled gmock.
+ "SPMediaKeyTap"
+ "fancytabwidget"
+ "google-breakpad"
+ "libmygpo-qt"
+ "libmygpo-qt5"
+ "libprojectm"
+ "qtwin"
+ "sha2" ;; Replaced by openssl.
+ "taglib"
+ "tinysvcmdns")))
+ (patches (search-patches "clementine-use-openssl.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:test-target "clementine_test"
+ #:configure-flags
+ (let ((crypto (assoc-ref %build-inputs "crypto++")))
+ (list "-DENABLE_VISUALISATIONS=OFF" ; requires unpackaged "projectm"
+ "-DCRYPTOPP_FOUND=TRUE"
+ (string-append "-DCRYPTOPP_INCLUDE_DIRS=" crypto "/include")
+ (string-append "-DCRYPTOPP_LIBRARY_DIRS=" crypto "/lib")
+ (string-append "-DCRYPTOPP_LIBRARIES=" crypto "/lib/libcryptopp.a")
+ "-DUSE_SYSTEM_SHA2=TRUE"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+ (wrap-program (string-append out "/bin/clementine")
+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))
+ #t))))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)
+ ("qtlinguist" ,qttools)))
+ (inputs
+ `(("boost" ,boost)
+ ("chromaprint" ,chromaprint)
+ ("crypto++" ,crypto++)
+ ("fftw" ,fftw)
+ ("glib" ,glib)
+ ("glu" ,glu)
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("libcdio" ,libcdio)
+ ("libmygpo-qt" ,libmygpo-qt)
+ ("libechonest" ,libechonest)
+ ;; TODO: Package libgpod.
+ ("libmtp" ,libmtp)
+ ("libxml2" ,libxml2)
+ ("openssl" ,openssl)
+ ("protobuf" ,protobuf)
+ ("pulseaudio" ,pulseaudio)
+ ("qtbase" ,qtbase)
+ ("qtx11extras" ,qtx11extras)
+ ("qtwebkit" ,qtwebkit)
+ ("sqlite" ,sqlite-with-fts3)
+ ("sparsehash" ,sparsehash)
+ ("taglib" ,taglib)))
+ (home-page "http://clementine-player.org")
+ (synopsis "Music player and library organizer")
+ (description "Clementine is a multiplatform music player. It is inspired
+by Amarok 1.4, focusing on a fast and easy-to-use interface for searching and
+playing your music.")
+ (license (list
+ ;; clementine and qtiocompressor are under GPLv3.
+ license:gpl3+
+ ;; gmock is under BSD-3.
+ license:bsd-3
+ ;; qxt is under CPL1.0.
+ license:cpl1.0
+ ;; qsqlite and qtsingleapplication are under LGPL2.1+.
+ license:lgpl2.1+
+ ;; qocoa is under MIT and CC by-sa for the icons.
+ license:cc-by-sa3.0)))))
+
(define-public cmus
(package
(name "cmus")
diff --git a/gnu/packages/patches/clementine-use-openssl.patch b/gnu/packages/patches/clementine-use-openssl.patch
new file mode 100644
index 000000000..1fbf3d2b8
--- /dev/null
+++ b/gnu/packages/patches/clementine-use-openssl.patch
@@ -0,0 +1,67 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4022c383b..3202b8b69 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -83,6 +83,7 @@ pkg_check_modules(LIBPULSE libpulse)
+ pkg_check_modules(LIBXML libxml-2.0)
+ pkg_check_modules(SPOTIFY libspotify>=12.1.45)
+ pkg_check_modules(TAGLIB REQUIRED taglib>=1.6)
++pkg_check_modules(OPENSSL REQUIRED openssl)
+
+ if (WIN32)
+ find_package(ZLIB REQUIRED)
+@@ -381,20 +382,6 @@ if(GMOCK_INCLUDE_DIRS)
+ endif(GTEST_INCLUDE_DIRS)
+ endif(GMOCK_INCLUDE_DIRS)
+
+-# Use the system's sha2 if it's available.
+-find_path(SHA2_INCLUDE_DIRS sha2.h)
+-find_library(SHA2_LIBRARIES sha2)
+-if(SHA2_LIBRARIES AND SHA2_INCLUDE_DIRS)
+- message(STATUS "Using system sha2 library")
+- set(USE_SYSTEM_SHA2 ON)
+-else()
+- message(STATUS "Using builtin sha2 library")
+- set(USE_SYSTEM_SHA2 OFF)
+- add_subdirectory(3rdparty/sha2)
+- set(SHA2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/sha2)
+- set(SHA2_LIBRARIES sha2)
+-endif()
+-
+ # Use the system libmygpo-qt5 if a recent enough version was found
+ if(LIBMYGPO_QT5_FOUND)
+ set(MYGPOQT5_LIBRARIES ${LIBMYGPO_QT5_LIBRARIES})
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 6e24c9726..104d044d9 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -29,7 +29,6 @@ include_directories(${LIBPROJECTM_INCLUDE_DIRS})
+ include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIRS})
+ include_directories(${QTIOCOMPRESSOR_INCLUDE_DIRS})
+ include_directories(${QXT_INCLUDE_DIRS})
+-include_directories(${SHA2_INCLUDE_DIRS})
+ include_directories(${CHROMAPRINT_INCLUDE_DIRS})
+ include_directories(${MYGPOQT5_INCLUDE_DIRS})
+
+@@ -1223,7 +1222,7 @@ target_link_libraries(clementine_lib
+ libclementine-common
+ libclementine-tagreader
+ libclementine-remote
+- ${SHA2_LIBRARIES}
++ ${OPENSSL_LIBRARIES}
+ ${TAGLIB_LIBRARIES}
+ ${MYGPOQT5_LIBRARIES}
+ ${CHROMAPRINT_LIBRARIES}
+diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp
+index ce76f22da..80bf623fb 100644
+--- a/src/core/utilities.cpp
++++ b/src/core/utilities.cpp
+@@ -52,7 +52,7 @@
+ #include "config.h"
+ #include "timeconstants.h"
+
+-#include "sha2.h"
++#include <openssl/sha.h>
+
+ #if defined(Q_OS_UNIX)
+ #include <sys/statvfs.h>
--
2.14.3
next prev parent reply other threads:[~2017-10-29 20:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20170218133830.24091-1-pierre.langlois@gmx.com>
[not found] ` <20170218180249.1522-1-pierre.langlois@gmx.com>
[not found] ` <87h93mfbkm.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me>
[not found] ` <871su5d0is.fsf@gnu.org>
2017-05-03 21:57 ` bug#25787: [PATCH 6/6] gnu: Add Clementine Ludovic Courtès
2017-10-25 14:09 ` [bug#25787] " Ricardo Wurmus
2017-10-29 20:11 ` Pierre Langlois
2017-10-29 20:12 ` [bug#25787] [PATCH 01/26] gnu: Add libmygpo-qt Pierre Langlois
2017-10-29 20:13 ` [bug#25787] [PATCH 02/02] gnu: Add clementine Pierre Langlois
2017-10-29 20:20 ` Pierre Langlois [this message]
2017-12-05 7:07 ` bug#25787: " Ricardo Wurmus
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cubr2tlr9ip.fsf@gmx.com \
--to=pierre.langlois@gmx.com \
--cc=25787@debbugs.gnu.org \
--cc=rekado@elephly.net \
/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.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).