openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 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
September 2019
- 1 participants
- 2151 discussions
Hello community,
here is the log from the commit of package python2-ipykernel for openSUSE:Factory checked in at 2019-09-02 12:44:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python2-ipykernel (Old)
and /work/SRC/openSUSE:Factory/.python2-ipykernel.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python2-ipykernel"
Mon Sep 2 12:44:28 2019 rev:2 rq:726230 version:4.10.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python2-ipykernel/python2-ipykernel.changes 2019-05-22 11:13:23.382564623 +0200
+++ /work/SRC/openSUSE:Factory/.python2-ipykernel.new.7948/python2-ipykernel.changes 2019-09-02 12:44:29.533756525 +0200
@@ -1,0 +2,7 @@
+Mon Aug 26 17:03:12 UTC 2019 - Todd R <toddrme2178(a)gmail.com>
+
+- Update to 4.10.1
+ * Raw_input function working with special characters in python 2.7
+- Split out jupyter kernel into own subpackage.
+
+-------------------------------------------------------------------
Old:
----
ipykernel-4.10.0-py2-none-any.whl
New:
----
ipykernel-4.10.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python2-ipykernel.spec ++++++
--- /var/tmp/diff_new_pack.xI36rg/_old 2019-09-02 12:44:29.941756452 +0200
+++ /var/tmp/diff_new_pack.xI36rg/_new 2019-09-02 12:44:29.945756451 +0200
@@ -20,17 +20,17 @@
%define skip_python3 1
%define oldpython python
Name: python2-ipykernel
-Version: 4.10.0
+Version: 4.10.1
Release: 0
-Summary: IPython Kernel for Jupyter
+Summary: Python 2 IPython Kernel for Jupyter
License: BSD-3-Clause
Group: Development/Languages/Python
URL: https://github.com/ipython/ipykernel
-Source0: https://files.pythonhosted.org/packages/py2/i/ipykernel/ipykernel-%{version…
+Source: https://files.pythonhosted.org/packages/source/i/ipykernel/ipykernel-%{vers…
BuildRequires: %{python_module certifi}
BuildRequires: %{python_module ipython >= 4.0.0}
BuildRequires: %{python_module jupyter_client}
-BuildRequires: %{python_module pip}
+BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module tornado >= 4.0}
BuildRequires: %{python_module traitlets >= 4.1.0}
BuildRequires: fdupes
@@ -46,13 +46,12 @@
Requires: python-traitlets >= 4.1.0
Requires: python-typing
Provides: %{oldpython}-jupyter_ipykernel = %{version}
-Obsoletes: %{oldpython}-jupyter_ipykernel <= %{version}
+Obsoletes: %{oldpython}-jupyter_ipykernel < %{version}
Provides: python-jupyter_ipykernel = %{version}
-Obsoletes: python-jupyter_ipykernel <= %{version}
+Obsoletes: python-jupyter_ipykernel < %{version}
Provides: python2-jupyter_ipykernel = %{version}
-Obsoletes: python2-jupyter_ipykernel <= %{version}
+Obsoletes: python2-jupyter_ipykernel < %{version}
Provides: %{oldpython}-ipykernel = %{version}
-Provides: jupyter-ipykernel-python2 = %{version}
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module nose_warnings_filters}
@@ -64,25 +63,34 @@
%python_subpackages
%description
-This package provides the IPython kernel for Jupyter.
+This package provides the python2 IPython kernel
+for Jupyter.
This package provides the python interface and
the jupyter components.
+%package -n jupyter-ipykernel-python2
+Summary: Python 2 IPython Kernel for Jupyter
+Requires: hicolor-icon-theme
+Requires: jupyter-jupyter_client
+Requires: python2-ipykernel = %{version}
+Conflicts: python2-jupyter_ipykernel < 4.10.1
+
+%description -n jupyter-ipykernel-python2
+This package provides the python2 IPython kernel
+for Jupyter.
+
+This package provides the jupyter components.
+
%prep
-%setup -q -T -c
+%setup -q -n ipykernel-%{version}
%build
-# Not needed
+%python_build
%install
-%python_expand pip%{$python_bin_suffix} install \
- --root %{buildroot} \
- --prefix %{_prefix} \
- --compile \
- %{SOURCE0}
-
-cp %{buildroot}%{python_sitelib}/ipykernel-%{version}.dist-info/LICENSE.txt .
+%python_install
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
export PYTHONDONTWRITEBYTECODE=1
@@ -91,10 +99,12 @@
}
%files %{python_files}
-%{python_sitelib}/ipykernel-%{version}.dist-info/
-%license %{python_sitelib}/ipykernel-%{version}.dist-info/LICENSE.txt
-%{python_sitelib}/ipykernel_launcher.py*
-%{python_sitelib}/ipykernel/
+%license COPYING.md
+%{python_sitelib}/*
+%{_jupyter_kernel_dir}/python2/
+
+%files -n jupyter-ipykernel-python2
+%license COPYING.md
%{_jupyter_kernel_dir}/python2/
%changelog
1
0
Hello community,
here is the log from the commit of package python-raven for openSUSE:Factory checked in at 2019-09-02 12:44:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-raven (Old)
and /work/SRC/openSUSE:Factory/.python-raven.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-raven"
Mon Sep 2 12:44:13 2019 rev:9 rq:726226 version:6.10.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-raven/python-raven.changes 2019-07-30 13:02:26.682425905 +0200
+++ /work/SRC/openSUSE:Factory/.python-raven.new.7948/python-raven.changes 2019-09-02 12:44:15.993758967 +0200
@@ -1,0 +2,5 @@
+Mon Aug 26 16:57:00 UTC 2019 - Todd R <toddrme2178(a)gmail.com>
+
+- Use better way to handle tornado version compatibility.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-raven.spec ++++++
--- /var/tmp/diff_new_pack.deK93z/_old 2019-09-02 12:44:16.569758863 +0200
+++ /var/tmp/diff_new_pack.deK93z/_new 2019-09-02 12:44:16.569758863 +0200
@@ -54,6 +54,7 @@
BuildRequires: %{python_module requests}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module tornado >= 4.1}
+BuildConflicts: %{python_module tornado >= 5}
BuildRequires: %{python_module vine}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
1
0
Hello community,
here is the log from the commit of package yast2-slp for openSUSE:Factory checked in at 2019-09-02 12:44:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-slp (Old)
and /work/SRC/openSUSE:Factory/.yast2-slp.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-slp"
Mon Sep 2 12:44:02 2019 rev:38 rq:726208 version:4.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-slp/yast2-slp.changes 2019-02-28 21:48:26.493396008 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-slp.new.7948/yast2-slp.changes 2019-09-02 12:44:03.749761175 +0200
@@ -1,0 +2,7 @@
+Mon Aug 26 09:39:42 CEST 2019 - schubi(a)suse.de
+
+- Using rb_default_ruby_abi tag in the spec file in order to
+ handle several ruby versions (bsc#1146403).
+- 4.1.1
+
+-------------------------------------------------------------------
Old:
----
yast2-slp-4.1.0.tar.bz2
New:
----
yast2-slp-4.1.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-slp.spec ++++++
--- /var/tmp/diff_new_pack.Tdd7W7/_old 2019-09-02 12:44:04.113761109 +0200
+++ /var/tmp/diff_new_pack.Tdd7W7/_new 2019-09-02 12:44:04.117761108 +0200
@@ -17,7 +17,7 @@
Name: yast2-slp
-Version: 4.1.0
+Version: 4.1.1
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
BuildRequires: yast2
BuildRequires: yast2-core-devel
BuildRequires: yast2-devtools >= 3.1.10
-BuildRequires: rubygem(rspec)
+BuildRequires: rubygem(%{rb_default_ruby_abi}:rspec)
%if 0%{?suse_version} < 1220
BuildRequires: libxcrypt-devel
%endif
++++++ yast2-slp-4.1.0.tar.bz2 -> yast2-slp-4.1.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-4.1.0/Dockerfile new/yast2-slp-4.1.1/Dockerfile
--- old/yast2-slp-4.1.0/Dockerfile 2019-02-27 15:48:15.000000000 +0100
+++ new/yast2-slp-4.1.1/Dockerfile 2019-08-26 17:14:34.000000000 +0200
@@ -1,4 +1,4 @@
-FROM yastdevel/ruby
+FROM registry.opensuse.org/yast/head/containers/yast-ruby
RUN zypper --gpg-auto-import-keys --non-interactive in --no-recommends \
gcc-c++ \
libtool \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-4.1.0/package/yast2-slp.changes new/yast2-slp-4.1.1/package/yast2-slp.changes
--- old/yast2-slp-4.1.0/package/yast2-slp.changes 2019-02-27 15:48:15.000000000 +0100
+++ new/yast2-slp-4.1.1/package/yast2-slp.changes 2019-08-26 17:14:34.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Mon Aug 26 09:39:42 CEST 2019 - schubi(a)suse.de
+
+- Using rb_default_ruby_abi tag in the spec file in order to
+ handle several ruby versions (bsc#1146403).
+- 4.1.1
+
+-------------------------------------------------------------------
Tue Feb 26 14:26:58 UTC 2019 - José Iván López González <jlopez(a)suse.com>
- Version bump (bsc#1124009)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-4.1.0/package/yast2-slp.spec new/yast2-slp-4.1.1/package/yast2-slp.spec
--- old/yast2-slp-4.1.0/package/yast2-slp.spec 2019-02-27 15:48:15.000000000 +0100
+++ new/yast2-slp-4.1.1/package/yast2-slp.spec 2019-08-26 17:14:34.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-slp
-Version: 4.1.0
+Version: 4.1.1
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -27,7 +27,7 @@
License: GPL-2.0-or-later
BuildRequires: gcc-c++ openslp-devel doxygen perl-XML-Writer yast2-core-devel yast2 libtool
BuildRequires: yast2-devtools >= 3.1.10
-BuildRequires: rubygem(rspec)
+BuildRequires: rubygem(%{rb_default_ruby_abi}:rspec)
%if 0%{?suse_version} < 1220
BuildRequires: libxcrypt-devel
%endif
1
0
Hello community,
here is the log from the commit of package plasma5-pk-updates for openSUSE:Factory checked in at 2019-09-02 12:43:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-pk-updates (Old)
and /work/SRC/openSUSE:Factory/.plasma5-pk-updates.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-pk-updates"
Mon Sep 2 12:43:53 2019 rev:20 rq:726206 version:0.3.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-pk-updates/plasma5-pk-updates.changes 2019-06-30 10:16:22.639142574 +0200
+++ /work/SRC/openSUSE:Factory/.plasma5-pk-updates.new.7948/plasma5-pk-updates.changes 2019-09-02 12:43:54.517762840 +0200
@@ -1,0 +2,8 @@
+Mon Aug 26 13:59:14 UTC 2019 - Fabian Vogt <fabian(a)ritter-vogt.de>
+
+- Implement EULA handling (boo#1148168):
+ * 0001-Add-support-for-license-prompts.patch
+- Enable install updates functionality on Tumbleweed again (boo#1030829):
+ * Drop 0001-Hide-option-to-install-updates-on-Tumbleweed.patch
+
+-------------------------------------------------------------------
Old:
----
0001-Hide-option-to-install-updates-on-Tumbleweed.patch
New:
----
0001-Add-support-for-license-prompts.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-pk-updates.spec ++++++
--- /var/tmp/diff_new_pack.TZJv81/_old 2019-09-02 12:43:55.013762750 +0200
+++ /var/tmp/diff_new_pack.TZJv81/_new 2019-09-02 12:43:55.013762750 +0200
@@ -39,8 +39,8 @@
Patch7: 0004-Make-the-notifications-less-obtrusive.patch
Patch8: 0006-Remove-explicit-initialization-of-default-constructe.patch
Patch9: 0007-Port-away-from-KDELibs4Support-use-Solid-Power-inter.patch
-# PATCH-FEATURE-OPENSUSE
-Patch100: 0001-Hide-option-to-install-updates-on-Tumbleweed.patch
+# PATCH-FEATURE-UPSTREAM
+Patch10: 0001-Add-support-for-license-prompts.patch
BuildRequires: PackageKit-Qt5-devel
BuildRequires: cmake >= 3.0
BuildRequires: extra-cmake-modules >= 1.3.0
++++++ 0001-Add-support-for-license-prompts.patch ++++++
>From 45ee87ee0bc1cd670ffc5095ebc3cd4884ee24bf Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian(a)ritter-vogt.de>
Date: Mon, 26 Aug 2019 13:22:25 +0200
Subject: [PATCH] Add support for license prompts
Summary:
Currently, if a transaction requires accepting a license, it just fails.
This implements a basic dialog (which makes it easier to read the
license than displaying it inline) and the necessary backend
functionality.
It was necessary to move the list of packages out of a QObject property
into a new member to allow restarting the transaction outside of the
onFinished slot.
Test Plan:
Downgraded two packages with EULAs and searched for updates.
Hit the install updates button and got two license prompts.
Only after accepting both with the "Yes" button are the updates installed.
Reviewers: lukas, jgrulich
Differential Revision: https://phabricator.kde.org/D23462
---
src/declarative/pkupdates.cpp | 61 ++++++++++++++++++++++++++++-----
src/declarative/pkupdates.h | 29 ++++++++++++++++
src/plasma/contents/ui/Full.qml | 59 +++++++++++++++++++++++++++++++
3 files changed, 141 insertions(+), 8 deletions(-)
diff --git a/src/declarative/pkupdates.cpp b/src/declarative/pkupdates.cpp
index db85eb1..9eac70f 100644
--- a/src/declarative/pkupdates.cpp
+++ b/src/declarative/pkupdates.cpp
@@ -296,8 +296,9 @@ void PkUpdates::installUpdates(const QStringList &packageIds, bool simulate, boo
flags = PackageKit::Transaction::TransactionFlagNone;
}
- m_installTrans = PackageKit::Daemon::updatePackages(packageIds, flags);
- m_installTrans->setProperty("packages", packageIds);
+ m_requiredEulas.clear();
+ m_packages = packageIds;
+ m_installTrans = PackageKit::Daemon::updatePackages(m_packages, flags);
setActivity(InstallingUpdates);
connect(m_installTrans.data(), &PackageKit::Transaction::statusChanged, this, &PkUpdates::onStatusChanged);
@@ -306,6 +307,7 @@ void PkUpdates::installUpdates(const QStringList &packageIds, bool simulate, boo
connect(m_installTrans.data(), &PackageKit::Transaction::package, this, &PkUpdates::onPackageUpdating);
connect(m_installTrans.data(), &PackageKit::Transaction::requireRestart, this, &PkUpdates::onRequireRestart);
connect(m_installTrans.data(), &PackageKit::Transaction::repoSignatureRequired, this, &PkUpdates::onRepoSignatureRequired);
+ connect(m_installTrans.data(), &PackageKit::Transaction::eulaRequired, this, &PkUpdates::onEulaRequired);
}
void PkUpdates::onChanged()
@@ -431,16 +433,19 @@ void PkUpdates::onFinished(PackageKit::Transaction::Exit status, uint runtime)
qCDebug(PLASMA_PK_UPDATES) << "Total number of updates: " << count();
emit done();
} else if (trans->role() == PackageKit::Transaction::RoleUpdatePackages) {
- const QStringList packages = trans->property("packages").toStringList();
- qCDebug(PLASMA_PK_UPDATES) << "Finished updating packages:" << packages;
+ qCDebug(PLASMA_PK_UPDATES) << "Finished updating packages:" << m_packages;
if (status == PackageKit::Transaction::ExitNeedUntrusted) {
qCDebug(PLASMA_PK_UPDATES) << "Transaction needs untrusted packages";
// restart transaction with "untrusted" flag
- installUpdates(packages, false /*simulate*/, true /*untrusted*/);
+ installUpdates(m_packages, false /*simulate*/, true /*untrusted*/);
+ return;
+ } else if (status == PackageKit::Transaction::ExitEulaRequired) {
+ qCDebug(PLASMA_PK_UPDATES) << "Acceptance of EULAs required";
+ promptNextEulaAgreement();
return;
} else if (status == PackageKit::Transaction::ExitSuccess && trans->transactionFlags().testFlag(PackageKit::Transaction::TransactionFlagSimulate)) {
qCDebug(PLASMA_PK_UPDATES) << "Simulation finished with success, restarting the transaction";
- installUpdates(packages, false /*simulate*/, false /*untrusted*/);
+ installUpdates(m_packages, false /*simulate*/, false /*untrusted*/);
return;
} else if (status == PackageKit::Transaction::ExitSuccess) {
qCDebug(PLASMA_PK_UPDATES) << "Update packages transaction finished successfully";
@@ -449,7 +454,7 @@ void PkUpdates::onFinished(PackageKit::Transaction::Exit status, uint runtime)
}
KNotification::event(s_eventIdUpdatesInstalled,
i18n("Updates Installed"),
- i18np("Successfully updated %1 package", "Successfully updated %1 packages", packages.count()),
+ i18np("Successfully updated %1 package", "Successfully updated %1 packages", m_packages.count()),
s_pkUpdatesIconName, nullptr,
KNotification::CloseOnTimeout,
s_componentName);
@@ -475,7 +480,7 @@ void PkUpdates::onFinished(PackageKit::Transaction::Exit status, uint runtime)
void PkUpdates::onErrorCode(PackageKit::Transaction::Error error, const QString &details)
{
qWarning() << "PK error:" << details << "type:" << PackageKit::Daemon::enumToString<PackageKit::Transaction>((int)error, "Error");
- if (error == PackageKit::Transaction::ErrorBadGpgSignature)
+ if (error == PackageKit::Transaction::ErrorBadGpgSignature || error == PackageKit::Transaction::ErrorNoLicenseAgreement)
return;
KNotification::event(s_eventIdError, i18n("Update Error"),
@@ -553,6 +558,46 @@ void PkUpdates::onRepoSignatureRequired(const QString &packageID, const QString
qCDebug(PLASMA_PK_UPDATES) << "Repo sig required" << packageID;
}
+void PkUpdates::onEulaRequired(const QString &eulaID, const QString &packageID, const QString &vendor, const QString &licenseAgreement)
+{
+ m_requiredEulas[eulaID] = {packageID, vendor, licenseAgreement};
+}
+
+void PkUpdates::promptNextEulaAgreement()
+{
+ if(m_requiredEulas.empty()) {
+ // Restart the transaction
+ installUpdates(m_packages, false, false);
+ return;
+ }
+
+ QString eulaID = m_requiredEulas.firstKey();
+ const EulaData &eula = m_requiredEulas[eulaID];
+ emit eulaRequired(eulaID, eula.packageID, eula.vendor, eula.licenseAgreement);
+}
+
+void PkUpdates::eulaAgreementResult(const QString &eulaID, bool agreed)
+{
+ if(!agreed) {
+ qCDebug(PLASMA_PK_UPDATES) << "EULA declined";
+ // Do the same as the failure case in onFinished
+ checkUpdates(false /* force */);
+ return;
+ }
+
+ m_eulaTrans = PackageKit::Daemon::acceptEula(eulaID);
+ connect(m_eulaTrans.data(), &PackageKit::Transaction::finished, this,
+ [this, eulaID] (PackageKit::Transaction::Exit exit, uint) {
+ if (exit == PackageKit::Transaction::ExitSuccess) {
+ m_requiredEulas.remove(eulaID);
+ promptNextEulaAgreement();
+ } else {
+ qCWarning(PLASMA_PK_UPDATES) << "EULA acceptance failed";
+ }
+ }
+ );
+}
+
void PkUpdates::setStatusMessage(const QString &message)
{
m_statusMessage = message;
diff --git a/src/declarative/pkupdates.h b/src/declarative/pkupdates.h
index 877bd52..0f48d2d 100644
--- a/src/declarative/pkupdates.h
+++ b/src/declarative/pkupdates.h
@@ -156,6 +156,17 @@ signals:
*/
void updateDetail(const QString &packageID, const QString &updateText, const QStringList &urls);
+ /**
+ * Emitted when an EULA agreement prevents the transaction from running
+ * @param eulaId the EULA identifier
+ * @param packageID ID of the package for which an EULA is required
+ * @param vendorName the vendor name
+ * @param licenseAgreement the EULA text
+ *
+ * @see eulaAgreementResult()
+ */
+ void eulaRequired(const QString &eulaID, const QString &packageID, const QString &vendor, const QString &licenseAgreement);
+
// private ;)
void statusMessageChanged();
void isActiveChanged();
@@ -205,6 +216,11 @@ public slots:
Q_INVOKABLE void doDelayedCheckUpdates();
+ /**
+ * If agreed to eulaID, starts an EULA acceptance transaction and continues.
+ */
+ Q_INVOKABLE void eulaAgreementResult(const QString &eulaID, bool agreed);
+
private slots:
void getUpdates();
void onChanged();
@@ -221,15 +237,25 @@ private slots:
const QDateTime &issued, const QDateTime &updated);
void onRepoSignatureRequired(const QString & packageID, const QString & repoName, const QString & keyUrl, const QString & keyUserid,
const QString & keyId, const QString & keyFingerprint, const QString & keyTimestamp, PackageKit::Transaction::SigType type);
+ void onEulaRequired(const QString &eulaID, const QString &packageID, const QString &vendor, const QString &licenseAgreement);
private:
+ struct EulaData {
+ QString packageID;
+ QString vendor;
+ QString licenseAgreement;
+ };
+
void setStatusMessage(const QString &message);
void setActivity(Activity act);
void setPercentage(int value);
+ void promptNextEulaAgreement();
QPointer<PackageKit::Transaction> m_updatesTrans;
QPointer<PackageKit::Transaction> m_cacheTrans;
QPointer<PackageKit::Transaction> m_installTrans;
QPointer<PackageKit::Transaction> m_detailTrans;
+ QPointer<PackageKit::Transaction> m_eulaTrans;
+ QStringList m_packages;
QPointer<KNotification> m_lastNotification;
int m_lastUpdateCount = 0;
QVariantMap m_updateList;
@@ -241,6 +267,9 @@ private:
bool m_lastCheckSuccessful = false;
bool m_checkUpdatesWhenNetworkOnline = false;
bool m_isOnBattery;
+ // If a transaction failed because of required EULAs,
+ // this contains a map of their IDs to their data
+ QMap<QString, EulaData> m_requiredEulas;
};
#endif // PLASMA_PK_UPDATES_H
diff --git a/src/plasma/contents/ui/Full.qml b/src/plasma/contents/ui/Full.qml
index 7cf37eb..de2a47e 100644
--- a/src/plasma/contents/ui/Full.qml
+++ b/src/plasma/contents/ui/Full.qml
@@ -22,6 +22,7 @@
import QtQuick 2.1
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.3
+import QtQuick.Dialogs 1.2
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.core 2.0 as PlasmaCore
@@ -46,10 +47,68 @@ Item {
onUpdatesChanged: populateModel()
onUpdateDetail: updateDetails(packageID, updateText, urls)
onUpdatesInstalled: plasmoid.expanded = false
+ onEulaRequired: eulaDialog.showPrompt(eulaID, packageID, vendor, licenseAgreement)
}
Component.onCompleted: populateModel()
+ Dialog {
+ property string eulaID: ""
+ property string packageName: ""
+ property string vendor: ""
+ property string licenseText: ""
+
+ property bool buttonClicked: false
+
+ id: eulaDialog
+ title: i18n("License Agreement for %1").arg(packageName)
+ standardButtons: StandardButton.Yes | StandardButton.No
+
+ ColumnLayout {
+ anchors.fill: parent
+
+ Label {
+ text: i18n("License agreement required for %1 (from %2):").arg(eulaDialog.packageName).arg(eulaDialog.vendor)
+ }
+
+ TextArea {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.minimumWidth: 400
+ Layout.minimumHeight: 200
+ text: eulaDialog.licenseText
+ readOnly: true
+ }
+
+ Label {
+ text: i18n("Do you accept?")
+ }
+ }
+
+ onVisibleChanged: {
+ // onRejected does not fire on dialog closing, so implement that ourselves
+ if(!visible && !buttonClicked)
+ onNo();
+ }
+ onNo: {
+ buttonClicked = true;
+ PkUpdates.eulaAgreementResult(this.eulaID, false);
+ }
+ onYes: {
+ buttonClicked = true;
+ PkUpdates.eulaAgreementResult(this.eulaID, true);
+ }
+
+ function showPrompt(eulaID, packageID, vendor, licenseAgreement) {
+ this.eulaID = eulaID;
+ this.packageName = PkUpdates.packageName(packageID);
+ this.vendor = vendor;
+ this.licenseText = licenseAgreement;
+
+ this.visible = true;
+ }
+ }
+
ListModel {
id: updatesModel
}
--
2.22.0
1
0
Hello community,
here is the log from the commit of package dracut for openSUSE:Factory checked in at 2019-09-02 12:43:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
and /work/SRC/openSUSE:Factory/.dracut.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut"
Mon Sep 2 12:43:43 2019 rev:143 rq:726198 version:049+git108.6c9d1156
Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2019-07-21 11:32:32.752795529 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new.7948/dracut.changes 2019-09-02 12:43:47.429764118 +0200
@@ -1,0 +2,9 @@
+Mon Aug 26 14:40:04 UTC 2019 - daniel.molkentin(a)suse.com
+
+- Update to version 049+git108.6c9d1156:
+ * dracut-init.sh: Nuke unused install_kmod_with_fw function
+ * dracut-install: Support the compressed firmware files correctly (boo#1146769)
+ * dracut: let module handling function accept optional path option
+ * dracut.sh: Fix udevdir detection
+
+-------------------------------------------------------------------
Old:
----
dracut-049+git104.1244eed7.obscpio
dracut-049+git104.1244eed7.tar.xz
New:
----
dracut-049+git108.6c9d1156.obscpio
dracut-049+git108.6c9d1156.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.nM2uAG/_old 2019-09-02 12:43:48.229763974 +0200
+++ /var/tmp/diff_new_pack.nM2uAG/_new 2019-09-02 12:43:48.229763974 +0200
@@ -19,7 +19,7 @@
%define dracutlibdir %{_libexecdir}/dracut
Name: dracut
-Version: 049+git104.1244eed7
+Version: 049+git108.6c9d1156
Release: 0
Summary: Initramfs generator using udev
License: GPL-2.0-or-later AND LGPL-2.1-or-later
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.nM2uAG/_old 2019-09-02 12:43:48.277763965 +0200
+++ /var/tmp/diff_new_pack.nM2uAG/_new 2019-09-02 12:43:48.281763964 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/opensuse/dracut.git</param>
- <param name="changesrevision">1244eed724bbf95f36a7535fe6b9ad197887960c</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">6c9d1156d1d2eea7147a76d75a06a676e0de8985</param></service></servicedata>
\ No newline at end of file
++++++ dracut-049+git104.1244eed7.obscpio -> dracut-049+git108.6c9d1156.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut-init.sh new/dracut-049+git108.6c9d1156/dracut-init.sh
--- old/dracut-049+git104.1244eed7/dracut-init.sh 2019-07-19 16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/dracut-init.sh 2019-08-26 16:39:23.000000000 +0200
@@ -150,6 +150,10 @@
[[ " $mods_to_load $modules_loaded " == *\ $*\ * ]]
}
+dracut_module_path() {
+ echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; }
+}
+
if ! [[ $DRACUT_INSTALL ]]; then
DRACUT_INSTALL=$(find_binary dracut-install)
fi
@@ -567,15 +571,16 @@
done
}
-# module_check <dracut module>
+# module_check <dracut module> [<forced>] [<module path>]
# execute the check() function of module-setup.sh of <dracut module>
# or the "check" script, if module-setup.sh is not found
# "check $hostonly" is called
module_check() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$3
local _ret
local _forced=0
local _hostonly=$hostonly
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[ $# -eq 2 ] && _forced=$2
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
@@ -598,14 +603,15 @@
return $_ret
}
-# module_check_mount <dracut module>
+# module_check_mount <dracut module> [<module path>]
# execute the check() function of module-setup.sh of <dracut module>
# or the "check" script, if module-setup.sh is not found
# "mount_needs=1 check 0" is called
module_check_mount() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
mount_needs=1
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
# if we do not have a check script, we are unconditionally included
@@ -624,12 +630,13 @@
return $_ret
}
-# module_depends <dracut module>
+# module_depends <dracut module> [<module path>]
# execute the depends() function of module-setup.sh of <dracut module>
# or the "depends" script, if module-setup.sh is not found
module_depends() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
# if we do not have a check script, we have no deps
@@ -647,12 +654,13 @@
fi
}
-# module_cmdline <dracut module>
+# module_cmdline <dracut module> [<module path>]
# execute the cmdline() function of module-setup.sh of <dracut module>
# or the "cmdline" script, if module-setup.sh is not found
module_cmdline() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
[[ -x $_moddir/cmdline ]] && . "$_moddir/cmdline"
@@ -668,12 +676,13 @@
fi
}
-# module_install <dracut module>
+# module_install <dracut module> [<module path>]
# execute the install() function of module-setup.sh of <dracut module>
# or the "install" script, if module-setup.sh is not found
module_install() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
[[ -x $_moddir/install ]] && . "$_moddir/install"
@@ -689,12 +698,13 @@
fi
}
-# module_installkernel <dracut module>
+# module_installkernel <dracut module> [<module path>]
# execute the installkernel() function of module-setup.sh of <dracut module>
# or the "installkernel" script, if module-setup.sh is not found
module_installkernel() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
[[ -x $_moddir/installkernel ]] && . "$_moddir/installkernel"
@@ -710,15 +720,16 @@
fi
}
-# check_mount <dracut module>
+# check_mount <dracut module> [<use_as_dep>] [<module path>]
# check_mount checks, if a dracut module is needed for the given
# device and filesystem types in "${host_fs_types[@]}"
check_mount() {
local _mod=$1
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$3
local _ret
local _moddep
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[ "${#host_fs_types[@]}" -le 0 ] && return 1
# If we are already scheduled to be loaded, no need to check again.
@@ -735,7 +746,7 @@
fi
if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ $_mod\ * ]]; then
- module_check_mount $_mod; ret=$?
+ module_check_mount $_mod $_moddir; ret=$?
# explicit module, so also accept ret=255
[[ $ret = 0 || $ret = 255 ]] || return 1
@@ -743,14 +754,14 @@
# module not in our list
if [[ $dracutmodules = all ]]; then
# check, if we can and should install this module
- module_check_mount $_mod || return 1
+ module_check_mount $_mod $_moddir || return 1
else
# skip this module
return 1
fi
fi
- for _moddep in $(module_depends $_mod); do
+ for _moddep in $(module_depends $_mod $_moddir); do
# handle deps as if they were manually added
[[ " $dracutmodules " == *\ $_mod\ * ]] \
&& [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -774,15 +785,17 @@
return 0
}
-# check_module <dracut module> [<use_as_dep>]
+# check_module <dracut module> [<use_as_dep>] [<module path>]
# check if a dracut module is to be used in the initramfs process
# if <use_as_dep> is set, then the process also keeps track
# that the modules were checked for the dependency tracking process
check_module() {
local _mod=$1
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$3
local _ret
local _moddep
+
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
# If we are already scheduled to be loaded, no need to check again.
[[ " $mods_to_load " == *\ $_mod\ * ]] && return 0
[[ " $mods_checked_as_dep " == *\ $_mod\ * ]] && return 1
@@ -799,9 +812,9 @@
if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ $_mod\ * ]]; then
if [[ " $dracutmodules $force_add_dracutmodules " == *\ $_mod\ * ]]; then
- module_check $_mod 1; ret=$?
+ module_check $_mod 1 $_moddir; ret=$?
else
- module_check $_mod 0; ret=$?
+ module_check $_mod 0 $_moddir; ret=$?
fi
# explicit module, so also accept ret=255
[[ $ret = 0 || $ret = 255 ]] || return 1
@@ -809,7 +822,7 @@
# module not in our list
if [[ $dracutmodules = all ]]; then
# check, if we can and should install this module
- module_check $_mod; ret=$?
+ module_check $_mod 0 $_moddir; ret=$?
if [[ $ret != 0 ]]; then
[[ $2 ]] && return 1
[[ $ret != 255 ]] && return 1
@@ -820,7 +833,7 @@
fi
fi
- for _moddep in $(module_depends $_mod); do
+ for _moddep in $(module_depends $_mod $_moddir); do
# handle deps as if they were manually added
[[ " $dracutmodules " == *\ $_mod\ * ]] \
&& [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -845,7 +858,7 @@
}
# for_each_module_dir <func>
-# execute "<func> <dracut module> 1"
+# execute "<func> <dracut module> 1 <module path>"
for_each_module_dir() {
local _modcheck
local _mod
@@ -857,7 +870,7 @@
[[ -e $_moddir/install || -e $_moddir/installkernel || \
-e $_moddir/module-setup.sh ]] || continue
_mod=${_moddir##*/}; _mod=${_mod#[0-9][0-9]}
- $_func $_mod 1
+ $_func $_mod 1 $_moddir
done
# Report any missing dracut modules, the user has specified
@@ -878,77 +891,6 @@
done
}
-# Install a single kernel module along with any firmware it may require.
-# $1 = full path to kernel module to install
-install_kmod_with_fw() {
- # no need to go further if the module is already installed
-
- [[ -e "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}" ]] \
- && return 0
-
- if [[ $omit_drivers ]]; then
- local _kmod=${1##*/}
- _kmod=${_kmod%.ko*}
- _kmod=${_kmod/-/_}
- if [[ "$_kmod" =~ $omit_drivers ]]; then
- dinfo "Omitting driver $_kmod"
- return 0
- fi
- if [[ "${1##*/lib/modules/$kernel/}" =~ $omit_drivers ]]; then
- dinfo "Omitting driver $_kmod"
- return 0
- fi
- fi
-
- if [[ $silent_omit_drivers ]]; then
- local _kmod=${1##*/}
- _kmod=${_kmod%.ko*}
- _kmod=${_kmod/-/_}
- [[ "$_kmod" =~ $silent_omit_drivers ]] && return 0
- [[ "${1##*/lib/modules/$kernel/}" =~ $silent_omit_drivers ]] && return 0
- fi
-
- inst_simple "$1" "/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- ret=$?
- (($ret != 0)) && return $ret
- if [ "${1##*.ko}" = ".xz" ]; then
- dinfo "unxz ${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- unxz -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- elif [ "${1##*.ko}" = ".gz" ]; then
- dinfo "gunzip ${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- gunzip -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- fi
-
- local _modname=${1##*/} _fwdir _found _fw
- _modname=${_modname%.ko*}
- for _fw in $(modinfo -k $kernel -F firmware $1 2>/dev/null); do
- _found=''
- for _fwdir in $fw_dir; do
- [[ -d $_fwdir ]] || continue
- if [[ -f $_fwdir/$_fw ]]; then
- inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
- elif [[ -f $_fwdir/$_fw.xz ]]; then
- inst_simple "$_fwdir/$_fw.xz" "/lib/firmware/$_fw.xz"
- rm -f "${initdir}/lib/firmware/$_fw"
- unxz -f "${initdir}/lib/firmware/$_fw.xz"
- else
- continue
- fi
- _found=yes
- done
- if [[ $_found != yes ]]; then
- if ! [[ -d $(echo /sys/module/${_modname//-/_}|{ read a b; echo $a; }) ]]; then
- dinfo "Possible missing firmware \"${_fw}\" for kernel module" \
- "\"${_modname}.ko\""
- else
- dwarn "Possible missing firmware \"${_fw}\" for kernel module" \
- "\"${_modname}.ko\""
- fi
- fi
- done
- return 0
-}
-
# Do something with all the dependencies of a kernel module.
# Note that kernel modules depend on themselves using the technique we use
# $1 = function to call for each dependency we find
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut.sh new/dracut-049+git108.6c9d1156/dracut.sh
--- old/dracut-049+git104.1244eed7/dracut.sh 2019-07-19 16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/dracut.sh 2019-08-26 16:39:23.000000000 +0200
@@ -1311,8 +1311,8 @@
[[ -d $udevdir ]] \
|| udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
if ! [[ -d "$udevdir" ]]; then
- [[ -e /lib/udev/collect ]] && udevdir=/lib/udev
- [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev
+ [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev
+ [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev
fi
[[ -d $systemdutildir ]] \
@@ -1373,7 +1373,7 @@
for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
_d_mod=${moddir##*/}; _d_mod=${_d_mod#[0-9][0-9]}
[[ ${_mods_to_print[$_d_mod]} ]] || continue
- module_cmdline "$_d_mod"
+ module_cmdline "$_d_mod" "$moddir"
done
unset moddir
}
@@ -1454,14 +1454,14 @@
dinfo "*** Including module: $_d_mod ***"
fi
if [[ $kernel_only == yes ]]; then
- module_installkernel "$_d_mod" || {
+ module_installkernel "$_d_mod" "$moddir" || {
dfatal "installkernel failed in module $_d_mod"
exit 1
}
else
- module_install "$_d_mod"
+ module_install "$_d_mod" "$moddir"
if [[ $no_kernel != yes ]]; then
- module_installkernel "$_d_mod" || {
+ module_installkernel "$_d_mod" "$moddir" || {
dfatal "installkernel failed in module $_d_mod"
exit 1
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git104.1244eed7/install/dracut-install.c new/dracut-049+git108.6c9d1156/install/dracut-install.c
--- old/dracut-049+git104.1244eed7/install/dracut-install.c 2019-07-19 16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/install/dracut-install.c 2019-08-26 16:39:23.000000000 +0200
@@ -1151,6 +1151,8 @@
ret = -1;
STRV_FOREACH(q, firmwaredirs) {
_cleanup_free_ char *fwpath = NULL;
+ _cleanup_free_ char *fwpath_xz = NULL;
+ const char *fw;
struct stat sb;
int r;
@@ -1160,12 +1162,21 @@
exit(EXIT_FAILURE);
}
+ fw = fwpath;
if (stat(fwpath, &sb) != 0) {
- log_debug("stat(%s) != 0", fwpath);
- continue;
+ r = asprintf(&fwpath_xz, "%s.xz", fwpath);
+ if (r < 0) {
+ log_error("Out of memory!");
+ exit(EXIT_FAILURE);
+ }
+ if (stat(fwpath_xz, &sb) != 0) {
+ log_debug("stat(%s) != 0", fwpath);
+ continue;
+ }
+ fw = fwpath_xz;
}
- ret = dracut_install(fwpath, fwpath, false, false, true);
+ ret = dracut_install(fw, fw, false, false, true);
if (ret == 0)
log_debug("dracut_install '%s' OK", fwpath);
}
++++++ dracut-049+git104.1244eed7.tar.xz -> dracut-049+git108.6c9d1156.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut-init.sh new/dracut-049+git108.6c9d1156/dracut-init.sh
--- old/dracut-049+git104.1244eed7/dracut-init.sh 2019-07-19 16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/dracut-init.sh 2019-08-26 16:39:23.000000000 +0200
@@ -150,6 +150,10 @@
[[ " $mods_to_load $modules_loaded " == *\ $*\ * ]]
}
+dracut_module_path() {
+ echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; }
+}
+
if ! [[ $DRACUT_INSTALL ]]; then
DRACUT_INSTALL=$(find_binary dracut-install)
fi
@@ -567,15 +571,16 @@
done
}
-# module_check <dracut module>
+# module_check <dracut module> [<forced>] [<module path>]
# execute the check() function of module-setup.sh of <dracut module>
# or the "check" script, if module-setup.sh is not found
# "check $hostonly" is called
module_check() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$3
local _ret
local _forced=0
local _hostonly=$hostonly
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[ $# -eq 2 ] && _forced=$2
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
@@ -598,14 +603,15 @@
return $_ret
}
-# module_check_mount <dracut module>
+# module_check_mount <dracut module> [<module path>]
# execute the check() function of module-setup.sh of <dracut module>
# or the "check" script, if module-setup.sh is not found
# "mount_needs=1 check 0" is called
module_check_mount() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
mount_needs=1
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
# if we do not have a check script, we are unconditionally included
@@ -624,12 +630,13 @@
return $_ret
}
-# module_depends <dracut module>
+# module_depends <dracut module> [<module path>]
# execute the depends() function of module-setup.sh of <dracut module>
# or the "depends" script, if module-setup.sh is not found
module_depends() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
# if we do not have a check script, we have no deps
@@ -647,12 +654,13 @@
fi
}
-# module_cmdline <dracut module>
+# module_cmdline <dracut module> [<module path>]
# execute the cmdline() function of module-setup.sh of <dracut module>
# or the "cmdline" script, if module-setup.sh is not found
module_cmdline() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
[[ -x $_moddir/cmdline ]] && . "$_moddir/cmdline"
@@ -668,12 +676,13 @@
fi
}
-# module_install <dracut module>
+# module_install <dracut module> [<module path>]
# execute the install() function of module-setup.sh of <dracut module>
# or the "install" script, if module-setup.sh is not found
module_install() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
[[ -x $_moddir/install ]] && . "$_moddir/install"
@@ -689,12 +698,13 @@
fi
}
-# module_installkernel <dracut module>
+# module_installkernel <dracut module> [<module path>]
# execute the installkernel() function of module-setup.sh of <dracut module>
# or the "installkernel" script, if module-setup.sh is not found
module_installkernel() {
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$2
local _ret
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[[ -d $_moddir ]] || return 1
if [[ ! -f $_moddir/module-setup.sh ]]; then
[[ -x $_moddir/installkernel ]] && . "$_moddir/installkernel"
@@ -710,15 +720,16 @@
fi
}
-# check_mount <dracut module>
+# check_mount <dracut module> [<use_as_dep>] [<module path>]
# check_mount checks, if a dracut module is needed for the given
# device and filesystem types in "${host_fs_types[@]}"
check_mount() {
local _mod=$1
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$3
local _ret
local _moddep
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
[ "${#host_fs_types[@]}" -le 0 ] && return 1
# If we are already scheduled to be loaded, no need to check again.
@@ -735,7 +746,7 @@
fi
if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ $_mod\ * ]]; then
- module_check_mount $_mod; ret=$?
+ module_check_mount $_mod $_moddir; ret=$?
# explicit module, so also accept ret=255
[[ $ret = 0 || $ret = 255 ]] || return 1
@@ -743,14 +754,14 @@
# module not in our list
if [[ $dracutmodules = all ]]; then
# check, if we can and should install this module
- module_check_mount $_mod || return 1
+ module_check_mount $_mod $_moddir || return 1
else
# skip this module
return 1
fi
fi
- for _moddep in $(module_depends $_mod); do
+ for _moddep in $(module_depends $_mod $_moddir); do
# handle deps as if they were manually added
[[ " $dracutmodules " == *\ $_mod\ * ]] \
&& [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -774,15 +785,17 @@
return 0
}
-# check_module <dracut module> [<use_as_dep>]
+# check_module <dracut module> [<use_as_dep>] [<module path>]
# check if a dracut module is to be used in the initramfs process
# if <use_as_dep> is set, then the process also keeps track
# that the modules were checked for the dependency tracking process
check_module() {
local _mod=$1
- local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; })
+ local _moddir=$3
local _ret
local _moddep
+
+ [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
# If we are already scheduled to be loaded, no need to check again.
[[ " $mods_to_load " == *\ $_mod\ * ]] && return 0
[[ " $mods_checked_as_dep " == *\ $_mod\ * ]] && return 1
@@ -799,9 +812,9 @@
if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ $_mod\ * ]]; then
if [[ " $dracutmodules $force_add_dracutmodules " == *\ $_mod\ * ]]; then
- module_check $_mod 1; ret=$?
+ module_check $_mod 1 $_moddir; ret=$?
else
- module_check $_mod 0; ret=$?
+ module_check $_mod 0 $_moddir; ret=$?
fi
# explicit module, so also accept ret=255
[[ $ret = 0 || $ret = 255 ]] || return 1
@@ -809,7 +822,7 @@
# module not in our list
if [[ $dracutmodules = all ]]; then
# check, if we can and should install this module
- module_check $_mod; ret=$?
+ module_check $_mod 0 $_moddir; ret=$?
if [[ $ret != 0 ]]; then
[[ $2 ]] && return 1
[[ $ret != 255 ]] && return 1
@@ -820,7 +833,7 @@
fi
fi
- for _moddep in $(module_depends $_mod); do
+ for _moddep in $(module_depends $_mod $_moddir); do
# handle deps as if they were manually added
[[ " $dracutmodules " == *\ $_mod\ * ]] \
&& [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -845,7 +858,7 @@
}
# for_each_module_dir <func>
-# execute "<func> <dracut module> 1"
+# execute "<func> <dracut module> 1 <module path>"
for_each_module_dir() {
local _modcheck
local _mod
@@ -857,7 +870,7 @@
[[ -e $_moddir/install || -e $_moddir/installkernel || \
-e $_moddir/module-setup.sh ]] || continue
_mod=${_moddir##*/}; _mod=${_mod#[0-9][0-9]}
- $_func $_mod 1
+ $_func $_mod 1 $_moddir
done
# Report any missing dracut modules, the user has specified
@@ -878,77 +891,6 @@
done
}
-# Install a single kernel module along with any firmware it may require.
-# $1 = full path to kernel module to install
-install_kmod_with_fw() {
- # no need to go further if the module is already installed
-
- [[ -e "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}" ]] \
- && return 0
-
- if [[ $omit_drivers ]]; then
- local _kmod=${1##*/}
- _kmod=${_kmod%.ko*}
- _kmod=${_kmod/-/_}
- if [[ "$_kmod" =~ $omit_drivers ]]; then
- dinfo "Omitting driver $_kmod"
- return 0
- fi
- if [[ "${1##*/lib/modules/$kernel/}" =~ $omit_drivers ]]; then
- dinfo "Omitting driver $_kmod"
- return 0
- fi
- fi
-
- if [[ $silent_omit_drivers ]]; then
- local _kmod=${1##*/}
- _kmod=${_kmod%.ko*}
- _kmod=${_kmod/-/_}
- [[ "$_kmod" =~ $silent_omit_drivers ]] && return 0
- [[ "${1##*/lib/modules/$kernel/}" =~ $silent_omit_drivers ]] && return 0
- fi
-
- inst_simple "$1" "/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- ret=$?
- (($ret != 0)) && return $ret
- if [ "${1##*.ko}" = ".xz" ]; then
- dinfo "unxz ${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- unxz -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- elif [ "${1##*.ko}" = ".gz" ]; then
- dinfo "gunzip ${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- gunzip -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
- fi
-
- local _modname=${1##*/} _fwdir _found _fw
- _modname=${_modname%.ko*}
- for _fw in $(modinfo -k $kernel -F firmware $1 2>/dev/null); do
- _found=''
- for _fwdir in $fw_dir; do
- [[ -d $_fwdir ]] || continue
- if [[ -f $_fwdir/$_fw ]]; then
- inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
- elif [[ -f $_fwdir/$_fw.xz ]]; then
- inst_simple "$_fwdir/$_fw.xz" "/lib/firmware/$_fw.xz"
- rm -f "${initdir}/lib/firmware/$_fw"
- unxz -f "${initdir}/lib/firmware/$_fw.xz"
- else
- continue
- fi
- _found=yes
- done
- if [[ $_found != yes ]]; then
- if ! [[ -d $(echo /sys/module/${_modname//-/_}|{ read a b; echo $a; }) ]]; then
- dinfo "Possible missing firmware \"${_fw}\" for kernel module" \
- "\"${_modname}.ko\""
- else
- dwarn "Possible missing firmware \"${_fw}\" for kernel module" \
- "\"${_modname}.ko\""
- fi
- fi
- done
- return 0
-}
-
# Do something with all the dependencies of a kernel module.
# Note that kernel modules depend on themselves using the technique we use
# $1 = function to call for each dependency we find
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut.sh new/dracut-049+git108.6c9d1156/dracut.sh
--- old/dracut-049+git104.1244eed7/dracut.sh 2019-07-19 16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/dracut.sh 2019-08-26 16:39:23.000000000 +0200
@@ -1311,8 +1311,8 @@
[[ -d $udevdir ]] \
|| udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
if ! [[ -d "$udevdir" ]]; then
- [[ -e /lib/udev/collect ]] && udevdir=/lib/udev
- [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev
+ [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev
+ [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev
fi
[[ -d $systemdutildir ]] \
@@ -1373,7 +1373,7 @@
for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
_d_mod=${moddir##*/}; _d_mod=${_d_mod#[0-9][0-9]}
[[ ${_mods_to_print[$_d_mod]} ]] || continue
- module_cmdline "$_d_mod"
+ module_cmdline "$_d_mod" "$moddir"
done
unset moddir
}
@@ -1454,14 +1454,14 @@
dinfo "*** Including module: $_d_mod ***"
fi
if [[ $kernel_only == yes ]]; then
- module_installkernel "$_d_mod" || {
+ module_installkernel "$_d_mod" "$moddir" || {
dfatal "installkernel failed in module $_d_mod"
exit 1
}
else
- module_install "$_d_mod"
+ module_install "$_d_mod" "$moddir"
if [[ $no_kernel != yes ]]; then
- module_installkernel "$_d_mod" || {
+ module_installkernel "$_d_mod" "$moddir" || {
dfatal "installkernel failed in module $_d_mod"
exit 1
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git104.1244eed7/install/dracut-install.c new/dracut-049+git108.6c9d1156/install/dracut-install.c
--- old/dracut-049+git104.1244eed7/install/dracut-install.c 2019-07-19 16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/install/dracut-install.c 2019-08-26 16:39:23.000000000 +0200
@@ -1151,6 +1151,8 @@
ret = -1;
STRV_FOREACH(q, firmwaredirs) {
_cleanup_free_ char *fwpath = NULL;
+ _cleanup_free_ char *fwpath_xz = NULL;
+ const char *fw;
struct stat sb;
int r;
@@ -1160,12 +1162,21 @@
exit(EXIT_FAILURE);
}
+ fw = fwpath;
if (stat(fwpath, &sb) != 0) {
- log_debug("stat(%s) != 0", fwpath);
- continue;
+ r = asprintf(&fwpath_xz, "%s.xz", fwpath);
+ if (r < 0) {
+ log_error("Out of memory!");
+ exit(EXIT_FAILURE);
+ }
+ if (stat(fwpath_xz, &sb) != 0) {
+ log_debug("stat(%s) != 0", fwpath);
+ continue;
+ }
+ fw = fwpath_xz;
}
- ret = dracut_install(fwpath, fwpath, false, false, true);
+ ret = dracut_install(fw, fw, false, false, true);
if (ret == 0)
log_debug("dracut_install '%s' OK", fwpath);
}
++++++ dracut.obsinfo ++++++
--- /var/tmp/diff_new_pack.nM2uAG/_old 2019-09-02 12:43:48.709763887 +0200
+++ /var/tmp/diff_new_pack.nM2uAG/_new 2019-09-02 12:43:48.709763887 +0200
@@ -1,5 +1,5 @@
name: dracut
-version: 049+git104.1244eed7
-mtime: 1563545771
-commit: 1244eed724bbf95f36a7535fe6b9ad197887960c
+version: 049+git108.6c9d1156
+mtime: 1566830363
+commit: 6c9d1156d1d2eea7147a76d75a06a676e0de8985
1
0
Hello community,
here is the log from the commit of package perl-RPC-XML for openSUSE:Factory checked in at 2019-09-02 12:43:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-RPC-XML (Old)
and /work/SRC/openSUSE:Factory/.perl-RPC-XML.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-RPC-XML"
Mon Sep 2 12:43:21 2019 rev:29 rq:726194 version:0.80
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-RPC-XML/perl-RPC-XML.changes 2016-03-16 10:25:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-RPC-XML.new.7948/perl-RPC-XML.changes 2019-09-02 12:43:21.197768848 +0200
@@ -1,0 +2,43 @@
+Thu Aug 22 12:35:17 CEST 2019 - Tina Mueller <tina.mueller(a)suse.com>
+
+- Remove patches not needed anymore:
+ * RPC-XML-0.60-rev127.dif
+ * RPC-XML-0.76-extern_ent.dif
+ * RPC-XML-0.78-reproducible.diff
+
+-------------------------------------------------------------------
+Wed Apr 3 07:27:15 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 0.80
+ see /usr/share/doc/packages/perl-RPC-XML/ChangeLog
+
+ 0.80 Sunday May 8, 2016, 12:45:00 PM -0700
+
+ * etc/make_method
+ Make the build reproducible by dropping timestamps in
+ make_method output. (Niko Tyni)
+
+ * t/40_server.t
+ * t/40_server_xmllibxml.t
+ * t/50_client.t
+ Fixes for test problems with Strawberry Perl.
+
+ * lib/RPC/XML/Client.pm
+ Fix leak caused by failing to free Expat parser. We don't want
+ to return from the method until the parser's been freed. We
+ therefore need to call $parser->release() before the return
+ statements caused by request failures. (Tom Grimwood-Taylor)
+
+ * lib/RPC/XML/Server.pm
+ One socket-opt change, one typo corrected.
+
+ * lib/RPC/XML.pm
+ Applied patch for numeric regexes and critic cleanup. Addresses
+ GitHub pull request #10 and RT #111636.
+
+ * t/60_net_server.t
+ RT #99578: Work-around fix for Net::Server+IO::Socket::IP. If a
+ system's IPv6 declaration of localhost was before the IPv4
+ declaration in the hosts file, this test would fail.
+
+-------------------------------------------------------------------
Old:
----
RPC-XML-0.60-rev127.dif
RPC-XML-0.76-extern_ent.dif
RPC-XML-0.78-reproducible.diff
RPC-XML-0.79.tar.gz
New:
----
RPC-XML-0.80.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-RPC-XML.spec ++++++
--- /var/tmp/diff_new_pack.bgHSdd/_old 2019-09-02 12:43:21.985768706 +0200
+++ /var/tmp/diff_new_pack.bgHSdd/_new 2019-09-02 12:43:21.985768706 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-RPC-XML
#
-# Copyright (c) 2016 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,36 +12,33 @@
# 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-RPC-XML
-Version: 0.79
+Version: 0.80
Release: 0
%define cpan_name RPC-XML
-Summary: Set of Classes for Core Data, Message and Xml Handling
-License: Artistic-1.0 or GPL-1.0+
+Summary: Set of classes for core data, message and XML handling
+License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
-Url: http://search.cpan.org/dist/RPC-XML/
-Source0: http://www.cpan.org/authors/id/R/RJ/RJRAY/%{cpan_name}-0.79.tar.gz
+Url: https://metacpan.org/release/%{cpan_name}
+Source0: https://cpan.metacpan.org/authors/id/R/RJ/RJRAY/%{cpan_name}-%{version}.tar…
Source1: cpanspec.yml
-Patch0: RPC-XML-0.60-rev127.dif
-Patch1: RPC-XML-0.76-extern_ent.dif
-Patch2: RPC-XML-0.77-fixtest.dif
-Patch3: RPC-XML-0.78-reproducible.diff
+Patch0: RPC-XML-0.77-fixtest.dif
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(LWP) >= 5.834
BuildRequires: perl(Module::Load) >= 0.24
-BuildRequires: perl(Scalar::Util) >= 1.19
+BuildRequires: perl(Scalar::Util) >= 1.33
BuildRequires: perl(Test::More) >= 0.94
BuildRequires: perl(XML::Parser) >= 2.31
Requires: perl(LWP) >= 5.834
Requires: perl(Module::Load) >= 0.24
-Requires: perl(Scalar::Util) >= 1.19
+Requires: perl(Scalar::Util) >= 1.33
Requires: perl(Test::More) >= 0.94
Requires: perl(XML::Parser) >= 2.31
Recommends: perl(Compress::Raw::Zlib) >= 2.063
@@ -68,17 +65,14 @@
%prep
%setup -q -n %{cpan_name}-%{version}
find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
-##%patch0
-%patch1
-%patch2 -p1
-%patch3 -p1
+%patch0 -p1
%build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} %{?_smp_mflags}
+perl Makefile.PL INSTALLDIRS=vendor
+make %{?_smp_mflags}
%check
-%{__make} test
+make test
%install
%perl_make_install
++++++ RPC-XML-0.79.tar.gz -> RPC-XML-0.80.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/ChangeLog new/RPC-XML-0.80/ChangeLog
--- old/RPC-XML-0.79/ChangeLog 2015-05-01 17:51:23.000000000 +0200
+++ new/RPC-XML-0.80/ChangeLog 2016-05-08 22:01:53.000000000 +0200
@@ -9,6 +9,35 @@
allowing choice of character-set encodings for
XML messages.
+0.80 Sunday May 8, 2016, 12:45:00 PM -0700
+
+ * etc/make_method
+ Make the build reproducible by dropping timestamps in
+ make_method output. (Niko Tyni)
+
+ * t/40_server.t
+ * t/40_server_xmllibxml.t
+ * t/50_client.t
+ Fixes for test problems with Strawberry Perl.
+
+ * lib/RPC/XML/Client.pm
+ Fix leak caused by failing to free Expat parser. We don't want
+ to return from the method until the parser's been freed. We
+ therefore need to call $parser->release() before the return
+ statements caused by request failures. (Tom Grimwood-Taylor)
+
+ * lib/RPC/XML/Server.pm
+ One socket-opt change, one typo corrected.
+
+ * lib/RPC/XML.pm
+ Applied patch for numeric regexes and critic cleanup. Addresses
+ GitHub pull request #10 and RT #111636.
+
+ * t/60_net_server.t
+ RT #99578: Work-around fix for Net::Server+IO::Socket::IP. If a
+ system's IPv6 declaration of localhost was before the IPv4
+ declaration in the hosts file, this test would fail.
+
0.79 Friday May 1, 2015, 09:00:00 AM -0700
* t/40_server.t
@@ -1846,9 +1875,9 @@
* *
All files are tracked from this point forward.
-# Generated on Friday May 1, 2015, 11:49:53 AM -0400
-# Using changelog2x/0.11, App::Changelog2x/0.11, XML::LibXML/2.0117,
-# XML::LibXSLT/1.92, libxml/2.9.0, libxslt/1.1.28 (with exslt)
+# Generated on Sunday May 8, 2016, 12:58:19 PM -0700
+# Using changelog2x/0.11, App::Changelog2x/0.11, XML::LibXML/2.0110,
+# XML::LibXSLT/1.94, libxml/2.9.0, libxslt/1.1.28 (with exslt)
# XSLT sources:
# $Id: changelog2text.xslt 8 2009-01-19 06:46:50Z rjray $
# $Id: common-text.xslt 8 2009-01-19 06:46:50Z rjray $
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/ChangeLog.xml new/RPC-XML-0.80/ChangeLog.xml
--- old/RPC-XML-0.79/ChangeLog.xml 2015-05-01 17:46:35.000000000 +0200
+++ new/RPC-XML-0.80/ChangeLog.xml 2016-05-08 21:45:23.000000000 +0200
@@ -16,6 +16,59 @@
extensions to the base protocol in terms of supporting HTTP/1.1 and
allowing choice of character-set encodings for XML messages.
</description>
+ <release date="2016-05-08T12:45:00-07:00" version="0.80" sc:tag="0.80">
+ <change git:commit="32560525e443799daa8d2a2429ea9d1d782a1bfd">
+ <file path="etc/make_method" />
+ <description>
+ Make the build reproducible by dropping timestamps in make_method
+ output. (Niko Tyni)
+ </description>
+ </change>
+ <change git:commit="3270580b3538e108a2df16273e7513d197eee2d3">
+ <fileset>
+ <file path="t/40_server.t" />
+ <file path="t/40_server_xmllibxml.t" />
+ <file path="t/50_client.t" />
+ </fileset>
+ <description>
+ Fixes for test problems with Strawberry Perl.
+ </description>
+ </change>
+ <change git:commit="d5671287e928fc2911bccb88da9ffb73531e5e4c">
+ <file path="lib/RPC/XML/Client.pm" />
+ <description>
+ Fix leak caused by failing to free Expat parser. We don't want to
+ return from the method until the parser's been freed. We therefore
+ need to call $parser->release() before the return statements caused
+ by request failures. (Tom Grimwood-Taylor)
+ </description>
+ </change>
+ <change git:commit="8158b17b8979c0126a5824909e8f57e1d4c13dd8">
+ <file path="lib/RPC/XML/Server.pm" />
+ <description>
+ One socket-opt change, one typo corrected.
+ </description>
+ </change>
+ <change git:commit="703a41a19874b54c8edf7d287752b5bf5d0c0008">
+ <file path="lib/RPC/XML.pm" />
+ <description>
+ Applied patch for numeric regexes and critic cleanup. Addresses
+ <xhtml:a href="https://github.com/rjray/rpc-xml/pull/10">GitHub
+ pull request #10</xhtml:a> and
+ <xhtml:a href="https://rt.cpan.org/Ticket/Display.html?id=111636">RT
+ #111636</xhtml:a>.
+ </description>
+ </change>
+ <change git:commit="b183920628411a7a19a1251ebae6907ccda72739">
+ <file path="t/60_net_server.t" />
+ <description>
+ <xhtml:a href="https://rt.cpan.org/Ticket/Display.html?id=99578">RT #99578</xhtml:a>:
+ Work-around fix for Net::Server+IO::Socket::IP. If a system's IPv6
+ declaration of localhost was before the IPv4 declaration in the hosts
+ file, this test would fail.
+ </description>
+ </change>
+ </release>
<release date="2015-05-01T09:00:00-07:00" version="0.79" sc:tag="0.79">
<change git:commit="70f6e31b98b3e80bb2ab5fe99f1e42dc454271e9">
<fileset>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/META.json new/RPC-XML-0.80/META.json
--- old/RPC-XML-0.79/META.json 2015-05-01 17:55:49.000000000 +0200
+++ new/RPC-XML-0.80/META.json 2016-05-08 22:15:05.000000000 +0200
@@ -4,7 +4,7 @@
"Randy J. Ray"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.143240",
+ "generated_by" : "ExtUtils::MakeMaker version 7.16, CPAN::Meta::Converter version 2.150005",
"license" : [
"perl_5"
],
@@ -59,5 +59,6 @@
"url" : "http://github.com/rjray/rpc-xml"
}
},
- "version" : "0.79"
+ "version" : "0.80",
+ "x_serialization_backend" : "JSON::PP version 2.27400"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/META.yml new/RPC-XML-0.80/META.yml
--- old/RPC-XML-0.79/META.yml 2015-05-01 17:55:49.000000000 +0200
+++ new/RPC-XML-0.80/META.yml 2016-05-08 22:15:05.000000000 +0200
@@ -7,7 +7,7 @@
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.143240'
+generated_by: 'ExtUtils::MakeMaker version 7.16, CPAN::Meta::Converter version 2.150005'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -35,4 +35,5 @@
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=RPC-XML
homepage: http://search.cpan.org/dist/RPC-XML
repository: http://github.com/rjray/rpc-xml
-version: '0.79'
+version: '0.80'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/Makefile.PL new/RPC-XML-0.80/Makefile.PL
--- old/RPC-XML-0.79/Makefile.PL 2015-05-01 17:43:46.000000000 +0200
+++ new/RPC-XML-0.80/Makefile.PL 2016-05-08 21:53:02.000000000 +0200
@@ -65,7 +65,7 @@
WriteMakefile(
NAME => 'RPC::XML',
- VERSION => '0.79',
+ VERSION => '0.80',
AUTHOR => 'Randy J. Ray',
ABSTRACT => 'Data, client and server classes for XML-RPC',
EXE_FILES => \@scripts,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/README new/RPC-XML-0.80/README
--- old/RPC-XML-0.79/README 2015-05-01 17:54:02.000000000 +0200
+++ new/RPC-XML-0.80/README 2016-05-08 22:04:23.000000000 +0200
@@ -1,6 +1,6 @@
RPC::XML - An implementation of XML-RPC
-Version: 0.79
+Version: 0.80
WHAT IS IT
@@ -66,49 +66,29 @@
CHANGES
+* etc/make_method
+Make the build reproducible by dropping timestamps in
+make_method output. (Niko Tyni)
+
* t/40_server.t
* t/40_server_xmllibxml.t
-* t/41_server_hang.t
-* t/60_net_server.t
-* t/70_compression_detect.t
-* t/90_rt54183_sigpipe.t
-* t/util.pl
-Test clean-up/fixes to address CPAN test failures. Should
-address problems with having IO::Socket::IP acting in place of
-IO::Socket::INET and also address some issues with a dynloader
-bug being triggered by t/70_compression_detect.t.
-
-* t/00_load.t
-* t/10_data.t
-* t/11_base64_fh.t
-* t/12_nil.t
-* t/13_no_deep_recursion.t
-* t/14_datetime_iso8601.t
-* t/15_serialize.t
-* t/20_xml_parser.t
-* t/21_xml_libxml.t
-* t/25_parser_negative.t
-* t/29_parserfactory.t
-* t/30_procedure.t
-* t/35_namespaces.t
-* t/40_server.t
-* t/40_server_xmllibxml.t
-* t/41_server_hang.t
* t/50_client.t
-* t/51_client_with_host_header.t
+Fixes for test problems with Strawberry Perl.
+
+* lib/RPC/XML/Client.pm
+Fix leak caused by failing to free Expat parser. We don't want
+to return from the method until the parser's been freed. We
+therefore need to call $parser->release() before the return
+statements caused by request failures. (Tom Grimwood-Taylor)
+
+* lib/RPC/XML/Server.pm
+One socket-opt change, one typo corrected.
+
+* lib/RPC/XML.pm
+Applied patch for numeric regexes and critic cleanup. Addresses
+GitHub pull request #10 and RT #111636.
+
* t/60_net_server.t
-* t/90_rt50013_parser_bugs.t
-* t/90_rt54183_sigpipe.t
-* t/90_rt54494_blessed_refs.t
-* t/90_rt58065_allow_nil.t
-* t/90_rt58323_push_parser.t
-* t/util.pl
-Perl::Critic clean-up of test suites.
-
-* lib/RPC/XML/Parser/XMLParser.pm
-Fix to prevent a new sprintf-related warning in 5.21.
-
-* README
-* lib/Apache/RPC/status.code
-Merge pull request #8 from jkg/docfixes (James Green). Replace
-indirect object notation with direct.
+RT #99578: Work-around fix for Net::Server+IO::Socket::IP. If a
+system's IPv6 declaration of localhost was before the IPv4
+declaration in the hosts file, this test would fail.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/etc/make_method new/RPC-XML-0.80/etc/make_method
--- old/RPC-XML-0.79/etc/make_method 2011-08-15 03:01:11.000000000 +0200
+++ new/RPC-XML-0.80/etc/make_method 2015-06-05 09:15:49.000000000 +0200
@@ -363,7 +363,6 @@
}
}
- my $date = scalar localtime;
my %typemap = (
'm' => 'method',
p => 'procedure',
@@ -399,7 +398,7 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE $tag SYSTEM "rpc-method.dtd">
<!--
- Generated automatically by $cmd $VERSION on $date
+ Generated automatically by $cmd $VERSION
Any changes made here will be lost.
-->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/lib/RPC/XML/Client.pm new/RPC-XML-0.80/lib/RPC/XML/Client.pm
--- old/RPC-XML-0.79/lib/RPC/XML/Client.pm 2014-02-05 16:32:33.000000000 +0100
+++ new/RPC-XML-0.80/lib/RPC/XML/Client.pm 2015-09-28 07:08:44.000000000 +0200
@@ -406,12 +406,16 @@
$response = $self->useragent->request($reqclone, $cb);
if ($message = $response->headers->header('X-Died'))
{
+ $parser->release();
+
# One of the die's was triggered
return ('CODE' eq ref $self->error_handler) ?
$self->error_handler->($message) : $message;
}
if (! $response->is_success)
{
+ $parser->release();
+
$message = "$me: HTTP server error: " . $response->message;
return ('CODE' eq ref $self->error_handler) ?
$self->error_handler->($message) : $message;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/lib/RPC/XML/Server.pm new/RPC-XML-0.80/lib/RPC/XML/Server.pm
--- old/RPC-XML-0.79/lib/RPC/XML/Server.pm 2014-02-06 17:17:58.000000000 +0100
+++ new/RPC-XML-0.80/lib/RPC/XML/Server.pm 2015-06-29 03:27:25.000000000 +0200
@@ -171,7 +171,7 @@
$port = delete $args{port} || q{};
$queue = delete $args{queue} || 5;
$http = HTTP::Daemon->new(
- Reuse => 1,
+ ReuseAddr => 1,
($host ? (LocalHost => $host) : ()),
($port ? (LocalPort => $port) : ()),
($queue ? (Listen => $queue) : ())
@@ -690,7 +690,7 @@
};
if ((! $eval_return) && $@)
{
- warn "Cannot close conection: $@\n";
+ warn "Cannot close connection: $@\n";
}
undef $conn; # Free up any lingering resources
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/lib/RPC/XML.pm new/RPC-XML-0.80/lib/RPC/XML.pm
--- old/RPC-XML-0.79/lib/RPC/XML.pm 2014-02-06 17:19:16.000000000 +0100
+++ new/RPC-XML-0.80/lib/RPC/XML.pm 2016-05-07 18:02:48.000000000 +0200
@@ -41,6 +41,8 @@
## no critic (ProhibitMultiplePackages)
# The data-type package names trigger this one:
## no critic (Capitalization)
+# The XML escape map now has CR in it but I don't want to use charnames:
+## no critic (ProhibitEscapedCharacters)
BEGIN
{
@@ -67,7 +69,7 @@
RPC_NIL) ],
all => [ @EXPORT_OK ]);
-$VERSION = '1.60';
+$VERSION = '1.61';
$VERSION = eval $VERSION; ## no critic (ProhibitStringyEval)
# Global error string
@@ -76,12 +78,12 @@
# These are used for stringifying XML-sensitive characters that may appear
# in struct keys:
%XMLMAP = (
- q{>} => '>',
- q{<} => '<',
- q{&} => '&',
- q{"} => '"',
- q{'} => ''',
- "\x0d" => '
'
+ q{>} => '>',
+ q{<} => '<',
+ q{&} => '&',
+ q{"} => '"',
+ q{'} => ''',
+ "\x0d" => '
',
);
$XMLRE = join q{} => keys %XMLMAP; $XMLRE = qr/([$XMLRE])/;
@@ -159,6 +161,13 @@
# This is a (futile?) attempt to provide a "smart" encoding method that will
# take a Perl scalar and promote it to the appropriate RPC::XML::_type_.
{
+ # The regex for ints and floats uses [0-9] instead of \d on purpose, to
+ # only match ASCII digits.
+ ## no critic (ProhibitEnumeratedClasses)
+ # The regex for floats is long, but I don't feel like factoring it out
+ # right now.
+ ## no critic (ProhibitComplexRegexes)
+
my $MAX_INT = 2_147_483_647;
my $MIN_INT = -2_147_483_648;
my $MAX_BIG_INT = 9_223_372_036_854_775_807;
@@ -186,50 +195,50 @@
$seenrefs = bless {}, 'RPC::XML::refmap';
}
- foreach (@values)
+ for my $value (@values)
{
- if (! defined $_)
+ if (! defined $value)
{
$type = $ALLOW_NIL ?
RPC::XML::nil->new() : RPC::XML::string->new(q{});
}
- elsif (ref $_)
+ elsif (ref $value)
{
# Skip any that we've already seen
- next if $seenrefs->{$_}++;
+ next if $seenrefs->{$value}++;
- if (blessed($_) &&
- ($_->isa('RPC::XML::datatype') || $_->isa('DateTime')))
+ if (blessed($value) &&
+ ($value->isa('RPC::XML::datatype') || $value->isa('DateTime')))
{
# Only if the reference is a datatype or a DateTime
# instance, do we short-cut here...
- if ($_->isa('RPC::XML::datatype'))
+ if ($value->isa('RPC::XML::datatype'))
{
# Pass through any that have already been encoded
- $type = $_;
+ $type = $value;
}
else
{
# Must be a DateTime object, convert to ISO8601
$type = RPC::XML::datetime_iso8601
- ->new($_->clone->set_time_zone('UTC'));
+ ->new($value->clone->set_time_zone('UTC'));
}
}
- elsif (reftype($_) eq 'HASH')
+ elsif (reftype($value) eq 'HASH')
{
# Per RT 41063, to catch circular refs I can't delegate
# to the struct constructor, I have to create my own
# copy of the hash with locally-recursively-encoded
# values
my %newhash;
- for my $key (keys %{$_})
+ for my $key (keys %{$value})
{
# Forcing this into a list-context *should* make the
# test be true even if the return value is a hard
# undef. Only if the return value is an empty list
# should this evaluate as false...
- if (my @value = smart_encode($seenrefs, $_->{$key}))
+ if (my @value = smart_encode($seenrefs, $value->{$key}))
{
$newhash{$key} = $value[0];
}
@@ -237,65 +246,73 @@
$type = RPC::XML::struct->new(\%newhash);
}
- elsif (reftype($_) eq 'ARRAY')
+ elsif (reftype($value) eq 'ARRAY')
{
# This is a somewhat-ugly approach, but I don't want to
- # dereference @$_, but I also want people to be able to
+ # dereference @$value, but I also want people to be able to
# pass array-refs in to this constructor and have them
# be treated as single elements, as one would expect
# (see RT 35106)
- # Per RT 41063, looks like I get to deref $_ after all...
+ # Per RT 41063, looks like I get to deref $value after all...
$type = RPC::XML::array->new(
- from => [ smart_encode($seenrefs, @{$_}) ]
+ from => [ smart_encode($seenrefs, @{$value}) ]
);
}
- elsif (reftype($_) eq 'SCALAR')
+ elsif (reftype($value) eq 'SCALAR')
{
# This is a rare excursion into recursion, since the scalar
# nature (de-refed from the object, so no longer magic)
# will prevent further recursing.
- $type = smart_encode($seenrefs, ${$_});
+ $type = smart_encode($seenrefs, ${$value});
}
else
{
# If the user passed in a reference that didn't pass one
# of the above tests, we can't do anything with it:
- $type = reftype $_;
+ $type = reftype $value;
die "Un-convertable reference: $type, cannot use\n";
}
- $seenrefs->{$_}--;
+ $seenrefs->{$value}--;
}
# You have to check ints first, because they match the
# next pattern (for doubles) too
elsif (! $FORCE_STRING_ENCODING &&
- /^[-+]?\d+$/ &&
- $_ >= $MIN_BIG_INT &&
- $_ <= $MAX_BIG_INT)
+ $value =~ /^[-+]?[0-9]+$/ &&
+ $value >= $MIN_BIG_INT &&
+ $value <= $MAX_BIG_INT)
{
- if (($_ > $MAX_INT) || ($_ < $MIN_INT))
+ if (($value > $MAX_INT) || ($value < $MIN_INT))
{
- $type = RPC::XML::i8->new($_);
+ $type = RPC::XML::i8->new($value);
}
else
{
- $type = RPC::XML::int->new($_);
+ $type = RPC::XML::int->new($value);
}
}
# Pattern taken from perldata(1)
elsif (! $FORCE_STRING_ENCODING &&
- /^[+-]?(?=\d|[.]\d)\d*(?:[.]\d*)?(?:[Ee](?:[+-]?\d+))?$/x &&
- $_ > $MIN_DOUBLE &&
- $_ < $MAX_DOUBLE)
+ $value =~ m{
+ ^
+ [+-]?
+ (?=[0-9]|[.][0-9])
+ [0-9]*
+ (?:[.][0-9]*)?
+ (?:[Ee](?:[+-]?[0-9]+))?
+ $
+ }x &&
+ $value > $MIN_DOUBLE &&
+ $value < $MAX_DOUBLE)
{
- $type = RPC::XML::double->new($_);
+ $type = RPC::XML::double->new($value);
}
- elsif (/$DATETIME_REGEXP/)
+ elsif ($value =~ /$DATETIME_REGEXP/)
{
- $type = RPC::XML::datetime_iso8601->new($_);
+ $type = RPC::XML::datetime_iso8601->new($value);
}
else
{
- $type = RPC::XML::string->new($_);
+ $type = RPC::XML::string->new($value);
}
push @newvalues, $type;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/t/40_server.t new/RPC-XML-0.80/t/40_server.t
--- old/RPC-XML-0.79/t/40_server.t 2014-02-17 17:06:15.000000000 +0100
+++ new/RPC-XML-0.80/t/40_server.t 2015-06-30 09:38:00.000000000 +0200
@@ -173,7 +173,7 @@
my @localhostinfo = gethostbyname 'localhost';
my $local_ip = join q{.} => unpack 'C4', $localhostinfo[4];
my @allhosts = ($local_ip, $localhostinfo[0], split q{ } => $localhostinfo[1]);
-for (@allhosts) { s/[.]/\\./g }
+for (@allhosts) { s/[.]/[.]/g }
# Per RT 27778: For some reason gethostbyname('localhost') does not return
# "localhost" on win32
if ($^O eq 'MSWin32' || $^O eq 'cygwin')
@@ -182,7 +182,7 @@
}
if (none { /localdomain/ } @allhosts)
{
- push @allhosts, 'localhost\.localdomain';
+ push @allhosts, 'localhost[.]localdomain';
}
my $allhosts = join q{|} => @allhosts;
like($srv->url, qr{http://($allhosts):$port},
@@ -224,7 +224,7 @@
# Here goes...
$parser = RPC::XML::ParserFactory->new;
$UA = LWP::UserAgent->new;
-$req = HTTP::Request->new(POST => "http://localhost:$port/");
+$req = HTTP::Request->new(POST => $srv->url);
$child = start_server $srv;
$req->header(Content_Type => 'text/xml');
@@ -448,12 +448,11 @@
{
croak "Server allocation failed, cannot continue. Message was: $srv";
}
-$port = $srv->port;
# Did it get all of them?
is($srv->list_methods(), scalar(@API_METHODS),
'Correct number of methods (defaults)');
-$req = HTTP::Request->new(POST => "http://localhost:$port/");
+$req = HTTP::Request->new(POST => $srv->url);
$child = start_server $srv;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/t/40_server_xmllibxml.t new/RPC-XML-0.80/t/40_server_xmllibxml.t
--- old/RPC-XML-0.79/t/40_server_xmllibxml.t 2014-02-17 17:56:11.000000000 +0100
+++ new/RPC-XML-0.80/t/40_server_xmllibxml.t 2015-06-30 09:23:49.000000000 +0200
@@ -121,7 +121,7 @@
# Here goes...
$parser = RPC::XML::ParserFactory->new;
$UA = LWP::UserAgent->new;
-$req = HTTP::Request->new(POST => "http://localhost:$port/");
+$req = HTTP::Request->new(POST => $srv->url);
$child = start_server $srv;
$req->header(Content_Type => 'text/xml');
@@ -297,11 +297,10 @@
{
croak "Server allocation failed, cannot continue. Message was: $srv";
}
-$port = $srv->port;
# Did it get all of them?
is($srv->list_methods(), scalar(@API_METHODS),
'Correct number of methods (defaults)');
-$req = HTTP::Request->new(POST => "http://localhost:$port/");
+$req = HTTP::Request->new(POST => $srv->url);
$child = start_server $srv;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/t/50_client.t new/RPC-XML-0.80/t/50_client.t
--- old/RPC-XML-0.79/t/50_client.t 2014-02-17 23:18:18.000000000 +0100
+++ new/RPC-XML-0.80/t/50_client.t 2015-06-30 18:28:14.000000000 +0200
@@ -21,7 +21,7 @@
use RPC::XML::Server;
use RPC::XML::Client;
-my ($dir, $vol, $srv, $child, $port, $cli, $res, $flag);
+my ($dir, $vol, $srv, $child, $port, $cli, $res, $flag, $srv_url);
($vol, $dir, undef) = File::Spec->splitpath(File::Spec->rel2abs($0));
$dir = File::Spec->catpath($vol, $dir, q{});
@@ -46,7 +46,7 @@
croak 'No usable port found between 9000 and 11000, skipping';
}
$cli = RPC::XML::Client->new("http://localhost:$port");
-$cli->timeout(5); #to prevent long waiting for non-existing server
+$cli->timeout(5); # to prevent long waiting for non-existing server
isa_ok($cli, 'RPC::XML::Client', '$cli');
# With no server yet at that port, test the failure modes
@@ -95,6 +95,14 @@
{
croak "Failed to create server: $srv, stopped";
}
+# Due to issues with Strawberry Perl on Windows, have to explicitly set the
+# endpoint to what the server object thinks it is. Also, because of threading
+# issues with Strawberry, we need to save the URL value for later use while
+# the server is running.
+$srv_url = $srv->url;
+$cli->uri($srv_url);
+
+# Start the server...
$child = start_server $srv;
# NOW, this should work. Also, set $RPC::XML::ERROR to see if it clears
@@ -206,8 +214,8 @@
}
# Last tests-- is the uri() method working?
-like($cli->uri, qr{http://localhost([.]localdomain)?:$port/?}x,
- 'RPC::XML::Client::uri method return value is correct');
+is($cli->uri, $srv_url,
+ 'RPC::XML::Client::uri method return value is correct');
# does calling it as an accesor change it at all?
$cli->uri('http://www.oreilly.com/RPC');
@@ -217,6 +225,10 @@
# Kill the server long enough to add a new method
stop_server $child;
+# Restore the server URL in the client. Due to some threading issues seen in
+# Strawberry Perl, must do this while $srv is not running.
+$cli->uri($srv->url);
+
SKIP: {
if ($LWP::VERSION <= 5.800)
{
@@ -253,7 +265,6 @@
$cli->message_file_thresh(-s $fh1);
$cli->message_temp_dir($dir);
- $cli->uri("http://localhost:$port/");
$res = $cli->send_request(cmpImg =>
RPC::XML::base64->new($fh1),
RPC::XML::base64->new($fh2));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RPC-XML-0.79/t/60_net_server.t new/RPC-XML-0.80/t/60_net_server.t
--- old/RPC-XML-0.79/t/60_net_server.t 2014-02-17 23:52:37.000000000 +0100
+++ new/RPC-XML-0.80/t/60_net_server.t 2016-05-08 22:10:42.000000000 +0200
@@ -21,7 +21,7 @@
use RPC::XML::Client;
my ($dir, $srv, $pid_file, $log_file, $port, $client, $res, @keys, $meth, $list,
- $bucket, %seen);
+ $bucket, %seen, $srv_hostname);
if ($^O eq 'MSWin32')
{
@@ -39,6 +39,21 @@
plan tests => 30;
}
+# Presently, there is a problem with Net::Server+IO::Socket::IP, when the IPv6
+# entry for 'localhost' comes before the IPv4 entry in /etc/hosts. For now, to
+# get through the tests, look for that combination and substitute 127.0.0.1 for
+# 'localhost' (and hope they don't have a weird network configuration).
+# See RT#105679.
+if (eval { load IO::Socket::IP; 1; })
+{
+ carp 'Working around an issue with Net::Server+IO::Socket::IP';
+ $srv_hostname = '127.0.0.1';
+}
+else
+{
+ $srv_hostname = 'localhost';
+}
+
(undef, $dir, undef) = File::Spec->splitpath(File::Spec->rel2abs($0));
require File::Spec->catfile($dir, 'util.pl');
@@ -69,7 +84,7 @@
log_level => 4,
pid_file => $pid_file,
port => $port,
- host => 'localhost',
+ host => $srv_hostname,
background => 1);
sleep 1; # Allow time for server to spin up
# Unless we see "ok 2", we have a problem
@@ -331,8 +346,4 @@
carp "WARNING: Opening $pid_file failed: $! (zombie processes may remain)";
}
-# If we are exiting cleanly, remove the log file. If we croak'd, we should
-# never reach this line:
-unlink $log_file;
-
exit;
++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.bgHSdd/_old 2019-09-02 12:43:22.569768601 +0200
+++ /var/tmp/diff_new_pack.bgHSdd/_new 2019-09-02 12:43:22.581768599 +0200
@@ -5,13 +5,8 @@
# - source1
# - source2
patches:
- #PATCH-FIX-OPENSUSE - ro(a)suse.de - fix build in chroot/buildservice
- RPC-XML-0.60-rev127.dif:
- RPC-XML-0.76-extern_ent.dif:
#PATCH-FIX-UPSTREAM - coolo(a)suse.de RT#86187
RPC-XML-0.77-fixtest.dif: -p1
- #PATCH-FIX-OPENSUSE - coolo(a)suse.de reproducible builds
- RPC-XML-0.78-reproducible.diff: -p1
# foo.patch: -p1
# bar.patch:
#preamble: |-
1
0
Hello community,
here is the log from the commit of package nodejs10 for openSUSE:Factory checked in at 2019-09-02 12:42:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs10 (Old)
and /work/SRC/openSUSE:Factory/.nodejs10.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs10"
Mon Sep 2 12:42:52 2019 rev:15 rq:726170 version:10.16.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs10/nodejs10.changes 2019-08-07 13:58:02.416855090 +0200
+++ /work/SRC/openSUSE:Factory/.nodejs10.new.7948/nodejs10.changes 2019-09-02 12:42:55.873773415 +0200
@@ -1,0 +2,17 @@
+Fri Aug 16 14:33:44 UTC 2019 - Adam Majer <adam.majer(a)suse.de>
+
+- Update to 10.16.3:
+ Security update regarding HTTP/2 Denial of Service vulnerabilities
+ For details see,
+ https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V12.md#…
+ https://github.com/Netflix/security-bulletins/blob/master/advisories/third-…
+ (CVE-2019-9511, CVE-2019-9512, CVE-2019-9513, CVE-2019-9514,
+ bsc#1146091, bsc#1146099, bsc#1146094, bsc#1146095,
+ CVE-2019-9515, CVE-2019-9516, CVE-2019-9517, CVE-2019-9518,
+ bsc#1146100, bsc#1146090, bsc#1146097, bsc#1146093)
+
+- Changes in 10.16.2:
+ * fix OpenSSL upgrade to 1.1.1c that causes intermittent hangs in
+ machines that have low entropy.
+
+-------------------------------------------------------------------
Old:
----
node-v10.16.1.tar.xz
New:
----
node-v10.16.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nodejs10.spec ++++++
--- /var/tmp/diff_new_pack.lebjXj/_old 2019-09-02 12:42:57.125773189 +0200
+++ /var/tmp/diff_new_pack.lebjXj/_new 2019-09-02 12:42:57.125773189 +0200
@@ -26,7 +26,7 @@
###########################################################
Name: nodejs10
-Version: 10.16.1
+Version: 10.16.3
Release: 0
%define node_version_number 10
@@ -199,7 +199,7 @@
%if ! 0%{with intree_openssl}
%if %node_version_number >= 8
-BuildRequires: openssl-devel >= %{openssl_req_ver}
+BuildRequires: pkgconfig(openssl) >= %{openssl_req_ver}
%else # older node doesn't support OpenSSL 1.1
%if 0%{?suse_version} >= 1330
@@ -220,7 +220,7 @@
%endif
%if ! 0%{with intree_nghttp2}
-BuildRequires: libnghttp2-devel >= 1.34.0
+BuildRequires: libnghttp2-devel >= 1.39.2
%endif
%if 0%{with valgrind_tests}
@@ -369,7 +369,7 @@
# percent-configure pulls in something that confuses node's configure
# script, so we'll do it thus:
export CFLAGS="%{optflags}"
-export CXXFLAGS="%{optflags} -Wno-class-memaccess"
+export CXXFLAGS="%{optflags} -Wno-class-memaccess -Wno-error=return-type"
%if 0%{?cc_exec:1}
export CC=%{?cc_exec}
++++++ SHASUMS256.txt ++++++
--- /var/tmp/diff_new_pack.lebjXj/_old 2019-09-02 12:42:57.161773183 +0200
+++ /var/tmp/diff_new_pack.lebjXj/_new 2019-09-02 12:42:57.161773183 +0200
@@ -1,36 +1,36 @@
-f9afd5285438e2f6b72c5c529a9f28a80f0fcd9cdc003e477d6e95177d89fdc2 node-v10.16.1-aix-ppc64.tar.gz
-328e61fdacfe2f6f1a049d57e248b3eafc0345747831323a14fe1edf98d9b3bb node-v10.16.1-darwin-x64.tar.gz
-c77d44ad057e1eea84b05b02e8392bb8f1c5b6392b006ecf76734e2d19c8e4c0 node-v10.16.1-darwin-x64.tar.xz
-2589cafd5f11241fbfae3592b1337e97be86e436ad7a1db00d12586506f753ed node-v10.16.1-headers.tar.gz
-e93ef520f3e750d8da1d48be3087a83c12671ade0261160bbee8a8c6e309b4af node-v10.16.1-headers.tar.xz
-c5f1df1ae559a9e40fc7216f4c82379d4e8ce64a96921ab0bed216c82cf9a1f3 node-v10.16.1-linux-arm64.tar.gz
-c46ba1a8e9b9c0490ae81f8b2b13d332ed6f5c86d172fa817f749042ab329b93 node-v10.16.1-linux-arm64.tar.xz
-a783a7d1ba8c994616e3aa3b71f932fdaa35953e6461f1bbe2f48f55bc98cdb5 node-v10.16.1-linux-armv6l.tar.gz
-de6055a51019b3f4abc7d53dbbacc34134471726de63b170dc7ff6a9eb0f3efd node-v10.16.1-linux-armv6l.tar.xz
-7977c13f29827ef9177fe79948c39e2f000fa2ae10aa6c4b4de9f47d756354aa node-v10.16.1-linux-armv7l.tar.gz
-ac05af22142d36fdab28c6304c98043341f5cdff715494ef1c2d2a94a3432dd6 node-v10.16.1-linux-armv7l.tar.xz
-c1df7db6455f6f985c246b6d9acadb75d242ab0eb1ea4b7b8a51b3343c6aae74 node-v10.16.1-linux-ppc64le.tar.gz
-09c543051096dbca046becde26c0e535a242e20d315f3d80fcb14f1ceb013985 node-v10.16.1-linux-ppc64le.tar.xz
-388ed445df5a6560b0174fb14491be018b0e80b56a8c392123a8b21b24b533d0 node-v10.16.1-linux-s390x.tar.gz
-fc8193c8f72ce4ccd6af9cff7d073455dc200ef183964abd50ba63a6a0b69f9e node-v10.16.1-linux-s390x.tar.xz
-32db9700d2ba926e774c17e7cd8952499e64e241b095d22e05d3d62ebe4cb6d4 node-v10.16.1-linux-x64.tar.gz
-127d9b2f485523805208f867fc513842570b29b4d6831773eeb6dd403a22ba9d node-v10.16.1-linux-x64.tar.xz
-081cdcb0d43d141411cb308fd4ed7038cb15390a6d649974b8d85acf2c53e139 node-v10.16.1.pkg
-3b7b2feb98380b082d9774b01081e815d6b459dc4125855d9f2dea9559c3d580 node-v10.16.1-sunos-x64.tar.gz
-e3c2582645333ba62d81464221d40cdbc811aed793c45c7418f87221f37b0a69 node-v10.16.1-sunos-x64.tar.xz
-98c92edcfced73b572917d01a53aa9deefec85d8a2fe96c46fe10ee1d0a7763d node-v10.16.1.tar.gz
-6268319c8dddfdaa7886ea3f253ac5c2d133a6c682c00786296227e03f322009 node-v10.16.1.tar.xz
-70b08ba7b488dee2b135b6d5c02ac5ccd6954fd5623da5b3408dec63ce60e6f9 node-v10.16.1-win-x64.7z
-1ff8b26670e1b935b51f4b795728f29845c31a3c38b3220b4fe71fb139bc5623 node-v10.16.1-win-x64.zip
-ba46e3bd5be77d5c13ac41efacb211508bef6da6cff894a2d0e99ddee79a244e node-v10.16.1-win-x86.7z
-57c2b141c8122d5bfc8ebdaaf5c81b382e3f6fdd3fa7b936a210d8e8e278e4d6 node-v10.16.1-win-x86.zip
-dc99f8c0be1e8bb1abfaa194113712ba85cc749bd32990f84cdcdd3b619f6a1c node-v10.16.1-x64.msi
-63d03dff4c314f0adb08ef22f2c0efb05cd425db6a83ccf6a6a035050db9cc47 node-v10.16.1-x86.msi
-bd4ce2f0543c2ca31c7a573bda7b816b51b5946e6dc8b7a4e0041b8ab0f758e7 win-x64/node.exe
-4c0f7168444b6ef0d469c9303d132520c56e6950cbe9616c2f86c08a498e3632 win-x64/node.lib
-835c121df473bcf58ff85d8f760e174f0dc11913aafa01a544b7dca7817d3794 win-x64/node_pdb.7z
-b84a1d4bc9b936958074f56802d6f50fa98efc1fbbce42c7288687f2f114a506 win-x64/node_pdb.zip
-4c69678620cc2ac6f2421a9585a01a7843499fce492e74e17545a46f1f810b2b win-x86/node.exe
-831fb788501920391120a99d20f443a1f32b6d6446870efcc35a50cd1e485f2b win-x86/node.lib
-91ccb69ae2bb425c2646f22c2476adc02d4ccd51d36f5f598d7ca60f43526f2c win-x86/node_pdb.7z
-0f2b9d30a0c5ed61e86da5fd33e2fdd13cf0deed411ee787bfd9e0b522ba47b4 win-x86/node_pdb.zip
+1e246436e177d69354b5e3ea47579a03b68d7b61a2565972c18c3a4cb5d8ee33 node-v10.16.3-aix-ppc64.tar.gz
+6febc571e1543c2845fa919c6d06b36a24e4e142c91aedbe28b6ff7d296119e4 node-v10.16.3-darwin-x64.tar.gz
+1d5ce05abf39ef482c2c3eaf16c1f4edb01314308066871d3dfc99e95701b19b node-v10.16.3-darwin-x64.tar.xz
+0901d1f1bfe0f5d922f9d79c5822a3624c11eb0f2de9fd552425bc98c7b95e54 node-v10.16.3-headers.tar.gz
+6ceb3249ac26a098c943de8104c19d7ea5a540b02db8652b80ab54deed1e5848 node-v10.16.3-headers.tar.xz
+3bab16e7107092e43426e082ee9fd88ef0a43a35816f662f14563bcc5152600d node-v10.16.3-linux-arm64.tar.gz
+8ee77bad022bd460bf2867a97bf56ce7ddc4aa2ace067e45995fb1721a958428 node-v10.16.3-linux-arm64.tar.xz
+c4ce8f8627c4d0d71647987924e5369cd1adeef2865bf1bdbb4387b75fba804b node-v10.16.3-linux-armv6l.tar.gz
+17b6ea87cde13c330a72c44be8a30ebebf83c7c71d1a1b92e1d629f273fa0743 node-v10.16.3-linux-armv6l.tar.xz
+f267710728ca56ca3b522076fff808540ea27d6aa5fd586bc0ad39c389530c3b node-v10.16.3-linux-armv7l.tar.gz
+4a6f27308cd0cea136be6f5f7c194b0faabea016efe844fb1452c846d2eca7b1 node-v10.16.3-linux-armv7l.tar.xz
+3e0f41b3cb991f062e1c93a297675af34d1a2f29052306cd585f1f5e25ea9159 node-v10.16.3-linux-ppc64le.tar.gz
+b51731b49f6816f5e3e670c399611eb9386f558cc2d597301fb73e585640a642 node-v10.16.3-linux-ppc64le.tar.xz
+ae87fa499fd5fd9d86d4f788cb4e54bd3eb4fdb735b20235537e9d38ae5da73b node-v10.16.3-linux-s390x.tar.gz
+90cc57506c98cd5561f5dda9e103fa70083242fff2b1a39a5351fc15ff63db46 node-v10.16.3-linux-s390x.tar.xz
+2f0397bb81c1d0c9901b9aff82a933257bf60f3992227b86107111a75b9030d9 node-v10.16.3-linux-x64.tar.gz
+d2271fd8cf997fa7447d638dfa92749ff18ca4b0d796bf89f2a82bf7800d5506 node-v10.16.3-linux-x64.tar.xz
+1c820559780c7a5b90ceebd819afce58f3c14805191141fbd59feb8485c2fc73 node-v10.16.3.pkg
+d8f2418b748c4c9b1d8c1dc008b42384ca87c4c4c134df3a3009e6b7546f8b23 node-v10.16.3-sunos-x64.tar.gz
+2952da9d127c3f72fe5b3e466fbfe8a45ab3ef63263d881da7e9b586559f3693 node-v10.16.3-sunos-x64.tar.xz
+db5a5e03a815b84a1266a4b48bb6a6d887175705f84fd2472f0d28e5e305a1f8 node-v10.16.3.tar.gz
+7bf1123d7415964775b8f81fe6ec6dd5c3c08abb42bb71dfe4409dbeeba26bbd node-v10.16.3.tar.xz
+c2cc3b95d6e8504b20623cfe74f848d1ebc2f43a262e7bae14bee64db2b13889 node-v10.16.3-win-x64.7z
+19aa47de7c5950d7bd71a1e878013b98d93871cc311d7185f5472e6d3f633146 node-v10.16.3-win-x64.zip
+fc1ccb1e6f12fe68e816c552e6b1df289a8bfe064c025eb62c360bd041da4a5f node-v10.16.3-win-x86.7z
+02a30a17c25c354747ac76fd130ff5495dde2f60f0a21ad675526951c2d7a52a node-v10.16.3-win-x86.zip
+f68b75eea46232adb8fd38126c977dc244166d29e7c6cd2df930b460c38590a9 node-v10.16.3-x64.msi
+b3cf18ad447d177cf858dbe45751100846cad96ba7497cd7c1850a616758e67f node-v10.16.3-x86.msi
+cb8f5c1981e11a3d438b6867df5fb8e4f77cd29ddc0856d99b62060ef991c649 win-x64/node.exe
+9f10cd25d27fc31f8fe8f5fcc5e9f27a8ba5bb79dc0791dc0df102f063c0066e win-x64/node.lib
+654d350ee101cbb4a0246e5226169f99af763a4d4c14546370ec6dfb09cf5a47 win-x64/node_pdb.7z
+426f326d88b5a184cc74ba50f5106eca933cb3386f872ffeb5844f3916296c09 win-x64/node_pdb.zip
+78b71fd2fb792c5f24848a05119d50d02407675a54a72caf0e40b039a43fefdd win-x86/node.exe
+459095d9bd9dc4e2d12c4284e6fc5bdc78eec8181c8327c57876499b002a59fd win-x86/node.lib
+1d0bb57a74e836835a1f9b8c1e0bf2493d4bd095c81a8e12d05cbfbf8c363534 win-x86/node_pdb.7z
+e2b5ea28cbe965e074e61035b559efda9312044ac5d0346243c041bbb62cea73 win-x86/node_pdb.zip
++++++ SHASUMS256.txt.sig ++++++
Binary files /var/tmp/diff_new_pack.lebjXj/_old and /var/tmp/diff_new_pack.lebjXj/_new differ
++++++ node-v10.16.1.tar.xz -> node-v10.16.3.tar.xz ++++++
/work/SRC/openSUSE:Factory/nodejs10/node-v10.16.1.tar.xz /work/SRC/openSUSE:Factory/.nodejs10.new.7948/node-v10.16.3.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package perl-namespace-autoclean for openSUSE:Factory checked in at 2019-09-02 12:42:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-namespace-autoclean (Old)
and /work/SRC/openSUSE:Factory/.perl-namespace-autoclean.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-namespace-autoclean"
Mon Sep 2 12:42:23 2019 rev:17 rq:726162 version:0.29
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-namespace-autoclean/perl-namespace-autoclean.changes 2015-10-20 00:06:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-namespace-autoclean.new.7948/perl-namespace-autoclean.changes 2019-09-02 12:42:32.453777638 +0200
@@ -1,0 +2,10 @@
+Sun Aug 25 05:41:12 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 0.29
+ see /usr/share/doc/packages/perl-namespace-autoclean/Changes
+
+ 0.29 2019-08-24 17:07:22Z
+ - switch from Test::Requires to Test::Needs
+ - report on the installed versions of more optional modules
+
+-------------------------------------------------------------------
Old:
----
namespace-autoclean-0.28.tar.gz
New:
----
namespace-autoclean-0.29.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-namespace-autoclean.spec ++++++
--- /var/tmp/diff_new_pack.oRALtQ/_old 2019-09-02 12:42:33.793777396 +0200
+++ /var/tmp/diff_new_pack.oRALtQ/_new 2019-09-02 12:42:33.821777392 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-namespace-autoclean
#
-# 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-namespace-autoclean
-Version: 0.28
+Version: 0.29
Release: 0
%define cpan_name namespace-autoclean
Summary: Keep imports out of your namespace
-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/namespace-autoclean/
-Source0: http://www.cpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz
+Url: https://metacpan.org/release/%{cpan_name}
+Source0: https://cpan.metacpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar…
Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -33,7 +33,7 @@
BuildRequires: perl(B::Hooks::EndOfScope) >= 0.12
BuildRequires: perl(Sub::Identify)
BuildRequires: perl(Test::More) >= 0.88
-BuildRequires: perl(Test::Requires)
+BuildRequires: perl(Test::Needs)
BuildRequires: perl(namespace::clean) >= 0.20
Requires: perl(B::Hooks::EndOfScope) >= 0.12
Requires: perl(Sub::Identify)
@@ -73,11 +73,11 @@
%setup -q -n %{cpan_name}-%{version}
%build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} %{?_smp_mflags}
+perl Makefile.PL INSTALLDIRS=vendor
+make %{?_smp_mflags}
%check
-%{__make} test
+make test
%install
%perl_make_install
@@ -86,6 +86,7 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes CONTRIBUTING LICENCE README
+%doc Changes CONTRIBUTING README
+%license LICENCE
%changelog
++++++ namespace-autoclean-0.28.tar.gz -> namespace-autoclean-0.29.tar.gz ++++++
++++ 3893 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package perl-WWW-Mechanize for openSUSE:Factory checked in at 2019-09-02 12:42:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-WWW-Mechanize (Old)
and /work/SRC/openSUSE:Factory/.perl-WWW-Mechanize.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-WWW-Mechanize"
Mon Sep 2 12:42:14 2019 rev:26 rq:726160 version:1.92
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-WWW-Mechanize/perl-WWW-Mechanize.changes 2019-01-24 14:01:37.696173795 +0100
+++ /work/SRC/openSUSE:Factory/.perl-WWW-Mechanize.new.7948/perl-WWW-Mechanize.changes 2019-09-02 12:42:16.865780449 +0200
@@ -1,0 +2,21 @@
+Sat Aug 24 05:39:03 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 1.92
+ see /usr/share/doc/packages/perl-WWW-Mechanize/Changes
+
+ 1.92 2019-08-24 01:00:35Z
+ [FIXED]
+ - Test requires HTTP::Daemon 6.05+ and uses 127.0.0.1 or [::1] according to
+ server's sockdomain (GH#280) (Shoichi Kaji)
+ - Install LWP::Protocol::https and fix xt/author/live/encoding.t (GH#277)
+ (Shoichi Kaji)
+ - Set dist trusty for old Perls on Travis (GH#279) (Shoichi Kaji)
+ - Fixed pod errors as reported by CPANTS. (GH#273) (Mohammad S Anwar)
+
+ [DOCUMENTATION]
+ - Document that follow_link will die on failure with autocheck enabled (GH#271) (Olaf Alders)
+
+ [TESTS]
+ - Add a test for finding a link in a meta refresh tag (GH#275) (Olaf Alders)
+
+-------------------------------------------------------------------
Old:
----
WWW-Mechanize-1.91.tar.gz
New:
----
WWW-Mechanize-1.92.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-WWW-Mechanize.spec ++++++
--- /var/tmp/diff_new_pack.e4xB7F/_old 2019-09-02 12:42:17.613780314 +0200
+++ /var/tmp/diff_new_pack.e4xB7F/_new 2019-09-02 12:42:17.617780314 +0200
@@ -17,7 +17,7 @@
Name: perl-WWW-Mechanize
-Version: 1.91
+Version: 1.92
Release: 0
%define cpan_name WWW-Mechanize
Summary: Handy web browsing in a Perl object
@@ -36,7 +36,7 @@
BuildRequires: perl(HTML::TokeParser)
BuildRequires: perl(HTML::TreeBuilder) >= 5
BuildRequires: perl(HTTP::Cookies)
-BuildRequires: perl(HTTP::Daemon)
+BuildRequires: perl(HTTP::Daemon) >= 6.05
BuildRequires: perl(HTTP::Request) >= 1.30
BuildRequires: perl(HTTP::Request::Common)
BuildRequires: perl(HTTP::Response)
++++++ WWW-Mechanize-1.91.tar.gz -> WWW-Mechanize-1.92.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/CONTRIBUTORS new/WWW-Mechanize-1.92/CONTRIBUTORS
--- old/WWW-Mechanize-1.91/CONTRIBUTORS 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/CONTRIBUTORS 2019-08-24 03:00:40.000000000 +0200
@@ -44,6 +44,7 @@
* Ricardo Signes
* Schuyler Langdon
* Sergey Romanov
+ * Shoichi Kaji
* simbabque
* Steve Scaffidi
* Stuart Johnston
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/Changes new/WWW-Mechanize-1.92/Changes
--- old/WWW-Mechanize-1.91/Changes 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/Changes 2019-08-24 03:00:40.000000000 +0200
@@ -1,8 +1,22 @@
Revision history for WWW::Mechanize
+1.92 2019-08-24 01:00:35Z
+ [FIXED]
+ - Test requires HTTP::Daemon 6.05+ and uses 127.0.0.1 or [::1] according to
+ server's sockdomain (GH#280) (Shoichi Kaji)
+ - Install LWP::Protocol::https and fix xt/author/live/encoding.t (GH#277)
+ (Shoichi Kaji)
+ - Set dist trusty for old Perls on Travis (GH#279) (Shoichi Kaji)
+ - Fixed pod errors as reported by CPANTS. (GH#273) (Mohammad S Anwar)
+
+ [DOCUMENTATION]
+ - Document that follow_link will die on failure with autocheck enabled (GH#271) (Olaf Alders)
+
+ [TESTS]
+ - Add a test for finding a link in a meta refresh tag (GH#275) (Olaf Alders)
+
1.91 2019-01-10 18:44:33Z
[ENHANCEMENTS]
-
- Don't install Perl::Critic and Perl::Tidy to run user tests (GH#268)
(Julien Fiegehenn)
- Remove redundant PodSyntaxTests (GH#265) (Andrew Grangaard)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/MANIFEST new/WWW-Mechanize-1.92/MANIFEST
--- old/WWW-Mechanize-1.91/MANIFEST 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/MANIFEST 2019-08-24 03:00:40.000000000 +0200
@@ -90,6 +90,7 @@
t/local/submit.t
t/mech-dump/mech-dump.t
t/new.t
+t/refresh.html
t/regex-error.t
t/save_content.html
t/save_content.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/META.json new/WWW-Mechanize-1.92/META.json
--- old/WWW-Mechanize-1.91/META.json 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/META.json 2019-08-24 03:00:40.000000000 +0200
@@ -37,6 +37,7 @@
"Code::TidyAll" : "0.71",
"Code::TidyAll::Plugin::SortLines::Naturally" : "0.000003",
"Code::TidyAll::Plugin::Test::Vars" : "0.04",
+ "Code::TidyAll::Plugin::UniqueLines" : "0.000003",
"Encode" : "0",
"Parallel::ForkManager" : "1.19",
"Perl::Critic" : "1.132",
@@ -87,7 +88,7 @@
"File::Spec" : "0",
"File::Temp" : "0",
"FindBin" : "0",
- "HTTP::Daemon" : "0",
+ "HTTP::Daemon" : "6.05",
"HTTP::Response" : "0",
"HTTP::Server::Simple::CGI" : "0",
"LWP" : "0",
@@ -108,15 +109,15 @@
"provides" : {
"WWW::Mechanize" : {
"file" : "lib/WWW/Mechanize.pm",
- "version" : "1.91"
+ "version" : "1.92"
},
"WWW::Mechanize::Image" : {
"file" : "lib/WWW/Mechanize/Image.pm",
- "version" : "1.91"
+ "version" : "1.92"
},
"WWW::Mechanize::Link" : {
"file" : "lib/WWW/Mechanize/Link.pm",
- "version" : "1.91"
+ "version" : "1.92"
}
},
"release_status" : "stable",
@@ -131,7 +132,7 @@
"web" : "https://github.com/libwww-perl/WWW-Mechanize"
}
},
- "version" : "1.91",
+ "version" : "1.92",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.026001"
@@ -236,8 +237,14 @@
},
{
"class" : "Dist::Zilla::Plugin::InstallGuide",
+ "config" : {
+ "Dist::Zilla::Role::ModuleMetadata" : {
+ "Module::Metadata" : "1.000033",
+ "version" : "0.004"
+ }
+ },
"name" : "@Author::OALDERS/InstallGuide",
- "version" : "1.200012"
+ "version" : "1.200013"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
@@ -424,7 +431,7 @@
}
},
"name" : "@Author::OALDERS/Git::GatherDir",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::CopyFilesFromRelease",
@@ -460,18 +467,18 @@
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.23.0",
"repo_root" : "."
}
},
"name" : "@Author::OALDERS/Git::Check",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::Contributors",
"config" : {
"Dist::Zilla::Plugin::Git::Contributors" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.23.0",
"include_authors" : 0,
"include_releaser" : 1,
"order_by" : "name",
@@ -492,6 +499,17 @@
"version" : "0.163250"
},
{
+ "class" : "Dist::Zilla::Plugin::StaticInstall",
+ "config" : {
+ "Dist::Zilla::Plugin::StaticInstall" : {
+ "dry_run" : 1,
+ "mode" : "auto"
+ }
+ },
+ "name" : "@Author::OALDERS/StaticInstall",
+ "version" : "0.012"
+ },
+ {
"class" : "Dist::Zilla::Plugin::ShareDir",
"name" : "@Author::OALDERS/ShareDir",
"version" : "6.012"
@@ -502,6 +520,11 @@
"version" : "0.007"
},
{
+ "class" : "Dist::Zilla::Plugin::CheckIssues",
+ "name" : "@Author::OALDERS/CheckIssues",
+ "version" : "0.010"
+ },
+ {
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@Author::OALDERS/ConfirmRelease",
"version" : "6.012"
@@ -562,7 +585,7 @@
"config" : {
"Dist::Zilla::Plugin::Git::Commit" : {
"add_files_in" : [],
- "commit_msg" : "v%v%n%n%c"
+ "commit_msg" : "v%V%n%n%c"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [
@@ -579,7 +602,7 @@
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.23.0",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
@@ -587,7 +610,7 @@
}
},
"name" : "@Author::OALDERS/@Git::VersionManager/release snapshot",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
@@ -596,12 +619,12 @@
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
- "tag" : "v1.91",
- "tag_format" : "v%v",
- "tag_message" : "v%v"
+ "tag" : "v1.92",
+ "tag_format" : "v%V",
+ "tag_message" : "v%V"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.23.0",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
@@ -609,7 +632,7 @@
}
},
"name" : "@Author::OALDERS/@Git::VersionManager/Git::Tag",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional",
@@ -651,7 +674,7 @@
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.23.0",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
@@ -659,7 +682,7 @@
}
},
"name" : "@Author::OALDERS/@Git::VersionManager/post-release commit",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
@@ -671,12 +694,12 @@
"remotes_must_exist" : 1
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.23.0",
"repo_root" : "."
}
},
"name" : "@Author::OALDERS/Git::Push",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::ExecDir",
@@ -856,6 +879,7 @@
"Ricardo Signes <rjbs(a)cpan.org>",
"Schuyler Langdon <schuyler(a)velargo.com>",
"Sergey Romanov <sromanov-dev(a)yandex.ru>",
+ "Shoichi Kaji <skaji(a)cpan.org>",
"simbabque <simbabque(a)cpan.org>",
"Steve Scaffidi <stephen(a)scaffidi.net>",
"Stuart Johnston <saj_git(a)thecommune.net>",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/META.yml new/WWW-Mechanize-1.92/META.yml
--- old/WWW-Mechanize-1.91/META.yml 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/META.yml 2019-08-24 03:00:40.000000000 +0200
@@ -9,7 +9,7 @@
File::Spec: '0'
File::Temp: '0'
FindBin: '0'
- HTTP::Daemon: '0'
+ HTTP::Daemon: '6.05'
HTTP::Response: '0'
HTTP::Server::Simple::CGI: '0'
LWP: '0'
@@ -41,13 +41,13 @@
provides:
WWW::Mechanize:
file: lib/WWW/Mechanize.pm
- version: '1.91'
+ version: '1.92'
WWW::Mechanize::Image:
file: lib/WWW/Mechanize/Image.pm
- version: '1.91'
+ version: '1.92'
WWW::Mechanize::Link:
file: lib/WWW/Mechanize/Link.pm
- version: '1.91'
+ version: '1.92'
requires:
Carp: '0'
Getopt::Long: '0'
@@ -72,7 +72,7 @@
bugtracker: https://github.com/libwww-perl/WWW-Mechanize/issues
homepage: https://github.com/libwww-perl/WWW-Mechanize
repository: https://github.com/libwww-perl/WWW-Mechanize.git
-version: '1.91'
+version: '1.92'
x_Dist_Zilla:
perl:
version: '5.026001'
@@ -155,8 +155,12 @@
version: '6.012'
-
class: Dist::Zilla::Plugin::InstallGuide
+ config:
+ Dist::Zilla::Role::ModuleMetadata:
+ Module::Metadata: '1.000033'
+ version: '0.004'
name: '@Author::OALDERS/InstallGuide'
- version: '1.200012'
+ version: '1.200013'
-
class: Dist::Zilla::Plugin::Prereqs
config:
@@ -302,7 +306,7 @@
Dist::Zilla::Plugin::Git::GatherDir:
include_untracked: 0
name: '@Author::OALDERS/Git::GatherDir'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::CopyFilesFromRelease
config:
@@ -330,15 +334,15 @@
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.23.0
repo_root: .
name: '@Author::OALDERS/Git::Check'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::Git::Contributors
config:
Dist::Zilla::Plugin::Git::Contributors:
- git_version: 2.20.1
+ git_version: 2.23.0
include_authors: 0
include_releaser: 1
order_by: name
@@ -353,6 +357,14 @@
name: '@Author::OALDERS/ReadmeMdInBuild'
version: '0.163250'
-
+ class: Dist::Zilla::Plugin::StaticInstall
+ config:
+ Dist::Zilla::Plugin::StaticInstall:
+ dry_run: 1
+ mode: auto
+ name: '@Author::OALDERS/StaticInstall'
+ version: '0.012'
+ -
class: Dist::Zilla::Plugin::ShareDir
name: '@Author::OALDERS/ShareDir'
version: '6.012'
@@ -361,6 +373,10 @@
name: '@Author::OALDERS/TravisCI::StatusBadge'
version: '0.007'
-
+ class: Dist::Zilla::Plugin::CheckIssues
+ name: '@Author::OALDERS/CheckIssues'
+ version: '0.010'
+ -
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@Author::OALDERS/ConfirmRelease'
version: '6.012'
@@ -407,7 +423,7 @@
config:
Dist::Zilla::Plugin::Git::Commit:
add_files_in: []
- commit_msg: v%v%n%n%c
+ commit_msg: v%V%n%n%c
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty:
- Changes
@@ -421,12 +437,12 @@
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.23.0
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Author::OALDERS/@Git::VersionManager/release snapshot'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::Git::Tag
config:
@@ -434,16 +450,16 @@
branch: ~
changelog: Changes
signed: 0
- tag: v1.91
- tag_format: v%v
- tag_message: v%v
+ tag: v1.92
+ tag_format: v%V
+ tag_message: v%V
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.23.0
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Author::OALDERS/@Git::VersionManager/Git::Tag'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional
config:
@@ -475,12 +491,12 @@
- (?^:^lib/.*\.pm$)
changelog: Changes
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.23.0
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Author::OALDERS/@Git::VersionManager/post-release commit'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::Git::Push
config:
@@ -489,10 +505,10 @@
- origin
remotes_must_exist: 1
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.23.0
repo_root: .
name: '@Author::OALDERS/Git::Push'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::ExecDir
name: ExecDir
@@ -636,6 +652,7 @@
- 'Ricardo Signes <rjbs(a)cpan.org>'
- 'Schuyler Langdon <schuyler(a)velargo.com>'
- 'Sergey Romanov <sromanov-dev(a)yandex.ru>'
+ - 'Shoichi Kaji <skaji(a)cpan.org>'
- 'simbabque <simbabque(a)cpan.org>'
- 'Steve Scaffidi <stephen(a)scaffidi.net>'
- 'Stuart Johnston <saj_git(a)thecommune.net>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/Makefile.PL new/WWW-Mechanize-1.92/Makefile.PL
--- old/WWW-Mechanize-1.91/Makefile.PL 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/Makefile.PL 2019-08-24 03:00:40.000000000 +0200
@@ -46,7 +46,7 @@
"File::Spec" => 0,
"File::Temp" => 0,
"FindBin" => 0,
- "HTTP::Daemon" => 0,
+ "HTTP::Daemon" => "6.05",
"HTTP::Response" => 0,
"HTTP::Server::Simple::CGI" => 0,
"LWP" => 0,
@@ -62,7 +62,7 @@
"lib" => 0,
"vars" => 0
},
- "VERSION" => "1.91",
+ "VERSION" => "1.92",
"test" => {
"TESTS" => "t/*.t t/local/*.t t/mech-dump/*.t"
}
@@ -83,7 +83,7 @@
"HTML::TokeParser" => 0,
"HTML::TreeBuilder" => 5,
"HTTP::Cookies" => 0,
- "HTTP::Daemon" => 0,
+ "HTTP::Daemon" => "6.05",
"HTTP::Request" => "1.30",
"HTTP::Request::Common" => 0,
"HTTP::Response" => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/README.md new/WWW-Mechanize-1.92/README.md
--- old/WWW-Mechanize-1.91/README.md 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/README.md 2019-08-24 03:00:40.000000000 +0200
@@ -4,7 +4,7 @@
# VERSION
-version 1.91
+version 1.92
# SYNOPSIS
@@ -489,9 +489,11 @@
$mech->follow_link( url => 'http://example.com/page' );
-Returns the result of the GET method (an HTTP::Response object) if
-a link was found. If the page has no links, or the specified link
-couldn't be found, returns undef.
+Returns the result of the `GET` method (an [HTTP::Response](https://metacpan.org/pod/HTTP::Response) object) if a link
+was found.
+
+If the page has no links, or the specified link couldn't be found, returns
+`undef`. If `autocheck` is enabled an exception will be thrown instead.
## $mech->find\_link( ... )
@@ -1040,7 +1042,8 @@
fields mentioned in `\%fields`. This is nice because you don't need to know
the name or number of the form to do this.
- (calls `["form_with_fields()"](#form_with_fields)` and `["set_fields()"](#set_fields)`).
+ (calls `[form_with_fields()](#mech-form_with_fields-fields)` and
+ `[set_fields()](#mech-set_fields-name-value)`).
If you choose `with_fields`, the `fields` option will be ignored. The
`form_number`, `form_name` and `form_id` options will still be used. An
@@ -1083,7 +1086,7 @@
If no form is selected, the first form found is used.
-If _button_ is not passed, then the [`submit()|"$mech->submit()"`](https://metacpan.org/pod/submit\(\)|"$mech->submit\(\)")
+If _button_ is not passed, then the `[submit()](#mech-submit)`
method is used instead.
If you want to submit a file and get its content from a scalar rather
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/bin/mech-dump new/WWW-Mechanize-1.92/bin/mech-dump
--- old/WWW-Mechanize-1.91/bin/mech-dump 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/bin/mech-dump 2019-08-24 03:00:40.000000000 +0200
@@ -131,7 +131,7 @@
=head1 VERSION
-version 1.91
+version 1.92
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/cpanfile new/WWW-Mechanize-1.92/cpanfile
--- old/WWW-Mechanize-1.91/cpanfile 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/cpanfile 2019-08-24 03:00:40.000000000 +0200
@@ -25,7 +25,7 @@
requires "File::Spec" => "0";
requires "File::Temp" => "0";
requires "FindBin" => "0";
- requires "HTTP::Daemon" => "0";
+ requires "HTTP::Daemon" => "6.05";
requires "HTTP::Response" => "0";
requires "HTTP::Server::Simple::CGI" => "0";
requires "LWP" => "0";
@@ -58,6 +58,7 @@
requires "Code::TidyAll" => "0.71";
requires "Code::TidyAll::Plugin::SortLines::Naturally" => "0.000003";
requires "Code::TidyAll::Plugin::Test::Vars" => "0.04";
+ requires "Code::TidyAll::Plugin::UniqueLines" => "0.000003";
requires "Encode" => "0";
requires "Parallel::ForkManager" => "1.19";
requires "Perl::Critic" => "1.132";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Cookbook.pod new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Cookbook.pod
--- old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Cookbook.pod 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Cookbook.pod 2019-08-24 03:00:40.000000000 +0200
@@ -13,7 +13,7 @@
=head1 VERSION
-version 1.91
+version 1.92
=head1 INTRODUCTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Examples.pod new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Examples.pod
--- old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Examples.pod 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Examples.pod 2019-08-24 03:00:40.000000000 +0200
@@ -13,7 +13,7 @@
=head1 VERSION
-version 1.91
+version 1.92
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/lib/WWW/Mechanize/FAQ.pod new/WWW-Mechanize-1.92/lib/WWW/Mechanize/FAQ.pod
--- old/WWW-Mechanize-1.91/lib/WWW/Mechanize/FAQ.pod 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/lib/WWW/Mechanize/FAQ.pod 2019-08-24 03:00:40.000000000 +0200
@@ -13,7 +13,7 @@
=head1 VERSION
-version 1.91
+version 1.92
=head1 How to get help with WWW::Mechanize
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Image.pm new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Image.pm
--- old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Image.pm 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Image.pm 2019-08-24 03:00:40.000000000 +0200
@@ -3,7 +3,7 @@
use strict;
use warnings;
-our $VERSION = '1.91';
+our $VERSION = '1.92';
#ABSTRACT: Image object for WWW::Mechanize
@@ -69,7 +69,7 @@
=head1 VERSION
-version 1.91
+version 1.92
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Link.pm new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Link.pm
--- old/WWW-Mechanize-1.91/lib/WWW/Mechanize/Link.pm 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/lib/WWW/Mechanize/Link.pm 2019-08-24 03:00:40.000000000 +0200
@@ -3,7 +3,7 @@
use strict;
use warnings;
-our $VERSION = '1.91';
+our $VERSION = '1.92';
#ABSTRACT: Link object for WWW::Mechanize
@@ -65,7 +65,7 @@
=head1 VERSION
-version 1.91
+version 1.92
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/lib/WWW/Mechanize.pm new/WWW-Mechanize-1.92/lib/WWW/Mechanize.pm
--- old/WWW-Mechanize-1.91/lib/WWW/Mechanize.pm 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/lib/WWW/Mechanize.pm 2019-08-24 03:00:40.000000000 +0200
@@ -6,7 +6,7 @@
use strict;
use warnings;
-our $VERSION = '1.91';
+our $VERSION = '1.92';
use Tie::RefHash;
use HTTP::Request 1.30;
@@ -1687,7 +1687,7 @@
=head1 VERSION
-version 1.91
+version 1.92
=head1 SYNOPSIS
@@ -2221,9 +2221,11 @@
=back
-Returns the result of the GET method (an HTTP::Response object) if
-a link was found. If the page has no links, or the specified link
-couldn't be found, returns undef.
+Returns the result of the C<GET> method (an L<HTTP::Response> object) if a link
+was found.
+
+If the page has no links, or the specified link couldn't be found, returns
+C<undef>. If C<autocheck> is enabled an exception will be thrown instead.
=head2 $mech->find_link( ... )
@@ -2796,7 +2798,8 @@
fields mentioned in C<\%fields>. This is nice because you don't need to know
the name or number of the form to do this.
-(calls C<L</form_with_fields()>> and C<L</set_fields()>>).
+(calls C<L<< form_with_fields()|"$mech->form_with_fields( @fields )" >>> and
+ C<L<< set_fields()|"$mech->set_fields( $name => $value ... )" >>>).
If you choose C<with_fields>, the C<fields> option will be ignored. The
C<form_number>, C<form_name> and C<form_id> options will still be used. An
@@ -2841,7 +2844,7 @@
If no form is selected, the first form found is used.
-If I<button> is not passed, then the L<C<< submit()|"$mech->submit()" >>>
+If I<button> is not passed, then the C<L<< submit()|"$mech->submit()" >>>
method is used instead.
If you want to submit a file and get its content from a scalar rather
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/00-report-prereqs.dd new/WWW-Mechanize-1.92/t/00-report-prereqs.dd
--- old/WWW-Mechanize-1.91/t/00-report-prereqs.dd 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/00-report-prereqs.dd 2019-08-24 03:00:40.000000000 +0200
@@ -15,6 +15,7 @@
'Code::TidyAll' => '0.71',
'Code::TidyAll::Plugin::SortLines::Naturally' => '0.000003',
'Code::TidyAll::Plugin::Test::Vars' => '0.04',
+ 'Code::TidyAll::Plugin::UniqueLines' => '0.000003',
'Encode' => '0',
'Parallel::ForkManager' => '1.19',
'Perl::Critic' => '1.132',
@@ -65,7 +66,7 @@
'File::Spec' => '0',
'File::Temp' => '0',
'FindBin' => '0',
- 'HTTP::Daemon' => '0',
+ 'HTTP::Daemon' => '6.05',
'HTTP::Response' => '0',
'HTTP::Server::Simple::CGI' => '0',
'LWP' => '0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/find_link.t new/WWW-Mechanize-1.92/t/find_link.t
--- old/WWW-Mechanize-1.91/t/find_link.t 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/find_link.t 2019-08-24 03:00:40.000000000 +0200
@@ -2,7 +2,8 @@
use warnings;
use strict;
-use Test::More tests => 65;
+
+use Test::More;
use URI::file;
BEGIN {
@@ -154,3 +155,9 @@
isa_ok( $x, 'WWW::Mechanize::Link' );
is( $x->[0], 'http://www.yahoo.com/', 'Got js url link' );
is( $x->url, 'http://www.yahoo.com/', 'Got js url link' );
+
+$mech->get( URI::file->new_abs('t/refresh.html') );
+my $link = $mech->find_link( tag => 'meta' );
+is( $link->url, 'http://www.mysite.com/', 'got link from meta tag via tag search' );
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/local/LocalServer.pm new/WWW-Mechanize-1.92/t/local/LocalServer.pm
--- old/WWW-Mechanize-1.91/t/local/LocalServer.pm 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/local/LocalServer.pm 2019-08-24 03:00:40.000000000 +0200
@@ -113,11 +113,7 @@
die "Couldn't read back local server url"
unless $url;
- # What is this code supposed to fix?
- my $lhurl = URI::URL->new( $url );
- $lhurl->host( '127.0.0.1' );
- $self->{_server_url} = $lhurl;
-
+ $self->{_server_url} = URI::URL->new($url);
$self->{_fh} = $server;
$self->{_pid} = $pid;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/local/back.t new/WWW-Mechanize-1.92/t/local/back.t
--- old/WWW-Mechanize-1.91/t/local/back.t 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/local/back.t 2019-08-24 03:00:40.000000000 +0200
@@ -3,7 +3,7 @@
use Test::More tests => 47;
use lib qw( t t/local );
use LocalServer;
-use HTTP::Daemon;
+use HTTP::Daemon 6.05;
use HTTP::Response;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/local/log-server new/WWW-Mechanize-1.92/t/local/log-server
--- old/WWW-Mechanize-1.91/t/local/log-server 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/local/log-server 2019-08-24 03:00:40.000000000 +0200
@@ -1,8 +1,9 @@
# Thanks to merlyn for nudging me and giving me this snippet!
use strict;
-use HTTP::Daemon;
+use HTTP::Daemon 6.05;
use CGI 4.08;
use Getopt::Long;
+use Socket ();
$|++;
@@ -10,15 +11,16 @@
'e=s' => \my $expression,
);
-my $host = 'localhost';
-my $d = HTTP::Daemon->new(
- LocalAddr => $host,
-) or die;
+my $d = HTTP::Daemon->new or die;
-# HTTP::Deamon doesn't return http://localhost:.../
-# for LocalAddr => 'localhost'. This causes the
-# tests to fail of many machines.
-( my $url = URI->new($d->url) )->host($host);
+my $url = URI->new($d->url);
+if ($d->sockdomain == Socket::AF_INET) {
+ $url->host( '127.0.0.1' );
+} elsif ($d->sockdomain == Socket::AF_INET6) {
+ $url->host( '[::1]' );
+} else {
+ die "unexpected sockdomain: " . $d->sockdomain;
+}
print "$url\n";
my ($filename,$logfile) = @ARGV[0,1];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/local/referer-server new/WWW-Mechanize-1.92/t/local/referer-server
--- old/WWW-Mechanize-1.91/t/local/referer-server 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/local/referer-server 2019-08-24 03:00:40.000000000 +0200
@@ -1,13 +1,20 @@
# Thanks to merlyn for nudging me and giving me this snippet!
-use HTTP::Daemon;
+use HTTP::Daemon 6.05;
use URI::URL;
+use Socket ();
$|++;
my $d = HTTP::Daemon->new or die;
my $lhurl = URI::URL->new( $d->url );
-$lhurl->host( "127.0.0.1" );
+if ($d->sockdomain == Socket::AF_INET) {
+ $lhurl->host( '127.0.0.1' );
+} elsif ($d->sockdomain == Socket::AF_INET6) {
+ $lhurl->host( '[::1]' );
+} else {
+ die "unexpected sockdomain: " . $d->sockdomain;
+}
print $lhurl->as_string, "\n";
$counter = 5;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/local/referer.t new/WWW-Mechanize-1.92/t/local/referer.t
--- old/WWW-Mechanize-1.91/t/local/referer.t 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/local/referer.t 2019-08-24 03:00:40.000000000 +0200
@@ -19,7 +19,7 @@
isa_ok( $agent, 'WWW::Mechanize' );
SKIP: {
- eval { require HTTP::Daemon; };
+ eval { require HTTP::Daemon; HTTP::Daemon->VERSION(6.05); };
skip 'HTTP::Daemon required to test the referrer header',10 if $@;
# We want to be safe from non-resolving local host names
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/t/refresh.html new/WWW-Mechanize-1.92/t/refresh.html
--- old/WWW-Mechanize-1.91/t/refresh.html 1970-01-01 01:00:00.000000000 +0100
+++ new/WWW-Mechanize-1.92/t/refresh.html 2019-08-24 03:00:40.000000000 +0200
@@ -0,0 +1,3 @@
+<body>
+ <meta content="0; url='http://www.mysite.com/'" http-equiv="refresh">
+</body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WWW-Mechanize-1.91/tidyall.ini new/WWW-Mechanize-1.92/tidyall.ini
--- old/WWW-Mechanize-1.91/tidyall.ini 2019-01-10 19:44:39.000000000 +0100
+++ new/WWW-Mechanize-1.92/tidyall.ini 2019-08-24 03:00:40.000000000 +0200
@@ -10,3 +10,6 @@
[SortLines::Naturally]
select = .gitignore
+
+[UniqueLines]
+select = .gitignore
1
0
Hello community,
here is the log from the commit of package perl-Test-Simple for openSUSE:Factory checked in at 2019-09-02 12:42:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-Simple (Old)
and /work/SRC/openSUSE:Factory/.perl-Test-Simple.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Simple"
Mon Sep 2 12:42:01 2019 rev:24 rq:726159 version:1.302167
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Test-Simple/perl-Test-Simple.changes 2019-08-19 20:47:19.749099235 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Test-Simple.new.7948/perl-Test-Simple.changes 2019-09-02 12:42:06.129782385 +0200
@@ -1,0 +2,11 @@
+Sat Aug 24 05:33:46 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 1.302167
+ see /usr/share/doc/packages/perl-Test-Simple/Changes
+
+ 1.302167 2019-08-23 14:07:58-07:00 America/Los_Angeles
+
+ - add test2_is_testing_done api method
+ - Fix string compare warning
+
+-------------------------------------------------------------------
Old:
----
Test-Simple-1.302166.tar.gz
New:
----
Test-Simple-1.302167.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Test-Simple.spec ++++++
--- /var/tmp/diff_new_pack.UdMuGT/_old 2019-09-02 12:42:06.729782277 +0200
+++ /var/tmp/diff_new_pack.UdMuGT/_new 2019-09-02 12:42:06.729782277 +0200
@@ -17,7 +17,7 @@
Name: perl-Test-Simple
-Version: 1.302166
+Version: 1.302167
Release: 0
%define cpan_name Test-Simple
Summary: Basic utilities for writing tests
++++++ Test-Simple-1.302166.tar.gz -> Test-Simple-1.302167.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/Changes new/Test-Simple-1.302167/Changes
--- old/Test-Simple-1.302166/Changes 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/Changes 2019-08-23 23:07:59.000000000 +0200
@@ -1,3 +1,8 @@
+1.302167 2019-08-23 14:07:58-07:00 America/Los_Angeles
+
+ - add test2_is_testing_done api method
+ - Fix string compare warning
+
1.302166 2019-08-15 10:37:01-07:00 America/Los_Angeles
- Fix context test on older perls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/META.json new/Test-Simple-1.302167/META.json
--- old/Test-Simple-1.302166/META.json 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/META.json 2019-08-23 23:07:59.000000000 +0200
@@ -48,7 +48,7 @@
"url" : "http://github.com/Test-More/test-more/"
}
},
- "version" : "1.302166",
+ "version" : "1.302167",
"x_breaks" : {
"Log::Dispatch::Config::TestLog" : "<= 0.02",
"Net::BitTorrent" : "<= 0.052",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/META.yml new/Test-Simple-1.302167/META.yml
--- old/Test-Simple-1.302166/META.yml 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/META.yml 2019-08-23 23:07:59.000000000 +0200
@@ -22,7 +22,7 @@
resources:
bugtracker: http://github.com/Test-More/test-more/issues
repository: http://github.com/Test-More/test-more/
-version: '1.302166'
+version: '1.302167'
x_breaks:
Log::Dispatch::Config::TestLog: '<= 0.02'
Net::BitTorrent: '<= 0.052'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/Makefile.PL new/Test-Simple-1.302167/Makefile.PL
--- old/Test-Simple-1.302166/Makefile.PL 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/Makefile.PL 2019-08-23 23:07:59.000000000 +0200
@@ -23,7 +23,7 @@
"Storable" => 0,
"utf8" => 0
},
- "VERSION" => "1.302166",
+ "VERSION" => "1.302167",
"test" => {
"TESTS" => "t/*.t t/Legacy/*.t t/Legacy/Bugs/*.t t/Legacy/Builder/*.t t/Legacy/Regression/*.t t/Legacy/Simple/*.t t/Legacy/Test2/*.t t/Legacy/Tester/*.t t/Legacy/subtest/*.t t/Legacy_And_Test2/*.t t/Test2/acceptance/*.t t/Test2/behavior/*.t t/Test2/legacy/*.t t/Test2/modules/*.t t/Test2/modules/API/*.t t/Test2/modules/Event/*.t t/Test2/modules/Event/TAP/*.t t/Test2/modules/EventFacet/*.t t/Test2/modules/Formatter/*.t t/Test2/modules/Hub/*.t t/Test2/modules/Hub/Interceptor/*.t t/Test2/modules/IPC/*.t t/Test2/modules/IPC/Driver/*.t t/Test2/modules/Tools/*.t t/Test2/modules/Util/*.t t/Test2/regression/*.t t/regression/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Builder/Formatter.pm new/Test-Simple-1.302167/lib/Test/Builder/Formatter.pm
--- old/Test-Simple-1.302166/lib/Test/Builder/Formatter.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Builder/Formatter.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Builder/Module.pm new/Test-Simple-1.302167/lib/Test/Builder/Module.pm
--- old/Test-Simple-1.302166/lib/Test/Builder/Module.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Builder/Module.pm 2019-08-23 23:07:59.000000000 +0200
@@ -7,7 +7,7 @@
require Exporter;
our @ISA = qw(Exporter);
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
=head1 NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Builder/Tester/Color.pm new/Test-Simple-1.302167/lib/Test/Builder/Tester/Color.pm
--- old/Test-Simple-1.302166/lib/Test/Builder/Tester/Color.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Builder/Tester/Color.pm 2019-08-23 23:07:59.000000000 +0200
@@ -1,7 +1,7 @@
package Test::Builder::Tester::Color;
use strict;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
require Test::Builder::Tester;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Builder/Tester.pm new/Test-Simple-1.302167/lib/Test/Builder/Tester.pm
--- old/Test-Simple-1.302166/lib/Test/Builder/Tester.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Builder/Tester.pm 2019-08-23 23:07:59.000000000 +0200
@@ -1,7 +1,7 @@
package Test::Builder::Tester;
use strict;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test::Builder;
use Symbol;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Builder/TodoDiag.pm new/Test-Simple-1.302167/lib/Test/Builder/TodoDiag.pm
--- old/Test-Simple-1.302166/lib/Test/Builder/TodoDiag.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Builder/TodoDiag.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event::Diag; our @ISA = qw(Test2::Event::Diag) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Builder.pm new/Test-Simple-1.302167/lib/Test/Builder.pm
--- old/Test-Simple-1.302166/lib/Test/Builder.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Builder.pm 2019-08-23 23:07:59.000000000 +0200
@@ -4,7 +4,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN {
if( $] < 5.008 ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/More.pm new/Test-Simple-1.302167/lib/Test/More.pm
--- old/Test-Simple-1.302166/lib/Test/More.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/More.pm 2019-08-23 23:07:59.000000000 +0200
@@ -17,7 +17,7 @@
return warn @_, " at $file line $line\n";
}
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Simple.pm new/Test-Simple-1.302167/lib/Test/Simple.pm
--- old/Test-Simple-1.302166/lib/Test/Simple.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Simple.pm 2019-08-23 23:07:59.000000000 +0200
@@ -4,7 +4,7 @@
use strict;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Tester/Capture.pm new/Test-Simple-1.302167/lib/Test/Tester/Capture.pm
--- old/Test-Simple-1.302166/lib/Test/Tester/Capture.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Tester/Capture.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
package Test::Tester::Capture;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test::Builder;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Tester/CaptureRunner.pm new/Test-Simple-1.302167/lib/Test/Tester/CaptureRunner.pm
--- old/Test-Simple-1.302166/lib/Test/Tester/CaptureRunner.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Tester/CaptureRunner.pm 2019-08-23 23:07:59.000000000 +0200
@@ -3,7 +3,7 @@
package Test::Tester::CaptureRunner;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test::Tester::Capture;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Tester/Delegate.pm new/Test-Simple-1.302167/lib/Test/Tester/Delegate.pm
--- old/Test-Simple-1.302166/lib/Test/Tester/Delegate.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Tester/Delegate.pm 2019-08-23 23:07:59.000000000 +0200
@@ -3,7 +3,7 @@
package Test::Tester::Delegate;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Scalar::Util();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/Tester.pm new/Test-Simple-1.302167/lib/Test/Tester.pm
--- old/Test-Simple-1.302166/lib/Test/Tester.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/Tester.pm 2019-08-23 23:07:59.000000000 +0200
@@ -18,7 +18,7 @@
use vars qw( @ISA @EXPORT );
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
@EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
@ISA = qw( Exporter );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test/use/ok.pm new/Test-Simple-1.302167/lib/Test/use/ok.pm
--- old/Test-Simple-1.302166/lib/Test/use/ok.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test/use/ok.pm 2019-08-23 23:07:59.000000000 +0200
@@ -1,7 +1,7 @@
package Test::use::ok;
use 5.005;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
__END__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/API/Breakage.pm new/Test-Simple-1.302167/lib/Test2/API/Breakage.pm
--- old/Test-Simple-1.302166/lib/Test2/API/Breakage.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/API/Breakage.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::Util qw/pkg_to_file/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/API/Context.pm new/Test-Simple-1.302167/lib/Test2/API/Context.pm
--- old/Test-Simple-1.302166/lib/Test2/API/Context.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/API/Context.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/confess croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/API/Instance.pm new/Test-Simple-1.302167/lib/Test2/API/Instance.pm
--- old/Test-Simple-1.302166/lib/Test2/API/Instance.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/API/Instance.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
our @CARP_NOT = qw/Test2::API Test2::API::Instance Test2::IPC::Driver Test2::Formatter/;
use Carp qw/confess carp/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/API/Stack.pm new/Test-Simple-1.302167/lib/Test2/API/Stack.pm
--- old/Test-Simple-1.302166/lib/Test2/API/Stack.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/API/Stack.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::Hub();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/API.pm new/Test-Simple-1.302167/lib/Test2/API.pm
--- old/Test-Simple-1.302166/lib/Test2/API.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/API.pm 2019-08-23 23:07:59.000000000 +0200
@@ -9,7 +9,7 @@
$ENV{TEST2_ACTIVE} = 1;
}
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
my $INST;
@@ -113,6 +113,7 @@
test2_start_preload
test2_stop_preload
test2_in_preload
+ test2_is_testing_done
test2_set_is_end
test2_unset_is_end
@@ -205,6 +206,27 @@
sub test2_ipc_wait_disable { $INST->set_no_wait(1) }
sub test2_ipc_wait_enabled { !$INST->no_wait }
+sub test2_is_testing_done {
+ # No instance? VERY DONE!
+ return 1 unless $INST;
+
+ # No stack? tests must be done, it is created pretty early
+ my $stack = $INST->stack or return 1;
+
+ # Nothing on the stack, no root hub yet, likely have not started testing
+ return 0 unless @$stack;
+
+ # Stack has a slot for the root hub (see above) but it is undefined, likely
+ # garbage collected, test is done
+ my $root_hub = $stack->[0] or return 1;
+
+ # If the root hub is ended than testing is done.
+ return 1 if $root_hub->ended;
+
+ # Looks like we are still testing!
+ return 0;
+}
+
sub test2_no_wait {
$INST->set_no_wait(@_) if @_;
$INST->no_wait;
@@ -860,6 +882,7 @@
test2_ipc
test2_formatter_set
test2_formatter
+ test2_is_testing_done
};
my $init = test2_init_done();
@@ -1303,6 +1326,26 @@
This will return the global L<Test2::API::Stack> instance. If this has not
yet been initialized it will be initialized now.
+=item $bool = test2_is_testing_done()
+
+This will return true if testing is complete and no other events should be
+sent. This is useful in things like warning handlers where you might want to
+turn warnings into events, but need them to start acting like normal warnings
+when testing is done.
+
+ $SIG{__WARN__} = sub {
+ my ($warning) = @_;
+
+ if (test2_is_testing_done()) {
+ warn @_;
+ }
+ else {
+ my $ctx = context();
+ ...
+ $ctx->release
+ }
+ }
+
=item test2_ipc_disable
Disable IPC.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Bail.pm new/Test-Simple-1.302167/lib/Test2/Event/Bail.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Bail.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Bail.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Diag.pm new/Test-Simple-1.302167/lib/Test2/Event/Diag.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Diag.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Diag.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Encoding.pm new/Test-Simple-1.302167/lib/Test2/Event/Encoding.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Encoding.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Encoding.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Exception.pm new/Test-Simple-1.302167/lib/Test2/Event/Exception.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Exception.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Exception.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Fail.pm new/Test-Simple-1.302167/lib/Test2/Event/Fail.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Fail.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Fail.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::EventFacet::Info;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Generic.pm new/Test-Simple-1.302167/lib/Test2/Event/Generic.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Generic.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Generic.pm 2019-08-23 23:07:59.000000000 +0200
@@ -5,7 +5,7 @@
use Carp qw/croak/;
use Scalar::Util qw/reftype/;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
use Test2::Util::HashBase;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Note.pm new/Test-Simple-1.302167/lib/Test2/Event/Note.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Note.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Note.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Ok.pm new/Test-Simple-1.302167/lib/Test2/Event/Ok.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Ok.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Ok.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Pass.pm new/Test-Simple-1.302167/lib/Test2/Event/Pass.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Pass.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Pass.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::EventFacet::Info;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Plan.pm new/Test-Simple-1.302167/lib/Test2/Event/Plan.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Plan.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Plan.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Skip.pm new/Test-Simple-1.302167/lib/Test2/Event/Skip.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Skip.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Skip.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Subtest.pm new/Test-Simple-1.302167/lib/Test2/Event/Subtest.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Subtest.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Subtest.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
use Test2::Util::HashBase qw{subevents buffered subtest_id subtest_uuid};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/TAP/Version.pm new/Test-Simple-1.302167/lib/Test2/Event/TAP/Version.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/TAP/Version.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/TAP/Version.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/V2.pm new/Test-Simple-1.302167/lib/Test2/Event/V2.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/V2.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/V2.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Scalar::Util qw/reftype/;
use Carp qw/croak/;
@@ -60,8 +60,8 @@
for my $k (keys %$f) {
next if substr($k, 0, 1) eq '_';
- my $data = $f->{$k};
- my $is_list = reftype($data) eq 'ARRAY';
+ my $data = $f->{$k} or next; # Key is there, but no facet
+ my $is_list = 'ARRAY' eq (reftype($data) || '');
$out{$k} = $is_list ? [ map { {%{$_}} } @$data ] : {%$data};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event/Waiting.pm new/Test-Simple-1.302167/lib/Test2/Event/Waiting.pm
--- old/Test-Simple-1.302166/lib/Test2/Event/Waiting.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event/Waiting.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Event.pm new/Test-Simple-1.302167/lib/Test2/Event.pm
--- old/Test-Simple-1.302166/lib/Test2/Event.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Event.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Scalar::Util qw/blessed reftype/;
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/About.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/About.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/About.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/About.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -package -no_display -uuid -eid };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Amnesty.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Amnesty.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Amnesty.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Amnesty.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
sub is_list { 1 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Assert.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Assert.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Assert.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Assert.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -pass -no_debug -number };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Control.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Control.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Control.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Control.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -global -terminate -halt -has_callback -encoding -phase };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Error.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Error.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Error.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Error.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
sub facet_key { 'errors' }
sub is_list { 1 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Hub.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Hub.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Hub.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Hub.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
sub is_list { 1 }
sub facet_key { 'hubs' }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Info/Table.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Info/Table.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Info/Table.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Info/Table.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/confess/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Info.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Info.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Info.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Info.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
sub is_list { 1 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Meta.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Meta.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Meta.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Meta.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use vars qw/$AUTOLOAD/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Parent.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Parent.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Parent.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Parent.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/confess/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Plan.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Plan.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Plan.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Plan.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -count -skip -none };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Render.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Render.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Render.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Render.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
sub is_list { 1 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet/Trace.pm new/Test-Simple-1.302167/lib/Test2/EventFacet/Trace.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet/Trace.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet/Trace.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/EventFacet.pm new/Test-Simple-1.302167/lib/Test2/EventFacet.pm
--- old/Test-Simple-1.302166/lib/Test2/EventFacet.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/EventFacet.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::Util::HashBase qw/-details/;
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Formatter/TAP.pm new/Test-Simple-1.302167/lib/Test2/Formatter/TAP.pm
--- old/Test-Simple-1.302166/lib/Test2/Formatter/TAP.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Formatter/TAP.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::Util qw/clone_io/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Formatter.pm new/Test-Simple-1.302167/lib/Test2/Formatter.pm
--- old/Test-Simple-1.302166/lib/Test2/Formatter.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Formatter.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
my %ADDED;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Hub/Interceptor/Terminator.pm new/Test-Simple-1.302167/lib/Test2/Hub/Interceptor/Terminator.pm
--- old/Test-Simple-1.302166/lib/Test2/Hub/Interceptor/Terminator.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Hub/Interceptor/Terminator.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Hub/Interceptor.pm new/Test-Simple-1.302167/lib/Test2/Hub/Interceptor.pm
--- old/Test-Simple-1.302166/lib/Test2/Hub/Interceptor.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Hub/Interceptor.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::Hub::Interceptor::Terminator();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Hub/Subtest.pm new/Test-Simple-1.302167/lib/Test2/Hub/Subtest.pm
--- old/Test-Simple-1.302166/lib/Test2/Hub/Subtest.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Hub/Subtest.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
use Test2::Util::HashBase qw/nested exit_code manual_skip_all/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Hub.pm new/Test-Simple-1.302167/lib/Test2/Hub.pm
--- old/Test-Simple-1.302166/lib/Test2/Hub.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Hub.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/carp croak confess/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/IPC/Driver/Files.pm new/Test-Simple-1.302167/lib/Test2/IPC/Driver/Files.pm
--- old/Test-Simple-1.302166/lib/Test2/IPC/Driver/Files.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/IPC/Driver/Files.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Test2::IPC::Driver; our @ISA = qw(Test2::IPC::Driver) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/IPC/Driver.pm new/Test-Simple-1.302167/lib/Test2/IPC/Driver.pm
--- old/Test-Simple-1.302166/lib/Test2/IPC/Driver.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/IPC/Driver.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/confess/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/IPC.pm new/Test-Simple-1.302167/lib/Test2/IPC.pm
--- old/Test-Simple-1.302166/lib/Test2/IPC.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/IPC.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Test2::API::Instance;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Tools/Tiny.pm new/Test-Simple-1.302167/lib/Test2/Tools/Tiny.pm
--- old/Test-Simple-1.302166/lib/Test2/Tools/Tiny.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Tools/Tiny.pm 2019-08-23 23:07:59.000000000 +0200
@@ -16,7 +16,7 @@
use Test2::Hub::Interceptor();
use Test2::Hub::Interceptor::Terminator();
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
BEGIN { require Exporter; our @ISA = qw(Exporter) }
our @EXPORT = qw{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Util/ExternalMeta.pm new/Test-Simple-1.302167/lib/Test2/Util/ExternalMeta.pm
--- old/Test-Simple-1.302166/lib/Test2/Util/ExternalMeta.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Util/ExternalMeta.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Util/Facets2Legacy.pm new/Test-Simple-1.302167/lib/Test2/Util/Facets2Legacy.pm
--- old/Test-Simple-1.302166/lib/Test2/Util/Facets2Legacy.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Util/Facets2Legacy.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use Carp qw/croak confess/;
use Scalar::Util qw/blessed/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Util/HashBase.pm new/Test-Simple-1.302167/lib/Test2/Util/HashBase.pm
--- old/Test-Simple-1.302166/lib/Test2/Util/HashBase.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Util/HashBase.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
#################################################################
# #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Util/Trace.pm new/Test-Simple-1.302167/lib/Test2/Util/Trace.pm
--- old/Test-Simple-1.302166/lib/Test2/Util/Trace.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Util/Trace.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
require Test2::EventFacet::Trace;
@ISA = ('Test2::EventFacet::Trace');
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2/Util.pm new/Test-Simple-1.302167/lib/Test2/Util.pm
--- old/Test-Simple-1.302166/lib/Test2/Util.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2/Util.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use POSIX();
use Config qw/%Config/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/Test2.pm new/Test-Simple-1.302167/lib/Test2.pm
--- old/Test-Simple-1.302166/lib/Test2.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/Test2.pm 2019-08-23 23:07:59.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/lib/ok.pm new/Test-Simple-1.302167/lib/ok.pm
--- old/Test-Simple-1.302166/lib/ok.pm 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/lib/ok.pm 2019-08-23 23:07:59.000000000 +0200
@@ -1,5 +1,5 @@
package ok;
-our $VERSION = '1.302166';
+our $VERSION = '1.302167';
use strict;
use Test::More ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Simple-1.302166/t/Test2/modules/API.t new/Test-Simple-1.302167/t/Test2/modules/API.t
--- old/Test-Simple-1.302166/t/Test2/modules/API.t 2019-08-15 19:37:02.000000000 +0200
+++ new/Test-Simple-1.302167/t/Test2/modules/API.t 2019-08-23 23:07:59.000000000 +0200
@@ -1,6 +1,8 @@
use strict;
use warnings;
+BEGIN { $main::cleanup1 = bless {}, 'My::Cleanup' }
+
use Test2::API qw/context/;
my ($LOADED, $INIT);
@@ -26,6 +28,7 @@
test2_tid
test2_stack
test2_no_wait
+ test2_is_testing_done
test2_add_callback_context_init
test2_add_callback_context_release
@@ -285,5 +288,23 @@
is((grep { $_ == $sub } Test2::API::test2_list_exit_callbacks()), 2, "got the two instances of the hook");
is((grep { $_ == $sub } Test2::API::test2_list_post_load_callbacks()), 2, "got the two instances of the hook");
+ok(!Test2::API::test2_is_testing_done(), "Testing is not done");
+
done_testing;
+die "Testing should be done, but it is not!" unless Test2::API::test2_is_testing_done();
+
+{
+ package My::Cleanup;
+
+ sub DESTROY {
+ return if Test2::API::test2_is_testing_done();
+ print "not ok - Testing should be done, but it is not!\n";
+ warn "Testing should be done, but it is not!";
+ eval "END { $? = 255 }; 1" or die $@;
+ exit 255;
+ }
+}
+
+# This should destroy the thing
+END { $main::cleanup2 = bless {}, 'My::Cleanup' }
1
0