openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2019
- 1 participants
- 2232 discussions
Hello community,
here is the log from the commit of package clementine for openSUSE:Factory checked in at 2019-05-24 11:32:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clementine (Old)
and /work/SRC/openSUSE:Factory/.clementine.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clementine"
Fri May 24 11:32:53 2019 rev:49 rq:705015 version:1.3.1+git20190423
Changes:
--------
--- /work/SRC/openSUSE:Factory/clementine/clementine.changes 2019-03-28 22:48:41.135054753 +0100
+++ /work/SRC/openSUSE:Factory/.clementine.new.5148/clementine.changes 2019-05-24 11:33:00.673375368 +0200
@@ -1,0 +2,14 @@
+Wed May 22 10:03:04 UTC 2019 - plater <davejplater(a)gmail.com>
+
+- Update to qt5 branch snapshot 1.3.1+git20190423.
+- Added cherrypicked patches to bring qt5 branch to master's state:
+ 0001-Fix-gst_buffer_unref-assertion-in-chromaprinter.patch
+ 0001-Add-error-handling-path-for-async-song-loading.patch
+ 0001-Fixes-for-APE-filetype.patch
+ 0001-Simplify-some-statements.patch and
+ 0001-Set-non-zero-minimum-for-fade-times.patch.
+- Upstream changes:
+ *Revert "Blacklist all NVidia drivers"
+ *setFirstSectionMovable() in playlistview.cpp
+
+-------------------------------------------------------------------
Old:
----
clementine-1.3.1+git20190213.tar.gz
New:
----
0001-Add-error-handling-path-for-async-song-loading.patch
0001-Fix-gst_buffer_unref-assertion-in-chromaprinter.patch
0001-Fixes-for-APE-filetype.patch
0001-Set-non-zero-minimum-for-fade-times.patch
0001-Simplify-some-statements.patch
clementine-1.3.1+git20190423.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clementine.spec ++++++
--- /var/tmp/diff_new_pack.gJYtYC/_old 2019-05-24 11:33:01.789374942 +0200
+++ /var/tmp/diff_new_pack.gJYtYC/_new 2019-05-24 11:33:01.797374938 +0200
@@ -12,11 +12,11 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
-%define rev 36cc5b82f4daf5c2d4e93dc8072665e5a3ca622b
+%define rev 3b76fa62752f25b445ee2a71f02c0c9d7581735a
%bcond_without git
@@ -28,7 +28,7 @@
%bcond_without qt5
Name: clementine
-Version: 1.3.1+git20190213
+Version: 1.3.1+git20190423
Release: 0
Summary: A music player inspired by Amarok 1.4
License: GPL-3.0-or-later
@@ -56,7 +56,12 @@
Patch12: 0001-Fix-potential-use-of-streamer-element-after-deletion.patch
Patch13: 0001-Free-decoder-bin-if-error-occurs-during-setup.patch
Patch14: 0001-Fix-several-gstreamer-object-leaks.patch
-
+#PATCH-FIX-GIT to 2019-04-27
+Patch15: 0001-Fix-gst_buffer_unref-assertion-in-chromaprinter.patch
+Patch16: 0001-Add-error-handling-path-for-async-song-loading.patch
+Patch17: 0001-Fixes-for-APE-filetype.patch
+Patch18: 0001-Simplify-some-statements.patch
+Patch19: 0001-Set-non-zero-minimum-for-fade-times.patch
%if 0%{?suse_version} > 1325
BuildRequires: libboost_headers-devel
%else
++++++ 0001-Add-error-handling-path-for-async-song-loading.patch ++++++
>From babff78025cba7e2f82cf905f14eb0db8090cb2a Mon Sep 17 00:00:00 2001
From: Jim Broadus <jbroadus(a)gmail.com>
Date: Sun, 7 Apr 2019 14:18:11 -0700
Subject: [PATCH] Add error handling path for async song loading.
Async song loading can fail without user feedback. This change adds return codes
to these async load functions. It will now produce an error dialog in simple
scenarios (test case is user selecting a file that is not readable). Other cases,
such as directories and playlists, aren't yet covered.
---
src/core/songloader.cpp | 28 +++++++++++++++++++---------
src/core/songloader.h | 8 ++++----
src/playlist/songloaderinserter.cpp | 12 ++++++++++--
3 files changed, 33 insertions(+), 15 deletions(-)
diff --git a/src/core/songloader.cpp b/src/core/songloader.cpp
index 677fc26b5..0a28149c9 100644
--- a/src/core/songloader.cpp
+++ b/src/core/songloader.cpp
@@ -130,9 +130,12 @@ SongLoader::Result SongLoader::Load(const QUrl& url) {
return BlockingLoadRequired;
}
-void SongLoader::LoadFilenamesBlocking() {
+SongLoader::Result SongLoader::LoadFilenamesBlocking() {
if (preload_func_) {
- preload_func_();
+ return preload_func_();
+ } else {
+ qLog(Error) << "Preload function was not set for blocking operation";
+ return Error;
}
}
@@ -207,18 +210,21 @@ SongLoader::Result SongLoader::LoadLocal(const QString& filename) {
return BlockingLoadRequired;
}
-void SongLoader::LoadLocalAsync(const QString& filename) {
+SongLoader::Result SongLoader::LoadLocalAsync(const QString& filename) {
// First check to see if it's a directory - if so we will load all the songs
// inside right away.
if (QFileInfo(filename).isDir()) {
LoadLocalDirectory(filename);
- return;
+ return Success;
}
// It's a local file, so check if it looks like a playlist.
// Read the first few bytes.
QFile file(filename);
- if (!file.open(QIODevice::ReadOnly)) return;
+ if (!file.open(QIODevice::ReadOnly)) {
+ qLog(Error) << "Could not open file " << filename;
+ return Error;
+ }
QByteArray data(file.read(PlaylistParser::kMagicSize));
ParserBase* parser = playlist_parser_->ParserForMagic(data);
@@ -234,7 +240,7 @@ void SongLoader::LoadLocalAsync(const QString& filename) {
// It's a playlist!
LoadPlaylist(parser, filename);
- return;
+ return Success;
}
// Check if it's a cue file
@@ -249,7 +255,7 @@ void SongLoader::LoadLocalAsync(const QString& filename) {
for (Song song : song_list) {
if (song.is_valid()) songs_ << song;
}
- return;
+ return Success;
}
// Assume it's just a normal file
@@ -257,6 +263,9 @@ void SongLoader::LoadLocalAsync(const QString& filename) {
song.InitFromFilePartial(filename);
if (song.is_valid()) {
songs_ << song;
+ return Success;
+ } else {
+ return Error;
}
}
@@ -374,7 +383,7 @@ void SongLoader::StopTypefind() {
emit LoadRemoteFinished();
}
-void SongLoader::LoadRemote() {
+SongLoader::Result SongLoader::LoadRemote() {
qLog(Debug) << "Loading remote file" << url_;
// It's not a local file so we have to fetch it to see what it is. We use
@@ -399,7 +408,7 @@ void SongLoader::LoadRemote() {
if (!source) {
qLog(Warning) << "Couldn't create gstreamer source element for"
<< url_.toString();
- return;
+ return Error;
}
// Create the other elements and link them up
@@ -430,6 +439,7 @@ void SongLoader::LoadRemote() {
// Wait until loading is finished
loop.exec();
+ return Success;
}
void SongLoader::TypeFound(GstElement*, uint, GstCaps* caps, void* self) {
diff --git a/src/core/songloader.h b/src/core/songloader.h
index 494a4fc9d..0f32378e4 100644
--- a/src/core/songloader.h
+++ b/src/core/songloader.h
@@ -72,7 +72,7 @@ class SongLoader : public QObject {
// Loads the files with only filenames. When finished, songs() contains a
// complete list of all Song objects, but without metadata. This method is
// blocking, do not call it from the UI thread.
- void LoadFilenamesBlocking();
+ Result LoadFilenamesBlocking();
// Completely load songs previously loaded with LoadFilenamesBlocking(). When
// finished, the Song objects in songs() contain metadata now. This method is
// blocking, do not call it from the UI thread.
@@ -101,7 +101,7 @@ signals:
};
Result LoadLocal(const QString& filename);
- void LoadLocalAsync(const QString& filename);
+ Result LoadLocalAsync(const QString& filename);
void EffectiveSongLoad(Song* song);
Result LoadLocalPartial(const QString& filename);
void LoadLocalDirectory(const QString& filename);
@@ -109,7 +109,7 @@ signals:
void AddAsRawStream();
- void LoadRemote();
+ Result LoadRemote();
bool LoadRemotePlaylist(const QUrl& url);
// GStreamer callbacks
@@ -138,7 +138,7 @@ signals:
CueParser* cue_parser_;
// For async loads
- std::function<void()> preload_func_;
+ std::function<Result()> preload_func_;
int timeout_;
State state_;
bool success_;
diff --git a/src/playlist/songloaderinserter.cpp b/src/playlist/songloaderinserter.cpp
index d6ebca740..ffa83e59a 100644
--- a/src/playlist/songloaderinserter.cpp
+++ b/src/playlist/songloaderinserter.cpp
@@ -134,15 +134,23 @@ void SongLoaderInserter::AsyncLoad() {
int async_load_id = task_manager_->StartTask(tr("Loading tracks"));
task_manager_->SetTaskProgress(async_load_id, async_progress,
pending_.count());
+ bool first_loaded = false;
for (int i = 0; i < pending_.count(); ++i) {
SongLoader* loader = pending_[i];
- loader->LoadFilenamesBlocking();
+ SongLoader::Result res = loader->LoadFilenamesBlocking();
+
task_manager_->SetTaskProgress(async_load_id, ++async_progress);
- if (i == 0) {
+
+ if (res == SongLoader::Error) {
+ emit Error(tr("Error loading %1").arg(loader->url().toString()));
+ continue;
+ }
+ if (!first_loaded) {
// Load everything from the first song. It'll start playing as soon as
// we emit PreloadFinished, so it needs to have the duration set to show
// properly in the UI.
loader->LoadMetadataBlocking();
+ first_loaded = true;
}
songs_ << loader->songs();
}
--
2.16.4
++++++ 0001-Fix-gst_buffer_unref-assertion-in-chromaprinter.patch ++++++
>From 8094957e09a43e0dcbaebf36d01b48922119b2c4 Mon Sep 17 00:00:00 2001
From: Jonas Kvinge <jonas(a)jkvinge.net>
Date: Fri, 26 Apr 2019 20:40:42 +0200
Subject: [PATCH] Fix gst_buffer_unref assertion in chromaprinter
---
src/musicbrainz/chromaprinter.cpp | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
Index: Clementine-3b76fa62752f25b445ee2a71f02c0c9d7581735a/src/musicbrainz/chromaprinter.cpp
===================================================================
--- Clementine-3b76fa62752f25b445ee2a71f02c0c9d7581735a.orig/src/musicbrainz/chromaprinter.cpp 2019-05-22 12:25:58.153436956 +0200
+++ Clementine-3b76fa62752f25b445ee2a71f02c0c9d7581735a/src/musicbrainz/chromaprinter.cpp 2019-05-22 12:26:34.126826663 +0200
@@ -208,12 +208,16 @@ GstFlowReturn Chromaprinter::NewBufferCa
Chromaprinter* me = reinterpret_cast<Chromaprinter*>(self);
GstSample* sample = gst_app_sink_pull_sample(app_sink);
+ if (!sample) return GST_FLOW_ERROR;
GstBuffer* buffer = gst_sample_get_buffer(sample);
- GstMapInfo map;
- gst_buffer_map(buffer, &map, GST_MAP_READ);
- me->buffer_.write(reinterpret_cast<const char*>(map.data), map.size);
- gst_buffer_unmap(buffer, &map);
- gst_buffer_unref(buffer);
+ if (buffer) {
+ GstMapInfo map;
+ if (gst_buffer_map(buffer, &map, GST_MAP_READ)) {
+ me->buffer_.write(reinterpret_cast<const char*>(map.data), map.size);
+ gst_buffer_unmap(buffer, &map);
+ }
+ }
+ gst_sample_unref(sample);
return GST_FLOW_OK;
}
++++++ 0001-Fix-several-gstreamer-object-leaks.patch ++++++
--- /var/tmp/diff_new_pack.gJYtYC/_old 2019-05-24 11:33:01.837374923 +0200
+++ /var/tmp/diff_new_pack.gJYtYC/_new 2019-05-24 11:33:01.841374922 +0200
@@ -17,11 +17,11 @@
src/engines/gstenginepipeline.cpp | 32 ++++++++++++++++++++------------
1 file changed, 20 insertions(+), 12 deletions(-)
-diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp
-index 7f12c2628..17ddd6089 100644
---- a/src/engines/gstenginepipeline.cpp
-+++ b/src/engines/gstenginepipeline.cpp
-@@ -417,10 +417,13 @@ bool GstEnginePipeline::Init() {
+Index: Clementine-3b76fa62752f25b445ee2a71f02c0c9d7581735a/src/engines/gstenginepipeline.cpp
+===================================================================
+--- Clementine-3b76fa62752f25b445ee2a71f02c0c9d7581735a.orig/src/engines/gstenginepipeline.cpp 2019-05-22 12:26:00.917543757 +0200
++++ Clementine-3b76fa62752f25b445ee2a71f02c0c9d7581735a/src/engines/gstenginepipeline.cpp 2019-05-22 12:26:10.025895666 +0200
+@@ -424,10 +424,13 @@ bool GstEnginePipeline::Init() {
gst_element_link(probe_converter, probe_sink);
// Link the outputs of tee to the queues on each path.
@@ -39,7 +39,7 @@
// Link replaygain elements if enabled.
if (rg_enabled_) {
-@@ -454,12 +457,14 @@ bool GstEnginePipeline::Init() {
+@@ -461,12 +464,14 @@ bool GstEnginePipeline::Init() {
gst_caps_unref(caps);
// Add probes and handlers.
@@ -60,7 +60,7 @@
MaybeLinkDecodeToAudio();
-@@ -519,8 +524,10 @@ bool GstEnginePipeline::InitFromUrl(const QUrl& url, qint64 end_nanosec) {
+@@ -526,8 +531,10 @@ bool GstEnginePipeline::InitFromUrl(cons
GstEnginePipeline::~GstEnginePipeline() {
if (pipeline_) {
@@ -73,7 +73,7 @@
g_source_remove(bus_cb_id_);
gst_element_set_state(pipeline_, GST_STATE_NULL);
gst_object_unref(GST_OBJECT(pipeline_));
-@@ -1011,6 +1018,7 @@ void GstEnginePipeline::SourceSetupCallback(GstURIDecodeBin* bin,
+@@ -1018,6 +1025,7 @@ void GstEnginePipeline::SourceSetupCallb
g_object_set(element, "ssl-strict", TRUE, nullptr);
#endif
}
@@ -81,6 +81,3 @@
}
void GstEnginePipeline::TransitionToNext() {
---
-2.16.4
-
++++++ 0001-Fixes-for-APE-filetype.patch ++++++
>From bd89a1d2ded7177888779b9bc55f32e85b271ef5 Mon Sep 17 00:00:00 2001
From: "James D. Smith" <smithjd15(a)gmail.com>
Date: Thu, 14 Feb 2019 17:33:33 -0700
Subject: [PATCH] Fixes for APE filetype.
---
ext/libclementine-remote/remotecontrolmessages.proto | 1 +
src/core/mpris2.cpp | 1 +
src/core/song.cpp | 3 +++
src/library/libraryquery.cpp | 1 +
4 files changed, 6 insertions(+)
diff --git a/ext/libclementine-remote/remotecontrolmessages.proto b/ext/libclementine-remote/remotecontrolmessages.proto
index 141b78f5d..2389a5a26 100644
--- a/ext/libclementine-remote/remotecontrolmessages.proto
+++ b/ext/libclementine-remote/remotecontrolmessages.proto
@@ -109,6 +109,7 @@ message SongMetadata {
WAVPACK = 14;
SPC = 15;
VGM = 16;
+ APE = 17;
STREAM = 99;
}
diff --git a/src/core/mpris2.cpp b/src/core/mpris2.cpp
index 9f9d4737f..7056d5bcb 100644
--- a/src/core/mpris2.cpp
+++ b/src/core/mpris2.cpp
@@ -238,6 +238,7 @@ QStringList Mpris2::SupportedMimeTypes() const {
<< "audio/ogg"
<< "audio/vnd.rn-realaudio"
<< "audio/vorbis"
+ << "audio/x-ape"
<< "audio/x-flac"
<< "audio/x-mp3"
<< "audio/x-mpeg"
diff --git a/src/core/song.cpp b/src/core/song.cpp
index df68a8cc4..01b320fe9 100644
--- a/src/core/song.cpp
+++ b/src/core/song.cpp
@@ -456,6 +456,8 @@ QString Song::TextForFiletype(FileType type) {
return QObject::tr("SNES SPC700");
case Song::Type_VGM:
return QObject::tr("VGM");
+ case Song::Type_APE:
+ return QObject::tr("Monkey's Audio");
case Song::Type_Stream:
return QObject::tr("Stream");
@@ -469,6 +471,7 @@ QString Song::TextForFiletype(FileType type) {
bool Song::IsFileLossless() const {
switch (filetype()) {
case Song::Type_Aiff:
+ case Song::Type_APE:
case Song::Type_Flac:
case Song::Type_OggFlac:
case Song::Type_Wav:
diff --git a/src/library/libraryquery.cpp b/src/library/libraryquery.cpp
index 4a44689b0..0ebc3ddb0 100644
--- a/src/library/libraryquery.cpp
+++ b/src/library/libraryquery.cpp
@@ -46,6 +46,7 @@ const QMap<QString, Song::FileType> kFiletypeId = QMap<QString, Song::FileType>(
{"cdda", Song::Type_Cdda},
{"spc700", Song::Type_Spc},
{"vgm", Song::Type_VGM},
+ {"ape", Song::Type_APE},
{"stream", Song::Type_Stream},
{"unknown", Song::Type_Unknown}});
--
2.16.4
++++++ 0001-Set-non-zero-minimum-for-fade-times.patch ++++++
>From cc295a4c4c4a5e53b8e734cb495b19ae60687022 Mon Sep 17 00:00:00 2001
From: Jim Broadus <jbroadus(a)gmail.com>
Date: Sun, 7 Apr 2019 21:07:54 -0700
Subject: [PATCH] Set non-zero minimum for fade times.
QTimeLine duration must be greater than 0. If set to 0, a default of 1000ms will
be used. To avoid this, enforce a minimum of 1ms for pause and cross fade values
if those fades are enabled.
---
src/ui/playbacksettingspage.ui | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/ui/playbacksettingspage.ui b/src/ui/playbacksettingspage.ui
index d2b405b66..f43a2cd55 100644
--- a/src/ui/playbacksettingspage.ui
+++ b/src/ui/playbacksettingspage.ui
@@ -88,6 +88,9 @@
<property name="suffix">
<string> ms</string>
</property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
<property name="maximum">
<number>10000</number>
</property>
@@ -139,6 +142,9 @@
<property name="suffix">
<string> ms</string>
</property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
<property name="maximum">
<number>10000</number>
</property>
--
2.16.4
++++++ 0001-Simplify-some-statements.patch ++++++
>From be827f4f7fe01da4b791d4a88f43870e8850940b Mon Sep 17 00:00:00 2001
From: Filip Gawin <filip.gawin(a)zoho.com>
Date: Fri, 22 Feb 2019 18:44:39 +0100
Subject: [PATCH] Simplify some statements
---
src/core/commandlineoptions.cpp | 5 ++---
src/core/mergedproxymodel.cpp | 6 ++----
src/core/utilities.cpp | 4 +---
src/devices/cddasongloader.cpp | 2 +-
src/internet/core/internetmodel.cpp | 8 +++-----
src/internet/core/internetshowsettingspage.cpp | 2 +-
src/internet/podcasts/gpoddertoptagsmodel.cpp | 2 +-
src/internet/podcasts/podcastdiscoverymodel.cpp | 3 +--
src/internet/subsonic/subsonicservice.cpp | 2 +-
src/networkremote/incomingdataparser.cpp | 4 ++--
src/playlist/playlistlistcontainer.cpp | 6 +-----
src/playlist/playlistview.cpp | 2 +-
src/ripper/ripper.cpp | 5 +----
src/ui/albumcoverchoicecontroller.cpp | 5 +----
src/widgets/nowplayingwidget.cpp | 3 +--
15 files changed, 20 insertions(+), 39 deletions(-)
diff --git a/src/core/commandlineoptions.cpp b/src/core/commandlineoptions.cpp
index b47c1c717..00089ac71 100644
--- a/src/core/commandlineoptions.cpp
+++ b/src/core/commandlineoptions.cpp
@@ -310,9 +310,8 @@ bool CommandlineOptions::Parse() {
bool CommandlineOptions::is_empty() const {
return player_action_ == Player_None && set_volume_ == -1 &&
volume_modifier_ == 0 && seek_to_ == -1 && seek_by_ == 0 &&
- play_track_at_ == -1 && show_osd_ == false &&
- toggle_pretty_osd_ == false && urls_.isEmpty() &&
- delete_current_track_ == false;
+ play_track_at_ == -1 && !show_osd_ && !toggle_pretty_osd_ &&
+ urls_.isEmpty() && !delete_current_track_;
}
bool CommandlineOptions::contains_play_options() const {
diff --git a/src/core/mergedproxymodel.cpp b/src/core/mergedproxymodel.cpp
index 8c210d391..97a151cc9 100644
--- a/src/core/mergedproxymodel.cpp
+++ b/src/core/mergedproxymodel.cpp
@@ -505,10 +505,8 @@ void MergedProxyModel::LayoutChanged() {
}
bool MergedProxyModel::IsKnownModel(const QAbstractItemModel* model) const {
- if (model == this || model == sourceModel() ||
- merge_points_.contains(const_cast<QAbstractItemModel*>(model)))
- return true;
- return false;
+ return model == this || model == sourceModel() ||
+ merge_points_.contains(const_cast<QAbstractItemModel*>(model));
}
QModelIndexList MergedProxyModel::mapFromSource(
diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp
index fc300a005..b78008b2b 100644
--- a/src/core/utilities.cpp
+++ b/src/core/utilities.cpp
@@ -270,9 +270,7 @@ bool RemoveRecursive(const QString& path) {
if (!QFile::remove(path + "/" + child)) return false;
}
- if (!dir.rmdir(path)) return false;
-
- return true;
+ return dir.rmdir(path);
}
bool CopyRecursive(const QString& source, const QString& destination) {
diff --git a/src/devices/cddasongloader.cpp b/src/devices/cddasongloader.cpp
index 19b669bd8..54f204f4e 100644
--- a/src/devices/cddasongloader.cpp
+++ b/src/devices/cddasongloader.cpp
@@ -193,7 +193,7 @@ void CddaSongLoader::AudioCDTagsLoaded(
qobject_cast<MusicBrainzClient*>(sender());
musicbrainz_client->deleteLater();
SongList songs;
- if (results.size() == 0) return;
+ if (results.empty()) return;
int track_number = 1;
for (const MusicBrainzClient::Result& ret : results) {
Song song;
diff --git a/src/internet/core/internetmodel.cpp b/src/internet/core/internetmodel.cpp
index 756d48073..f49c9683f 100644
--- a/src/internet/core/internetmodel.cpp
+++ b/src/internet/core/internetmodel.cpp
@@ -351,11 +351,9 @@ void InternetModel::UpdateServices() {
bool setting_val = s.value(service_name).toBool();
// Only update if values are different
- if (setting_val == true &&
- shown_services_[internet_service].shown == false) {
+ if (setting_val && !shown_services_[internet_service].shown) {
ShowService(internet_service);
- } else if (setting_val == false &&
- shown_services_[internet_service].shown == true) {
+ } else if (!setting_val && shown_services_[internet_service].shown) {
HideService(internet_service);
}
}
@@ -378,7 +376,7 @@ int InternetModel::FindItemPosition(const QString& text) {
}
void InternetModel::ShowService(InternetService* service) {
- if (shown_services_[service].shown != true) {
+ if (!shown_services_[service].shown) {
QStandardItem* item = shown_services_[service].item;
int pos = FindItemPosition(item->text());
invisibleRootItem()->insertRow(pos, item);
diff --git a/src/internet/core/internetshowsettingspage.cpp b/src/internet/core/internetshowsettingspage.cpp
index 4c271b170..5a4b67629 100644
--- a/src/internet/core/internetshowsettingspage.cpp
+++ b/src/internet/core/internetshowsettingspage.cpp
@@ -50,7 +50,7 @@ void InternetShowSettingsPage::Load() {
item->setIcon(0, service_it.value().item->icon());
Qt::CheckState check_state =
- service_it.value().shown == true ? Qt::Checked : Qt::Unchecked;
+ service_it.value().shown ? Qt::Checked : Qt::Unchecked;
item->setData(0, Qt::CheckStateRole, check_state);
/* We have to store the constant name of the service */
item->setData(1, Qt::UserRole, service_it.key()->name());
diff --git a/src/internet/podcasts/gpoddertoptagsmodel.cpp b/src/internet/podcasts/gpoddertoptagsmodel.cpp
index b1926b09d..6fc4b7139 100644
--- a/src/internet/podcasts/gpoddertoptagsmodel.cpp
+++ b/src/internet/podcasts/gpoddertoptagsmodel.cpp
@@ -40,7 +40,7 @@ bool GPodderTopTagsModel::hasChildren(const QModelIndex& parent) const {
bool GPodderTopTagsModel::canFetchMore(const QModelIndex& parent) const {
if (parent.isValid() && parent.data(Role_Type).toInt() == Type_Folder &&
- parent.data(Role_HasLazyLoaded).toBool() == false) {
+ !parent.data(Role_HasLazyLoaded).toBool()) {
return true;
}
diff --git a/src/internet/podcasts/podcastdiscoverymodel.cpp b/src/internet/podcasts/podcastdiscoverymodel.cpp
index 076562d90..eb911fd21 100644
--- a/src/internet/podcasts/podcastdiscoverymodel.cpp
+++ b/src/internet/podcasts/podcastdiscoverymodel.cpp
@@ -38,8 +38,7 @@ PodcastDiscoveryModel::PodcastDiscoveryModel(Application* app, QObject* parent)
QVariant PodcastDiscoveryModel::data(const QModelIndex& index, int role) const {
if (index.isValid() && role == Qt::DecorationRole &&
- QStandardItemModel::data(index, Role_StartedLoadingImage).toBool() ==
- false) {
+ !QStandardItemModel::data(index, Role_StartedLoadingImage).toBool()) {
const QUrl image_url =
QStandardItemModel::data(index, Role_ImageUrl).toUrl();
if (image_url.isValid()) {
diff --git a/src/internet/subsonic/subsonicservice.cpp b/src/internet/subsonic/subsonicservice.cpp
index 1970d5931..9243fd587 100644
--- a/src/internet/subsonic/subsonicservice.cpp
+++ b/src/internet/subsonic/subsonicservice.cpp
@@ -481,7 +481,7 @@ void SubsonicLibraryScanner::OnGetAlbumListFinished(QNetworkReply* reply,
if (albums_added > 0) {
// Non-empty reply means potentially more albums to fetch
GetAlbumList(offset + kAlbumChunkSize);
- } else if (album_queue_.size() == 0) {
+ } else if (album_queue_.empty()) {
// Empty reply and no albums means an empty Subsonic server
scanning_ = false;
emit ScanFinished();
diff --git a/src/networkremote/incomingdataparser.cpp b/src/networkremote/incomingdataparser.cpp
index a4c8ebc12..c8dcb8a11 100644
--- a/src/networkremote/incomingdataparser.cpp
+++ b/src/networkremote/incomingdataparser.cpp
@@ -268,7 +268,7 @@ void IncomingDataParser::InsertUrls(const pb::remote::Message& msg) {
const pb::remote::RequestInsertUrls& request = msg.request_insert_urls();
// Insert plain urls without metadata
- if (request.urls().size() > 0) {
+ if (!request.urls().empty()) {
QList<QUrl> urls;
for (auto it = request.urls().begin(); it != request.urls().end(); ++it) {
std::string s = *it;
@@ -281,7 +281,7 @@ void IncomingDataParser::InsertUrls(const pb::remote::Message& msg) {
}
// Add songs with metadata if present
- if (request.songs().size() > 0) {
+ if (!request.songs().empty()) {
SongList songs;
for (int i = 0; i < request.songs().size(); i++) {
songs << CreateSongFromProtobuf(request.songs(i));
diff --git a/src/playlist/playlistlistcontainer.cpp b/src/playlist/playlistlistcontainer.cpp
index c5d6c1298..322a9ced6 100644
--- a/src/playlist/playlistlistcontainer.cpp
+++ b/src/playlist/playlistlistcontainer.cpp
@@ -128,11 +128,7 @@ class PlaylistListFilterProxyModel : public QSortFilterProxyModel {
}
//accept if any of the children is accepted on it's own merits
- if (hasAcceptedChildren(source_row, source_parent)) {
- return true;
- }
-
- return false;
+ return hasAcceptedChildren(source_row, source_parent);
}
};
diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp
index 062ba4e2d..1686b55ca 100644
--- a/src/playlist/playlistview.cpp
+++ b/src/playlist/playlistview.cpp
@@ -1133,7 +1133,7 @@ void PlaylistView::ReloadSettings() {
// set_background_image when it is not needed, as this will cause the fading
// animation to start again. This also avoid to do useless
// "force_background_redraw".
- if (background_initialized_ == false ||
+ if (!background_initialized_ ||
background_image_filename != background_image_filename_ ||
background_type != background_image_type_ ||
blur_radius_ != blur_radius || opacity_level_ != opacity_level) {
diff --git a/src/ripper/ripper.cpp b/src/ripper/ripper.cpp
index b67350a2c..240e452a8 100644
--- a/src/ripper/ripper.cpp
+++ b/src/ripper/ripper.cpp
@@ -104,10 +104,7 @@ bool Ripper::CheckCDIOIsValid() {
}
bool Ripper::MediaChanged() const {
- if (cdio_ && cdio_get_media_changed(cdio_))
- return true;
- else
- return false;
+ return cdio_ && cdio_get_media_changed(cdio_);
}
void Ripper::Start() {
diff --git a/src/ui/albumcoverchoicecontroller.cpp b/src/ui/albumcoverchoicecontroller.cpp
index c00cd5919..8bb9cf317 100644
--- a/src/ui/albumcoverchoicecontroller.cpp
+++ b/src/ui/albumcoverchoicecontroller.cpp
@@ -347,10 +347,7 @@ bool AlbumCoverChoiceController::CanAcceptDrag(const QDragEnterEvent* e) {
const QString suffix = QFileInfo(url.toLocalFile()).suffix().toLower();
if (IsKnownImageExtension(suffix)) return true;
}
- if (e->mimeData()->hasImage()) {
- return true;
- }
- return false;
+ return e->mimeData()->hasImage();
}
QString AlbumCoverChoiceController::SaveCover(Song* song, const QDropEvent* e) {
diff --git a/src/widgets/nowplayingwidget.cpp b/src/widgets/nowplayingwidget.cpp
index 502a7801d..c508626c9 100644
--- a/src/widgets/nowplayingwidget.cpp
+++ b/src/widgets/nowplayingwidget.cpp
@@ -110,8 +110,7 @@ NowPlayingWidget::NowPlayingWidget(QWidget* parent)
fit_cover_width_action_ = menu_->addAction(tr("Fit cover to width"));
fit_cover_width_action_->setCheckable(true);
- fit_cover_width_action_->setEnabled((mode_ != SmallSongDetails) ? true
- : false);
+ fit_cover_width_action_->setEnabled(mode_ != SmallSongDetails);
connect(fit_cover_width_action_, SIGNAL(toggled(bool)),
SLOT(FitCoverWidth(bool)));
fit_cover_width_action_->setChecked(fit_width_);
--
2.16.4
++++++ clementine-1.3.1+git20190213.tar.gz -> clementine-1.3.1+git20190423.tar.gz ++++++
/work/SRC/openSUSE:Factory/clementine/clementine-1.3.1+git20190213.tar.gz /work/SRC/openSUSE:Factory/.clementine.new.5148/clementine-1.3.1+git20190423.tar.gz differ: char 13, line 1
1
0
Hello community,
here is the log from the commit of package usbguard for openSUSE:Factory checked in at 2019-05-24 11:32:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/usbguard (Old)
and /work/SRC/openSUSE:Factory/.usbguard.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "usbguard"
Fri May 24 11:32:49 2019 rev:6 rq:705009 version:0.7.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/usbguard/usbguard.changes 2019-01-21 10:56:50.667548986 +0100
+++ /work/SRC/openSUSE:Factory/.usbguard.new.5148/usbguard.changes 2019-05-24 11:32:51.593378836 +0200
@@ -1,0 +2,6 @@
+Wed May 22 13:38:28 UTC 2019 - Christophe Giboudeaux <christophe(a)krop.fr>
+
+- Run spec-cleaner
+- Add the missing systemd build requirement.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ usbguard.spec ++++++
--- /var/tmp/diff_new_pack.T6d11K/_old 2019-05-24 11:32:52.569378464 +0200
+++ /var/tmp/diff_new_pack.T6d11K/_new 2019-05-24 11:32:52.573378461 +0200
@@ -17,9 +17,7 @@
%global _hardened_build 1
-
%define lname libusbguard0
-
Name: usbguard
Version: 0.7.4
Release: 0
@@ -35,8 +33,6 @@
Source3: usbguard-daemon.conf
Source4: usbguard-rpmlintrc
Patch0: usbguard-applet-qt_desktop_menu_categories.patch
-%{?systemd_requires}
-
BuildRequires: asciidoc
BuildRequires: aspell
BuildRequires: audit-devel
@@ -58,20 +54,23 @@
BuildRequires: libxml2-devel
BuildRequires: libxslt-devel
BuildRequires: pegtl-devel
+BuildRequires: pkgconfig
BuildRequires: polkit-devel
#BuildRequires: spdlog-static
BuildRequires: protobuf-devel
+BuildRequires: pkgconfig(systemd)
+%{?systemd_requires}
%description
The USBGuard software framework helps to protect your computer against rogue USB
devices by implementing basic whitelisting/blacklisting capabilities based on
USB device attributes.
-%package -n %lname
+%package -n %{lname}
Summary: Library for implementing USB device usage policy
Group: System/Libraries
-%description -n %lname
+%description -n %{lname}
The USBGuard software framework helps to protect your computer against rogue USB
devices by implementing basic whitelisting/blacklisting capabilities based on
USB device attributes.
@@ -79,7 +78,7 @@
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
-Requires: %lname = %{version}
+Requires: %{lname} = %{version}
Requires: %{name} = %{version}
Requires: libstdc++-devel
Requires: pkgconfig
@@ -108,7 +107,7 @@
for interacting with the USBGuard daemon component.
%prep
-%setup -q -n usbguard-%version
+%setup -q -n usbguard-%{version}
%patch0 -p1
%build
@@ -161,7 +160,6 @@
%postun -n libusbguard0 -p /sbin/ldconfig
%files
-%defattr(-,root,root,-)
%doc README.adoc CHANGELOG.md
%license LICENSE
%{_sbindir}/usbguard-daemon
@@ -172,35 +170,31 @@
%config(noreplace) %attr(0600,-,-) %{_sysconfdir}/usbguard/usbguard-daemon.conf
%config(noreplace) %attr(0600,-,-) %{_sysconfdir}/usbguard/rules.conf
%{_unitdir}/usbguard.service
-%{_datadir}/man/man8/usbguard-daemon.8.gz
-%{_datadir}/man/man5/usbguard-daemon.conf.5.gz
-%{_datadir}/man/man5/usbguard-rules.conf.5.gz
+%{_mandir}/man8/usbguard-daemon.8%{?ext_man}
+%{_mandir}/man5/usbguard-daemon.conf.5%{?ext_man}
+%{_mandir}/man5/usbguard-rules.conf.5%{?ext_man}
%{_datadir}/bash-completion/completions/usbguard
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/_usbguard
-%files -n %lname
-%defattr(-,root,root,-)
+%files -n %{lname}
%license LICENSE
%{_libdir}/*.so.*
%files devel
-%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%files tools
-%defattr(-,root,root,-)
%{_bindir}/usbguard
%{_bindir}/usbguard-rule-parser
-%{_datadir}/man/man1/usbguard.1.gz
+%{_mandir}/man1/usbguard.1%{?ext_man}
%files applet-qt
-%defattr(-,root,root,-)
%{_bindir}/usbguard-applet-qt
-%{_mandir}/man1/usbguard-applet-qt.1.gz
+%{_mandir}/man1/usbguard-applet-qt.1%{?ext_man}
%{_datadir}/applications/usbguard-applet-qt.desktop
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/scalable
1
0
Hello community,
here is the log from the commit of package obs-service-set_version for openSUSE:Factory checked in at 2019-05-24 11:32:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-set_version (Old)
and /work/SRC/openSUSE:Factory/.obs-service-set_version.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-set_version"
Fri May 24 11:32:46 2019 rev:37 rq:705000 version:0.5.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-set_version/obs-service-set_version.changes 2019-05-13 14:51:51.730988565 +0200
+++ /work/SRC/openSUSE:Factory/.obs-service-set_version.new.5148/obs-service-set_version.changes 2019-05-24 11:32:46.937380615 +0200
@@ -1,0 +2,18 @@
+Thu May 16 15:13:14 UTC 2019 - John Whately <john+OpenSuse(a)whately.me>
+
+- Modified .spec file to better suit Fedora OS (let's just assume all Fedora versions has python 3)
+
+-------------------------------------------------------------------
+Thu May 16 13:11:28 UTC 2019 - FSchreiner(a)suse.com
+
+- Update to version 0.5.11:
+ * try to fix set_version:157:13: E117 over-indented (comment)
+
+-------------------------------------------------------------------
+Tue May 14 13:33:02 UTC 2019 - Adrian Schröter <adrian(a)suse.de>
+
+- enable test suite by default
+ * if it does not build, it can also not be executed on the distro
+- fix requires for SLE 12 distro
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-set_version.spec ++++++
--- /var/tmp/diff_new_pack.Zz0XkS/_old 2019-05-24 11:32:47.581380368 +0200
+++ /var/tmp/diff_new_pack.Zz0XkS/_new 2019-05-24 11:32:47.585380367 +0200
@@ -1,7 +1,7 @@
#
# spec file for package obs-service-set_version
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,12 +16,14 @@
#
-%if 0%{?suse_version} > 1315
%bcond_without obs_scm_testsuite
+%define service set_version
+
+%if 0%{?suse_version} > 1315 || 0%{?fedora_version}
+%define use_python python3
%else
-%bcond_with obs_scm_testsuite
+%define use_python python
%endif
-%define service set_version
Name: obs-service-%{service}
Version: 0.5.11
@@ -31,21 +33,24 @@
Group: Development/Tools/Building
Url: https://github.com/openSUSE/obs-service-%{service}
Source: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildArch: noarch
+
%if %{with obs_scm_testsuite}
-BuildRequires: python3-ddt
-BuildRequires: python3-flake8
+BuildRequires: %{use_python}-ddt
+BuildRequires: %{use_python}-flake8
+BuildRequires: %{use_python}-packaging
%endif
+
%if 0%{?suse_version}
%if 0%{?suse_version} > 1315
-Recommends: python3-packaging
Requires: python3-base
%else
-Recommends: python3-packaging
+Requires: python
%endif
+Recommends: %{use_python}-packaging
%endif
-Requires: sed
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildArch: noarch
+
%description
This is a source service for openSUSE Build Service.
@@ -57,21 +62,11 @@
%setup -q
%build
-#%if 0%{?suse_version} > 1315
-#sed -i -e "1 s,#!/usr/bin/python$,#!/usr/bin/python3," set_version
-#%endif
-
-#%if 0%{?is_Fedora_Rawhide}
-#sed -i -e "1 s,#!/usr/bin/python$,#!/usr/bin/python3," set_version
-#%endif
-
-#%if 0%{?is_Fedora_30}
-#sed -i -e ""1 s,#!/usr/bin/python$,#!/usr/bin/python3," set_version
-#%endif
+sed -i -e "1 s,#!/usr/bin/python$,#!/usr/bin/%{use_python}," set_version
%if %{with obs_scm_testsuite}
%check
-make test PYTHON=python3
+make test PYTHON=%{use_python}
%endif
%install
1
0
Hello community,
here is the log from the commit of package perl-Starman for openSUSE:Factory checked in at 2019-05-24 11:32:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Starman (Old)
and /work/SRC/openSUSE:Factory/.perl-Starman.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Starman"
Fri May 24 11:32:42 2019 rev:2 rq:704998 version:0.4015
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Starman/perl-Starman.changes 2016-03-09 15:17:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Starman.new.5148/perl-Starman.changes 2019-05-24 11:32:46.145380917 +0200
@@ -1,0 +2,9 @@
+Tue May 21 05:26:48 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 0.4015
+ see /usr/share/doc/packages/perl-Starman/Changes
+
+ 0.4015 2019-05-20 18:43:46 PDT
+ - Fixed a bug incorrectly handling content body of '0' (olsonanl) #133
+
+-------------------------------------------------------------------
Old:
----
Starman-0.4014.tar.gz
New:
----
Starman-0.4015.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Starman.spec ++++++
--- /var/tmp/diff_new_pack.HFapdV/_old 2019-05-24 11:32:46.637380729 +0200
+++ /var/tmp/diff_new_pack.HFapdV/_new 2019-05-24 11:32:46.645380726 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Starman
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,19 +12,19 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: perl-Starman
-Version: 0.4014
+Version: 0.4015
Release: 0
%define cpan_name Starman
Summary: High-performance preforking PSGI/Plack web server
-License: Artistic-1.0 or GPL-1.0+
+License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
-Url: http://search.cpan.org/dist/Starman/
-Source0: http://www.cpan.org/authors/id/M/MI/MIYAGAWA/%{cpan_name}-%{version}.tar.gz
+Url: https://metacpan.org/release/%{cpan_name}
+Source0: https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/%{cpan_name}-%{version}.…
Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -35,7 +35,7 @@
BuildRequires: perl(HTTP::Parser::XS)
BuildRequires: perl(HTTP::Status)
BuildRequires: perl(LWP::UserAgent)
-BuildRequires: perl(Module::Build::Tiny) >= 0.039
+BuildRequires: perl(Module::Build::Tiny) >= 0.034
BuildRequires: perl(Net::Server) >= 2.007
BuildRequires: perl(Plack) >= 0.9971
BuildRequires: perl(Test::Requires)
@@ -56,55 +56,53 @@
* High Performance
- Uses the fast XS/C HTTP header parser
+Uses the fast XS/C HTTP header parser
* Preforking
- Spawns workers preforked like most high performance UNIX servers do.
- Starman also reaps dead children and automatically restarts the worker
- pool.
+Spawns workers preforked like most high performance UNIX servers do.
+Starman also reaps dead children and automatically restarts the worker
+pool.
* Signals
- Supports 'HUP' for graceful worker restarts, and 'TTIN'/'TTOU' to
- dynamically increase or decrease the number of worker processes, as well
- as 'QUIT' to gracefully shutdown the worker processes.
+Supports 'HUP' for graceful worker restarts, and 'TTIN'/'TTOU' to
+dynamically increase or decrease the number of worker processes, as well as
+'QUIT' to gracefully shutdown the worker processes.
* Superdaemon aware
- Supports the Server::Starter manpage for hot deploy and graceful
- restarts.
+Supports Server::Starter for hot deploy and graceful restarts.
* Multiple interfaces and UNIX Domain Socket support
- Able to listen on multiple interfaces including UNIX sockets.
+Able to listen on multiple interfaces including UNIX sockets.
* Small memory footprint
- Preloading the applications with '--preload-app' command line option
- enables copy-on-write friendly memory management. Also, the minimum
- memory usage Starman requires for the master process is 7MB and children
- (workers) is less than 3.0MB.
+Preloading the applications with '--preload-app' command line option
+enables copy-on-write friendly memory management. Also, the minimum memory
+usage Starman requires for the master process is 7MB and children (workers)
+is less than 3.0MB.
* PSGI compatible
- Can run any PSGI applications and frameworks
+Can run any PSGI applications and frameworks
* HTTP/1.1 support
- Supports chunked requests and responses, keep-alive and pipeline
- requests.
+Supports chunked requests and responses, keep-alive and pipeline requests.
* UNIX only
- This server does not support Win32.
+This server does not support Win32.
%prep
%setup -q -n %{cpan_name}-%{version}
-find . -type f -print0 | xargs -0 chmod 644
+find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
%build
-%{__perl} Build.PL --installdirs=vendor
+perl Build.PL --installdirs=vendor
./Build build --flags=%{?_smp_mflags}
%check
@@ -116,6 +114,7 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes LICENSE README
+%doc Changes README script
+%license LICENSE
%changelog
++++++ Starman-0.4014.tar.gz -> Starman-0.4015.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/Build.PL new/Starman-0.4015/Build.PL
--- old/Starman-0.4014/Build.PL 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/Build.PL 2019-05-21 03:43:51.000000000 +0200
@@ -1,7 +1,7 @@
-# This Build.PL for Starman was generated by Dist::Zilla::Plugin::ModuleBuildTiny 0.010.
+# This Build.PL for Starman was generated by Dist::Zilla::Plugin::ModuleBuildTiny 0.015.
use strict;
use warnings;
use 5.008001;
-use Module::Build::Tiny 0.039;
+use Module::Build::Tiny 0.034;
Build_PL();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/Changes new/Starman-0.4015/Changes
--- old/Starman-0.4014/Changes 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/Changes 2019-05-21 03:43:51.000000000 +0200
@@ -1,5 +1,8 @@
Revision history for Perl extension Starman
+0.4015 2019-05-20 18:43:46 PDT
+ - Fixed a bug incorrectly handling content body of '0' (olsonanl) #133
+
0.4014 2015-06-03 12:01:00 PDT
- Treat ECONNRESET like EPIPE (i.e. ignore), not as a fatal error #114 (Tim Bunce)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/MANIFEST new/Starman-0.4015/MANIFEST
--- old/Starman-0.4014/MANIFEST 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/MANIFEST 2019-05-21 03:43:51.000000000 +0200
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.036.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012.
Build.PL
Changes
LICENSE
@@ -14,6 +14,7 @@
lib/Starman/Server.pm
script/starman
t/00_compile.t
+t/author-pod-syntax.t
t/chunked_req.t
t/chunked_termination.t
t/chunked_zero_length.t
@@ -23,8 +24,8 @@
t/no_chunked_head.t
t/rand.psgi
t/release-findbin.t
-t/release-pod-syntax.t
t/release-rand.t
+t/single_zero.t
t/ssl.t
t/ssl_ca.pem
t/ssl_key.pem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/META.json new/Starman-0.4015/META.json
--- old/Starman-0.4014/META.json 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/META.json 2019-05-21 03:43:51.000000000 +0200
@@ -4,7 +4,7 @@
"Tatsuhiko Miyagawa <miyagawa(a)bulknews.net>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.036, Dist::Milla version v1.0.15, CPAN::Meta::Converter version 2.150001",
+ "generated_by" : "Dist::Milla version v1.0.20, Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240",
"license" : [
"perl_5"
],
@@ -15,23 +15,26 @@
"name" : "Starman",
"no_index" : {
"directory" : [
- "t",
- "xt",
+ "eg",
+ "examples",
"inc",
"share",
- "eg",
- "examples"
+ "t",
+ "xt"
]
},
"prereqs" : {
"configure" : {
"requires" : {
- "Module::Build::Tiny" : "0.039"
+ "Module::Build::Tiny" : "0.034"
+ },
+ "suggests" : {
+ "JSON::PP" : "2.27300"
}
},
"develop" : {
"requires" : {
- "Dist::Milla" : "v1.0.15",
+ "Dist::Milla" : "v1.0.20",
"Test::Pod" : "1.41"
}
},
@@ -72,7 +75,7 @@
"web" : "https://github.com/miyagawa/Starman"
}
},
- "version" : "0.4014",
+ "version" : "0.4015",
"x_contributors" : [
"Adam Guthrie <adam.guthrie(a)dvlgames.com>",
"Alex Vandiver <alex(a)chmrr.net>",
@@ -81,6 +84,7 @@
"Audrey Tang <audreyt(a)audreyt.org>",
"Chia-liang Kao <clkao(a)clkao.org>",
"cho45 <cho45(a)lowreal.net>",
+ "Damyan Ivanov <dmn(a)debian.org>",
"David Steinbrunner <dsteinbrunner(a)pobox.com>",
"Graham Barr <gbarr(a)pobox.com>",
"Grant McLean <grant(a)catalyst.net.nz>",
@@ -94,10 +98,14 @@
"Perlover <perlover(a)perlover.com>",
"Peter Makholm <peter(a)makholm.net>",
"Piotr Roszatycki <piotr.roszatycki(a)gmail.com>",
+ "Robert Olson <olson(a)mcs.anl.gov>",
"Robert Sedlacek <r.sedlacek(a)shadowcat.co.uk>",
- "Slobodan Mišković <slobodan(a)miskovic.ca>",
+ "Slobodan Mi\u0161kovi\u0107 <slobodan(a)miskovic.ca>",
"spleenjack <spleenjack(a)gmail.com>",
"Tim Bunce <Tim.Bunce(a)pobox.com>"
- ]
+ ],
+ "x_generated_by_perl" : "v5.20.1",
+ "x_serialization_backend" : "Cpanel::JSON::XS version 4.09",
+ "x_static_install" : 1
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/META.yml new/Starman-0.4015/META.yml
--- old/Starman-0.4014/META.yml 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/META.yml 2019-05-21 03:43:51.000000000 +0200
@@ -7,9 +7,9 @@
Test::More: '0'
Test::Requires: '0'
configure_requires:
- Module::Build::Tiny: '0.039'
+ Module::Build::Tiny: '0.034'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.036, Dist::Milla version v1.0.15, CPAN::Meta::Converter version 2.150001'
+generated_by: 'Dist::Milla version v1.0.20, Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -17,12 +17,12 @@
name: Starman
no_index:
directory:
- - t
- - xt
- - inc
- - share
- eg
- examples
+ - inc
+ - share
+ - t
+ - xt
requires:
Data::Dump: '0'
HTTP::Date: '0'
@@ -37,7 +37,7 @@
bugtracker: https://github.com/miyagawa/Starman/issues
homepage: https://github.com/miyagawa/Starman
repository: https://github.com/miyagawa/Starman.git
-version: '0.4014'
+version: '0.4015'
x_contributors:
- 'Adam Guthrie <adam.guthrie(a)dvlgames.com>'
- 'Alex Vandiver <alex(a)chmrr.net>'
@@ -46,6 +46,7 @@
- 'Audrey Tang <audreyt(a)audreyt.org>'
- 'Chia-liang Kao <clkao(a)clkao.org>'
- 'cho45 <cho45(a)lowreal.net>'
+ - 'Damyan Ivanov <dmn(a)debian.org>'
- 'David Steinbrunner <dsteinbrunner(a)pobox.com>'
- 'Graham Barr <gbarr(a)pobox.com>'
- 'Grant McLean <grant(a)catalyst.net.nz>'
@@ -59,7 +60,11 @@
- 'Perlover <perlover(a)perlover.com>'
- 'Peter Makholm <peter(a)makholm.net>'
- 'Piotr Roszatycki <piotr.roszatycki(a)gmail.com>'
+ - 'Robert Olson <olson(a)mcs.anl.gov>'
- 'Robert Sedlacek <r.sedlacek(a)shadowcat.co.uk>'
- 'Slobodan Mišković <slobodan(a)miskovic.ca>'
- 'spleenjack <spleenjack(a)gmail.com>'
- 'Tim Bunce <Tim.Bunce(a)pobox.com>'
+x_generated_by_perl: v5.20.1
+x_serialization_backend: 'YAML::Tiny version 1.73'
+x_static_install: 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/lib/Starman/Server.pm new/Starman-0.4015/lib/Starman/Server.pm
--- old/Starman-0.4014/lib/Starman/Server.pm 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/lib/Starman/Server.pm 2019-05-21 03:43:51.000000000 +0200
@@ -301,7 +301,7 @@
if ( $self->{client}->{keepalive} ) {
# If we still have data in the input buffer it may be a pipelined request
- if ( $self->{client}->{inputbuf} ) {
+ if ( $self->{client}->{inputbuf} ne '' ) {
if ( $self->{client}->{inputbuf} =~ /^(?:GET|HEAD)/ ) {
if ( DEBUG ) {
warn "Pipelined GET/HEAD request in input buffer: "
@@ -344,7 +344,7 @@
# Do we have a full header in the buffer?
# This is before sysread so we don't read if we have a pipelined request
# waiting in the buffer
- last if defined $self->{client}->{inputbuf} && $self->{client}->{inputbuf} =~ /$CR?$LF$CR?$LF/s;
+ last if $self->{client}->{inputbuf} ne '' && $self->{client}->{inputbuf} =~ /$CR?$LF$CR?$LF/s;
# If not, read some data
my $read = sysread $self->{server}->{client}, my $buf, CHUNKSIZE;
@@ -404,7 +404,7 @@
my($self, $env) = @_;
my $get_chunk = sub {
- if ($self->{client}->{inputbuf}) {
+ if ($self->{client}->{inputbuf} ne '') {
my $chunk = delete $self->{client}->{inputbuf};
return ($chunk, length $chunk);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/lib/Starman.pm new/Starman-0.4015/lib/Starman.pm
--- old/Starman-0.4014/lib/Starman.pm 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/lib/Starman.pm 2019-05-21 03:43:51.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use 5.008_001;
-our $VERSION = '0.4014';
+our $VERSION = '0.4015';
1;
__END__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/t/author-pod-syntax.t new/Starman-0.4015/t/author-pod-syntax.t
--- old/Starman-0.4014/t/author-pod-syntax.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Starman-0.4015/t/author-pod-syntax.t 2019-05-21 03:43:51.000000000 +0200
@@ -0,0 +1,15 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ print qq{1..0 # SKIP these tests are for testing by the author\n};
+ exit
+ }
+}
+
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use strict; use warnings;
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/t/release-findbin.t new/Starman-0.4015/t/release-findbin.t
--- old/Starman-0.4014/t/release-findbin.t 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/t/release-findbin.t 2019-05-21 03:43:51.000000000 +0200
@@ -1,8 +1,8 @@
BEGIN {
unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ print qq{1..0 # SKIP these tests are for release candidate testing\n};
+ exit
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/t/release-pod-syntax.t new/Starman-0.4015/t/release-pod-syntax.t
--- old/Starman-0.4014/t/release-pod-syntax.t 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/t/release-pod-syntax.t 1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-#!perl
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
-use Test::More;
-use Test::Pod 1.41;
-
-all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/t/release-rand.t new/Starman-0.4015/t/release-rand.t
--- old/Starman-0.4014/t/release-rand.t 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/t/release-rand.t 2019-05-21 03:43:51.000000000 +0200
@@ -1,8 +1,8 @@
BEGIN {
unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ print qq{1..0 # SKIP these tests are for release candidate testing\n};
+ exit
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/t/single_zero.t new/Starman-0.4015/t/single_zero.t
--- old/Starman-0.4014/t/single_zero.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Starman-0.4015/t/single_zero.t 2019-05-21 03:43:51.000000000 +0200
@@ -0,0 +1,32 @@
+use strict;
+use Plack::Test;
+use Plack::Request;
+use HTTP::Request;
+use Test::More;
+
+$Plack::Test::Impl = "Server";
+$ENV{PLACK_SERVER} = 'Starman';
+
+my $app = sub {
+ my $env = shift;
+ my $req = Plack::Request->new($env);
+ is $req->content, "0";
+ return sub {
+ my $response = shift;
+ my $writer = $response->([ 200, [ 'Content-Type', 'text/plain' ]]);
+ $writer->write("ok");
+ $writer->close;
+ }
+};
+
+test_psgi $app, sub {
+ my $cb = shift;
+
+ my $req = HTTP::Request->new(POST => "http://localhost/");
+ $req->content('0');
+ my $res = $cb->($req);
+
+ is $res->content, "ok";
+};
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/t/ssl_ca.pem new/Starman-0.4015/t/ssl_ca.pem
--- old/Starman-0.4014/t/ssl_ca.pem 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/t/ssl_ca.pem 2019-05-21 03:43:51.000000000 +0200
@@ -1,16 +1,21 @@
-----BEGIN CERTIFICATE-----
-MIICeDCCAeGgAwIBAgIJAOslSqlwsHjtMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
-BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMQ0wCwYDVQQHDARQZXJsMQ0wCwYD
-VQQKDARDUEFOMRIwEAYDVQQDDAlUd2lnZ3kgQ0EwIBcNMTMwNjI0MTI0ODM2WhgP
-MjExMzA1MzExMjQ4MzZaMFQxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0
-YXRlMQ0wCwYDVQQHDARQZXJsMQ0wCwYDVQQKDARDUEFOMRIwEAYDVQQDDAlUd2ln
-Z3kgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM/DNSFrSL7lXuU0jf8m
-QoYcCX9FktOKQxDLbxRxwtHDhglBB8CuiMV+BbS5FrPbQr4nSgE2oJwpnwhuWrHN
-WVdaw+jphfaqKyH+EoS1HVvuTE+EuBvddjBOX05y9ep8dXj70VOBPFR5ak/eZ9Ak
-T24rGMIPoi98mXPDjH+P4UerAgMBAAGjUDBOMB0GA1UdDgQWBBRmjcVGMIxIobtv
-mBA3fueMBktkbDAfBgNVHSMEGDAWgBRmjcVGMIxIobtvmBA3fueMBktkbDAMBgNV
-HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAJWVQFrrBKWd3dZOMYZoubvOoaMu
-lF18SThy0d0BB4KJ0smimQw/AG+yI/lEGjQZqNzPg/QO8DboFn2RATWEbnjUKln1
-Y7bEBgKQOoOvjXzoLrcNjUwHcYInSkkSiogW5Fif3cwrpNesbyT+6yck3eKV9dDs
-20Sk95QANMswpEsy
+MIIDazCCAlOgAwIBAgIUIiI/iRVTq/tVgh0aRA5NdV00hWIwDQYJKoZIhvcNAQEL
+BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxDTALBgNVBAoM
+BENQQU4xEjAQBgNVBAMMCVR3aWdneSBDQTAeFw0xODEwMjkyMDAyMDJaFw0yOTEw
+MTEyMDAyMDJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMQ0w
+CwYDVQQKDARDUEFOMRIwEAYDVQQDDAlUd2lnZ3kgQ0EwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDBFop2+rRjBb5ljDQf9Nf6RLuGblKkQHlTX0IyWjB2
+LMOs8hjvQTcGcj1F4K1C6R6enapyo3oHy3VRXwncFcuIkGsblCiQe7N5eDxXDm3S
+/OnGit7e4wWXT//Jz4UPqb5E2egE2/UD9vNiMgpLlBtcpocs4ftG9zcAfc30Iti+
++0cY9Xj+2PidGNLGTnLVxBHgcMAuVl56Bln++t4zhzMULnmDLZRn7A4Y2hgASwgi
+/pEOzhDaotUA3UWxHT5ji3zowYFPEaeCrLaVIhLB03t1kyKI37gyzdQLvfb8zgSV
+dQfTuUJg3xALQ5SwkJ3YkkB88kzx1a5WmznRU+B0hX8PAgMBAAGjUzBRMB0GA1Ud
+DgQWBBR6irOqu7DaNMbdFDxkwJbO/ghaoTAfBgNVHSMEGDAWgBR6irOqu7DaNMbd
+FDxkwJbO/ghaoTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBD
+3G4sUS6Oves6Ov/l1qPri02dTF5KZIvnn7PX4vTGq022/q1tRd5tL9uwttSutb6i
+5/iqL9JMz1/ExJk4LN5y3Zl7jf5a8wg8Tm/7Wu8gfbSn6ChgbfWcwcrje5ImgsHN
+evwgQxm2WgXkiqvpnvOramCYSwEyhEBX89hJWaBkuSKuDa/rPpjQrce3DbzzQT3C
+LOiHppZk5rOyOLLGoZYwWbS2+MfQKz6dQmSrMWwwk5CamPGCDvj1Cwmh/hMY2dNq
+lzSeT7YFThqDv0XhQxTFhkvXOK8xrQuGLvCFIYGZYbNAd2gCguY5lBELJFJHfBFD
+3hn7L7wx4M++rOqlCLPm
-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Starman-0.4014/t/ssl_key.pem new/Starman-0.4015/t/ssl_key.pem
--- old/Starman-0.4014/t/ssl_key.pem 2015-06-03 21:01:03.000000000 +0200
+++ new/Starman-0.4015/t/ssl_key.pem 2019-05-21 03:43:51.000000000 +0200
@@ -1,32 +1,48 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQC97L0abgahu40RdF5tZtfs3bnXdDrOvUi2Aaqmxrth/LXFpwJh
-YjILdtBO2/OwVsV8Srb56LtiYMMCISLI2TdFo9rtRX+1947hBrHAyREdJCZG2oOK
-GjSVK8Ew4/ITGn7PcY553WPG00UBURaXCHj4XolFdJkzJ898ZOfjieJbKwIDAQAB
-AoGAYKl7uVbkQy5cZtTONmoQXXqf2jtKruwBdLi2bPlaZ02iCf2tJXk/tTv8WxZx
-GX+gNVkldV3w+On8djn9JTIAgayhFqUpRnnH0QUDYaOeSBMwJ15Lh7FnxgOubtZ9
-Nybw0n2i1+7NnzQWW8Hbg0q0xUrPvQM+6ofXMcILNEhruiECQQDylZMJakDkHCGb
-25j2VLg1KyPXfsSXInbtAOYPHGWWnwPlai5aajNqJaEVWoggMeCqWQ+ncixHL2AP
-ruy4yVzbAkEAyG2g+yVqnU/tf9j/e7uLcXBoG0HRk94ntHWYWX8w2z0yWcaaC4g5
-OUuVzaJuIx8dDIMaBJjnGNrMASCxd+Aj8QJBAI7BVPkabTuQDnsw3LBBpPGtBHeh
-Y0Fph8DrYXeNB39+7oUIWmTc0IrrwALX9vmzQHoe1SZ9+u6dQ5OXJjmMTjcCQQCt
-3UPfeTbCHjrFQ+VkXW16S2tT8cWvAvDof3ZYdJhaJv0NmdW5mUMiq6nYx0XJW80k
-NHoWcNlP20VK2SR5+8rRAkBIUFfBtGlHLwzjC/GXqf8avU+pjmT1bmJrWbJIG6dg
-NZpy7goBxUin0lyP3/+INgbbuBhVGmCfIXmFhQTADO+6
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDqNpja2Nj0nyhL
+LIxILjRoLt7Z8rp96/G7pxgoQ5USJr5y2gx7FfKnalF+UEJdZgjNcIkWWm8aybBI
+tKXcmFH0axWMGZXsQdNdw2tzWzj8dkiWGpdyMLMBFLlihofyXApHl7oeg+kFCVpA
+3ov11Z6p10vVKTd7Do+AAcfsVv/RUJWPS4a+ETQMRzk9xYO6GKt80f0RRkv/VAu1
+yvmEfaZAtKhUFrqbKQmISdIjkDbjoWgXc0Lg7NCcf1p7mNBh6UjxCqxo0M++EtPD
+7adO+5DsI7LuoLF5Gsj1DBRITkJvGNBROz0S982XROebyDo5NOcIIjipns1A2wUb
+QrPD83ifAgMBAAECggEAEHxZVAYxdz6AspHnKel+rNqnuwWX1Oc3s7K2Q5dGNene
+O+1XNY687sXQCKkTksls0zEZpSYmbedGbkew6Q8bra2f7aWbZO7ZNt9bf9oq77JP
+t6kVgeclomzYA7Ree1O5MYLfiehVDZKz9J71kQ9BRMkvwEhPbG0A8sytSthw10XH
+UTcr+WBs2MhHTzPHkNon/lea8543aq+ccHwx69E0GKnixIE+wVPYBgwf1ZSdOiHh
+iPEknoYgzLUbq2etcWfGf9OzEulPsLYvHf/FsU85DmHr78LuBaJJHnw/gD4G/uCk
+U9iW0K9pnB8dQVdjIB4Qms1yPkdnzSlZYjKZpDhAWQKBgQD/Co0iZpizUkwB4WjJ
+yboM7CmW/lxoQQ0OgIwFP2Bqy5GK42//MT50z14V7LMkod1ZjYF7DGuWzhZ8mzAH
+OqUiYVj3vd61J6to4aZ3YGYy9Wn2DQE0YCv0tNQ2Hy5H5X0my55kVhBKGuWuz8gV
+bcLzGcCgxTh+g4QVRCrnbgWybQKBgQDrGABPVYGXd9Lr6nsYW2FKrxdtuEfJKppH
+2Ai2co7WBPtpcm0rQrQQpkQlVr+dLQEs9couZ2o7l10GeIC2cmUQjT3IDqZDirOR
+DfWD5FJO8kmCL1Lqx8gbaJk1GDmas838LtKVvWQjyD/YmSGU3gaHgCompDYFrSBp
+Av2dAhTPuwKBgDgM1pWf3KFUTdX/9uqaBeR/JmjDwAU9fqQYRi2FDyiJUpQmhd+c
+r/A1/qRs37YGSMI8oh8rzJ1Y74I1DOoZzl7u7AGOXdqMPFSReuczbWJ3ovDrTL94
+/1AJSbYXRjGQ0t9q0oWUkIHoxV+U1JE5DSYmG7p5fX/4YVfXImK4QFJFAoGBAI3G
+zLELbPrOrWnO3+theHwUublWkBw2UBKRqzd0QMW6/W+rLUEQmg0MaD5oYWhFctcN
+Z5+yiDNl5hj35Q+iT2a69w5GH2jOJdqNo4ml0SmBHmmfZo7marx0yShm8p5kXw39
+osvhCpo1sqNKPiFMAH4JAeKJ13Z24PvTbOUaEzjvAoGAMMlBaOHyhOUtcNwjg12C
+IpSZiStcQFOPgOb+4lO6MKyQaU4yp8Y6yXZGuBfZDdYKxXc7g9pGPEu7wYE8JX4a
+xcixJrkvbq8kMbbS2GcStrDohPAgmptdhHGR00+jGN1EnK40a0nKrFii0RwvucxW
+FYizcklNMPmFOHuJQopwG+g=
+-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
-MIICtzCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJBVTET
-MBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UEBwwEUGVybDENMAsGA1UECgwEQ1BB
-TjESMBAGA1UEAwwJVHdpZ2d5IENBMCAXDTEzMDYyNDE0MDkxN1oYDzIxMTMwNTMx
-MTQwOTE3WjBbMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTENMAsG
-A1UEBwwEUGVybDEUMBIGA1UECgwLVHdpZ2d5OjpUTFMxEjAQBgNVBAMMCWxvY2Fs
-aG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvey9Gm4GobuNEXRebWbX
-7N2513Q6zr1ItgGqpsa7Yfy1xacCYWIyC3bQTtvzsFbFfEq2+ei7YmDDAiEiyNk3
-RaPa7UV/tfeO4QaxwMkRHSQmRtqDiho0lSvBMOPyExp+z3GOed1jxtNFAVEWlwh4
-+F6JRXSZMyfPfGTn44niWysCAwEAAaOBjzCBjDAJBgNVHRMEAjAAMBEGCWCGSAGG
-+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
-dGlmaWNhdGUwHQYDVR0OBBYEFNEyv4THaOchG4iWvGnWYv13FdBTMB8GA1UdIwQY
-MBaAFGaNxUYwjEihu2+YEDd+54wGS2RsMA0GCSqGSIb3DQEBBQUAA4GBAIG24tBn
-rAOJUCcFUVSPbVdhxvjWjuzN5NRuhJyPRc2dEoZeQ2A7gP0znPnoelTOrKfduf04
-cMsMNAUVNyMnGY3BdHl9ShsbCq8RmFzogB1oT0vV2iyQIdp1+L4ll8z+E/waNBR7
-TIbJDA86rCs5lQ3kL8q7ZBIFNApsoAM+b3z1
+MIIDTjCCAjagAwIBAgIUIiI/iRVTq/tVgh0aRA5NdV00hWQwDQYJKoZIhvcNAQEL
+BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxDTALBgNVBAoM
+BENQQU4xEjAQBgNVBAMMCVR3aWdneSBDQTAeFw0xODEwMjkyMDE3MDhaFw0yOTEw
+MTEyMDE3MDhaMFsxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMQ0w
+CwYDVQQHDARQZXJsMRQwEgYDVQQKDAtUd2lnZ3k6OlRMUzESMBAGA1UEAwwJbG9j
+YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6jaY2tjY9J8o
+SyyMSC40aC7e2fK6fevxu6cYKEOVEia+ctoMexXyp2pRflBCXWYIzXCJFlpvGsmw
+SLSl3JhR9GsVjBmV7EHTXcNrc1s4/HZIlhqXcjCzARS5YoaH8lwKR5e6HoPpBQla
+QN6L9dWeqddL1Sk3ew6PgAHH7Fb/0VCVj0uGvhE0DEc5PcWDuhirfNH9EUZL/1QL
+tcr5hH2mQLSoVBa6mykJiEnSI5A246FoF3NC4OzQnH9ae5jQYelI8QqsaNDPvhLT
+w+2nTvuQ7COy7qCxeRrI9QwUSE5CbxjQUTs9EvfNl0Tnm8g6OTTnCCI4qZ7NQNsF
+G0Kzw/N4nwIDAQABoyAwHjAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAN
+BgkqhkiG9w0BAQsFAAOCAQEAVOEsMwoWZozYM102nwwRDveaqsLmQUIq6CfAQ1tC
+6WtxtV3ZpydfRJauwNEa1tPtWn7RrqHttZwwG5YD8TvxqJvX18nJXQz8GUef2L65
+ZxPoiZOd+pL7eB9P7Hscyp2q76JWJDd0j86QMoL8P9MqZ6J1z4UgoeaDVX1YDRe9
+WBtgI+sy4O+v1uPHNv1yT3mG4cTrc8PKFh5G9KmqMAAqha9HslaEWHwz7mXJxOS0
+PegBGFjjIw/S6XV5kf7ZLbBnZDRKah9BPxL/K8lmZnBReAJaNMVkE/1KA/5aNp4J
+3m9c4DXL+svrQim8nFG3TizjbPkmuRnts5+jwSe5IB3bvQ==
-----END CERTIFICATE-----
1
0
Hello community,
here is the log from the commit of package perl-Test-Spelling for openSUSE:Factory checked in at 2019-05-24 11:32:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-Spelling (Old)
and /work/SRC/openSUSE:Factory/.perl-Test-Spelling.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Spelling"
Fri May 24 11:32:38 2019 rev:13 rq:704997 version:0.23
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Test-Spelling/perl-Test-Spelling.changes 2019-04-28 20:14:53.786364671 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Test-Spelling.new.5148/perl-Test-Spelling.changes 2019-05-24 11:32:40.725382986 +0200
@@ -1,0 +2,13 @@
+Wed May 22 05:27:48 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 0.23
+ see /usr/share/doc/packages/perl-Test-Spelling/Changes
+
+ 0.23 2019-05-21
+ - Fixed some documentation errors (Mohammad S Anwar)
+ - Added unicode support (Kivanc Yazan, GH PR#10)
+ - Bump Perl prereq to 5.8 now that we support unicode
+ - Don't inherit from Exporter (Olivier Mengué, GH PR#9)
+ - Bump Exporter prereq to 5.57
+
+-------------------------------------------------------------------
Old:
----
Test-Spelling-0.22.tar.gz
New:
----
Test-Spelling-0.23.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Test-Spelling.spec ++++++
--- /var/tmp/diff_new_pack.AQjXla/_old 2019-05-24 11:32:41.629382641 +0200
+++ /var/tmp/diff_new_pack.AQjXla/_new 2019-05-24 11:32:41.633382640 +0200
@@ -17,7 +17,7 @@
Name: perl-Test-Spelling
-Version: 0.22
+Version: 0.23
Release: 0
%define cpan_name Test-Spelling
Summary: Check for spelling errors in POD files
++++++ Test-Spelling-0.22.tar.gz -> Test-Spelling-0.23.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/Changes new/Test-Spelling-0.23/Changes
--- old/Test-Spelling-0.22/Changes 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/Changes 2019-05-22 02:44:53.000000000 +0200
@@ -1,5 +1,12 @@
Revision history for Test-Spelling
+0.23 2019-05-21
+ - Fixed some documentation errors (Mohammad S Anwar)
+ - Added unicode support (Kivanc Yazan, GH PR#10)
+ - Bump Perl prereq to 5.8 now that we support unicode
+ - Don't inherit from Exporter (Olivier Mengué, GH PR#9)
+ - Bump Exporter prereq to 5.57
+
0.22 2019-04-24
- Zero-code-change release encompassing everything from 0.21
- Resolves RT#120425 . in @INC should no longer be an issue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/MANIFEST new/Test-Spelling-0.23/MANIFEST
--- old/Test-Spelling-0.22/MANIFEST 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/MANIFEST 2019-05-22 02:44:53.000000000 +0200
@@ -16,6 +16,7 @@
t/corpus/good-pod.pm
t/corpus/no-pod.pm
t/corpus/stopword.pm
+t/corpus/unicode-pod.pm
t/fake_checker.t
t/load.t
t/stopword.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/META.json new/Test-Spelling-0.23/META.json
--- old/Test-Spelling-0.22/META.json 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/META.json 2019-05-22 02:44:53.000000000 +0200
@@ -32,6 +32,9 @@
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "0"
+ },
+ "suggests" : {
+ "JSON::PP" : "2.27300"
}
},
"develop" : {
@@ -54,7 +57,7 @@
},
"runtime" : {
"requires" : {
- "Exporter" : "0",
+ "Exporter" : "5.57",
"File::Spec" : "0",
"IPC::Run3" : "0",
"Pod::Spell" : "0",
@@ -62,7 +65,7 @@
"Test::Builder" : "0",
"Text::Wrap" : "0",
"base" : "0",
- "perl" : "5.006",
+ "perl" : "5.008",
"strict" : "0",
"warnings" : "0"
}
@@ -84,7 +87,7 @@
"provides" : {
"Test::Spelling" : {
"file" : "lib/Test/Spelling.pm",
- "version" : "0.22"
+ "version" : "0.23"
}
},
"release_status" : "stable",
@@ -99,7 +102,7 @@
"web" : "https://github.com/genio/test-spelling"
}
},
- "version" : "0.22",
+ "version" : "0.23",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.026001"
@@ -196,7 +199,7 @@
}
},
"name" : "@Starter/MakeMaker::Awesome",
- "version" : "0.47"
+ "version" : "0.48"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
@@ -304,7 +307,7 @@
"meta_noindex" : 1
},
"Dist::Zilla::Role::ModuleMetadata" : {
- "Module::Metadata" : "1.000033",
+ "Module::Metadata" : "1.000036",
"version" : "0.006"
}
},
@@ -340,7 +343,7 @@
"class" : "Dist::Zilla::Plugin::Git::Contributors",
"config" : {
"Dist::Zilla::Plugin::Git::Contributors" : {
- "git_version" : "2.19.1",
+ "git_version" : "2.20.1",
"include_authors" : 0,
"include_releaser" : 1,
"order_by" : "name",
@@ -370,7 +373,7 @@
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.19.1",
+ "git_version" : "2.20.1",
"repo_root" : "."
}
},
@@ -393,7 +396,7 @@
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.19.1",
+ "git_version" : "2.20.1",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
@@ -410,12 +413,12 @@
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
- "tag" : "v0.22",
+ "tag" : "v0.23",
"tag_format" : "v%V",
"tag_message" : "v%V"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.19.1",
+ "git_version" : "2.20.1",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
@@ -435,7 +438,7 @@
"remotes_must_exist" : 1
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.19.1",
+ "git_version" : "2.20.1",
"repo_root" : "."
}
},
@@ -580,7 +583,10 @@
"David Golden <dagolden(a)cpan.org>",
"Karen Etheridge <ether(a)cpan.org>",
"Kent Fredric <kentfredric(a)gmail.com>",
+ "Kivanc Yazan <kivancyazan(a)gmail.com>",
+ "Mohammad S Anwar <mohammad.anwar(a)yahoo.com>",
"Olaf Alders <olaf(a)wundersolutions.com>",
+ "Olivier Mengu\u00e9 <dolmen(a)cpan.org>",
"Randy Stauner <randy(a)magnificent-tears.com>",
"Shawn M Moore <sartak(a)cpan.org>",
"Thomas Sibley <trs(a)bestpractical.com>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/META.yml new/Test-Spelling-0.23/META.yml
--- old/Test-Spelling-0.22/META.yml 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/META.yml 2019-05-22 02:44:53.000000000 +0200
@@ -29,9 +29,9 @@
provides:
Test::Spelling:
file: lib/Test/Spelling.pm
- version: '0.22'
+ version: '0.23'
requires:
- Exporter: '0'
+ Exporter: '5.57'
File::Spec: '0'
IPC::Run3: '0'
Pod::Spell: '0'
@@ -39,14 +39,14 @@
Test::Builder: '0'
Text::Wrap: '0'
base: '0'
- perl: '5.006'
+ perl: '5.008'
strict: '0'
warnings: '0'
resources:
bugtracker: https://github.com/genio/test-spelling/issues
homepage: https://github.com/genio/test-spelling
repository: https://github.com/genio/test-spelling.git
-version: '0.22'
+version: '0.23'
x_Dist_Zilla:
perl:
version: '5.026001'
@@ -123,7 +123,7 @@
default_jobs: 1
version: '6.012'
name: '@Starter/MakeMaker::Awesome'
- version: '0.47'
+ version: '0.48'
-
class: Dist::Zilla::Plugin::Manifest
name: '@Starter/Manifest'
@@ -206,7 +206,7 @@
inherit_version: '1'
meta_noindex: '1'
Dist::Zilla::Role::ModuleMetadata:
- Module::Metadata: '1.000033'
+ Module::Metadata: '1.000036'
version: '0.006'
name: '@Starter/MetaProvides::Package'
version: '2.004003'
@@ -233,7 +233,7 @@
class: Dist::Zilla::Plugin::Git::Contributors
config:
Dist::Zilla::Plugin::Git::Contributors:
- git_version: 2.19.1
+ git_version: 2.20.1
include_authors: 0
include_releaser: 1
order_by: name
@@ -256,7 +256,7 @@
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
- git_version: 2.19.1
+ git_version: 2.20.1
repo_root: .
name: '@Git/Check'
version: '2.046'
@@ -273,7 +273,7 @@
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
- git_version: 2.19.1
+ git_version: 2.20.1
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
@@ -286,11 +286,11 @@
branch: ~
changelog: Changes
signed: 0
- tag: v0.22
+ tag: v0.23
tag_format: v%V
tag_message: v%V
Dist::Zilla::Role::Git::Repo:
- git_version: 2.19.1
+ git_version: 2.20.1
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
@@ -304,7 +304,7 @@
- origin
remotes_must_exist: 1
Dist::Zilla::Role::Git::Repo:
- git_version: 2.19.1
+ git_version: 2.20.1
repo_root: .
name: '@Git/Push'
version: '2.046'
@@ -416,7 +416,10 @@
- 'David Golden <dagolden(a)cpan.org>'
- 'Karen Etheridge <ether(a)cpan.org>'
- 'Kent Fredric <kentfredric(a)gmail.com>'
+ - 'Kivanc Yazan <kivancyazan(a)gmail.com>'
+ - 'Mohammad S Anwar <mohammad.anwar(a)yahoo.com>'
- 'Olaf Alders <olaf(a)wundersolutions.com>'
+ - 'Olivier Mengué <dolmen(a)cpan.org>'
- 'Randy Stauner <randy(a)magnificent-tears.com>'
- 'Shawn M Moore <sartak(a)cpan.org>'
- 'Thomas Sibley <trs(a)bestpractical.com>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/Makefile.PL new/Test-Spelling-0.23/Makefile.PL
--- old/Test-Spelling-0.22/Makefile.PL 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/Makefile.PL 2019-05-22 02:44:53.000000000 +0200
@@ -1,5 +1,5 @@
# This Makefile.PL for Test-Spelling was generated by
-# Dist::Zilla::Plugin::MakeMaker::Awesome 0.47.
+# Dist::Zilla::Plugin::MakeMaker::Awesome 0.48.
# Don't edit it but the dist.ini and plugins used to construct it.
use strict;
@@ -20,7 +20,7 @@
"LICENSE" => "perl",
"NAME" => "Test::Spelling",
"PREREQ_PM" => {
- "Exporter" => 0,
+ "Exporter" => "5.57",
"File::Spec" => 0,
"IPC::Run3" => 0,
"Pod::Spell" => 0,
@@ -39,14 +39,14 @@
"strict" => 0,
"warnings" => 0
},
- "VERSION" => "0.22",
+ "VERSION" => "0.23",
"test" => {
"TESTS" => "t/*.t"
}
);
my %FallbackPrereqs = (
- "Exporter" => 0,
+ "Exporter" => "5.57",
"ExtUtils::MakeMaker" => 0,
"File::Spec" => 0,
"IPC::Run3" => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/README new/Test-Spelling-0.23/README
--- old/Test-Spelling-0.22/README 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/README 2019-05-22 02:44:53.000000000 +0200
@@ -56,7 +56,7 @@
FUNCTIONS
all_pod_files_spelling_ok( [@files/@directories] )
- Checks all the files for POD spelling. It gathers all_pod_files() on
+ Checks all the files for POD spelling. It gathers "all_pod_files" on
each file/directory, and declares a "plan" in Test::More for you (one
test for each file), so you must not call "plan" yourself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/cpanfile new/Test-Spelling-0.23/cpanfile
--- old/Test-Spelling-0.22/cpanfile 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/cpanfile 2019-05-22 02:44:53.000000000 +0200
@@ -1,9 +1,9 @@
on 'runtime' => sub {
- requires 'perl' => '5.006';
+ requires 'perl' => '5.008';
requires 'strict';
requires 'warnings';
requires 'base';
- requires 'Exporter';
+ requires 'Exporter' => '5.57';
requires 'File::Spec';
requires 'IPC::Run3';
requires 'Pod::Spell';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/lib/Test/Spelling.pm new/Test-Spelling-0.23/lib/Test/Spelling.pm
--- old/Test-Spelling-0.22/lib/Test/Spelling.pm 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/lib/Test/Spelling.pm 2019-05-22 02:44:53.000000000 +0200
@@ -1,9 +1,9 @@
package Test::Spelling;
-use 5.006;
+
use strict;
use warnings;
-use base 'Exporter';
+use Exporter qw(import);
use Pod::Spell;
use Test::Builder;
use Text::Wrap;
@@ -11,7 +11,7 @@
use IPC::Run3;
use Symbol 'gensym';
-our $VERSION = '0.22';
+our $VERSION = '0.23';
our @EXPORT = qw(
pod_file_spelling_ok
@@ -101,9 +101,10 @@
my $document = '';
open my $handle, '>', \$document;
+ open my $infile, '<:encoding(UTF-8)', $file;
# save digested POD to the string $document
- get_pod_parser()->parse_from_file($file, $handle);
+ get_pod_parser()->parse_from_filehandle($infile, $handle);
my @words = _get_spellcheck_results($document);
@@ -321,7 +322,7 @@
=head2 all_pod_files_spelling_ok( [@files/@directories] )
-Checks all the files for POD spelling. It gathers L<all_pod_files()> on each
+Checks all the files for POD spelling. It gathers L</all_pod_files> on each
file/directory, and declares a L<Test::More/plan> for you (one test for each
file), so you must not call C<plan> yourself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/t/00-report-prereqs.dd new/Test-Spelling-0.23/t/00-report-prereqs.dd
--- old/Test-Spelling-0.22/t/00-report-prereqs.dd 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/t/00-report-prereqs.dd 2019-05-22 02:44:53.000000000 +0200
@@ -7,6 +7,9 @@
'configure' => {
'requires' => {
'ExtUtils::MakeMaker' => '0'
+ },
+ 'suggests' => {
+ 'JSON::PP' => '2.27300'
}
},
'develop' => {
@@ -29,7 +32,7 @@
},
'runtime' => {
'requires' => {
- 'Exporter' => '0',
+ 'Exporter' => '5.57',
'File::Spec' => '0',
'IPC::Run3' => '0',
'Pod::Spell' => '0',
@@ -37,7 +40,7 @@
'Test::Builder' => '0',
'Text::Wrap' => '0',
'base' => '0',
- 'perl' => '5.006',
+ 'perl' => '5.008',
'strict' => '0',
'warnings' => '0'
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/t/basic.t new/Test-Spelling-0.23/t/basic.t
--- old/Test-Spelling-0.22/t/basic.t 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/t/basic.t 2019-05-22 02:44:53.000000000 +0200
@@ -1,6 +1,7 @@
use Test::Tester;
use Test::More;
use Test::Spelling;
+use utf8;
BEGIN {
if (!has_working_spellchecker()) {
@@ -24,5 +25,12 @@
diag => "Errors:\n incorectly",
});
+add_stopwords("ünıçöđé");
+
+check_test(sub { pod_file_spelling_ok('t/corpus/unicode-pod.pm', 'unicode pod has no errors') }, {
+ ok => 1,
+ name => 'unicode pod has no errors',
+});
+
done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/t/corpus/unicode-pod.pm new/Test-Spelling-0.23/t/corpus/unicode-pod.pm
--- old/Test-Spelling-0.22/t/corpus/unicode-pod.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/Test-Spelling-0.23/t/corpus/unicode-pod.pm 2019-05-22 02:44:53.000000000 +0200
@@ -0,0 +1,16 @@
+package Unicode::Pod;
+use strict;
+use warnings;
+
+sub foo {}
+
+1;
+
+__END__
+
+=head1 NAME
+
+UTF8::Pod - POD with ünıçöđé
+
+=END
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/xt/author/pod-spell.t new/Test-Spelling-0.23/xt/author/pod-spell.t
--- old/Test-Spelling-0.22/xt/author/pod-spell.t 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/xt/author/pod-spell.t 2019-05-22 02:44:53.000000000 +0200
@@ -11,6 +11,7 @@
all_pod_files_spelling_ok( qw( bin lib ) );
__DATA__
Alders
+Anwar
Brohman
CPAN
Chase
@@ -21,8 +22,12 @@
Ivan
Karen
Kent
+Kivanc
+Mengué
+Mohammad
Moore
Olaf
+Olivier
Randy
Shawn
Sibley
@@ -32,15 +37,19 @@
Thomas
Tubert
Whitener
+Yazan
brian
capoeirab
dagolden
+dolmen
ether
foy
github
itub
kentfredric
+kivancyazan
lib
+mohammad
olaf
preprocessing
randy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Spelling-0.22/xt/release/changes_has_content.t new/Test-Spelling-0.23/xt/release/changes_has_content.t
--- old/Test-Spelling-0.22/xt/release/changes_has_content.t 2019-04-25 00:41:13.000000000 +0200
+++ new/Test-Spelling-0.23/xt/release/changes_has_content.t 2019-05-22 02:44:53.000000000 +0200
@@ -2,7 +2,7 @@
note 'Checking Changes';
my $changes_file = 'Changes';
-my $newver = '0.22';
+my $newver = '0.23';
my $trial_token = '-TRIAL';
my $encoding = 'UTF-8';
1
0
Hello community,
here is the log from the commit of package perl-CPAN-Perl-Releases for openSUSE:Factory checked in at 2019-05-24 11:32:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-CPAN-Perl-Releases (Old)
and /work/SRC/openSUSE:Factory/.perl-CPAN-Perl-Releases.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-CPAN-Perl-Releases"
Fri May 24 11:32:35 2019 rev:76 rq:704996 version:4.04
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-CPAN-Perl-Releases/perl-CPAN-Perl-Releases.changes 2019-05-20 10:30:33.789873194 +0200
+++ /work/SRC/openSUSE:Factory/.perl-CPAN-Perl-Releases.new.5148/perl-CPAN-Perl-Releases.changes 2019-05-24 11:32:37.373384267 +0200
@@ -1,0 +2,6 @@
+Thu May 23 05:03:07 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 4.04
+ see /usr/share/doc/packages/perl-CPAN-Perl-Releases/Changes
+
+-------------------------------------------------------------------
Old:
----
CPAN-Perl-Releases-4.02.tar.gz
New:
----
CPAN-Perl-Releases-4.04.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-CPAN-Perl-Releases.spec ++++++
--- /var/tmp/diff_new_pack.LHHbhI/_old 2019-05-24 11:32:38.113383984 +0200
+++ /var/tmp/diff_new_pack.LHHbhI/_new 2019-05-24 11:32:38.117383983 +0200
@@ -17,7 +17,7 @@
Name: perl-CPAN-Perl-Releases
-Version: 4.02
+Version: 4.04
Release: 0
%define cpan_name CPAN-Perl-Releases
Summary: Mapping Perl releases on CPAN to the location of the tarballs
++++++ CPAN-Perl-Releases-4.02.tar.gz -> CPAN-Perl-Releases-4.04.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-4.02/Changes new/CPAN-Perl-Releases-4.04/Changes
--- old/CPAN-Perl-Releases-4.02/Changes 2019-05-17 22:49:21.000000000 +0200
+++ new/CPAN-Perl-Releases-4.04/Changes 2019-05-22 13:25:48.000000000 +0200
@@ -1,8 +1,18 @@
==================================================
-Changes from 2014-05-18 00:00:00 +0000 to present.
+Changes from 2014-05-23 00:00:00 +0000 to present.
==================================================
-----------------------------------------
+version 4.04 at 2019-05-22 11:19:39 +0000
+-----------------------------------------
+
+ Change: 4309dbcf704b41a4a28db0f35799a2082f4428b6
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2019-05-22 12:19:39 +0000
+
+ Updated for v5.30.0
+
+-----------------------------------------
version 4.02 at 2019-05-17 20:48:49 +0000
-----------------------------------------
@@ -1192,16 +1202,6 @@
Updated for v5.20.0
------------------------------------------
-version 1.70 at 2014-05-19 12:08:57 +0000
------------------------------------------
-
- Change: b71b39bb96500373db858cabb11668d44f3b7837
- Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
- Date : 2014-05-19 13:08:57 +0000
-
- Updated for v5.20.0-RC1
-
=================================================
-Plus 83 releases after 2014-05-18 00:00:00 +0000.
+Plus 84 releases after 2014-05-23 00:00:00 +0000.
=================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-4.02/META.json new/CPAN-Perl-Releases-4.04/META.json
--- old/CPAN-Perl-Releases-4.02/META.json 2019-05-17 22:49:21.000000000 +0200
+++ new/CPAN-Perl-Releases-4.04/META.json 2019-05-22 13:25:48.000000000 +0200
@@ -54,7 +54,7 @@
"web" : "https://github.com/bingos/cpan-perl-releases"
}
},
- "version" : "4.02",
+ "version" : "4.04",
"x_generated_by_perl" : "v5.26.3",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.11"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-4.02/META.yml new/CPAN-Perl-Releases-4.04/META.yml
--- old/CPAN-Perl-Releases-4.02/META.yml 2019-05-17 22:49:21.000000000 +0200
+++ new/CPAN-Perl-Releases-4.04/META.yml 2019-05-22 13:25:48.000000000 +0200
@@ -21,6 +21,6 @@
resources:
homepage: https://github.com/bingos/cpan-perl-releases
repository: https://github.com/bingos/cpan-perl-releases.git
-version: '4.02'
+version: '4.04'
x_generated_by_perl: v5.26.3
x_serialization_backend: 'YAML::Tiny version 1.73'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-4.02/Makefile.PL new/CPAN-Perl-Releases-4.04/Makefile.PL
--- old/CPAN-Perl-Releases-4.02/Makefile.PL 2019-05-17 22:49:21.000000000 +0200
+++ new/CPAN-Perl-Releases-4.04/Makefile.PL 2019-05-22 13:25:48.000000000 +0200
@@ -26,7 +26,7 @@
"IPC::Open3" => 0,
"Test::More" => "0.47"
},
- "VERSION" => "4.02",
+ "VERSION" => "4.04",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-4.02/README new/CPAN-Perl-Releases-4.04/README
--- old/CPAN-Perl-Releases-4.02/README 2019-05-17 22:49:21.000000000 +0200
+++ new/CPAN-Perl-Releases-4.04/README 2019-05-22 13:25:48.000000000 +0200
@@ -5,7 +5,7 @@
VERSION
- version 4.02
+ version 4.04
SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-4.02/dist.ini new/CPAN-Perl-Releases-4.04/dist.ini
--- old/CPAN-Perl-Releases-4.02/dist.ini 2019-05-17 22:49:21.000000000 +0200
+++ new/CPAN-Perl-Releases-4.04/dist.ini 2019-05-22 13:25:48.000000000 +0200
@@ -1,5 +1,5 @@
name = CPAN-Perl-Releases
-version = 4.02
+version = 4.04
author = Chris Williams <chris(a)bingosnet.co.uk>
license = Perl_5
copyright_holder = Chris Williams
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-4.02/lib/CPAN/Perl/Releases.pm new/CPAN-Perl-Releases-4.04/lib/CPAN/Perl/Releases.pm
--- old/CPAN-Perl-Releases-4.02/lib/CPAN/Perl/Releases.pm 2019-05-17 22:49:21.000000000 +0200
+++ new/CPAN-Perl-Releases-4.04/lib/CPAN/Perl/Releases.pm 2019-05-22 13:25:48.000000000 +0200
@@ -1,5 +1,5 @@
package CPAN::Perl::Releases;
-$CPAN::Perl::Releases::VERSION = '4.02';
+$CPAN::Perl::Releases::VERSION = '4.04';
#ABSTRACT: Mapping Perl releases on CPAN to the location of the tarballs
use strict;
@@ -239,6 +239,7 @@
"5.29.10" => { id => 'XSAWYERX' },
"5.30.0-RC1" => { id => 'XSAWYERX' },
"5.30.0-RC2" => { id => 'XSAWYERX' },
+"5.30.0" => { id => 'XSAWYERX' },
};
sub perl_tarballs {
@@ -307,7 +308,7 @@
=head1 VERSION
-version 4.02
+version 4.04
=head1 SYNOPSIS
1
0
Hello community,
here is the log from the commit of package perl-Mojo-RabbitMQ-Client for openSUSE:Factory checked in at 2019-05-24 11:32:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojo-RabbitMQ-Client (Old)
and /work/SRC/openSUSE:Factory/.perl-Mojo-RabbitMQ-Client.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojo-RabbitMQ-Client"
Fri May 24 11:32:30 2019 rev:8 rq:704993 version:0.2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojo-RabbitMQ-Client/perl-Mojo-RabbitMQ-Client.changes 2018-08-22 14:21:33.790523633 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Mojo-RabbitMQ-Client.new.5148/perl-Mojo-RabbitMQ-Client.changes 2019-05-24 11:32:34.133385504 +0200
@@ -1,0 +2,9 @@
+Thu May 23 11:50:37 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- update to 0.2.2
+
+ 0.2.2 2019-05-23T11:20:22Z
+ - Minor documentation fixes #32 (@sjn)
+ - fix around 30 memory leaks #31 (@kraih)
+
+-------------------------------------------------------------------
Old:
----
Mojo-RabbitMQ-Client-0.2.1.tar.gz
New:
----
Mojo-RabbitMQ-Client-0.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Mojo-RabbitMQ-Client.spec ++++++
--- /var/tmp/diff_new_pack.EjGX7g/_old 2019-05-24 11:32:34.613385321 +0200
+++ /var/tmp/diff_new_pack.EjGX7g/_new 2019-05-24 11:32:34.613385321 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Mojo-RabbitMQ-Client
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: perl-Mojo-RabbitMQ-Client
-Version: 0.2.1
+Version: 0.2.2
Release: 0
%define cpan_name Mojo-RabbitMQ-Client
Summary: Mojo::IOLoop based RabbitMQ client
License: Artistic-2.0
Group: Development/Libraries/Perl
-Url: http://search.cpan.org/dist/Mojo-RabbitMQ-Client/
+Url: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/S/SE/SEBAPOD/%{cpan_name}-%{version}.t…
Source1: cpanspec.yml
BuildArch: noarch
@@ -55,7 +55,7 @@
%setup -q -n %{cpan_name}-%{version}
%build
-%{__perl} Build.PL --installdirs=vendor
+perl Build.PL --installdirs=vendor
./Build build --flags=%{?_smp_mflags}
%check
++++++ Mojo-RabbitMQ-Client-0.2.1.tar.gz -> Mojo-RabbitMQ-Client-0.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/Changes new/Mojo-RabbitMQ-Client-0.2.2/Changes
--- old/Mojo-RabbitMQ-Client-0.2.1/Changes 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/Changes 2019-05-23 13:20:25.000000000 +0200
@@ -1,3 +1,6 @@
+0.2.2 2019-05-23T11:20:22Z
+ - Minor documentation fixes #32 (@sjn)
+ - fix around 30 memory leaks #31 (@kraih)
0.2.1 2018-07-29T14:17:43Z
- Fixed POD syntax, spelling & grammar errors #27,#28 (@gregoa)
- Fixed POD error #26 (@manwar)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/META.json new/Mojo-RabbitMQ-Client-0.2.2/META.json
--- old/Mojo-RabbitMQ-Client-0.2.1/META.json 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/META.json 2019-05-23 13:20:25.000000000 +0200
@@ -59,7 +59,7 @@
"provides" : {
"Mojo::RabbitMQ::Client" : {
"file" : "lib/Mojo/RabbitMQ/Client.pm",
- "version" : "v0.2.1"
+ "version" : "v0.2.2"
},
"Mojo::RabbitMQ::Client::Channel" : {
"file" : "lib/Mojo/RabbitMQ/Client/Channel.pm"
@@ -91,12 +91,13 @@
"web" : "https://github.com/inway/mojo-rabbitmq-client"
}
},
- "version" : "0.2.1",
+ "version" : "0.2.2",
"x_contributors" : [
"Christopher Rasch-Olsen Raa <christopher(a)stix.no>",
"Mohammad S Anwar <Mohammad.Anwar(a)yahoo.com>",
"Patrick Goldmann <patrick.goldmann(a)googlemail.com>",
"Richard Lippmann <lippmann(a)findus-internet-opac.de>",
+ "Salve J. Nilsen <sjn(a)cpan.org>",
"Sebastian Podjasek <sebastian(a)podjasek.pl>",
"Sebastian Riedel <kraihx(a)gmail.com>",
"Stephan Kulow <coolo(a)suse.de>",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/META.yml new/Mojo-RabbitMQ-Client-0.2.2/META.yml
--- old/Mojo-RabbitMQ-Client-0.2.1/META.yml 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/META.yml 2019-05-23 13:20:25.000000000 +0200
@@ -27,7 +27,7 @@
provides:
Mojo::RabbitMQ::Client:
file: lib/Mojo/RabbitMQ/Client.pm
- version: v0.2.1
+ version: v0.2.2
Mojo::RabbitMQ::Client::Channel:
file: lib/Mojo/RabbitMQ/Client/Channel.pm
Mojo::RabbitMQ::Client::Consumer:
@@ -50,12 +50,13 @@
bugtracker: https://github.com/inway/mojo-rabbitmq-client/issues
homepage: https://github.com/inway/mojo-rabbitmq-client
repository: git://github.com/inway/mojo-rabbitmq-client.git
-version: 0.2.1
+version: 0.2.2
x_contributors:
- 'Christopher Rasch-Olsen Raa <christopher(a)stix.no>'
- 'Mohammad S Anwar <Mohammad.Anwar(a)yahoo.com>'
- 'Patrick Goldmann <patrick.goldmann(a)googlemail.com>'
- 'Richard Lippmann <lippmann(a)findus-internet-opac.de>'
+ - 'Salve J. Nilsen <sjn(a)cpan.org>'
- 'Sebastian Podjasek <sebastian(a)podjasek.pl>'
- 'Sebastian Riedel <kraihx(a)gmail.com>'
- 'Stephan Kulow <coolo(a)suse.de>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/README.md new/Mojo-RabbitMQ-Client-0.2.2/README.md
--- old/Mojo-RabbitMQ-Client-0.2.1/README.md 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/README.md 2019-05-23 13:20:25.000000000 +0200
@@ -192,15 +192,6 @@
Sets user password for authorization, by default it's not defined.
-## pass
-
-```perl
-my $pass = $client->pass;
-$client = $client->pass('secret')
-```
-
-Sets user password for authorization, by default it's not defined.
-
## host
```perl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/inc/Module/AutoInstall.pm new/Mojo-RabbitMQ-Client-0.2.2/inc/Module/AutoInstall.pm
--- old/Mojo-RabbitMQ-Client-0.2.1/inc/Module/AutoInstall.pm 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/inc/Module/AutoInstall.pm 2019-05-23 13:20:25.000000000 +0200
@@ -8,7 +8,7 @@
use vars qw{$VERSION};
BEGIN {
- $VERSION = '0.2.1';
+ $VERSION = '0.2.2';
}
# special map on pre-defined feature sets
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client/Channel.pm new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client/Channel.pm
--- old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client/Channel.pm 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client/Channel.pm 2019-05-23 13:20:25.000000000 +0200
@@ -1,10 +1,11 @@
package Mojo::RabbitMQ::Client::Channel;
use Mojo::Base 'Mojo::EventEmitter';
-use Mojo::Promise;
+use Mojo::Promise;
use Mojo::RabbitMQ::Client::LocalQueue;
use Mojo::RabbitMQ::Client::Method;
use Mojo::RabbitMQ::Client::Method::Publish;
+use Scalar::Util qw(isweak weaken);
use constant DEBUG => $ENV{MOJO_RABBITMQ_DEBUG} // 0;
@@ -125,6 +126,7 @@
for my $consumer_tag (keys %{$self->consumer_cbs}) {
my $method = $self->cancel(consumer_tag => $consumer_tag);
+ weaken $self unless isweak $self;
$method->on(
success => sub {
$self->_close();
@@ -178,8 +180,14 @@
sub _prepare_method {
my $self = shift;
- return Mojo::RabbitMQ::Client::Method->new(client => $self->client, channel => $self)
- ->setup(@_);
+ my $method = Mojo::RabbitMQ::Client::Method->new(
+ client => $self->client,
+ channel => $self
+ );
+ weaken $method->{channel};
+ weaken $method->{client};
+
+ return $method->setup(@_);
}
sub declare_exchange {
@@ -207,6 +215,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->declare_exchange(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -235,6 +244,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->delete_exchange(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -268,6 +278,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->declare_queue(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -321,6 +332,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->unbind_queue(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -348,6 +360,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->purge_queue(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -377,6 +390,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->delete_queue(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -400,7 +414,11 @@
my $method = Mojo::RabbitMQ::Client::Method::Publish->new(
client => $self->client,
channel => $self
- )->setup(@_);
+ );
+ weaken $method->{client};
+ weaken $method->{channel};
+ $method->setup(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -425,6 +443,7 @@
warn "-- Basic::ConsumeOk\n" if DEBUG;
}
);
+ weaken $self;
$method->on(
success => sub {
my $this = shift;
@@ -451,6 +470,7 @@
warn "-- Basic::CancelOk\n" if DEBUG;
}
);
+ weaken $self;
$method->on(
success => sub {
my $this = shift;
@@ -473,6 +493,7 @@
},
[qw(Basic::GetOk Basic::GetEmpty)]
);
+ weaken $self;
$method->on(
success => sub {
warn "-- Basic::GetOk|GetEmpty\n" if DEBUG;
@@ -501,6 +522,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->get(@_);
+ weaken $self;
$method->on('message' => sub { shift; $promise->resolve($self, @_) });
$method->on('empty' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
@@ -539,6 +561,7 @@
my $promise = Mojo::Promise->new;
my $method = $self->ack(@_);
+ weaken $self;
$method->on('success' => sub { shift; $promise->resolve($self, @_) });
$method->on('error' => sub { shift; $promise->reject($self, @_) });
$method->deliver;
@@ -693,7 +716,7 @@
...
});
-Emitted when channel gets closed, C<<$frame>> contains close reason.
+Emitted when channel gets closed, C<$frame> contains close reason.
=head1 ATTRIBUTES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client/Consumer.pm new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client/Consumer.pm
--- old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client/Consumer.pm 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client/Consumer.pm 2019-05-23 13:20:25.000000000 +0200
@@ -1,6 +1,8 @@
package Mojo::RabbitMQ::Client::Consumer;
use Mojo::Base 'Mojo::EventEmitter';
+
use Mojo::Promise;
+use Scalar::Util 'weaken';
require Mojo::RabbitMQ::Client;
use constant DEBUG => $ENV{MOJO_RABBITMQ_DEBUG} // 0;
@@ -17,6 +19,7 @@
my $promise = Mojo::Promise->new()->resolve();
+ weaken $self;
unless ($self->client) {
$promise = $promise->then(
sub {
@@ -26,13 +29,13 @@
$self->client($client);
# Catch all client related errors
- $self->client->catch(sub { $client_promise->reject(@_) });
+ $self->client->catch(sub { $client_promise->reject($_[1]) });
# When connection is in Open state, open new channel
$client->on(
open => sub {
warn "-- client open\n" if DEBUG;
- $client_promise->resolve(@_);
+ $client_promise->resolve;
}
);
$client->on('close' => sub { shift; $self->emit('close', @_) });
@@ -53,7 +56,7 @@
my $channel_promise = Mojo::Promise->new;
my $channel = Mojo::RabbitMQ::Client::Channel->new();
- $channel->catch(sub { $channel_promise->reject(@_) });
+ $channel->catch(sub { $channel_promise->reject($_[1]) });
$channel->on(close => sub { warn 'Channel closed: ' . $_[1]->method_frame->reply_text; });
$channel->on(
@@ -63,7 +66,7 @@
$self->channel($channel);
$channel->qos(%{$self->defaults->{qos}})->deliver;
- $channel_promise->resolve();
+ $channel_promise->resolve;
}
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client/Publisher.pm new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client/Publisher.pm
--- old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client/Publisher.pm 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client/Publisher.pm 2019-05-23 13:20:25.000000000 +0200
@@ -1,7 +1,9 @@
package Mojo::RabbitMQ::Client::Publisher;
use Mojo::Base -base;
+
use Mojo::Promise;
use Mojo::JSON qw(encode_json);
+use Scalar::Util 'weaken';
require Mojo::RabbitMQ::Client;
use constant DEBUG => $ENV{MOJO_RABBITMQ_DEBUG} // 0;
@@ -25,8 +27,9 @@
%args = (@_);
}
- my $promise = Mojo::Promise->new()->resolve();
+ my $promise = Mojo::Promise->new()->resolve;
+ weaken $self;
unless ($self->client) {
$promise = $promise->then(
sub {
@@ -37,13 +40,13 @@
$self->client($client);
# Catch all client related errors
- $self->client->catch(sub { $client_promise->reject(@_) });
+ $self->client->catch(sub { $client_promise->reject($_[1]) });
# When connection is in Open state, open new channel
$self->client->on(
open => sub {
warn "-- client open\n" if DEBUG;
- $client_promise->resolve(@_);
+ $client_promise->resolve;
}
);
@@ -64,7 +67,7 @@
my $channel = Mojo::RabbitMQ::Client::Channel->new();
- $channel->catch(sub { $channel_promise->reject(@_) });
+ $channel->catch(sub { $channel_promise->reject($_[1]) });
$channel->on(
open => sub {
@@ -73,7 +76,7 @@
warn "-- channel opened\n" if DEBUG;
- $channel_promise->resolve();
+ $channel_promise->resolve;
}
);
$channel->on(close => sub { warn 'Channel closed: ' . $_[1]->method_frame->reply_text; });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client.pm new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client.pm
--- old/Mojo-RabbitMQ-Client-0.2.1/lib/Mojo/RabbitMQ/Client.pm 2018-07-29 16:17:46.000000000 +0200
+++ new/Mojo-RabbitMQ-Client-0.2.2/lib/Mojo/RabbitMQ/Client.pm 2019-05-23 13:20:25.000000000 +0200
@@ -1,5 +1,6 @@
package Mojo::RabbitMQ::Client;
use Mojo::Base 'Mojo::EventEmitter';
+
use Carp qw(croak confess);
use Mojo::URL;
use Mojo::Home;
@@ -8,7 +9,7 @@
use Mojo::Promise;
use Mojo::Util qw(url_unescape dumper);
use List::Util qw(none);
-use Scalar::Util qw(blessed);
+use Scalar::Util qw(blessed weaken);
use File::Basename 'dirname';
use File::ShareDir qw(dist_file);
@@ -20,7 +21,7 @@
require Mojo::RabbitMQ::Client::Consumer;
require Mojo::RabbitMQ::Client::Publisher;
-our $VERSION = "0.2.1";
+our $VERSION = "0.2.2";
use constant DEBUG => $ENV{MOJO_RABBITMQ_DEBUG} // 0;
@@ -125,6 +126,7 @@
}
$self->channels->{$id} = $channel->id($id)->client($self);
+ weaken $channel->{client};
return $channel;
}
@@ -135,9 +137,9 @@
my $promise = Mojo::Promise->new;
my $channel = Mojo::RabbitMQ::Client::Channel->new();
- $channel->catch(sub { $promise->reject(@_) });
+ $channel->catch(sub { $promise->reject(@_); undef $promise });
$channel->on(close => sub { warn "Channel closed" });
- $channel->on(open => sub { $promise->resolve(@_) });
+ $channel->on(open => sub { $promise->resolve(@_); undef $promise });
$self->open_channel($channel);
@@ -746,13 +748,6 @@
=head2 pass
- my $pass = $client->pass;
- $client = $client->pass('secret')
-
-Sets user password for authorization, by default it's not defined.
-
-=head2 pass
-
my $pass = $client->pass;
$client = $client->pass('secret')
1
0
Hello community,
here is the log from the commit of package python-pytest4 for openSUSE:Factory checked in at 2019-05-24 11:32:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest4 (Old)
and /work/SRC/openSUSE:Factory/.python-pytest4.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest4"
Fri May 24 11:32:28 2019 rev:3 rq:704982 version:4.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest4/python-pytest4.changes 2019-05-06 21:17:13.613068918 +0200
+++ /work/SRC/openSUSE:Factory/.python-pytest4.new.5148/python-pytest4.changes 2019-05-24 11:32:29.613387231 +0200
@@ -1,0 +2,47 @@
+Thu May 23 10:06:51 UTC 2019 - Ondřej Súkup <mimi.vx(a)gmail.com>
+
+- update to 4.5.0
+- drop 4dbb56146a1fe0bf70df801582f0abde4ef4e64c.patch - upstream merged
+ * A warning is now emitted when unknown marks are used as a decorator
+ * Show XFail reason as part of JUnitXML message field
+ * Messages from crash reports are displayed within test summaries now
+ * New flag --strict-markers that triggers an error when unknown markers
+ * Assertion failure messages for sequences and dicts contain the number
+ of different items now.
+ * Improve reporting with --lf and --ff
+ * The --cache-show option/action accepts an optional glob to show only
+ matching cache entries.
+ * Standard input (stdin) can be given to pytester’s Testdir.run() and Testdir.popen().
+ * he -r option learnt about A to display all reports (including passed ones)
+ in the short test summary.
+ * The short test summary is displayed after passes with output (-rP).
+ * The --last-failed (--lf) option got smarter and will now skip entire files
+ if all tests of that test file have passed in previous runs, greatly speeding up collection.
+ * Introduce new specific warning PytestWarning subclasses to make it easier
+ to filter warnings based on the class, rather than on the message
+ * New record_testsuite_property session-scoped fixture allows users to log
+ <property> tags at the testsuite level with the junitxml plugin.
+ * --fixtures now also shows fixture scope for scopes other than "function".
+ * Deselected items from plugins using pytest_collect_modifyitems as a hookwrapper
+ are correctly reported now.
+ * With usage errors exitstatus is set to EXIT_USAGEERROR in the pytest_sessionfinish
+ hook now as expected.
+ * outcome.exit is not used with EOF in the pdb wrapper anymore, but only with quit.
+ * logging.raiseExceptions is not set to False anymore.
+ * pytest now depends on wcwidth to properly track unicode character sizes for more
+ precise terminal output.
+ * pytester’s Testdir.popen() uses stdout and stderr via keyword arguments with
+ defaults now (subprocess.PIPE).
+ * The code for the short test summary in the terminal was moved to the terminal plugin.
+ * Improved validation of kwargs for various methods in the pytester plugin.
+ * record_property now emits a PytestWarning when used with junit_family=xunit2:
+ the fixture generates property tags as children of testcase, which is not permitted
+ according to the most recent schema.
+ * Fix crash caused by error in __repr__ function with both showlocals
+ and verbose output enabled.
+ * Eliminate core dependency on ‘terminal’ plugin.
+ * Doc: pytest_ignore_collect, pytest_collect_directory, pytest_collect_file
+ and pytest_pycollect_makemodule hooks’s ‘path’ parameter documented type is now py.path.local
+ * Improve help for --runxfail flag.
+
+-------------------------------------------------------------------
Old:
----
4dbb56146a1fe0bf70df801582f0abde4ef4e64c.patch
pytest-4.4.1.tar.gz
New:
----
pytest-4.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest4.spec ++++++
--- /var/tmp/diff_new_pack.SfTLgk/_old 2019-05-24 11:32:30.437386916 +0200
+++ /var/tmp/diff_new_pack.SfTLgk/_new 2019-05-24 11:32:30.437386916 +0200
@@ -26,14 +26,13 @@
%bcond_with test
%endif
Name: python-pytest4%{psuffix}
-Version: 4.4.1
+Version: 4.5.0
Release: 0
Summary: Python testing tool with autodiscovery and detailed asserts
License: MIT
Group: Development/Languages/Python
URL: https://github.com/pytest-dev/pytest
Source: https://files.pythonhosted.org/packages/source/p/pytest/pytest-%{version}.t…
-Patch0: 4dbb56146a1fe0bf70df801582f0abde4ef4e64c.patch
BuildRequires: %{python_module setuptools >= 40.0}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: fdupes
@@ -41,10 +40,11 @@
Requires: python-atomicwrites >= 1.0
Requires: python-attrs >= 17.4.0
Requires: python-more-itertools >= 4.0.0
-Requires: python-pluggy >= 0.7
+Requires: python-pluggy >= 0.11
Requires: python-py >= 1.5.0
Requires: python-setuptools
Requires: python-six >= 1.10.0
+Requires: python-wcwidth
Requires(post): update-alternatives
Requires(postun): update-alternatives
Conflicts: python-pytest < 4.0
@@ -82,7 +82,6 @@
%prep
%setup -q -n pytest-%{version}
-%patch0 -p1
%build
%python_build
++++++ pytest-4.4.1.tar.gz -> pytest-4.5.0.tar.gz ++++++
++++ 7121 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-QtPy for openSUSE:Factory checked in at 2019-05-24 11:32:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-QtPy (Old)
and /work/SRC/openSUSE:Factory/.python-QtPy.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-QtPy"
Fri May 24 11:32:25 2019 rev:9 rq:704981 version:1.7.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-QtPy/python-QtPy.changes 2019-03-20 13:20:47.989321869 +0100
+++ /work/SRC/openSUSE:Factory/.python-QtPy.new.5148/python-QtPy.changes 2019-05-24 11:32:27.101388191 +0200
@@ -1,0 +2,8 @@
+Thu May 23 10:34:57 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 1.7.1
+ * Skip testing PyQt4 and PySide in Python 3.5
+ * Trivial maintenance tweaks
+ * Avoid deprecated "from collections import MutableMapping"
+
+-------------------------------------------------------------------
Old:
----
QtPy-1.7.0.tar.gz
New:
----
QtPy-1.7.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-QtPy.spec ++++++
--- /var/tmp/diff_new_pack.9XuiNc/_old 2019-05-24 11:32:27.713387956 +0200
+++ /var/tmp/diff_new_pack.9XuiNc/_new 2019-05-24 11:32:27.713387956 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-QtPy
-Version: 1.7.0
+Version: 1.7.1
Release: 0
Summary: Abstraction layer on top of Qt bindings
License: MIT
++++++ QtPy-1.7.0.tar.gz -> QtPy-1.7.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.7.0/CHANGELOG.md new/QtPy-1.7.1/CHANGELOG.md
--- old/QtPy-1.7.0/CHANGELOG.md 2019-03-16 11:43:01.000000000 +0100
+++ new/QtPy-1.7.1/CHANGELOG.md 2019-05-05 09:51:49.000000000 +0200
@@ -1,5 +1,20 @@
# History of changes
+## Version 1.7.1 (2019-05-05)
+
+
+### Pull Requests Merged
+
+* [PR 189](https://github.com/spyder-ide/qtpy/pull/189) - PR: Skip testing PyQt4 and PySide in Python 3.5
+* [PR 188](https://github.com/spyder-ide/qtpy/pull/188) - PR: Trivial maintenance tweaks
+* [PR 187](https://github.com/spyder-ide/qtpy/pull/187) - PR: Avoid deprecated "from collections import MutableMapping"
+
+In this release 3 pull requests were closed.
+
+
+----
+
+
## Version 1.7.0 (2019-03-16)
### New features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.7.0/PKG-INFO new/QtPy-1.7.1/PKG-INFO
--- old/QtPy-1.7.0/PKG-INFO 2019-03-16 11:45:49.000000000 +0100
+++ new/QtPy-1.7.1/PKG-INFO 2019-05-05 09:54:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: QtPy
-Version: 1.7.0
+Version: 1.7.1
Summary: Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets.
Home-page: https://github.com/spyder-ide/qtpy
Author: Colin Duquesnoy, The Spyder Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.7.0/QtPy.egg-info/PKG-INFO new/QtPy-1.7.1/QtPy.egg-info/PKG-INFO
--- old/QtPy-1.7.0/QtPy.egg-info/PKG-INFO 2019-03-16 11:45:48.000000000 +0100
+++ new/QtPy-1.7.1/QtPy.egg-info/PKG-INFO 2019-05-05 09:54:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: QtPy
-Version: 1.7.0
+Version: 1.7.1
Summary: Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets.
Home-page: https://github.com/spyder-ide/qtpy
Author: Colin Duquesnoy, The Spyder Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.7.0/qtpy/_version.py new/QtPy-1.7.1/qtpy/_version.py
--- old/QtPy-1.7.0/qtpy/_version.py 2019-03-16 11:44:31.000000000 +0100
+++ new/QtPy-1.7.1/qtpy/_version.py 2019-05-05 09:53:12.000000000 +0200
@@ -1,2 +1,2 @@
-version_info = (1, 7, 0)
+version_info = (1, 7, 1)
__version__ = '.'.join(map(str, version_info))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.7.0/qtpy/compat.py new/QtPy-1.7.1/qtpy/compat.py
--- old/QtPy-1.7.0/qtpy/compat.py 2017-01-02 21:13:51.000000000 +0100
+++ new/QtPy-1.7.1/qtpy/compat.py 2019-05-05 09:50:01.000000000 +0200
@@ -1,196 +1,196 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2009- The Spyder Development Team
-# Licensed under the terms of the MIT License
-
-"""
-Compatibility functions
-"""
-
-from __future__ import print_function
-import sys
-import collections
-
-from . import PYQT4
-from .QtWidgets import QFileDialog
-from .py3compat import is_text_string, to_text_string, TEXT_TYPES
-
-
-# =============================================================================
-# QVariant conversion utilities
-# =============================================================================
-PYQT_API_1 = False
-if PYQT4:
- import sip
- try:
- PYQT_API_1 = sip.getapi('QVariant') == 1 # PyQt API #1
- except AttributeError:
- # PyQt <v4.6
- PYQT_API_1 = True
-
- def to_qvariant(pyobj=None):
- """Convert Python object to QVariant
- This is a transitional function from PyQt API #1 (QVariant exist)
- to PyQt API #2 and Pyside (QVariant does not exist)"""
- if PYQT_API_1:
- # PyQt API #1
- from PyQt4.QtCore import QVariant
- return QVariant(pyobj)
- else:
- # PyQt API #2
- return pyobj
-
- def from_qvariant(qobj=None, convfunc=None):
- """Convert QVariant object to Python object
- This is a transitional function from PyQt API #1 (QVariant exist)
- to PyQt API #2 and Pyside (QVariant does not exist)"""
- if PYQT_API_1:
- # PyQt API #1
- assert isinstance(convfunc, collections.Callable)
- if convfunc in TEXT_TYPES or convfunc is to_text_string:
- return convfunc(qobj.toString())
- elif convfunc is bool:
- return qobj.toBool()
- elif convfunc is int:
- return qobj.toInt()[0]
- elif convfunc is float:
- return qobj.toDouble()[0]
- else:
- return convfunc(qobj)
- else:
- # PyQt API #2
- return qobj
-else:
- def to_qvariant(obj=None): # analysis:ignore
- """Convert Python object to QVariant
- This is a transitional function from PyQt API#1 (QVariant exist)
- to PyQt API#2 and Pyside (QVariant does not exist)"""
- return obj
-
- def from_qvariant(qobj=None, pytype=None): # analysis:ignore
- """Convert QVariant object to Python object
- This is a transitional function from PyQt API #1 (QVariant exist)
- to PyQt API #2 and Pyside (QVariant does not exist)"""
- return qobj
-
-
-# =============================================================================
-# Wrappers around QFileDialog static methods
-# =============================================================================
-def getexistingdirectory(parent=None, caption='', basedir='',
- options=QFileDialog.ShowDirsOnly):
- """Wrapper around QtGui.QFileDialog.getExistingDirectory static method
- Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
- # Calling QFileDialog static method
- if sys.platform == "win32":
- # On Windows platforms: redirect standard outputs
- _temp1, _temp2 = sys.stdout, sys.stderr
- sys.stdout, sys.stderr = None, None
- try:
- result = QFileDialog.getExistingDirectory(parent, caption, basedir,
- options)
- finally:
- if sys.platform == "win32":
- # On Windows platforms: restore standard outputs
- sys.stdout, sys.stderr = _temp1, _temp2
- if not is_text_string(result):
- # PyQt API #1
- result = to_text_string(result)
- return result
-
-
-def _qfiledialog_wrapper(attr, parent=None, caption='', basedir='',
- filters='', selectedfilter='', options=None):
- if options is None:
- options = QFileDialog.Options(0)
- try:
- # PyQt <v4.6 (API #1)
- from .QtCore import QString
- except ImportError:
- # PySide or PyQt >=v4.6
- QString = None # analysis:ignore
- tuple_returned = True
- try:
- # PyQt >=v4.6
- func = getattr(QFileDialog, attr+'AndFilter')
- except AttributeError:
- # PySide or PyQt <v4.6
- func = getattr(QFileDialog, attr)
- if QString is not None:
- selectedfilter = QString()
- tuple_returned = False
-
- # Calling QFileDialog static method
- if sys.platform == "win32":
- # On Windows platforms: redirect standard outputs
- _temp1, _temp2 = sys.stdout, sys.stderr
- sys.stdout, sys.stderr = None, None
- try:
- result = func(parent, caption, basedir,
- filters, selectedfilter, options)
- except TypeError:
- # The selectedfilter option (`initialFilter` in Qt) has only been
- # introduced in Jan. 2010 for PyQt v4.7, that's why we handle here
- # the TypeError exception which will be raised with PyQt v4.6
- # (see Issue 960 for more details)
- result = func(parent, caption, basedir, filters, options)
- finally:
- if sys.platform == "win32":
- # On Windows platforms: restore standard outputs
- sys.stdout, sys.stderr = _temp1, _temp2
-
- # Processing output
- if tuple_returned:
- # PySide or PyQt >=v4.6
- output, selectedfilter = result
- else:
- # PyQt <v4.6 (API #1)
- output = result
- if QString is not None:
- # PyQt API #1: conversions needed from QString/QStringList
- selectedfilter = to_text_string(selectedfilter)
- if isinstance(output, QString):
- # Single filename
- output = to_text_string(output)
- else:
- # List of filenames
- output = [to_text_string(fname) for fname in output]
-
- # Always returns the tuple (output, selectedfilter)
- return output, selectedfilter
-
-
-def getopenfilename(parent=None, caption='', basedir='', filters='',
- selectedfilter='', options=None):
- """Wrapper around QtGui.QFileDialog.getOpenFileName static method
- Returns a tuple (filename, selectedfilter) -- when dialog box is canceled,
- returns a tuple of empty strings
- Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
- return _qfiledialog_wrapper('getOpenFileName', parent=parent,
- caption=caption, basedir=basedir,
- filters=filters, selectedfilter=selectedfilter,
- options=options)
-
-
-def getopenfilenames(parent=None, caption='', basedir='', filters='',
- selectedfilter='', options=None):
- """Wrapper around QtGui.QFileDialog.getOpenFileNames static method
- Returns a tuple (filenames, selectedfilter) -- when dialog box is canceled,
- returns a tuple (empty list, empty string)
- Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
- return _qfiledialog_wrapper('getOpenFileNames', parent=parent,
- caption=caption, basedir=basedir,
- filters=filters, selectedfilter=selectedfilter,
- options=options)
-
-
-def getsavefilename(parent=None, caption='', basedir='', filters='',
- selectedfilter='', options=None):
- """Wrapper around QtGui.QFileDialog.getSaveFileName static method
- Returns a tuple (filename, selectedfilter) -- when dialog box is canceled,
- returns a tuple of empty strings
- Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
- return _qfiledialog_wrapper('getSaveFileName', parent=parent,
- caption=caption, basedir=basedir,
- filters=filters, selectedfilter=selectedfilter,
- options=options)
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2009- The Spyder Development Team
+# Licensed under the terms of the MIT License
+
+"""
+Compatibility functions
+"""
+
+from __future__ import print_function
+import sys
+import collections
+
+from . import PYQT4
+from .QtWidgets import QFileDialog
+from .py3compat import is_text_string, to_text_string, TEXT_TYPES
+
+
+# =============================================================================
+# QVariant conversion utilities
+# =============================================================================
+PYQT_API_1 = False
+if PYQT4:
+ import sip
+ try:
+ PYQT_API_1 = sip.getapi('QVariant') == 1 # PyQt API #1
+ except AttributeError:
+ # PyQt <v4.6
+ PYQT_API_1 = True
+
+ def to_qvariant(pyobj=None):
+ """Convert Python object to QVariant
+ This is a transitional function from PyQt API #1 (QVariant exist)
+ to PyQt API #2 and Pyside (QVariant does not exist)"""
+ if PYQT_API_1:
+ # PyQt API #1
+ from PyQt4.QtCore import QVariant
+ return QVariant(pyobj)
+ else:
+ # PyQt API #2
+ return pyobj
+
+ def from_qvariant(qobj=None, convfunc=None):
+ """Convert QVariant object to Python object
+ This is a transitional function from PyQt API #1 (QVariant exist)
+ to PyQt API #2 and Pyside (QVariant does not exist)"""
+ if PYQT_API_1:
+ # PyQt API #1
+ assert isinstance(convfunc, collections.Callable)
+ if convfunc in TEXT_TYPES or convfunc is to_text_string:
+ return convfunc(qobj.toString())
+ elif convfunc is bool:
+ return qobj.toBool()
+ elif convfunc is int:
+ return qobj.toInt()[0]
+ elif convfunc is float:
+ return qobj.toDouble()[0]
+ else:
+ return convfunc(qobj)
+ else:
+ # PyQt API #2
+ return qobj
+else:
+ def to_qvariant(obj=None): # analysis:ignore
+ """Convert Python object to QVariant
+ This is a transitional function from PyQt API#1 (QVariant exist)
+ to PyQt API#2 and Pyside (QVariant does not exist)"""
+ return obj
+
+ def from_qvariant(qobj=None, pytype=None): # analysis:ignore
+ """Convert QVariant object to Python object
+ This is a transitional function from PyQt API #1 (QVariant exist)
+ to PyQt API #2 and Pyside (QVariant does not exist)"""
+ return qobj
+
+
+# =============================================================================
+# Wrappers around QFileDialog static methods
+# =============================================================================
+def getexistingdirectory(parent=None, caption='', basedir='',
+ options=QFileDialog.ShowDirsOnly):
+ """Wrapper around QtGui.QFileDialog.getExistingDirectory static method
+ Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
+ # Calling QFileDialog static method
+ if sys.platform == "win32":
+ # On Windows platforms: redirect standard outputs
+ _temp1, _temp2 = sys.stdout, sys.stderr
+ sys.stdout, sys.stderr = None, None
+ try:
+ result = QFileDialog.getExistingDirectory(parent, caption, basedir,
+ options)
+ finally:
+ if sys.platform == "win32":
+ # On Windows platforms: restore standard outputs
+ sys.stdout, sys.stderr = _temp1, _temp2
+ if not is_text_string(result):
+ # PyQt API #1
+ result = to_text_string(result)
+ return result
+
+
+def _qfiledialog_wrapper(attr, parent=None, caption='', basedir='',
+ filters='', selectedfilter='', options=None):
+ if options is None:
+ options = QFileDialog.Options(0)
+ try:
+ # PyQt <v4.6 (API #1)
+ from .QtCore import QString
+ except ImportError:
+ # PySide or PyQt >=v4.6
+ QString = None # analysis:ignore
+ tuple_returned = True
+ try:
+ # PyQt >=v4.6
+ func = getattr(QFileDialog, attr+'AndFilter')
+ except AttributeError:
+ # PySide or PyQt <v4.6
+ func = getattr(QFileDialog, attr)
+ if QString is not None:
+ selectedfilter = QString()
+ tuple_returned = False
+
+ # Calling QFileDialog static method
+ if sys.platform == "win32":
+ # On Windows platforms: redirect standard outputs
+ _temp1, _temp2 = sys.stdout, sys.stderr
+ sys.stdout, sys.stderr = None, None
+ try:
+ result = func(parent, caption, basedir,
+ filters, selectedfilter, options)
+ except TypeError:
+ # The selectedfilter option (`initialFilter` in Qt) has only been
+ # introduced in Jan. 2010 for PyQt v4.7, that's why we handle here
+ # the TypeError exception which will be raised with PyQt v4.6
+ # (see Issue 960 for more details)
+ result = func(parent, caption, basedir, filters, options)
+ finally:
+ if sys.platform == "win32":
+ # On Windows platforms: restore standard outputs
+ sys.stdout, sys.stderr = _temp1, _temp2
+
+ # Processing output
+ if tuple_returned:
+ # PySide or PyQt >=v4.6
+ output, selectedfilter = result
+ else:
+ # PyQt <v4.6 (API #1)
+ output = result
+ if QString is not None:
+ # PyQt API #1: conversions needed from QString/QStringList
+ selectedfilter = to_text_string(selectedfilter)
+ if isinstance(output, QString):
+ # Single filename
+ output = to_text_string(output)
+ else:
+ # List of filenames
+ output = [to_text_string(fname) for fname in output]
+
+ # Always returns the tuple (output, selectedfilter)
+ return output, selectedfilter
+
+
+def getopenfilename(parent=None, caption='', basedir='', filters='',
+ selectedfilter='', options=None):
+ """Wrapper around QtGui.QFileDialog.getOpenFileName static method
+ Returns a tuple (filename, selectedfilter) -- when dialog box is canceled,
+ returns a tuple of empty strings
+ Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
+ return _qfiledialog_wrapper('getOpenFileName', parent=parent,
+ caption=caption, basedir=basedir,
+ filters=filters, selectedfilter=selectedfilter,
+ options=options)
+
+
+def getopenfilenames(parent=None, caption='', basedir='', filters='',
+ selectedfilter='', options=None):
+ """Wrapper around QtGui.QFileDialog.getOpenFileNames static method
+ Returns a tuple (filenames, selectedfilter) -- when dialog box is canceled,
+ returns a tuple (empty list, empty string)
+ Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
+ return _qfiledialog_wrapper('getOpenFileNames', parent=parent,
+ caption=caption, basedir=basedir,
+ filters=filters, selectedfilter=selectedfilter,
+ options=options)
+
+
+def getsavefilename(parent=None, caption='', basedir='', filters='',
+ selectedfilter='', options=None):
+ """Wrapper around QtGui.QFileDialog.getSaveFileName static method
+ Returns a tuple (filename, selectedfilter) -- when dialog box is canceled,
+ returns a tuple of empty strings
+ Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
+ return _qfiledialog_wrapper('getSaveFileName', parent=parent,
+ caption=caption, basedir=basedir,
+ filters=filters, selectedfilter=selectedfilter,
+ options=options)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.7.0/qtpy/py3compat.py new/QtPy-1.7.1/qtpy/py3compat.py
--- old/QtPy-1.7.0/qtpy/py3compat.py 2016-01-14 20:29:48.000000000 +0100
+++ new/QtPy-1.7.1/qtpy/py3compat.py 2019-05-05 09:50:01.000000000 +0200
@@ -1,261 +1,261 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2012-2013 Pierre Raybaut
-# Licensed under the terms of the MIT License
-# (see spyderlib/__init__.py for details)
-
-"""
-spyderlib.py3compat
--------------------
-
-Transitional module providing compatibility functions intended to help
-migrating from Python 2 to Python 3.
-
-This module should be fully compatible with:
- * Python >=v2.6
- * Python 3
-"""
-
-from __future__ import print_function
-
-import sys
-import os
-
-PY2 = sys.version[0] == '2'
-PY3 = sys.version[0] == '3'
-
-
-# =============================================================================
-# Data types
-# =============================================================================
-if PY2:
- # Python 2
- TEXT_TYPES = (str, unicode)
- INT_TYPES = (int, long)
-else:
- # Python 3
- TEXT_TYPES = (str,)
- INT_TYPES = (int,)
-NUMERIC_TYPES = tuple(list(INT_TYPES) + [float, complex])
-
-
-# =============================================================================
-# Renamed/Reorganized modules
-# =============================================================================
-if PY2:
- # Python 2
- import __builtin__ as builtins
- import ConfigParser as configparser
- try:
- import _winreg as winreg
- except ImportError:
- pass
- from sys import maxint as maxsize
- try:
- import CStringIO as io
- except ImportError:
- import StringIO as io
- try:
- import cPickle as pickle
- except ImportError:
- import pickle
- from UserDict import DictMixin as MutableMapping
- import thread as _thread
- import repr as reprlib
-else:
- # Python 3
- import builtins
- import configparser
- try:
- import winreg
- except ImportError:
- pass
- from sys import maxsize
- import io
- import pickle
- from collections import MutableMapping
- import _thread
- import reprlib
-
-
-# =============================================================================
-# Strings
-# =============================================================================
-if PY2:
- # Python 2
- import codecs
-
- def u(obj):
- """Make unicode object"""
- return codecs.unicode_escape_decode(obj)[0]
-else:
- # Python 3
- def u(obj):
- """Return string as it is"""
- return obj
-
-
-def is_text_string(obj):
- """Return True if `obj` is a text string, False if it is anything else,
- like binary data (Python 3) or QString (Python 2, PyQt API #1)"""
- if PY2:
- # Python 2
- return isinstance(obj, basestring)
- else:
- # Python 3
- return isinstance(obj, str)
-
-
-def is_binary_string(obj):
- """Return True if `obj` is a binary string, False if it is anything else"""
- if PY2:
- # Python 2
- return isinstance(obj, str)
- else:
- # Python 3
- return isinstance(obj, bytes)
-
-
-def is_string(obj):
- """Return True if `obj` is a text or binary Python string object,
- False if it is anything else, like a QString (Python 2, PyQt API #1)"""
- return is_text_string(obj) or is_binary_string(obj)
-
-
-def is_unicode(obj):
- """Return True if `obj` is unicode"""
- if PY2:
- # Python 2
- return isinstance(obj, unicode)
- else:
- # Python 3
- return isinstance(obj, str)
-
-
-def to_text_string(obj, encoding=None):
- """Convert `obj` to (unicode) text string"""
- if PY2:
- # Python 2
- if encoding is None:
- return unicode(obj)
- else:
- return unicode(obj, encoding)
- else:
- # Python 3
- if encoding is None:
- return str(obj)
- elif isinstance(obj, str):
- # In case this function is not used properly, this could happen
- return obj
- else:
- return str(obj, encoding)
-
-
-def to_binary_string(obj, encoding=None):
- """Convert `obj` to binary string (bytes in Python 3, str in Python 2)"""
- if PY2:
- # Python 2
- if encoding is None:
- return str(obj)
- else:
- return obj.encode(encoding)
- else:
- # Python 3
- return bytes(obj, 'utf-8' if encoding is None else encoding)
-
-
-# =============================================================================
-# Function attributes
-# =============================================================================
-def get_func_code(func):
- """Return function code object"""
- if PY2:
- # Python 2
- return func.func_code
- else:
- # Python 3
- return func.__code__
-
-
-def get_func_name(func):
- """Return function name"""
- if PY2:
- # Python 2
- return func.func_name
- else:
- # Python 3
- return func.__name__
-
-
-def get_func_defaults(func):
- """Return function default argument values"""
- if PY2:
- # Python 2
- return func.func_defaults
- else:
- # Python 3
- return func.__defaults__
-
-
-# =============================================================================
-# Special method attributes
-# =============================================================================
-def get_meth_func(obj):
- """Return method function object"""
- if PY2:
- # Python 2
- return obj.im_func
- else:
- # Python 3
- return obj.__func__
-
-
-def get_meth_class_inst(obj):
- """Return method class instance"""
- if PY2:
- # Python 2
- return obj.im_self
- else:
- # Python 3
- return obj.__self__
-
-
-def get_meth_class(obj):
- """Return method class"""
- if PY2:
- # Python 2
- return obj.im_class
- else:
- # Python 3
- return obj.__self__.__class__
-
-
-# =============================================================================
-# Misc.
-# =============================================================================
-if PY2:
- # Python 2
- input = raw_input
- getcwd = os.getcwdu
- cmp = cmp
- import string
- str_lower = string.lower
- from itertools import izip_longest as zip_longest
-else:
- # Python 3
- input = input
- getcwd = os.getcwd
-
- def cmp(a, b):
- return (a > b) - (a < b)
- str_lower = str.lower
- from itertools import zip_longest
-
-
-def qbytearray_to_str(qba):
- """Convert QByteArray object to str in a way compatible with Python 2/3"""
- return str(bytes(qba.toHex().data()).decode())
-
-
-if __name__ == '__main__':
- pass
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2012-2013 Pierre Raybaut
+# Licensed under the terms of the MIT License
+# (see spyderlib/__init__.py for details)
+
+"""
+spyderlib.py3compat
+-------------------
+
+Transitional module providing compatibility functions intended to help
+migrating from Python 2 to Python 3.
+
+This module should be fully compatible with:
+ * Python >=v2.6
+ * Python 3
+"""
+
+from __future__ import print_function
+
+import sys
+import os
+
+PY2 = sys.version_info[0] == 2
+PY3 = sys.version_info[0] == 3
+PY33 = PY3 and sys.version_info[1] >= 3
+
+
+# =============================================================================
+# Data types
+# =============================================================================
+if PY2:
+ # Python 2
+ TEXT_TYPES = (str, unicode)
+ INT_TYPES = (int, long)
+else:
+ # Python 3
+ TEXT_TYPES = (str,)
+ INT_TYPES = (int,)
+NUMERIC_TYPES = tuple(list(INT_TYPES) + [float, complex])
+
+
+# =============================================================================
+# Renamed/Reorganized modules
+# =============================================================================
+if PY2:
+ # Python 2
+ import __builtin__ as builtins
+ import ConfigParser as configparser
+ try:
+ import _winreg as winreg
+ except ImportError:
+ pass
+ from sys import maxint as maxsize
+ try:
+ import CStringIO as io
+ except ImportError:
+ import StringIO as io
+ try:
+ import cPickle as pickle
+ except ImportError:
+ import pickle
+ from UserDict import DictMixin as MutableMapping
+ import thread as _thread
+ import repr as reprlib
+else:
+ # Python 3
+ import builtins
+ import configparser
+ try:
+ import winreg
+ except ImportError:
+ pass
+ from sys import maxsize
+ import io
+ import pickle
+ if PY33:
+ from collections.abc import MutableMapping
+ else:
+ from collections import MutableMapping
+ import _thread
+ import reprlib
+
+
+# =============================================================================
+# Strings
+# =============================================================================
+if PY2:
+ # Python 2
+ import codecs
+
+ def u(obj):
+ """Make unicode object"""
+ return codecs.unicode_escape_decode(obj)[0]
+else:
+ # Python 3
+ def u(obj):
+ """Return string as it is"""
+ return obj
+
+
+def is_text_string(obj):
+ """Return True if `obj` is a text string, False if it is anything else,
+ like binary data (Python 3) or QString (Python 2, PyQt API #1)"""
+ if PY2:
+ # Python 2
+ return isinstance(obj, basestring)
+ else:
+ # Python 3
+ return isinstance(obj, str)
+
+
+def is_binary_string(obj):
+ """Return True if `obj` is a binary string, False if it is anything else"""
+ if PY2:
+ # Python 2
+ return isinstance(obj, str)
+ else:
+ # Python 3
+ return isinstance(obj, bytes)
+
+
+def is_string(obj):
+ """Return True if `obj` is a text or binary Python string object,
+ False if it is anything else, like a QString (Python 2, PyQt API #1)"""
+ return is_text_string(obj) or is_binary_string(obj)
+
+
+def is_unicode(obj):
+ """Return True if `obj` is unicode"""
+ if PY2:
+ # Python 2
+ return isinstance(obj, unicode)
+ else:
+ # Python 3
+ return isinstance(obj, str)
+
+
+def to_text_string(obj, encoding=None):
+ """Convert `obj` to (unicode) text string"""
+ if PY2:
+ # Python 2
+ if encoding is None:
+ return unicode(obj)
+ else:
+ return unicode(obj, encoding)
+ else:
+ # Python 3
+ if encoding is None:
+ return str(obj)
+ elif isinstance(obj, str):
+ # In case this function is not used properly, this could happen
+ return obj
+ else:
+ return str(obj, encoding)
+
+
+def to_binary_string(obj, encoding=None):
+ """Convert `obj` to binary string (bytes in Python 3, str in Python 2)"""
+ if PY2:
+ # Python 2
+ if encoding is None:
+ return str(obj)
+ else:
+ return obj.encode(encoding)
+ else:
+ # Python 3
+ return bytes(obj, 'utf-8' if encoding is None else encoding)
+
+
+# =============================================================================
+# Function attributes
+# =============================================================================
+def get_func_code(func):
+ """Return function code object"""
+ if PY2:
+ # Python 2
+ return func.func_code
+ else:
+ # Python 3
+ return func.__code__
+
+
+def get_func_name(func):
+ """Return function name"""
+ if PY2:
+ # Python 2
+ return func.func_name
+ else:
+ # Python 3
+ return func.__name__
+
+
+def get_func_defaults(func):
+ """Return function default argument values"""
+ if PY2:
+ # Python 2
+ return func.func_defaults
+ else:
+ # Python 3
+ return func.__defaults__
+
+
+# =============================================================================
+# Special method attributes
+# =============================================================================
+def get_meth_func(obj):
+ """Return method function object"""
+ if PY2:
+ # Python 2
+ return obj.im_func
+ else:
+ # Python 3
+ return obj.__func__
+
+
+def get_meth_class_inst(obj):
+ """Return method class instance"""
+ if PY2:
+ # Python 2
+ return obj.im_self
+ else:
+ # Python 3
+ return obj.__self__
+
+
+def get_meth_class(obj):
+ """Return method class"""
+ if PY2:
+ # Python 2
+ return obj.im_class
+ else:
+ # Python 3
+ return obj.__self__.__class__
+
+
+# =============================================================================
+# Misc.
+# =============================================================================
+if PY2:
+ # Python 2
+ input = raw_input
+ getcwd = os.getcwdu
+ cmp = cmp
+ import string
+ str_lower = string.lower
+ from itertools import izip_longest as zip_longest
+else:
+ # Python 3
+ input = input
+ getcwd = os.getcwd
+
+ def cmp(a, b):
+ return (a > b) - (a < b)
+ str_lower = str.lower
+ from itertools import zip_longest
+
+
+def qbytearray_to_str(qba):
+ """Convert QByteArray object to str in a way compatible with Python 2/3"""
+ return str(bytes(qba.toHex().data()).decode())
1
0
Hello community,
here is the log from the commit of package borgbackup for openSUSE:Factory checked in at 2019-05-24 11:32:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/borgbackup (Old)
and /work/SRC/openSUSE:Factory/.borgbackup.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "borgbackup"
Fri May 24 11:32:22 2019 rev:22 rq:704976 version:1.1.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/borgbackup/borgbackup.changes 2019-03-10 09:40:45.796098827 +0100
+++ /work/SRC/openSUSE:Factory/.borgbackup.new.5148/borgbackup.changes 2019-05-24 11:32:23.813389446 +0200
@@ -1,0 +2,80 @@
+Thu May 23 09:40:02 UTC 2019 - Hans-Peter Jansen <hpj(a)urpla.net>
+
+- Update to version 1.1.10 (2019-05-16)
+ + Compatibility notes:
+ * When upgrading from borg 1.0.x to 1.1.x, please note:
+ * read all the compatibility notes for 1.1.0*, starting from
+ 1.1.0b1.
+ * borg upgrade: you do not need to and you also should not run
+ it.
+ * borg might ask some security-related questions once after
+ upgrading. You can answer them either manually or via
+ environment variable. One known case is if you use
+ unencrypted repositories, then it will ask about a unknown
+ unencrypted repository one time.
+ * your first backup with 1.1.x might be significantly slower
+ (it might completely read, chunk, hash a lot files) - this is
+ due to the --files-cache mode change (and happens every time
+ you change mode). You can avoid the one-time slowdown by
+ using the pre-1.1.0rc4-compatible mode (but that is less safe
+ for detecting changed files than the default). See the
+ --files-cache docs for details.
+ + Fixes:
+ * extract: hang on partial extraction with ssh: repo, when
+ hardlink master is not matched/extracted and borg hangs on
+ related slave hardlink, #4350
+ * lrucache: regularly remove old FDs, #4427
+ * avoid stale filehandle issues, #3265
+ * freebsd: make xattr platform code api compatible with linux,
+ #3952
+ * use whitelist approach for borg serve, #4097
+ * borg command shall terminate with rc 2 for ImportErrors,
+ #4424
+ * create: only run stat_simple_attrs() once, this increases
+ backup with lots of unchanged files performance by ~ 5%.
+ * prune: fix incorrect borg prune --stats output with --dry-
+ run, #4373
+ * key export: emit user-friendly error if repo key is exported
+ to a directory, #4348
+ + New features:
+ * bundle latest supported msgpack-python release (0.5.6),
+ remove msgpack-python from setup.py install_requires - by
+ default we use the bundled code now. optionally, we still
+ support using an external msgpack (see hints in setup.py),
+ but this requires solid requirements management within
+ distributions and is not recommended. borgbackup will break
+ if you upgrade msgpack to an unsupported version.
+ * display msgpack version as part of sysinfo (e.g. in
+ tracebacks)
+ * timestamp for borg delete --info added, #4359
+ * enable placeholder usage in --comment and --glob-archives,
+ #4559, #4495
+ + Other:
+ * serve: do not check python/libc for borg serve, #4483
+ * shell completions: borg diff second archive
+ * release scripts: signing binaries with Qubes OS support
+ * testing:
+ * vagrant: upgrade openbsd box to 6.4
+ * travis-ci: lock test env to py 3.4 compatible versions, #4343
+ * get rid of confusing coverage warning, #2069
+ * rename test_mount_hardlinks to test_fuse_mount_hardlinks, so
+ both can be excluded by "not test_fuse".
+ * pure-py msgpack warning shall not make a lot of tests fail,
+ #4558
+ * docs:
+ * add "SSH Configuration" section to "borg serve", #3988, #636,
+ #4485
+ * README: new URL for funding options
+ * add a sample logging.conf in docs/misc, #4380
+ * elaborate on append-only mode docs, #3504
+ * installation: added Alpine Linux to distribution list, #4415
+ * usage.html: only modify window.location when redirecting,
+ #4133
+ * add msgpack license to docs/3rd_party/msgpack
+ * vagrant / binary builds:
+ * use python 3.5.7 for builds
+ * use osxfuse 3.8.3
+- remove msgpack patch fix-msgpack-requirement.patch and borg_msgpack
+ build conditional, since msgpack is bundled now (yeah!)
+
+-------------------------------------------------------------------
Old:
----
borgbackup-1.1.9.tar.gz
borgbackup-1.1.9.tar.gz.asc
fix-msgpack-requirement.patch
New:
----
borgbackup-1.1.10.tar.gz
borgbackup-1.1.10.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ borgbackup.spec ++++++
--- /var/tmp/diff_new_pack.rDmd1M/_old 2019-05-24 11:32:24.549389165 +0200
+++ /var/tmp/diff_new_pack.rDmd1M/_new 2019-05-24 11:32:24.549389165 +0200
@@ -18,8 +18,6 @@
%if 0%{?suse_version} >= 1500
-# deal with renamed python-msgpack package
-%bcond_without borg_msgpack
# use new compression libs (lz4, zstd)
%bcond_without borg_newcompr
# run tests (may fail without former conditionals)
@@ -27,14 +25,13 @@
# use sphinx guzzle theme
%bcond_without borg_guzzle
%else
-%bcond_with borg_msgpack
%bcond_with borg_newcompr
%bcond_with borg_test
%bcond_with borg_guzzle
%endif
Name: borgbackup
-Version: 1.1.9
+Version: 1.1.10
Release: 0
Summary: Deduplicating backup program with compression and authenticated encryption
License: BSD-3-Clause
@@ -43,13 +40,10 @@
Source0: https://github.com/borgbackup/borg/releases/download/%{version}/borgbackup-…
Source1: https://github.com/borgbackup/borg/releases/download/%{version}/borgbackup-…
Source2: %{name}.keyring
-# PATCH-FIX-OPENSUSE fix-msgpack-requirement.patch <alarrosa(a)suse.com>
-# deal with msgpack package rename fallout
-Patch1: fix-msgpack-requirement.patch
# PATCH-FIX-OPENSUSE borgbackup-1.1.4-sphinx-default-theme.patch <hpj(a)urpla.net>
# python3-guzzle_sphinx_theme isn't available everywhere,
# fall back to Sphinx default theme for older distributions
-Patch2: borgbackup-1.1.4-sphinx-default-theme.patch
+Patch0: borgbackup-1.1.4-sphinx-default-theme.patch
# build dependencies
BuildRequires: bash
@@ -57,6 +51,7 @@
BuildRequires: bash-completion
%endif
BuildRequires: fish
+BuildRequires: gcc-c++
BuildRequires: libacl-devel
%if %{with borg_newcompr}
BuildRequires: liblz4-devel >= 1.7.0
@@ -65,11 +60,6 @@
BuildRequires: openssl-devel >= 1.0.0
BuildRequires: python3 >= 3.4
BuildRequires: python3-Cython
-%if %{with borg_msgpack}
-Requires: python3-msgpack >= 0.4.6
-%else
-Requires: python3-msgpack-python >= 0.4.6
-%endif
BuildRequires: python3-setuptools
BuildRequires: python3-setuptools_scm
BuildRequires: python3-sphinx_rtd_theme
@@ -81,11 +71,6 @@
%if %{with borg_guzzle}
BuildRequires: python3-guzzle_sphinx_theme
%endif
-%if %{with borg_msgpack}
-BuildRequires: python3-msgpack >= 0.4.6
-%else
-BuildRequires: python3-msgpack-python >= 0.4.6
-%endif
# testing requirements
%if %{with borg_test}
@@ -165,12 +150,8 @@
%prep
%setup -q
-%if %{with borg_msgpack}
-# fix msgpack requirement
-%patch1 -p1
-%endif
%if ! %{with borg_guzzle}
-%patch2 -p1
+%patch0 -p1
%endif
# a single test is failing: test_non_ascii_acl - which is a rather esoteric check
# that cannot be tripped with openSUSE, because user- and group-ids have to be
++++++ borgbackup-1.1.9.tar.gz -> borgbackup-1.1.10.tar.gz ++++++
++++ 28397 lines of diff (skipped)
1
0