openSUSE Commits
Threads by month
- ----- 2024 -----
- 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-Log-Dispatchouli for openSUSE:Factory checked in at 2019-07-31 14:31:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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"
Wed Jul 31 14:31:17 2019 rev:15 rq:719870 version:2.019
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Log-Dispatchouli/perl-Log-Dispatchouli.changes 2019-07-29 17:31:47.874142767 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Log-Dispatchouli.new.4126/perl-Log-Dispatchouli.changes 2019-07-31 14:31:24.677994280 +0200
@@ -1,0 +2,9 @@
+Tue Jul 30 05:13:32 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 2.019
+ see /usr/share/doc/packages/perl-Log-Dispatchouli/Changes
+
+ 2.019 2019-07-27 16:13:30-04:00 America/New_York
+ - fix an initialization ordering bug for loggers using stdio
+
+-------------------------------------------------------------------
Old:
----
Log-Dispatchouli-2.018.tar.gz
New:
----
Log-Dispatchouli-2.019.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Log-Dispatchouli.spec ++++++
--- /var/tmp/diff_new_pack.veOVwN/_old 2019-07-31 14:31:25.201993920 +0200
+++ /var/tmp/diff_new_pack.veOVwN/_new 2019-07-31 14:31:25.213993912 +0200
@@ -17,7 +17,7 @@
Name: perl-Log-Dispatchouli
-Version: 2.018
+Version: 2.019
Release: 0
%define cpan_name Log-Dispatchouli
Summary: Simple wrapper around Log::Dispatch
++++++ Log-Dispatchouli-2.018.tar.gz -> Log-Dispatchouli-2.019.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/Changes new/Log-Dispatchouli-2.019/Changes
--- old/Log-Dispatchouli-2.018/Changes 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/Changes 2019-07-27 22:13:33.000000000 +0200
@@ -1,5 +1,8 @@
Revision history for Log-Dispatchouli
+2.019 2019-07-27 16:13:30-04:00 America/New_York
+ - fix an initialization ordering bug for loggers using stdio
+
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)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/META.json new/Log-Dispatchouli-2.019/META.json
--- old/Log-Dispatchouli-2.018/META.json 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/META.json 2019-07-27 22:13:33.000000000 +0200
@@ -79,7 +79,7 @@
"web" : "https://github.com/rjbs/Log-Dispatchouli"
}
},
- "version" : "2.018",
+ "version" : "2.019",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.026003"
@@ -451,7 +451,7 @@
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
- "tag" : "2.018",
+ "tag" : "2.019",
"tag_format" : "%v",
"tag_message" : "v%V"
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/META.yml new/Log-Dispatchouli-2.019/META.yml
--- old/Log-Dispatchouli-2.018/META.yml 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/META.yml 2019-07-27 22:13:33.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.018'
+version: '2.019'
x_Dist_Zilla:
perl:
version: '5.026003'
@@ -333,7 +333,7 @@
branch: ~
changelog: Changes
signed: 0
- tag: '2.018'
+ tag: '2.019'
tag_format: '%v'
tag_message: v%V
Dist::Zilla::Role::Git::Repo:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/Makefile.PL new/Log-Dispatchouli-2.019/Makefile.PL
--- old/Log-Dispatchouli-2.018/Makefile.PL 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/Makefile.PL 2019-07-27 22:13:33.000000000 +0200
@@ -45,7 +45,7 @@
"base" => 0,
"lib" => 0
},
- "VERSION" => "2.018",
+ "VERSION" => "2.019",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/README new/Log-Dispatchouli-2.019/README
--- old/Log-Dispatchouli-2.018/README 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/README 2019-07-27 22:13:33.000000000 +0200
@@ -1,5 +1,5 @@
This archive contains the distribution Log-Dispatchouli,
-version 2.018:
+version 2.019:
a simple wrapper around Log::Dispatch
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Global.pm new/Log-Dispatchouli-2.019/lib/Log/Dispatchouli/Global.pm
--- old/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Global.pm 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/lib/Log/Dispatchouli/Global.pm 2019-07-27 22:13:33.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.018';
+$Log::Dispatchouli::Global::VERSION = '2.019';
use Carp ();
use Log::Dispatchouli;
use Scalar::Util ();
@@ -280,7 +280,7 @@
=head1 VERSION
-version 2.018
+version 2.019
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Proxy.pm new/Log-Dispatchouli-2.019/lib/Log/Dispatchouli/Proxy.pm
--- old/Log-Dispatchouli-2.018/lib/Log/Dispatchouli/Proxy.pm 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/lib/Log/Dispatchouli/Proxy.pm 2019-07-27 22:13:33.000000000 +0200
@@ -2,7 +2,7 @@
use warnings;
package Log::Dispatchouli::Proxy;
# ABSTRACT: a simple wrapper around Log::Dispatch
-$Log::Dispatchouli::Proxy::VERSION = '2.018';
+$Log::Dispatchouli::Proxy::VERSION = '2.019';
use Params::Util qw(_ARRAY0 _HASH0);
#pod =head1 DESCRIPTION
@@ -149,7 +149,7 @@
=head1 VERSION
-version 2.018
+version 2.019
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/lib/Log/Dispatchouli.pm new/Log-Dispatchouli-2.019/lib/Log/Dispatchouli.pm
--- old/Log-Dispatchouli-2.018/lib/Log/Dispatchouli.pm 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/lib/Log/Dispatchouli.pm 2019-07-27 22:13:33.000000000 +0200
@@ -2,7 +2,7 @@
use warnings;
package Log::Dispatchouli;
# ABSTRACT: a simple wrapper around Log::Dispatch
-$Log::Dispatchouli::VERSION = '2.018';
+$Log::Dispatchouli::VERSION = '2.019';
use Carp ();
use File::Spec ();
use Log::Dispatch;
@@ -224,6 +224,11 @@
);
}
+ $self->{dispatcher} = $log;
+ $self->{prefix} = $arg->{prefix};
+ $self->{ident} = $ident;
+ $self->{config_id} = $config_id;
+
DEST: for my $dest (qw(err out)) {
next DEST unless $arg->{"to_std$dest"};
my $method = "enable_std$dest";
@@ -231,11 +236,6 @@
$self->$method;
}
- $self->{dispatcher} = $log;
- $self->{prefix} = $arg->{prefix};
- $self->{ident} = $ident;
- $self->{config_id} = $config_id;
-
$self->{debug} = exists $arg->{debug}
? ($arg->{debug} ? 1 : 0)
: ($self->env_value('DEBUG') ? 1 : 0);
@@ -712,7 +712,7 @@
=head1 VERSION
-version 2.018
+version 2.019
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatchouli-2.018/xt/release/changes_has_content.t new/Log-Dispatchouli-2.019/xt/release/changes_has_content.t
--- old/Log-Dispatchouli-2.018/xt/release/changes_has_content.t 2019-07-27 00:37:01.000000000 +0200
+++ new/Log-Dispatchouli-2.019/xt/release/changes_has_content.t 2019-07-27 22:13:33.000000000 +0200
@@ -2,7 +2,7 @@
note 'Checking Changes';
my $changes_file = 'Changes';
-my $newver = '2.018';
+my $newver = '2.019';
my $trial_token = '-TRIAL';
my $encoding = 'UTF-8';
1
0
Hello community,
here is the log from the commit of package rtorrent for openSUSE:Factory checked in at 2019-07-31 14:31:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rtorrent (Old)
and /work/SRC/openSUSE:Factory/.rtorrent.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rtorrent"
Wed Jul 31 14:31:15 2019 rev:6 rq:719869 version:0.9.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/rtorrent/rtorrent.changes 2017-12-12 21:23:17.237507323 +0100
+++ /work/SRC/openSUSE:Factory/.rtorrent.new.4126/rtorrent.changes 2019-07-31 14:31:21.829996239 +0200
@@ -1,0 +2,36 @@
+Wed Jul 24 17:52:33 UTC 2019 - hiwatari.seiji(a)gmail.com
+
+- Update to 0.9.8
+ * Close log files when reusing a name. (pyroscope)
+ * Increased max timeout for tracker requests.
+ * Set max piece size 512mb.
+ * Switch to C++11 MRT RNG for random bytes. (lps-rocks)
+ * Added support for openssl 1.1.
+ * Fix honoring throttle.min_peers* settings in rtorrent. (chros)
+ * Improved failed tracker bencode parsing. (chros)
+ * Added example rtorrent.rc. (g0tmi1k)
+ * Added a temporary name filter. (Toff)
+ * Added 'log.close' command.
+ * Added 'd.tracker_announce.force' command.
+ * Added 'event.system.startup_done/shutdown' commands/events. (chros)
+ * Added 'd.custom.if_z' command. (pyroscope)
+ * Added 'd.multicall.filtered' command. (pyroscope)
+ * Added 'event.view.hide/show' commands. (pyroscope)
+
+- Update to 0.9.7
+ * Fixed ip filter memory usage. (sallyswiss/chros73)
+ * Add space to fmt str in log_gz_file_write. (pastly)
+ * Fix compilation issue with gcc v6.x and empty CXXFLAGS. (chros73)
+ * Fix BEP7 compatibility with IPv6 trackers and IPv4 peers.
+ * Include SCGI/XMLRPC example in rtorrent.rc. (ss23)
+ * Handle SIGHUP like SIGINT. (pyroscope)
+ * Fix Throttle args. (chros73)
+ * Fix missing ranlib - not defined but used. (duraki)
+ * Fix no // are at start of expanded paths. (pyroscope)
+ * Fix ncurses header include. (theirix)
+ * Fix segfault when viewing a magnet download in the leeching view. (slingamn)
+
+- Remove rtorrent-vim package because it was made for the old (now discouraged) config syntax
+ * See: https://github.com/rakshasa/rtorrent/wiki/CONFIG-Template
+
+-------------------------------------------------------------------
Old:
----
_service
rtorrent-0.9.6.g116.tar.xz
rtorrent_ftdetect.vim
rtorrent_syntax.vim
New:
----
rtorrent-0.9.8.tar.gz
rtorrent.service
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rtorrent.spec ++++++
--- /var/tmp/diff_new_pack.WIPVWI/_old 2019-07-31 14:31:22.465995801 +0200
+++ /var/tmp/diff_new_pack.WIPVWI/_new 2019-07-31 14:31:22.473995796 +0200
@@ -21,20 +21,18 @@
%endif
Name: rtorrent
-Version: 0.9.6.g116
+Version: 0.9.8
Release: 0
Summary: Console-based BitTorrent Client
License: SUSE-GPL-2.0+-with-openssl-exception
Group: Productivity/Networking/File-Sharing
Url: http://github.com/rakshasa/rtorrent
-#Git-Clone git://github.com/rakshasa/rtorrent
-#Source: https://github.com/rakshasa/rtorrent/archive/%version.tar.gz
-Source: %name-%version.tar.xz
+
+Source: https://github.com/rakshasa/rtorrent/releases/download/v%{version}/%{name}-…
Source2: rtorrent.desktop
# This manpage copied from the 0.9.2 tarball as it was missing in later versions
Source3: rtorrent.1
-Source4: rtorrent_syntax.vim
-Source5: rtorrent_ftdetect.vim
+Source4: rtorrent.service
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with xmlrpc}
BuildRequires: xmlrpc-c-devel
@@ -47,11 +45,10 @@
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
# not strictly needed. we only need it for the ownership of the vim data dir
-BuildRequires: vim
-BuildRequires: xz
+BuildRequires: gzip
BuildRequires: pkgconfig(cppunit) >= 1.9.6
BuildRequires: pkgconfig(libcurl) >= 7.15.4
-BuildRequires: pkgconfig(libtorrent) >= 0.13.6
+BuildRequires: pkgconfig(libtorrent) >= 0.13.8
%description
rTorrent is a console-based BitTorrent client. It aims to be a
@@ -59,18 +56,6 @@
background using screen. It supports fast-resume and session
management.
-%package vim
-Summary: Vim syntax file for rTorrent's config file
-Group: Productivity/Text/Editors
-BuildArch: noarch
-Requires: vim
-Supplements: packageand(vim:%{name})
-%{!?vim_data_dir:%global vim_data_dir %(readlink -f %_datadir/vim/current)}
-
-%description vim
-Vim syntax file for rTorrent's config file, .rtorrent.rc
-The files are taken from http://www.vim.org/scripts/script.php?script_id=2234
-
%prep
%setup -q
@@ -89,6 +74,9 @@
--enable-ipv6
make %{?_smp_mflags}
+%pre
+getent passwd rtorrent >/dev/null || useradd -r rtorrent
+
%install
b="%buildroot"
make install DESTDIR="$b"
@@ -96,8 +84,10 @@
mkdir -p "$b/%_mandir/man1"
install -pm0644 "%{S:3}" "$b/%_mandir/man1/"
%suse_update_desktop_file -r "%name" Network P2P
-install -Dm0644 "%{S:4}" "$b/%vim_data_dir/syntax/%name.vim"
-install -Dm0644 "%{S:5}" "$b/%vim_data_dir/ftdetect/%name.vim"
+install -Dm0644 "%{S:4}" "$b/%{_unitdir}/rtorrent.service"
+
+%post
+%service_add_post rtorrent.service
%files
%defattr(-,root,root)
@@ -105,11 +95,6 @@
%_bindir/rtorrent
%_datadir/applications/%name.desktop
%_mandir/man1/rtorrent.1*
-
-%files vim
-%defattr(-,root,root)
-%dir %vim_data_dir/ftdetect
-%vim_data_dir/ftdetect/%name.vim
-%vim_data_dir/syntax/%name.vim
+%{_unitdir}/rtorrent.service
%changelog
++++++ rtorrent.service ++++++
[Unit]
Description=rTorrent daemon
Requires=network.target local-fs.target
[Service]
Type=forking
RemainAfterExit=yes
KillMode=none
EnvironmentFile=-/etc/sysconfig/rtorrent
ExecStart=/usr/bin/screen -d -m -S rtorrentd /usr/bin/rtorrent
ExecStop=/usr/bin/screen -S rtorrentd -X quit
User=rtorrent
Group=rtorrent
WorkingDirectory=~
[Install]
WantedBy=multi-user.target
1
0
Hello community,
here is the log from the commit of package libtorrent for openSUSE:Factory checked in at 2019-07-31 14:31:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libtorrent (Old)
and /work/SRC/openSUSE:Factory/.libtorrent.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libtorrent"
Wed Jul 31 14:31:12 2019 rev:12 rq:719868 version:0.13.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/libtorrent/libtorrent.changes 2017-12-12 21:23:14.601634568 +0100
+++ /work/SRC/openSUSE:Factory/.libtorrent.new.4126/libtorrent.changes 2019-07-31 14:31:20.773996965 +0200
@@ -1,0 +2,33 @@
+Wed Jul 24 17:52:33 UTC 2019 - hiwatari.seiji(a)gmail.com
+
+- Update to 0.13.8
+ * Close log files when reusing a name. (pyroscope)
+ * Increased max timeout for tracker requests.
+ * Set max piece size 512mb.
+ * Switch to C++11 MRT RNG for random bytes. (lps-rocks)
+ * Added support for openssl 1.1.
+ * Fix honoring throttle.min_peers* settings in rtorrent. (chros)
+ * Improved failed tracker bencode parsing. (chros)
+ * Added example rtorrent.rc. (g0tmi1k)
+ * Added a temporary name filter. (Toff)
+ * Added 'log.close' command.
+ * Added 'd.tracker_announce.force' command.
+ * Added 'event.system.startup_done/shutdown' commands/events. (chros)
+ * Added 'd.custom.if_z' command. (pyroscope)
+ * Added 'd.multicall.filtered' command. (pyroscope)
+ * Added 'event.view.hide/show' commands. (pyroscope)
+
+- Update to 0.13.7
+ * Fixed ip filter memory usage. (sallyswiss/chros73)
+ * Add space to fmt str in log_gz_file_write. (pastly)
+ * Fix compilation issue with gcc v6.x and empty CXXFLAGS. (chros73)
+ * Fix BEP7 compatibility with IPv6 trackers and IPv4 peers.
+ * Include SCGI/XMLRPC example in rtorrent.rc. (ss23)
+ * Handle SIGHUP like SIGINT. (pyroscope)
+ * Fix Throttle args. (chros73)
+ * Fix missing ranlib - not defined but used. (duraki)
+ * Fix no // are at start of expanded paths. (pyroscope)
+ * Fix ncurses header include. (theirix)
+ * Fix segfault when viewing a magnet download in the leeching view. (slingamn)
+
+-------------------------------------------------------------------
Old:
----
_service
libtorrent-0.13.6.g126.tar.xz
New:
----
libtorrent-0.13.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libtorrent.spec ++++++
--- /var/tmp/diff_new_pack.c6HPgh/_old 2019-07-31 14:31:21.565996420 +0200
+++ /var/tmp/diff_new_pack.c6HPgh/_new 2019-07-31 14:31:21.577996412 +0200
@@ -16,19 +16,17 @@
#
-
+%define rtorrentvers 0.9.8
Name: libtorrent
-%define lname libtorrent19
-Version: 0.13.6.g126
+%define lname libtorrent21
+Version: 0.13.8
Release: 0
Summary: A BitTorrent library written in C++
License: SUSE-GPL-2.0+-with-openssl-exception
Group: Productivity/Networking/File-Sharing
Url: http://github.com/rakshasa/libtorrent
-#Git-Clone: git://github.com/rakshasa/libtorrent
-#Source: https://github.com/rakshasa/libtorrent/archive/%version.tar.gz
-Source: %name-%version.tar.xz
+Source: https://github.com/rakshasa/rtorrent/releases/download/v%{rtorrentvers}/%{n…
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
@@ -37,7 +35,7 @@
BuildRequires: libtool
BuildRequires: pkgconfig(openssl)
BuildRequires: pkg-config
-BuildRequires: xz
+BuildRequires: gzip
BuildRequires: zlib-devel
%description
1
0
Hello community,
here is the log from the commit of package libgarcon for openSUSE:Factory checked in at 2019-07-31 14:31:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgarcon (Old)
and /work/SRC/openSUSE:Factory/.libgarcon.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgarcon"
Wed Jul 31 14:31:09 2019 rev:31 rq:719859 version:0.6.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgarcon/libgarcon.changes 2019-03-18 10:42:03.619221559 +0100
+++ /work/SRC/openSUSE:Factory/.libgarcon.new.4126/libgarcon.changes 2019-07-31 14:31:16.989999567 +0200
@@ -1,0 +2,17 @@
+Sat Jul 27 15:23:04 UTC 2019 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+
+- Update to version 0.6.4
+ * Update gitignore
+ * Fix use after free crash (bxo#15679)
+ * Translation updates
+- Removed %defattr macros
+- Use %make_build
+
+-------------------------------------------------------------------
+Sun Jun 30 22:42:45 UTC 2019 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+
+- Update to version 0.6.3
+ * Fix g_type_class_add_private deprecation in recent GLib
+ * Translation Updates
+
+-------------------------------------------------------------------
Old:
----
garcon-0.6.2.tar.bz2
New:
----
garcon-0.6.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgarcon.spec ++++++
--- /var/tmp/diff_new_pack.0SM2Em/_old 2019-07-31 14:31:17.617999135 +0200
+++ /var/tmp/diff_new_pack.0SM2Em/_new 2019-07-31 14:31:17.621999132 +0200
@@ -18,7 +18,7 @@
%define libname libgarcon-1-0
Name: libgarcon
-Version: 0.6.2
+Version: 0.6.4
Release: 0
Summary: Library Implementing the freedesktop.org Desktop Menu Specification
License: GPL-2.0-or-later
@@ -37,7 +37,6 @@
BuildRequires: pkgconfig(gtk-doc)
BuildRequires: pkgconfig(libxfce4ui-1)
BuildRequires: pkgconfig(libxfce4util-1.0)
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Garcon is a library based on GLib and GIO which implements the freedesktop.org
@@ -123,7 +122,7 @@
%configure \
--disable-static \
--enable-gtk-doc
-make %{?_smp_mflags} V=1
+%make_build
%install
%make_install
@@ -139,22 +138,18 @@
%postun -n %{libname} -p /sbin/ldconfig
%files -n %{libname}
-%defattr(-,root,root)
%license COPYING
%{_libdir}/libgarcon-1.so.*
%{_libdir}/libgarcon-gtk2-1.so.*
%{_libdir}/libgarcon-gtk3-1.so.*
%files data
-%defattr(-,root,root)
%dir %{_datadir}/desktop-directories
%{_datadir}/desktop-directories/*.directory
%files lang -f garcon.lang
-%defattr(-,root,root)
%files devel
-%defattr(-,root,root)
%{_includedir}/garcon-1/
%{_includedir}/garcon-gtk2-1/
%{_includedir}/garcon-gtk3-1/
@@ -166,7 +161,6 @@
%{_libdir}/libgarcon-gtk3-1.so
%files doc
-%defattr(-,root,root)
%doc AUTHORS HACKING NEWS README STATUS TODO
%license COPYING
%dir %{_datadir}/gtk-doc
@@ -174,7 +168,6 @@
%doc %{_datadir}/gtk-doc/html/garcon/
%files branding-upstream
-%defattr(-,root,root)
%dir %{_sysconfdir}/xdg/menus
%{_sysconfdir}/xdg/menus/xfce-applications.menu
++++++ garcon-0.6.2.tar.bz2 -> garcon-0.6.4.tar.bz2 ++++++
++++ 21178 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package thunar-volman for openSUSE:Factory checked in at 2019-07-31 14:30:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/thunar-volman (Old)
and /work/SRC/openSUSE:Factory/.thunar-volman.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "thunar-volman"
Wed Jul 31 14:30:54 2019 rev:32 rq:719858 version:0.9.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/thunar-volman/thunar-volman.changes 2019-01-03 18:09:11.376003846 +0100
+++ /work/SRC/openSUSE:Factory/.thunar-volman.new.4126/thunar-volman.changes 2019-07-31 14:31:14.426001331 +0200
@@ -1,0 +2,26 @@
+Sun Jul 28 15:18:53 UTC 2019 - Maurizio Galli <maurizio.galli(a)gmail.com>
+
+- Update to version 0.9.4
+ * Translation updates
+- Added bcond to build with git master source
+
+-------------------------------------------------------------------
+Mon Jul 1 15:45:54 UTC 2019 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+
+- Remove unneded V=1 flag
+
+-------------------------------------------------------------------
+Sun Jun 30 10:57:14 UTC 2019 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+
+- Update to 0.9.3
+ * Removed # vi:set encoding=UTF-8: from .desktop files (bxo#15466)
+ * Translation updates
+- Removed deprecated macros
+
+-------------------------------------------------------------------
+Mon May 20 12:29:59 UTC 2019 - Vinzenz Vietzke <vinz(a)vinzv.de>
+
+- Update to version 0.9.2
+ - Translation updates
+
+-------------------------------------------------------------------
Old:
----
thunar-volman-0.9.1.tar.bz2
New:
----
thunar-volman-0.9.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ thunar-volman.spec ++++++
--- /var/tmp/diff_new_pack.gusgb3/_old 2019-07-31 14:31:15.590000530 +0200
+++ /var/tmp/diff_new_pack.gusgb3/_new 2019-07-31 14:31:15.622000508 +0200
@@ -1,7 +1,7 @@
#
# spec file for package thunar-volman
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,23 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
+%bcond_with git
Name: thunar-volman
-Version: 0.9.1
+Version: 0.9.4
Release: 0
Summary: Thunar Volume Manager
License: GPL-2.0-or-later
Group: System/GUI/XFCE
-Url: http://goodies.xfce.org/projects/thunar-plugins/thunar-volman
-Source0: http://archive.xfce.org/src/apps/thunar-volman/0.9/%{name}-%{version}.tar.b…
+URL: https://goodies.xfce.org/projects/thunar-plugins/thunar-volman
+%if %{with git}
+Source0: %{name}-%{version}.tar.bz2
+%else
+Source0: https://archive.xfce.org/src/apps/thunar-volman/0.9/%{name}-%{version}.tar.…
+%endif
Source1: thunar-volman.xml
# PATCH-FIX-OPENSUSE thunar-volman-use-udisks-hints.diff bnc#949808 -- seife+dev(a)b1-systems.com
Patch0: thunar-volman-use-udisks-hints.diff
@@ -39,9 +44,7 @@
BuildRequires: pkgconfig(libxfce4ui-2) >= 4.12.0
BuildRequires: pkgconfig(libxfce4util-1.0) >= 4.12.0
BuildRequires: pkgconfig(libxfconf-0) >= 4.12.0
-
Recommends: %{name}-lang = %{version}
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
The Thunar Volume Manager is an extension for the Thunar file manager,
@@ -68,12 +71,16 @@
%lang_package
%prep
-%setup -q
-%patch0 -p1
+%autosetup -p1
%build
+%if %{with git}
+NOCONFIGURE=1 ./autogen.sh
+%configure --enable-maintainer-mode
+%else
%configure
-make %{?_smp_mflags} V=1
+%endif
+%make_build
%install
%make_install
@@ -87,26 +94,15 @@
%find_lang %{name} %{?no_lang_C}
-%post
-%desktop_database_post
-%icon_theme_cache_post
-
-%postun
-%desktop_database_postun
-%icon_theme_cache_postun
-
%files
-%defattr(-,root,root)
%{_bindir}/thunar-volman
%{_bindir}/thunar-volman-settings
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/*/*
%files lang -f %{name}.lang
-%defattr(-,root,root)
%files branding-upstream
-%defattr(-,root,root)
%dir %{_sysconfdir}/xdg/xfce4
%dir %{_sysconfdir}/xdg/xfce4/xfconf
%dir %{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml
++++++ thunar-volman-0.9.1.tar.bz2 -> thunar-volman-0.9.4.tar.bz2 ++++++
++++ 9628 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2019-07-31 14:30:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-manager (Old)
and /work/SRC/openSUSE:Factory/.virt-manager.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager"
Wed Jul 31 14:30:27 2019 rev:198 rq:719855 version:2.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2019-07-18 15:22:53.072117672 +0200
+++ /work/SRC/openSUSE:Factory/.virt-manager.new.4126/virt-manager.changes 2019-07-31 14:31:03.894008573 +0200
@@ -1,0 +2,11 @@
+Mon Jul 29 13:22:56 MDT 2019 - carnold(a)suse.com
+
+- bsc#1143315 - virt-manager: Fix detection for SLE15
+ virtinst-add-sle15-detection-support.patch
+ virtinst-add-caasp-support.patch
+ virtinst-detect-oes-distros.patch
+ virtinst-add-pvh-support.patch
+ virtinst-s390x-disable-graphics.patch
+ virtinst-set-qemu-emulator.patch
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.C6mvWV/_old 2019-07-31 14:31:12.394002728 +0200
+++ /var/tmp/diff_new_pack.C6mvWV/_new 2019-07-31 14:31:12.418002712 +0200
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
++++++ virtinst-add-caasp-support.patch ++++++
--- /var/tmp/diff_new_pack.C6mvWV/_old 2019-07-31 14:31:12.770002469 +0200
+++ /var/tmp/diff_new_pack.C6mvWV/_new 2019-07-31 14:31:12.774002466 +0200
@@ -1,9 +1,9 @@
References: bsc#1010060
-Index: virt-manager-2.2.0/virtinst/install/urldetect.py
+Index: virt-manager-2.2.1/virtinst/install/urldetect.py
===================================================================
---- virt-manager-2.2.0.orig/virtinst/install/urldetect.py
-+++ virt-manager-2.2.0/virtinst/install/urldetect.py
+--- virt-manager-2.2.1.orig/virtinst/install/urldetect.py
++++ virt-manager-2.2.1/virtinst/install/urldetect.py
@@ -273,6 +273,12 @@ class _SUSEContent(object):
self.product_name.strip().rsplit(' ')[5][2])
distro_version = sle_version
@@ -42,3 +42,11 @@
class _OESDistro(_SuseDistro):
PRETTY_NAME = "OES"
matching_distros = ["oes"]
+@@ -838,6 +855,7 @@ def _build_distro_list(osobj):
+ _SLESDistro,
+ _SLEDDistro,
+ _OpensuseDistro,
++ _CAASPDistro,
+ _OESDistro,
+ _DebianDistro,
+ _UbuntuDistro,
++++++ virtinst-add-pvh-support.patch ++++++
--- /var/tmp/diff_new_pack.C6mvWV/_old 2019-07-31 14:31:12.822002434 +0200
+++ /var/tmp/diff_new_pack.C6mvWV/_new 2019-07-31 14:31:12.822002434 +0200
@@ -32,7 +32,7 @@
===================================================================
--- virt-manager-2.2.1.orig/virtinst/guest.py
+++ virt-manager-2.2.1/virtinst/guest.py
-@@ -820,7 +820,7 @@ class Guest(XMLBuilder):
+@@ -821,7 +821,7 @@ class Guest(XMLBuilder):
usb_tablet = False
usb_keyboard = False
++++++ virtinst-add-sle15-detection-support.patch ++++++
--- /var/tmp/diff_new_pack.C6mvWV/_old 2019-07-31 14:31:12.898002381 +0200
+++ /var/tmp/diff_new_pack.C6mvWV/_new 2019-07-31 14:31:12.898002381 +0200
@@ -1,9 +1,9 @@
References: bsc#1054986
-Index: virt-manager-2.2.0/virtinst/install/urldetect.py
+Index: virt-manager-2.2.1/virtinst/install/urldetect.py
===================================================================
---- virt-manager-2.2.0.orig/virtinst/install/urldetect.py
-+++ virt-manager-2.2.0/virtinst/install/urldetect.py
+--- virt-manager-2.2.1.orig/virtinst/install/urldetect.py
++++ virt-manager-2.2.1/virtinst/install/urldetect.py
@@ -586,6 +586,10 @@ class _SuseDistro(_RHELDistro):
if re.search("openSUSE Tumbleweed", self.cache.treeinfo_name):
return "opensusetumbleweed"
@@ -42,3 +42,11 @@
class _SLESDistro(_SuseDistro):
PRETTY_NAME = "SLES"
matching_distros = ["sles"]
+@@ -852,6 +867,7 @@ def _build_distro_list(osobj):
+ _FedoraDistro,
+ _RHELDistro,
+ _CentOSDistro,
++ _SLEDistro,
+ _SLESDistro,
+ _SLEDDistro,
+ _OpensuseDistro,
++++++ virtinst-detect-oes-distros.patch ++++++
--- /var/tmp/diff_new_pack.C6mvWV/_old 2019-07-31 14:31:12.962002337 +0200
+++ /var/tmp/diff_new_pack.C6mvWV/_new 2019-07-31 14:31:12.966002334 +0200
@@ -1,9 +1,9 @@
Enhancement to correctly detect Open Enterprise Server media is
selected as the installation source.
-Index: virt-manager-2.2.0/virtinst/install/urldetect.py
+Index: virt-manager-2.2.1/virtinst/install/urldetect.py
===================================================================
---- virt-manager-2.2.0.orig/virtinst/install/urldetect.py
-+++ virt-manager-2.2.0/virtinst/install/urldetect.py
+--- virt-manager-2.2.1.orig/virtinst/install/urldetect.py
++++ virt-manager-2.2.1/virtinst/install/urldetect.py
@@ -553,7 +553,7 @@ class _SuseDistro(_RHELDistro):
if int(version) < 10:
return self._variant_prefix + "9"
@@ -28,3 +28,11 @@
class _DebianDistro(_DistroTree):
# ex. http://ftp.egr.msu.edu/debian/dists/sarge/main/installer-i386/
# daily builds: https://d-i.debian.org/daily-images/amd64/
+@@ -830,6 +838,7 @@ def _build_distro_list(osobj):
+ _SLESDistro,
+ _SLEDDistro,
+ _OpensuseDistro,
++ _OESDistro,
+ _DebianDistro,
+ _UbuntuDistro,
+ _MageiaDistro,
++++++ virtinst-s390x-disable-graphics.patch ++++++
--- /var/tmp/diff_new_pack.C6mvWV/_old 2019-07-31 14:31:13.190002180 +0200
+++ /var/tmp/diff_new_pack.C6mvWV/_new 2019-07-31 14:31:13.198002175 +0200
@@ -25,7 +25,7 @@
return True
return False
-@@ -860,7 +863,7 @@ class Guest(XMLBuilder):
+@@ -861,7 +864,7 @@ class Guest(XMLBuilder):
self.add_device(dev)
def _add_default_video_device(self):
@@ -34,7 +34,7 @@
return
if self.devices.video:
return
-@@ -927,7 +930,7 @@ class Guest(XMLBuilder):
+@@ -928,7 +931,7 @@ class Guest(XMLBuilder):
return
if self.os.is_container() and not self.conn.is_vz():
return
++++++ virtinst-set-qemu-emulator.patch ++++++
--- /var/tmp/diff_new_pack.C6mvWV/_old 2019-07-31 14:31:13.382002048 +0200
+++ /var/tmp/diff_new_pack.C6mvWV/_new 2019-07-31 14:31:13.382002048 +0200
@@ -5,7 +5,7 @@
===================================================================
--- virt-manager-2.2.1.orig/virtinst/guest.py
+++ virt-manager-2.2.1/virtinst/guest.py
-@@ -738,6 +738,10 @@ class Guest(XMLBuilder):
+@@ -739,6 +739,10 @@ class Guest(XMLBuilder):
self._add_default_memballoon()
self.clock.set_defaults(self)
1
0
Hello community,
here is the log from the commit of package haproxy for openSUSE:Factory checked in at 2019-07-31 14:30:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/haproxy (Old)
and /work/SRC/openSUSE:Factory/.haproxy.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "haproxy"
Wed Jul 31 14:30:10 2019 rev:72 rq:719848 version:2.0.3+git14.0ff395c1
Changes:
--------
--- /work/SRC/openSUSE:Factory/haproxy/haproxy.changes 2019-07-11 13:17:19.838787481 +0200
+++ /work/SRC/openSUSE:Factory/.haproxy.new.4126/haproxy.changes 2019-07-31 14:30:39.298025488 +0200
@@ -1,0 +2,55 @@
+Tue Jul 30 13:16:56 UTC 2019 - kgronlund(a)suse.com
+
+- Update to version 2.0.3+git14.0ff395c1 (bsc#1142529) (CVE-2019-14241):
+ * BUG/MAJOR: queue/threads: avoid an AB/BA locking issue in process_srv_queue()
+ * BUG/MINOR: htx: Fix free space addresses calculation during a block expansion
+ * BUG/MINOR: hlua: Only execute functions of HTTP class if the txn is HTTP ready
+ * MINOR: hlua: Add a flag on the lua txn to know in which context it can be used
+ * MINOR: hlua: Don't set request analyzers on response channel for lua actions
+ * BUG/MEDIUM: hlua: Check the calling direction in lua functions of the HTTP class
+ * BUG/MINOR: hlua/htx: Reset channels analyzers when txn:done() is called
+ * DOC: improve the wording in CONTRIBUTING about how to document a bug fix
+ * BUG/MINOR: log: make sure writev() is not interrupted on a file output
+ * BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to send.
+ * BUG/MEDIUM: lb-chash: Fix the realloc() when the number of nodes is increased
+ * BUILD: threads: add the definition of PROTO_LOCK
+ * BUG/MINOR: proxy: always lock stop_proxy()
+ * BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff
+ * [RELEASE] Released version 2.0.3
+ * BUG/CRITICAL: http_ana: Fix parsing of malformed cookies which start by a delimiter
+ * BUG/MINOR: http_htx: Support empty errorfiles
+ * BUG/MINOR: http_ana: Be sure to have an allocated buffer to generate an error
+ * BUG/MEDIUM: tcp-checks: do not dereference inexisting conn_stream
+ * BUG/MINOR: mux-h1: Close server connection if input data remains in h1_detach()
+ * BUG/MEDIUM: mux-h1: Trim excess server data at the end of a transaction
+ * BUG/MINOR: checks: do not exit tcp-checks from the middle of the loop
+ * BUG/MINOR: session: Send a default HTTP error if accept fails for a H1 socket
+ * BUG/MINOR: session: Emit an HTTP error if accept fails only for H1 connection
+ * BUG/MINOR: debug: Remove flags CO_FL_SOCK_WR_ENA/CO_FL_SOCK_RD_ENA
+ * DOC: htx: Update comments in HTX files
+ * BUG/MINOR: hlua: Make the function txn:done() HTX aware
+ * BUG/MINOR: cache/htx: Make maxage calculation HTX aware
+ * BUG/MINOR: http_htx: Initialize HTX error messages for TCP proxies
+ * BUG/MINOR: http_fetch: Fix http_auth/http_auth_group when called from TCP rules
+ * BUG/MINOR: backend: do not try to install a mux when the connection failed
+ * BUG/MEDIUM: http/htx: unbreak option http_proxy
+ * BUG/MEDIUM: checks: Don't attempt to receive data if we already subscribed.
+ * BUG/MINOR: dns: remove irrelevant dependency on a client connection
+ * [RELEASE] Released version 2.0.2
+ * BUG/MEDIUM: threads: cpu-map designating a single thread/process are ignored
+ * BUG/MEDIUM: tcp-check: unbreak multiple connect rules again
+ * BUG/MINOR: mux-pt: do not pretend there's more data after a read0
+ * BUG/MEDIUM: streams: Don't redispatch with L7 retries if redispatch isn't set.
+ * BUG/MEDIUM: streams: Don't give up if we couldn't send the request.
+ * BUG/MINOR: mux-h1: Correctly report Ti timer when HTX and keepalives are used
+ * BUG/MEDIUM: mux-h1: Don't release h1 connection if there is still data to send
+ * BUG/MAJOR: listener: fix thread safety in resume_listener()
+ * MINOR: task: introduce work lists
+ * BUG/MEDIUM: servers: Fix a race condition with idle connections.
+ * DOC: Fix typos and grammer in configuration.txt
+ * BUG/MEDIUM: da: cast the chunk to string.
+ * BUG/MEDIUM: checks: Don't attempt to read if we destroyed the connection.
+ * BUG/MINOR: server: Be really able to keep "pool-max-conn" idle connections
+ * BUG/MEDIUM: fd/threads: fix excessive CPU usage on multi-thread accept
+
+-------------------------------------------------------------------
Old:
----
haproxy-2.0.1+git27.5db881ff.tar.gz
New:
----
haproxy-2.0.3+git14.0ff395c1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ haproxy.spec ++++++
--- /var/tmp/diff_new_pack.u2Vl2X/_old 2019-07-31 14:30:42.226023475 +0200
+++ /var/tmp/diff_new_pack.u2Vl2X/_new 2019-07-31 14:30:42.230023472 +0200
@@ -47,7 +47,7 @@
%endif
Name: haproxy
-Version: 2.0.1+git27.5db881ff
+Version: 2.0.3+git14.0ff395c1
Release: 0
#
#
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.u2Vl2X/_old 2019-07-31 14:30:42.282023436 +0200
+++ /var/tmp/diff_new_pack.u2Vl2X/_new 2019-07-31 14:30:42.282023436 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">http://git.haproxy.org/git/haproxy-2.0.git</param>
- <param name="changesrevision">5db881ff0506bd5bb6caf9d80a06e79afa7473ca</param>
+ <param name="changesrevision">0ff395c154ad827c0c30eefc9371ba7f7c171027</param>
</service>
-</servicedata>
+</servicedata>
\ No newline at end of file
++++++ haproxy-2.0.1+git27.5db881ff.tar.gz -> haproxy-2.0.3+git14.0ff395c1.tar.gz ++++++
++++ 3188 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package parole for openSUSE:Factory checked in at 2019-07-31 14:30:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/parole (Old)
and /work/SRC/openSUSE:Factory/.parole.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "parole"
Wed Jul 31 14:30:00 2019 rev:34 rq:719846 version:1.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/parole/parole.changes 2019-04-09 20:19:24.337901288 +0200
+++ /work/SRC/openSUSE:Factory/.parole.new.4126/parole.changes 2019-07-31 14:30:11.206044807 +0200
@@ -1,0 +2,15 @@
+Sat Jul 27 12:19:48 UTC 2019 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+
+- Update to version 1.0.3
+ * Drop deprecated OnlyShowIn keys in desktop actions (bxo#15259)
+ * Ensure the time divider is shown/hidden correctly
+ * Fix closing of Parole process with Ctrl-Q (bxo#15698)
+ * Fix compiler warnings (clang) (bxo#15260)
+ * Fix Gtk-CRITICAL when closing main window (bxo#15621)
+ * Change text '…' to '...' for consistency with other Xfce apps
+ (bxo#14266)
+ * Change text '60 seconds' to '1 minute' (bxo#15529)
+ * Move appdata to metainfo (bxo#15381)
+ * Translation Updates
+
+-------------------------------------------------------------------
Old:
----
parole-1.0.2.tar.bz2
New:
----
parole-1.0.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ parole.spec ++++++
--- /var/tmp/diff_new_pack.mVoDCm/_old 2019-07-31 14:30:15.938041553 +0200
+++ /var/tmp/diff_new_pack.mVoDCm/_new 2019-07-31 14:30:15.942041550 +0200
@@ -17,7 +17,7 @@
Name: parole
-Version: 1.0.2
+Version: 1.0.3
Release: 0
Summary: Media Player for the Xfce Desktop Environment
License: GPL-2.0-or-later
@@ -26,6 +26,7 @@
Source0: https://archive.xfce.org/src/apps/parole/1.0/%{name}-%{version}.tar.bz2
# PATCH-FEATURE-UPSTREAM parole-add-uri-scheme-handler-support.patch gber(a)opensuse.org -- Adds support for URI scheme handlers
Patch1: parole-add-uri-scheme-handler-support.patch
+BuildRequires: appstream-glib
BuildRequires: intltool
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(dbus-1)
@@ -86,6 +87,9 @@
%find_lang %{name} %{?no_lang_C}
+# Validation currently fails (bxo#15751)
+# appstream-util validate-relax --nonet %%{buildroot}%%{_datadir}/metainfo/*.appdata.xml
+
%files
%doc AUTHORS NEWS README THANKS TODO
%license COPYING
@@ -94,8 +98,7 @@
%{_datadir}/icons/hicolor/*/apps/parole*.png
%{_datadir}/icons/hicolor/*/apps/parole*.svg
%{_datadir}/icons/hicolor/scalable/apps/parole.svg
-%dir %{_datadir}/appdata
-%{_datadir}/appdata/parole.appdata.xml
+%{_datadir}/metainfo/parole.appdata.xml
%{_datadir}/parole/
%{_libdir}/parole-0/
++++++ parole-1.0.2.tar.bz2 -> parole-1.0.3.tar.bz2 ++++++
++++ 21966 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package xfce4-screensaver for openSUSE:Factory checked in at 2019-07-31 14:29:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-screensaver (Old)
and /work/SRC/openSUSE:Factory/.xfce4-screensaver.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfce4-screensaver"
Wed Jul 31 14:29:43 2019 rev:3 rq:719845 version:0.1.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-screensaver/xfce4-screensaver.changes 2019-07-11 13:15:36.750819957 +0200
+++ /work/SRC/openSUSE:Factory/.xfce4-screensaver.new.4126/xfce4-screensaver.changes 2019-07-31 14:29:59.934052559 +0200
@@ -1,0 +2,18 @@
+Sun Jul 28 17:58:25 UTC 2019 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+
+- Update to version 0.1.7
+ * Added configuration tool for individual screensavers
+ * Added support for on-screen keyboards
+ * Drop libXxf86 dependency, no longer implemented or available
+ * Removed unneeded login window construction code
+ * Removed window shaking on failed login
+ * Removed unused session-idle signal
+ * Removed unused code from gs-manager/gs-window-x11
+ * Simplified lock screen code
+ * Simplified screensaver activation and locking code
+ * Improved wallpaper drawing at 2x scale
+ * Migrated xfce4-screensaver-command to GDBus
+ * Fixed confusion between saver and lock timeouts
+ * Translation updates
+
+-------------------------------------------------------------------
Old:
----
xfce4-screensaver-0.1.6.tar.bz2
New:
----
xfce4-screensaver-0.1.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfce4-screensaver.spec ++++++
--- /var/tmp/diff_new_pack.b9QWzm/_old 2019-07-31 14:30:00.650052066 +0200
+++ /var/tmp/diff_new_pack.b9QWzm/_new 2019-07-31 14:30:00.654052063 +0200
@@ -18,7 +18,7 @@
%bcond_with git
Name: xfce4-screensaver
-Version: 0.1.6
+Version: 0.1.7
Release: 0
Summary: Screensaver and locker for Xfce
License: GPL-2.0-only
@@ -97,6 +97,7 @@
%config %{_sysconfdir}/pam.d/xfce4-screensaver
%{_bindir}/xfce4-screensaver
%{_bindir}/xfce4-screensaver-command
+%{_bindir}/xfce4-screensaver-configure
%{_bindir}/xfce4-screensaver-preferences
%{_prefix}/lib/xfce4-screensaver-dialog
%{_prefix}/lib/xfce4-screensaver-gl-helper
++++++ xfce4-screensaver-0.1.6.tar.bz2 -> xfce4-screensaver-0.1.7.tar.bz2 ++++++
++++ 13615 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-fsspec for openSUSE:Factory checked in at 2019-07-31 14:29:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-fsspec (Old)
and /work/SRC/openSUSE:Factory/.python-fsspec.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-fsspec"
Wed Jul 31 14:29:36 2019 rev:2 rq:719840 version:0.3.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-fsspec/python-fsspec.changes 2019-07-23 22:43:06.662748034 +0200
+++ /work/SRC/openSUSE:Factory/.python-fsspec.new.4126/python-fsspec.changes 2019-07-31 14:29:37.218070632 +0200
@@ -1,0 +2,6 @@
+Tue Jul 30 14:02:33 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 0.3.6
+ * no upstream change log found
+
+-------------------------------------------------------------------
Old:
----
filesystem_spec-0.3.3.tar.gz
New:
----
filesystem_spec-0.3.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-fsspec.spec ++++++
--- /var/tmp/diff_new_pack.peHjWC/_old 2019-07-31 14:29:37.746070204 +0200
+++ /var/tmp/diff_new_pack.peHjWC/_new 2019-07-31 14:29:37.746070204 +0200
@@ -12,18 +12,19 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-fsspec
-Version: 0.3.3
+Version: 0.3.6
Release: 0
-License: BSD-3-Clause
Summary: Filesystem specification package
-Url: http://github.com/intake/filesystem_spec
+License: BSD-3-Clause
Group: Development/Languages/Python
+Url: http://github.com/intake/filesystem_spec
Source: https://codeload.github.com/intake/filesystem_spec/tar.gz/%{version}#/files…
BuildRequires: %{python_module setuptools}
# SECTION test requirements
++++++ filesystem_spec-0.3.3.tar.gz -> filesystem_spec-0.3.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/.travis.yml new/filesystem_spec-0.3.6/.travis.yml
--- old/filesystem_spec-0.3.3/.travis.yml 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/.travis.yml 2019-07-25 16:18:34.000000000 +0200
@@ -1,4 +1,5 @@
sudo: required
+dist: xenial
os:
- linux
services:
@@ -25,11 +26,9 @@
install:
- source ci/install.sh
- - conda install requests paramiko pyftpdlib cloudpickle pyarrow -y -c defaults -c conda-forge
- - pip install hadoop-test-cluster==0.1.0
script:
- - py.test -vv fsspec
+ - py.test --cov=fsspec -v
- language: generic
env: TEST=S3FS
@@ -58,7 +57,7 @@
- pip install -e . --no-deps
script:
- - GCSFS_RECORD_MODE=none py.test -vv gcsfs
+ - GCSFS_RECORD_MODE=none py.test -vv gcsfs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/README.md new/filesystem_spec-0.3.6/README.md
--- old/filesystem_spec-0.3.3/README.md 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/README.md 2019-07-25 16:18:34.000000000 +0200
@@ -19,7 +19,8 @@
To produce a template or specification for a file-system interface, that specific implementations should follow,
so that applications making use of them can rely on a common behaviour and not have to worry about the specific
-internal implementation decisions with any given backend.
+internal implementation decisions with any given backend. Many such implementations are included in this package,
+or in sister projects such as `s3fs` and `gcsfs`.
In addition, if this is well-designed, then additional functionality, such as a key-value store or FUSE
mounting of the file-system implementation may be available for all implementations "for free".
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/ci/install.sh new/filesystem_spec-0.3.6/ci/install.sh
--- old/filesystem_spec-0.3.3/ci/install.sh 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/ci/install.sh 2019-07-25 16:18:34.000000000 +0200
@@ -1,4 +1,7 @@
#!/usr/bin/env bash
+# install FUSE
+sudo apt-get install libfuse-dev
+
# Install conda
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p $HOME/miniconda
@@ -7,6 +10,8 @@
conda update conda
# Install dependencies
-conda create -n test -c conda-forge python=3.7 pip pytest paramiko requests
+conda create -n test -c conda-forge python=3.7 pip pytest paramiko requests zstandard python-snappy lz4 distributed \
+ dask pyarrow pyftpdlib cloudpickle pyarrow pytest-cov -y -c defaults -c conda-forge
+pip install hadoop-test-cluster==0.1.0 fusepy
source activate test
pip install . --no-deps
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/docs/source/index.rst new/filesystem_spec-0.3.6/docs/source/index.rst
--- old/filesystem_spec-0.3.3/docs/source/index.rst 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/docs/source/index.rst 2019-07-25 16:18:34.000000000 +0200
@@ -39,8 +39,18 @@
---------------
This repo contains several file-system implementations, see :ref:`implementations`. However,
-the external projects ``s3fs`` and ``gcsfs`` are also developing compatibility with ``fsspec`` and
-will eventually depend upon it.
+the external projects ``s3fs`` and ``gcsfs`` depend on ``fsspec`` and share the same behaviours.
+``Dask`` and ``Intake`` use ``fsspec`` internally for their IO needs.
+
+The current list of known implementations can be found as follows
+
+.. code-block:: python
+
+ from fsspec.registry import known_implementations
+ known_implementations
+
+These are only imported on request, which may fail if a required dependency is missing. The dictionary
+``fsspec.registry`` contains all imported implementations, and can be mutated by user code, if necessary.
.. toctree::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/_version.py new/filesystem_spec-0.3.6/fsspec/_version.py
--- old/filesystem_spec-0.3.3/fsspec/_version.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/_version.py 2019-07-25 16:18:34.000000000 +0200
@@ -23,9 +23,9 @@
# setup.py/versioneer.py will grep for the variable names, so they must
# each be defined on a line of their own. _version.py will just call
# get_keywords().
- git_refnames = " (tag: 0.3.3)"
- git_full = "af267857779f8d4f8b02133a8a1433cfaa391737"
- git_date = "2019-07-18 08:27:46 -0400"
+ git_refnames = " (tag: 0.3.6)"
+ git_full = "da99945ac4a6d3460a2f024a6371e97c2fa16659"
+ git_date = "2019-07-25 10:18:34 -0400"
keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
return keywords
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/compression.py new/filesystem_spec-0.3.6/fsspec/compression.py
--- old/filesystem_spec-0.3.3/fsspec/compression.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/compression.py 2019-07-25 16:18:34.000000000 +0200
@@ -1,9 +1,8 @@
"""Helper functions for a standard streaming compression API"""
-from __future__ import print_function, division, absolute_import
-
from bz2 import BZ2File
from gzip import GzipFile
from zipfile import ZipFile
+from fsspec.spec import AbstractBufferedFile
def noop_file(file, **kwargs):
@@ -12,7 +11,11 @@
def unzip(infile, mode='rb', filename=None, **kwargs):
if 'r' not in mode:
- raise ValueError("zip only supported in read mode")
+ filename = filename or "file"
+ z = ZipFile(infile, mode='w', **kwargs)
+ fo = z.open(filename, mode='w')
+ fo.close = lambda closer=fo.close: closer() or z.close()
+ return fo
z = ZipFile(infile)
if filename is None:
filename = z.namelist()[0]
@@ -36,3 +39,64 @@
compr['xz'] = lzmaffi.LZMAFile
except ImportError:
pass
+
+
+class SnappyFile(AbstractBufferedFile):
+
+ def __init__(self, infile, mode, **kwargs):
+ import snappy
+ self.details = {'size': 999999999} # not true, but OK if we don't seek
+ super().__init__(fs=None, path='snappy', mode=mode.strip('b') + 'b',
+ **kwargs)
+ self.infile = infile
+ if 'r' in mode:
+ self.codec = snappy.StreamDecompressor()
+ else:
+ self.codec = snappy.StreamCompressor()
+
+ def _upload_chunk(self, final=False):
+ self.buffer.seek(0)
+ out = self.codec.add_chunk(self.buffer.read())
+ self.infile.write(out)
+ return True
+
+ def seek(self, loc, whence=0):
+ raise NotImplementedError("SnappyFile is not seekable")
+
+ def seekable(self):
+ return False
+
+ def _fetch_range(self, start, end):
+ """Get the specified set of bytes from remote"""
+ data = self.infile.read(end - start)
+ return self.codec.decompress(data)
+
+
+try:
+ import snappy
+ snappy.compress
+ compr['snappy'] = SnappyFile
+
+except (ImportError, NameError):
+ pass
+
+try:
+ import lz4.frame
+ compr['lz4'] = lz4.frame.open
+except ImportError:
+ pass
+
+try:
+ import zstandard as zstd
+
+ def zstandard_file(infile, mode='rb'):
+ if 'r' in mode:
+ cctx = zstd.ZstdDecompressor()
+ return cctx.stream_reader(infile)
+ else:
+ cctx = zstd.ZstdCompressor(level=10)
+ return cctx.stream_writer(infile)
+
+ compr['zstd'] = zstandard_file
+except ImportError:
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/core.py new/filesystem_spec-0.3.6/fsspec/core.py
--- old/filesystem_spec-0.3.3/fsspec/core.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/core.py 2019-07-25 16:18:34.000000000 +0200
@@ -210,6 +210,7 @@
def split_protocol(urlpath):
+ """Return protocol, path pair"""
urlpath = stringify_path(urlpath)
if "://" in urlpath:
protocol, path = urlpath.split("://", 1)
@@ -219,6 +220,13 @@
return None, urlpath
+def strip_protocol(urlpath):
+ """Return only path part of full URL, according to appropriate backend"""
+ protocol, _ = split_protocol(urlpath)
+ cls = get_filesystem_class(protocol)
+ return cls._strip_protocol(urlpath)
+
+
def expand_paths_if_needed(paths, mode, num, fs, name_function):
"""Expand paths if they have a ``*`` in them.
@@ -289,8 +297,8 @@
raise ValueError("When specifying a list of paths, all paths must "
"share the same protocol")
cls = get_filesystem_class(protocol)
+ optionss = list(map(cls._get_kwargs_from_urls, urlpath))
paths = [cls._strip_protocol(u) for u in urlpath]
- optionss = list(map(cls._get_kwargs_from_urls, paths))
options = optionss[0]
if not all(o == options for o in optionss):
raise ValueError("When specifying a list of paths, all paths must "
@@ -304,8 +312,8 @@
protocol = protocol or protocols
cls = get_filesystem_class(protocol)
- path = cls._strip_protocol(urlpath)
options = cls._get_kwargs_from_urls(urlpath)
+ path = cls._strip_protocol(urlpath)
update_storage_options(options, storage_options)
fs = cls(**options)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/ftp.py new/filesystem_spec-0.3.6/fsspec/implementations/ftp.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/ftp.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/ftp.py 2019-07-25 16:18:34.000000000 +0200
@@ -63,7 +63,10 @@
@staticmethod
def _get_kwargs_from_urls(urlpath):
- return infer_storage_options(urlpath)
+ out = infer_storage_options(urlpath)
+ out.pop('path', None)
+ out.pop('protocol', None)
+ return out
def invalidate_cache(self, path=None):
if path is not None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/hdfs.py new/filesystem_spec-0.3.6/fsspec/implementations/hdfs.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/hdfs.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/hdfs.py 2019-07-25 16:18:34.000000000 +0200
@@ -1,4 +1,6 @@
from ..spec import AbstractFileSystem
+from ..utils import infer_storage_options
+from pyarrow.hdfs import HadoopFileSystem
class PyArrowHDFS(AbstractFileSystem):
@@ -9,7 +11,7 @@
"""
def __init__(self, host="default", port=0, user=None, kerb_ticket=None,
- driver='libhdfs', extra_conf=None):
+ driver='libhdfs', extra_conf=None, **kwargs):
"""
Parameters
@@ -27,8 +29,9 @@
extra_conf: None or dict
Passed on to HadoopFileSystem
"""
- from pyarrow.hdfs import HadoopFileSystem
- self.driver = HadoopFileSystem(host=host, port=port, user=user,
+ AbstractFileSystem.__init__(self, **kwargs)
+ self.pars = (host, port, user, kerb_ticket, driver, extra_conf)
+ self.pahdfs = HadoopFileSystem(host=host, port=port, user=user,
kerb_ticket=kerb_ticket, driver=driver,
extra_conf=extra_conf)
@@ -50,19 +53,95 @@
Returns
-------
- arrow HdfsFile file-like instance
+ HDFSFile file-like instance
"""
if not autocommit:
raise NotImplementedError
- return self.driver.open(path, mode, block_size, **kwargs)
+ return HDFSFile(self, path, mode, block_size, **kwargs)
+
+ def __reduce_ex__(self, protocol):
+ return PyArrowHDFS, self.pars
+
+ def ls(self, path, detail=True):
+ out = self.pahdfs.ls(path, detail)
+ if detail:
+ for p in out:
+ p['type'] = p['kind']
+ return out
+
+ @staticmethod
+ def _get_kwargs_from_urls(paths):
+ ops = infer_storage_options(paths)
+ out = {}
+ if ops.get('host', None):
+ out['host'] = ops['host']
+ if ops.get('username', None):
+ out['user'] = ops['username']
+ if ops.get('port', None):
+ out['port'] = ops['port']
+ return out
+
+ @classmethod
+ def _strip_protocol(cls, path):
+ ops = infer_storage_options(path)
+ return ops['path']
+
+ def __getattribute__(self, item):
+ if item in ['_open', '__init__', '__getattribute__', '__reduce_ex__',
+ 'open', 'ls', 'makedirs']:
+ # all the methods defined in this class. Note `open` here, since
+ # it calls `_open`, but is actually in superclass
+ return lambda *args, **kw: getattr(PyArrowHDFS, item)(
+ self, *args, **kw
+ )
+ if item == '__class__':
+ return PyArrowHDFS
+ d = object.__getattribute__(self, '__dict__')
+ pahdfs = d.get('pahdfs', None) # fs is not immediately defined
+ if pahdfs is not None and item in [
+ 'chmod', 'chown', 'user',
+ 'df', 'disk_usage', 'download', 'driver', 'exists',
+ 'extra_conf', 'get_capacity', 'get_space_used', 'host',
+ 'is_open', 'kerb_ticket', 'strip_protocol',
+ 'mkdir', 'mv', 'port', 'get_capacity',
+ 'get_space_used', 'df', 'chmod', 'chown', 'disk_usage',
+ 'download', 'upload', '_get_kwargs_from_urls',
+ 'read_parquet', 'rm', 'stat', 'upload',
+ ]:
+ return getattr(pahdfs, item)
+ else:
+ # attributes of the superclass, while target is being set up
+ return super().__getattribute__(item)
+
+
+class HDFSFile(object):
+ """Wrapper around arrow's HdfsFile
+
+ Allows seek beyond EOF and (eventually) commit/discard
+ """
+
+ def __init__(self, fs, path, mode, block_size, **kwargs):
+ self.fs = fs
+ self.path = path
+ self.mode = mode
+ self.block_size = block_size
+ self.fh = fs.pahdfs.open(path, mode, block_size, **kwargs)
+ if self.fh.readable():
+ self.seek_size = self.size()
+
+ def seek(self, loc, whence=0):
+ if whence == 0 and self.readable():
+ loc = min(loc, self.seek_size)
+ return self.fh.seek(loc, whence)
def __getattr__(self, item):
- if item in ['chmod', 'chown',
- 'df', 'disk_usage', 'download', 'driver', 'exists',
- 'extra_conf', 'get_capacity', 'get_space_used', 'host',
- 'info', 'is_open', 'isdir', 'isfile', 'kerb_ticket',
- 'ls', 'mkdir', 'mv', 'port',
- 'read_parquet', 'rm', 'stat', 'upload',
- 'user', 'walk']:
- return getattr(self.driver, item)
+ return getattr(self.fh, item)
+
+ def __reduce_ex__(self, protocol):
+ return HDFSFile, (self.fs, self.path, self.mode, self.block_size)
+
+ def __enter__(self):
+ return self
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ self.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/http.py new/filesystem_spec-0.3.6/fsspec/implementations/http.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/http.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/http.py 2019-07-25 16:18:34.000000000 +0200
@@ -222,6 +222,7 @@
r.raise_for_status()
out = r.content
self.cache = AllBytes(out)
+ self.size = len(out)
def _fetch_range(self, start, end):
"""Download a block of data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/memory.py new/filesystem_spec-0.3.6/fsspec/implementations/memory.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/memory.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/memory.py 2019-07-25 16:18:34.000000000 +0200
@@ -106,7 +106,8 @@
return m
def copy(self, path1, path2, **kwargs):
- self.store[path2] = MemoryFile(self.store[path1].getbuffer())
+ self.store[path2] = MemoryFile(self, path2,
+ self.store[path1].getbuffer())
def cat(self, path):
return self.store[path].getvalue()
@@ -114,9 +115,6 @@
def _rm(self, path):
del self.store[path]
- def ukey(self, path):
- return hash(self.store[path]) # internal ID of instance
-
def size(self, path):
"""Size in bytes of the file at path"""
if path not in self.store:
@@ -125,17 +123,26 @@
class MemoryFile(BytesIO):
- """A BytesIO which can't close and works as a context manager"""
+ """A BytesIO which can't close and works as a context manager
+
+ Can initialise with data
- def __init__(self, fs, path):
+ No need to provide fs, path if auto-committing (default)
+ """
+
+ def __init__(self, fs, path, data=None):
self.fs = fs
self.path = path
+ if data:
+ self.write(data)
+ self.size = len(data)
+ self.seek(0)
def __enter__(self):
return self
def close(self):
- pass
+ self.size = self.seek(0, 2)
def discard(self):
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/sftp.py new/filesystem_spec-0.3.6/fsspec/implementations/sftp.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/sftp.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/sftp.py 2019-07-25 16:18:34.000000000 +0200
@@ -11,6 +11,7 @@
Peer-to-peer filesystem over SSH using paramiko.
"""
+ protocol = 'sftp', 'ssh'
def __init__(self, host, **ssh_kwargs):
"""
@@ -27,7 +28,7 @@
May include port, username, password...
"""
super(SFTPFileSystem, self).__init__(**ssh_kwargs)
- self.temppath = ssh_kwargs.get('temppath', '/tmp')
+ self.temppath = ssh_kwargs.pop('temppath', '/tmp')
self.host = host
self.ssh_kwargs = ssh_kwargs
self._connect()
@@ -54,7 +55,10 @@
@staticmethod
def _get_kwargs_from_urls(urlpath):
- return infer_storage_options(urlpath)
+ out = infer_storage_options(urlpath)
+ out.pop('path', None)
+ out.pop('protocol', None)
+ return out
def mkdir(self, path, mode=511):
self.ftp.mkdir(path, mode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_dask.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_dask.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_dask.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_dask.py 2019-07-25 16:18:34.000000000 +0200
@@ -18,7 +18,7 @@
try:
yield client
finally:
- client.shutdown()
+ client.close()
def test_basic(cli):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_ftp.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_ftp.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_ftp.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_ftp.py 2019-07-25 16:18:34.000000000 +0200
@@ -5,6 +5,7 @@
import time
from fsspec.implementations.ftp import FTPFileSystem
from fsspec import open_files
+import fsspec
pytest.importorskip('pyftpdlib')
here = os.path.dirname(os.path.abspath(__file__))
@@ -73,6 +74,16 @@
assert fs.cat('/out2') == b'oi'
+def test_with_url(ftp_writable):
+ host, port, user, pw = ftp_writable
+ fo = fsspec.open("ftp://{}:{}@{}:{}/out".format(user, pw, host, port), 'wb')
+ with fo as f:
+ f.write(b'hello')
+ fo = fsspec.open("ftp://{}:{}@{}:{}/out".format(user, pw, host, port), 'rb')
+ with fo as f:
+ assert f.read() == b'hello'
+
+
@pytest.mark.parametrize('cache_type', ['bytes', 'mmap'])
def test_write_big(ftp_writable, cache_type):
host, port, user, pw = ftp_writable
@@ -104,3 +115,7 @@
assert not fs.exists(fn)
assert fs.exists(fn)
assert fs.cat(fn) == b'not'
+
+ fs.rm(fn)
+ assert not fs.exists(fn)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_http.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_http.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_http.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_http.py 2019-07-25 16:18:34.000000000 +0200
@@ -1,15 +1,20 @@
import glob
+import os
import pytest
+import shlex
import subprocess
import time
import fsspec
requests = pytest.importorskip('requests')
+fn = "test_http.py"
+d = os.path.dirname(__file__)
+data = open(__file__, 'rb').read()
@pytest.fixture(scope='module')
def server():
- cmd = "python -m http.server 8000".split()
+ cmd = shlex.split("python -m http.server 8000 --directory %s" % d)
try:
P = subprocess.Popen(cmd)
retries = 10
@@ -31,14 +36,36 @@
def test_list(server):
h = fsspec.filesystem('http')
out = h.glob(server + '/*.py')
- expected = glob.glob('*.py')
- for fn in expected:
- assert any(fn in f for f in out)
+ expected = [os.path.basename(f) for f in glob.glob('%s/*.py' % d)]
+ for myfile in expected:
+ assert any(myfile in os.path.basename(f) for f in out)
def test_read(server):
h = fsspec.filesystem('http')
- out = h.glob(server + '/*.py')[0]
- expected = glob.glob('*.py')[0]
+ out = server + '/' + fn
with h.open(out, 'rb') as f:
- assert f.read() == open(expected, 'rb').read()
+ assert f.read() == data
+ with h.open(out, 'rb', block_size=0) as f:
+ assert f.read() == data
+ with h.open(out, 'rb', size_policy='head') as f:
+ assert f.size == len(data)
+
+
+def test_methods(server):
+ h = fsspec.filesystem('http')
+ url = server + fn
+ assert h.exists(url)
+ assert h.cat(url) == data
+
+
+def test_random_access(server):
+ h = fsspec.filesystem('http')
+ url = server + '/' + fn
+ with h.open(url, 'rb') as f:
+ assert f.read(5) == data[:5]
+ # python server does not respect bytes range request
+ # we actually get all the data
+ f.seek(5, 1)
+ assert f.read(5) == data[10:15]
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_local.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_local.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_local.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_local.py 2019-07-25 16:18:34.000000000 +0200
@@ -153,9 +153,6 @@
@pytest.mark.parametrize('fmt', list(compression.compr))
def test_compressions(fmt, mode, tmpdir):
tmpdir = str(tmpdir)
- if fmt == 'zip':
- # zip implemented read-only
- pytest.skip()
fn = os.path.join(tmpdir, '.tmp.getsize')
fs = LocalFileSystem()
f = OpenFile(fs, fn, compression=fmt, mode='wb')
@@ -266,8 +263,64 @@
fs = LocalFileSystem()
assert isinstance(fs, pa.filesystem.FileSystem)
+ assert fs._get_pyarrow_filesystem() is fs
class UnknownFileSystem(object):
pass
assert not isinstance(UnknownFileSystem(), pa.filesystem.FileSystem)
+
+
+def test_directories(tmpdir):
+ tmpdir = str(tmpdir)
+ fs = LocalFileSystem()
+ fs.mkdir(tmpdir + '/dir')
+ assert tmpdir + '/dir' in fs.ls(tmpdir)
+ assert fs.ls(tmpdir, True)[0]['type'] == 'directory'
+ fs.rmdir(tmpdir + '/dir')
+ assert not fs.ls(tmpdir)
+
+
+def test_file_ops(tmpdir):
+ tmpdir = str(tmpdir)
+ fs = LocalFileSystem()
+ with pytest.raises(FileNotFoundError):
+ fs.info(tmpdir + '/nofile')
+ fs.touch(tmpdir + '/afile')
+ i1 = fs.ukey(tmpdir + '/afile')
+
+ assert tmpdir + '/afile' in fs.ls(tmpdir)
+
+ with fs.open(tmpdir + '/afile', 'wb') as f:
+ f.write(b'data')
+ i2 = fs.ukey(tmpdir + '/afile')
+ assert i1 != i2 # because file changed
+
+ fs.copy(tmpdir + '/afile', tmpdir + '/afile2')
+ assert tmpdir + '/afile2' in fs.ls(tmpdir)
+
+ fs.move(tmpdir + '/afile', tmpdir + '/afile3')
+ assert not fs.exists(tmpdir + '/afile')
+ assert fs.exists(tmpdir + '/afile3')
+
+ fs.rm(tmpdir, recursive=True)
+ assert not fs.exists(tmpdir)
+
+
+def test_commit_discard(tmpdir):
+ tmpdir = str(tmpdir)
+ fs = LocalFileSystem()
+ with fs.transaction:
+ with fs.open(tmpdir + '/afile', 'wb') as f:
+ assert not fs.exists(tmpdir + '/afile')
+ f.write(b'data')
+ assert not fs.exists(tmpdir + '/afile')
+ assert fs.cat(tmpdir + '/afile') == b'data'
+
+ try:
+ with fs.transaction:
+ with fs.open(tmpdir + '/bfile', 'wb') as f:
+ f.write(b'data')
+ raise KeyboardInterrupt
+ except KeyboardInterrupt:
+ assert not fs.exists(tmpdir + '/bfile')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_memory.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_memory.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_memory.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_memory.py 2019-07-25 16:18:34.000000000 +0200
@@ -15,8 +15,8 @@
def test_1(m):
m.touch('/somefile') # NB: is found with or without initial /
m.touch('afiles/and/anothers')
- assert m.find('') == ['somefile', 'afiles/and/anothers']
- assert list(m.get_mapper('')) == ['somefile', 'afiles/and/anothers']
+ assert m.find('') == ['afiles/and/anothers', 'somefile']
+ assert list(m.get_mapper('')) == ['afiles/and/anothers', 'somefile']
def test_ls(m):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_sftp.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_sftp.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_sftp.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_sftp.py 2019-07-25 16:18:34.000000000 +0200
@@ -54,6 +54,19 @@
assert not f.exists('/home/someuser')
+(a)pytest.mark.parametrize('protocol', ['sftp', 'ssh'])
+def test_with_url(protocol, ssh):
+ fo = fsspec.open(protocol + "://{username}:{password}@{host}:{port}"
+ "/home/someuserout".format(**ssh), 'wb')
+ with fo as f:
+ f.write(b'hello')
+ fo = fsspec.open(protocol + "://{username}:{password}@{host}:{port}"
+ "/home/someuserout".format(**ssh), 'rb')
+ with fo as f:
+ assert f.read() == b'hello'
+
+
+
def test_transaction(ssh):
f = fsspec.get_filesystem_class('sftp')(**ssh)
f.mkdirs('/home/someuser/deeper')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_webhdfs.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_webhdfs.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_webhdfs.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_webhdfs.py 2019-07-25 16:18:34.000000000 +0200
@@ -1,9 +1,11 @@
+import pickle
import pytest
import subprocess
import time
requests = pytest.importorskip("requests")
from fsspec.implementations.webhdfs import WebHDFS
+import fsspec
@pytest.fixture(scope='module')
@@ -29,10 +31,28 @@
subprocess.check_output(cmd0)
+def test_pickle(hdfs_cluster):
+ w = WebHDFS(hdfs_cluster, user='testuser')
+ w2 = pickle.loads(pickle.dumps(w))
+ assert w == w2
+
+
def test_simple(hdfs_cluster):
w = WebHDFS(hdfs_cluster, user='testuser')
home = w.home_directory()
assert home == '/user/testuser'
+ with pytest.raises(PermissionError):
+ w.mkdir('/root')
+
+
+def test_url(hdfs_cluster):
+ url = 'webhdfs://testuser@localhost:50070/user/testuser/myfile'
+ fo = fsspec.open(url, 'wb', data_proxy={'worker.example.com': 'localhost'})
+ with fo as f:
+ f.write(b'hello')
+ fo = fsspec.open(url, 'rb', data_proxy={'worker.example.com': 'localhost'})
+ with fo as f:
+ assert f.read() == b'hello'
def test_workflow(hdfs_cluster):
@@ -55,11 +75,18 @@
w = WebHDFS(hdfs_cluster, user='testuser',
data_proxy={'worker.example.com': 'localhost'})
fn = '/user/testuser/testrun/afile'
- w.mkdir('/user/testuser/testrun')
+ w.mkdirs('/user/testuser/testrun')
with w.transaction:
with w.open(fn, 'wb') as f:
f.write(b'hello')
assert not w.exists(fn)
assert w.exists(fn)
+ assert w.ukey(fn)
+ files = w.ls('/user/testuser/testrun', True)
+ summ = w.content_summary('/user/testuser/testrun')
+ assert summ['length'] == files[0]['size']
+ assert summ['fileCount'] == 1
+
w.rm('/user/testuser/testrun', recursive=True)
assert not w.exists(fn)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_zip.py new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_zip.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/tests/test_zip.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/tests/test_zip.py 2019-07-25 16:18:34.000000000 +0200
@@ -1,6 +1,7 @@
import zipfile
from contextlib import contextmanager
import os
+import pickle
import pytest
import sys
import tempfile
@@ -40,3 +41,10 @@
m = fs.get_mapper('')
assert list(m) == ['a', 'b', 'deeply/nested/path']
assert m['b'] == data['b']
+
+
+def test_pickle():
+ with tempzip(data) as z:
+ fs = fsspec.get_filesystem_class('zip')(fo=z)
+ fs2 = pickle.loads(pickle.dumps(fs))
+ assert fs2.cat('b') == b'hello'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/webhdfs.py new/filesystem_spec-0.3.6/fsspec/implementations/webhdfs.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/webhdfs.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/webhdfs.py 2019-07-25 16:18:34.000000000 +0200
@@ -6,6 +6,7 @@
from urllib.parse import quote
import uuid
from ..spec import AbstractFileSystem, AbstractBufferedFile
+from ..utils import infer_storage_options
import logging
logger = logging.getLogger('webhdfs')
@@ -30,6 +31,7 @@
"""
tempdir = '/tmp'
+ protocol = 'webhdfs', 'webHDFS'
def __init__(self, host, port=50070, kerberos=False, token=None, user=None,
proxy_to=None, kerb_kwargs=None, data_proxy=None,
@@ -155,6 +157,19 @@
info['size'] = info['length']
return info
+ @classmethod
+ def _strip_protocol(cls, path):
+ return infer_storage_options(path)['path']
+
+ @staticmethod
+ def _get_kwargs_from_urls(urlpath):
+ out = infer_storage_options(urlpath)
+ out.pop('path', None)
+ out.pop('protocol', None)
+ if 'username' in out:
+ out['user'] = out.pop('username')
+ return out
+
def info(self, path):
out = self._call('GETFILESTATUS', path=path)
info = out.json()['FileStatus']
@@ -177,7 +192,7 @@
out = self._call('GETCONTENTSUMMARY', path=path)
return out.json()['ContentSummary']
- def get_file_checksum(self, path):
+ def ukey(self, path):
"""Checksum info of file, giving method and result"""
out = self._call('GETFILECHECKSUM', path=path, redirect=False)
location = self._apply_proxy(out.headers['Location'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/implementations/zip.py new/filesystem_spec-0.3.6/fsspec/implementations/zip.py
--- old/filesystem_spec-0.3.3/fsspec/implementations/zip.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/implementations/zip.py 2019-07-25 16:18:34.000000000 +0200
@@ -8,7 +8,9 @@
class ZipFileSystem(AbstractFileSystem):
"""Read contents of ZIP archive as a file-system
- Keeps file object open while instance lives
+ Keeps file object open while instance lives.
+
+ This class is pickleable, but not necessarily thread-safe
"""
root_marker = ""
@@ -28,6 +30,7 @@
AbstractFileSystem.__init__(self)
if mode != 'r':
raise ValueError("Only read from zip files accepted")
+ self.in_fo = fo
if isinstance(fo, str):
files = open_files(fo)
if len(files) != 1:
@@ -40,6 +43,11 @@
self.kwargs = storage_options
self.dir_cache = None
+ @classmethod
+ def _strip_protocol(cls, path):
+ # zip file paths are always relative to the archive root
+ return super()._strip_protocol(path).lstrip('/')
+
def _get_dirs(self):
if self.dir_cache is None:
files = self.zip.infolist()
@@ -83,6 +91,9 @@
else:
return list(sorted(f['name'] for f in out))
+ def __reduce_ex__(self, protocol):
+ return ZipFileSystem, (self.in_fo, )
+
def cat(self, path):
return self.zip.read(path)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/registry.py new/filesystem_spec-0.3.6/fsspec/registry.py
--- old/filesystem_spec-0.3.3/fsspec/registry.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/registry.py 2019-07-25 16:18:34.000000000 +0200
@@ -21,6 +21,8 @@
'err': 'Please install gcsfs to access Google Storage'},
'sftp': {'class': 'fsspec.implementations.sftp.SFTPFileSystem',
'err': 'SFTPFileSystem requires "paramiko" to be installed'},
+ 'ssh': {'class': 'fsspec.implementations.sftp.SFTPFileSystem',
+ 'err': 'SFTPFileSystem requires "paramiko" to be installed'},
'ftp': {'class': 'fsspec.implementations.ftp.FTPFileSystem'},
'hdfs': {'class': 'fsspec.implementations.hdfs.PyArrowHDFS',
'err': 'pyarrow and local java libraries required for HDFS'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/spec.py new/filesystem_spec-0.3.6/fsspec/spec.py
--- old/filesystem_spec-0.3.3/fsspec/spec.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/spec.py 2019-07-25 16:18:34.000000000 +0200
@@ -36,7 +36,7 @@
from here.
"""
_singleton = [None] # will contain the newest instance
- _cache = None
+ _cache = {}
cachable = True # this class can be cached, instances reused
_cached = False
blocksize = 2**22
@@ -53,9 +53,6 @@
The instance will skip init if instance.cached = True.
"""
- if cls._cache is None and cls.cachable:
- # set up instance cache, if using
- cls._cache = {}
# TODO: defer to a class-specific tokeniser?
do_cache = storage_options.pop('do_cache', True)
@@ -68,6 +65,7 @@
if self.cachable:
# store for caching - can hold memory
cls._cache[token] = self
+ self.storage_options = storage_options
return self
def __init__(self, *args, **storage_options):
@@ -333,7 +331,7 @@
try:
listing = self.ls(path, True)
- except FileNotFoundError:
+ except (FileNotFoundError, IOError):
return [], [], []
for info in listing:
@@ -373,7 +371,7 @@
# walk works on directories, but find should also return [path]
# when path happens to be a file
out.append(path)
- return out
+ return sorted(out)
def du(self, path, total=True, maxdepth=None):
"""Space used by files within a path
@@ -426,7 +424,7 @@
elif self.exists(path):
return [path]
else:
- raise FileNotFoundError(path)
+ return [] # glob of non-existent returns empty
elif '/' in path[:ind]:
ind2 = path[:ind].rindex('/')
root = path[:ind2 + 1]
@@ -525,14 +523,7 @@
rpath = self._strip_protocol(rpath)
if recursive:
rpaths = self.find(rpath)
- rootdir = os.path.basename(rpath.rstrip('/'))
- if os.path.isdir(lpath):
- # copy rpath inside lpath directory
- lpath2 = os.path.join(lpath, rootdir)
- else:
- # copy rpath as lpath directory
- lpath2 = lpath
- lpaths = [os.path.join(lpath2, path[len(rpath):].lstrip('/'))
+ lpaths = [os.path.join(lpath, path[len(rpath):].lstrip('/'))
for path in rpaths]
for lpath in lpaths:
dirname = os.path.dirname(lpath)
@@ -542,7 +533,6 @@
rpaths = [rpath]
lpaths = [lpath]
for lpath, rpath in zip(lpaths, rpaths):
- print(lpath, rpath)
with self.open(rpath, 'rb') as f1:
with open(lpath, 'wb') as f2:
data = True
@@ -632,7 +622,7 @@
@classmethod
def _parent(cls, path):
- path = path.rstrip('/')
+ path = cls._strip_protocol(path.rstrip('/'))
if '/' in path:
return cls.root_marker + path.rsplit('/', 1)[0]
else:
@@ -1125,8 +1115,9 @@
else:
assert self.buffer.tell() == 0
- self.fs.invalidate_cache(self.path)
- self.fs.invalidate_cache(self.fs._parent(self.path))
+ if self.fs is not None:
+ self.fs.invalidate_cache(self.path)
+ self.fs.invalidate_cache(self.fs._parent(self.path))
self.closed = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/tests/test_api.py new/filesystem_spec-0.3.6/fsspec/tests/test_api.py
--- old/filesystem_spec-0.3.3/fsspec/tests/test_api.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/tests/test_api.py 2019-07-25 16:18:34.000000000 +0200
@@ -1,7 +1,8 @@
"""Tests the spec, using memoryfs"""
+import os
import pickle
-from fsspec.implementations.memory import MemoryFileSystem
+from fsspec.implementations.memory import MemoryFileSystem, MemoryFile
def test_idempotent():
@@ -36,3 +37,77 @@
assert MemoryFileSystem._strip_protocol('other://stuff') == "other://stuff"
assert MemoryFileSystem._get_kwargs_from_urls("memory://user@thing") == {}
+
+
+def test_get_put(tmpdir):
+ tmpdir = str(tmpdir)
+ fn = os.path.join(tmpdir, 'one')
+ open(fn, 'wb').write(b'one')
+ os.mkdir(os.path.join(tmpdir, 'dir'))
+ fn2 = os.path.join(tmpdir, 'dir', 'two')
+ open(fn2, 'wb').write(b'two')
+
+ fs = MemoryFileSystem()
+ fs.put(fn, '/afile')
+ assert fs.cat('/afile') == b'one'
+
+ fs.store['/bfile'] = MemoryFile(fs, '/bfile', b'data')
+ fn3 = os.path.join(tmpdir, 'three')
+ fs.get('/bfile', fn3)
+ assert open(fn3, 'rb').read() == b'data'
+
+ fs.put(tmpdir, '/more', recursive=True)
+ assert fs.find('/more') == ['/more/dir/two', '/more/one', '/more/three']
+
+ for f in [fn, fn2, fn3]:
+ os.remove(f)
+ os.rmdir(os.path.join(tmpdir, 'dir'))
+
+ fs.get('/more/', tmpdir + '/', recursive=True)
+ assert open(fn3, 'rb').read() == b'data'
+ assert open(fn, 'rb').read() == b'one'
+
+
+def test_du():
+ fs = MemoryFileSystem()
+ fs.store = {
+ '/dir/afile': MemoryFile(fs, '/afile', b'a'),
+ '/dir/dirb/afile': MemoryFile(fs, '/afile', b'bb'),
+ '/dir/dirb/bfile': MemoryFile(fs, '/afile', b'ccc'),
+ }
+ assert fs.du('/dir') == 6
+ assert fs.du('/dir', total=False)['/dir/dirb/afile'] == 2
+ assert fs.du('/dir', maxdepth=0) == 1
+
+
+def test_head_tail():
+ fs = MemoryFileSystem()
+ with fs.open('/myfile', 'wb') as f:
+ f.write(b'I had a nice big cabbage')
+ assert fs.head('/myfile', 5) == b'I had'
+ assert fs.tail('/myfile', 7) == b'cabbage'
+
+
+def test_move():
+ fs = MemoryFileSystem()
+ with fs.open('/myfile', 'wb') as f:
+ f.write(b'I had a nice big cabbage')
+ fs.move('/myfile', '/otherfile')
+ assert not fs.exists('/myfile')
+ assert fs.info('/otherfile')
+ assert isinstance(fs.ukey('/otherfile'), str)
+
+
+def test_read_block_delimiter():
+ fs = MemoryFileSystem()
+ with fs.open('/myfile', 'wb') as f:
+ f.write(b'some\n'
+ b'lines\n'
+ b'of\n'
+ b'text')
+ assert fs.read_block('/myfile', 0, 2, b'\n') == b'some\n'
+ assert fs.read_block('/myfile', 2, 6, b'\n') == b'lines\n'
+ assert fs.read_block('/myfile', 6, 2, b'\n') == b''
+ assert fs.read_block('/myfile', 2, 9, b'\n') == b'lines\nof\n'
+ assert fs.read_block('/myfile', 12, 6, b'\n') == b'text'
+ assert fs.read_block('/myfile', 0, None) == fs.cat('/myfile')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/tests/test_file.py new/filesystem_spec-0.3.6/fsspec/tests/test_file.py
--- old/filesystem_spec-0.3.3/fsspec/tests/test_file.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/tests/test_file.py 2019-07-25 16:18:34.000000000 +0200
@@ -73,6 +73,8 @@
f2 = ftp.open('/out2', 'rb')
assert hash(f2) != hash(f)
assert f != f2
+ f2 = ftp.open('/out', 'wb')
+ assert hash(f2) != hash(f)
def test_file_text_attributes(ftp_writable):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filesystem_spec-0.3.3/fsspec/tests/test_fuse.py new/filesystem_spec-0.3.6/fsspec/tests/test_fuse.py
--- old/filesystem_spec-0.3.3/fsspec/tests/test_fuse.py 2019-07-18 14:27:46.000000000 +0200
+++ new/filesystem_spec-0.3.6/fsspec/tests/test_fuse.py 2019-07-25 16:18:34.000000000 +0200
@@ -10,7 +10,7 @@
tmpdir = str(tmpdir)
fs = MemoryFileSystem()
fs.touch('/mounted/testfile')
- run(fs, '/mounted/', tmpdir, False)
+ th = run(fs, '/mounted/', tmpdir, False)
timeout = 10
while True:
try:
@@ -22,6 +22,7 @@
timeout -= 1
time.sleep(1)
assert timeout > 0, "Timeout"
+
fn = os.path.join(tmpdir, 'test')
with open(fn, 'wb') as f:
f.write(b'data')
@@ -41,3 +42,11 @@
os.rmdir(fn + '/inner')
os.rmdir(fn)
assert not fs.pseudo_dirs
+
+ # should not normally kill a thread like this, but FUSE blocks, so we
+ # cannot have thread listen for event. Alternative may be to .join() but
+ # send a SIGINT
+ th._tstate_lock.release()
+ th._stop()
+ th.join()
+ fs.store.clear()
1
0