openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
July 2019
- 2 participants
- 2045 discussions
Hello community,
here is the log from the commit of package perl-Modern-Perl for openSUSE:Factory checked in at 2019-07-29 17:31:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Modern-Perl (Old)
and /work/SRC/openSUSE:Factory/.perl-Modern-Perl.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Modern-Perl"
Mon Jul 29 17:31:48 2019 rev:22 rq:719527 version:1.20190727
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Modern-Perl/perl-Modern-Perl.changes 2019-06-02 15:18:52.226013667 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Modern-Perl.new.4126/perl-Modern-Perl.changes 2019-07-29 17:31:51.766138060 +0200
@@ -1,0 +2,10 @@
+Sun Jul 28 05:16:39 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 1.20190727
+ see /usr/share/doc/packages/perl-Modern-Perl/Changes
+
+ 1.20190727 2019-07-27 12:15:27-07:00 America/Los_Angeles
+ - remove explicit autodie dependency (GH #11, gordon-fish, mst, #perl)
+ - add description of odern::Perl module (Utkarsh Gupta, Debian, GH issue #12)
+
+-------------------------------------------------------------------
Old:
----
Modern-Perl-1.20190601.tar.gz
New:
----
Modern-Perl-1.20190727.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Modern-Perl.spec ++++++
--- /var/tmp/diff_new_pack.q8Lcmj/_old 2019-07-29 17:31:52.386137310 +0200
+++ /var/tmp/diff_new_pack.q8Lcmj/_new 2019-07-29 17:31:52.390137306 +0200
@@ -17,7 +17,7 @@
Name: perl-Modern-Perl
-Version: 1.20190601
+Version: 1.20190727
Release: 0
%define cpan_name Modern-Perl
Summary: Enable all of the features of Modern Perl with one import
@@ -31,10 +31,8 @@
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Test::More) >= 0.98
-BuildRequires: perl(autodie) >= 2.22
BuildRequires: perl(feature)
BuildRequires: perl(mro)
-Requires: perl(autodie) >= 2.22
Requires: perl(feature)
Requires: perl(mro)
%{perl_requires}
++++++ Modern-Perl-1.20190601.tar.gz -> Modern-Perl-1.20190727.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Modern-Perl-1.20190601/Changes new/Modern-Perl-1.20190727/Changes
--- old/Modern-Perl-1.20190601/Changes 2019-06-01 18:19:37.000000000 +0200
+++ new/Modern-Perl-1.20190727/Changes 2019-07-27 21:15:28.000000000 +0200
@@ -1,5 +1,9 @@
Revision history for Modern::Perl
+1.20190727 2019-07-27 12:15:27-07:00 America/Los_Angeles
+ - remove explicit autodie dependency (GH #11, gordon-fish, mst, #perl)
+ - add description of odern::Perl module (Utkarsh Gupta, Debian, GH issue #12)
+
1.20190601 2019-06-01 09:19:36-07:00 America/Los_Angeles
- update for 2019
- reduce scope of lexical %dates (RT #128406)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Modern-Perl-1.20190601/META.json new/Modern-Perl-1.20190727/META.json
--- old/Modern-Perl-1.20190601/META.json 2019-06-01 18:19:37.000000000 +0200
+++ new/Modern-Perl-1.20190727/META.json 2019-07-27 21:15:28.000000000 +0200
@@ -23,7 +23,6 @@
"requires" : {
"IO::File" : "0",
"IO::Handle" : "0",
- "autodie" : "2.22",
"feature" : "0",
"mro" : "0",
"perl" : "5.010",
@@ -46,7 +45,7 @@
"web" : "https://github.com/chromatic/Modern-Perl"
}
},
- "version" : "1.20190601",
+ "version" : "1.20190727",
"x_generated_by_perl" : "v5.30.0",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.11"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Modern-Perl-1.20190601/META.yml new/Modern-Perl-1.20190727/META.yml
--- old/Modern-Perl-1.20190601/META.yml 2019-06-01 18:19:37.000000000 +0200
+++ new/Modern-Perl-1.20190727/META.yml 2019-07-27 21:15:28.000000000 +0200
@@ -16,7 +16,6 @@
requires:
IO::File: '0'
IO::Handle: '0'
- autodie: '2.22'
feature: '0'
mro: '0'
perl: '5.010'
@@ -25,6 +24,6 @@
resources:
homepage: https://github.com/chromatic/Modern-Perl
repository: https://github.com/chromatic/Modern-Perl.git
-version: '1.20190601'
+version: '1.20190727'
x_generated_by_perl: v5.30.0
x_serialization_backend: 'YAML::Tiny version 1.73'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Modern-Perl-1.20190601/Makefile.PL new/Modern-Perl-1.20190727/Makefile.PL
--- old/Modern-Perl-1.20190601/Makefile.PL 2019-06-01 18:19:37.000000000 +0200
+++ new/Modern-Perl-1.20190727/Makefile.PL 2019-07-27 21:15:28.000000000 +0200
@@ -19,7 +19,6 @@
"PREREQ_PM" => {
"IO::File" => 0,
"IO::Handle" => 0,
- "autodie" => "2.22",
"feature" => 0,
"mro" => 0,
"strict" => 0,
@@ -28,7 +27,7 @@
"TEST_REQUIRES" => {
"Test::More" => "0.98"
},
- "VERSION" => "1.20190601",
+ "VERSION" => "1.20190727",
"test" => {
"TESTS" => "t/*.t"
}
@@ -39,7 +38,6 @@
"IO::File" => 0,
"IO::Handle" => 0,
"Test::More" => "0.98",
- "autodie" => "2.22",
"feature" => 0,
"mro" => 0,
"strict" => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Modern-Perl-1.20190601/dist.ini new/Modern-Perl-1.20190727/dist.ini
--- old/Modern-Perl-1.20190601/dist.ini 2019-06-01 18:19:37.000000000 +0200
+++ new/Modern-Perl-1.20190727/dist.ini 2019-07-27 21:15:28.000000000 +0200
@@ -11,7 +11,6 @@
[Prereqs]
perl = 5.010
-autodie = 2.22
[@Filter]
-bundle = @Basic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Modern-Perl-1.20190601/lib/Modern/Perl.pm new/Modern-Perl-1.20190727/lib/Modern/Perl.pm
--- old/Modern-Perl-1.20190601/lib/Modern/Perl.pm 2019-06-01 18:19:37.000000000 +0200
+++ new/Modern-Perl-1.20190727/lib/Modern/Perl.pm 2019-07-27 21:15:28.000000000 +0200
@@ -1,6 +1,6 @@
package Modern::Perl;
# ABSTRACT: enable all of the features of Modern Perl with one import
-$Modern::Perl::VERSION = '1.20190601';
+$Modern::Perl::VERSION = '1.20190727';
use 5.010_000;
use strict;
@@ -88,7 +88,7 @@
=head1 VERSION
-version 1.20190601
+version 1.20190727
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Modern-Perl-1.20190601/lib/odern/Perl.pm new/Modern-Perl-1.20190727/lib/odern/Perl.pm
--- old/Modern-Perl-1.20190601/lib/odern/Perl.pm 2019-06-01 18:19:37.000000000 +0200
+++ new/Modern-Perl-1.20190727/lib/odern/Perl.pm 2019-07-27 21:15:28.000000000 +0200
@@ -1,5 +1,6 @@
package odern::Perl;
-$odern::Perl::VERSION = '1.20190601';
+#ABSTRACT: Module for enabling all of the features of Modern Perl
+$odern::Perl::VERSION = '1.20190727';
use Modern::Perl;
*import = \&Modern::Perl::import;
@@ -14,11 +15,11 @@
=head1 NAME
-odern::Perl
+odern::Perl - Module for enabling all of the features of Modern Perl
=head1 VERSION
-version 1.20190601
+version 1.20190727
=head1 AUTHOR
1
0
Hello community,
here is the log from the commit of package perl-Log-Dispatchouli for openSUSE:Factory checked in at 2019-07-29 17:31:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Log-Dispatchouli (Old)
and /work/SRC/openSUSE:Factory/.perl-Log-Dispatchouli.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Log-Dispatchouli"
Mon Jul 29 17:31:46 2019 rev:14 rq:719526 version:2.018
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Log-Dispatchouli/perl-Log-Dispatchouli.changes 2019-03-14 15:01:31.927693380 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Log-Dispatchouli.new.4126/perl-Log-Dispatchouli.changes 2019-07-29 17:31:47.874142767 +0200
@@ -1,0 +2,10 @@
+Sat Jul 27 05:13:39 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 2.018
+ see /usr/share/doc/packages/perl-Log-Dispatchouli/Changes
+
+ 2.018 2019-07-26 18:36:56-04:00 America/New_York
+ - add enable_stdout and enable_stderr to, uh, enable stdout and enable
+ stderr (after initial construction)
+
+-------------------------------------------------------------------
Old:
----
Log-Dispatchouli-2.017.tar.gz
New:
----
Log-Dispatchouli-2.018.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Log-Dispatchouli.spec ++++++
--- /var/tmp/diff_new_pack.nU1Llj/_old 2019-07-29 17:31:48.358142182 +0200
+++ /var/tmp/diff_new_pack.nU1Llj/_new 2019-07-29 17:31:48.358142182 +0200
@@ -17,7 +17,7 @@
Name: perl-Log-Dispatchouli
-Version: 2.017
+Version: 2.018
Release: 0
%define cpan_name Log-Dispatchouli
Summary: Simple wrapper around Log::Dispatch
++++++ Log-Dispatchouli-2.017.tar.gz -> Log-Dispatchouli-2.018.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/Changes new/Log-Dispatchouli-2.018/Changes
--- old/Log-Dispatchouli-2.017/Changes 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/Changes 2019-07-27 00:37:01.000000000 +0200
@@ -1,5 +1,9 @@
Revision history for Log-Dispatchouli
+2.018 2019-07-26 18:36:56-04:00 America/New_York
+ - add enable_stdout and enable_stderr to, uh, enable stdout and enable
+ stderr (after initial construction)
+
2.017 2019-03-12 21:10:26-04:00 America/New_York
- syslog_socket can now be supplied to replace the native socket for
Sys::Syslog (thanks, Jon Stuart!)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/META.json new/Log-Dispatchouli-2.018/META.json
--- old/Log-Dispatchouli-2.017/META.json 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/META.json 2019-07-27 00:37:01.000000000 +0200
@@ -79,7 +79,7 @@
"web" : "https://github.com/rjbs/Log-Dispatchouli"
}
},
- "version" : "2.017",
+ "version" : "2.018",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.026003"
@@ -102,7 +102,7 @@
}
},
"name" : "@RJBS/Git::GatherDir",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
@@ -225,12 +225,12 @@
"version_regexp" : "(?^:^([0-9]+\\.[0-9]+)$)"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.21.0",
"repo_root" : "."
}
},
"name" : "@RJBS/Git::NextVersion",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::PkgVersion",
@@ -411,19 +411,19 @@
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.21.0",
"repo_root" : "."
}
},
"name" : "@RJBS/@Git/Check",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"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" : [
@@ -434,7 +434,7 @@
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.21.0",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
@@ -442,7 +442,7 @@
}
},
"name" : "@RJBS/@Git/Commit",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
@@ -451,12 +451,12 @@
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
- "tag" : "2.017",
+ "tag" : "2.018",
"tag_format" : "%v",
- "tag_message" : "v%v"
+ "tag_message" : "v%V"
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.21.0",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
@@ -464,7 +464,7 @@
}
},
"name" : "@RJBS/@Git/Tag",
- "version" : "2.045"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
@@ -477,18 +477,18 @@
"remotes_must_exist" : 0
},
"Dist::Zilla::Role::Git::Repo" : {
- "git_version" : "2.20.1",
+ "git_version" : "2.21.0",
"repo_root" : "."
}
},
"name" : "@RJBS/@Git/Push",
- "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.21.0",
"include_authors" : 0,
"include_releaser" : 1,
"order_by" : "name",
@@ -580,6 +580,6 @@
"Sawyer X <xsawyerx(a)cpan.org>"
],
"x_generated_by_perl" : "v5.26.3",
- "x_serialization_backend" : "Cpanel::JSON::XS version 4.09"
+ "x_serialization_backend" : "Cpanel::JSON::XS version 4.12"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/META.yml new/Log-Dispatchouli-2.018/META.yml
--- old/Log-Dispatchouli-2.017/META.yml 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/META.yml 2019-07-27 00:37:01.000000000 +0200
@@ -43,7 +43,7 @@
bugtracker: https://github.com/rjbs/Log-Dispatchouli/issues
homepage: https://github.com/rjbs/Log-Dispatchouli
repository: https://github.com/rjbs/Log-Dispatchouli.git
-version: '2.017'
+version: '2.018'
x_Dist_Zilla:
perl:
version: '5.026003'
@@ -62,7 +62,7 @@
Dist::Zilla::Plugin::Git::GatherDir:
include_untracked: 0
name: '@RJBS/Git::GatherDir'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::CheckPrereqsIndexed
name: '@RJBS/CheckPrereqsIndexed'
@@ -159,10 +159,10 @@
version_by_branch: 0
version_regexp: (?^:^([0-9]+\.[0-9]+)$)
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.21.0
repo_root: .
name: '@RJBS/Git::NextVersion'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::PkgVersion
name: '@RJBS/PkgVersion'
@@ -303,16 +303,16 @@
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.21.0
repo_root: .
name: '@RJBS/@Git/Check'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::Git::Commit
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
@@ -320,12 +320,12 @@
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.21.0
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@RJBS/@Git/Commit'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::Git::Tag
config:
@@ -333,16 +333,16 @@
branch: ~
changelog: Changes
signed: 0
- tag: '2.017'
+ tag: '2.018'
tag_format: '%v'
- tag_message: v%v
+ tag_message: v%V
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.21.0
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@RJBS/@Git/Tag'
- version: '2.045'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::Git::Push
config:
@@ -352,15 +352,15 @@
- 'github :'
remotes_must_exist: 0
Dist::Zilla::Role::Git::Repo:
- git_version: 2.20.1
+ git_version: 2.21.0
repo_root: .
name: '@RJBS/@Git/Push'
- 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.21.0
include_authors: 0
include_releaser: 1
order_by: name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/Makefile.PL new/Log-Dispatchouli-2.018/Makefile.PL
--- old/Log-Dispatchouli-2.017/Makefile.PL 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/Makefile.PL 2019-07-27 00:37:01.000000000 +0200
@@ -45,7 +45,7 @@
"base" => 0,
"lib" => 0
},
- "VERSION" => "2.017",
+ "VERSION" => "2.018",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/README new/Log-Dispatchouli-2.018/README
--- old/Log-Dispatchouli-2.017/README 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/README 2019-07-27 00:37:01.000000000 +0200
@@ -1,5 +1,5 @@
This archive contains the distribution Log-Dispatchouli,
-version 2.017:
+version 2.018:
a simple wrapper around Log::Dispatch
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/lib/Log/Dispatchouli/Global.pm new/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Global.pm
--- old/Log-Dispatchouli-2.017/lib/Log/Dispatchouli/Global.pm 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Global.pm 2019-07-27 00:37:01.000000000 +0200
@@ -2,7 +2,7 @@
use warnings;
package Log::Dispatchouli::Global;
# ABSTRACT: a system for sharing a global, dynamically-scoped logger
-$Log::Dispatchouli::Global::VERSION = '2.017';
+$Log::Dispatchouli::Global::VERSION = '2.018';
use Carp ();
use Log::Dispatchouli;
use Scalar::Util ();
@@ -280,7 +280,7 @@
=head1 VERSION
-version 2.017
+version 2.018
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/lib/Log/Dispatchouli/Proxy.pm new/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Proxy.pm
--- old/Log-Dispatchouli-2.017/lib/Log/Dispatchouli/Proxy.pm 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Proxy.pm 2019-07-27 00:37:01.000000000 +0200
@@ -2,7 +2,7 @@
use warnings;
package Log::Dispatchouli::Proxy;
# ABSTRACT: a simple wrapper around Log::Dispatch
-$Log::Dispatchouli::Proxy::VERSION = '2.017';
+$Log::Dispatchouli::Proxy::VERSION = '2.018';
use Params::Util qw(_ARRAY0 _HASH0);
#pod =head1 DESCRIPTION
@@ -149,7 +149,7 @@
=head1 VERSION
-version 2.017
+version 2.018
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/lib/Log/Dispatchouli.pm new/Log-Dispatchouli-2.018/lib/Log/Dispatchouli.pm
--- old/Log-Dispatchouli-2.017/lib/Log/Dispatchouli.pm 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/lib/Log/Dispatchouli.pm 2019-07-27 00:37:01.000000000 +0200
@@ -2,7 +2,7 @@
use warnings;
package Log::Dispatchouli;
# ABSTRACT: a simple wrapper around Log::Dispatch
-$Log::Dispatchouli::VERSION = '2.017';
+$Log::Dispatchouli::VERSION = '2.018';
use Carp ();
use File::Spec ();
use Log::Dispatch;
@@ -226,16 +226,9 @@
DEST: for my $dest (qw(err out)) {
next DEST unless $arg->{"to_std$dest"};
- require Log::Dispatch::Screen;
- $log->add(
- Log::Dispatch::Screen->new(
- name => "std$dest",
- min_level => 'debug',
- stderr => ($dest eq 'err' ? 1 : 0),
- callbacks => sub { +{@_}->{message} . "\n" },
- ($quiet_fatal{"std$dest"} ? (max_level => 'info') : ()),
- ),
- );
+ my $method = "enable_std$dest";
+
+ $self->$method;
}
$self->{dispatcher} = $log;
@@ -248,11 +241,32 @@
: ($self->env_value('DEBUG') ? 1 : 0);
$self->{muted} = $arg->{muted};
- $self->{fail_fatal} = exists $arg->{fail_fatal} ? $arg->{fail_fatal} : 1;
+ $self->{quiet_fatal} = \%quiet_fatal;
+ $self->{fail_fatal} = exists $arg->{fail_fatal} ? $arg->{fail_fatal} : 1;
return $self;
}
+for my $dest (qw(out err)) {
+ my $name = "std$dest";
+ my $code = sub {
+ return if $_[0]->dispatcher->output($name);
+ require Log::Dispatch::Screen;
+ $_[0]->dispatcher->add(
+ Log::Dispatch::Screen->new(
+ name => "std$dest",
+ min_level => 'debug',
+ stderr => ($dest eq 'err' ? 1 : 0),
+ callbacks => sub { +{@_}->{message} . "\n" },
+ ($_[0]{quiet_fatal}{"std$dest"} ? (max_level => 'info') : ()),
+ ),
+ );
+ };
+
+ no strict 'refs';
+ *{"enable_std$dest"} = $code;
+}
+
#pod =method log
#pod
#pod $logger->log(@messages);
@@ -698,7 +712,7 @@
=head1 VERSION
-version 2.017
+version 2.018
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.017/xt/release/changes_has_content.t new/Log-Dispatchouli-2.018/xt/release/changes_has_content.t
--- old/Log-Dispatchouli-2.017/xt/release/changes_has_content.t 2019-03-13 02:10:31.000000000 +0100
+++ new/Log-Dispatchouli-2.018/xt/release/changes_has_content.t 2019-07-27 00:37:01.000000000 +0200
@@ -2,7 +2,7 @@
note 'Checking Changes';
my $changes_file = 'Changes';
-my $newver = '2.017';
+my $newver = '2.018';
my $trial_token = '-TRIAL';
my $encoding = 'UTF-8';
1
0
Hello community,
here is the log from the commit of package python-scikit-image for openSUSE:Factory checked in at 2019-07-29 17:31:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-scikit-image (Old)
and /work/SRC/openSUSE:Factory/.python-scikit-image.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-scikit-image"
Mon Jul 29 17:31:37 2019 rev:7 rq:719524 version:0.15.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-scikit-image/python-scikit-image.changes 2019-07-26 12:43:07.097836454 +0200
+++ /work/SRC/openSUSE:Factory/.python-scikit-image.new.4126/python-scikit-image.changes 2019-07-29 17:31:41.974149902 +0200
@@ -1,0 +2,6 @@
+Sat Jul 27 18:12:14 UTC 2019 - Bernhard Wiedemann <bwiedemann(a)suse.com>
+
+- do not write unreproducible test_random_walker.cpython-37-PYTEST.pyc
+ files (boo#1062303)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-scikit-image.spec ++++++
--- /var/tmp/diff_new_pack.hPGdSK/_old 2019-07-29 17:31:42.994148669 +0200
+++ /var/tmp/diff_new_pack.hPGdSK/_new 2019-07-29 17:31:42.998148664 +0200
@@ -88,6 +88,7 @@
%python_uninstall_alternative skivi
%check
+export PYTHONDONTWRITEBYTECODE=1 # do not write unreproducible test_random_walker.cpython-37-PYTEST.pyc files (boo#1062303)
mv skimage skimage_temp
%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch}
py.test-%{$python_bin_suffix} -v %{buildroot}%{$python_sitearch}/skimage
1
0
Hello community,
here is the log from the commit of package perl-Text-Template for openSUSE:Factory checked in at 2019-07-29 17:31:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Text-Template (Old)
and /work/SRC/openSUSE:Factory/.perl-Text-Template.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Text-Template"
Mon Jul 29 17:31:33 2019 rev:22 rq:719523 version:1.56
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Text-Template/perl-Text-Template.changes 2019-03-01 20:32:23.537967912 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Text-Template.new.4126/perl-Text-Template.changes 2019-07-29 17:31:34.602158817 +0200
@@ -1,0 +2,9 @@
+Thu Jul 25 05:31:06 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 1.56
+ see /usr/share/doc/packages/perl-Text-Template/Changes
+
+ 1.56 2019-07-09
+ - Fix typos in Changes
+
+-------------------------------------------------------------------
Old:
----
Text-Template-1.55.tar.gz
New:
----
Text-Template-1.56.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Text-Template.spec ++++++
--- /var/tmp/diff_new_pack.Ko35w6/_old 2019-07-29 17:31:35.114158198 +0200
+++ /var/tmp/diff_new_pack.Ko35w6/_new 2019-07-29 17:31:35.118158193 +0200
@@ -17,7 +17,7 @@
Name: perl-Text-Template
-Version: 1.55
+Version: 1.56
Release: 0
%define cpan_name Text-Template
Summary: Expand template text with embedded Perl
++++++ Text-Template-1.55.tar.gz -> Text-Template-1.56.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-Template-1.55/Changes new/Text-Template-1.56/Changes
--- old/Text-Template-1.55/Changes 2019-02-25 16:08:26.000000000 +0100
+++ new/Text-Template-1.56/Changes 2019-07-09 15:27:23.000000000 +0200
@@ -1,5 +1,8 @@
Revision history for Text::Template
+1.56 2019-07-09
+ - Fix typos in Changes
+
1.55 2019-02-25
- Improve AppVeyor tests for older Perls (Thanks Roy Ivy)
- Check for Test::More 0.94 and skip tests if not installed where
@@ -87,7 +90,7 @@
1.45 2008-04-16
1.44 2003-04-29
- - This is a maintentance release. There are no feature changes.
+ - This is a maintenance release. There are no feature changes.
- _scrubpkg, which was responsible for eptying out temporary packages after
the module had done with them, wasn't always working; the result was
memory leaks in long-running applications. This should be fixed now, and
@@ -102,13 +105,13 @@
and the ->fill_in call would fail.
1.42 2001-11-05
- - This is a maintentance release. There are no feature changes.
+ - This is a maintenance release. There are no feature changes.
- Fixed a bug relating to use of UNTAINT under perl 5.005_03 and possibly
other versions.
- Taint-related tests are now more comprehensive.
1.41 2001-09-04
- - This is a maintentance release. There are no feature changes.
+ - This is a maintenance release. There are no feature changes.
- Tests now work correctly on Windows systems and possibly on other
non-unix systems.
@@ -146,7 +149,7 @@
- Bug fix: $OUT was not correctly initialized when used in conjunction
with SAFE.
- You may now use a glob ref when passing a filehandle to the ->new
- funcion. Formerly, a glob was reuqired.
+ function. Formerly, a glob was required.
- New subclass: Text::Template::Preprocess. Just like Text::Template, but
you may supply a PREPROCESS option in the constructor or the fill_in
call; this is a function which receives each code fragment prior to
@@ -168,7 +171,7 @@
Itamar Almeida de Carvalho.
- Bug fix: $OUT was not always correctly initialized when used in
conjunction with SAFE.
- - You may now use a glob ref when passing a filehandle to the new funcion.
+ - You may now use a glob ref when passing a filehandle to the new function.
Formerly, a glob was required.
- Error messages passed to BROKEN subroutines will now report the correct
line number of the template at which the error occurred:
@@ -226,7 +229,7 @@
incompatible with the beta versions and was also inconvenient. (`\n' in
templates was replaced with `n' before it was given to Perl for
evaluation.) The new behavior is also incompatible with the beta
- versions, but it is only a little bit incompatible, and it is probbaly
+ versions, but it is only a little bit incompatible, and it is probably
better.
- Documentation for the new behavior, and tests for the bug.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-Template-1.55/META.json new/Text-Template-1.56/META.json
--- old/Text-Template-1.55/META.json 2019-02-25 16:08:26.000000000 +0100
+++ new/Text-Template-1.56/META.json 2019-07-09 15:27:23.000000000 +0200
@@ -57,11 +57,11 @@
"provides" : {
"Text::Template" : {
"file" : "lib/Text/Template.pm",
- "version" : "1.55"
+ "version" : "1.56"
},
"Text::Template::Preprocess" : {
"file" : "lib/Text/Template/Preprocess.pm",
- "version" : "1.55"
+ "version" : "1.56"
}
},
"release_status" : "stable",
@@ -76,7 +76,7 @@
"web" : "https://github.com/mschout/perl-text-template"
}
},
- "version" : "1.55",
+ "version" : "1.56",
"x_generated_by_perl" : "v5.26.2",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.04"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-Template-1.55/META.yml new/Text-Template-1.56/META.yml
--- old/Text-Template-1.55/META.yml 2019-02-25 16:08:26.000000000 +0100
+++ new/Text-Template-1.56/META.yml 2019-07-09 15:27:23.000000000 +0200
@@ -25,10 +25,10 @@
provides:
Text::Template:
file: lib/Text/Template.pm
- version: '1.55'
+ version: '1.56'
Text::Template::Preprocess:
file: lib/Text/Template/Preprocess.pm
- version: '1.55'
+ version: '1.56'
requires:
Carp: '0'
Encode: '0'
@@ -41,6 +41,6 @@
bugtracker: https://github.com/mschout/perl-text-template/issues
homepage: https://github.com/mschout/perl-text-template
repository: https://github.com/mschout/perl-text-template.git
-version: '1.55'
+version: '1.56'
x_generated_by_perl: v5.26.2
x_serialization_backend: 'YAML::Tiny version 1.73'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-Template-1.55/Makefile.PL new/Text-Template-1.56/Makefile.PL
--- old/Text-Template-1.55/Makefile.PL 2019-02-25 16:08:26.000000000 +0100
+++ new/Text-Template-1.56/Makefile.PL 2019-07-09 15:27:23.000000000 +0200
@@ -34,7 +34,7 @@
"utf8" => 0,
"vars" => 0
},
- "VERSION" => "1.55",
+ "VERSION" => "1.56",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-Template-1.55/SIGNATURE new/Text-Template-1.56/SIGNATURE
--- old/Text-Template-1.55/SIGNATURE 2019-02-25 16:08:26.000000000 +0100
+++ new/Text-Template-1.56/SIGNATURE 2019-07-09 15:27:23.000000000 +0200
@@ -14,16 +14,16 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-SHA1 8c173ebeeba1c70b9ee712f6c7e7a855180b2b9d Changes
+SHA1 8ba1381d3fc8d81457c35e5aff52b8e55d57be7c Changes
SHA1 b457bd56a70b838ccc55d183ab09de64b6996958 INSTALL
SHA1 f12894289cb0f379f24b8d63e2e761dbcba1b216 LICENSE
SHA1 2c21cb13f53da41c4b30011aca9014db2de46862 MANIFEST
-SHA1 2c7078ed83f5c43ce40e6d9ffe16f99f25fcc283 META.json
-SHA1 fb69aba94db2384187a1e20339bb507990f83c00 META.yml
-SHA1 2d186864e2cb58a4d9dd278e1754062e678dac69 Makefile.PL
+SHA1 ea82a70dfcffe05202868dfe02826aaf1f6e0229 META.json
+SHA1 9ad7419fb6209e81652da42967995c8fb8f1826b META.yml
+SHA1 f7634b46dde2cf8c6f31fe46327d15151d654a2c Makefile.PL
SHA1 b94aaad0a0bf2c323061bfefb9cf1fd532f14e7b README
-SHA1 2c4f88b5ff9d2aaf709f9359a9a3cf748c6ec3bc lib/Text/Template.pm
-SHA1 1d0c744faf126c916522c0fc549998503e6e6e3e lib/Text/Template/Preprocess.pm
+SHA1 090d77972c087a8905fa85522854afbf4ccc999b lib/Text/Template.pm
+SHA1 ca5251a021e46b60603f10e757d689e52fde1feb lib/Text/Template/Preprocess.pm
SHA1 8efad25309730a4d501fb40fc03eda4697303372 t/author-pod-syntax.t
SHA1 19cc343f8a85c6805bbeb02580487483a6283887 t/author-signature.t
SHA1 ae085010c9f08576ef8584f224e38e6a98c1c178 t/basic.t
@@ -48,18 +48,18 @@
SHA1 ce1da9bf88d6ea62d7c756f0d730dfb3c5888b6e t/warnings.t
-----BEGIN PGP SIGNATURE-----
-iQJFBAEBCAAvFiEE2EtuRfhGgngE8PsARAzvLrlUzY4FAlx0BOQRHG1zY2hvdXRA
-Y3Bhbi5vcmcACgkQRAzvLrlUzY5mrBAAr5NnndnArsyCSd98Hi14QHzdITmZC4f8
-LULMqittCGN+3Cr0FXEe8VDjab6wozbfUlT+1NKbL1OZX55ZOKStyZCpTWBXEjel
-b8R0d1jrdTRrNwEwcQa7o34y4vBjtlhvj9sEFNSbPtIWkaonaKMtapMZnzOjaxO8
-rRQ9MIcu2qzxxwsCNArdj9PEniB9jpFva8pvOBZOs16NM2TJBI+eSgpxJrkfaww+
-r92faVHo/CnxB7TU4kOpcnYXopNSFKBaHXoSQvdTwlUQQDwMnV0n5So4Nn2kjYDq
-xs267vPatNnG+NGgJOYiEJRRhZcIyLPxgFCnPO4CwOFqM2iKUBAMz0qM5V5SPBPF
-cfZxTZ7VpYNLFlAcDx+r+3T07QaHZE6S0ozdsGoRW4rDs5AvCO/RZY4p3IYUcAz5
-9zfxZhXkgmqBrT46Q0pHzazU4MR9GxN1TOZK1fUOyPkZNiEGppSJ0/ATNzeRz/B0
-WClaoAOQupMJji7hjbVhAWMB38+7gqhDMofuDbkzSCEEeNJ1DvZiXBlMJnNxX0mG
-eXZnZoxy+ROPMKdpX4BwkjXIazz6GGeVarlNwUCxesDhpomSehtukiK4Uzy6t3O9
-dhbT7kNs0TK8uSmDGUm11SEA6fMqKSie1rnS4+l/QZOx/RJSXd2C25wXkrAvYMXQ
-LAp5IjVPrfo=
-=OLmz
+iQJFBAEBCAAvFiEE2EtuRfhGgngE8PsARAzvLrlUzY4FAl0kljYRHG1zY2hvdXRA
+Y3Bhbi5vcmcACgkQRAzvLrlUzY6BdRAAlu/LI+71ax6OJfn6O6SslZCKdIfef1+P
+UQ3eQCzbUOK1hP9p6TNOMFv0xPew7a1jSsM/wLjryXKLqGIclonBopRisZjCSaFa
+DSH+5k4A9TWKo7n08C3nydVZPTfHXLEO6tHIH2umDHjMyC1gDkApjvSqH53OCtoV
+vUTqQn9c6MxmuIWus1gjVynTvXWtBmaqrvTuQENFUXsGH5gVVbEr0VNIyt6Ip3p5
+HnRe8UdykFJZvfhEhH1pbt2j513m9Bqce0eSb/eshraFugx7coD3gk2EXqp8eVzK
+84vPEcNC8Moii8+qg48VDh9wBq1u/cba2U7PcVjj3lRk/pAni31XnlXLPWJ0dZLF
+fR4glE86ESTGSyI2wGDxyEdev+e64sk7geYmL388kqtpqkKWvALmQkKUJg0T0ppp
+LYv31DrsP4QM1duv46y3wVbqUPeQlKBOU81vfyAonrD02tRZjwRpCD67CZ9WSgZu
+el85yPneIIijYEOzV8GYHKNiiZKpu2uidKCe+MFGxBtXe9hyi9x95tuyi9/pu2FB
+YjbGJ8Wb4xhS7zdDWZb/axfwbcGMVml6a6xA98jVkwjHhPvKsf3qWVZZPtWneeN0
+pGNpMta73wQxrp5/W1GfvBfPVlsker6SAARg2NMwS9Wmp+ZuD6gdJ+aN0/PPtNUd
+HQJJFjr/xo4=
+=nx9E
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-Template-1.55/lib/Text/Template/Preprocess.pm new/Text-Template-1.56/lib/Text/Template/Preprocess.pm
--- old/Text-Template-1.55/lib/Text/Template/Preprocess.pm 2019-02-25 16:08:26.000000000 +0100
+++ new/Text-Template-1.56/lib/Text/Template/Preprocess.pm 2019-07-09 15:27:23.000000000 +0200
@@ -1,6 +1,6 @@
package Text::Template::Preprocess;
-$Text::Template::Preprocess::VERSION = '1.55';
+$Text::Template::Preprocess::VERSION = '1.56';
# ABSTRACT: Expand template text with embedded Perl
use strict;
@@ -53,7 +53,7 @@
=head1 VERSION
-version 1.55
+version 1.56
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-Template-1.55/lib/Text/Template.pm new/Text-Template-1.56/lib/Text/Template.pm
--- old/Text-Template-1.55/lib/Text/Template.pm 2019-02-25 16:08:26.000000000 +0100
+++ new/Text-Template-1.56/lib/Text/Template.pm 2019-07-09 15:27:23.000000000 +0200
@@ -10,7 +10,7 @@
#
package Text::Template;
-$Text::Template::VERSION = '1.55';
+$Text::Template::VERSION = '1.56';
# ABSTRACT: Expand template text with embedded Perl
use strict;
@@ -611,7 +611,7 @@
=head1 VERSION
-version 1.55
+version 1.56
=head1 SYNOPSIS
1
0
Hello community,
here is the log from the commit of package python-docker for openSUSE:Factory checked in at 2019-07-29 17:31:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-docker (Old)
and /work/SRC/openSUSE:Factory/.python-docker.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-docker"
Mon Jul 29 17:31:29 2019 rev:15 rq:719521 version:4.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-docker/python-docker.changes 2019-04-02 09:22:52.736733010 +0200
+++ /work/SRC/openSUSE:Factory/.python-docker.new.4126/python-docker.changes 2019-07-29 17:31:29.762164671 +0200
@@ -1,0 +2,48 @@
+Sun Jul 28 16:15:10 UTC 2019 - Arun Persaud <arun(a)gmx.de>
+
+- update to version 4.0.2:
+ * Bugfixes
+ + Unified the way HealthCheck is created/configured
+ * Miscellaneous
+ + Bumped version of websocket-client
+
+- changes from version 4.0.1:
+ * Bugfixes
+ + Fixed an obsolete import in the credentials subpackage that
+ caused import errors in Python 3.7
+ * Miscellaneous
+ + Docs building has been repaired
+
+- changes from version 4.0.0:
+ * Breaking changes
+ + Support for Python 3.3 and Python 3.4 has been dropped
+ + APIClient.update_service, APIClient.init_swarm, and
+ DockerClient.swarm.init now return a dict from the API's
+ response body
+ + In APIClient.build and DockerClient.images.build, the
+ use_config_proxy parameter now defaults to True
+ + init_path is no longer a valid parameter for HostConfig
+ * Features
+ + It is now possible to provide SCTP ports for port mappings
+ + ContainerSpecs now support the init parameter
+ + DockerClient.swarm.init and APIClient.init_swarm now support the
+ data_path_addr parameter
+ + APIClient.update_swarm and DockerClient.swarm.update now support
+ the rotate_manager_unlock_key parameter
+ + APIClient.update_service returns the API's response body as a
+ dict
+ + APIClient.init_swarm, and DockerClient.swarm.init now return the
+ API's response body as a dict
+ * Bugfixes
+ + Fixed PlacementPreference instances to produce a valid API type
+ + Fixed a bug where not setting a value for buildargs in build
+ could cause the library to attempt accessing attributes of a
+ None value
+ + Fixed a bug where setting the volume_driver parameter in
+ DockerClient.containers.create would result in an error
+ + APIClient.inspect_distribution now correctly sets the
+ authentication headers on the request, allowing it to be used
+ with private repositories This change also applies to
+ DockerClient.get_registry_data
+
+-------------------------------------------------------------------
Old:
----
3.7.2.tar.gz
New:
----
4.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-docker.spec ++++++
--- /var/tmp/diff_new_pack.HYq3sM/_old 2019-07-29 17:31:30.326163989 +0200
+++ /var/tmp/diff_new_pack.HYq3sM/_new 2019-07-29 17:31:30.330163984 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define oldpython python
Name: python-docker
-Version: 3.7.2
+Version: 4.0.2
Release: 0
Summary: Docker API Client
License: Apache-2.0
++++++ 3.7.2.tar.gz -> 4.0.2.tar.gz ++++++
++++ 2312 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-QtPy for openSUSE:Factory checked in at 2019-07-29 17:31:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-QtPy (Old)
and /work/SRC/openSUSE:Factory/.python-QtPy.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-QtPy"
Mon Jul 29 17:31:27 2019 rev:11 rq:719516 version:1.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-QtPy/python-QtPy.changes 2019-07-23 22:42:37.542777433 +0200
+++ /work/SRC/openSUSE:Factory/.python-QtPy.new.4126/python-QtPy.changes 2019-07-29 17:31:29.042165541 +0200
@@ -1,0 +2,15 @@
+Mon Jul 29 07:57:44 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 1.9.0
+ * Add the FORCE_QT_API environment variable to keep using the Qt
+ bindings selected with the QT_API variable and avoid switching
+ to the currently imported bindings. This allows to have
+ applications that import PySide and PyQt bindings at the same
+ time (which is possible if both bindings are compiled for the
+ same Qt version).
+ * Errors in the Qt3D modules with PySide2 5.12.4+ and Python 2
+ * Binding Selection Logic
+ * PR: Don't load Qt3D modules for buggy versions of PySide2
+ * PR: Add FORCE_QT_API environment variable
+
+-------------------------------------------------------------------
Old:
----
QtPy-1.8.0.tar.gz
New:
----
QtPy-1.9.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-QtPy.spec ++++++
--- /var/tmp/diff_new_pack.B80R2V/_old 2019-07-29 17:31:29.550164927 +0200
+++ /var/tmp/diff_new_pack.B80R2V/_new 2019-07-29 17:31:29.554164922 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-QtPy
-Version: 1.8.0
+Version: 1.9.0
Release: 0
Summary: Abstraction layer on top of Qt bindings
License: MIT
++++++ QtPy-1.8.0.tar.gz -> QtPy-1.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/CHANGELOG.md new/QtPy-1.9.0/CHANGELOG.md
--- old/QtPy-1.8.0/CHANGELOG.md 2019-05-05 09:51:49.000000000 +0200
+++ new/QtPy-1.9.0/CHANGELOG.md 2019-07-23 12:17:21.000000000 +0200
@@ -1,5 +1,56 @@
# History of changes
+## Version 1.9.0 (2019-07-23)
+
+### New features
+
+* Add the FORCE_QT_API environment variable to keep using the Qt
+ bindings selected with the QT_API variable and avoid switching
+ to the currently imported bindings. This allows to have
+ applications that import PySide and PyQt bindings at the same
+ time (which is possible if both bindings are compiled for the
+ same Qt version).
+
+### Issues Closed
+
+* [Issue 195](https://github.com/spyder-ide/qtpy/issues/195) - Errors in the Qt3D modules with PySide2 5.12.4+ and Python 2 ([PR 196](https://github.com/spyder-ide/qtpy/pull/196))
+* [Issue 192](https://github.com/spyder-ide/qtpy/issues/192) - Binding Selection Logic ([PR 194](https://github.com/spyder-ide/qtpy/pull/194))
+
+In this release 2 issues were closed.
+
+### Pull Requests Merged
+
+* [PR 196](https://github.com/spyder-ide/qtpy/pull/196) - PR: Don't load Qt3D modules for buggy versions of PySide2 ([195](https://github.com/spyder-ide/qtpy/issues/195))
+* [PR 194](https://github.com/spyder-ide/qtpy/pull/194) - PR: Add FORCE_QT_API environment variable ([192](https://github.com/spyder-ide/qtpy/issues/192))
+
+In this release 2 pull requests were closed.
+
+
+----
+
+
+## Version 1.8.0 (2019-06-12)
+
+### New features
+
+* Add support for several Qt 3D modules.
+
+### Issues Closed
+
+* [Issue 172](https://github.com/spyder-ide/qtpy/issues/172) - Support for Qt3D ([PR 191](https://github.com/spyder-ide/qtpy/pull/191))
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+* [PR 191](https://github.com/spyder-ide/qtpy/pull/191) - PR: Add Qt 3D bindings ([172](https://github.com/spyder-ide/qtpy/issues/172))
+
+In this release 1 pull request was closed.
+
+
+----
+
+
## Version 1.7.1 (2019-05-05)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/PKG-INFO new/QtPy-1.9.0/PKG-INFO
--- old/QtPy-1.8.0/PKG-INFO 2019-06-12 13:18:26.000000000 +0200
+++ new/QtPy-1.9.0/PKG-INFO 2019-07-23 12:19:34.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: QtPy
-Version: 1.8.0
+Version: 1.9.0
Summary: Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets.
Home-page: https://github.com/spyder-ide/qtpy
Author: Colin Duquesnoy, The Spyder Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/QtPy.egg-info/PKG-INFO new/QtPy-1.9.0/QtPy.egg-info/PKG-INFO
--- old/QtPy-1.8.0/QtPy.egg-info/PKG-INFO 2019-06-12 13:18:25.000000000 +0200
+++ new/QtPy-1.9.0/QtPy.egg-info/PKG-INFO 2019-07-23 12:19:34.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: QtPy
-Version: 1.8.0
+Version: 1.9.0
Summary: Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets.
Home-page: https://github.com/spyder-ide/qtpy
Author: Colin Duquesnoy, The Spyder Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/Qt3DAnimation.py new/QtPy-1.9.0/qtpy/Qt3DAnimation.py
--- old/QtPy-1.8.0/qtpy/Qt3DAnimation.py 2019-06-12 13:16:09.000000000 +0200
+++ new/QtPy-1.9.0/qtpy/Qt3DAnimation.py 2019-07-15 10:09:31.000000000 +0200
@@ -8,15 +8,19 @@
"""Provides Qt3DAnimation classes and functions."""
# Local imports
-from . import PYQT5, PYSIDE2, PythonQtError
+from . import PYQT5, PYSIDE2, PythonQtError, PYSIDE_VERSION
+from .py3compat import PY2
if PYQT5:
from PyQt5.Qt3DAnimation import *
elif PYSIDE2:
- # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
- import PySide2.Qt3DAnimation as __temp
- import inspect
- for __name in inspect.getmembers(__temp.Qt3DAnimation):
- globals()[__name[0]] = __name[1]
+ if not PY2 or (PY2 and PYSIDE_VERSION < '5.12.4'):
+ # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
+ import PySide2.Qt3DAnimation as __temp
+ import inspect
+ for __name in inspect.getmembers(__temp.Qt3DAnimation):
+ globals()[__name[0]] = __name[1]
+ else:
+ raise PythonQtError('A bug in Shiboken prevents this')
else:
raise PythonQtError('No Qt bindings could be found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/Qt3DCore.py new/QtPy-1.9.0/qtpy/Qt3DCore.py
--- old/QtPy-1.8.0/qtpy/Qt3DCore.py 2019-06-12 13:16:09.000000000 +0200
+++ new/QtPy-1.9.0/qtpy/Qt3DCore.py 2019-07-15 10:09:31.000000000 +0200
@@ -8,15 +8,19 @@
"""Provides Qt3DCore classes and functions."""
# Local imports
-from . import PYQT5, PYSIDE2, PythonQtError
+from . import PYQT5, PYSIDE2, PythonQtError, PYSIDE_VERSION
+from .py3compat import PY2
if PYQT5:
from PyQt5.Qt3DCore import *
elif PYSIDE2:
- # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
- import PySide2.Qt3DCore as __temp
- import inspect
- for __name in inspect.getmembers(__temp.Qt3DCore):
- globals()[__name[0]] = __name[1]
+ if not PY2 or (PY2 and PYSIDE_VERSION < '5.12.4'):
+ # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
+ import PySide2.Qt3DCore as __temp
+ import inspect
+ for __name in inspect.getmembers(__temp.Qt3DCore):
+ globals()[__name[0]] = __name[1]
+ else:
+ raise PythonQtError('A bug in Shiboken prevents this')
else:
raise PythonQtError('No Qt bindings could be found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/Qt3DExtras.py new/QtPy-1.9.0/qtpy/Qt3DExtras.py
--- old/QtPy-1.8.0/qtpy/Qt3DExtras.py 2019-06-12 13:16:09.000000000 +0200
+++ new/QtPy-1.9.0/qtpy/Qt3DExtras.py 2019-07-15 10:09:31.000000000 +0200
@@ -8,15 +8,19 @@
"""Provides Qt3DExtras classes and functions."""
# Local imports
-from . import PYQT5, PYSIDE2, PythonQtError
+from . import PYQT5, PYSIDE2, PythonQtError, PYSIDE_VERSION
+from .py3compat import PY2
if PYQT5:
from PyQt5.Qt3DExtras import *
elif PYSIDE2:
- # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
- import PySide2.Qt3DExtras as __temp
- import inspect
- for __name in inspect.getmembers(__temp.Qt3DExtras):
- globals()[__name[0]] = __name[1]
+ if not PY2 or (PY2 and PYSIDE_VERSION < '5.12.4'):
+ # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
+ import PySide2.Qt3DExtras as __temp
+ import inspect
+ for __name in inspect.getmembers(__temp.Qt3DExtras):
+ globals()[__name[0]] = __name[1]
+ else:
+ raise PythonQtError('A bug in Shiboken prevents this')
else:
raise PythonQtError('No Qt bindings could be found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/Qt3DInput.py new/QtPy-1.9.0/qtpy/Qt3DInput.py
--- old/QtPy-1.8.0/qtpy/Qt3DInput.py 2019-06-12 13:16:09.000000000 +0200
+++ new/QtPy-1.9.0/qtpy/Qt3DInput.py 2019-07-15 10:09:31.000000000 +0200
@@ -8,15 +8,19 @@
"""Provides Qt3DInput classes and functions."""
# Local imports
-from . import PYQT5, PYSIDE2, PythonQtError
+from . import PYQT5, PYSIDE2, PythonQtError, PYSIDE_VERSION
+from .py3compat import PY2
if PYQT5:
from PyQt5.Qt3DInput import *
elif PYSIDE2:
- # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
- import PySide2.Qt3DInput as __temp
- import inspect
- for __name in inspect.getmembers(__temp.Qt3DInput):
- globals()[__name[0]] = __name[1]
+ if not PY2 or (PY2 and PYSIDE_VERSION < '5.12.4'):
+ # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
+ import PySide2.Qt3DInput as __temp
+ import inspect
+ for __name in inspect.getmembers(__temp.Qt3DInput):
+ globals()[__name[0]] = __name[1]
+ else:
+ raise PythonQtError('A bug in Shiboken prevents this')
else:
raise PythonQtError('No Qt bindings could be found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/Qt3DLogic.py new/QtPy-1.9.0/qtpy/Qt3DLogic.py
--- old/QtPy-1.8.0/qtpy/Qt3DLogic.py 2019-06-12 13:16:09.000000000 +0200
+++ new/QtPy-1.9.0/qtpy/Qt3DLogic.py 2019-07-15 10:09:31.000000000 +0200
@@ -8,15 +8,19 @@
"""Provides Qt3DLogic classes and functions."""
# Local imports
-from . import PYQT5, PYSIDE2, PythonQtError
+from . import PYQT5, PYSIDE2, PythonQtError, PYSIDE_VERSION
+from .py3compat import PY2
if PYQT5:
from PyQt5.Qt3DLogic import *
elif PYSIDE2:
- # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
- import PySide2.Qt3DLogic as __temp
- import inspect
- for __name in inspect.getmembers(__temp.Qt3DLogic):
- globals()[__name[0]] = __name[1]
+ if not PY2 or (PY2 and PYSIDE_VERSION < '5.12.4'):
+ # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
+ import PySide2.Qt3DLogic as __temp
+ import inspect
+ for __name in inspect.getmembers(__temp.Qt3DLogic):
+ globals()[__name[0]] = __name[1]
+ else:
+ raise PythonQtError('A bug in Shiboken prevents this')
else:
raise PythonQtError('No Qt bindings could be found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/Qt3DRender.py new/QtPy-1.9.0/qtpy/Qt3DRender.py
--- old/QtPy-1.8.0/qtpy/Qt3DRender.py 2019-06-12 13:16:09.000000000 +0200
+++ new/QtPy-1.9.0/qtpy/Qt3DRender.py 2019-07-15 10:09:31.000000000 +0200
@@ -8,15 +8,19 @@
"""Provides Qt3DRender classes and functions."""
# Local imports
-from . import PYQT5, PYSIDE2, PythonQtError
+from . import PYQT5, PYSIDE2, PythonQtError, PYSIDE_VERSION
+from .py3compat import PY2
if PYQT5:
from PyQt5.Qt3DRender import *
elif PYSIDE2:
- # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
- import PySide2.Qt3DRender as __temp
- import inspect
- for __name in inspect.getmembers(__temp.Qt3DRender):
- globals()[__name[0]] = __name[1]
+ if not PY2 or (PY2 and PYSIDE_VERSION < '5.12.4'):
+ # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1026
+ import PySide2.Qt3DRender as __temp
+ import inspect
+ for __name in inspect.getmembers(__temp.Qt3DRender):
+ globals()[__name[0]] = __name[1]
+ else:
+ raise PythonQtError('A bug in Shiboken prevents this')
else:
raise PythonQtError('No Qt bindings could be found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/__init__.py new/QtPy-1.9.0/qtpy/__init__.py
--- old/QtPy-1.8.0/qtpy/__init__.py 2019-03-05 11:44:01.000000000 +0100
+++ new/QtPy-1.9.0/qtpy/__init__.py 2019-07-23 12:08:14.000000000 +0200
@@ -114,15 +114,17 @@
PYQT5 = True
PYQT4 = PYSIDE = PYSIDE2 = False
-
-if 'PyQt5' in sys.modules:
- API = initial_api if initial_api in PYQT5_API else 'pyqt5'
-elif 'PySide2' in sys.modules:
- API = initial_api if initial_api in PYSIDE2_API else 'pyside2'
-elif 'PyQt4' in sys.modules:
- API = initial_api if initial_api in PYQT4_API else 'pyqt4'
-elif 'PySide' in sys.modules:
- API = initial_api if initial_api in PYSIDE_API else 'pyside'
+# When `FORCE_QT_API` is set, we disregard
+# any previously imported python bindings.
+if os.environ.get('FORCE_QT_API') is not None:
+ if 'PyQt5' in sys.modules:
+ API = initial_api if initial_api in PYQT5_API else 'pyqt5'
+ elif 'PySide2' in sys.modules:
+ API = initial_api if initial_api in PYSIDE2_API else 'pyside2'
+ elif 'PyQt4' in sys.modules:
+ API = initial_api if initial_api in PYQT4_API else 'pyqt4'
+ elif 'PySide' in sys.modules:
+ API = initial_api if initial_api in PYSIDE_API else 'pyside'
if API in PYQT5_API:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.8.0/qtpy/_version.py new/QtPy-1.9.0/qtpy/_version.py
--- old/QtPy-1.8.0/qtpy/_version.py 2019-06-12 13:17:28.000000000 +0200
+++ new/QtPy-1.9.0/qtpy/_version.py 2019-07-23 12:18:53.000000000 +0200
@@ -1,2 +1,2 @@
-version_info = (1, 8, 0)
+version_info = (1, 9, 0)
__version__ = '.'.join(map(str, version_info))
1
0
Hello community,
here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2019-07-29 17:31:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Mon Jul 29 17:31:24 2019 rev:196 rq:719513 version:20190729.70133114
Changes:
--------
--- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2019-07-26 17:34:22.336086142 +0200
+++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4126/openSUSE-release-tools.changes 2019-07-29 17:31:27.350167588 +0200
@@ -1,0 +2,8 @@
+Mon Jul 29 08:24:07 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190729.70133114:
+ * Kill rebuildpacs.pl in gocd config
+ * Rely on remote config and storage
+ * Replace rebuildpacs.pl with project-installcheck functionality
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20190726.df07bcc2.obscpio
New:
----
openSUSE-release-tools-20190729.70133114.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.2amClQ/_old 2019-07-29 17:31:28.078166707 +0200
+++ /var/tmp/diff_new_pack.2amClQ/_new 2019-07-29 17:31:28.078166707 +0200
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20190726.df07bcc2
+Version: 20190729.70133114
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
@@ -426,7 +426,6 @@
%{_bindir}/osrt-legal-auto
%{_bindir}/osrt-obs_clone
%{_bindir}/osrt-openqa-maintenance
-%{_bindir}/osrt-rebuildpacs
%{_bindir}/osrt-requestfinder
%{_bindir}/osrt-scan_baselibs
%{_bindir}/osrt-status
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.2amClQ/_old 2019-07-29 17:31:28.122166655 +0200
+++ /var/tmp/diff_new_pack.2amClQ/_new 2019-07-29 17:31:28.122166655 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param name="changesrevision">700bb203a52ccba5228b77cfac6d0b4a8249efc2</param>
+ <param name="changesrevision">071bbf8d66c4120446ca65ed41ba9ae4d811adc1</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20190726.df07bcc2.obscpio -> openSUSE-release-tools-20190729.70133114.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190726.df07bcc2/CreatePackageDescr.pm new/openSUSE-release-tools-20190729.70133114/CreatePackageDescr.pm
--- old/openSUSE-release-tools-20190726.df07bcc2/CreatePackageDescr.pm 2019-07-26 13:15:55.000000000 +0200
+++ new/openSUSE-release-tools-20190729.70133114/CreatePackageDescr.pm 2019-07-29 10:19:25.000000000 +0200
@@ -9,16 +9,18 @@
use Rpm;
use Fcntl qw/:flock/;
-sub package_snippet($) {
+sub package_snippet {
- my $package = shift;
+ my ($package) = @_;
+ # mark as used
+ utime undef, undef, $package;
my $cachedir = dirname($package) . "/.cache/";
- my $cachefile = $cachedir . basename($package);
+ my $cachefile = $cachedir . '2-' . basename($package);
my $out = '';
- if ( -f $cachefile ) {
- open( C, '<', $cachefile ) || die "no cache for $package";
+ if (-f $cachefile) {
+ open(C, '<', $cachefile) || die "no cache for $package";
flock(C, LOCK_SH) or die "failed to lock $cachefile: $!\n";
while (<C>) {
$out .= $_;
@@ -42,50 +44,66 @@
my %qq = Build::Rpm::rpmq(
$package,
- qw{NAME VERSION RELEASE ARCH OLDFILENAMES DIRNAMES BASENAMES DIRINDEXES 1030 1037 1039 1040
+ qw{NAME VERSION RELEASE ARCH OLDFILENAMES DIRNAMES BASENAMES DIRINDEXES SOURCERPM 1030 1037 1039 1040
1047 1112 1113 1049 1048 1050 1090 1114 1115 1054 1053 1055 1036 5046 5047 5048 5049 5050 5051
- 5052 5053 5054 5055 5056 5057 1156 1158 1157 1159 1161 1160
+ 5052 5053 5054 5055 5056 5057 1156 1158 1157 1159 1161 1160 1123
}
);
if (!exists $qq{'NAME'}[0]) {
print STDERR "corrupt rpm: $package\n";
unlink($package);
- return $out; # Needs to be re-mirrored, so return blank to trigger error.
+ return $out; # Needs to be re-mirrored, so return blank to trigger error.
}
my $name = $qq{'NAME'}[0];
- Build::Rpm::add_flagsvers( \%qq, 1049, 1048, 1050 ); # requires
- Build::Rpm::add_flagsvers( \%qq, 1047, 1112, 1113 ); # provides
- Build::Rpm::add_flagsvers( \%qq, 1090, 1114, 1115 ); # obsoletes
- Build::Rpm::add_flagsvers( \%qq, 1054, 1053, 1055 ); # conflicts
-
- Build::Rpm::add_flagsvers(\%qq, 1156, 1158, 1157) if $qq{1156}; # oldsuggests
- Build::Rpm::add_flagsvers(\%qq, 1159, 1161, 1160) if $qq{1159}; # oldenhances
-
- Build::Rpm::add_flagsvers(\%qq, 5046, 5048, 5047) if $qq{5046}; # recommends
- Build::Rpm::add_flagsvers(\%qq, 5049, 5051, 5050) if $qq{5049}; # suggests
- Build::Rpm::add_flagsvers(\%qq, 5052, 5054, 5053) if $qq{5052}; # supplements
- Build::Rpm::add_flagsvers(\%qq, 5055, 5057, 5056) if $qq{5055}; # enhances
+ Build::Rpm::add_flagsvers(\%qq, 1049, 1048, 1050); # requires
+ Build::Rpm::add_flagsvers(\%qq, 1047, 1112, 1113); # provides
+ Build::Rpm::add_flagsvers(\%qq, 1090, 1114, 1115); # obsoletes
+ Build::Rpm::add_flagsvers(\%qq, 1054, 1053, 1055); # conflicts
+
+ Build::Rpm::add_flagsvers(\%qq, 1156, 1158, 1157) if $qq{1156}; # oldsuggests
+ Build::Rpm::add_flagsvers(\%qq, 1159, 1161, 1160) if $qq{1159}; # oldenhances
+
+ Build::Rpm::add_flagsvers(\%qq, 5046, 5048, 5047) if $qq{5046}; # recommends
+ Build::Rpm::add_flagsvers(\%qq, 5049, 5051, 5050) if $qq{5049}; # suggests
+ Build::Rpm::add_flagsvers(\%qq, 5052, 5054, 5053) if $qq{5052}; # supplements
+ Build::Rpm::add_flagsvers(\%qq, 5055, 5057, 5056) if $qq{5055}; # enhances
$arch = $qq{'ARCH'}[0];
# some packages are more equal than others
$arch = 'i586' if $arch eq 'i686';
- $out .= sprintf( "=Pkg: %s %s %s %s\n",
- $name, $qq{'VERSION'}[0], $qq{'RELEASE'}[0], $arch );
+ $out .= sprintf("=Pkg: %s %s %s %s\n",
+ $name, $qq{'VERSION'}[0], $qq{'RELEASE'}[0], $arch);
$out .= "+Flx:\n";
- my @modes = @{ $qq{1030} || [] };
- my @basenames = @{ $qq{BASENAMES} || [] };
- my @dirs = @{ $qq{DIRNAMES} || [] };
- my @dirindexes = @{ $qq{DIRINDEXES} || [] };
- my @users = @{ $qq{1039} || [] };
- my @groups = @{ $qq{1040} || [] };
- my @flags = @{ $qq{1037} || [] };
- my @linktos = @{ $qq{1036} || [] };
+ my @modes = @{$qq{1030} || []};
+ my @basenames = @{$qq{BASENAMES} || []};
+ my @dirs = @{$qq{DIRNAMES} || []};
+ my @dirindexes = @{$qq{DIRINDEXES} || []};
+ my @users = @{$qq{1039} || []};
+ my @groups = @{$qq{1040} || []};
+ my @flags = @{$qq{1037} || []};
+ my @linktos = @{$qq{1036} || []};
my @xprvs;
+ # e.g. libqt5-qttools-5.12.3-1.2.src.rpm
+ my $sourcerpm = $qq{SOURCERPM}->[0];
+ my @source;
+ if ($sourcerpm =~ m/^(.*)-([^-]*)-([^-]*)\.(src|nosrc)\.rpm/) {
+ @source = ($1, $2, $3);
+ }
+
+ # overwrite the source with the disturl, in case of multibuild and co
+ # e.g. obs://build.opensuse.org/openSUSE:Factory/standard/e71360fe635636b65ef2244e…
+ if ($qq{1123}) {
+ my $disturl = basename($qq{1123}[0]);
+ $disturl =~ s,^[^-]*-,,;
+ $source[0] = $disturl;
+ }
+ $out .= "=Src: $source[0] $source[1] $source[2] src\n";
+
foreach my $bname (@basenames) {
my $mode = shift @modes;
my $di = shift @dirindexes;
@@ -96,21 +114,20 @@
my $filename = $dirs[$di] . $bname;
my $fs = $filename;
- if ( Fcntl::S_ISLNK($mode) ) {
+ if (Fcntl::S_ISLNK($mode)) {
$fs = "$filename -> $linkto";
}
$out .= sprintf "%o %o %s:%s %s\n", $mode, $flag, $user, $group, $fs;
- if ( $filename =~ /^\/etc\//
+ if ($filename =~ /^\/etc\//
|| $filename =~ /bin\//
- || $filename eq "/usr/lib/sendmail" )
+ || $filename eq "/usr/lib/sendmail")
{
push @xprvs, $filename;
}
-
}
$out .= "-Flx:\n";
$out .= "+Prv:\n";
- foreach my $prv ( @{ $qq{1047} || [] } ) {
+ foreach my $prv (@{$qq{1047} || []}) {
$out .= "$prv\n";
}
foreach my $prv (@xprvs) {
@@ -118,30 +135,30 @@
}
$out .= "-Prv:\n";
$out .= "+Con:\n";
- foreach my $prv ( @{ $qq{1054} || [] } ) {
+ foreach my $prv (@{$qq{1054} || []}) {
$out .= "$prv\n";
}
$out .= "-Con:\n";
$out .= "+Req:\n";
- foreach my $prv ( @{ $qq{1049} || [] } ) {
- next if ( $prv eq "this-is-only-for-build-envs" );
+ foreach my $prv (@{$qq{1049} || []}) {
+ next if ($prv eq "this-is-only-for-build-envs");
# Completely disgusting, but maintainers have no interest in fixing,
# see #1153 for more details.
next
- if ( $name =~ "^installation-images-debuginfodeps.*"
- && $prv =~ m/debuginfo.build/ );
+ if ($name =~ "^installation-images-debuginfodeps.*"
+ && $prv =~ m/debuginfo.build/);
$out .= "$prv\n";
}
$out .= "-Req:\n";
$out .= "+Obs:\n";
- foreach my $prv ( @{ $qq{1090} || [] } ) {
+ foreach my $prv (@{$qq{1090} || []}) {
$out .= "$prv\n";
}
$out .= "-Obs:\n";
$out .= "+Rec:\n";
- foreach my $prv ( @{ $qq{5046} || [] } ) {
+ foreach my $prv (@{$qq{5046} || []}) {
# ignore boolean dependencies
next if $prv =~ m/^\(/;
$out .= "$prv\n";
@@ -149,19 +166,19 @@
$out .= "-Rec:\n";
$out .= "+Sup:\n";
- foreach my $prv ( @{ $qq{5052} || [] } ) {
+ foreach my $prv (@{$qq{5052} || []}) {
$out .= "$prv\n";
}
$out .= "-Sup:\n";
$out .= "+Enh:\n";
- foreach my $prv ( @{ $qq{5055} || [] } ) {
+ foreach my $prv (@{$qq{5055} || []}) {
$out .= "$prv\n";
}
$out .= "-Enh:\n";
$out .= "+Sug:\n";
- foreach my $prv ( @{ $qq{5049} || [] } ) {
+ foreach my $prv (@{$qq{5049} || []}) {
$out .= "$prv\n";
}
$out .= "-Sug:\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190726.df07bcc2/dist/package/openSUSE-release-tools.spec new/openSUSE-release-tools-20190729.70133114/dist/package/openSUSE-release-tools.spec
--- old/openSUSE-release-tools-20190726.df07bcc2/dist/package/openSUSE-release-tools.spec 2019-07-26 13:15:55.000000000 +0200
+++ new/openSUSE-release-tools-20190729.70133114/dist/package/openSUSE-release-tools.spec 2019-07-29 10:19:25.000000000 +0200
@@ -426,7 +426,6 @@
%{_bindir}/osrt-legal-auto
%{_bindir}/osrt-obs_clone
%{_bindir}/osrt-openqa-maintenance
-%{_bindir}/osrt-rebuildpacs
%{_bindir}/osrt-requestfinder
%{_bindir}/osrt-scan_baselibs
%{_bindir}/osrt-status
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190726.df07bcc2/gocd/rebuild-trigger.gocd.yaml new/openSUSE-release-tools-20190729.70133114/gocd/rebuild-trigger.gocd.yaml
--- old/openSUSE-release-tools-20190726.df07bcc2/gocd/rebuild-trigger.gocd.yaml 2019-07-26 13:15:55.000000000 +0200
+++ new/openSUSE-release-tools-20190729.70133114/gocd/rebuild-trigger.gocd.yaml 2019-07-29 10:19:25.000000000 +0200
@@ -18,26 +18,23 @@
- repo-checker
tasks:
- script: |-
- ln -sf /home/go/config/rebuild.problems problems
- ln -sf /home/go/config/rebuild.buildinfos buildinfos
- - script: |-
echo "openSUSE:Factory"
- ./rebuildpacs.pl openSUSE:Factory standard i586
- ./rebuildpacs.pl openSUSE:Factory standard x86_64
+ ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory standard i586
+ ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory standard x86_64
- script: |-
echo "openSUSE:Factory:PowerPC"
- ./rebuildpacs.pl openSUSE:Factory:PowerPC standard ppc
- ./rebuildpacs.pl openSUSE:Factory:PowerPC standard ppc64
- ./rebuildpacs.pl openSUSE:Factory:PowerPC standard ppc64le
+ ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory:PowerPC standard ppc
+ ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory:PowerPC standard ppc64
+ ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory:PowerPC standard ppc64le
- script: |-
echo "openSUSE Leap 15.2"
- echo ./rebuildpacs.pl openSUSE:Leap:15.2 standard i586
- echo ./rebuildpacs.pl openSUSE:Leap:15.2 standard x86_64
+ ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Leap:15.2:Staging/dashboard openSUSE:Leap:15.2 standard i586
+ ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Leap:15.2:Staging/dashboard openSUSE:Leap:15.2 standard x86_64
- script: |-
echo "GNOME devel projects"
- ./rebuildpacs.pl GNOME:Factory openSUSE_Factory i586
- ./rebuildpacs.pl GNOME:Factory openSUSE_Factory x86_64
- ./rebuildpacs.pl GNOME:Factory openSUSE_PPC ppc64le
- ./rebuildpacs.pl GNOME:Next openSUSE_Factory i586
- ./rebuildpacs.pl GNOME:Next openSUSE_Factory x86_64
- ./rebuildpacs.pl GNOME:Next openSUSE_PPC ppc64le
+ ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Factory openSUSE_Factory i586
+ ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Factory openSUSE_Factory x86_64
+ ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Factory openSUSE_PPC ppc64le
+ ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Next openSUSE_Factory i586
+ ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Next openSUSE_Factory x86_64
+ ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Next openSUSE_PPC ppc64le
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190726.df07bcc2/osclib/repochecks.py new/openSUSE-release-tools-20190729.70133114/osclib/repochecks.py
--- old/openSUSE-release-tools-20190726.df07bcc2/osclib/repochecks.py 2019-07-26 13:15:55.000000000 +0200
+++ new/openSUSE-release-tools-20190729.70133114/osclib/repochecks.py 2019-07-29 10:19:25.000000000 +0200
@@ -1,10 +1,12 @@
import logging
-import tempfile
import os
import re
-import yaml
import subprocess
+import tempfile
from fnmatch import fnmatch
+
+import yaml
+
from osclib.cache_manager import CacheManager
logger = logging.getLogger('InstallChecker')
@@ -12,13 +14,17 @@
SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
CACHEDIR = CacheManager.directory('repository-meta')
+
class CorruptRepos(Exception):
pass
# the content of sp is name, version, release, arch
+
+
def _format_pkg(sp):
return "{}-{}-{}.{}".format(sp[0], sp[1], sp[2], sp[3])
+
def _check_exists_in_whitelist(sp, whitelist):
if sp[0] in whitelist:
logger.debug("Found %s in whitelist, ignoring", sp[0])
@@ -33,11 +39,13 @@
logger.debug("Found %s matching whitelist entry %s, ignoring", sp[0], entry)
return True
+
def _check_colon_format(sp1, sp2, whitelist):
if "{}:{}".format(sp1, sp2) in whitelist:
logger.debug("Found %s:%s in whitelist, ignoring", sp1, sp2)
return True
+
def _check_conflicts_whitelist(sp1, sp2, whitelist):
if _check_exists_in_whitelist(sp1, whitelist):
return True
@@ -48,6 +56,7 @@
if _check_colon_format(sp2[0], sp1[0], whitelist):
return True
+
def _fileconflicts(pfile, target_packages, whitelist):
script = os.path.join(SCRIPT_PATH, '..', 'findfileconflicts')
p = subprocess.run(['perl', script, pfile], stdout=subprocess.PIPE)
@@ -72,15 +81,18 @@
if len(output):
return output
-def _installcheck(pfile, arch, target_packages, whitelist):
+
+def parsed_installcheck(pfile, arch, target_packages, whitelist):
+ reported_problems = dict()
+
if not len(target_packages):
- return None
+ return reported_problems
p = subprocess.run(['/usr/bin/installcheck', arch, pfile], stdout=subprocess.PIPE, text=True)
if p.returncode:
- output = ''
in_problem = False
- install_re = re.compile(r"^can't install (.*)-[^-]+-[^-]+:$")
+ package = None
+ install_re = re.compile(r"^can't install (.*)(-[^-]+-[^-]+):$")
for line in p.stdout.split('\n'):
if not line.startswith(' '):
in_problem = False
@@ -93,10 +105,14 @@
if package in whitelist:
logger.debug("{} fails installcheck but is white listed".format(package))
continue
+ reported_problems[package] = {'problem': match.group(1) + match.group(2), 'output': [], 'source': target_packages[package]}
in_problem = True
+ continue
if in_problem:
- output += line + "\n"
- return output
+ reported_problems[package]['output'].append(line[2:])
+
+ return reported_problems
+
def installcheck(directories, arch, whitelist, ignore_conflicts):
@@ -122,16 +138,22 @@
if output:
parts.append(output)
- output = _installcheck(pfile, arch, target_packages, whitelist)
- if output:
+ parsed = parsed_installcheck(pfile, arch, target_packages, whitelist)
+ if len(parsed):
+ output = ''
+ for package in sorted(parsed):
+ output += "can't install " + parsed[package]['problem'] + ":\n"
+ output += "\n".join(parsed[package]['output'])
+ output += "\n\n"
parts.append(output)
return parts
+
def mirror(apiurl, project, repository, arch):
"""Call bs_mirrorfull script to mirror packages."""
directory = os.path.join(CACHEDIR, project, repository, arch)
- #return directory
+ # return directory
if not os.path.exists(directory):
os.makedirs(directory)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190726.df07bcc2/project-installcheck.py new/openSUSE-release-tools-20190729.70133114/project-installcheck.py
--- old/openSUSE-release-tools-20190726.df07bcc2/project-installcheck.py 2019-07-26 13:15:55.000000000 +0200
+++ new/openSUSE-release-tools-20190729.70133114/project-installcheck.py 2019-07-29 10:19:25.000000000 +0200
@@ -1,22 +1,39 @@
#!/usr/bin/python3
+import datetime
+import difflib
+import hashlib
import logging
import os
+import os.path
+import re
+import subprocess
import sys
-from collections import namedtuple
+import tempfile
+import cmdln
+from urllib.parse import urlencode
+import yaml
+from lxml import etree as ET
from osc import conf
import ToolBase
-from osclib.cache_manager import CacheManager
from osclib.conf import Config
-from osclib.core import (repository_path_expand, repository_path_search,
- target_archs, project_pseudometa_file_ensure)
-from osclib.repochecks import mirror, installcheck
+from osclib.core import (http_GET, http_POST, makeurl,
+ project_pseudometa_file_ensure,
+ repository_path_expand, repository_path_search,
+ target_archs, source_file_load, source_file_ensure)
+from osclib.repochecks import installcheck, mirror, parsed_installcheck, CorruptRepos
class RepoChecker():
def __init__(self):
- self.logger = logging.getLogger(__name__)
+ self.logger = logging.getLogger('RepoChecker')
+ self.store_project = None
+ self.store_package = None
+
+ def parse_store(self, project_package):
+ if project_package:
+ self.store_project, self.store_package = project_package.split('/')
def project_only(self, project):
repository = self.project_repository(project)
@@ -80,6 +97,23 @@
return result
+ def _split_and_filter(self, output):
+ output = output.split("\n")
+ rebuild_counter_re = re.compile(r'(needed by [^ ]*\-[^-]*)\-[^-]*\.\w+$')
+ for lnr, line in enumerate(output):
+ if line.startswith('FOLLOWUP'):
+ # there can be multiple lines with missing providers
+ while lnr >= 0 and output[lnr - 1].endswith('none of the providers can be installed'):
+ output.pop()
+ lnr = lnr - 1
+ for lnr in reversed(range(len(output))):
+ # those lines are hardly interesting for us
+ if output[lnr].find('(we have') >= 0:
+ del output[lnr]
+ else:
+ output[lnr] = rebuild_counter_re.sub(r'\1', output[lnr])
+ return output
+
def project_repository(self, project):
repository = Config.get(self.apiurl, project).get('main-repo')
if not repository:
@@ -97,6 +131,173 @@
return repository
+ def store_yaml(self, state):
+ state_yaml = yaml.dump(state, default_flow_style=False)
+ source_file_ensure(self.apiurl, self.store_project, self.store_package,
+ self.store_filename, state_yaml, comment='Updated rebuild infos')
+
+ def rebuild(self, project, repository, arch):
+ config = Config.get(self.apiurl, project)
+
+ oldstate = None
+ self.store_filename = 'rebuildpacs.{}-{}.yaml'.format(project, repository)
+ state_yaml = source_file_load(self.apiurl, self.store_project, self.store_package,
+ self.store_filename)
+ if state_yaml:
+ oldstate = yaml.safe_load(state_yaml)
+
+ oldstate = oldstate or {}
+ oldstate.setdefault('check', {})
+ oldstate.setdefault('leafs', {})
+
+ repository_pairs = repository_path_expand(self.apiurl, project, repository)
+ directories = []
+ for pair_project, pair_repository in repository_pairs:
+ directories.append(mirror(self.apiurl, pair_project, pair_repository, arch))
+
+ parsed = dict()
+ with tempfile.TemporaryDirectory(prefix='repochecker') as dir:
+ pfile = os.path.join(dir, 'packages')
+
+ SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
+ script = os.path.join(SCRIPT_PATH, 'write_repo_susetags_file.pl')
+ parts = ['perl', script, dir] + directories
+
+ p = subprocess.run(parts)
+ if p.returncode:
+ # technically only 126, but there is no other value atm -
+ # so if some other perl error happens, we don't continue
+ raise CorruptRepos
+
+ target_packages = []
+ with open(os.path.join(dir, 'catalog.yml')) as file:
+ catalog = yaml.safe_load(file)
+ target_packages = catalog.get(directories[0], [])
+
+ parsed = parsed_installcheck(pfile, arch, target_packages, [])
+ for package in parsed:
+ parsed[package]['output'] = "\n".join(parsed[package]['output'])
+
+ # let's risk a N*N algorithm in the hope that we have a limited N
+ for package1 in parsed:
+ output = parsed[package1]['output']
+ for package2 in parsed:
+ if package1 == package2:
+ continue
+ output = output.replace(parsed[package2]['output'], 'FOLLOWUP(' + package2 + ')')
+ parsed[package1]['output'] = output
+
+ for package in parsed:
+ parsed[package]['output'] = self._split_and_filter(parsed[package]['output'])
+
+ url = makeurl(self.apiurl, ['build', project, '_result'], {
+ 'repository': repository, 'arch': arch, 'code': 'succeeded'})
+ root = ET.parse(http_GET(url)).getroot()
+ succeeding = list(map(lambda x: x.get('package'), root.findall('.//status')))
+
+ per_source = dict()
+
+ for package, entry in parsed.items():
+ source = "{}/{}/{}/{}".format(project, repository, arch, entry['source'])
+ per_source.setdefault(source, {'output': [], 'builds': entry['source'] in succeeding})
+ per_source[source]['output'].extend(entry['output'])
+
+ rebuilds = set()
+
+ for source in sorted(per_source):
+ if not len(per_source[source]['output']):
+ continue
+ self.logger.debug("{} builds: {}".format(source, per_source[source]['builds']))
+ self.logger.debug(" " + "\n ".join(per_source[source]['output']))
+ if not per_source[source]['builds']: # nothing we can do
+ continue
+ old_output = oldstate['check'].get(source, {}).get('problem', [])
+ if old_output == per_source[source]['output']:
+ self.logger.debug("unchanged problem")
+ continue
+ self.logger.info("rebuild %s", source)
+ rebuilds.add(os.path.basename(source))
+ for line in difflib.unified_diff(old_output, per_source[source]['output'], 'before', 'now'):
+ self.logger.debug(line.strip())
+ oldstate['check'][source] = {'problem': per_source[source]['output'],
+ 'rebuild': str(datetime.datetime.now())}
+
+ for source in list(oldstate['check']):
+ if not source.startswith('{}/{}/{}/'.format(project, repository, arch)):
+ continue
+ if not os.path.basename(source) in succeeding:
+ continue
+ if source not in per_source:
+ self.logger.info("No known problem, erasing %s", source)
+ del oldstate['check'][source]
+
+ packages = config.get('rebuildpacs-leafs', '').split()
+
+ # first round: collect all infos from obs
+ infos = dict()
+ for package in packages:
+ subpacks, build_deps = self.check_leaf_package(project, repository, arch, package)
+ infos[package] = {'subpacks': subpacks, 'deps': build_deps}
+
+ # calculate rebuild triggers
+ rebuild_triggers = dict()
+ for package1 in packages:
+ for package2 in packages:
+ if package1 == package2:
+ continue
+ for subpack in infos[package1]['subpacks']:
+ if subpack in infos[package2]['deps']:
+ rebuild_triggers.setdefault(package1, set())
+ rebuild_triggers[package1].add(package2)
+ # ignore this depencency. we already trigger both of them
+ del infos[package2]['deps'][subpack]
+
+ # calculate build info hashes
+ for package in packages:
+ if not package in succeeding:
+ self.logger.debug("Ignore %s for the moment, not succeeding", package)
+ continue
+ m = hashlib.sha256()
+ for bdep in sorted(infos[package]['deps']):
+ m.update(bytes(bdep + '-' + infos[package]['deps'][bdep], 'utf-8'))
+ state_key = '{}/{}/{}/{}'.format(project, repository, arch, package)
+ olddigest = oldstate['leafs'].get(state_key, {}).get('buildinfo')
+ if olddigest == m.hexdigest():
+ continue
+ self.logger.info("rebuild leaf package %s (%s vs %s)", package, olddigest, m.hexdigest())
+ rebuilds.add(package)
+ oldstate['leafs'][state_key] = {'buildinfo': m.hexdigest(),
+ 'rebuild': str(datetime.datetime.now())}
+
+ if self.dryrun:
+ self.logger.info("To rebuild: %s", ' '.join(rebuilds))
+ return
+
+ if not len(rebuilds):
+ self.logger.debug("Nothing to rebuild")
+ # in case we do rebuild, wait for it to succeed before saving
+ self.store_yaml(oldstate)
+ return
+
+ query = {'cmd': 'rebuild', 'repository': repository, 'arch': arch, 'package': rebuilds}
+ url = makeurl(self.apiurl, ['build', project], urlencode(query, doseq=True))
+ http_POST(url)
+
+ self.store_yaml(oldstate)
+
+ def check_leaf_package(self, project, repository, arch, package):
+ url = makeurl(self.apiurl, ['build', project, repository, arch, package, '_buildinfo'])
+ root = ET.parse(http_GET(url)).getroot()
+ subpacks = set()
+ for sp in root.findall('subpack'):
+ subpacks.add(sp.text)
+ build_deps = dict()
+ for bd in root.findall('bdep'):
+ if bd.get('notmeta') == '1':
+ continue
+ build_deps[bd.get('name')] = bd.get('version') + '-' + bd.get('release')
+ return subpacks, build_deps
+
class CommandLineInterface(ToolBase.CommandLineInterface):
@@ -104,15 +305,25 @@
ToolBase.CommandLineInterface.__init__(self, args, kwargs)
def setup_tool(self):
- tool = RepoChecker()
- if self.options.debug:
- logging.basicConfig(level=logging.DEBUG)
- elif self.options.verbose:
- logging.basicConfig(level=logging.INFO)
+ return RepoChecker()
- return tool
+ @cmdln.option('--store', help='Project/Package to store the rebuild infos in')
+ def do_rebuild(self, subcmd, opts, project, repository, arch):
+ """${cmd_name}: Rebuild packages in rebuild=local projects
+
+ ${cmd_usage}
+ ${cmd_option_list}
+ """
+ self.tool.parse_store(opts.store)
+ self.tool.apiurl = conf.config['apiurl']
+ self.tool.rebuild(project, repository, arch)
def do_project_only(self, subcmd, opts, project):
+ """${cmd_name}: Update repository repo of a project
+
+ ${cmd_usage}
+ ${cmd_option_list}
+ """
self.tool.apiurl = conf.config['apiurl']
self.tool.project_only(project)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190726.df07bcc2/rebuildpacs.pl new/openSUSE-release-tools-20190729.70133114/rebuildpacs.pl
--- old/openSUSE-release-tools-20190726.df07bcc2/rebuildpacs.pl 2019-07-26 13:15:55.000000000 +0200
+++ new/openSUSE-release-tools-20190729.70133114/rebuildpacs.pl 1970-01-01 01:00:00.000000000 +0100
@@ -1,398 +0,0 @@
-#! /usr/bin/perl
-
-use Data::Dumper;
-use XML::Simple;
-use URI::Escape;
-use File::Basename;
-use File::Temp qw/tempdir/;
-use Digest::MD5 qw(md5_hex);
-
-my $script_dir;
-
-BEGIN {
- ($script_dir) = $0 =~ m-(.*)/-;
- $script_dir ||= '.';
- unshift @INC, $script_dir;
-}
-
-require CreatePackageDescr;
-
-my @repodirs;
-
-sub find_source_container($) {
- my $pkg = shift;
-
- for my $repodir (@repodirs) {
- my @rpms = glob("$repodir/*-$pkg.rpm");
- for my $rpm (@rpms) {
-
- # 1123 == Disturl
- my %qq = Build::Rpm::rpmq( $rpm, qw{NAME 1123} );
- next if ( $qq{NAME}[0] ne $pkg );
- my $distfile = basename( $qq{1123}[0] );
- $distfile =~ s,^[^-]*-,,;
-
- return $distfile;
- }
- }
-}
-
-my $followup = 0;
-my $cproblem = '';
-my %problems;
-
-my $project = $ARGV[0] || "openSUSE:Factory";
-my $repo = $ARGV[1] || "standard";
-my $arch = $ARGV[2] || "x86_64";
-
-my %leafed;
-
-sub read_plain_index($) {
- my $file = shift;
-
- my %ret;
-
- open( FILE, $file ) || return \%ret;
- while (<FILE>) {
- if (m/^(.*):(.*)/) {
- $ret{$1} = $2;
- }
- }
- close(FILE);
- return \%ret;
-}
-
-sub write_plain_index($$) {
- my $file = shift;
- my $hash = shift;
-
- open( FILE, ">$file" ) || die "can't write to $file";
- for my $key ( sort keys %{$hash} ) {
- print FILE "$key:" . $hash->{$key} . "\n";
- }
- close(FILE);
-}
-
-# defines packages that need to be triggered too
-my %parents = (
- "rpmlint" => [qw(rpmlint-mini)],
- "branding-openSUSE" => [
- qw(glib2-branding-openSUSE
- kiwi-config-openSUSE
- xfce4-branding-openSUSE
- kdebase4-openSUSE kde-branding-openSUSE
- bundle-lang-kde bundle-lang-common
- installation-images:openSUSE)
- ],
- "kdebase4-openSUSE" => [qw(bundle-lang-kde)],
- "kernel-source" => [qw(perf)],
-);
-
-# for subsets (staging projects) we need to remember which are ignored
-my %ignored;
-
-sub check_leaf_package($$) {
-
- my $package = shift;
- my $rebuildhash = shift;
-
- my @lines = ();
- open( OSC,
- "osc api /build/$project/$repo/$arch/$package/_buildinfo|" );
- while (<OSC>) {
- chomp;
- if (m/<subpack>(.*)</) {
- $leafed{$1} = $package;
- }
- if (m/bdep name="([^"]*)"/) {
- my $parent = $leafed{$1};
- if ( $parent && $parent ne "rpmlint-mini" ) {
-
- # I dislike grep
- unless ( grep { $_ eq $package } @{ $parents{$parent} } ) {
- print "ADD $package to PARENT $parent!!\n";
- }
- next;
- }
- }
- else {
- next;
- }
- next if (m/notmeta="1"/);
- push( @lines, $_ );
- }
- close(OSC);
- my $ctx = Digest::MD5->new;
- for my $line ( sort @lines ) {
- $ctx->add($line);
- }
- my $rebuilds = read_plain_index("buildinfos");
- my $newmd5 = $ctx->hexdigest;
- if ( $rebuilds->{"$project/$repo/$arch/$package"} ne $newmd5 ) {
-
- $rebuildhash->{$package} = 1;
- for my $child ( @{ $parents{$package} } ) {
- $rebuildhash->{$child} = 1;
- }
- $rebuilds->{"$project/$repo/$arch/$package"} = $newmd5;
- write_plain_index( "buildinfos", $rebuilds );
- }
-}
-
-my %torebuild;
-check_leaf_package( "rpmlint-mini", \%torebuild );
-check_leaf_package( "rpmlint", \%torebuild );
-
-check_leaf_package( "branding-openSUSE", \%torebuild );
-check_leaf_package( "PackageKit-branding-openSUSE", \%torebuild );
-check_leaf_package( "xfce4-branding-openSUSE", \%torebuild );
-
-check_leaf_package( "installation-images:openSUSE", \%torebuild );
-check_leaf_package( "installation-images:Kubic", \%torebuild );
-check_leaf_package( "installation-images-extras", \%torebuild );
-
-if (%torebuild) {
- my $api = "/build/$project?cmd=rebuild&repository=$repo&arch=$arch";
- for my $package ( sort keys %torebuild ) {
- next if ( defined $ignored{$package} );
- last if ( length($api) > 32767 );
- $api .= "&package=" . uri_escape($package);
- }
- system("osc api -X POST '$api'");
-}
-
-my $pfile =
- tempdir( CLEANUP => 1 ) . "/packages"; # the filename is important ;(
-
-sub mirror_repo($$$) {
-
- my $project = shift;
- my $repo = shift;
- my $arch = shift;
-
- # Old and new in single directory, but never deployed together.
- my $repodir = ( $ENV{XDG_CACHE_HOME} || $ENV{HOME} . "/.cache" )
- . "/openSUSE-release-tools/repository-meta/repo-$project-$repo-$arch";
- mkdir($repodir);
-
- system(
-"$script_dir/bs_mirrorfull --nodebug https://api.opensuse.org/public/build/$project/$repo/$arch/ $repodir"
- );
- return $repodir;
-}
-
-sub find_package_in_project($) {
- my $project = shift;
-
- open( OSC, "osc api /source/$project?expand=1 |" );
- my $xml = XMLin( join( '', <OSC> ), ForceArray => 1 );
- close(OSC);
- my @packs = keys %{ $xml->{entry} };
- return shift @packs;
-}
-
-# find a random package
-
-sub get_paths($$$) {
- my $project = shift;
- my $repo = shift;
- my $arch = shift;
-
- my $package = find_package_in_project($project);
-
- open( OSC, "osc api /build/$project/$repo/$arch/$package/_buildinfo|" );
- my $xml = join( '', <OSC> );
- if ( $xml !~ m/^</ ) {
- die "failed to open /build/$project/$repo/$arch/$package/_buildinfo";
- }
- $xml = XMLin( $xml, ForceArray => 1 );
- close(OSC);
-
- return $xml->{path};
-}
-
-my $paths = get_paths( $project, $repo, $arch );
-my @rpms;
-
-for my $path (@$paths) {
-
- # openSUSE:Factory/ports is in the paths, but not a repo
- if (
- system(
-"osc api /build/$path->{'project'}/$path->{'repository'}/$arch > /dev/null 2>&1 "
- )
- )
- {
- next;
- }
-
- my $repodir =
- mirror_repo( $path->{'project'}, $path->{'repository'}, $arch );
- push( @repodirs, $repodir );
- push( @rpms, glob("$repodir/*.rpm") );
-}
-
-open( PACKAGES, ">", $pfile ) || die "can not open $pfile";
-print PACKAGES "=Ver: 2.0\n";
-
-my %knipser;
-
-foreach my $package (@rpms) {
- die $package unless $package =~ m,/.{32}-([^/]+)\.rpm$,;
- next if $knipser{$1}++;
- my $out = CreatePackageDescr::package_snippet($package);
- print PACKAGES $out;
-}
-close(PACKAGES);
-
-# read the problems out of installcheck
-my $rpmarch = $arch;
-$rpmarch = "armv7hl" if ( $arch eq "armv7l" );
-$rpmarch = "armv6hl" if ( $arch eq "armv6l" );
-
-open( INSTALLCHECK, "/usr/bin/installcheck $rpmarch $pfile|" );
-while (<INSTALLCHECK>) {
- chomp;
-
- if (m/^can't install (.*)\-[^-]*\-[^-]*\.($rpmarch|noarch):/) {
- $cproblem = $1;
- $cproblem =~ s/kmp-([^-]*)/kmp-default/;
- $cproblem = find_source_container($cproblem);
- $followup = 0;
- next;
- }
-
- $followup = 1 if ( $_ =~ m/none of the providers can be installed/ );
-
- # not interesting for me
- next if (m/ \(we have /);
- next if ($followup);
-
- # very thin ice here
- s,\(\)\(64bit\),,;
-
- s,(needed by [^ ]*)\-[^-]*\-[^-]*\.($rpmarch|noarch)$,$1,;
-
- s,^\s*,,;
-
- # patterns are too spammy and rebuilding doesn't help
- next
- if (
- grep { $_ eq $cproblem }
- qw(
- fftw3:gnu-openmpi-hpc
- hdf5:gnu-hpc
- hdf5:gnu-mpich-hpc
- hdf5:gnu-mvapich2-hpc
- hdf5:gnu-openmpi-hpc
- hdf5:gnu-openmpi2-hpc
- hdf5:gnu-openmpi3-hpc
- hdf5:mvapich2
- hdf5:openmpi
- hdf5:serial
- installation-images:Kubic
- metis:gnu-hpc
- netcdf:gnu-hpc
- netcdf:gnu-mvapich2-hpc
- netcdf:gnu-openmpi-hpc
- netcdf:openmpi
- netcdf:serial
- patterns-base
- patterns-haskell
- patterns-mate
- patterns-media
- patterns-openSUSE
- patterns-yast
- petsc:serial
- petsc:openmpi
- python-numpy:gnu-hpc
- scalapack:gnu-mvapich2-hpc
- scalapack:gnu-openmpi-hpc
- warewulf:modules
- python-scipy:gnu-hpc
- )
- );
- $problems{$cproblem}->{$_} = 1;
-
-}
-close(INSTALLCHECK);
-unlink($pfile);
-rmdir( dirname($pfile) );
-
-for my $package ( sort keys %problems ) {
- $problems{$package} = join( ', ', sort( keys %{ $problems{$package} } ) );
-}
-
-my @other_problems;
-my %oproblems;
-
-open( PROBLEMS, "problems" );
-while (<PROBLEMS>) {
- chomp;
- if (m,^$project/$repo/$arch/([^:]*):\s*(.*)$,) {
- my $package = $1;
- my $oproblem = $2;
-
- # remember old problems for current project/repo
- $oproblems{$package} = $oproblem;
- }
- else {
- # keep all lines for other projects/repos as they are
- push @other_problems, $_;
- }
-}
-close(PROBLEMS);
-
-exit(0) if ( !%problems );
-
-# check for succeeded packages - we can't filter as we don't know if the problems are all in the top project ;(
-my $api = "/build/$project/_result?repository=$repo&arch=$arch&code=succeeded";
-
-open( RESULT, "osc api '$api'|" );
-@result = <RESULT>;
-my $results = XMLin( join( '', @result ), ForceArray => ['status'] );
-close(RESULT);
-
-my @packages = @{ $results->{result}->{status} };
-my $rebuildit = 0;
-
-$api = "/build/$project?cmd=rebuild&repository=$repo&arch=$arch";
-for my $package (@packages) {
- $package = $package->{package};
- last if ( length($api) > 32767 );
-
- if ( !$problems{$package} ) {
-
- # it can go
- delete $oproblems{$package};
- next;
- }
-
- my $oproblem = $oproblems{$package} || '';
- if ( $problems{$package} eq $oproblem ) {
-
- # rebuild won't help
- next;
- }
- $rebuildit = 1;
- print "rebuild ", $package, ": ", $problems{$package}, "\n";
- $api .= "&package=" . uri_escape($package);
- $oproblems{$package} = $problems{$package};
-}
-
-open( PROBLEMS, ">problems" );
-
-# write all lines for other projects/repos as they are
-foreach (@other_problems) {
- print PROBLEMS $_, "\n";
-}
-for my $package ( keys %oproblems ) {
- print PROBLEMS "$project/$repo/$arch/" . $package . ": "
- . $oproblems{$package}, "\n";
-}
-close(PROBLEMS);
-
-if ($rebuildit) {
- print "API '$api'\n";
- system("osc api -X POST '$api'");
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190726.df07bcc2/write_repo_susetags_file.pl new/openSUSE-release-tools-20190729.70133114/write_repo_susetags_file.pl
--- old/openSUSE-release-tools-20190726.df07bcc2/write_repo_susetags_file.pl 2019-07-26 13:15:55.000000000 +0200
+++ new/openSUSE-release-tools-20190729.70133114/write_repo_susetags_file.pl 2019-07-29 10:19:25.000000000 +0200
@@ -1,17 +1,12 @@
#! /usr/bin/perl -w
-use File::Basename;
-use File::Temp qw/ tempdir /;
-use XML::Simple;
-use Data::Dumper;
-use Cwd;
-
use strict;
+use File::Basename;
BEGIN {
- my ($wd) = $0 =~ m-(.*)/- ;
- $wd ||= '.';
- unshift @INC, $wd;
+ my ($wd) = $0 =~ m-(.*)/-;
+ $wd ||= '.';
+ unshift @INC, $wd;
}
require CreatePackageDescr;
@@ -19,19 +14,19 @@
die "Usage: $0 <output directory> <input directories...>" if scalar(@ARGV) < 2;
my $output_directory = shift @ARGV;
-my @directories = @ARGV;
+my @directories = @ARGV;
sub write_package {
- my ($package, $packages_fd, $directory, $written_names) = @_;
+ my ($package, $packages_fd, $directory, $written_names, $sources) = @_;
my $name = basename($package);
- if ($name =~ m/^[a-z0-9]{32}-/) { # repo cache
- $name =~ s,^[^-]+-(.*)\.rpm,$1,;
+ if ($name =~ m/^[a-z0-9]{32}-/) { # repo cache
+ $name =~ s,^[^-]+-(.*)\.rpm,$1,;
} else {
- $name =~ s,^(.*)-[^-]+-[^-]+.rpm,$1,;
+ $name =~ s,^(.*)-[^-]+-[^-]+.rpm,$1,;
}
- if ( defined $written_names->{$name} ) {
+ if (defined $written_names->{$name}) {
return;
}
$written_names->{$name} = $directory;
@@ -41,18 +36,22 @@
print STDERR "ERROR: empty package snippet for: $name\n";
exit(126);
}
+ if ($out =~ m/=Src: ([^ ]*)/) {
+ $sources->{$name} = $1;
+ }
print $packages_fd $out;
return $name;
}
-open( my $packages_fd, ">", "$output_directory/packages" ) || die 'can not open';
+open(my $packages_fd, ">", "$output_directory/packages") || die 'can not open';
print $packages_fd "=Ver: 2.0\n";
my %written_names;
+my %sources;
for my $directory (@directories) {
my @rpms = glob("$directory/*.rpm");
- write_package( $_, $packages_fd, $directory, \%written_names ) for @rpms;
+ write_package($_, $packages_fd, $directory, \%written_names, \%sources) for @rpms;
}
close($packages_fd);
@@ -60,16 +59,17 @@
# turn around key->value
my %per_directory;
for my $name (keys %written_names) {
- $per_directory{$written_names{$name}} ||= [];
- push(@{$per_directory{$written_names{$name}}}, $name);
+ $per_directory{$written_names{$name}} ||= [];
+ push(@{$per_directory{$written_names{$name}}}, $name);
}
-open( my $yaml_fd, ">", "$output_directory/catalog.yml" ) || die 'can not open';
+open(my $yaml_fd, ">", "$output_directory/catalog.yml") || die 'can not open';
for my $directory (@directories) {
- next unless defined($per_directory{$directory});
- print $yaml_fd "$directory:\n";
- for my $name (@{$per_directory{$directory}}) {
- print $yaml_fd " - '$name'\n";
- }
+ next unless defined($per_directory{$directory});
+ print $yaml_fd "$directory:\n";
+ for my $name (@{$per_directory{$directory}}) {
+ my $source = $sources{$name} || 'unknown';
+ print $yaml_fd " '$name': '$source'\n";
+ }
}
close($yaml_fd);
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.2amClQ/_old 2019-07-29 17:31:28.730165919 +0200
+++ /var/tmp/diff_new_pack.2amClQ/_new 2019-07-29 17:31:28.730165919 +0200
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20190726.df07bcc2
-mtime: 1564139755
-commit: df07bcc26288465b421772cd8fa76becb9879156
+version: 20190729.70133114
+mtime: 1564388365
+commit: 701331142b98affdd7eeda304ef8a6b7d8596b2a
1
0
Hello community,
here is the log from the commit of package lollypop for openSUSE:Factory checked in at 2019-07-29 17:31:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lollypop (Old)
and /work/SRC/openSUSE:Factory/.lollypop.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lollypop"
Mon Jul 29 17:31:23 2019 rev:93 rq:719508 version:1.1.4.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/lollypop/lollypop.changes 2019-07-28 10:22:30.364568104 +0200
+++ /work/SRC/openSUSE:Factory/.lollypop.new.4126/lollypop.changes 2019-07-29 17:31:23.790171894 +0200
@@ -1,0 +2,6 @@
+Mon Jul 29 07:59:11 UTC 2019 - antoine.belvire(a)opensuse.org
+
+- Update to version 1.1.4.7:
+ * Remove python-wikipedia dependency.
+
+-------------------------------------------------------------------
Old:
----
lollypop-1.1.4.6.tar.xz
New:
----
lollypop-1.1.4.7.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lollypop.spec ++++++
--- /var/tmp/diff_new_pack.WqHCiU/_old 2019-07-29 17:31:24.386171172 +0200
+++ /var/tmp/diff_new_pack.WqHCiU/_new 2019-07-29 17:31:24.390171168 +0200
@@ -17,7 +17,7 @@
Name: lollypop
-Version: 1.1.4.6
+Version: 1.1.4.7
Release: 0
Summary: GNOME music playing application
License: GPL-3.0-or-later
@@ -43,7 +43,6 @@
Requires: python3-pylast
Recommends: easytag
Recommends: kid3-cli
-Recommends: python3-wikipedia
Recommends: youtube-dl
Suggests: python3-textblob
BuildArch: noarch
++++++ _service ++++++
--- /var/tmp/diff_new_pack.WqHCiU/_old 2019-07-29 17:31:24.422171129 +0200
+++ /var/tmp/diff_new_pack.WqHCiU/_new 2019-07-29 17:31:24.422171129 +0200
@@ -1,7 +1,7 @@
<services>
<service mode="disabled" name="tar_scm">
<param name="changesgenerate">enable</param>
- <param name="revision">1.1.4.6</param>
+ <param name="revision">1.1.4.7</param>
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/World/lollypop.git</param>
<param name="versionformat">@PARENT_TAG@</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.WqHCiU/_old 2019-07-29 17:31:24.446171100 +0200
+++ /var/tmp/diff_new_pack.WqHCiU/_new 2019-07-29 17:31:24.450171095 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://gitlab.gnome.org/World/lollypop.git</param>
- <param name="changesrevision">38e00b1bfa3aec92bd423c7cda950516e3fde8ac</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">81067cb0ffbd2c3505ccaab47ab7e70879c25ead</param></service></servicedata>
\ No newline at end of file
++++++ lollypop-1.1.4.6.tar.xz -> lollypop-1.1.4.7.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.1.4.6/lollypop/downloader_info.py new/lollypop-1.1.4.7/lollypop/downloader_info.py
--- old/lollypop-1.1.4.6/lollypop/downloader_info.py 2019-07-26 17:36:01.000000000 +0200
+++ new/lollypop-1.1.4.7/lollypop/downloader_info.py 2019-07-29 00:25:36.000000000 +0200
@@ -12,6 +12,7 @@
from gi.repository import GLib
+from gettext import gettext as _
import json
from locale import getdefaultlocale
@@ -26,13 +27,17 @@
Helper for wikipedia search
"""
+ __API_SEARCH = "https://%s.wikipedia.org/w/api.php?action=query" +\
+ "&list=search&srsearch=%s&format=json"
+ __API_INFO = "https://%s.wikipedia.org/w/api.php?action=query" +\
+ "&pageids=%s&format=json" +\
+ "&prop=extracts&exlimit=max&explaintext&redirects=1"
+
def __init__(self):
"""
Init wikipedia
- @raise exception is wikipedia module not installed
"""
- import wikipedia
- wikipedia
+ self.__locale = getdefaultlocale()[0][0:2]
def get_content(self, string):
"""
@@ -40,47 +45,46 @@
@param string as str
@return str/None
"""
- content = None
try:
- name = self.__get_duckduck_name(string)
- if name is None:
+ (locale, page_id) = self.__search_term(string)
+ if page_id is None:
return None
- import wikipedia
- language = getdefaultlocale()[0][0:2]
- wikipedia.set_lang(language)
- page = wikipedia.page(name)
- if page is None:
- wikipedia.set_lang("en")
- page = wikipedia.page(name)
- if page is not None:
- content = page.content.encode(encoding="UTF-8")
+ uri = self.__API_INFO % (locale, page_id)
+ (status, data) = App().task_helper.load_uri_content_sync(uri)
+ if status:
+ decode = json.loads(data.decode("utf-8"))
+ extract = decode["query"]["pages"][str(page_id)]["extract"]
+ return extract.encode("utf-8")
except Exception as e:
Logger.error("Wikipedia::get_content(): %s", e)
- return content
+ return None
#######################
# PRIVATE #
#######################
- def __get_duckduck_name(self, string):
+ def __search_term(self, term):
"""
- Get wikipedia duck duck name for string
- @param string as str
- @return str
+ Search term on Wikipdia
+ @param term as str
+ @return pageid as str
"""
- name = None
try:
- uri = "https://api.duckduckgo.com/?q=%s&format=json&pretty=1"\
- % string
- (status, data) = App().task_helper.load_uri_content_sync(uri)
- if status:
- import json
- decode = json.loads(data.decode("utf-8"))
- uri = decode["AbstractURL"]
- if uri:
- name = uri.split("/")[-1]
+ for locale in [self.__locale, "en"]:
+ uri = self.__API_SEARCH % (locale, term)
+ (status, data) = App().task_helper.load_uri_content_sync(uri)
+ if status:
+ decode = json.loads(data.decode("utf-8"))
+ for item in decode["query"]["search"]:
+ if item["title"].lower() == term.lower():
+ return (locale, item["pageid"])
+ else:
+ for word in [_("band"), _("singer"),
+ "band", "singer"]:
+ if item["snippet"].lower().find(word) != -1:
+ return (locale, item["pageid"])
except Exception as e:
- Logger.error("Wikipedia::__get_duckduck_name(): %s", e)
- return name
+ print("Wikipedia::__search_term(): %s", e)
+ return ("", None)
class InfoDownloader(Downloader):
@@ -161,7 +165,7 @@
if get_network_available("WIKIPEDIA"):
wikipedia = Wikipedia()
content = wikipedia.get_content(artist)
- else:
+ if content is None:
for (api, a_helper, ar_helper, helper) in self._WEBSERVICES:
if helper is None:
continue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.1.4.6/meson.build new/lollypop-1.1.4.7/meson.build
--- old/lollypop-1.1.4.6/meson.build 2019-07-26 17:36:01.000000000 +0200
+++ new/lollypop-1.1.4.7/meson.build 2019-07-29 00:25:36.000000000 +0200
@@ -1,5 +1,5 @@
project('lollypop',
- version: '1.1.4.6',
+ version: '1.1.4.7',
meson_version: '>= 0.40.0'
)
i18n = import('i18n')
1
0
Hello community,
here is the log from the commit of package kitty for openSUSE:Factory checked in at 2019-07-29 17:31:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kitty (Old)
and /work/SRC/openSUSE:Factory/.kitty.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kitty"
Mon Jul 29 17:31:20 2019 rev:2 rq:719494 version:0.14.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/kitty/kitty.changes 2019-07-11 13:08:22.966997636 +0200
+++ /work/SRC/openSUSE:Factory/.kitty.new.4126/kitty.changes 2019-07-29 17:31:22.462173499 +0200
@@ -1,0 +2,31 @@
+Mon Jul 29 05:59:15 UTC 2019 - mvetter(a)suse.com
+
+- Update to 0.14.3:
+ * Remote control: Add a command kitty @ scroll-window to scroll windows
+ * Allow passing a !neighbor argument to the new_window mapping to open
+ a new window next to the active window (#1746)
+ * Document the kitty remote control protocol (#1646)
+ * Add a new option pointer_shape_when_grabbed that allows you to control
+ the mouse pointer shape when the terminal programs grabs the pointer (#1808)
+ * Add an option terminal_select_modifiers to control which modifiers are
+ used to override mouse selection even when a terminal application has
+ grabbed the mouse (#1774)
+ * When piping data to a child in the pipe command do it in a thread so as
+ not to block the UI (#1708)
+ * unicode_input kitten: Fix a regression that broke using indices to select
+ recently used symbols.
+ * Fix a regression that caused closing an overlay window to focus the previously
+ focused window rather than the underlying window (#1720)
+ * Linux: Fix incorrect scaling for fallback fonts when the font has an underscore
+ that renders out of bounds (#1713)
+ * Fix an out of bounds read causing a crash when selecting text with the mouse
+ in the alternate screen mode (#1578)
+ * Linux: Use the system "bell" sound for the terminal bell. Adds libcanberra as a
+ new dependency to play the system sound.
+ * Linux: Fix a regression in 0.14.0 that caused the event loop to tick continuously,
+ wasting CPU even when idle (#1782)
+ * ssh kitten: Make argument parsing more like ssh (#1787)
+ * When using strip_trailing_spaces do not remove empty lines (#1802)
+ * Fix a crash when displaying very large number of images (#1825)
+
+-------------------------------------------------------------------
Old:
----
kitty-0.14.2.tar.gz
New:
----
kitty-0.14.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kitty.spec ++++++
--- /var/tmp/diff_new_pack.gOSAB3/_old 2019-07-29 17:31:23.146172672 +0200
+++ /var/tmp/diff_new_pack.gOSAB3/_new 2019-07-29 17:31:23.150172667 +0200
@@ -1,7 +1,7 @@
#
# spec file for package kitty
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: kitty
-Version: 0.14.2
+Version: 0.14.3
Release: 0
Summary: A GPU-based terminal emulator
License: GPL-3.0-only
@@ -27,6 +27,7 @@
Patch0: kitty-no-docs.patch
BuildRequires: ImageMagick-devel
BuildRequires: Mesa-libGL-devel
+BuildRequires: fdupes
BuildRequires: fontconfig-devel
BuildRequires: freetype2-devel
BuildRequires: harfbuzz-devel >= 1.5.0
@@ -34,22 +35,22 @@
BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
BuildRequires: libXrandr-devel
+BuildRequires: libcanberra-devel
BuildRequires: libpng16-compat-devel
BuildRequires: libwayland-egl-devel
BuildRequires: libxkbcommon-devel
BuildRequires: libxkbcommon-x11-devel
-BuildRequires: pkgconfig(dbus-1)
# for 'tic'
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
-%if 0%{?sle_version} > 150000 || 0%{?suse_version} >= 1550
-BuildRequires: python3-Sphinx >= 1.7
-%endif
BuildRequires: python3-devel >= 3.5
BuildRequires: wayland-devel
BuildRequires: wayland-protocols-devel
BuildRequires: zlib-devel
-BuildRequires: fdupes
+BuildRequires: pkgconfig(dbus-1)
+%if 0%{?sle_version} > 150000 || 0%{?suse_version} >= 1550
+BuildRequires: python3-Sphinx >= 1.7
+%endif
%description
A terminal emulator that uses OpenGL for rendering.
@@ -72,7 +73,7 @@
# yes they have a makefile, no they dont use it properly
# no they dont have a make install
-%fdupes %{buildroot}/usr/lib
+%fdupes %{buildroot}%{_prefix}/lib
%files
%license LICENSE
++++++ kitty-0.14.2.tar.gz -> kitty-0.14.3.tar.gz ++++++
++++ 27183 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package benji for openSUSE:Factory checked in at 2019-07-29 17:31:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/benji (Old)
and /work/SRC/openSUSE:Factory/.benji.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "benji"
Mon Jul 29 17:31:18 2019 rev:4 rq:719473 version:0.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/benji/benji.changes 2019-05-24 11:31:37.269402818 +0200
+++ /work/SRC/openSUSE:Factory/.benji.new.4126/benji.changes 2019-07-29 17:31:20.498175874 +0200
@@ -1,0 +2,41 @@
+Mon Jul 29 05:48:46 UTC 2019 - mvetter(a)suse.com
+
+- Update to 0.7.0:
+ * Added a new I/O module rbdaio which uses the asynchronous API of librbd.
+ Performance results in relation to rbd have been mixed but performance
+ should be at least 10-20% higher on restore. In one case performance has
+ been increased tenfold.
+ * Almost all Bash helper scripts have been rewritten in Python.
+ The new scripts are calling Benji via the command line just like before.
+ This is intentional to minimize the interdependence between Benji and these
+ helpers. The scripts are examples only and not part of the API.
+ There still is one example Bash script at scripts/ceph.sh to show how to
+ interact with Benji via Bash. The helpers have additional dependencies
+ which can be installed with pip install benji[helpers].
+ * The Prometheus metrics exported by benji-k8s have changed:
+ * Backup metrics now longer include the auxiliary_data label.
+ * Command metrics now longer include the arguments label. The arguments
+ have been folded into the command label.
+ * benji-k8s: The included scripts have been replaced by Python scripts and
+ are using the new helper modules. They should be calling compatible.
+ * benji-k8s: All calls to kubectl have been replaced with direct API requests.
+ The official Python client for Kubernetes is used. kubectl is still included
+ in the image.
+ * Helm chart: Volumes and volume mounts are now configurable via values.yaml.
+ This is mostly for getting the Ceph credentials into the container but could
+ also be used to mount file-based storage.
+ * Helm chart: The PostgreSQL chart dependency was updated from 2.7.6 to 4.2.2.
+ This is the last chart which uses PostgreSQL 10 and requires no upgrade of the
+ database data structures.
+ * benji-k8s and Helm chart: The image was simplified to only include the
+ Kubernetes specific scripts and kubectl. Instead of running backups or other
+ jobs via crond inside the container, the Helm chart now generates separate
+ CronJobs inside of Kubernetes. This is in preparation of the move to custom
+ resources and an operator.
+ * An experimental and as of yet unfinished REST API has been added.
+ The environment variable BENJI_EXPERIMENTAL has to be set to 1 to enable the
+ new rest-api subcommand. The API currently only services one request at a time,
+ which limits its usefulness. The REST API has additional dependencies, they can
+ be installed with pip install benji[rest-api].
+
+-------------------------------------------------------------------
Old:
----
v0.6.0.tar.gz
New:
----
v0.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ benji.spec ++++++
--- /var/tmp/diff_new_pack.vbSxtV/_old 2019-07-29 17:31:21.142175095 +0200
+++ /var/tmp/diff_new_pack.vbSxtV/_new 2019-07-29 17:31:21.146175091 +0200
@@ -17,7 +17,7 @@
Name: benji
-Version: 0.6.0
+Version: 0.7.0
Release: 0
Summary: Deduplicating block based backup software
License: LGPL-3.0-only
++++++ v0.6.0.tar.gz -> v0.7.0.tar.gz ++++++
++++ 5952 lines of diff (skipped)
1
0