openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2017
- 1 participants
- 679 discussions
Hello community,
here is the log from the commit of package rubygem-ruby_parser for openSUSE:Factory checked in at 2017-01-17 14:37:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-ruby_parser (Old)
and /work/SRC/openSUSE:Factory/.rubygem-ruby_parser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-ruby_parser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-ruby_parser/rubygem-ruby_parser.changes 2016-10-18 10:40:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-ruby_parser.new/rubygem-ruby_parser.changes 2017-01-17 14:37:24.756516603 +0100
@@ -1,0 +2,6 @@
+Sat Jan 14 05:37:47 UTC 2017 - coolo(a)suse.com
+
+- updated to version 3.8.4
+ History.txt removed upstream
+
+-------------------------------------------------------------------
Old:
----
ruby_parser-3.8.3.gem
New:
----
ruby_parser-3.8.4.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-ruby_parser.spec ++++++
--- /var/tmp/diff_new_pack.3fwUZz/_old 2017-01-17 14:37:25.312437795 +0100
+++ /var/tmp/diff_new_pack.3fwUZz/_new 2017-01-17 14:37:25.312437795 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-ruby_parser
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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
@@ -24,7 +24,7 @@
#
Name: rubygem-ruby_parser
-Version: 3.8.3
+Version: 3.8.4
Release: 0
%define mod_name ruby_parser
%define mod_full_name %{mod_name}-%{version}
@@ -71,7 +71,7 @@
%install
%gem_install \
--symlink-binaries \
- --doc-files="History.txt README.txt" \
+ --doc-files="History.rdoc README.rdoc" \
-f
# MANUAL
perl -p -i -e 's|#!\S+|#!/usr/bin/ruby|g' %{buildroot}%{_libdir}/*/gems/*/gems/%{mod_full_name}/test/*
++++++ ruby_parser-3.8.3.gem -> ruby_parser-3.8.4.gem ++++++
++++ 25002 lines of diff (skipped)
1
0
17 Jan '17
Hello community,
here is the log from the commit of package rubygem-faraday_middleware for openSUSE:Factory checked in at 2017-01-17 14:37:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-faraday_middleware (Old)
and /work/SRC/openSUSE:Factory/.rubygem-faraday_middleware.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-faraday_middleware"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-faraday_middleware/rubygem-faraday_middleware.changes 2016-12-11 13:27:19.435689640 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-faraday_middleware.new/rubygem-faraday_middleware.changes 2017-01-17 14:37:16.485689083 +0100
@@ -1,0 +2,6 @@
+Sun Jan 15 05:31:54 UTC 2017 - coolo(a)suse.com
+
+- updated to version 0.11.0
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
faraday_middleware-0.10.1.gem
New:
----
faraday_middleware-0.11.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-faraday_middleware.spec ++++++
--- /var/tmp/diff_new_pack.oBDaLC/_old 2017-01-17 14:37:16.953622748 +0100
+++ /var/tmp/diff_new_pack.oBDaLC/_new 2017-01-17 14:37:16.953622748 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-faraday_middleware
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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
@@ -24,7 +24,7 @@
#
Name: rubygem-faraday_middleware
-Version: 0.10.1
+Version: 0.11.0
Release: 0
%define mod_name faraday_middleware
%define mod_full_name %{mod_name}-%{version}
++++++ faraday_middleware-0.10.1.gem -> faraday_middleware-0.11.0.gem ++++++
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/faraday_middleware/gzip.rb new/lib/faraday_middleware/gzip.rb
--- old/lib/faraday_middleware/gzip.rb 2016-11-11 13:04:59.000000000 +0100
+++ new/lib/faraday_middleware/gzip.rb 2017-01-14 12:39:13.000000000 +0100
@@ -48,7 +48,17 @@
end
def inflate(body)
+ # Inflate as a DEFLATE (RFC 1950+RFC 1951) stream
Zlib::Inflate.inflate(body)
+ rescue Zlib::DataError
+ # Fall back to inflating as a "raw" deflate stream which
+ # Microsoft servers return
+ inflate = Zlib::Inflate.new(-Zlib::MAX_WBITS)
+ begin
+ inflate.inflate(body)
+ ensure
+ inflate.close
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/faraday_middleware/request/encode_json.rb new/lib/faraday_middleware/request/encode_json.rb
--- old/lib/faraday_middleware/request/encode_json.rb 2016-11-11 13:04:59.000000000 +0100
+++ new/lib/faraday_middleware/request/encode_json.rb 2017-01-14 12:39:13.000000000 +0100
@@ -9,8 +9,9 @@
#
# Doesn't try to encode bodies that already are in string form.
class EncodeJson < Faraday::Middleware
- CONTENT_TYPE = 'Content-Type'.freeze
- MIME_TYPE = 'application/json'.freeze
+ CONTENT_TYPE = 'Content-Type'.freeze
+ MIME_TYPE = 'application/json'.freeze
+ MIME_TYPE_REGEX = /^application\/(vnd\..+\+)?json$/
dependency do
require 'json' unless defined?(::JSON)
@@ -36,7 +37,7 @@
def process_request?(env)
type = request_type(env)
- has_body?(env) and (type.empty? or type == MIME_TYPE)
+ has_body?(env) and (type.empty? or MIME_TYPE_REGEX =~ type)
end
def has_body?(env)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/faraday_middleware/request/oauth2.rb new/lib/faraday_middleware/request/oauth2.rb
--- old/lib/faraday_middleware/request/oauth2.rb 2016-11-11 13:04:59.000000000 +0100
+++ new/lib/faraday_middleware/request/oauth2.rb 2017-01-14 12:39:13.000000000 +0100
@@ -4,10 +4,11 @@
module FaradayMiddleware
# Public: A simple middleware that adds an access token to each request.
#
- # The token is added as both "access_token" query parameter and the
- # "Authorization" HTTP request header. However, an explicit "access_token"
- # parameter or "Authorization" header for the current request are not
- # overriden.
+ # By default, the token is added as both "access_token" query parameter and the
+ # "Authorization" HTTP request header. It can alternatively be added exclusively
+ # as a bearer token "Authorization" header by specifying a "token_type" option
+ # of "bearer". However, an explicit "access_token" parameter or "Authorization"
+ # header for the current request are not overriden.
#
# Examples
#
@@ -17,14 +18,18 @@
# # configure query parameter name:
# OAuth2.new(app, 'abc123', :param_name => 'my_oauth_token')
#
+ # # use bearer token authorization header only
+ # OAuth2.new(app, 'abc123', :token_type => 'bearer')
+ #
# # default token value is optional:
# OAuth2.new(app, :param_name => 'my_oauth_token')
class OAuth2 < Faraday::Middleware
PARAM_NAME = 'access_token'.freeze
+ TOKEN_TYPE = 'param'.freeze
AUTH_HEADER = 'Authorization'.freeze
- attr_reader :param_name
+ attr_reader :param_name, :token_type
extend Forwardable
def_delegators :'Faraday::Utils', :parse_query, :build_query
@@ -34,8 +39,13 @@
token = params[param_name]
if token.respond_to?(:empty?) && !token.empty?
- env[:url].query = build_query params
- env[:request_headers][AUTH_HEADER] ||= %(Token token="#{token}")
+ case @token_type.downcase
+ when 'param'
+ env[:url].query = build_query params
+ env[:request_headers][AUTH_HEADER] ||= %(Token token="#{token}")
+ when 'bearer'
+ env[:request_headers][AUTH_HEADER] ||= %(Bearer #{token})
+ end
end
@app.call env
@@ -46,7 +56,19 @@
options, token = token, nil if token.is_a? Hash
@token = token && token.to_s
@param_name = options.fetch(:param_name, PARAM_NAME).to_s
- raise ArgumentError, ":param_name can't be blank" if @param_name.empty?
+ @token_type = options.fetch(:token_type, TOKEN_TYPE).to_s
+
+ if @token_type == 'param' && @param_name.empty?
+ raise ArgumentError, ":param_name can't be blank"
+ end
+
+ if options[:token_type].nil?
+ warn "\nWarning: FaradayMiddleware::OAuth2 initialized with default "\
+ "token_type - token will be added as both a query string parameter "\
+ "and an Authorization header. In the next major release, tokens will "\
+ "be added exclusively as an Authorization header by default. Please "\
+ "visit https://github.com/lostisland/faraday_middleware/wiki for more information."
+ end
end
def query_params(url)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/faraday_middleware/response/caching.rb new/lib/faraday_middleware/response/caching.rb
--- old/lib/faraday_middleware/response/caching.rb 2016-11-11 13:04:59.000000000 +0100
+++ new/lib/faraday_middleware/response/caching.rb 2017-01-14 12:39:13.000000000 +0100
@@ -79,11 +79,11 @@
finalize_response(cached_response, env)
else
# response.status is nil at this point, any checks need to be done inside on_complete block
- @app.call(env).on_complete do |response|
- if CACHEABLE_STATUS_CODES.include?(response.status)
- cache.write(key, response)
+ @app.call(env).on_complete do |response_env|
+ if CACHEABLE_STATUS_CODES.include?(response_env.status)
+ cache.write(key, response_env.response)
end
- response
+ response_env
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/faraday_middleware/response/follow_redirects.rb new/lib/faraday_middleware/response/follow_redirects.rb
--- old/lib/faraday_middleware/response/follow_redirects.rb 2016-11-11 13:04:59.000000000 +0100
+++ new/lib/faraday_middleware/response/follow_redirects.rb 2017-01-14 12:39:13.000000000 +0100
@@ -12,7 +12,7 @@
end
end
- # Public: Follow HTTP 301, 302, 303, and 307 redirects.
+ # Public: Follow HTTP 301, 302, 303, 307, and 308 redirects.
#
# For HTTP 301, 302, and 303, the original GET, POST, PUT, DELETE, or PATCH
# request gets converted into a GET. With `:standards_compliant => true`,
@@ -34,7 +34,7 @@
# HTTP methods for which 30x redirects can be followed
ALLOWED_METHODS = Set.new [:head, :options, :get, :post, :put, :patch, :delete]
# HTTP redirect status codes that this middleware implements
- REDIRECT_CODES = Set.new [301, 302, 303, 307]
+ REDIRECT_CODES = Set.new [301, 302, 303, 307, 308]
# Keys in env hash which will get cleared between requests
ENV_TO_CLEAR = Set.new [:status, :response, :response_headers]
@@ -52,6 +52,8 @@
# :standards_compliant - A Boolean indicating whether to respect
# the HTTP spec when following 301/302
# (default: false)
+ # :callback - A callable that will be called on redirects
+ # with the old and new envs
def initialize(app, options = {})
super(app)
@options = options
@@ -78,7 +80,8 @@
response.on_complete do |response_env|
if follow_redirect?(response_env, response)
raise RedirectLimitReached, response if follows.zero?
- new_request_env = update_env(response_env, request_body, response)
+ new_request_env = update_env(response_env.dup, request_body, response)
+ callback.call(response_env, new_request_env) if callback
response = perform_with_redirection(new_request_env, follows - 1)
end
end
@@ -113,11 +116,16 @@
@options.fetch(:standards_compliant, false)
end
+ def callback
+ @options[:callback]
+ end
+
# Internal: escapes unsafe characters from an URL which might be a path
# component only or a fully qualified URI so that it can be joined onto an
# URI:HTTP using the `+` operator. Doesn't escape "%" characters so to not
# risk double-escaping.
def safe_escape(uri)
+ uri = uri.split('#')[0] # we want to remove the fragment if present
uri.to_s.gsub(URI_UNSAFE) { |match|
'%' + match.unpack('H2' * match.bytesize).join('%').upcase
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/faraday_middleware/response_middleware.rb new/lib/faraday_middleware/response_middleware.rb
--- old/lib/faraday_middleware/response_middleware.rb 2016-11-11 13:04:59.000000000 +0100
+++ new/lib/faraday_middleware/response_middleware.rb 2017-01-14 12:39:13.000000000 +0100
@@ -37,6 +37,8 @@
def process_response(env)
env[:raw_body] = env[:body] if preserve_raw?(env)
env[:body] = parse(env[:body])
+ rescue Faraday::Error::ParsingError => err
+ raise Faraday::Error::ParsingError.new(err, env[:response])
end
# Parse the response body.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/faraday_middleware/version.rb new/lib/faraday_middleware/version.rb
--- old/lib/faraday_middleware/version.rb 2016-11-11 13:04:59.000000000 +0100
+++ new/lib/faraday_middleware/version.rb 2017-01-14 12:39:13.000000000 +0100
@@ -1,3 +1,3 @@
module FaradayMiddleware
- VERSION = "0.10.1" unless defined?(FaradayMiddleware::VERSION)
+ VERSION = "0.11.0" unless defined?(FaradayMiddleware::VERSION)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-11-11 13:04:59.000000000 +0100
+++ new/metadata 2017-01-14 12:39:13.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: faraday_middleware
version: !ruby/object:Gem::Version
- version: 0.10.1
+ version: 0.11.0
platform: ruby
authors:
- Erik Michaels-Ober
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2016-11-11 00:00:00.000000000 Z
+date: 2017-01-14 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: faraday
1
0
Hello community,
here is the log from the commit of package xf86-video-amdgpu for openSUSE:Factory checked in at 2017-01-17 14:37:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-amdgpu (Old)
and /work/SRC/openSUSE:Factory/.xf86-video-amdgpu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-amdgpu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-amdgpu/xf86-video-amdgpu.changes 2016-11-24 21:25:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xf86-video-amdgpu.new/xf86-video-amdgpu.changes 2017-01-17 14:37:09.778639882 +0100
@@ -1,0 +2,5 @@
+Mon Jan 16 13:04:21 UTC 2017 - sndirsch(a)suse.com
+
+- introduced hardware supplements (bnc#1020075)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-video-amdgpu.spec ++++++
--- /var/tmp/diff_new_pack.GLoxB6/_old 2017-01-17 14:37:10.202579784 +0100
+++ /var/tmp/diff_new_pack.GLoxB6/_new 2017-01-17 14:37:10.206579217 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xf86-video-amdgpu
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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
@@ -51,7 +51,7 @@
BuildRequires: pkgconfig(xorg-macros) >= 1.8
BuildRequires: pkgconfig(xorg-server) >= 1.16
BuildRequires: pkgconfig(xproto)
-Supplements: xorg-x11-server
+Supplements: modalias(xorg-x11-server:pci:v00001002d*sv*sd*bc03sc*i*)
# This was part of the xorg-x11-driver-video package up to version 7.6
Conflicts: xorg-x11-driver-video <= 7.6
BuildRoot: %{_tmppath}/%{name}-%{version}-build
1
0
Hello community,
here is the log from the commit of package weechat for openSUSE:Factory checked in at 2017-01-17 14:37:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/weechat (Old)
and /work/SRC/openSUSE:Factory/.weechat.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "weechat"
Changes:
--------
--- /work/SRC/openSUSE:Factory/weechat/weechat.changes 2016-10-04 15:59:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.weechat.new/weechat.changes 2017-01-17 14:37:02.443679697 +0100
@@ -1,0 +2,46 @@
+Sun Jan 15 08:49:46 UTC 2017 - mimi.vx(a)gmail.com
+
+- Update to version 1.7
+ * New features
+ + core: add option weechat.look.align_multiline_words
+ + core: add optional command prefix in completion templates "commands",
+ "plugins_commands" and "weechat_commands"
+ + core: add optional arguments in completion template, sent to the callback
+ + core: add option "time" in command /debug
+ + api: add info "uptime" (WeeChat uptime)
+ + api: add info "pid" (WeeChat PID)
+ + fifo: add file fifo.conf and option fifo.file.path to customize
+ FIFO pipe path/filename
+ + irc: add server option "usermode"
+ + irc: add tag "self_msg" on self messages
+ * Improvements
+ + core, xfer: display more information on fork errors
+ + core: add a slash before commands completed in arguments of /command,
+ /debug time, /key bind, /key bindctxt, /mute, /repeat, /wait
+ + core: add a warning in header of configuration files to not edit by hand
+ + alias: add a slash before commands completed in arguments of /alias
+ + exec: add option "-oc" in command /exec to execute commands in process
+ output, don’t execute commands by default with "-o"
+ + irc: evaluate content of server option "ssl_fingerprint"
+ + irc: change default value of option irc.network.lag_reconnect from 0 to 300
+ + trigger: do not hide email in command "/msg nickserv register password email"
+ * Bug fixes
+ + core: fix deadlock when quitting after a signal SIGHUP/SIGQUIT/SIGTERM
+ is received
+ + core: fix display of empty lines in search mode
+ + api: fix crash in function string_expand_home() when the HOME environment
+ variable is not set
+ + exec: fix memory leak in display of process output
+ + irc: fix option "-temp" in command /server
+ + irc: fix close of server channels which are waiting for the JOIN when
+ the server buffer is closed
+ + irc: fix buffer switching on manual join for forwarded channels
+ + irc: add missing tags on CTCP message sent
+ + lua: fix integers returned in Lua >= 5.3
+ + relay: make HTTP headers case-insensitive for WebSocket connections
+ + relay: set status to "authentication failed" and close immediately
+ connection in case of authentication failure in weechat and irc protocols
+ + script: reload a script after upgrade only if it was loaded, set autoload
+ only if the script was auto-loaded
+
+-------------------------------------------------------------------
Old:
----
weechat-1.6.tar.bz2
weechat-1.6.tar.bz2.asc
New:
----
weechat-1.7.tar.xz
weechat-1.7.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ weechat.spec ++++++
--- /var/tmp/diff_new_pack.nN77O7/_old 2017-01-17 14:37:03.087588416 +0100
+++ /var/tmp/diff_new_pack.nN77O7/_new 2017-01-17 14:37:03.087588416 +0100
@@ -17,16 +17,16 @@
Name: weechat
-Version: 1.6
+Version: 1.7
Release: 0
Summary: Portable, Fast, Light and Extensible Chat Client
License: GPL-3.0+
Group: Productivity/Networking/IRC
Url: http://weechat.org
-Source: http://weechat.org/files/src/%{name}-%{version}.tar.bz2
+Source: http://weechat.org/files/src/%{name}-%{version}.tar.xz
Source1: weechat.desktop
Source2: %{name}.keyring
-Source3: http://weechat.org/files/src/%{name}-%{version}.tar.bz2.asc
+Source3: http://weechat.org/files/src/%{name}-%{version}.tar.xz.asc
Source4: %{name}.changes
BuildRequires: ca-certificates
BuildRequires: cmake
1
0
Hello community,
here is the log from the commit of package qdirstat for openSUSE:Factory checked in at 2017-01-17 14:36:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qdirstat (Old)
and /work/SRC/openSUSE:Factory/.qdirstat.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qdirstat"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qdirstat/qdirstat.changes 2016-11-28 15:04:41.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qdirstat.new/qdirstat.changes 2017-01-17 14:36:55.356684362 +0100
@@ -1,0 +2,5 @@
+Mon Jan 9 13:49:25 CET 2017 - shundhammer(a)suse.de
+
+- Update to V1.2 (Improved Btrfs subvolume support)
+
+-------------------------------------------------------------------
Old:
----
qdirstat-1.1.tar.bz2
New:
----
qdirstat-1.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qdirstat.spec ++++++
--- /var/tmp/diff_new_pack.muDQEw/_old 2017-01-17 14:36:55.744629366 +0100
+++ /var/tmp/diff_new_pack.muDQEw/_new 2017-01-17 14:36:55.744629366 +0100
@@ -1,7 +1,7 @@
#
# spec file for package qdirstat
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016-2017 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: qdirstat
-Version: 1.1
+Version: 1.2
Release: 0
Summary: Directory Statistics
License: GPL-2.0
++++++ qdirstat-1.1.tar.bz2 -> qdirstat-1.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/.gitignore new/qdirstat-1.2/.gitignore
--- old/qdirstat-1.1/.gitignore 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/.gitignore 2017-01-03 14:47:15.000000000 +0100
@@ -1 +1,2 @@
Makefile
+.qmake.stash
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/DevHistory.md new/qdirstat-1.2/DevHistory.md
--- old/qdirstat-1.1/DevHistory.md 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/DevHistory.md 2017-01-03 14:47:15.000000000 +0100
@@ -11,6 +11,181 @@
## QDirStat History
+- 2016-12-06 **Warning to Btrfs users** (Fixed as of 2012-12-09)
+
+ If you use QDirStat to scan a Btrfs partition,
+ [any subvolumes of that partition are not scanned](https://github.com/shundhammer/qdirstat/issues/39):
+ Btrfs subvolumes are treated just like ordinary
+ mount points (which, to all intents and purposes, they are). So you might
+ wonder why the _df_ command shows your 40 GB root filesystem as 97% full, yet
+ QDirStat shows only about 7 GB. The rest might be hidden in subvolumes.
+
+ QDirStat stops reading at mount points - which only makes sense because
+ normally you want to know what eats up the disk space on that one partition
+ that is filling up, not on any others like /home that are mounted
+ there. Unfortunately, a Btrfs subvolume is also just another mount point, and
+ QDirStat will stop reading there, too - at /var/log, at /var/spool, at
+ /var/lib/libvirt etc.; a typical Btrfs root filesystem has about a dozen
+ subvolumes, and all files in them are currently disregarded by QDirStat. You
+ can of course click on "Continue reading at mount point" individually in
+ QDirStat's directory tree for each one of them, but that's tedious.
+
+ I am working on a solution. One approach would be to check if the current
+ filesystem is Btrfs and list its subvolumes, but the Btrfs developers in
+ their infinite wisdom decided that `btrfs subvolume list <path>` is a
+ privileged operation, so QDirStat would have to use `sudo` with it and prompt
+ for the root password (at which point I as a user would terminate the program
+ and not use it any more). **This is broken by design.** A simple info command
+ like that should not require root privileges.
+
+
+- 2016-10-31 (Halloween) **New stable release: V1.1-Pumpkin**
+
+ It's about time for another official release to get the accumulated fixes and
+ small changes out into the world. Since today is Halloween, this release
+ shall be named _Pumpkin_ (as in the unforgettable Charlie Brown's _Great
+ Pumpkin_).
+
+ The last stable release, V1.0, was in mid-May (2016-05-16). Since then, there
+ were 5 bug fixes and one small feature (the config file split up into
+ independent parts so admins can provide presets to their users without
+ overwriting the complete configuration), all described in greater detail
+ below.
+
+
+- 2016-10-23
+
+ - Fixed [GitHub issue #32](https://github.com/shundhammer/qdirstat/issues/32):
+ %p does not escape single quotes properly
+
+ If you have a file name like `Don't do this.txt` (with a quote character in
+ the name), the shell used when executing a cleanup action with this would
+ complain about unmatched single quotes.
+
+ QDirStat had always escaped such single quotes, but not the way common
+ shells (Bash, Zsh) expect it: They don't want a backslash in front of that
+ embedded single quote. Rather, you need to terminate the string with a
+ single quote, escape the embedded quote with a backslash (or put it into
+ double quotes), and then re-open the old string with another single quote.
+
+ Thus, `'Don't do this'` becomes `'Don'\''t do this'`.
+
+ This is certainly not what most people expect. I just wonder how much other
+ software is out there that does it the intuitive (yet wrong) way: Just
+ escape the single quote with a backslash (`'Don\'t do this'`).
+
+ Of course, such file names should be avoided entirely, but you can't help
+ some slightly broken MP3 ripper program doing it, so it needs to be handled
+ correctly.
+
+ - Fixed [GitHub issue #31](https://github.com/shundhammer/qdirstat/issues/31):
+ Segfault with cleanup action while reading directories
+
+ Now disabling cleanups that have a refresh policy other than "No Refresh"
+ while directory reading is in progress; otherwise the re-read when the
+ cleanup action has finished clashes with the directory read already in
+ progress.
+
+ This is not an optimal solution, but a very pragmatic one; the optimal
+ solution might queue updates and execute them after the main read is done.
+
+ - Fixed [GitHub issue #33](https://github.com/shundhammer/qdirstat/issues/33):
+ Added command line option `--slow-update` (or `-s`) for slow remote X connections.
+
+
+- 2016-08-12
+
+ - Fixed [GitHub issue #23](https://github.com/shundhammer/qdirstat/issues/23):
+
+ The internal cache writer would sometimes generate incorrect cache files
+ because of buggy URL escaping resulting in an empty file name and thus
+ invalid cache file syntax. This affected file names with colons (which is
+ weird, but legal).
+
+ One of these days I'm going to throw out all that QUrl stuff and replace the
+ few things that I need with something that actually works consistently and
+ not just under optimum conditions.
+
+
+- 2016-08-10
+
+ - Fixed [GitHub issue #22](https://github.com/shundhammer/qdirstat/issues/22):
+
+ Cache files containing the root file system would not display correctly or
+ segfault under certain conditions. This is now fixed.
+
+ - Added "Refresh All" action to the main window tool bar. I had consciously
+ avoided that because it's just too tempting to re-read the complete
+ directory tree rather than think about what actually might have changed and
+ then refresh just that, but it has become so common to use that action in
+ web browsers that I found myself missing that more and more. And re-reading
+ is not that expensive on today's mainstream PCs.
+
+
+- 2016-07-02
+
+ - Fixed [GitHub issue #21](https://github.com/shundhammer/qdirstat/issues/21):
+
+ When started from a desktop menu, i.e. without any command line parameters,
+ QDirStat would not prompt for a directory to read, but read the current
+ directory (typically the user's home directory) right away.
+
+ - More graceful handling for nonexisting paths specified on the commmand
+ line: It now no longer just throws an exception right after starting the
+ program (which looks like a crash to the unwary user), but posts an error
+ popup instead and then asks for a directory to read.
+
+
+- 2016-06-29
+
+ - V1.01 (Development version)
+
+ - Split up config file into four separate ones below ~/.config/QDirStat:
+
+ - QDirStat.conf
+ - QDirStat-cleanup.conf
+ - QDirStat-exclude.conf
+ - QDirStat-mime.conf
+
+ This should make it much easier for site administrators to provide their
+ own site-wide cleanup actions, exclude rules, or MIME categories. I did
+ this with this in mind:
+
+ http://moo.nac.uci.edu/~hjm/kdirstat/kdirstat-for-clusters.html
+
+ Here, they describe how users should overwrite their KDirStat config file
+ with one provided by the site admin so all users have those carefully
+ crafted cleanup actions. But that also means that all other settings get
+ lost each time there is a change in any of those commands, and users have
+ to update that config file again.
+
+ With the latest change, it is now possible to only replace the cleanup
+ action config (QDirStat-cleanup.conf) and leave everything else untouched.
+
+ Notice that this is far from a perfect solution; all cleanup actions the
+ user added himself still get lost. But doing this perfectly might pretty
+ quickly become an overengineered solution that would be hard to understand
+ for everybody.
+
+ As for migration from previous single-file configurations, QDirStat does
+ that automatically: It reads the single file and moves the respective parts
+ where they belong. No need to bother with any migration scrips or anything
+ like that.
+
+
+- 2016-05-16 **First stable release: V1.0**
+
+ After 3 months of Beta phase and 3 Beta releases, here is finally the
+ official first stable release of QDirStat: Version 1.0.
+
+ In terms of source code, there were very little changes from the last Beta
+ (0.98-Beta3 from 2016-04-08) and no real code change (only the version number
+ increased) from the last check-in from 2016-04-11. This version can really be
+ considered stable in the truest sense of the word. It was not rushed out the
+ door, and there were no hectic last minute changes. It is well tested, and
+ the community had ample opportunity to report any problems.
+
+
- 2016-04-11
- _buxit_ reported
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/README.md new/qdirstat-1.2/README.md
--- old/qdirstat-1.1/README.md 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/README.md 2017-01-03 14:47:15.000000000 +0100
@@ -9,7 +9,7 @@
License: GPL V2
-Updated: 2016-10-31
+Updated: 2017-01-03
## Overview
@@ -76,152 +76,93 @@
## Current Development Status
-**Latest stable release: V1.1**
+**Latest stable release: V1.2**
-- 2016-10-31 (Halloween) **New stable release: V1.1-Pumpkin**
+- 2017-01-03 **New stable release: V1.2**
- It's about time for another official release to get the accumulated fixes and
- small changes out into the world. Since today is Halloween, this release
- shall be named _Pumpkin_ (as in the unforgettable Charlie Brown's _Great
- Pumpkin_).
+ _Upgrading to this release is highly recommended for Btrfs users:_
- The last stable release, V1.0, was in mid-May (2016-05-16). Since then, there
- were 5 bug fixes and one small feature (the config file split up into
- independent parts so admins can provide presets to their users without
- overwriting the complete configuration), all described in greater detail
- below.
+ If you used QDirStat to scan a Btrfs partition, any subvolumes of that
+ partition were not scanned (see
+ [GitHub issue #39](https://github.com/shundhammer/qdirstat/issues/39)).
-- 2016-10-23
+ Btrfs subvolumes were treated just like ordinary mount points (which, to all
+ intents and purposes, they are). So you might have wondered why the _df_
+ command shows your 40 GB root filesystem as 97% full, yet QDirStat shows only
+ about 7 GB. The rest might be hidden in subvolumes.
- - Fixed [GitHub issue #32](https://github.com/shundhammer/qdirstat/issues/32):
- %p does not escape single quotes properly
+ QDirStat stops reading at mount points - which only makes sense because
+ normally you want to know what eats up the disk space on that one partition
+ that is filling up, not on any others like /home that are mounted
+ there. Unfortunately, a Btrfs subvolume is also just another mount point, and
+ QDirStat would stop reading there, too - at /var/log, at /var/spool, at
+ /var/lib/libvirt etc.; a typical Btrfs root filesystem has about a dozen
+ subvolumes, and all files in them were disregarded by QDirStat.
- If you have a file name like `Don't do this.txt` (with a quote character in
- the name), the shell used when executing a cleanup action with this would
- complain about unmatched single quotes.
+ This is now fixed: Despite Btrfs doing its best to make this difficult (using
+ one single privileged system call for all its functionality, including simple
+ info calls), QDirStat now detects if a mount point is a Btrfs subvolume and
+ continues reading if it is. QDirStat uses /proc/mounts (or, if this is not
+ available, /etc/mtab) to find this out.
- QDirStat had always escaped such single quotes, but not the way common
- shells (Bash, Zsh) expect it: They don't want a backslash in front of that
- embedded single quote. Rather, you need to terminate the string with a
- single quote, escape the embedded quote with a backslash (or put it into
- double quotes), and then re-open the old string with another single quote.
+ This is fixed in the _qdirstat-cache-writer_ script, too.
- Thus, `'Don't do this'` becomes `'Don'\''t do this'`.
- This is certainly not what most people expect. I just wonder how much other
- software is out there that does it the intuitive (yet wrong) way: Just
- escape the single quote with a backslash (`'Don\'t do this'`).
+- 2016-12-11 Bernhard Walle contributed some patches for MacOS X support.
+ Thanks, Bernhard!
- Of course, such file names should be avoided entirely, but you can't help
- some slightly broken MP3 ripper program doing it, so it needs to be handled
- correctly.
+- 2016-12-09 Fixed Perl (_qdirstat-cache-writer_) part of
+ [GitHub issue #39](https://github.com/shundhammer/qdirstat/issues/39):
+ QDirStat doesn't scan Btrfs subvolumes
- - Fixed [GitHub issue #31](https://github.com/shundhammer/qdirstat/issues/31):
- Segfault with cleanup action while reading directories
+ The _qdirstat-cache-writer_ script now also checks the device names of a
+ mount point and its parent directory, not only their major/minor device
+ numbers; so now it will not stop at Btrfs subvolumes while scanning.
- Now disabling cleanups that have a refresh policy other than "No Refresh"
- while directory reading is in progress; otherwise the re-read when the
- cleanup action has finished clashes with the directory read already in
- progress.
+ That script uses a more simplistic approach than QDirStat itself: It invokes
+ the _df_ command with that path and parses its output. If the path contains
+ very weird special characters, this may fail, in which case that directory
+ (which at that point is already known to have a different device major/minor
+ number than its parent) is considered a filesystem boundary, and that branch
+ is not scanned.
- This is not an optimal solution, but a very pragmatic one; the optimal
- solution might queue updates and execute them after the main read is done.
- - Fixed [GitHub issue #33](https://github.com/shundhammer/qdirstat/issues/33):
- Added command line option `--slow-update` (or `-s`) for slow remote X connections.
+- 2016-12-08 Fixed C++ (QDirStat binary) part of
+ [GitHub issue #39](https://github.com/shundhammer/qdirstat/issues/39):
+ QDirStat doesn't scan Btrfs subvolumes
+ This was a bit of a challenge since the relevant Btrfs commands to obtain any
+ useful information about subvolumes all require root privileges, and I really
+ wouldn't want to scare users off by prompting for a _sudo_ password. QDirStat
+ now fetches the information from /proc/mounts (or /etc/mtab if /proc/mounts
+ is unavailable) and does some heuristics (which are not completely fool
+ proof) to check if a potential mount point is still on the same device. That
+ means that it will no longer treat a Btrfs subvolume as an ordinary mount
+ point where it stops reading by default, but it just continues. On the other
+ hand, another Btrfs mounted into the current file system is of course treated
+ as a normal mount point. See also the corresponding
+ [GitHub issue](https://github.com/shundhammer/qdirstat/issues/39)
+ for details.
-- 2016-08-12
+ The Perl _qdirstat-cache-writer_ still has the old behaviour, i.e. it still
+ stops at a subvolume mount point. This will be addressed next.
- - Fixed [GitHub issue #23](https://github.com/shundhammer/qdirstat/issues/23):
- The internal cache writer would sometimes generate incorrect cache files
- because of buggy URL escaping resulting in an empty file name and thus
- invalid cache file syntax. This affected file names with colons (which is
- weird, but legal).
+- 2016-12-07 Fixed [GitHub issue #40](https://github.com/shundhammer/qdirstat/issues/40):
+ Crash without useful error message when no display available
- One of these days I'm going to throw out all that QUrl stuff and replace the
- few things that I need with something that actually works consistently and
- not just under optimum conditions.
+ When ssh'ing without -X to a remote machine and starting QDirStat there, it
+ would just dump core and not issue any meaningful message. The fatal error
+ message was only in the log file:
+ `<ERROR> :0 (): QXcbConnection: Could not connect to display`
-- 2016-08-10
+ Now this message is also repeated on stderr, and in this particular case
+ ("Could not connect to display"), it does not dump core any more, but just
+ exits with error code 1.
- - Fixed [GitHub issue #22](https://github.com/shundhammer/qdirstat/issues/22):
- Cache files containing the root file system would not display correctly or
- segfault under certain conditions. This is now fixed.
-
- - Added "Refresh All" action to the main window tool bar. I had consciously
- avoided that because it's just too tempting to re-read the complete
- directory tree rather than think about what actually might have changed and
- then refresh just that, but it has become so common to use that action in
- web browsers that I found myself missing that more and more. And re-reading
- is not that expensive on today's mainstream PCs.
-
-
-- 2016-07-02
-
- - Fixed [GitHub issue #21](https://github.com/shundhammer/qdirstat/issues/21):
-
- When started from a desktop menu, i.e. without any command line parameters,
- QDirStat would not prompt for a directory to read, but read the current
- directory (typically the user's home directory) right away.
-
- - More graceful handling for nonexisting paths specified on the commmand
- line: It now no longer just throws an exception right after starting the
- program (which looks like a crash to the unwary user), but posts an error
- popup instead and then asks for a directory to read.
-
-
-- 2016-06-29
-
- - V1.01 (Development version)
-
- - Split up config file into four separate ones below ~/.config/QDirStat:
-
- - QDirStat.conf
- - QDirStat-cleanup.conf
- - QDirStat-exclude.conf
- - QDirStat-mime.conf
-
- This should make it much easier for site administrators to provide their
- own site-wide cleanup actions, exclude rules, or MIME categories. I did
- this with this in mind:
-
- http://moo.nac.uci.edu/~hjm/kdirstat/kdirstat-for-clusters.html
-
- Here, they describe how users should overwrite their KDirStat config file
- with one provided by the site admin so all users have those carefully
- crafted cleanup actions. But that also means that all other settings get
- lost each time there is a change in any of those commands, and users have
- to update that config file again.
-
- With the latest change, it is now possible to only replace the cleanup
- action config (QDirStat-cleanup.conf) and leave everything else untouched.
-
- Notice that this is far from a perfect solution; all cleanup actions the
- user added himself still get lost. But doing this perfectly might pretty
- quickly become an overengineered solution that would be hard to understand
- for everybody.
-
- As for migration from previous single-file configurations, QDirStat does
- that automatically: It reads the single file and moves the respective parts
- where they belong. No need to bother with any migration scrips or anything
- like that.
-
-
-- 2016-05-16 **First stable release: V1.0**
-
- After 3 months of Beta phase and 3 Beta releases, here is finally the
- official first stable release of QDirStat: Version 1.0.
-
- In terms of source code, there were very little changes from the last Beta
- (0.98-Beta3 from 2016-04-08) and no real code change (only the version number
- increased) from the last check-in from 2016-04-11. This version can really be
- considered stable in the truest sense of the word. It was not rushed out the
- door, and there were no hectic last minute changes. It is well tested, and
- the community had ample opportunity to report any problems.
+- 2016-10-31 (Halloween) New stable release: V1.1-Pumpkin
_See file DevHistory.md for older entries:_
@@ -389,6 +330,13 @@
- Configuration dialog for exclude rules -- see screenshots.
+- Subvolume detection for Btrfs. Btrfs subvolumes are just ordinary mount
+ points, so normally QDirStat would stop scanning there, leaving a large part
+ of a Btrfs partition unaccounted for. But for each mount point found while
+ scanning a directory tree, QDirStat checks /proc/mounts or /etc/mtab if it
+ has the same device name as its parent directory, and if yes, considers it a
+ subvolume and continues scanning.
+
- Actions to go one directory level higher or to the toplevel: Context menu and
menu "Go To" -> "Up One Level" or "Toplevel". This is useful if you clicked
on a file in the treemap that is deep down in some subdirectory, and you want
@@ -574,10 +522,11 @@
(Compared with the old KDirStat)
-- KPacman: That was that PacMan animation wile reading directory reading. This is
- gone now. KPacMan looked out of place pretty soon after it got to KDirStat. I
- know that it does have its fans, but unless a graphics designer joins the
- project who can do that right, this will not come back.
+- KPacman: That was that PacMan animation wile reading directory reading. This
+ is gone now. KPacMan looked out of place pretty soon after it got to KDirStat
+ due to Qt styles doing fancy rendering of widget backgrounds with gradients
+ etc. I know that it does have its fans, but it's unrealistic to get this
+ back without breaking the menu bar rendering.
- KioDirReadJob: Network-transparent directory reading for network protocols
like FTP, HTTP, Fish (ssh-based). This depended on KDE's KIO slaves, so this
@@ -664,12 +613,13 @@
QDirStat packages for:
- openSUSE Tumbleweed
+- openSUSE Leap 42.2
- openSUSE Leap 42.1
- openSUSE 13.2
- SUSE Linux Enterprise (SLE) 12 SP1
- SUSE Linux Enterprise (SLE) 12
-Download page for the [**latest stable release**: QDirStat 1.0]
+Download page for the [**latest stable release**: QDirStat 1.1]
(https://software.opensuse.org/download/package?project=home:shundhammer:qdi…)
Download page for the [**current development version** (git master)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/scripts/qdirstat-cache-writer new/qdirstat-1.2/scripts/qdirstat-cache-writer
--- old/qdirstat-1.1/scripts/qdirstat-cache-writer 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/scripts/qdirstat-cache-writer 2017-01-03 14:47:15.000000000 +0100
@@ -68,7 +68,8 @@
my $default_cache_file_name = ".qdirstat.cache.gz";
-my $toplevel_device = undef;
+my $toplevel_dev_no = undef;
+my $toplevel_dev_name = undef;
my $unsafe_chars = "\x00-\x20%";
@@ -297,7 +298,7 @@
return;
}
- my ( $dev,
+ my ( $dev_no,
$ino,
$mode,
$links,
@@ -312,28 +313,71 @@
$blocks ) = @lstat_result;
- if ( ! defined( $toplevel_device ) )
+ $dir =~ s://+:/:g; # Replace multiple // with one
+ my $escaped_dir = uri_escape( $dir, $unsafe_chars );
+
+ # Write cache file entry for this directory (even if it's a mount point)
+
+ print CACHE "D $escaped_dir";
+ print CACHE "\t$size";
+ printf CACHE "\t0x%x\n", $mtime;
+
+ if ( ! defined( $toplevel_dev_no ) )
{
- $toplevel_device = $dev;
+ $toplevel_dev_no = $dev_no;
+ $toplevel_dev_name = device_name( $dir );
+ print CACHE "# Device: $toplevel_dev_name\n\n";
}
- if ( $dev == $toplevel_device || $scan_mounted )
+ if ( $dev_no == $toplevel_dev_no || $scan_mounted )
{
- $dir = uri_escape( $dir, $unsafe_chars );
- $dir =~ s://+:/:g; # Replace multiple // with one
+ return 1;
+ }
- print CACHE "D $dir";
- print CACHE "\t$size";
- printf CACHE "\t0x%x\n", $mtime;
+ my $dev_name = device_name( $dir );
+ my $fs_boundary = $dev_name ne $toplevel_dev_name;
+ my $msg;
- return 1;
+ if ( $fs_boundary )
+ {
+ $msg = "File system boundary at mount point $dir on device $dev_name";
}
else
{
- my $msg = "Not crossing mount point $dir (use -m to override)";
- print CACHE "# $msg\n";
- logf( $msg );
+ $msg = "Mount point $dir is still on the same device $dev_name";
}
+
+ print CACHE "# $msg\n\n";
+ logf( $msg );
+
+ return ! $fs_boundary;
+}
+
+
+#-----------------------------------------------------------------------------
+
+
+# Get the device name where a directory is on from the 'df' command.
+#
+# Parameters:
+# $dir directory
+#
+# Return value:
+# device name ("/dev/sda3", "/dev/system/root")
+
+sub device_name()
+{
+ my ( $dir ) = @_;
+
+ my @df_output = `df "$dir" 2>/dev/null`;
+ return "<unknown>" if scalar @df_output < 1;
+
+ shift @df_output; # Remove header line
+ my ( $line ) = @df_output;
+ my ( $device_name ) = split( '\s+', $line );
+ deb( "Directory $dir is on device $device_name" );
+
+ return $device_name;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/Cleanup.cpp new/qdirstat-1.2/src/Cleanup.cpp
--- old/qdirstat-1.1/src/Cleanup.cpp 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/Cleanup.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -479,8 +479,13 @@
if ( apps.isEmpty() )
{
+#ifdef Q_OS_MAC
+ apps[ "%terminal" ] = "open -a Terminal.app .";
+ apps[ "%filemanager" ] = "open";
+#else
apps[ "%terminal" ] = "xterm";
apps[ "%filemanager" ] = "xdg-open";
+#endif
}
return apps;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/DirInfo.cpp new/qdirstat-1.2/src/DirInfo.cpp
--- old/qdirstat-1.1/src/DirInfo.cpp 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/DirInfo.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -676,3 +676,15 @@
}
}
}
+
+
+const DirInfo * DirInfo::findNearestMountPoint() const
+{
+ const DirInfo * dir = this;
+
+ while ( dir && ! dir->isMountPoint() )
+ dir = dir->parent();
+
+ return dir;
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/DirInfo.h new/qdirstat-1.2/src/DirInfo.h
--- old/qdirstat-1.1/src/DirInfo.h 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/DirInfo.h 2017-01-03 14:47:15.000000000 +0100
@@ -144,6 +144,12 @@
**/
virtual void setMountPoint( bool isMountPoint = true ) Q_DECL_OVERRIDE;
+ /**
+ * Find the nearest parent that is a mount point or 0 if there is
+ * none. This may return this DirInfo itself.
+ **/
+ const DirInfo * findNearestMountPoint() const;
+
/**
* Returns true if this subtree is finished reading.
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/DirReadJob.cpp new/qdirstat-1.2/src/DirReadJob.cpp
--- old/qdirstat-1.1/src/DirReadJob.cpp 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/DirReadJob.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -19,6 +19,7 @@
#include "DirReadJob.h"
#include "DirTreeCache.h"
#include "ExcludeRules.h"
+#include "MountPoints.h"
#include "Exception.h"
@@ -89,6 +90,54 @@
}
+bool DirReadJob::crossingFileSystems( DirInfo * parent, DirInfo * child )
+{
+ if ( parent->device() == child->device() )
+ return false;
+
+ QString childDevice = device( child );
+ QString parentDevice = device( parent->findNearestMountPoint() );;
+
+ if ( parentDevice.isEmpty() )
+ parentDevice = _tree->device();
+
+ bool crossing = true;
+
+ if ( ! parentDevice.isEmpty() && ! childDevice.isEmpty() )
+ crossing = parentDevice != childDevice;
+
+ if ( crossing )
+ {
+ logInfo() << "File system boundary at mount point " << child
+ << " on device " << ( childDevice.isEmpty() ? "<unknown>" : childDevice )
+ << endl;
+ }
+ else
+ {
+ logInfo() << "Mount point " << child
+ << " is still on the same device " << childDevice << endl;
+ }
+
+ return crossing;
+}
+
+
+QString DirReadJob::device( const DirInfo * dir ) const
+{
+ QString device;
+
+ if ( dir )
+ {
+ const MountPoint * mountPoint = MountPoints::findByPath( dir->url() );
+
+ if ( mountPoint )
+ device = mountPoint->device();
+ }
+
+ return device;
+}
+
+
@@ -145,7 +194,7 @@
}
else // No exclude rule matched
{
- if ( _dir->device() == subDir->device() ) // normal case
+ if ( ! crossingFileSystems(_dir, subDir ) ) // normal case
{
LocalDirReadJob * job = new LocalDirReadJob( _tree, subDir );
CHECK_NEW( job );
@@ -153,7 +202,6 @@
}
else // The subdirectory we just found is a mount point.
{
- logDebug() << "Found mount point " << subDir << endl;
subDir->setMountPoint();
if ( _tree->crossFileSystems() )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/DirReadJob.h new/qdirstat-1.2/src/DirReadJob.h
--- old/qdirstat-1.1/src/DirReadJob.h 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/DirReadJob.h 2017-01-03 14:47:15.000000000 +0100
@@ -133,6 +133,18 @@
**/
void finished();
+ /**
+ * Check if going from 'parent' to 'child' would cross a file system
+ * boundary. This take Btrfs subvolumes into account.
+ **/
+ bool crossingFileSystems( DirInfo * parent, DirInfo * child );
+
+ /**
+ * Return the device name where 'dir' is on if it's a mount point.
+ * This uses MountPoints which reads /proc/mounts.
+ **/
+ QString device( const DirInfo * dir ) const;
+
DirTree * _tree;
DirInfo * _dir;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/DirTree.cpp new/qdirstat-1.2/src/DirTree.cpp
--- old/qdirstat-1.1/src/DirTree.cpp 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/DirTree.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -14,6 +14,7 @@
#include "FileInfoSet.h"
#include "Exception.h"
#include "DirTreeCache.h"
+#include "MountPoints.h"
using namespace QDirStat;
@@ -82,6 +83,7 @@
}
_isBusy = false;
+ _device.clear();
}
@@ -91,6 +93,9 @@
QString url = fileInfo.absoluteFilePath();
// logDebug() << "rawUrl: \"" << rawUrl << "\"" << endl;
logInfo() << " url: \"" << url << "\"" << endl;
+ const MountPoint * mountPoint = MountPoints::findNearestMountPoint( url );
+ _device = mountPoint ? mountPoint->device() : "";
+ logInfo() << "device: " << _device << endl;
_isBusy = true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/DirTree.h new/qdirstat-1.2/src/DirTree.h
--- old/qdirstat-1.1/src/DirTree.h 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/DirTree.h 2017-01-03 14:47:15.000000000 +0100
@@ -132,6 +132,11 @@
**/
bool isTopLevel( FileInfo *item ) const;
+ /**
+ * Return the device of this tree's root item ("/dev/sda3" etc.).
+ **/
+ QString device() const { return _device; }
+
/**
* Clear all items of this tree.
**/
@@ -351,6 +356,7 @@
DirReadJobQueue _jobQueue;
bool _crossFileSystems;
bool _isBusy;
+ QString _device;
}; // class DirTree
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/Logger.cpp new/qdirstat-1.2/src/Logger.cpp
--- old/qdirstat-1.1/src/Logger.cpp 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/Logger.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -258,7 +258,14 @@
<< msg << endl;
if ( msgType == QtFatalMsg )
- abort();
+ {
+ fprintf( stderr, "FATAL: %s\n", qPrintable( msg ) );
+
+ if ( msg.contains( "Could not connect to display" ) )
+ exit( 1 );
+ else
+ abort();
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/MainWindow.cpp new/qdirstat-1.2/src/MainWindow.cpp
--- old/qdirstat-1.1/src/MainWindow.cpp 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/MainWindow.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -92,6 +92,11 @@
_ui->treemapView->setMimeCategorizer( _mimeCategorizer );
+#ifdef Q_OS_MACX
+ // this makes the application to look like more "native" on macOS
+ setUnifiedTitleAndToolBarOnMac(true);
+ _ui->toolBar->setMovable(false);
+#endif
connect( _selectionModel, SIGNAL( currentBranchChanged( QModelIndex ) ),
_ui->dirTreeView, SLOT ( closeAllExcept ( QModelIndex ) ) );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/MountPoints.cpp new/qdirstat-1.2/src/MountPoints.cpp
--- old/qdirstat-1.1/src/MountPoints.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/qdirstat-1.2/src/MountPoints.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -0,0 +1,244 @@
+/*
+ * File name: MountPoints.cpp
+ * Summary: Support classes for QDirStat
+ * License: GPL V2 - See file LICENSE for details.
+ *
+ * Author: Stefan Hundhammer <Stefan.Hundhammer(a)gmx.de>
+ */
+
+
+#include <QFile>
+#include <QRegExp>
+#include <QFileInfo>
+
+#include "MountPoints.h"
+#include "Logger.h"
+#include "Exception.h"
+
+
+using namespace QDirStat;
+
+
+MountPoint::MountPoint( const QString & device,
+ const QString & path,
+ const QString & filesystemType,
+ const QString & mountOptions ) :
+ _device( device ),
+ _path( path ),
+ _filesystemType( filesystemType )
+{
+ _mountOptions = mountOptions.split( "," );
+}
+
+
+QString MountPoint::mountOptionsStr() const
+{
+ return _mountOptions.join( "," );
+}
+
+
+bool MountPoint::isBtrfs() const
+{
+ return _filesystemType.toLower() == "btrfs";
+}
+
+
+
+
+MountPoints * MountPoints::_instance = 0;
+
+
+MountPoints * MountPoints::instance()
+{
+ if ( ! _instance )
+ {
+ _instance = new MountPoints();
+ CHECK_NEW( _instance );
+ }
+
+ return _instance;
+}
+
+
+MountPoints::MountPoints()
+{
+ init();
+}
+
+
+MountPoints::~MountPoints()
+{
+ init();
+}
+
+
+void MountPoints::init()
+{
+ qDeleteAll( _mountPointMap );
+ _mountPointMap.clear();
+ _isPopulated = false;
+ _checkedForBtrfs = false;
+}
+
+
+void MountPoints::clear()
+{
+ if ( _instance )
+ _instance->init();
+}
+
+
+bool MountPoints::isEmpty()
+{
+ instance()->ensurePopulated();
+
+ return instance()->_mountPointMap.isEmpty();
+}
+
+
+const MountPoint * MountPoints::findByPath( const QString & path )
+{
+ instance()->ensurePopulated();
+
+ return instance()->_mountPointMap.value( path, 0 );
+}
+
+
+const MountPoint * MountPoints::findNearestMountPoint( const QString & startPath )
+{
+ QFileInfo fileInfo( startPath );
+ QString path = fileInfo.canonicalFilePath(); // absolute path without symlinks or ..
+
+ if ( path != startPath )
+ logDebug() << startPath << " canonicalized is " << path << endl;
+
+ const MountPoint * mountPoint = findByPath( path );
+
+ if ( ! mountPoint )
+ {
+ QStringList pathComponents = startPath.split( "/", QString::SkipEmptyParts );
+
+ while ( ! mountPoint && !pathComponents.isEmpty() )
+ {
+ // Try one level upwards
+ pathComponents.removeLast();
+ path = QString( "/" ) + pathComponents.join( "/" );
+
+ mountPoint = instance()->_mountPointMap.value( path, 0 );
+ }
+ }
+
+ // logDebug() << "Nearest mount point for " << startPath << " is " << mountPoint << endl;
+
+ return mountPoint;
+}
+
+
+bool MountPoints::hasBtrfs()
+{
+ instance()->ensurePopulated();
+
+ if ( ! _instance->_checkedForBtrfs )
+ {
+ _instance->_hasBtrfs = _instance->checkForBtrfs();
+ _instance->_checkedForBtrfs = true;
+ }
+
+ return _instance->_hasBtrfs;
+}
+
+
+void MountPoints::ensurePopulated()
+{
+ if ( _isPopulated )
+ return;
+
+ read( "/proc/mounts" ) || read( "/etc/mtab" );
+
+ if ( ! _isPopulated )
+ logError() << "Could not read either /proc/mounts or /etc/mtab" << endl;
+
+ _isPopulated = true;
+}
+
+
+bool MountPoints::read( const QString & filename )
+{
+ QFile file( filename );
+
+ if ( ! file.open( QIODevice::ReadOnly | QIODevice::Text ) )
+ {
+ logWarning() << "Can't open " << filename << endl;
+ return false;
+ }
+
+ QTextStream in( &file );
+ int lineNo = 0;
+ int count = 0;
+ QString line = in.readLine();
+
+ while ( ! line.isNull() ) // in.atEnd() always returns true for /proc/*
+ {
+ ++lineNo;
+ QStringList fields = line.split( QRegExp( "\\s+" ), QString::SkipEmptyParts );
+
+ if ( fields.isEmpty() ) // allow empty lines
+ continue;
+
+ if ( fields.size() < 4 )
+ {
+ logError() << "Bad line " << filename << ":" << lineNo << ": " << line << endl;
+ continue;
+ }
+
+ // File format (/proc/mounts or /etc/mtab):
+ //
+ // /dev/sda6 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
+ // /dev/sda7 /work ext4 rw,relatime,data=ordered 0 0
+ // nas:/share/work /nas/work nfs rw,local_lock=none 0 0
+
+ QString device = fields[0];
+ QString path = fields[1];
+ QString fsType = fields[2];
+ QString mountOpts = fields[3];
+ // ignoring fsck and dump order (0 0)
+
+ MountPoint * mountPoint = new MountPoint( device, path, fsType, mountOpts );
+ CHECK_NEW( mountPoint );
+
+ _mountPointMap[ path ] = mountPoint;
+ ++count;
+
+ line = in.readLine();
+ }
+
+ if ( count < 1 )
+ logWarning() << "Not a single mount point in " << filename << endl;
+ else
+ _isPopulated = true;
+
+ return _isPopulated;
+}
+
+
+bool MountPoints::checkForBtrfs()
+{
+ ensurePopulated();
+
+ foreach ( const MountPoint * mountPoint, _mountPointMap )
+ {
+ if ( mountPoint && mountPoint->isBtrfs() )
+ return true;
+ }
+
+ return false;
+}
+
+
+void MountPoints::dump()
+{
+ foreach ( const MountPoint * mountPoint, instance()->_mountPointMap )
+ {
+ logDebug() << mountPoint << endl;
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/MountPoints.h new/qdirstat-1.2/src/MountPoints.h
--- old/qdirstat-1.1/src/MountPoints.h 1970-01-01 01:00:00.000000000 +0100
+++ new/qdirstat-1.2/src/MountPoints.h 2017-01-03 14:47:15.000000000 +0100
@@ -0,0 +1,203 @@
+/*
+ * File name: MountPoints.h
+ * Summary: Support classes for QDirStat
+ * License: GPL V2 - See file LICENSE for details.
+ *
+ * Author: Stefan Hundhammer <Stefan.Hundhammer(a)gmx.de>
+ */
+
+#ifndef MountPoints_h
+#define MountPoints_h
+
+
+#include <QString>
+#include <QStringList>
+#include <QMap>
+#include <QTextStream>
+
+
+namespace QDirStat
+{
+ /**
+ * Helper class to represent one mount point of a Linux/Unix filesystem.
+ **/
+ class MountPoint
+ {
+ public:
+ /**
+ * Constructor.
+ **/
+ MountPoint( const QString & device,
+ const QString & path,
+ const QString & filesystemType,
+ const QString & mountOptions );
+
+ /**
+ * Return the device that is mounted, someting like "/dev/sda3",
+ * "/dev/mapper/crypto", "nas:/share/work".
+ **/
+ QString device() const { return _device; }
+
+ /**
+ * Return the path where the device is mounted to.
+ **/
+ QString path() const { return _path; }
+
+ /**
+ * Return the filesystem type as string ("ext4", "btrfs", "none".
+ **/
+ QString filesystemType() const { return _filesystemType; }
+
+ /**
+ * Return the individual mount options as a list of strings
+ * ["rw", "nosuid", "nodev", "relatime", "rsize=32768"].
+ **/
+ QStringList mountOptions() const { return _mountOptions; }
+
+ /**
+ * Return the mount options as one comma-separated string.
+ **/
+ QString mountOptionsStr() const;
+
+ /**
+ * Return 'true' if the filesystem type of this mount point is "btrfs".
+ **/
+ bool isBtrfs() const;
+
+ protected:
+ QString _device;
+ QString _path;
+ QString _filesystemType;
+ QStringList _mountOptions;
+
+ }; // class MountPoint
+
+
+ /**
+ * Singleton class to access the current mount points.
+ **/
+ class MountPoints
+ {
+ public:
+ /**
+ * Return the singleton object for this class. The first use will
+ * create the singleton. Notice that most of the static methods access
+ * the singleton, too, so the first call to most of those static
+ * methods will already create the singleton.
+ **/
+ static MountPoints * instance();
+
+ /**
+ * Clear the content of the singleton. This is useful whenever the
+ * mount points in the system might have changed, i.e. when a
+ * filesystem might have been mounted or unmounted.
+ *
+ * This does not create the singleton if it doesn't exist yet.
+ **/
+ static void clear();
+
+ /**
+ * Return 'true' if there are no mount points at all.
+ **/
+ static bool isEmpty();
+
+ /**
+ * Return the mount point for 'path' if there is one or 0 if there is
+ * not. Ownership of the returned object is not transferred to the
+ * caller, i.e. the caller should not delete it. The pointer remains
+ * valid until the next call to clear().
+ **/
+ static const MountPoint * findByPath( const QString & path );
+
+ /**
+ * Find the nearest mount point upwards in the directory hierarchy
+ * starting from 'path'. 'path' itself might be that mount point.
+ * Ownership of the returned object is not transferred to the caller.
+ *
+ * This might return 0 if none of the files containing mount
+ * information (/proc/mounts, /etc/mtab) could be read.
+ **/
+ static const MountPoint * findNearestMountPoint( const QString & path );
+
+ /**
+ * Return 'true' if any mount point has filesystem type "btrfs".
+ **/
+ static bool hasBtrfs();
+
+ /**
+ * Ensure the mount points are populated with the content of
+ * /proc/mounts, falling back to /etc/mtab if /proc/mounts cannot be
+ * read.
+ **/
+ void ensurePopulated();
+
+ /**
+ * Dump all current mount points to the log. This does not call
+ * ensurePopulated() first.
+ **/
+ static void dump();
+
+
+ protected:
+ /**
+ * Constructor. Not for public use. Use instance() or the static
+ * methods instead.
+ **/
+ MountPoints();
+
+ /**
+ * Destructor.
+ **/
+ virtual ~MountPoints();
+
+
+ /**
+ * Clear the content of this class.
+ **/
+ void init();
+
+ /**
+ * Read 'filename' (in /proc/mounts or /etc/mnt syntax) and populate
+ * the mount points with the content. Return 'true' on success, 'false'
+ * on failure.
+ **/
+ bool read( const QString & filename );
+
+ /**
+ * Check if any of the mount points has filesystem type "btrfs".
+ **/
+ bool checkForBtrfs();
+
+ //
+ // Data members
+ //
+
+ static MountPoints * _instance;
+
+ QMap<QString, MountPoint *> _mountPointMap;
+ bool _isPopulated;
+ bool _hasBtrfs;
+ bool _checkedForBtrfs;
+
+ }; // class MountPoints
+
+
+ inline QTextStream & operator<< ( QTextStream & stream, const MountPoint * mp )
+ {
+ if ( mp )
+ {
+ stream << "<mount point for " << mp->device()
+ << " at " << mp->path()
+ << " type " << mp->filesystemType()
+ << ">";
+ }
+ else
+ stream << "<NULL MountPoint*>";
+
+ return stream;
+ }
+
+} // namespace QDirStat
+
+
+#endif // MountPoints_h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/Version.h new/qdirstat-1.2/src/Version.h
--- old/qdirstat-1.1/src/Version.h 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/Version.h 2017-01-03 14:47:15.000000000 +0100
@@ -9,6 +9,6 @@
#ifndef Version_h
#define Version_h
-#define QDIRSTAT_VERSION "1.1-Pumpkin"
+#define QDIRSTAT_VERSION "1.2"
#endif // Version_h
Binary files old/qdirstat-1.1/src/icons/qdirstat.icns and new/qdirstat-1.2/src/icons/qdirstat.icns differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/main.cpp new/qdirstat-1.2/src/main.cpp
--- old/qdirstat-1.1/src/main.cpp 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/main.cpp 2017-01-03 14:47:15.000000000 +0100
@@ -55,7 +55,7 @@
}
else
{
- logDebug() << "No " << longName << endl;
+ // logDebug() << "No " << longName << endl;
return false;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qdirstat-1.1/src/src.pro new/qdirstat-1.2/src/src.pro
--- old/qdirstat-1.1/src/src.pro 2016-10-31 19:09:45.000000000 +0100
+++ new/qdirstat-1.2/src/src.pro 2017-01-03 14:47:15.000000000 +0100
@@ -55,6 +55,7 @@
MimeCategorizer.cpp \
MimeCategory.cpp \
MimeCategoryConfigPage.cpp \
+ MountPoints.cpp \
OutputWindow.cpp \
PercentBar.cpp \
Process.cpp \
@@ -98,6 +99,7 @@
MimeCategorizer.h \
MimeCategory.h \
MimeCategoryConfigPage.h \
+ MountPoints.h \
OutputWindow.h \
PercentBar.h \
Process.h \
@@ -131,3 +133,5 @@
icons.files = icons/qdirstat.png
icons.path = /usr/share/icons/hicolor/32x32/apps
+
+mac:ICON = icons/qdirstat.icns
1
0
Hello community,
here is the log from the commit of package pdns for openSUSE:Factory checked in at 2017-01-17 14:36:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pdns (Old)
and /work/SRC/openSUSE:Factory/.pdns.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdns"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pdns/pdns.changes 2017-01-09 10:48:52.254036427 +0100
+++ /work/SRC/openSUSE:Factory/.pdns.new/pdns.changes 2017-01-17 14:36:46.465944732 +0100
@@ -1,0 +2,22 @@
+Fri Jan 13 16:42:26 UTC 2017 - adam.majer(a)suse.de
+
+- b854d9f.diff: revert upstream change that caused a regression
+ with multiple-backends
+
+-------------------------------------------------------------------
+Fri Jan 13 12:16:03 UTC 2017 - adam.majer(a)suse.de
+
+- update to 4.0.2:
+ The following security issues were fixed:
+ - 2016-02: Crafted queries can cause abnormal CPU usage
+ (CVE-2016-7068, boo#1018326)
+ - 2016-03: Denial of service via the web server
+ (CVE-2016-7072, boo#1018327)
+ - 2016-04: Insufficient validation of TSIG signatures
+ (CVE-2016-7073, CVE-2016-7074, boo#1018328)
+ - 2016-05: Crafted zone record can cause a denial of service
+ (CVE-2016-2120, boo#1018329)
+ For complete changelog, see
+ https://doc.powerdns.com/md/changelog/#powerdns-authoritative-server-402
+
+-------------------------------------------------------------------
Old:
----
pdns-4.0.1.tar.bz2
New:
----
b854d9f.diff
pdns-4.0.2.tar.bz2
pdns-4.0.2.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pdns.spec ++++++
--- /var/tmp/diff_new_pack.WY87Yc/_old 2017-01-17 14:36:47.089856285 +0100
+++ /var/tmp/diff_new_pack.WY87Yc/_new 2017-01-17 14:36:47.093855718 +0100
@@ -1,7 +1,7 @@
#
# spec file for package pdns
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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,11 +17,11 @@
Name: pdns
-Version: 4.0.1
+Version: 4.0.2
Release: 0
#
%define pkg_name pdns
-%define pkg_version 4.0.1
+%define pkg_version 4.0.2
#
%if 0%{?suse_version} > 1230 || 0%{?rhel_version} > 600 || 0%{?centos_version} > 600 || 0%{?fedora_version} >= 20 || 0%{?el7}%{?fc20}%{?fc21}%{?fc22}%{?fc23}%{?fc24}%{?fc25}
%bcond_without systemd
@@ -138,8 +138,10 @@
#
Url: http://www.powerdns.com/
Source: http://downloads.powerdns.com/releases/pdns-%{pkg_version}.tar.bz2
+Source3: http://downloads.powerdns.com/releases/pdns-%{pkg_version}.tar.bz2.sig
Source1: rcpdns
Source2: README.opendbx
+Patch: b854d9f.diff
Summary: Modern, advanced and high performance authoritative-only nameserver
License: GPL-2.0
Group: Productivity/Networking/DNS/Servers
@@ -307,6 +309,7 @@
%prep
%setup -n %{name}-%{pkg_version}
+%patch -p1 -R
%if %{with pdns_opendbx}
cp %{S:2} README.opendbx
%endif
++++++ b854d9f.diff ++++++
commit b854d9fec6f7e5636ab4742d716c7d848e0ce0d6
Author: Remi Gacogne <remi.gacogne(a)powerdns.com>
Date: Wed Oct 26 15:42:27 2016 +0200
auth: In `Bind2Backend::lookup()`, use the `zoneId` when we have it
After the initial lookup corresponding to a `DNSBackend::getAuth()`,
the subsequent ones already have the `zoneId`, so use it instead of
looping on `chopOff()` again. This should be much more efficient.
(cherry picked from commit 937a66255ff05f2e754ef113833e54cc4cf2004b)
diff --git a/modules/bindbackend/bindbackend2.cc b/modules/bindbackend/bindbackend2.cc
index 3baf25e..4f9b06f 100644
--- a/modules/bindbackend/bindbackend2.cc
+++ b/modules/bindbackend/bindbackend2.cc
@@ -1036,9 +1036,17 @@ void Bind2Backend::lookup(const QType &qtype, const DNSName &qname, DNSPacket *p
bool found=false;
BB2DomainInfo bbd;
- do {
- found = safeGetBBDomainInfo(domain, &bbd);
- } while ((!found || (zoneId != (int)bbd.d_id && zoneId != -1)) && domain.chopOff());
+ if (zoneId != -1) {
+ found = safeGetBBDomainInfo(zoneId, &bbd);
+ if (found) {
+ domain = bbd.d_name;
+ }
+ }
+ else {
+ do {
+ found = safeGetBBDomainInfo(domain, &bbd);
+ } while (!found && domain.chopOff());
+ }
if(!found) {
if(mustlog)
++++++ pdns-4.0.1.tar.bz2 -> pdns-4.0.2.tar.bz2 ++++++
++++ 13508 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package git-cola for openSUSE:Factory checked in at 2017-01-17 14:36:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/git-cola (Old)
and /work/SRC/openSUSE:Factory/.git-cola.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "git-cola"
Changes:
--------
--- /work/SRC/openSUSE:Factory/git-cola/git-cola.changes 2016-12-01 10:28:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.git-cola.new/git-cola.changes 2017-01-17 14:36:40.326815030 +0100
@@ -1,0 +2,28 @@
+Sat Jan 14 16:11:17 UTC 2017 - marcin.bajor(a)gmail.com
+
+- Removed appdata.patch
+
+-------------------------------------------------------------------
+Sat Jan 14 16:07:24 UTC 2017 - marcin.bajor(a)gmail.com
+
+- Update to 2.10
+- Usability, bells and whistles
+* git cola can now invoke the .git/hooks/cola-prepare-commit-msg hook to update the commit message. This hook takes the same parameters as Git’s prepare-commit-message hook. The default path to this hook can be overridden by setting the cola.prepareCommitMessageHook configuration variable.
+http://git-cola.readthedocs.io/en/latest/git-cola.html#prepare-commit-message
+* git cola diff (and the corresponding Diff menu actions) can now launch difftool with the standard Ctrl+D hotkey. The Ctrl+E hotkey was also added for launching an editor.
+* Traditional Chinese (Taiwan) translation updates.
+- Fixes
+* git cola now works when installed in non-ascii, utf8-encoded paths.
+https://github.com/git-cola/git-cola/issues/629
+* Styling issues that caused black backgrounds in various widgets when using PyQ5 on Mac OS X have been fixed.
+https://github.com/git-cola/git-cola/issues/624
+* The “Open Recent” menu action was broken and has been fixed.
+https://github.com/git-cola/git-cola/issues/634
+* Exiting git cola with a maximized main window would hang when reopened on Linux.
+https://github.com/git-cola/git-cola/issues/641
+- Packaging
+* appdata.xml files are now provided at share/appdata/git-cola.xml and share/appdata/git-dag.xml for use by the Linux software gallery.
+https://people.freedesktop.org/~hughsient/appdata/
+https://github.com/git-cola/git-cola/pull/627
+
+-------------------------------------------------------------------
Old:
----
appdata.patch
v2.9.1.tar.gz
New:
----
v2.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ git-cola.spec ++++++
--- /var/tmp/diff_new_pack.aM9lHe/_old 2017-01-17 14:36:41.018716944 +0100
+++ /var/tmp/diff_new_pack.aM9lHe/_new 2017-01-17 14:36:41.018716944 +0100
@@ -1,7 +1,7 @@
#
# spec file for package git-cola
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016 Marcin Bajor
#
# All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
Name: git-cola
-Version: 2.9.1
+Version: 2.10
Release: 0
Summary: Sleek and powerful Git GUI
License: GPL-2.0+
@@ -28,8 +28,6 @@
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
Source: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz
-# PATCH-FEATURE-UPSTREAM https://github.com/git-cola/git-cola/pull/627
-Patch1: appdata.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: dos2unix
BuildRequires: git-core
@@ -56,10 +54,9 @@
%prep
%setup -q
-%patch1 -p1
%build
-dos2unix extras/qtpy/qtpy/py3compat.py
+dos2unix qtpy/py3compat.py
%install
%makeinstall prefix=%{_prefix} DESTDIR=%{buildroot}
++++++ v2.9.1.tar.gz -> v2.10.tar.gz ++++++
++++ 9751 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package re2 for openSUSE:Factory checked in at 2017-01-17 14:36:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/re2 (Old)
and /work/SRC/openSUSE:Factory/.re2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "re2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/re2/re2.changes 2016-12-04 15:08:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.re2.new/re2.changes 2017-01-17 14:36:30.556200139 +0100
@@ -1,0 +2,6 @@
+Sat Jan 14 10:21:10 UTC 2017 - mpluskal(a)suse.com
+
+- Update to version 2017-01-01
+ * No upstream changelog available
+
+-------------------------------------------------------------------
Old:
----
2016-11-01.tar.gz
New:
----
2017-01-01.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ re2.spec ++++++
--- /var/tmp/diff_new_pack.QDCwYZ/_old 2017-01-17 14:36:30.904150812 +0100
+++ /var/tmp/diff_new_pack.QDCwYZ/_new 2017-01-17 14:36:30.904150812 +0100
@@ -1,7 +1,7 @@
#
# spec file for package re2
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
#
-%global longver 2016-11-01
+%global longver 2017-01-01
%global shortver %(echo %{longver}|sed 's|-||g')
%define libname libre2-0
Name: re2
++++++ 2016-11-01.tar.gz -> 2017-01-01.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/CMakeLists.txt new/re2-2017-01-01/CMakeLists.txt
--- old/re2-2016-11-01/CMakeLists.txt 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/CMakeLists.txt 2016-12-13 12:22:01.000000000 +0100
@@ -128,4 +128,4 @@
)
install(FILES ${RE2_HEADERS} DESTINATION include/re2)
-install(TARGETS re2 ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+install(TARGETS re2 ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/ubuntu/continuous-bazel.cfg new/re2-2017-01-01/kokoro/ubuntu/continuous-bazel.cfg
--- old/re2-2016-11-01/kokoro/ubuntu/continuous-bazel.cfg 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/kokoro/ubuntu/continuous-bazel.cfg 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-build_file: "re2/kokoro/ubuntu/continuous-bazel.sh"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/ubuntu/continuous-bazel.sh new/re2-2017-01-01/kokoro/ubuntu/continuous-bazel.sh
--- old/re2-2016-11-01/kokoro/ubuntu/continuous-bazel.sh 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/kokoro/ubuntu/continuous-bazel.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-#!/bin/bash
-set -eux
-
-cd git/re2
-
-bazel clean
-bazel build --compilation_mode=dbg -- //...
-bazel test --compilation_mode=dbg --test_output=errors -- //... \
- -//:dfa_test \
- -//:exhaustive1_test \
- -//:exhaustive2_test \
- -//:exhaustive3_test \
- -//:exhaustive_test \
- -//:random_test
-
-bazel clean
-bazel build --compilation_mode=opt -- //...
-bazel test --compilation_mode=opt --test_output=errors -- //... \
- -//:dfa_test \
- -//:exhaustive1_test \
- -//:exhaustive2_test \
- -//:exhaustive3_test \
- -//:exhaustive_test \
- -//:random_test
-
-exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/ubuntu-bazel.cfg new/re2-2017-01-01/kokoro/ubuntu-bazel.cfg
--- old/re2-2016-11-01/kokoro/ubuntu-bazel.cfg 1970-01-01 01:00:00.000000000 +0100
+++ new/re2-2017-01-01/kokoro/ubuntu-bazel.cfg 2016-12-13 12:22:01.000000000 +0100
@@ -0,0 +1 @@
+build_file: "re2/kokoro/ubuntu-bazel.sh"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/ubuntu-bazel.sh new/re2-2017-01-01/kokoro/ubuntu-bazel.sh
--- old/re2-2016-11-01/kokoro/ubuntu-bazel.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/re2-2017-01-01/kokoro/ubuntu-bazel.sh 2016-12-13 12:22:01.000000000 +0100
@@ -0,0 +1,26 @@
+#!/bin/bash
+set -eux
+
+cd git/re2
+
+bazel clean
+bazel build --compilation_mode=dbg -- //...
+bazel test --compilation_mode=dbg --test_output=errors -- //... \
+ -//:dfa_test \
+ -//:exhaustive1_test \
+ -//:exhaustive2_test \
+ -//:exhaustive3_test \
+ -//:exhaustive_test \
+ -//:random_test
+
+bazel clean
+bazel build --compilation_mode=opt -- //...
+bazel test --compilation_mode=opt --test_output=errors -- //... \
+ -//:dfa_test \
+ -//:exhaustive1_test \
+ -//:exhaustive2_test \
+ -//:exhaustive3_test \
+ -//:exhaustive_test \
+ -//:random_test
+
+exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/windows/continuous-cmake.bat new/re2-2017-01-01/kokoro/windows/continuous-cmake.bat
--- old/re2-2016-11-01/kokoro/windows/continuous-cmake.bat 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/kokoro/windows/continuous-cmake.bat 1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-CD git/re2 || EXIT /B 1
-
-cmake -D CMAKE_BUILD_TYPE=Debug -G "Visual Studio 12 2013" -A x64 . || EXIT /B 1
-cmake --build . --config Debug --clean-first || EXIT /B 1
-ctest -C Debug --output-on-failure -E dfa^|exhaustive^|random || EXIT /B 1
-
-cmake -D CMAKE_BUILD_TYPE=Release -G "Visual Studio 12 2013" -A x64 . || EXIT /B 1
-cmake --build . --config Release --clean-first || EXIT /B 1
-ctest -C Release --output-on-failure -E dfa^|exhaustive^|random || EXIT /B 1
-
-EXIT /B 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/windows/continuous-cmake.cfg new/re2-2017-01-01/kokoro/windows/continuous-cmake.cfg
--- old/re2-2016-11-01/kokoro/windows/continuous-cmake.cfg 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/kokoro/windows/continuous-cmake.cfg 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-build_file: "re2/kokoro/windows/continuous-cmake.bat"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/windows-cmake.bat new/re2-2017-01-01/kokoro/windows-cmake.bat
--- old/re2-2016-11-01/kokoro/windows-cmake.bat 1970-01-01 01:00:00.000000000 +0100
+++ new/re2-2017-01-01/kokoro/windows-cmake.bat 2016-12-13 12:22:01.000000000 +0100
@@ -0,0 +1,11 @@
+CD git/re2 || EXIT /B 1
+
+cmake -D CMAKE_BUILD_TYPE=Debug -G "Visual Studio 12 2013" -A x64 . || EXIT /B 1
+cmake --build . --config Debug --clean-first || EXIT /B 1
+ctest -C Debug --output-on-failure -E dfa^|exhaustive^|random || EXIT /B 1
+
+cmake -D CMAKE_BUILD_TYPE=Release -G "Visual Studio 12 2013" -A x64 . || EXIT /B 1
+cmake --build . --config Release --clean-first || EXIT /B 1
+ctest -C Release --output-on-failure -E dfa^|exhaustive^|random || EXIT /B 1
+
+EXIT /B 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/kokoro/windows-cmake.cfg new/re2-2017-01-01/kokoro/windows-cmake.cfg
--- old/re2-2016-11-01/kokoro/windows-cmake.cfg 1970-01-01 01:00:00.000000000 +0100
+++ new/re2-2017-01-01/kokoro/windows-cmake.cfg 2016-12-13 12:22:01.000000000 +0100
@@ -0,0 +1 @@
+build_file: "re2/kokoro/windows-cmake.bat"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/bitstate.cc new/re2-2017-01-01/re2/bitstate.cc
--- old/re2-2016-11-01/re2/bitstate.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/bitstate.cc 2016-12-13 12:22:01.000000000 +0100
@@ -324,7 +324,7 @@
submatch_ = submatch;
nsubmatch_ = nsubmatch;
for (int i = 0; i < nsubmatch_; i++)
- submatch_[i] = NULL;
+ submatch_[i] = StringPiece();
// Allocate scratch space.
nvisited_ = (prog_->size() * (text.size()+1) + VisitedBits-1) / VisitedBits;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/dfa.cc new/re2-2017-01-01/re2/dfa.cc
--- old/re2-2016-11-01/re2/dfa.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/dfa.cc 2016-12-13 12:22:01.000000000 +0100
@@ -1891,7 +1891,7 @@
// Pick out start state for unanchored search
// at beginning of text.
RWLocker l(&cache_mutex_);
- SearchParams params(NULL, NULL, &l);
+ SearchParams params(StringPiece(), StringPiece(), &l);
params.anchored = false;
if (!AnalyzeSearch(¶ms) || params.start <= SpecialStateMax)
return 0;
@@ -1950,7 +1950,7 @@
// Pick out start state for anchored search at beginning of text.
RWLocker l(&cache_mutex_);
- SearchParams params(NULL, NULL, &l);
+ SearchParams params(StringPiece(), StringPiece(), &l);
params.anchored = true;
if (!AnalyzeSearch(¶ms))
return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/fuzzing/re2_fuzzer.cc new/re2-2017-01-01/re2/fuzzing/re2_fuzzer.cc
--- old/re2-2016-11-01/re2/fuzzing/re2_fuzzer.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/fuzzing/re2_fuzzer.cc 2016-12-13 12:22:01.000000000 +0100
@@ -21,9 +21,10 @@
return;
// Don't waste time fuzzing high-fanout programs.
+ // (They can also cause bug reports due to fuzzer timeouts.)
std::map<int, int> histogram;
int fanout = re.ProgramFanout(&histogram);
- if (fanout > 10)
+ if (fanout > 9)
return;
StringPiece sp1, sp2, sp3, sp4;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/parse.cc new/re2-2017-01-01/re2/parse.cc
--- old/re2-2016-11-01/re2/parse.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/parse.cc 2016-12-13 12:22:01.000000000 +0100
@@ -1289,7 +1289,7 @@
}
status->set_code(kRegexpBadUTF8);
- status->set_error_arg(NULL);
+ status->set_error_arg(StringPiece());
return -1;
}
@@ -1333,12 +1333,12 @@
if (s->size() < 1 || (*s)[0] != '\\') {
// Should not happen - caller always checks.
status->set_code(kRegexpInternalError);
- status->set_error_arg(NULL);
+ status->set_error_arg(StringPiece());
return false;
}
if (s->size() < 2) {
status->set_code(kRegexpTrailingBackslash);
- status->set_error_arg(NULL);
+ status->set_error_arg(StringPiece());
return false;
}
Rune c, c1;
@@ -1793,7 +1793,7 @@
if (s->size() == 0 || (*s)[0] != '[') {
// Caller checked this.
status->set_code(kRegexpInternalError);
- status->set_error_arg(NULL);
+ status->set_error_arg(StringPiece());
return false;
}
bool negated = false;
@@ -2108,9 +2108,9 @@
return ps.DoFinish();
}
- StringPiece lastunary = NULL;
+ StringPiece lastunary = StringPiece();
while (t.size() > 0) {
- StringPiece isunary = NULL;
+ StringPiece isunary = StringPiece();
switch (t[0]) {
default: {
Rune r;
@@ -2133,7 +2133,7 @@
if (!ps.DoLeftParenNoCapture())
return NULL;
} else {
- if (!ps.DoLeftParen(NULL))
+ if (!ps.DoLeftParen(StringPiece()))
return NULL;
}
t.remove_prefix(1); // '('
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/re2.cc new/re2-2017-01-01/re2/re2.cc
--- old/re2-2016-11-01/re2/re2.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/re2.cc 2016-12-13 12:22:01.000000000 +0100
@@ -785,7 +785,7 @@
// Zero submatches that don't exist in the regexp.
for (int i = ncap; i < nsubmatch; i++)
- submatch[i] = NULL;
+ submatch[i] = StringPiece();
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/set.h new/re2-2017-01-01/re2/set.h
--- old/re2-2016-11-01/re2/set.h 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/set.h 2016-12-13 12:22:01.000000000 +0100
@@ -41,6 +41,7 @@
// Match returns true if text matches any of the regexps in the set.
// If so, it fills v (if not NULL) with the indices of the matching regexps.
+ // Callers must not expect v to be sorted.
bool Match(const StringPiece& text, std::vector<int>* v) const;
private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/simplify.cc new/re2-2017-01-01/re2/simplify.cc
--- old/re2-2016-11-01/re2/simplify.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/simplify.cc 2016-12-13 12:22:01.000000000 +0100
@@ -589,12 +589,12 @@
return Regexp::Plus(re->Incref(), f);
// General case: x{4,} is xxxx+
- Regexp* nre = new Regexp(kRegexpConcat, f);
- nre->AllocSub(min);
- Regexp** nre_subs = nre->sub();
+ Regexp** nre_subs = new Regexp*[min];
for (int i = 0; i < min-1; i++)
nre_subs[i] = re->Incref();
nre_subs[min-1] = Regexp::Plus(re->Incref(), f);
+ Regexp* nre = Regexp::Concat(nre_subs, min, f);
+ delete[] nre_subs;
return nre;
}
@@ -613,11 +613,11 @@
// Build leading prefix: xx. Capturing only on the last one.
Regexp* nre = NULL;
if (min > 0) {
- nre = new Regexp(kRegexpConcat, f);
- nre->AllocSub(min);
- Regexp** nre_subs = nre->sub();
+ Regexp** nre_subs = new Regexp*[min];
for (int i = 0; i < min; i++)
nre_subs[i] = re->Incref();
+ nre = Regexp::Concat(nre_subs, min, f);
+ delete[] nre_subs;
}
// Build and attach suffix: (x(x(x)?)?)?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/testing/backtrack.cc new/re2-2017-01-01/re2/testing/backtrack.cc
--- old/re2-2016-11-01/re2/testing/backtrack.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/testing/backtrack.cc 2016-12-13 12:22:01.000000000 +0100
@@ -126,7 +126,7 @@
submatch_ = &sp0;
nsubmatch_ = 1;
}
- submatch_[0] = NULL;
+ submatch_[0] = StringPiece();
// Allocate new visited_ bitmap -- size is proportional
// to text, so have to reallocate on each call to Search.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/testing/dfa_test.cc new/re2-2017-01-01/re2/testing/dfa_test.cc
--- old/re2-2016-11-01/re2/testing/dfa_test.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/testing/dfa_test.cc 2016-12-13 12:22:01.000000000 +0100
@@ -192,14 +192,12 @@
for (int i = 0; i < 10; i++) {
bool matched = false;
bool failed = false;
- matched = prog->SearchDFA(match, NULL,
- Prog::kUnanchored, Prog::kFirstMatch,
- NULL, &failed, NULL);
+ matched = prog->SearchDFA(match, StringPiece(), Prog::kUnanchored,
+ Prog::kFirstMatch, NULL, &failed, NULL);
CHECK(!failed);
CHECK(matched);
- matched = prog->SearchDFA(no_match, NULL,
- Prog::kUnanchored, Prog::kFirstMatch,
- NULL, &failed, NULL);
+ matched = prog->SearchDFA(no_match, StringPiece(), Prog::kUnanchored,
+ Prog::kFirstMatch, NULL, &failed, NULL);
CHECK(!failed);
CHECK(!matched);
}
@@ -226,14 +224,12 @@
for (int i = 0; i < 2; i++) {
bool matched = false;
bool failed = false;
- matched = prog->SearchDFA(match, NULL,
- Prog::kUnanchored, Prog::kFirstMatch,
- NULL, &failed, NULL);
+ matched = prog->SearchDFA(match, StringPiece(), Prog::kUnanchored,
+ Prog::kFirstMatch, NULL, &failed, NULL);
CHECK(!failed);
CHECK(matched);
- matched = prog->SearchDFA(no_match, NULL,
- Prog::kUnanchored, Prog::kFirstMatch,
- NULL, &failed, NULL);
+ matched = prog->SearchDFA(no_match, StringPiece(), Prog::kUnanchored,
+ Prog::kFirstMatch, NULL, &failed, NULL);
CHECK(!failed);
CHECK(!matched);
}
@@ -306,7 +302,8 @@
Prog *prog = re->CompileToReverseProg(0);
CHECK(prog);
bool failed = false;
- bool matched = prog->SearchDFA(t.text, NULL, Prog::kUnanchored, Prog::kFirstMatch, NULL, &failed, NULL);
+ bool matched = prog->SearchDFA(t.text, StringPiece(), Prog::kUnanchored,
+ Prog::kFirstMatch, NULL, &failed, NULL);
if (matched != t.match) {
LOG(ERROR) << t.regexp << " on " << t.text << ": want " << t.match;
nfail++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/testing/re2_test.cc new/re2-2017-01-01/re2/testing/re2_test.cc
--- old/re2-2016-11-01/re2/testing/re2_test.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/testing/re2_test.cc 2016-12-13 12:22:01.000000000 +0100
@@ -1458,7 +1458,7 @@
EXPECT_TRUE(re.Match(null, 0, null.size(), RE2::UNANCHORED,
matches, arraysize(matches)));
for (int i = 0; i < arraysize(matches); i++) {
- EXPECT_TRUE(matches[i] == NULL);
+ EXPECT_TRUE(matches[i] == StringPiece());
EXPECT_TRUE(matches[i].data() == NULL); // always null
EXPECT_TRUE(matches[i] == "");
}
@@ -1469,16 +1469,16 @@
StringPiece empty("");
EXPECT_TRUE(re.Match(empty, 0, empty.size(), RE2::UNANCHORED,
matches, arraysize(matches)));
- EXPECT_TRUE(matches[0] == NULL);
+ EXPECT_TRUE(matches[0] == StringPiece());
EXPECT_TRUE(matches[0].data() != NULL); // empty, not null
EXPECT_TRUE(matches[0] == "");
- EXPECT_TRUE(matches[1] == NULL);
+ EXPECT_TRUE(matches[1] == StringPiece());
EXPECT_TRUE(matches[1].data() != NULL); // empty, not null
EXPECT_TRUE(matches[1] == "");
- EXPECT_TRUE(matches[2] == NULL);
+ EXPECT_TRUE(matches[2] == StringPiece());
EXPECT_TRUE(matches[2].data() == NULL);
EXPECT_TRUE(matches[2] == "");
- EXPECT_TRUE(matches[3] == NULL);
+ EXPECT_TRUE(matches[3] == StringPiece());
EXPECT_TRUE(matches[3].data() == NULL);
EXPECT_TRUE(matches[3] == "");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/testing/regexp_benchmark.cc new/re2-2017-01-01/re2/testing/regexp_benchmark.cc
--- old/re2-2016-11-01/re2/testing/regexp_benchmark.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/testing/regexp_benchmark.cc 2016-12-13 12:22:01.000000000 +0100
@@ -886,7 +886,7 @@
Prog* prog = re->CompileToProg(0);
CHECK(prog);
bool failed = false;
- CHECK_EQ(prog->SearchDFA(text, NULL, anchor, Prog::kFirstMatch,
+ CHECK_EQ(prog->SearchDFA(text, StringPiece(), anchor, Prog::kFirstMatch,
NULL, &failed, NULL),
expect_match);
CHECK(!failed);
@@ -902,7 +902,8 @@
CHECK(re);
Prog* prog = re->CompileToProg(0);
CHECK(prog);
- CHECK_EQ(prog->SearchNFA(text, NULL, anchor, Prog::kFirstMatch, NULL, 0),
+ CHECK_EQ(prog->SearchNFA(text, StringPiece(), anchor, Prog::kFirstMatch,
+ NULL, 0),
expect_match);
delete prog;
re->Decref();
@@ -974,8 +975,8 @@
CHECK(prog);
for (int i = 0; i < iters; i++) {
bool failed = false;
- CHECK_EQ(prog->SearchDFA(text, NULL, anchor,
- Prog::kFirstMatch, NULL, &failed, NULL),
+ CHECK_EQ(prog->SearchDFA(text, StringPiece(), anchor, Prog::kFirstMatch,
+ NULL, &failed, NULL),
expect_match);
CHECK(!failed);
}
@@ -990,7 +991,8 @@
Prog* prog = re->CompileToProg(0);
CHECK(prog);
for (int i = 0; i < iters; i++) {
- CHECK_EQ(prog->SearchNFA(text, NULL, anchor, Prog::kFirstMatch, NULL, 0),
+ CHECK_EQ(prog->SearchNFA(text, StringPiece(), anchor, Prog::kFirstMatch,
+ NULL, 0),
expect_match);
}
delete prog;
@@ -1059,7 +1061,8 @@
Prog* prog = re->CompileToProg(0);
CHECK(prog);
StringPiece sp[4]; // 4 because sp[0] is whole match.
- CHECK(prog->SearchNFA(text, NULL, Prog::kAnchored, Prog::kFullMatch, sp, 4));
+ CHECK(prog->SearchNFA(text, StringPiece(), Prog::kAnchored,
+ Prog::kFullMatch, sp, 4));
delete prog;
re->Decref();
}
@@ -1130,7 +1133,8 @@
CHECK(prog);
StringPiece sp[4]; // 4 because sp[0] is whole match.
for (int i = 0; i < iters; i++) {
- CHECK(prog->SearchNFA(text, NULL, Prog::kAnchored, Prog::kFullMatch, sp, 4));
+ CHECK(prog->SearchNFA(text, StringPiece(), Prog::kAnchored,
+ Prog::kFullMatch, sp, 4));
}
delete prog;
re->Decref();
@@ -1202,7 +1206,8 @@
Prog* prog = re->CompileToProg(0);
CHECK(prog);
StringPiece sp[2]; // 2 because sp[0] is whole match.
- CHECK(prog->SearchNFA(text, NULL, Prog::kAnchored, Prog::kFullMatch, sp, 2));
+ CHECK(prog->SearchNFA(text, StringPiece(), Prog::kAnchored,
+ Prog::kFullMatch, sp, 2));
delete prog;
re->Decref();
}
@@ -1260,7 +1265,8 @@
CHECK(prog);
StringPiece sp[2]; // 2 because sp[0] is whole match.
for (int i = 0; i < iters; i++) {
- CHECK(prog->SearchNFA(text, NULL, Prog::kAnchored, Prog::kFullMatch, sp, 2));
+ CHECK(prog->SearchNFA(text, StringPiece(), Prog::kAnchored,
+ Prog::kFullMatch, sp, 2));
}
delete prog;
re->Decref();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/testing/string_generator.cc new/re2-2017-01-01/re2/testing/string_generator.cc
--- old/re2-2016-11-01/re2/testing/string_generator.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/testing/string_generator.cc 2016-12-13 12:22:01.000000000 +0100
@@ -85,7 +85,7 @@
CHECK(hasnext_);
if (generate_null_) {
generate_null_ = false;
- sp_ = NULL;
+ sp_ = StringPiece();
return sp_;
}
s_.clear();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/testing/tester.cc new/re2-2017-01-01/re2/testing/tester.cc
--- old/re2-2016-11-01/re2/testing/tester.cc 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/testing/tester.cc 2016-12-13 12:22:01.000000000 +0100
@@ -473,7 +473,7 @@
// StringPiece(text.begin() - 1, 0). Oops.
for (int i = 0; i < nsubmatch; i++)
if (result->submatch[i].begin() == text.begin() - 1)
- result->submatch[i] = NULL;
+ result->submatch[i] = StringPiece();
delete[] argptr;
delete[] a;
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2016-11-01/re2/testing/tester.h new/re2-2017-01-01/re2/testing/tester.h
--- old/re2-2016-11-01/re2/testing/tester.h 2016-10-24 15:23:04.000000000 +0200
+++ new/re2-2017-01-01/re2/testing/tester.h 2016-12-13 12:22:01.000000000 +0100
@@ -72,7 +72,7 @@
void LogMatch(const char* prefix, Engine e, const StringPiece& text,
const StringPiece& context, Prog::Anchor anchor);
- const StringPiece& regexp_str_; // regexp being tested
+ const StringPiece regexp_str_; // regexp being tested
Prog::MatchKind kind_; // kind of match
Regexp::ParseFlags flags_; // flags for parsing regexp_str_
bool error_; // error during constructor?
1
0
Hello community,
here is the log from the commit of package xtrabackup for openSUSE:Factory checked in at 2017-01-17 14:36:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xtrabackup (Old)
and /work/SRC/openSUSE:Factory/.xtrabackup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xtrabackup"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xtrabackup/xtrabackup.changes 2016-07-18 21:25:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xtrabackup.new/xtrabackup.changes 2017-01-17 14:36:24.481061369 +0100
@@ -1,0 +2,21 @@
+Sat Jan 14 10:29:56 UTC 2017 - astieger(a)suse.com
+
+- Percona XtraBackup 2.3.6, including one security fix:
+ * CVE-2016-6225: xbcrypt encryption IV not being set properly
+ (boo#1019858)
+- New functionality:
+ * now supports SHA256 passwords
+ * new supports command options for secure connections
+- Bugs fixed:
+ * intermittent assertion failures when not correctly identifying
+ server version
+ * Safe slave backup algorithm performed too short delays between
+ retries which could cause backups to fail on a busy servers
+ * fix compilation warnings with gcc6
+ * Backup would still succeed even if xtrabackup would fail to
+ write the metadata
+ * xbcloud now supports EMC ECS Swift API Authorization requests
+ * backup failed with MariaDB 10.2 with the unsupported server
+ version error message
+
+-------------------------------------------------------------------
Old:
----
percona-xtrabackup-2.3.5-nodoc.tar.xz
New:
----
percona-xtrabackup-2.3.6-nodoc.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xtrabackup.spec ++++++
--- /var/tmp/diff_new_pack.O92Kyg/_old 2017-01-17 14:36:25.516914523 +0100
+++ /var/tmp/diff_new_pack.O92Kyg/_new 2017-01-17 14:36:25.520913956 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xtrabackup
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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: xtrabackup
-Version: 2.3.5
+Version: 2.3.6
Release: 0
Summary: Online backup for MySQL / InnoDB
License: GPL-2.0
++++++ percona-xtrabackup-2.3.3-disable-version-check.patch ++++++
--- /var/tmp/diff_new_pack.O92Kyg/_old 2017-01-17 14:36:25.556908854 +0100
+++ /var/tmp/diff_new_pack.O92Kyg/_new 2017-01-17 14:36:25.560908287 +0100
@@ -1,6 +1,7 @@
-diff -Pdpru percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/backup_copy.cc percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/backup_copy.cc
---- percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/backup_copy.cc 2015-12-14 20:49:07.000000000 +0100
-+++ percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/backup_copy.cc 2016-01-17 23:26:10.661829261 +0100
+Index: percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/backup_copy.cc
+===================================================================
+--- percona-xtrabackup-2.3.6.orig/storage/innobase/xtrabackup/src/backup_copy.cc 2016-11-25 10:05:53.000000000 +0100
++++ percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/backup_copy.cc 2017-01-14 11:26:58.039337272 +0100
@@ -48,7 +48,7 @@ Place, Suite 330, Boston, MA 02111-1307
#include <set>
#include <string>
@@ -10,7 +11,7 @@
#include <sstream>
#include "fil_cur.h"
#include "xtrabackup.h"
-@@ -1882,6 +1882,7 @@ decrypt_decompress()
+@@ -1954,6 +1954,7 @@ decrypt_decompress()
return(ret);
}
@@ -18,15 +19,16 @@
void
version_check()
{
-@@ -1912,3 +1913,4 @@ version_check()
+@@ -1984,3 +1985,4 @@ version_check()
pclose(pipe);
}
+*/
-diff -Pdpru percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/backup_copy.h percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/backup_copy.h
---- percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/backup_copy.h 2015-12-14 20:49:07.000000000 +0100
-+++ percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/backup_copy.h 2016-01-17 23:16:15.044500527 +0100
-@@ -37,8 +37,10 @@ bool
+Index: percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/backup_copy.h
+===================================================================
+--- percona-xtrabackup-2.3.6.orig/storage/innobase/xtrabackup/src/backup_copy.h 2016-11-25 10:05:53.000000000 +0100
++++ percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/backup_copy.h 2017-01-14 11:26:58.039337272 +0100
+@@ -41,8 +41,10 @@ bool
copy_back();
bool
decrypt_decompress();
@@ -37,9 +39,10 @@
bool
is_path_separator(char);
bool
-diff -Pdpru percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/CMakeLists.txt percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/CMakeLists.txt
---- percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/CMakeLists.txt 2015-12-14 20:49:07.000000000 +0100
-+++ percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/CMakeLists.txt 2016-01-17 23:37:22.286376304 +0100
+Index: percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/CMakeLists.txt
+===================================================================
+--- percona-xtrabackup-2.3.6.orig/storage/innobase/xtrabackup/src/CMakeLists.txt 2016-11-25 10:05:53.000000000 +0100
++++ percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/CMakeLists.txt 2017-01-14 11:26:58.043337306 +0100
@@ -25,11 +25,11 @@ FIND_CURL()
FIND_EV()
@@ -56,7 +59,7 @@
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/include
-@@ -50,13 +50,13 @@ INCLUDE_DIRECTORIES(
+@@ -52,13 +52,13 @@ ADD_DEFINITIONS(${SSL_DEFINES})
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/xtrabackup_version.h.in
${CMAKE_CURRENT_BINARY_DIR}/xtrabackup_version.h )
@@ -74,12 +77,13 @@
+#ADD_CUSTOM_TARGET(GenVersionCheck
+# DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/version_check_pl.h)
-
- MYSQL_ADD_EXECUTABLE(xtrabackup
-diff -Pdpru percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/xtrabackup.cc percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/xtrabackup.cc
---- percona-xtrabackup-2.3.3.orig/storage/innobase/xtrabackup/src/xtrabackup.cc 2015-12-14 20:49:07.000000000 +0100
-+++ percona-xtrabackup-2.3.3/storage/innobase/xtrabackup/src/xtrabackup.cc 2016-01-17 23:17:32.535859179 +0100
-@@ -6699,7 +6699,7 @@ xb_init()
+ SET_SOURCE_FILES_PROPERTIES(
+ xtrabackup.cc
+Index: percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/xtrabackup.cc
+===================================================================
+--- percona-xtrabackup-2.3.6.orig/storage/innobase/xtrabackup/src/xtrabackup.cc 2016-11-25 10:05:53.000000000 +0100
++++ percona-xtrabackup-2.3.6/storage/innobase/xtrabackup/src/xtrabackup.cc 2017-01-14 11:26:58.043337306 +0100
+@@ -6768,7 +6768,7 @@ xb_init()
if (xtrabackup_backup) {
if (!opt_noversioncheck) {
++++++ percona-xtrabackup-2.3.5-nodoc.tar.xz -> percona-xtrabackup-2.3.6-nodoc.tar.xz ++++++
/work/SRC/openSUSE:Factory/xtrabackup/percona-xtrabackup-2.3.5-nodoc.tar.xz /work/SRC/openSUSE:Factory/.xtrabackup.new/percona-xtrabackup-2.3.6-nodoc.tar.xz differ: char 25, line 1
++++++ xtrabackup-nodoc.sh ++++++
--- /var/tmp/diff_new_pack.O92Kyg/_old 2017-01-17 14:36:25.604902050 +0100
+++ /var/tmp/diff_new_pack.O92Kyg/_new 2017-01-17 14:36:25.604902050 +0100
@@ -2,7 +2,7 @@
#
# Remove documentation files from source archives
#
-# Copyright (c) 2014 Andreas Stieger <andreas.stieger(a)gmx.de>
+# Copyright (c) 2017 Andreas Stieger <astieger(a)suse.com>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
1
0
Hello community,
here is the log from the commit of package xfig for openSUSE:Factory checked in at 2017-01-17 14:36:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfig (Old)
and /work/SRC/openSUSE:Factory/.xfig.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfig"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfig/xfig.changes 2016-10-18 10:39:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xfig.new/xfig.changes 2017-01-17 14:36:12.830712963 +0100
@@ -1,0 +2,7 @@
+Sat Jan 14 01:58:36 CET 2017 - oliver(a)getspam.de
+
+- Fix: Added preprocessor flag GSBIT to fix a 3.2.6 regression, that
+ resulted in EPS file preview not working, see:
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848040
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfig.spec ++++++
--- /var/tmp/diff_new_pack.JIsfoz/_old 2017-01-17 14:36:13.754581992 +0100
+++ /var/tmp/diff_new_pack.JIsfoz/_new 2017-01-17 14:36:13.758581425 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xfig
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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
@@ -50,9 +50,9 @@
Version: 3.2.6
Release: 0
Summary: Facility for Interactive Generation of Figures under the X Window System
+# www.xfig.org is dead
License: MIT
Group: Productivity/Graphics/Vector Editors
-# www.xfig.org is dead
Url: http://mcj.sourceforge.net/
#
# Remove forbidden files: aircraft.fig
@@ -153,6 +153,7 @@
CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
CFLAGS="$CFLAGS -DMAXNUMPTS=50000"
CFLAGS="$CFLAGS -DBSDLPR"
+CFLAGS="$CFLAGS -DGSBIT"
export CC CFLAGS
chmod 755 configure
%configure \
1
0