openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2017
- 1 participants
- 2097 discussions
Hello community,
here is the log from the commit of package yast2 for openSUSE:Factory checked in at 2017-08-02 11:26:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2 (Old)
and /work/SRC/openSUSE:Factory/.yast2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2"
Wed Aug 2 11:26:51 2017 rev:409 rq:513150 version:3.3.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2/yast2.changes 2017-07-22 02:32:04.474650749 +0200
+++ /work/SRC/openSUSE:Factory/.yast2.new/yast2.changes 2017-08-02 11:26:53.544999628 +0200
@@ -1,0 +2,15 @@
+Mon Jul 31 08:23:57 UTC 2017 - jreidinger(a)suse.com
+
+- WorkflowManager: allow to extend workflow from rpm package
+ (needed for FATE#323450)
+- WorkflowManager: drop never used support to extend workflow from
+ pattern
+- 3.3.6
+
+-------------------------------------------------------------------
+Thu Jul 27 12:28:09 UTC 2017 - jreidinger(a)suse.com
+
+- drop reading /content file (FATE#322386)
+- 3.3.5
+
+-------------------------------------------------------------------
Old:
----
yast2-3.3.4.tar.bz2
New:
----
yast2-3.3.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2.spec ++++++
--- /var/tmp/diff_new_pack.73ckxv/_old 2017-08-02 11:26:54.072924990 +0200
+++ /var/tmp/diff_new_pack.73ckxv/_new 2017-08-02 11:26:54.072924990 +0200
@@ -17,7 +17,7 @@
Name: yast2
-Version: 3.3.4
+Version: 3.3.6
Release: 0
Summary: YaST2 - Main Package
License: GPL-2.0
++++++ yast2-3.3.4.tar.bz2 -> yast2-3.3.6.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/control/src/modules/WorkflowManager.rb new/yast2-3.3.6/library/control/src/modules/WorkflowManager.rb
--- old/yast2-3.3.4/library/control/src/modules/WorkflowManager.rb 2017-07-21 16:47:07.656722812 +0200
+++ new/yast2-3.3.6/library/control/src/modules/WorkflowManager.rb 2017-07-31 11:06:26.160824981 +0200
@@ -398,28 +398,40 @@
# Download and extract the control file (installation.xml) from the add-on
# repository.
#
- # @param src_id [Fixnum] repository ID
+ # @param source [String, Fixnum] source where to get control file. It can be fixnum for
+ # addon type or package name for package type
# @return [String, nil] path to downloaded installation.xml file or nil
# or nil when no workflow is defined or the workflow package is missing
- def addon_control_file(src_id)
- product = find_product(src_id)
- return nil unless product && product["product_package"]
-
- # the dependencies are bound to the product's -release package
- release_package = Pkg.ResolvableDependencies(product["product_package"], :package, "").first
-
- # find the package name with installer update in its Provide dependencies
- control_file_package = find_control_package(release_package)
- return nil unless control_file_package
+ def control_file(source)
+ package = case source
+ when ::Integer
+ product = find_product(source)
+ return nil unless product && product["product_package"]
+
+ product_package = product["product_package"]
+
+ # the dependencies are bound to the product's -release package
+ release_package = Pkg.ResolvableDependencies(product_package, :package, "").first
+
+ # find the package name with installer update in its Provide dependencies
+ control_file_package = find_control_package(release_package)
+ return nil unless control_file_package
+
+ control_file_package
+ when ::String
+ source
+ else
+ raise ArgumentError, "Invalid argument source #{source.inspect}"
+ end
# get the repository ID of the package
- src = package_repository(control_file_package)
+ src = package_repository(package)
return nil unless src
- # ensure the previous content is removed, the src_id should avoid
+ # ensure the previous content is removed, the src should avoid
# collisions but rather be safe...
- dir = addon_control_dir(src_id, cleanup: true)
- fetch_package(src, control_file_package, dir)
+ dir = addon_control_dir(src, cleanup: true)
+ fetch_package(src, package, dir)
path = File.join(dir, "installation.xml")
return nil unless File.exist?(path)
@@ -452,21 +464,28 @@
# Returns requested control filename. Parameter 'name' is ignored
# for Add-Ons.
#
- # @param [Symbol] type `addon or `pattern
+ # @param [Symbol] type :addon or :package
# @param [Fixnum] src_id with Source ID
- # @param [String] name with unique identification
- # @return [String] path to already cached workflow file, control file is downloaded if not yet chached
- def GetCachedWorkflowFilename(type, src_id, _name)
- if type == :addon
- disk_filename = GenerateAdditionalControlFilePath(src_id, "")
-
- # A cached copy exists
- if FileUtils.Exists(disk_filename)
- Builtins.y2milestone("Using cached file %1", disk_filename)
- return disk_filename
- # Trying to get the file from source
- else
- Builtins.y2milestone("File %1 not cached", disk_filename)
+ # @param [String] name with unique identification, ignored for addon
+ # @return [String] path to already cached workflow file, control file is downloaded if not yet cached
+ # or nil if failed to get filename
+ def GetCachedWorkflowFilename(type, src_id, name = "")
+ if ![:package, :addon].include?(type)
+ Builtins.y2error("Unknown workflow type: %1", type)
+ return nil
+ end
+
+ disk_filename = GenerateAdditionalControlFilePath(src_id, name)
+
+ # A cached copy exists
+ if FileUtils.Exists(disk_filename)
+ Builtins.y2milestone("Using cached file %1", disk_filename)
+ return disk_filename
+ # Trying to get the file from source
+ else
+ Builtins.y2milestone("File %1 not cached", disk_filename)
+ case type
+ when :addon
# using a file from source, works only for SUSE tags repositories
use_filename = Pkg.SourceProvideDigestedFile(
src_id,
@@ -477,25 +496,22 @@
# The most generic way it to use the package referenced by the "installerextension()"
# provides, this works with all repository types, including the RPM-MD repositories.
- use_filename ||= addon_control_file(src_id)
-
- # File exists?
- return use_filename.nil? ? nil : StoreWorkflowFile(use_filename, disk_filename)
+ use_filename ||= control_file(src_id)
+ when :package
+ use_filename = control_file(name)
end
- # New workflow types can be added here
- else
- Builtins.y2error("Unknown workflow type: %1", type)
- return nil
+ # File exists?
+ return use_filename.nil? ? nil : StoreWorkflowFile(use_filename, disk_filename)
end
end
# Stores new workflow (if such workflow exists) into the Worflow Store.
#
- # @param [Symbol] type `addon or `pattern
+ # @param [Symbol] type :addon or :package
# @param intger src_id with source ID
# @param [String] name with unique identification name of the object
- # ("" for `addon, pattern name for `pattern)
+ # ("" for `addon, package name for :package)
# @return [Boolean] whether successful (true also in case of no workflow file)
#
# @example
@@ -507,20 +523,14 @@
src_id,
name
)
- if !Builtins.contains([:addon, :pattern], type)
+ if !Builtins.contains([:addon, :package], type)
Builtins.y2error("Unknown workflow type: %1", type)
return false
end
+ name = "" if type == :addon
# new xml filename
- used_filename = nil
-
- if type == :addon
- used_filename = GetCachedWorkflowFilename(:addon, src_id, "")
- elsif type == :pattern
- Builtins.y2error("Not implemented yet")
- return false
- end
+ used_filename = GetCachedWorkflowFilename(type, src_id, name)
if !used_filename.nil? && used_filename != ""
@unmerged_changes = true
@@ -535,14 +545,15 @@
# Removes workflow (if such workflow exists) from the Worflow Store.
# Alose removes the cached file but in the installation.
#
- # @param [Symbol] type `addon or `pattern
- # @param intger src_id with source ID
- # @param [String] name with unique identification name of the object
+ # @param [Symbol] type :addon or :package
+ # @param [Integer] src_id with source ID
+ # @param [String] name with unique identification name of the object.
+ # For :addon it should be empty string
#
# @return [Boolean] whether successful (true also in case of no workflow file)
#
# @example
- # RemoveWorkflow (`addon, 4, "");
+ # RemoveWorkflow (:addon, 4, "");
def RemoveWorkflow(type, src_id, name)
Builtins.y2milestone(
"Removing Workflow: Type %1, ID %2, Name %3",
@@ -550,20 +561,14 @@
src_id,
name
)
- if !Builtins.contains([:addon, :pattern], type)
+ if !Builtins.contains([:addon, :package], type)
Builtins.y2error("Unknown workflow type: %1", type)
return false
end
+ name = "" if type == :addon
# cached xml file
- used_filename = nil
-
- if type == :addon
- used_filename = GenerateAdditionalControlFilePath(src_id, "")
- else
- Builtins.y2error("Not implemented yet")
- return false
- end
+ used_filename = GenerateAdditionalControlFilePath(src_id, name)
if !used_filename.nil? && used_filename != ""
@unmerged_changes = true
@@ -842,6 +847,8 @@
base = deep_copy(base)
addon = deep_copy(addon)
+ log.info "merging workflow #{addon.inspect} to #{base.inspect}"
+
# Merging - removing steps, settings
removes = Ops.get_list(addon, "remove_modules", [])
@@ -895,6 +902,7 @@
end
end
+ log.info "result of merge #{base.inspect}"
deep_copy(base)
end
@@ -913,6 +921,8 @@
found = false
new_workflows = []
arch_all_wf = {}
+ log.info "workflow to update #{workflow.inspect}"
+
Builtins.foreach(ProductControl.workflows) do |w|
if Ops.get_string(w, "stage", "") != stage ||
Ops.get_string(w, "mode", "") != mode
@@ -949,6 +959,9 @@
new_workflows = Builtins.add(new_workflows, workflow)
end
+
+ log.info "new workflow after update #{new_workflows}"
+
ProductControl.workflows = deep_copy(new_workflows)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/control/test/workflow_manager_test.rb new/yast2-3.3.6/library/control/test/workflow_manager_test.rb
--- old/yast2-3.3.4/library/control/test/workflow_manager_test.rb 2017-07-21 16:47:07.684722812 +0200
+++ new/yast2-3.3.6/library/control/test/workflow_manager_test.rb 2017-07-31 11:06:26.160824981 +0200
@@ -267,7 +267,7 @@
end
end
- describe "#addon_control_file" do
+ describe "#control_file" do
# setup fake products and their packages
let(:repo_id) { 42 }
let(:product_package) { "foo-release" }
@@ -290,43 +290,45 @@
allow(File).to receive(:exist?).and_call_original
end
- it "returns nil if the repository does not provide any product" do
- expect(Yast::Pkg).to receive(:ResolvableDependencies).with("", :product, "").and_return([])
- expect(subject.addon_control_file(repo_id)).to be nil
- end
+ context "when repository id is passed" do
+ it "returns nil if the repository does not provide any product" do
+ expect(Yast::Pkg).to receive(:ResolvableDependencies).with("", :product, "").and_return([])
+ expect(subject.control_file(repo_id)).to be nil
+ end
- it "returns nil if the product does not refer to a release package" do
- product = { "name" => "foo", "source" => repo_id }
- expect(Yast::Pkg).to receive(:ResolvableDependencies).with("", :product, "").and_return([product])
- expect(subject.addon_control_file(repo_id)).to be nil
- end
+ it "returns nil if the product does not refer to a release package" do
+ product = { "name" => "foo", "source" => repo_id }
+ expect(Yast::Pkg).to receive(:ResolvableDependencies).with("", :product, "").and_return([product])
+ expect(subject.control_file(repo_id)).to be nil
+ end
- it "returns nil if the product belongs to a different repository" do
- product = { "name" => "foo", "source" => repo_id + 1 }
- expect(Yast::Pkg).to receive(:ResolvableDependencies).with("", :product, "").and_return([product])
- expect(subject.addon_control_file(repo_id)).to be nil
- end
+ it "returns nil if the product belongs to a different repository" do
+ product = { "name" => "foo", "source" => repo_id + 1 }
+ expect(Yast::Pkg).to receive(:ResolvableDependencies).with("", :product, "").and_return([product])
+ expect(subject.control_file(repo_id)).to be nil
+ end
- it "returns nil if the release package cannot be found" do
- expect(Yast::Pkg).to receive(:ResolvableDependencies).with(product_package, :package, "").and_return([])
- expect(subject.addon_control_file(repo_id)).to be nil
- end
+ it "returns nil if the release package cannot be found" do
+ expect(Yast::Pkg).to receive(:ResolvableDependencies).with(product_package, :package, "").and_return([])
+ expect(subject.control_file(repo_id)).to be nil
+ end
- it "returns nil if the release package does not have any dependencies" do
- release = { "name" => "foo", "source" => repo_id }
- expect(Yast::Pkg).to receive(:ResolvableDependencies).with(product_package, :package, "").and_return([release])
- expect(subject.addon_control_file(repo_id)).to be nil
- end
+ it "returns nil if the release package does not have any dependencies" do
+ release = { "name" => "foo", "source" => repo_id }
+ expect(Yast::Pkg).to receive(:ResolvableDependencies).with(product_package, :package, "").and_return([release])
+ expect(subject.control_file(repo_id)).to be nil
+ end
- it "returns nil if the release package does not have any installerextension() provides" do
- release = { "name" => "foo", "source" => repo_id, "deps" => ["provides" => "foo"] }
- expect(Yast::Pkg).to receive(:ResolvableDependencies).with(product_package, :package, "").and_return([release])
- expect(subject.addon_control_file(repo_id)).to be nil
+ it "returns nil if the release package does not have any installerextension() provides" do
+ release = { "name" => "foo", "source" => repo_id, "deps" => ["provides" => "foo"] }
+ expect(Yast::Pkg).to receive(:ResolvableDependencies).with(product_package, :package, "").and_return([release])
+ expect(subject.control_file(repo_id)).to be nil
+ end
end
it "returns nil if the installer extension package is not found" do
expect(Yast::Pkg).to receive(:ResolvableProperties).with(ext_package, :package, "").and_return([])
- expect(subject.addon_control_file(repo_id)).to be nil
+ expect(subject.control_file(repo_id)).to be nil
end
context "downloading the installer extension package fails" do
@@ -337,11 +339,11 @@
it "reports an error" do
expect(Yast::Report).to receive(:Error)
- subject.addon_control_file(repo_id)
+ subject.control_file(repo_id)
end
it "returns nil" do
- expect(subject.addon_control_file(repo_id)).to be nil
+ expect(subject.control_file(repo_id)).to be nil
end
end
@@ -353,11 +355,11 @@
it "reports an error" do
expect(Yast::Report).to receive(:Error)
- subject.addon_control_file(repo_id)
+ subject.control_file(repo_id)
end
it "returns nil" do
- expect(subject.addon_control_file(repo_id)).to be nil
+ expect(subject.control_file(repo_id)).to be nil
end
end
@@ -366,18 +368,18 @@
expect(Packages::PackageExtractor).to receive(:new).with(instance_of(String)).and_call_original
expect_any_instance_of(Packages::PackageExtractor).to receive(:extract).with(instance_of(String))
allow(File).to receive(:exist?)
- subject.addon_control_file(repo_id)
+ subject.control_file(repo_id)
end
it "returns nil if the extracted package does not contain installation.xml" do
expect(File).to receive(:exist?).with(/installation\.xml\z/).and_return(false)
- expect(subject.addon_control_file(repo_id)).to be nil
+ expect(subject.control_file(repo_id)).to be nil
end
it "returns the installation.xml path if the extracted package contains it" do
expect(File).to receive(:exist?).with(/installation.xml\z/).and_return(true)
# the returned path contains "/installation.xml" at the end
- expect(subject.addon_control_file(repo_id)).to end_with("/installation.xml")
+ expect(subject.control_file(repo_id)).to end_with("/installation.xml")
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/general/src/Makefile.am new/yast2-3.3.6/library/general/src/Makefile.am
--- old/yast2-3.3.4/library/general/src/Makefile.am 2017-07-21 16:47:07.788722812 +0200
+++ new/yast2-3.3.6/library/general/src/Makefile.am 2017-07-31 11:06:26.184824981 +0200
@@ -35,7 +35,6 @@
modules/Hooks.rb
scrconf_DATA = \
- scrconf/content.scr \
scrconf/cfg_hotplug.scr \
scrconf/proc_meminfo.scr \
scrconf/etc_sysctl_conf.scr \
@@ -46,7 +45,6 @@
scrconf/cfg_features.scr \
scrconf/etc_ssh_sshd_config.scr \
scrconf/cfg_displaymanager.scr \
- scrconf/contentfile.scr \
scrconf/cfg_yast2.scr \
scrconf/cfg_xversion.scr \
scrconf/yast2_groups.scr \
@@ -70,8 +68,7 @@
agent_SCRIPTS = \
servers_non_y2/ag_netd \
servers_non_y2/ag_anyxml \
- servers_non_y2/ag_freespace \
- servers_non_y2/ag_content
+ servers_non_y2/ag_freespace
ydata_DATA = \
data/country.ycp \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/general/src/scrconf/content.scr new/yast2-3.3.6/library/general/src/scrconf/content.scr
--- old/yast2-3.3.4/library/general/src/scrconf/content.scr 2017-07-21 16:47:07.872722812 +0200
+++ new/yast2-3.3.6/library/general/src/scrconf/content.scr 1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-/**
- * File: content.scr
- * Summary: Agent for reading/writing /content
- * Access: read only
- * Author: Klaus Kaempf <kkaempf(a)suse.de>
- *
- * Example:
- * Dir(.content)
- * (["PRODUCT", "VERSION", ...])
- **
- * Read(.content.PRODUCT)
- * ("8.1")
- *
- * $Id$
- */
-.content
-
-`ag_ini(
- `IniAgent( "/content",
- $[
- "options" : [ "read_only", "global_values", "flat" ],
- "comments" : [ "^#.*", "^[ \t]*$", ],
- "params" : [
- // Bugzilla #305495 comments #8 and #9
- $[ "match" : [ "^[ \t]*([^ \t]+)[ \t]*(.*)[ \t]*$", "%s %s" ] ]
- ]
- ]
- )
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/general/src/scrconf/contentfile.scr new/yast2-3.3.6/library/general/src/scrconf/contentfile.scr
--- old/yast2-3.3.4/library/general/src/scrconf/contentfile.scr 2017-07-21 16:47:07.872722812 +0200
+++ new/yast2-3.3.6/library/general/src/scrconf/contentfile.scr 1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-/**
- * File:
- * contentfile.scr
- * Summary:
- * SCR Agent for parsing content file
- * Access:
- * read
- * Authors:
- * Unknown <yast2-hacker(a)suse.de>
- * See:
- * libscr
- * Example:
- * map contentmap = (map)SCR::Read(.content_file, path_to_content_file);
- *
- * $Id$
- *
- */
-.content_file
-
-`ag_content ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/general/src/servers_non_y2/ag_content new/yast2-3.3.6/library/general/src/servers_non_y2/ag_content
--- old/yast2-3.3.4/library/general/src/servers_non_y2/ag_content 2017-07-21 16:47:07.876722812 +0200
+++ new/yast2-3.3.6/library/general/src/servers_non_y2/ag_content 1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-
-package ag_content;
-use ycp;
-use YaST::SCRAgent;
-use diagnostics;
-
-use Getopt::Long;
-use POSIX qw(tmpnam);
-use IO::File;
-
-our @ISA = ("YaST::SCRAgent");
-
-y2milestone ("ag_content started");
-
-# read the agent arguments
-#$_ = <STDIN>;
-# no input at all - simply exit
-#exit if ! defined $_;
-
-
-sub Read ()
-{
- my $class = shift;
- my ($path, $content_file) = @_;
-
- my %content;
- my $fh;
- if (defined($content_file)) {
- $fh = IO::File->new("< $content_file")
- or return %content;
-
- while(<$fh>)
- {
- m/^(\S*)\s(.*)/;
- $content{$1} = $2;
- }
- close $fh;
- }
-
- return( \%content );
-}
-
-
-
-
-package main;
-
-ag_content->Run ();
-
-
-
-#EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/packages/test/data/content_files/SLES_12_Beta4 new/yast2-3.3.6/library/packages/test/data/content_files/SLES_12_Beta4
--- old/yast2-3.3.4/library/packages/test/data/content_files/SLES_12_Beta4 2017-07-21 16:47:08.184722812 +0200
+++ new/yast2-3.3.6/library/packages/test/data/content_files/SLES_12_Beta4 1970-01-01 01:00:00.000000000 +0100
@@ -1,118 +0,0 @@
-CONTENTSTYLE 11
-DATADIR suse
-DESCRDIR suse/setup/descr
-DISTRIBUTION SUSE_SLE
-LINGUAS cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW
-REGISTERPRODUCT true
-REPOID obsproduct://build.suse.de/SUSE:SLE-12:GA/SLES/12/DVD/x86_64
-SUMMARY SUSE Linux Enterprise Server 12
-VENDOR SUSE
-RELEASE
-LABEL SUSE Linux Enterprise Server 12
-META SHA256 defaa064a4dcc99292515dc8cd43de0d83d2c0414a832946926b17c527fe6973 app-icons.tar.gz
-META SHA256 6781ee1b3a39dd0792677569c2407ff03a22bf4534215961946e7526df3d6c57 appdata.xml.gz
-META SHA256 4800c7f468934e7fe7f76937d7458eb29d32b11626cc1f4e7d7c1818f26123f6 packages.DU.gz
-META SHA256 b5a4994300b5546496d8deeb37e52ed99c2253e39dd6d21703f0cbbd56ecb93a packages.FL.gz
-META SHA256 99dd0d213c2355c72a18c7d9c60677c548d1ed3d8d00d94b1594a5e115757849 packages.cs.gz
-META SHA256 43b9841b85288b8bedff21f86fe9a67ea8cd4b24031b776c823535b0b6406f00 packages.de.gz
-META SHA256 f678d98a9ee8f74634873f393e3e1414108ea8c93fb2c2c8ff5401705329105d packages.en.gz
-META SHA256 9e066f92ccce24182024d0fa30267a229fc4148d393615ee8270f28a4ed4b14f packages.es.gz
-META SHA256 381d05170924a56967ce0e6879b0ce267bd0ab68cda78d06fc505277c12bcfa3 packages.fi.gz
-META SHA256 b75e7ddea2dd3c94e20e62a94de1623b5ed1489bcd2e1799fb4d4e81148df74e packages.fr.gz
-META SHA256 0337d2c778829e043909ae51326d9f7ac2834f395841af6b1385ee859f072aea packages.gz
-META SHA256 d2ff7cbfc515d62888aac86f0b2ea91b582469f73fd3218c939b7b37dfc40b8f packages.hu.gz
-META SHA256 35c2fe0568f29affb94369b1ad1104f1cbeb3b5efe25f3179fd71ef48ce3aec2 packages.it.gz
-META SHA256 3142ba99ee37d72c432eaa647dece0f62c9ffcc33d5eb8c9291ffa4d08e67bef packages.ja.gz
-META SHA256 9b0292bb5cdddf19a98515e8f8ae94fab16b4f1b07c82157c5b0b7732344e561 packages.nl.gz
-META SHA256 2a5b77f7531a4955ecfa8e055e0c65d7255dba81ecb10b21a3e7aa2be04a244b packages.pl.gz
-META SHA256 3932a18268e9b690fddd4dfb3a1c6bcd43ac4437f26537145f6661a1fe5018b4 packages.pt.gz
-META SHA256 3de3e156abd356bc11d4a58980fa69b5d232e029f53f8fda89e3f9e6e1b2672b packages.pt_BR.gz
-META SHA256 7fa8bf8677b41e1e68638dd6624901e53d44552e0333ffd0d1717d9a04c5a6ab packages.ru.gz
-META SHA256 567b2db65922b1cbbeba349a784b1d0b1ee41d113a02c29d62888c26194a55f1 packages.zh_CN.gz
-META SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 patterns
-HASH SHA256 3c56471910cc033424cbe91c2e9f6acb7bd65497bfba52e84cd443448d5df017 license.tar.gz
-HASH SHA256 0ccdbae83696e3e777cd18e38142f18adc40aa668a22d1c14cbe80c925cab423 control.xml
-HASH SHA256 385c1941409e50e42f8ebc2e1dd5c681355071a49048a13e2936bc8059016967 media.1/info.txt
-HASH SHA256 d704d29e35bf9dfe9b7192c0a60e3017ef83b9cc9adef04ce2d8cf4b15024d34 boot/x86_64/arphic-uming-fonts.rpm
-HASH SHA256 44877029ea26dd501fdc54c4786d6021b73122c038325c48091493a3ee139eb3 boot/x86_64/bind
-HASH SHA256 a02f3db014bd291d1e71f39dd9ead6957fdab011a1555fc0f3c51021f511b199 boot/x86_64/common
-HASH SHA256 6a44667b01d126a52e5c2cc1cabc898903ec8e41cabea0d870b72af07c1dff23 boot/x86_64/config
-HASH SHA256 7a3bde5d20ef246033698ea7ecf2f41f462b592056bae20526efb37df665b7c1 boot/x86_64/cracklib-dict-full.rpm
-HASH SHA256 1bb0c7956a68060e065555fda0c7d2d46956b41bf2b35cd41c8c3ea4beea7479 boot/x86_64/efi
-HASH SHA256 c518c3b156d6d5312c5045cbe17c5b087b688e693ccbf39853ad08f4a05adcc7 boot/x86_64/gdb
-HASH SHA256 f54b88bc0d4b82e98c6dba9aba8cb33c2e786833d8e40f6135b86e98842931b8 boot/x86_64/indic-fonts.rpm
-HASH SHA256 fdd6bb0b661206fdc62e62ca363de8c55a093fb4c02f4f030510dc9c0d54a41e boot/x86_64/initrd-xen
-HASH SHA256 9e6d01d851ac02a73f55afca5e75d8d31bb37b03afdfdc2af638b9242f51e441 boot/x86_64/ipa-gothic-fonts.rpm
-HASH SHA256 88f8d7cd58b04c8b71f1e9c7a6b9217790283632605b87441ea2b0ab7c565a64 boot/x86_64/khmeros-fonts.rpm
-HASH SHA256 87ad5a0902680768789c20c6278994e66c0c9951970363a5da4efc3b1342a004 boot/x86_64/mkbootdisk
-HASH SHA256 7b49c3cde57e14942bbf21c715a5a32eac4bcf3e9c5b5a1478b9f5bd9e3e7572 boot/x86_64/rescue
-HASH SHA256 9d1a89da63b5711370d15cf37a9c610f0c7595e5be25ea9e67878db0f164ba3f boot/x86_64/root
-HASH SHA256 24d328ef64d5921afcc3488cbfcf9b7b7ae5a306f316e5a0d28f52b95c4ec75e boot/x86_64/rpmlist
-HASH SHA256 c16f67ed3a176f3424071f690fef2be1b2b59838de977e0b2a2fa311dfc0df4e boot/x86_64/thai-fonts.rpm
-HASH SHA256 52ce608c9620e8ef604a0a3b28457d3f99b0ddd25d06525ed6b0fe7d95b8415d boot/x86_64/un-fonts.rpm
-HASH SHA256 12474c4267960ba11174191c73c1a579a402f21101e62849135db91f32b42447 boot/x86_64/vmlinuz-xen
-HASH SHA256 1cb21283dea60553a217b237f6d3debdf20496e3a92eb65272d6e2c4573dc7ff boot/x86_64/yast2-trans-af.rpm
-HASH SHA256 47f4ad637d8b686ddeb95e6aefa4b81a1360840bd13bbddb1b7bd78509985d58 boot/x86_64/yast2-trans-ar.rpm
-HASH SHA256 8a566add84b7fa1a55ddeecb0a2c0cfb4b245e7ad6e8ffe64c4a7931383e2fcc boot/x86_64/yast2-trans-bg.rpm
-HASH SHA256 4341ca008433f1c9a0755ad438404d677df0c5b68bfbb8386e49cb9573b74380 boot/x86_64/yast2-trans-bn.rpm
-HASH SHA256 e30d7554cee72c46121b104cee1e31e3cc6e17e7589accfbe9a33d81c04ee255 boot/x86_64/yast2-trans-bs.rpm
-HASH SHA256 f194e0cbb66f82623cfadb6acc0f0c22bb5d4aa5742b400e19d4eda443175d2c boot/x86_64/yast2-trans-ca.rpm
-HASH SHA256 e5b9af807dabfad9b19dbc6c4aaa8fe3138ef4dbd81a0b2ae8aa2be14e1efd5a boot/x86_64/yast2-trans-cs.rpm
-HASH SHA256 9b16be3aefd02c43a1b7f700cdb4cdd4bcb67edf74e0940d9e79c57bcdaaebff boot/x86_64/yast2-trans-cy.rpm
-HASH SHA256 30bb79027b12a618edff8b60b0b2691c983a2341c9fcfe960d3bc802168bad1e boot/x86_64/yast2-trans-da.rpm
-HASH SHA256 613ee3d36a2d01c0ed6a8fe49358e2c0e87fd69ee69b0a3b4259b85b1c26bdb0 boot/x86_64/yast2-trans-de.rpm
-HASH SHA256 1d18e28f608505263450c38dae4be4a5d18c333c42e26faf588e3ed23c711eca boot/x86_64/yast2-trans-el.rpm
-HASH SHA256 8b82fec5801d35d6dae6d234d6ef1b5decdb059bcde3cb6c80f1f8b38df74f56 boot/x86_64/yast2-trans-en_GB.rpm
-HASH SHA256 18eedd9a39b7f146b5b3f0c2e44b45aaa3870d4cf93efafaef24cd610b264acc boot/x86_64/yast2-trans-en_US.rpm
-HASH SHA256 8a172d59bd84667da62b8271e4363336ed411be2fb0212a98c9610c7e4c4fee6 boot/x86_64/yast2-trans-es.rpm
-HASH SHA256 f147c8518766d5f00c451461363f7f539b3ed65e3ff37653095320bec243326d boot/x86_64/yast2-trans-et.rpm
-HASH SHA256 6f9a2c5437c1582e7a56f5d852ee3bf1b021551e200e305a42a534a254c05330 boot/x86_64/yast2-trans-fa.rpm
-HASH SHA256 559349ba3b1543e57d9e796c9e7aca2aa6eb7b6c216e8acb0c5844b1700a9cda boot/x86_64/yast2-trans-fi.rpm
-HASH SHA256 0e0ddf17f87051dc38163c52f38a9fd098160101f07df8f6f87f7bb57a74cdfa boot/x86_64/yast2-trans-fr.rpm
-HASH SHA256 70a2ab180bfb67b98c7d65034bfa83bfbe9c6680dd49f5f01e1e6d2e59640e7c boot/x86_64/yast2-trans-gl.rpm
-HASH SHA256 d88087c242fefdc7124a0f0735aabb25dbe5638be91d1d22116ebb2f50c83eb3 boot/x86_64/yast2-trans-gu.rpm
-HASH SHA256 0ee9e8fef8e476fdde815418f92899889e70e80014b2afc34820709c6c0a19e7 boot/x86_64/yast2-trans-hi.rpm
-HASH SHA256 b4789a9c58d97d631c765877a7e3df2592696dc532437d7f055edc098257bdeb boot/x86_64/yast2-trans-hr.rpm
-HASH SHA256 d6efca6ce0d2b21b22ef98645a023b6f07674e825de8900cb49019afad4bb2bb boot/x86_64/yast2-trans-hu.rpm
-HASH SHA256 c9a68c6c095c80d058355b9237699c9a05943f8f45b1045e70f2cf860e4f6fd7 boot/x86_64/yast2-trans-id.rpm
-HASH SHA256 4d97c393a0584fa4122b57462e7143c172739773976139db8b477185b3e499e0 boot/x86_64/yast2-trans-it.rpm
-HASH SHA256 ec329ab1a64b6434e6ee4b88863fa0c359009c26f4052d6d1e25d1bac5d52908 boot/x86_64/yast2-trans-ja.rpm
-HASH SHA256 90eb1507c642d2130913188373073e947103d9abf455f0c9e2472c91bcb12469 boot/x86_64/yast2-trans-jv.rpm
-HASH SHA256 613e7263ae0d3924a90e50a95379f95a6fabee6139dc78bde1fb233c59cc34bc boot/x86_64/yast2-trans-ka.rpm
-HASH SHA256 f25dde54f46b0fe499791fa18abcaeee43164266d318b0add23989f8a101ee9a boot/x86_64/yast2-trans-km.rpm
-HASH SHA256 41b3a1b3b529862a02697744cce2bb7771db073c8d2e3147b42aa69dff02d00d boot/x86_64/yast2-trans-ko.rpm
-HASH SHA256 dc468af3cd6c8132cffa524cc2edcb504c4b6f98e1c69c83136dcb0ab8b9538c boot/x86_64/yast2-trans-lo.rpm
-HASH SHA256 ec8bb3035e1170008d1d3528e74d1d52114345c6e9e0cbd71bd04c6d2299a1a9 boot/x86_64/yast2-trans-lt.rpm
-HASH SHA256 ff6d280568dbcd4a81b5087a6293ff79e3c4794fc088f0dd15d96d3524b84587 boot/x86_64/yast2-trans-mk.rpm
-HASH SHA256 24b8e38e959c66ca9472bbc0ea0e9e084346b98769c0b747562ef7fc8b150d6c boot/x86_64/yast2-trans-mr.rpm
-HASH SHA256 8061b5369b6690aebc138e0e6ed9dd6d10d1d82daee1ca84af775d74076ecb2f boot/x86_64/yast2-trans-nb.rpm
-HASH SHA256 203864a002efec7ec805f37a37c344212372d27f2441b258b2f455af936a55cd boot/x86_64/yast2-trans-nl.rpm
-HASH SHA256 627b57df80aa97b0e6e4f0fadc9a395d8e7651330c6a5754b995b26f2c1bf875 boot/x86_64/yast2-trans-pa.rpm
-HASH SHA256 c5875eef6affad4c153e7cfc41b3379657c0883a283995ac5e90c27621fa8794 boot/x86_64/yast2-trans-pl.rpm
-HASH SHA256 985efa6ce1d1d6841549442aed29597b157c98a6794b532e4af873dc75b44da6 boot/x86_64/yast2-trans-pt.rpm
-HASH SHA256 b48e88beb2282136944fc7f98fcfe05af1c6c9024b74079562bd34512d72cc9a boot/x86_64/yast2-trans-pt_BR.rpm
-HASH SHA256 b6960f2808b7b3fe3eb6f40af3ac8de26ad870cbf6cc6ab46c305508765f0c4a boot/x86_64/yast2-trans-ro.rpm
-HASH SHA256 3ebdca69566f0a5521506d189ac9eec1472eb5cd89bb4061b2c8a5a2b88103d2 boot/x86_64/yast2-trans-ru.rpm
-HASH SHA256 7da30fe592ecc3c2463e78c170ec711810c606568fdad92f7386dddbc6cab802 boot/x86_64/yast2-trans-si.rpm
-HASH SHA256 32407c1f48949c52b27a4075d3e55e6f33f581dc18eb16d780bdad7a6da85e99 boot/x86_64/yast2-trans-sk.rpm
-HASH SHA256 20e0bcb82ac0667c6f13cb8f07e47c9114d3abd01fa1cc87c6256f7be6bee5d4 boot/x86_64/yast2-trans-sl.rpm
-HASH SHA256 8a3e3cdad8a13e90bb9946458ba6e76619c8486c37f8096b8379871c09664fc3 boot/x86_64/yast2-trans-sr.rpm
-HASH SHA256 3fcc32c883a5b480e9b0a3005da79a6e155d9aa759d91d7f4b6fda502a0a4d8e boot/x86_64/yast2-trans-sv.rpm
-HASH SHA256 091b324b2d1d1e269fcb879aadaa8cb7d3a827907acaf93edf10b7a297db37fd boot/x86_64/yast2-trans-ta.rpm
-HASH SHA256 bffa6821ce64588ade44f7ee86ab810e8b3717ab0043e78f5380a99312f0adc2 boot/x86_64/yast2-trans-th.rpm
-HASH SHA256 501736601af1d692a719300c6c36e05f651368ecb91f183ab86c93c2000fb9d9 boot/x86_64/yast2-trans-tr.rpm
-HASH SHA256 92cce4b41c4a96c2dc92a6e82582d1d487f8d6527b898112202e57e38a3012bb boot/x86_64/yast2-trans-uk.rpm
-HASH SHA256 2b776b3a192bbed3a5b3efd2da496014057f66972b0a2e6e1c76a078634180bf boot/x86_64/yast2-trans-vi.rpm
-HASH SHA256 8614a55f2828636b3d48cf72d2ef288a83ffcc6a480799eb08f0b686fd3ac56d boot/x86_64/yast2-trans-wa.rpm
-HASH SHA256 2d21d37be00e3605d5a9a0bade23d864ae54fa391b813bcc0bef1f0b6f22067b boot/x86_64/yast2-trans-xh.rpm
-HASH SHA256 deb02fc45cbb5ae60eff5f8d709e8dfff51a79954e3c79d7818804051a55a0c5 boot/x86_64/yast2-trans-zh_CN.rpm
-HASH SHA256 2daf6740945d9bf56eacfb3789e3e73e21b4ab9337ab7da8e13dc1156646a4fc boot/x86_64/yast2-trans-zh_TW.rpm
-HASH SHA256 86181848bf024542f7c0dd082ca354167a5f4f5b9623d2e6f574193f1544c9aa boot/x86_64/yast2-trans-zu.rpm
-HASH SHA256 3531a4cee4e502e891e296562960a1f154f588a31bacdcb5713c4fa840764a2c boot/x86_64/loader/linux
-HASH SHA256 3ca4f3f52b22d2cadfedfcc4552cfbface51562f767b9daa5f07cec6af669a3e boot/x86_64/loader/initrd
-HASH SHA256 66f2f83a34d832de2e7fc18eca59813d3497ca24c3cd954b5cf98961a479c911 docu/RELEASE-NOTES.en.html
-HASH SHA256 4db99b77702457fc0b8bedc4f70c691a3b12b322646a85b2c06fa21477967db1 docu/RELEASE-NOTES.en.pdf
-HASH SHA256 66f2f83a34d832de2e7fc18eca59813d3497ca24c3cd954b5cf98961a479c911 docu/RELEASE-NOTES.en.rtf
-HASH SHA256 789f911aee49b889a373cb368a6cdeaf69c90803c21439e53f9f89cd5272e0d3 docu/RELEASE-NOTES.en.txt
-KEY SHA256 cf04fe3267f44cd2d8de08ba72d70c35584b521c107eb1970b4014a9ba117c2d gpg-pubkey-39db7c82-510a966b.asc
-KEY SHA256 c3bef402223b6b35cb857e0775cca8eedbda64e37f052af8d222a35dddc7f4a2 gpg-pubkey-50a3dd1c-50f35137.asc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/library/packages/test/data/content_files/openSUSE_13.1_GM new/yast2-3.3.6/library/packages/test/data/content_files/openSUSE_13.1_GM
--- old/yast2-3.3.4/library/packages/test/data/content_files/openSUSE_13.1_GM 2017-07-21 16:47:08.184722812 +0200
+++ new/yast2-3.3.6/library/packages/test/data/content_files/openSUSE_13.1_GM 1970-01-01 01:00:00.000000000 +0100
@@ -1,134 +0,0 @@
-BASEARCHS x86_64
-CONTENTSTYLE 11
-DATADIR suse
-DESCRDIR suse/setup/descr
-DISTRIBUTION openSUSE
-LABEL openSUSE
-LINGUAS cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW
-NAME openSUSE
-RELNOTESURL http://doc.opensuse.org/release-notes/x86_64/openSUSE/13.1/release-notes-op…
-VENDOR openSUSE
-VERSION 13.1
-RELEASE 1.10
-META SHA256 22b76833801210a252ed1a00b6c5d4c800c89a24bcd7162592f561d9b8c636b7 app-icons.tar.gz
-META SHA256 02bfee819d968a97f7a31a29265ee017ad1fcc465bd46b3ced220616f4f1a070 appdata.xml.gz
-META SHA256 e533789cded733ee63c8de8966541c9fb7976f248699cb5b5b0ba9f70df55429 dvd-13.1-13.6.1.x86_64.pat.gz
-META SHA256 48e95ebba4f6d332378ca343451defbc053073a0adf3521969fffe74fb080923 packages.DU.gz
-META SHA256 c1c000324bbf7cc67d64c5d2403a3836d091ad5e9bbd18bfe932816c90bb837a packages.FL.gz
-META SHA256 cb32ba94f11c1f574cdb807643df5356ac40d7a46ab39ed1912dde237cf87413 packages.cs.gz
-META SHA256 12a6328a3f1ea13854e17306fafcc7a68d17ca703ef80d467aed27fd30fb8649 packages.de.gz
-META SHA256 d8197911e272b452df1441160153c115ad4a559ef60fb4f69a2bd881a724d387 packages.en.gz
-META SHA256 b86ef2fe33138f8593326538f8197aefdcab04bb71f3b6fbb1811798720cf730 packages.es.gz
-META SHA256 ea74f7a8941362fb0d578865b003c0228c6564c5c95a72edd049c27e011344ad packages.fi.gz
-META SHA256 fd7a7b72a0a2b946b78909ea358fb0a9d7a2ff7c719bed6fadfc979892227564 packages.fr.gz
-META SHA256 6f451df38a626e6c90c988e5da2e48b4800a61b9f9a201c4f784deab4d3c247a packages.gz
-META SHA256 829ec83fa77ba368829bb7801b4e8c4023facebc1194f3f9f4b75d663c58a141 packages.hu.gz
-META SHA256 6668f8b284d9e05f096ea9f5ba47da8fa416b493654257f3a435157528c4fd9e packages.it.gz
-META SHA256 df2ad0057133e2df56e9bc04df4677f0b5351fbfa25504099e055d512e9f1455 packages.ja.gz
-META SHA256 4a276d1585c4c85a98dd9fa5256d26f1e9898a819c4a393ddd0db1b2399c90e8 packages.nl.gz
-META SHA256 89aa0713b08e90f236eff93f3a8ba5ef1c9a61425c214ac655698e36bccff8f5 packages.pl.gz
-META SHA256 aa6b2d20304fc107689d467f6429aee89511e977a4b83b6dd463ceb0d26a450b packages.pt.gz
-META SHA256 51f3c201955ed4e75fff64668d366154517914adcb1815523dddf245c49058ad packages.pt_BR.gz
-META SHA256 4174f1201bccb8df8c35e3d2f68fac253286eeefc7fdd3b52e16df574864f0a8 packages.ru.gz
-META SHA256 16f227617049ab685901fec9132d472ed8f3b41c3059c775a9a934929b86640a packages.zh_CN.gz
-META SHA256 2f4636d20dedc934440f265800ef056fb4763a201d6c826e6e7f33d63795a4dd patterns
-HASH SHA256 88e80af6d7d00c9e1c68394af40079407e243ae10f508d68843cf15bb41e2eaf license.tar.gz
-HASH SHA256 74c04e33bbac86db0cd5af004d08cf19af62c81d179c7018678206c267c6f8b2 control.xml
-HASH SHA256 b5b09c6fbc81f7c5b00ac38a5dc768bad2601ef48d1c1b2df28009ff28a87c0a boot/x86_64/arabic-fonts.rpm
-HASH SHA256 0a43cd62931660b87821bed8470b972e86bf173a5b29536ac6d2449e86cd87f3 boot/x86_64/arphic-uming-fonts.rpm
-HASH SHA256 906038fec0baed45e80ee9edffb303ab6ab6b8b624d5721d9fd8f47e276dca8d boot/x86_64/bind
-HASH SHA256 a4859679441c231b57caa1ed84eeec11bb0217574a83f938defaa1dbe37a5d2b boot/x86_64/branding
-HASH SHA256 c8109a0a4fde9646ca1e8bc502c1f0bda214df5cb32ae09ac46721028e337a83 boot/x86_64/common
-HASH SHA256 bbfa1254ebddb53373f9450892edf5af235639de753469ec5f4da9a8184131f8 boot/x86_64/config
-HASH SHA256 e7bf49433cdd4ee14924ed3dcb2f259ae7bfab1ceb60fa1545ac526a90b7ee0f boot/x86_64/cracklib-dict-full.rpm
-HASH SHA256 6657adc65688f67381eb08e2bb2b2245bd6aa2d32bcba9a61f3c9aeaa415fd02 boot/x86_64/efi
-HASH SHA256 1462345268f15c8d83ba353614649b44100ef8411b3b5841a492f164a287536d boot/x86_64/gdb
-HASH SHA256 1b15d6d28bc74279941fdaaaa93ef39345ff9ef1c5f91fdc86692c60796c42f4 boot/x86_64/indic-fonts.rpm
-HASH SHA256 5ae12d76d2ef210416347630d125d9de93b2abeade0676ff728d9392c0f3db2b boot/x86_64/initrd-xen
-HASH SHA256 202817279ab2ea62c041257fc90bd0fad45f2ee8ac4178a3d3f99f4da5c48326 boot/x86_64/ipa-gothic-fonts.rpm
-HASH SHA256 8503c74be2fefab329fc6b6ce4605b16efcc491f616831f26960080bcda893af boot/x86_64/khmeros-fonts.rpm
-HASH SHA256 01b9029a0653995c15f98114145db918b7ccb4f284f4343b957b83d8ebaf306c boot/x86_64/lklug-fonts.rpm
-HASH SHA256 a28408defa649eb0b765b9d50752ae27d66d59a92e9659168a29f1c94fa7e7c9 boot/x86_64/mkbootdisk
-HASH SHA256 a4859679441c231b57caa1ed84eeec11bb0217574a83f938defaa1dbe37a5d2b boot/x86_64/openSUSE
-HASH SHA256 83ae6c1b0b2d2f11e35099b42ebc74a56d8b57ad54aec6cfeb8773ac8ec0ee2b boot/x86_64/rescue
-HASH SHA256 c3aedcbacdab15d85f80864946f69760bd8ce03f5a698abfa14aaef7fc5ca6cd boot/x86_64/root
-HASH SHA256 24d328ef64d5921afcc3488cbfcf9b7b7ae5a306f316e5a0d28f52b95c4ec75e boot/x86_64/rpmlist
-HASH SHA256 ec62cca55983dd1051fdabd6019198a3710db30ba5d854834c1fae4eb3fae200 boot/x86_64/thai-fonts.rpm
-HASH SHA256 8ceed03c8ef4456bba703280af0da873529512fed2cc426bcc9561d08f893743 boot/x86_64/un-fonts.rpm
-HASH SHA256 8138638d5607f5b5a9f333fb786aad99a81f31c833412c26e496542f1d63243d boot/x86_64/vmlinuz-xen
-HASH SHA256 78df153357ec508359bbc793b13f595b9e4d5aeb6374b3de96fa6584007652a2 boot/x86_64/yast2-trans-af.rpm
-HASH SHA256 fa72160684044687669b0b1140043b41ec122ba1c9404b9417478cf1bf2de3bd boot/x86_64/yast2-trans-ar.rpm
-HASH SHA256 6ba65a3a97b92365b6a8af3bcd3a309a8de189a38c0700f5d1b26f6f1540e129 boot/x86_64/yast2-trans-bg.rpm
-HASH SHA256 7d2262e53d7b4bf3bde8beab827adb3a27b7f189091d29f6fd35f384757137a7 boot/x86_64/yast2-trans-bn.rpm
-HASH SHA256 effd28b8ce6760022570cb79654d8e56aa7071adabcf8d392d7c677c89ea2a3b boot/x86_64/yast2-trans-bs.rpm
-HASH SHA256 8e7130a38937cd332a59d64f3109a709f9ca3db304bae1d70cc98571404da67b boot/x86_64/yast2-trans-ca.rpm
-HASH SHA256 6ff78cad8530930f42dcfe92f2bcb7aa629a5cf2dc881bcbc6e7299d6bbde752 boot/x86_64/yast2-trans-cs.rpm
-HASH SHA256 f873c8f29be001e711e69226ae5b14ed6336ddbe3213284db148383abcfea4fd boot/x86_64/yast2-trans-cy.rpm
-HASH SHA256 50d5b57e7d309e34788dbf5047b144a61c0037aaddeacbcef5b5904ba67d38fb boot/x86_64/yast2-trans-da.rpm
-HASH SHA256 0367f050e6d0bff8aee1ce6568177937b944a2510adcf1024c1cad4cff7f7a45 boot/x86_64/yast2-trans-de.rpm
-HASH SHA256 020d33d35b9cd2f28cf5640bbcc3159446c3e1df78e10147b09e7a0351b331c4 boot/x86_64/yast2-trans-el.rpm
-HASH SHA256 96cc2db2319f0b7945dd22feba9a150b44f20510aac2b8e71eb70194a76d6980 boot/x86_64/yast2-trans-en_GB.rpm
-HASH SHA256 91f982f4605aeb319b918a54fc4d9dae3a7bd4c59a572b0472808785764f8876 boot/x86_64/yast2-trans-en_US.rpm
-HASH SHA256 f9ad4f5c50550a7cdb64dda80e04328b587badde74183226d4be0385bca5e448 boot/x86_64/yast2-trans-es.rpm
-HASH SHA256 38c9a284592feb4699ac7ff2e583bf7ac6478544493b3c7dbbec92b7176d917d boot/x86_64/yast2-trans-et.rpm
-HASH SHA256 44be0d078928806c801c4e49888636b4cb53badf677047e555557263d012cfef boot/x86_64/yast2-trans-fa.rpm
-HASH SHA256 82940fd86ad553cb5e9ea04a12607066897f02fa6f86eb88f8fd9131202abeda boot/x86_64/yast2-trans-fi.rpm
-HASH SHA256 e283339638c62a6c4da3bcd938f853f5f93f6f4ee5bd5993704aa9fb96a59954 boot/x86_64/yast2-trans-fr.rpm
-HASH SHA256 3eff60446d38e5b3ced9367a18bd216ea32386b300f1f6c96438b0c908187b08 boot/x86_64/yast2-trans-gl.rpm
-HASH SHA256 1924ccab5c86257b1a46c510bbf8e6be29eb56e9126e08fa01aea3e222bb86ed boot/x86_64/yast2-trans-gu.rpm
-HASH SHA256 12410aa1644198d0d843b2ec3f9f756aacc51d31b8271aa40b52bca774e953be boot/x86_64/yast2-trans-hi.rpm
-HASH SHA256 4d7140f794bf85ea28a53f0d74bc0da299cdcdad780a23ddd369633bd05753df boot/x86_64/yast2-trans-hr.rpm
-HASH SHA256 2fe82d1ccc01367b54c8576044353b78bc51cd3f6a95f61bce527924fb43b382 boot/x86_64/yast2-trans-hu.rpm
-HASH SHA256 439532f45f1302523013844fe5c424829e52ce6bfdf98bf2daed953bffd39c8a boot/x86_64/yast2-trans-id.rpm
-HASH SHA256 18aba1dd3e21db1bf88052f7c761df2a28e7e1c04024893217b20544e6317ed0 boot/x86_64/yast2-trans-it.rpm
-HASH SHA256 3bf826b3d9fcbdd80bd2295afc72be6ec3905c69ff2d5042e06ba2a53ddac8d8 boot/x86_64/yast2-trans-ja.rpm
-HASH SHA256 d54f9428c169f541966735589335e61bc5b25e3b87299f8bde7433f0449420ab boot/x86_64/yast2-trans-jv.rpm
-HASH SHA256 40b606e7ef982c0437e2783cdb32a1574600891fa7ab73b39a843681557bbb68 boot/x86_64/yast2-trans-ka.rpm
-HASH SHA256 4cd0b59a05ef80ad2e032a8c48b78604d0ba8177eaeeff8bb4d3a5b336f29ca7 boot/x86_64/yast2-trans-km.rpm
-HASH SHA256 7ed47f3a0b31a1d108e6ea9f8632b320a6cd2ee6500cc3cc3eaeb073f174f590 boot/x86_64/yast2-trans-ko.rpm
-HASH SHA256 eb284f364568f21caab714ea310f1312340f19d1eee33c6d738e82892c0cfb20 boot/x86_64/yast2-trans-lo.rpm
-HASH SHA256 f9fde6182669f1353783255288838efafe74576e1480fb193e867d0c2d9214d0 boot/x86_64/yast2-trans-lt.rpm
-HASH SHA256 c3abd9c551a785f88f95f40c82f982fc28d8d8b4dd8df7b9bc1cc1a6a4aebf41 boot/x86_64/yast2-trans-mk.rpm
-HASH SHA256 9ee12d09ec5908af3c42e99b60fa09c4dd5e6007896c2a21e96f00d4e905a9e3 boot/x86_64/yast2-trans-mr.rpm
-HASH SHA256 49f10b91685bb03a13270f4d19c7aeca3a0c974e7d4093373217b2e93bef1d2f boot/x86_64/yast2-trans-nb.rpm
-HASH SHA256 8cea01ddc6adc5599f448b2116d32628e4712e92b5f3a9faa9657abb7b0ab8b3 boot/x86_64/yast2-trans-nl.rpm
-HASH SHA256 595600b69f6eda4864020e3d1fe620de73db2efd7705461b7a69acc59157de64 boot/x86_64/yast2-trans-pa.rpm
-HASH SHA256 d33cba6e4203394d56e93569f04a1508cb8631b450dcd5aac9e212d6be2200c1 boot/x86_64/yast2-trans-pl.rpm
-HASH SHA256 756faaa0323c541d825349d56dadbd14b493d82da4a1f1ae78aedbc65634f7aa boot/x86_64/yast2-trans-pt.rpm
-HASH SHA256 edb11e44887e4014978c6286fbe8f3095eff9ccaf7610087553eb5db7c1b59a2 boot/x86_64/yast2-trans-pt_BR.rpm
-HASH SHA256 b13d9e05098792e8e393dc8c48bcfd4ecbb0f815e8f5e3d5fbf8aaa9515ec60c boot/x86_64/yast2-trans-ro.rpm
-HASH SHA256 cd297f102ad6aacb82794292b4db0e37ec14ebde8b8b20ea8c34bd985237058f boot/x86_64/yast2-trans-ru.rpm
-HASH SHA256 1d99700886396e5bcfde2cb3cccbf6bec0382303d6bcc116e18825237ba03fed boot/x86_64/yast2-trans-si.rpm
-HASH SHA256 0ab012464067a601d191933f1dfd0cc813bd9ffb3dbe7f636dfd3e2d86710285 boot/x86_64/yast2-trans-sk.rpm
-HASH SHA256 59dfe030555208c9bb8a87b28f3e8b88370ab9e02ef8c172cac6d6f953def2b9 boot/x86_64/yast2-trans-sl.rpm
-HASH SHA256 8a934ef66bc060710c386e5c6096bf451743797c2fa3935131c4e6a46f135163 boot/x86_64/yast2-trans-sr.rpm
-HASH SHA256 4a4a04558d1558f168feaa4503bb7af5080eed5e79c3c775eec38c5deedbd61e boot/x86_64/yast2-trans-sv.rpm
-HASH SHA256 5226a2b01c2ce81b7e0f81b359a3f3b5abe77113f4c640cb791c72a5971017d0 boot/x86_64/yast2-trans-ta.rpm
-HASH SHA256 3bc3031532e509120043d03d25f3ea6d54d23ee8f5747a9fdc9e94794bc2b005 boot/x86_64/yast2-trans-th.rpm
-HASH SHA256 55d3fb46ff64b656f4d32866be5d7485fddb4eec968a9cc190df17304e94edbf boot/x86_64/yast2-trans-tr.rpm
-HASH SHA256 b4a9c8a35aa3eed1ce9e1f2766a0f8735e9e2950b87461917ec85d1c4b4e6792 boot/x86_64/yast2-trans-uk.rpm
-HASH SHA256 a05bd29d45ac72c00be0a4ecc012acae6ebce784bc85c86f5a7ffc0c338b708f boot/x86_64/yast2-trans-vi.rpm
-HASH SHA256 81a8c545cbbe3a76c55aab171d36ac0a32974924dc7ad7a4e3ab1b56b98a5cf7 boot/x86_64/yast2-trans-wa.rpm
-HASH SHA256 f3f1348524de5df7ed502d49e3e92289c562c6c3528d73abb1e2c7164e6cd32a boot/x86_64/yast2-trans-xh.rpm
-HASH SHA256 c10e9fa8b905a4e002c6aa83ce11e6e9cbdf3419cdb84b47f71ebc520d2bbb89 boot/x86_64/yast2-trans-zh_CN.rpm
-HASH SHA256 7182aebe7a28a0c0fb2fe80a86004bcac1a5df388844fb1072b057a7ec620ad9 boot/x86_64/yast2-trans-zh_TW.rpm
-HASH SHA256 8709e4079ebf7a40aefe944397446345ff3360432435d6ec706d1eef0fd463d3 boot/x86_64/yast2-trans-zu.rpm
-HASH SHA256 8d7ebcc6110be10e4c92efcb22b9ec18eb7ca47082d0e1c75469762c3c6da896 boot/x86_64/loader/linux
-HASH SHA256 7133889fd485bb79cd8faeaade82962bc1725b0e55ab25963e1c7079b33f55cc boot/x86_64/loader/initrd
-HASH SHA256 29da2d4800c56997f42b0b3b1fa2217e4941d5190b2c65495302a4ab19b2b424 docu/RELEASE-NOTES.en.html
-HASH SHA256 29da2d4800c56997f42b0b3b1fa2217e4941d5190b2c65495302a4ab19b2b424 docu/RELEASE-NOTES.en.rtf
-HASH SHA256 d6d275f7c9fdf9a35e4f9028de1cd5497bba23532df6aaef421bbd69765e3abc images/base-meta-x86_64.tar.xz
-HASH SHA256 cad69c81b7e1484d61632e583b7bfe057a3f829356ada53fd6e37d93ffc1299c images/base-x86_64.tar.xz
-HASH SHA256 1028483b2f5aad6068f0c3a3f83841b86dcd50adac84ea4b91cdef9d9428f0f8 images/common-base-x86_64.tar.xz
-HASH SHA256 8e08dace336fc6f8d233208a41392526c82a8230463d799c2b797158bf95d38d images/common-desktop-x86_64.tar.xz
-HASH SHA256 c15a8d4461c53883a21b8d9a847b8223c2b79b766bb6b583457bf3850bb2b2ad images/common-xorg-x86_64.tar.xz
-HASH SHA256 28bb97af6cb529c464a196ba0e8368ac8e7e74a7a4048a6cc70f5f7dea3588dc images/details-x86_64.xml
-HASH SHA256 f965bbecd18f0a909ce29468132145552aa3bb34ced8706afc428bdf6412b300 images/gnome-meta-x86_64.tar.xz
-HASH SHA256 0b2545bc48852eab8ffad9954013c303b6b8d686b4e017304cf75155be3cd4ab images/gnome-x86_64.tar.xz
-HASH SHA256 2e178f14f455c7d90bde72026c59b38d76ba41d1973a6940f6bca55b98580022 images/images.xml
-HASH SHA256 f4cb3b17c8516bb464ec867461bbab4863c2405de144da477d156a169f192bf3 images/kde-meta-x86_64.tar.xz
-HASH SHA256 416acadec90c0f351dbf7e18cca46c04d093ef2b8ce3ed7e50fffbfd3e8e9a4a images/kde-x86_64.tar.xz
-HASH SHA256 0eb8dfc715e6506233d8f935cbc46d287d3b63af1e2338211e829b5b99ef9684 images/x11-meta-x86_64.tar.xz
-HASH SHA256 39b5f8b2195699863e9ea6d8064f35c70835e7213cabd10b6d4ca6de4d1e1b9b images/x11-x86_64.tar.xz
-KEY SHA256 d9f574c69457dc5ee30d8d143484677379d2e9229fa9fb7986462dd716d08ad6 gpg-pubkey-307e3d54-4be01a65.asc
-KEY SHA256 d44bd0be5ac11f1ca9b613375ef3d799d1d2ce83fa122d2e6366702af7100cb6 gpg-pubkey-3dbdc284-4be1884d.asc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/package/yast2.changes new/yast2-3.3.6/package/yast2.changes
--- old/yast2-3.3.4/package/yast2.changes 2017-07-21 16:47:08.384722812 +0200
+++ new/yast2-3.3.6/package/yast2.changes 2017-07-31 11:06:26.308824981 +0200
@@ -1,4 +1,19 @@
-------------------------------------------------------------------
+Mon Jul 31 08:23:57 UTC 2017 - jreidinger(a)suse.com
+
+- WorkflowManager: allow to extend workflow from rpm package
+ (needed for FATE#323450)
+- WorkflowManager: drop never used support to extend workflow from
+ pattern
+- 3.3.6
+
+-------------------------------------------------------------------
+Thu Jul 27 12:28:09 UTC 2017 - jreidinger(a)suse.com
+
+- drop reading /content file (FATE#322386)
+- 3.3.5
+
+-------------------------------------------------------------------
Fri Jul 21 14:18:57 UTC 2017 - lslezak(a)suse.cz
- cwm/rspec.rb: added tests in "CWM::RadioButtons" group for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.3.4/package/yast2.spec new/yast2-3.3.6/package/yast2.spec
--- old/yast2-3.3.4/package/yast2.spec 2017-07-21 16:47:08.384722812 +0200
+++ new/yast2-3.3.6/package/yast2.spec 2017-07-31 11:06:26.308824981 +0200
@@ -17,7 +17,7 @@
Name: yast2
-Version: 3.3.4
+Version: 3.3.6
Release: 0
Summary: YaST2 - Main Package
License: GPL-2.0
1
0
Hello community,
here is the log from the commit of package yast2-country for openSUSE:Factory checked in at 2017-08-02 11:26:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-country (Old)
and /work/SRC/openSUSE:Factory/.yast2-country.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-country"
Wed Aug 2 11:26:46 2017 rev:183 rq:512863 version:3.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-country/yast2-country.changes 2017-06-22 10:35:12.557469742 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-country.new/yast2-country.changes 2017-08-02 11:26:47.569844394 +0200
@@ -1,0 +2,8 @@
+Thu Jul 27 11:19:13 UTC 2017 - jreidinger(a)suse.com
+
+- No longer read /content file from media, instead language from
+ control.xml is used and list of supported languages is dropped
+ (FATE#322386)
+- 3.3.0
+
+-------------------------------------------------------------------
Old:
----
yast2-country-3.2.12.tar.bz2
New:
----
yast2-country-3.3.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-country.spec ++++++
--- /var/tmp/diff_new_pack.ybIZ0s/_old 2017-08-02 11:26:48.477716039 +0200
+++ /var/tmp/diff_new_pack.ybIZ0s/_new 2017-08-02 11:26:48.481715474 +0200
@@ -17,7 +17,7 @@
Name: yast2-country
-Version: 3.2.12
+Version: 3.3.0
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-country-3.2.12.tar.bz2 -> yast2-country-3.3.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-country-3.2.12/language/src/modules/Language.rb new/yast2-country-3.3.0/language/src/modules/Language.rb
--- old/yast2-country-3.2.12/language/src/modules/Language.rb 2017-06-20 09:46:51.649714053 +0200
+++ new/yast2-country-3.3.0/language/src/modules/Language.rb 2017-07-28 09:47:23.953816176 +0200
@@ -599,8 +599,8 @@
end
if Stage.initial && !Mode.live_installation
- lang = Convert.to_string(SCR.Read(path(".content.LANGUAGE")))
- Builtins.y2milestone("content LANGUAGE %1", lang)
+ lang = ProductFeatures.GetStringFeature("globals", "language")
+ Builtins.y2milestone("product LANGUAGE %1", lang)
@preselected = Linuxrc.InstallInf("Locale")
Builtins.y2milestone("install_inf Locale %1", @preselected)
@@ -1318,39 +1318,10 @@
# check if selected language has support on media (F301238)
# show a warning when not
- def CheckLanguagesSupport(selected_language)
- linguas = Convert.to_string(SCR.Read(path(".content.LINGUAS")))
-
- if linguas == nil
- Builtins.y2warning("No LINGUAS tag defined in content file")
- return
- end
-
- Builtins.y2milestone("content LINGUAS %1", linguas)
- all_linguas = Builtins.splitstring(linguas, " ")
- language_short = Ops.get(
- Builtins.splitstring(selected_language, "_"),
- 0,
- ""
- )
-
- if !Builtins.contains(all_linguas, selected_language) &&
- !Builtins.contains(all_linguas, language_short)
- Builtins.y2milestone(
- "Language %1 is not fully supported",
- selected_language
- )
- # popup message
- Popup.Message(
- _(
- "Only minimal support for the selected language is included on this media.\n" +
- "Enable online repositories later in order to get the appropriate support\n" +
- "for this language.\n"
- )
- )
- end
-
- nil
+ # @deprecated does nothing
+ def CheckLanguagesSupport(_selected_language)
+ log.warn "Called check for language support, but it does nothing"
+ return
end
# Set current YaST language to English if method for showing text in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-country-3.2.12/package/yast2-country.changes new/yast2-country-3.3.0/package/yast2-country.changes
--- old/yast2-country-3.2.12/package/yast2-country.changes 2017-06-20 09:46:51.649714053 +0200
+++ new/yast2-country-3.3.0/package/yast2-country.changes 2017-07-28 09:47:23.957816176 +0200
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+Thu Jul 27 11:19:13 UTC 2017 - jreidinger(a)suse.com
+
+- No longer read /content file from media, instead language from
+ control.xml is used and list of supported languages is dropped
+ (FATE#322386)
+- 3.3.0
+
+-------------------------------------------------------------------
Mon Jun 19 14:45:17 UTC 2017 - gsouza(a)suse.com
- Alterations in vconsole.conf performed by localectl and not
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-country-3.2.12/package/yast2-country.spec new/yast2-country-3.3.0/package/yast2-country.spec
--- old/yast2-country-3.2.12/package/yast2-country.spec 2017-06-20 09:46:51.649714053 +0200
+++ new/yast2-country-3.3.0/package/yast2-country.spec 2017-07-28 09:47:23.957816176 +0200
@@ -17,7 +17,7 @@
Name: yast2-country
-Version: 3.2.12
+Version: 3.3.0
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
1
0
Hello community,
here is the log from the commit of package yast2-packager for openSUSE:Factory checked in at 2017-08-02 11:26:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-packager (Old)
and /work/SRC/openSUSE:Factory/.yast2-packager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-packager"
Wed Aug 2 11:26:40 2017 rev:338 rq:512861 version:3.3.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-packager/yast2-packager.changes 2017-07-22 02:31:59.147403795 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-packager.new/yast2-packager.changes 2017-08-02 11:26:43.330443760 +0200
@@ -1,0 +2,16 @@
+Thu Jul 27 11:12:01 CEST 2017 - schubi(a)suse.de
+
+- AutoYaST: Configuring EULA acceptance of add-on products has
+ not worked if the add-on product is on the medium of the base
+ product too. (bnc#1032523).
+ Now the add-on product has to be defined in the AutoYaST
+ configuration file explicit.
+- 3.3.2
+
+-------------------------------------------------------------------
+Wed Jul 26 14:18:31 UTC 2017 - jreidinger(a)suse.com
+
+- drop reading "/content" file (FATE#322386)
+- 3.3.1
+
+-------------------------------------------------------------------
Old:
----
yast2-packager-3.3.0.tar.bz2
New:
----
yast2-packager-3.3.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-packager.spec ++++++
--- /var/tmp/diff_new_pack.4ezJ5D/_old 2017-08-02 11:26:45.174183092 +0200
+++ /var/tmp/diff_new_pack.4ezJ5D/_new 2017-08-02 11:26:45.178182527 +0200
@@ -17,7 +17,7 @@
Name: yast2-packager
-Version: 3.3.0
+Version: 3.3.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-packager-3.3.0.tar.bz2 -> yast2-packager-3.3.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.3.0/package/yast2-packager.changes new/yast2-packager-3.3.2/package/yast2-packager.changes
--- old/yast2-packager-3.3.0/package/yast2-packager.changes 2017-07-20 13:40:44.767976013 +0200
+++ new/yast2-packager-3.3.2/package/yast2-packager.changes 2017-07-28 09:44:36.217816176 +0200
@@ -1,4 +1,20 @@
-------------------------------------------------------------------
+Thu Jul 27 11:12:01 CEST 2017 - schubi(a)suse.de
+
+- AutoYaST: Configuring EULA acceptance of add-on products has
+ not worked if the add-on product is on the medium of the base
+ product too. (bnc#1032523).
+ Now the add-on product has to be defined in the AutoYaST
+ configuration file explicit.
+- 3.3.2
+
+-------------------------------------------------------------------
+Wed Jul 26 14:18:31 UTC 2017 - jreidinger(a)suse.com
+
+- drop reading "/content" file (FATE#322386)
+- 3.3.1
+
+-------------------------------------------------------------------
Thu Jul 20 06:44:42 UTC 2017 - lslezak(a)suse.cz
- Less strict low memory detection, there might be some rounding
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.3.0/package/yast2-packager.spec new/yast2-packager-3.3.2/package/yast2-packager.spec
--- old/yast2-packager-3.3.0/package/yast2-packager.spec 2017-07-20 13:40:44.767976013 +0200
+++ new/yast2-packager-3.3.2/package/yast2-packager.spec 2017-07-28 09:44:36.217816176 +0200
@@ -17,7 +17,7 @@
Name: yast2-packager
-Version: 3.3.0
+Version: 3.3.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.3.0/src/clients/inst_mediacopy.rb new/yast2-packager-3.3.2/src/clients/inst_mediacopy.rb
--- old/yast2-packager-3.3.0/src/clients/inst_mediacopy.rb 2017-07-20 13:40:44.807976013 +0200
+++ new/yast2-packager-3.3.2/src/clients/inst_mediacopy.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,147 +0,0 @@
-# encoding: utf-8
-
-# Module: inst_mediacopy.ycp
-#
-# Authors: Anas Nashif <nashif(a)suse.de>
-#
-# Purpose: Copy Media to local disk
-#
-# $Id$
-#
-module Yast
- class InstMediacopyClient < Client
- def main
- Yast.import "Pkg"
- textdomain "packager"
-
- Yast.import "Label"
- Yast.import "Popup"
- Yast.import "Wizard"
- Yast.import "Packages"
- Yast.import "PackageCallbacks"
- Yast.import "PackageCallbacksInit"
- Yast.import "Installation"
- Yast.import "GetInstArgs"
- Yast.import "String"
-
- @source_list = []
-
- # full initialization is required for Pkg::SourceMediaData()
- Packages.Init(true)
- @num = Builtins.size(Packages.theSources)
- if Ops.less_or_equal(@num, 0)
- Builtins.y2error("No repository")
- else
- Builtins.foreach(Packages.theSources) do |i|
- new_product = Pkg.SourceProductData(i)
- @source_list = Builtins.add(
- @source_list,
- Item(
- Id(i),
- Ops.get_string(new_product, "productname", "?"),
- Ops.get_string(new_product, "productversion", "?")
- )
- )
- end
- end
-
- # dialog heading
- @heading_text = _("Copy Installation Media")
- # help text
- @help_text = _(
- "<p>The installation CDs will be copied into the system\n" +
- "to create a repository that can be used to install\n" +
- "other systems.</p>\n"
- )
- # label for showing repositories
- @label = _("Registered Repositories")
-
- @contents = VBox(
- HCenter(
- HSquash(
- VBox(
- HSpacing(40), # force minimum width
- Left(Label(@label)),
- Table(Id(:sources), Header(_("Name"), _("Version")), @source_list)
- )
- )
- ),
- VSpacing(2)
- )
-
- Wizard.SetContents(
- @heading_text,
- @contents,
- @help_text,
- GetInstArgs.enable_back,
- GetInstArgs.enable_next
- )
-
- @dest = ""
- if SCR.Read(path(".target.dir"), Ops.add(Installation.destdir, "/export")) == nil
- SCR.Execute(
- path(".target.mkdir"),
- Ops.add(Installation.destdir, "/export")
- )
- end
- @dest = Ops.add(Installation.destdir, "/export")
-
- PackageCallbacksInit.SetMediaCallbacks
-
- @s = Pkg.SourceGetCurrent(false)
- Builtins.y2milestone("%1", @s)
-
- Builtins.foreach(@s) do |source|
- md = Pkg.SourceMediaData(source)
- pd = Pkg.SourceProductData(source)
- distprod = Ops.get_string(pd, "label", "")
- l = Builtins.splitstring(distprod, " ")
- distprod = Builtins.mergestring(l, "-")
- updir = Convert.to_string(SCR.Read(path(".etc.install_inf.UpdateDir")))
- __export = ""
- if updir == nil
- __export = Ops.add(@dest, "/dist")
- else
- __export = Ops.add(@dest, updir)
- end
- changed_url = false
- i = 1
- while Ops.less_or_equal(i, Ops.get_integer(md, "media_count", 0))
- tgt = Builtins.sformat("%1/%2/CD%3", __export, distprod, i)
- Builtins.y2debug("tgt: %1", tgt)
- #Popup::Message(sformat(_("Before... %1"), i ));
- dir = Pkg.SourceProvideDirectory(source, i, ".", false, false)
- #Popup::Message(sformat(_("After... %1"), i ));
- if dir != nil
- # feedback popup 1/2
- Popup.ShowFeedback(
- _("Copying CD contents to a local directory..."),
- # feedback popup 2/2
- _("Please wait...")
- )
- SCR.Execute(path(".target.mkdir"), tgt)
- #string cmd = sformat("cd %1 && tar cf - . | (cd %2 && tar xBf -)", dir, tgt);
- cmd = Builtins.sformat(
- "cp '%1/content' '%2'",
- String.Quote(Builtins.tostring(dir)),
- String.Quote(tgt)
- )
- SCR.Execute(path(".target.bash"), cmd)
-
- if !changed_url
- Pkg.SourceChangeUrl(source, Ops.add("dir://", tgt))
- changed_url = true
- end
-
- Popup.ClearFeedback
- end
- i = Ops.add(i, 1)
- end
- end
-
- :next
- end
- end
-end
-
-Yast::InstMediacopyClient.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.3.0/src/modules/AddOnProduct.rb new/yast2-packager-3.3.2/src/modules/AddOnProduct.rb
--- old/yast2-packager-3.3.0/src/modules/AddOnProduct.rb 2017-07-20 13:40:44.883976013 +0200
+++ new/yast2-packager-3.3.2/src/modules/AddOnProduct.rb 2017-07-28 09:44:36.241816176 +0200
@@ -780,119 +780,19 @@
nil
end
- # Checks whether the content file of the add-on has a flag REGISTERPRODUCT
- # set to "true" or "yes". If it has, product is added into list of pruducts
- # that need registration. Cached content file is used if possible.
+ # Checks whether the addon at src_id need registration
+ # If it has, product is added into list of products that need registration.
#
# @param [Fixnum] src_id source id
def PrepareForRegistration(src_id)
control_file = WorkflowManager.GetCachedWorkflowFilename(:addon, src_id, "");
- if WorkflowManager.IncorporateControlFileOptions(control_file) == true
+ return unless WorkflowManager.IncorporateControlFileOptions(control_file)
# FATE #305578: Add-On Product Requiring Registration
- if WorkflowManager.WorkflowRequiresRegistration(src_id)
- Builtins.y2milestone("REGISTERPRODUCT (require_registration) defined in control file")
- @addons_requesting_registration << deep_copy(src_id)
- return nil
- end
- end
-
-
- tmpdir = Ops.add(
- Convert.to_string(SCR.Read(path(".target.tmpdir"))),
- "/add-on-content-files/"
- )
-
- # create directory if doesn't exist
- if !FileUtils.Exists(tmpdir)
- run = Convert.to_integer(
- SCR.Execute(
- path(".target.bash"),
- Builtins.sformat("/bin/mkdir -p '%1'", tmpdir)
- )
- )
- if run != 0
- Builtins.y2error("Cannot create directory %1", tmpdir)
- return nil
- end
- end
+ return unless WorkflowManager.WorkflowRequiresRegistration(src_id)
- # use cached file if possible
- contentfile = Builtins.sformat("%1content-%2", tmpdir, src_id)
- if FileUtils.Exists(contentfile)
- Builtins.y2milestone("Using cached contentfile %1", contentfile)
- else
- Builtins.y2milestone("Checking contentfile from repository")
- sourcefile = GetCachedFileFromSource(
- src_id,
- 1,
- "/content",
- "signed",
- true
- )
- if sourcefile == nil
- Builtins.y2warning("Cannot obtain content file!")
- return nil
- end
- # copying content file
- run = Convert.to_integer(
- SCR.Execute(
- path(".target.bash"),
- Builtins.sformat(
- "/bin/cp '%1' '%2'",
- String.Quote(sourcefile),
- String.Quote(contentfile)
- )
- )
- )
- if run != 0
- Builtins.y2error("Cannot copy '%1' to '%2'", sourcefile, contentfile)
- return nil
- end
- end
-
- # registering agent for the current content file
- SCR.RegisterAgent(
- path(".addon.content"),
- term(
- :ag_ini,
- term(
- :IniAgent,
- contentfile,
- {
- "options" => ["read_only", "global_values", "flat"],
- "comments" => ["^#.*", "^[ \t]*$"],
- "params" => [
- {
- "match" => [
- "^[ \t]*([a-zA-Z0-9_.]+)[ \t]*(.*)[ \t]*$",
- "%s %s"
- ]
- }
- ]
- }
- )
- )
- )
- register_product = Convert.to_string(
- SCR.Read(path(".addon.content.REGISTERPRODUCT"))
- )
- SCR.UnregisterAgent(path(".addon.content"))
-
- # evaluating REGISTERPRODUCT flag, default (nil == false)
- Builtins.y2milestone(
- "RegisterProduct flag for repository %1 is %2",
- src_id,
- register_product
- )
- if register_product == "yes" || register_product == "true"
- @addons_requesting_registration = Builtins.add(
- @addons_requesting_registration,
- src_id
- )
- end
-
- nil
+ log.info "REGISTERPRODUCT (require_registration) defined in control file"
+ @addons_requesting_registration << deep_copy(src_id)
end
# Calls registration client if needed.
@@ -900,7 +800,6 @@
# @param [Fixnum] src_id source id
def RegisterAddOnProduct(src_id)
# FATE #305578: Add-On Product Requiring Registration
- # or check the content file
if WorkflowManager.WorkflowRequiresRegistration(src_id) || Builtins.contains(@addons_requesting_registration, src_id)
Builtins.y2milestone("Repository ID %1 requests registration", src_id)
@@ -1006,146 +905,6 @@
"Add-On-Product-ID:#{src_id}"
end
- # See also DeselectProductPatterns()
- def SelectProductPatterns(content_file, src_id)
- patterns_to_select = []
-
- if content_file && File.exist?(content_file)
- contentmap = Convert.to_map(SCR.Read(path(".content_file"), content_file)) || {}
-
- # no PATTERNS defined
- if !contentmap.key?("PATTERNS")
- log.info "Add-On doesn't have any required patterns (PATTERNS in content)"
- end
-
- # parsing PATTERNS
- patterns_to_select = contentmap.fetch("PATTERNS", "").split(/[\t ]/)
- patterns_to_select.reject! { |p| p.nil? || p.empty? }
- end
-
- product_patterns = ProductPatterns.new(src: @src_id)
- log.info "Found default product patterns: #{product_patterns.names}"
- patterns_to_select.concat(product_patterns.names)
- patterns_to_select.uniq!
-
- log.info "Add-On requires these patterns: #{patterns_to_select.inspect}"
-
- # clear/set
- @patterns_preselected_by_addon[src_id] = []
-
- # bnc #458297
- # Using PackagesProposal to select the patterns itself
- PackagesProposal.SetResolvables(
- PackagesProposalAddonID(src_id),
- :pattern,
- patterns_to_select
- )
-
- if Stage.initial
- log.info "Using PackagesProposal to select Add-On patterns"
- return true
- end
-
- ret = true
-
- Builtins.foreach(patterns_to_select) do |one_pattern|
- pattern_properties = Pkg.ResolvableProperties(one_pattern, :pattern, "")
- already_selected = false
- Builtins.foreach(pattern_properties) do |one_pattern_found|
- patt_status = Ops.get_symbol(one_pattern_found, "status", :unknown)
- # patern is already selected
- if patt_status == :installed || patt_status == :selected
- already_selected = true
- raise Break
- end
- end
- if already_selected
- Builtins.y2milestone(
- "Pattern %1 is already installed/selected",
- one_pattern
- )
- next
- end
- if !Pkg.ResolvableInstall(one_pattern, :pattern)
- Builtins.y2error(
- "Cannot select pattern: %1, reason: %2",
- one_pattern,
- Pkg.LastError
- )
- ret = false
- else
- Ops.set(
- @patterns_preselected_by_addon,
- src_id,
- Builtins.add(
- Ops.get(@patterns_preselected_by_addon, src_id, []),
- one_pattern
- )
- )
- end
- end
-
- ret
- end
-
-
- # See also SelectProductPatterns()
- def DeselectProductPatterns(src_id)
- # bnc #458297
- # Using PackagesProposal to deselect the patterns itself
- PackagesProposal.SetResolvables(
- PackagesProposalAddonID(src_id),
- :pattern,
- []
- )
-
- if Stage.initial
- Builtins.y2milestone(
- "Initial stage, using PackagesProposal to deselect patterns"
- )
- return true
- end
-
- patterns_to_deselect = Ops.get(@patterns_preselected_by_addon, src_id, [])
-
- if Builtins.size(patterns_to_deselect) == 0
- Builtins.y2milestone("There's no pattern to be deselected")
- return true
- end
-
- ret = true
-
- Builtins.foreach(patterns_to_deselect) do |one_pattern|
- if !Pkg.ResolvableNeutral(one_pattern, :pattern, true)
- Builtins.y2error(
- "Cannot deselect pattern: %1, reason: %2",
- one_pattern,
- Pkg.LastError
- )
- ret = false
- end
- end
-
- ret
- end
- def HandleProductPATTERNS(srcid)
- # FATE #302398: PATTERNS keyword in content file
- content_file = GetCachedFileFromSource(
- srcid,
- 1,
- "/content",
- "signed",
- true
- )
-
- if content_file == nil
- Builtins.y2warning("Add-On %1 doesn't have a content file", srcid)
- end
-
- SelectProductPatterns(content_file, srcid)
-
- nil
- end
def IntegrateReleaseNotes(repo_id)
products = Pkg.ResolvableProperties("", :product, ""). select do |product|
@@ -1196,7 +955,8 @@
end
# FATE #302398: PATTERNS keyword in content file
- HandleProductPATTERNS(srcid)
+ # changed for software section in installation.xml
+ # or 'defaultpattern()' product Provides (FATE#320199)
# Adds workflow to the Workflow Store if any workflow exists
WorkflowManager.AddWorkflow(:addon, srcid, "")
@@ -1211,8 +971,6 @@
#
# @param [Fixnum] srcid integer the ID of the repository
def Disintegrate(srcid)
- DeselectProductPatterns(srcid)
-
WorkflowManager.RemoveWorkflow(:addon, srcid, "")
nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.3.0/src/modules/Packages.rb new/yast2-packager-3.3.2/src/modules/Packages.rb
--- old/yast2-packager-3.3.0/src/modules/Packages.rb 2017-07-20 13:40:44.927976013 +0200
+++ new/yast2-packager-3.3.2/src/modules/Packages.rb 2017-07-28 09:44:36.245816176 +0200
@@ -46,6 +46,7 @@
def main
Yast.import "UI"
Yast.import "Pkg"
+ Yast.import "Mode"
textdomain "packager"
@@ -280,17 +281,11 @@
# Return information about suboptimal distribution if relevant
# @return [String] the information string or empty string
def InfoAboutSubOptimalDistribution
- # warn about suboptimal distribution
- # this depends on the kernel
- dp = Convert.to_string(SCR.Read(path(".content.DISTPRODUCT")))
- dp = "" if dp == nil
-
if ProductFeatures.GetBooleanFeature(
"software",
"inform_about_suboptimal_distribution"
) &&
- Arch.i386 &&
- Builtins.issubstring(dp, "DVD")
+ Arch.i386
tmp = Convert.to_string(
SCR.Read(path(".proc.cpuinfo.value.\"0\".\"flags\""))
)
@@ -838,7 +833,13 @@
"Found list of add-on products to preselect: %1",
@add_on_products_list
)
- AddOnProduct.AddPreselectedAddOnProducts(@add_on_products_list)
+ if Mode.auto
+ Builtins.y2warning( "This is an AutoYaST installation. "\
+ "Only Add-on products will be added which have been defined "\
+ "in the add-on section of the AutoYaST configuration file." )
+ else
+ AddOnProduct.AddPreselectedAddOnProducts(@add_on_products_list)
+ end
@add_on_products_list = [] # do not select them any more
end
@@ -1157,33 +1158,6 @@
install_list
end
- # Check whether content file in the specified repository is the same
- # as the one in the ramdisk
- # @param [Fixnum] source integer the repository ID to check
- # @return [Boolean] true if content files match
- def CheckContentFile(source)
- Builtins.y2milestone("Checking content file")
- instmode = Linuxrc.InstallInf("InstMode")
- if !(instmode == nil || instmode == "cd" || instmode == "dvd")
- Builtins.y2milestone(
- "Installing via network, not checking the content file"
- )
- return true
- end
- if !File.exists?("/content")
- Builtins.y2milestone(
- "Ramdisk does not contain content file, not checking the file on media"
- )
- return true
- end
- media_content = Pkg.SourceProvideSignedFile(source, 1, "/content", false)
- media = Convert.to_string(SCR.Read(path(".target.string"), media_content))
- ramdisk = Convert.to_string(SCR.Read(path(".target.string"), "/content"))
- ret = media == ramdisk
- Builtins.y2milestone("Content files are the same: %1", ret)
- ret
- end
-
# Import GPG keys found in the inst-sys
def ImportGPGKeys
out = Convert.to_map(
@@ -1251,24 +1225,6 @@
deep_copy(ret)
end
- def ContentFileProductLabel
- language = Language.language
- locales = LocaleVersions(Language.language)
- ret = ""
- Builtins.foreach(locales) do |loc|
- if ret == ""
- val = Convert.to_string(
- SCR.Read(Builtins.add(path(".content"), Ops.add("LABEL.", loc)))
- )
- if val != "" && val != nil
- ret = val
- next ret
- end
- end
- end
- Convert.to_string(SCR.Read(path(".content.LABEL")))
- end
-
# Returns ID of the base product repository.
#
# @return [Fixnum] base source ID
@@ -1620,8 +1576,7 @@
true
end
- # Adjusts repository name according to LABEL in content file
- # or a first product found on the media (as a fallback).
+ # Adjusts repository name according to a first product found on the media.
#
# @param [Fixnum] src_id repository ID
# @return [Boolean] if successful
@@ -1635,52 +1590,18 @@
return nil
end
- Builtins.y2milestone("Trying to adjust repository name for: %1", src_id)
+ Builtins.y2milestone("Trying to get repository name from products")
+ all_products = Pkg.ResolvableProperties("", :product, "")
new_name = nil
-
- # At first, try LABEL from content file
- contentfile = Pkg.SourceProvideSignedFile(
- src_id, # optional
- 1,
- "/content",
- true
- )
- if contentfile != nil
- contentmap = Convert.to_map(
- SCR.Read(path(".content_file"), contentfile)
- )
- if Builtins.haskey(contentmap, "LABEL") &&
- Ops.get(contentmap, "LABEL") != nil &&
- Ops.get_string(contentmap, "LABEL", "") != ""
- new_name = Ops.get_string(contentmap, "LABEL", "")
-
- if Builtins.regexpmatch(new_name, "^[ \t]+")
- new_name = Builtins.regexpsub(new_name, "^[ \t]+(.*)", "\\1")
- end
- if Builtins.regexpmatch(new_name, "[ \t]+$")
- new_name = Builtins.regexpsub(new_name, "(.*)[ \t]+$", "\\1")
- end
-
- Builtins.y2milestone("Using LABEL from content file: %1", new_name)
- else
- Builtins.y2warning("No (useful) LABEL in product content file")
- end
- end
-
- # As a fallback,
- if new_name == nil || new_name == ""
- Builtins.y2milestone("Trying to get repository name from products")
- all_products = Pkg.ResolvableProperties("", :product, "")
- Builtins.foreach(all_products) do |one_product|
- # source ID matches
- if Ops.get_integer(one_product, "source", -1) == src_id
- if Builtins.haskey(one_product, "name") &&
- Ops.get(one_product, "name") != nil &&
- Ops.get_string(one_product, "name", "") != ""
- new_name = Ops.get_string(one_product, "name", "")
- Builtins.y2milestone("Product name found: %1", new_name)
- raise Break
- end
+ Builtins.foreach(all_products) do |one_product|
+ # source ID matches
+ if Ops.get_integer(one_product, "source", -1) == src_id
+ if Builtins.haskey(one_product, "name") &&
+ Ops.get(one_product, "name") != nil &&
+ Ops.get_string(one_product, "name", "") != ""
+ new_name = Ops.get_string(one_product, "name", "")
+ Builtins.y2milestone("Product name found: %1", new_name)
+ raise Break
end
end
end
@@ -1814,24 +1735,9 @@
return
end
end
- if !CheckContentFile(initial_repository)
- label = ContentFileProductLabel()
- # bug #159754, release the mounted CD
- Pkg.SourceReleaseAll
- Pkg.SourceDelete(initial_repository)
- initial_repository = nil
- if !Popup.ContinueCancel(
- # message popup, %1 is product name
- Builtins.sformat(_("Insert %1 CD 1"), label)
- )
- @init_error = Builtins.sformat(_("%1 CD 1 not found"), label)
- @init_in_progress = false
- return
- end
- end
end
- # BNC #481828: Using LABEL from content file as a repository name
+ # BNC #481828: Using LABEL from product
AdjustSourcePropertiesAccordingToProduct(@base_source_id)
@base_source_id = initial_repository
@@ -2643,7 +2549,6 @@
publish :function => :addAdditionalPackage, :type => "void (string)"
publish :function => :ComputeSystemPatternList, :type => "list <string> ()"
publish :function => :ComputeSystemPackageList, :type => "list <string> ()"
- publish :function => :CheckContentFile, :type => "boolean (integer)"
publish :function => :GetBaseSourceID, :type => "integer ()"
publish :function => :Init, :type => "void (boolean)"
publish :function => :SlideShowSetUp, :type => "void (string)"
1
0
Hello community,
here is the log from the commit of package yast2-add-on for openSUSE:Factory checked in at 2017-08-02 11:26:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-add-on (Old)
and /work/SRC/openSUSE:Factory/.yast2-add-on.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-add-on"
Wed Aug 2 11:26:35 2017 rev:82 rq:512816 version:3.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-add-on/yast2-add-on.changes 2017-07-17 10:31:02.576651961 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-add-on.new/yast2-add-on.changes 2017-08-02 11:26:36.603394830 +0200
@@ -1,0 +2,7 @@
+Thu Jul 27 08:44:31 UTC 2017 - jreidinger(a)suse.com
+
+- drop inst_lang_addon client because openSUSE Lang Addon is also
+ dropped, this drops also all read of /content file (FATE#322386)
+- 3.3.0
+
+-------------------------------------------------------------------
Old:
----
yast2-add-on-3.2.1.tar.bz2
New:
----
yast2-add-on-3.3.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-add-on.spec ++++++
--- /var/tmp/diff_new_pack.Rrkpwz/_old 2017-08-02 11:26:37.495268737 +0200
+++ /var/tmp/diff_new_pack.Rrkpwz/_new 2017-08-02 11:26:37.499268172 +0200
@@ -17,7 +17,7 @@
Name: yast2-add-on
-Version: 3.2.1
+Version: 3.3.0
Release: 0
Summary: YaST2 - Add-On media installation code
License: GPL-2.0
@@ -65,7 +65,6 @@
%{yast_clientdir}/add-on.rb
%{yast_clientdir}/add-on_*.rb
%{yast_clientdir}/inst_add-on*.rb
-%{yast_clientdir}/inst_*_add-on*.rb
%{yast_clientdir}/vendor.rb
%{yast_desktopdir}/*.desktop
%{yast_schemadir}/autoyast/rnc/add-on.rnc
++++++ yast2-add-on-3.2.1.tar.bz2 -> yast2-add-on-3.3.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-3.2.1/package/yast2-add-on.changes new/yast2-add-on-3.3.0/package/yast2-add-on.changes
--- old/yast2-add-on-3.2.1/package/yast2-add-on.changes 2017-07-11 11:41:05.029789259 +0200
+++ new/yast2-add-on-3.3.0/package/yast2-add-on.changes 2017-07-27 15:50:20.483056797 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Thu Jul 27 08:44:31 UTC 2017 - jreidinger(a)suse.com
+
+- drop inst_lang_addon client because openSUSE Lang Addon is also
+ dropped, this drops also all read of /content file (FATE#322386)
+- 3.3.0
+
+-------------------------------------------------------------------
Mon Jul 10 15:20:52 UTC 2017 - lslezak(a)suse.cz
- Do not skip the boot command line addons ("addon=...") when
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-3.2.1/package/yast2-add-on.spec new/yast2-add-on-3.3.0/package/yast2-add-on.spec
--- old/yast2-add-on-3.2.1/package/yast2-add-on.spec 2017-07-11 11:41:05.029789259 +0200
+++ new/yast2-add-on-3.3.0/package/yast2-add-on.spec 2017-07-27 15:50:20.483056797 +0200
@@ -17,7 +17,7 @@
Name: yast2-add-on
-Version: 3.2.1
+Version: 3.3.0
Release: 0
Summary: YaST2 - Add-On media installation code
License: GPL-2.0
@@ -65,7 +65,6 @@
%{yast_clientdir}/add-on.rb
%{yast_clientdir}/add-on_*.rb
%{yast_clientdir}/inst_add-on*.rb
-%{yast_clientdir}/inst_*_add-on*.rb
%{yast_clientdir}/vendor.rb
%{yast_desktopdir}/*.desktop
%{yast_schemadir}/autoyast/rnc/add-on.rnc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-3.2.1/src/clients/inst_language_add-on.rb new/yast2-add-on-3.3.0/src/clients/inst_language_add-on.rb
--- old/yast2-add-on-3.2.1/src/clients/inst_language_add-on.rb 2017-07-11 11:41:05.065789259 +0200
+++ new/yast2-add-on-3.3.0/src/clients/inst_language_add-on.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,427 +0,0 @@
-# encoding: utf-8
-
-# File: clients/inst_language_add-on.ycp
-# Authors: Lukas Ocilka <locilka(a)suse.cz>
-# Summary: Template client for language Add-On products
-#
-# This is a template for Language Add-Ons. It can be either called
-# from the installation.xml in the root ("/") of the product or
-# called from command-line for testing purposes:
-# `yast2 inst_language_add-on.ycp "$[]" url_to_add_on_source`.
-#
-# $Id$
-module Yast
- class InstLanguageAddOnClient < Client
- def main
- Yast.import "UI"
- Yast.import "Pkg"
- Yast.import "Kernel"
- Yast.import "Language"
- Yast.import "Wizard"
- Yast.import "Label"
- Yast.import "Popup"
-
- textdomain "add-on"
-
- Wizard.CreateDialog
- Builtins.y2milestone(
- "====================[ Language Add-On Script ]===================="
- )
- @ret = MainFunction()
- Builtins.y2milestone(
- "====================[ Language Add-On Script ]===================="
- )
- Wizard.CloseDialog
-
- if @ret == 0
- return :next
- else
- return :abort
- end
- end
-
- # Returns the list of available languages. It is based on the
- # "LINGUAS" entry in the /content file. Returns nil if something
- # is wrong.
- #
- # @return [Array<String>] supported languages
- # (e.g., ["af", "ar", "be_BY", "bg", "ca", "cs", "cy", "da", "el", "et", "fi"])
- def GetListOfSupportedLanguages(source)
- content_file = Pkg.SourceProvideSignedFile(source, 1, "/content", false)
- if content_file == nil || content_file == ""
- Builtins.y2error("There is no content file!")
- return nil
- end
-
- SCR.RegisterAgent(
- path(".media.content"),
- term(
- :ag_ini,
- term(
- :IniAgent,
- content_file,
- {
- "options" => ["read_only", "global_values", "flat"],
- "comments" => ["^#.*", "^[ \t]*$"],
- "params" => [
- {
- "match" => [
- "^[ \t]*([a-zA-Z0-9_.]+)[ \t]*(.*)[ \t]*$",
- "%s %s"
- ]
- }
- ]
- }
- )
- )
- )
- supported_languages = Builtins.tostring(
- SCR.Read(path(".media.content.LINGUAS"))
- )
- if supported_languages == nil || supported_languages == ""
- Builtins.y2error("No languages [LINGUAS] defined!")
- return nil
- end
-
- Builtins.y2milestone("Languages found: %1", supported_languages)
- SCR.UnregisterAgent(path(".media.content"))
-
- Builtins.splitstring(supported_languages, " ")
- end
-
- # Solves dependencies and installs packages
- def Install(languages_to_install)
- languages_to_install = deep_copy(languages_to_install)
- Builtins.y2milestone(
- "Installing packages for languages: %1",
- languages_to_install
- )
- Pkg.SetAdditionalLocales(languages_to_install)
-
- Builtins.y2milestone("Solving dependencies")
- if Pkg.PkgSolve(true) != true
- Builtins.y2error("Cannot solve dependencies")
- return false
- end
-
- Builtins.y2milestone("Installing packages")
- WFM.call("inst_rpmcopy")
-
- Kernel.InformAboutKernelChange
-
- Popup.Message(
- # TRANSLATORS: popup message
- _("Installation of the Language Extension has been finished.")
- )
-
- true
- end
-
- # Only when WFM::Args[1] contains an URL to be added
- def InitFunction
- args = WFM.Args
- Builtins.y2milestone("Args: %1", args)
- add_on_url = Builtins.tostring(Ops.get_string(args, 1, ""))
-
- if add_on_url == ""
- Builtins.y2milestone(
- "No URL given as an argument, not initializing source."
- )
- return
- end
-
- Builtins.y2milestone("Using URL: '%1'", add_on_url)
-
- Yast.import "PackageCallbacks"
- Yast.import "SourceManager"
-
- PackageCallbacks.InitPackageCallbacks
-
- Pkg.TargetInit("/", true)
- Pkg.SourceStartManager(true)
-
- SourceManager.createSource(add_on_url)
-
- nil
- end
-
- # Dialog definitions -->
-
- def Dialog_Init
- Wizard.SetContentsButtons(
- # TRANSLATORS: dialog caption
- _("Add-On Product Installation"),
- # TRANSLATORS: dialog content - a very simple label
- Label(_("Initializing...")),
- # TRANSLATORS: help text
- _("<p>Initializing add-on products...</p>"),
- Label.BackButton,
- Label.NextButton
- )
- Wizard.SetTitleIcon("yast-language")
- Wizard.DisableBackButton
- Wizard.DisableAbortButton
- Wizard.DisableNextButton
-
- nil
- end
-
-
-
-
- def Dialog_SelectLanguagesUI(known_languages, already_installed_languages)
- items = []
- pre_selected_languages = []
- pre_selected = nil
-
- # for each language supported on the medium
- Builtins.foreach(known_languages.value) do |short, long|
- # installed is 'de' or 'cs' or 'zh'
- if Builtins.contains(already_installed_languages.value, short)
- pre_selected = true
- # installed is 'de_XY' or 'cs_AB' or 'zh_CD'
- # but not on the medium, find similar
- elsif Ops.greater_than(Builtins.size(short), 2)
- language_substring = Builtins.substring(short, 0, 2)
- if Builtins.contains(
- already_installed_languages.value,
- language_substring
- )
- pre_selected = true
- else
- pre_selected = false
- end
- else
- pre_selected = false
- end
- if pre_selected
- pre_selected_languages = Builtins.add(
- pre_selected_languages,
- Builtins.sformat("%1 (%2)", short, long)
- )
- end
- items = Builtins.add(items, Item(Id(short), long, pre_selected))
- end
- Builtins.y2milestone("Preselected languages: %1", pre_selected_languages)
-
- items = Builtins.sort(items) do |x, y|
- Ops.less_than(Ops.get_string(x, 1, ""), Ops.get_string(y, 1, ""))
- end
- Wizard.SetContentsButtons(
- # TRANSLATORS: dialog caption
- _("Add-On Product Installation"),
- VBox(
- HBox(
- HStretch(),
- MultiSelectionBox(
- Id("languages"),
- # TRANSLATORS:: multi-selection box
- _("&Select Language Extensions to Be Installed"),
- items
- ),
- HStretch()
- )
- ),
- # TRANSLATORS: help text
- _(
- "<p>Select the language extensions to be installed then click <b>OK</b>.</p>"
- ),
- Label.BackButton,
- Label.OKButton
- )
- Wizard.SetTitleIcon("yast-language")
- Wizard.DisableBackButton
- Wizard.EnableAbortButton
- Wizard.EnableNextButton
-
- selected_languages = nil
- ret = nil
- while true
- ret = UI.UserInput
-
- if ret == :cancel || ret == :abort
- if Popup.YesNo(
- # TRANSLATORS: popup question
- _(
- "Are you sure you want to abort the add-on product installation?"
- )
- )
- selected_languages = []
- break
- end
- elsif ret == :next
- selected_languages = Convert.convert(
- UI.QueryWidget(Id("languages"), :SelectedItems),
- :from => "any",
- :to => "list <string>"
- )
- if Builtins.size(selected_languages) == 0
- if !Popup.YesNo(
- _(
- "There are no selected languages to be installed.\nAre you sure you want to abort the installation?"
- )
- )
- next
- else
- Builtins.y2warning(
- "User decided not to install any language support."
- )
- end
- end
-
- break
- end
- end
-
- deep_copy(selected_languages)
- end
-
-
-
-
- def Dialog_SelectLanguages(available_languages, already_installed_languages)
- available_languages = deep_copy(available_languages)
- if available_languages == nil || available_languages == []
- Builtins.y2error("No availabel languages")
- return nil
- elsif Builtins.size(available_languages) == 1
- Builtins.y2milestone(
- "Only one language available, using %1",
- available_languages
- )
- return deep_copy(available_languages)
- else
- known_languages = Language.GetLanguagesMap(false)
-
- short_to_lang = {}
- Builtins.foreach(available_languages) do |one_lang|
- # full xx_YY
- if Ops.get(known_languages, one_lang) != nil
- Ops.set(
- short_to_lang,
- one_lang,
- Ops.get_string(known_languages, [one_lang, 4], "")
- )
- # xx only without _YY
- else
- found = false
- Builtins.foreach(known_languages) do |lang_short, lang_params|
- if Builtins.regexpmatch(
- lang_short,
- Builtins.sformat("%1_.*", one_lang)
- )
- Ops.set(
- short_to_lang,
- one_lang,
- Builtins.tostring(Ops.get_string(lang_params, 4, ""))
- )
- found = true
- raise Break
- end
- end
- if !found
- Builtins.y2warning("Couldn't find language for '%1'", one_lang)
- # TRANSLATORS: multiselection box item, %1 stands for 'ar', 'mk', 'zh_TW'
- # it used only as a fallback
- Ops.set(
- short_to_lang,
- one_lang,
- Builtins.sformat(_("Language %1"), one_lang)
- )
- end
- end
- end
-
- Builtins.y2milestone("%1", short_to_lang)
- selected_languages = (
- short_to_lang_ref = arg_ref(short_to_lang);
- already_installed_languages_ref = arg_ref(
- already_installed_languages.value
- );
- _Dialog_SelectLanguagesUI_result = Dialog_SelectLanguagesUI(
- short_to_lang_ref,
- already_installed_languages_ref
- );
- short_to_lang = short_to_lang_ref.value;
- already_installed_languages.value = already_installed_languages_ref.value(
- );
- _Dialog_SelectLanguagesUI_result
- )
-
- return deep_copy(selected_languages)
- end
- end
-
- # Dialog definitions <--
-
- def MainFunction
- Dialog_Init()
-
- # This call can be removed
- InitFunction()
-
- # Finding out the source, can be also used AddOnProduct::src_id
- # but this is better for testing
- all_sources = Pkg.SourceGetCurrent(true)
- all_sources = Builtins.sort(all_sources) { |x, y| Ops.less_than(x, y) }
- source = Ops.get(
- all_sources,
- Ops.subtract(Builtins.size(all_sources), 1),
- -1
- )
- Pkg.SourceSetEnabled(source, true)
-
- # one language -> preselect it and install
- # more languages -> let user decides
- available_languages = GetListOfSupportedLanguages(source)
- if available_languages == nil || available_languages == []
- Builtins.y2error("No languages available!")
- return 10
- end
-
- # bugzilla #217052
- # some languages should be pre-selected (already installed, at least partly)
- installed_languages = Pkg.ResolvableProperties("", :language, "")
- already_installed_languages = []
- Builtins.foreach(installed_languages) do |language|
- if Ops.get(language, "status") == :installed
- if Ops.get(language, "name") != nil
- already_installed_languages = Builtins.add(
- already_installed_languages,
- Ops.get_string(language, "name", "")
- )
- else
- Builtins.y2error("Language %1 has no 'name'", language)
- end
- end
- end
-
- Builtins.y2milestone(
- "Already installed languages: %1",
- already_installed_languages
- )
- selected_languages = (
- already_installed_languages_ref = arg_ref(already_installed_languages);
- _Dialog_SelectLanguages_result = Dialog_SelectLanguages(
- available_languages,
- already_installed_languages_ref
- );
- already_installed_languages = already_installed_languages_ref.value;
- _Dialog_SelectLanguages_result
- )
- if selected_languages == nil || selected_languages == []
- Builtins.y2warning("User did not select any language, finishing...")
- return 15
- end
-
- if Install(selected_languages) != true
- Builtins.y2error("Error occured during installation")
- return 20
- end
-
- 0
- end
- end
-end
-
-Yast::InstLanguageAddOnClient.new.main
1
0
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2017-08-01 09:26:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Tue Aug 1 09:26:03 2017 rev:37 rq: version:unknown
Tue Aug 1 09:26:03 2017 rev:38 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
_service:product_converter:openSUSE-Addon-Lang-cd-cd-x86_64.kiwi: same change
_service:product_converter:openSUSE-Addon-Lang-release.spec: same change
_service:product_converter:openSUSE-Addon-NonOss-cd-addon-nonoss-i586_x86_64.kiwi: same change
_service:product_converter:openSUSE-Addon-NonOss-ftp-ftp-i586_x86_64.kiwi: same change
_service:product_converter:openSUSE-Addon-NonOss-release.spec: same change
++++++ _service:product_converter:openSUSE-Kubic-dvd5-DVD-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:16.784083252 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:16.796081561 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE-Kubic___20170730" schemaversion="4.1">
+<image name="OBS__openSUSE-Kubic___20170801" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -34,9 +34,9 @@
<productvar name="RUN_ISOHYBRID">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20170730</productvar>
+ <productvar name="VERSION">20170801</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-kubic:20170730,openSUSE Kubic</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-kubic:20170801,openSUSE Kubic</productinfo>
<productinfo name="LINGUAS">en_US </productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/suse-tumbleweed</productoption>
++++++ _service:product_converter:openSUSE-Kubic-release.spec ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:16.848074234 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:16.856073106 +0200
@@ -20,7 +20,7 @@
Summary: openSUSE Kubic
License: GPL-2.0+
Group: System/Fhs
-Version: 20170730
+Version: 20170801
Release: 0
BuildRequires: skelcd-openSUSE
Recommends: branding
@@ -31,9 +31,9 @@
Provides: %name-%version
Provides: product() = openSUSE-Kubic
-Provides: product(openSUSE-Kubic) = 20170730-0
+Provides: product(openSUSE-Kubic) = 20170801-0
Provides: product-label() = openSUSE%20Kubic
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Dkubic%3A20170730
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Dkubic%3A20170801
Provides: product-url(releasenotes) = https%3A%2F%2Fwww.suse.com%2Freleasenotes%2F%{_target_cpu}%2FSUSE%2DCAASP%2F1.0%2Frelease%2Dnotes%2Dcaasp.rpm
Provides: product-endoflife()
@@ -90,7 +90,7 @@
PRETTY_NAME="openSUSE Kubic"
ID="opensuse-kubic"
ANSI_COLOR="0;32"
-CPE_NAME="cpe:/o:opensuse:opensuse-kubic:20170730"
+CPE_NAME="cpe:/o:opensuse:opensuse-kubic:20170801"
EOF
@@ -100,11 +100,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Kubic</name>
- <version>20170730</version>
+ <version>20170801</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-kubic:20170730</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-kubic:20170801</cpeid>
<productline>openSUSE-Kubic</productline>
<register>
<target/>
++++++ _service:product_converter:openSUSE-cd-mini-i586.kiwi ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:16.900066906 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:16.900066906 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20170730" schemaversion="4.1">
+<image name="OBS__openSUSE___20170801" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -31,9 +31,9 @@
<productvar name="RUN_ISOHYBRID">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20170730</productvar>
+ <productvar name="VERSION">20170801</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170730,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170801,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW </productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/suse-tumbleweed</productoption>
_service:product_converter:openSUSE-cd-mini-x86_64.kiwi: same change
_service:product_converter:openSUSE-dvd5-dvd-i586.kiwi: same change
++++++ _service:product_converter:openSUSE-dvd5-dvd-promo-i586.kiwi ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:17.000052814 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:17.000052814 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20170730" schemaversion="4.1">
+<image name="OBS__openSUSE___20170801" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -32,9 +32,9 @@
<productvar name="RUN_MEDIA_CHECK">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20170730</productvar>
+ <productvar name="VERSION">20170801</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170730,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170801,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW </productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/suse-tumbleweed</productoption>
_service:product_converter:openSUSE-dvd5-dvd-promo-x86_64.kiwi: same change
++++++ _service:product_converter:openSUSE-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:17.088040414 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:17.092039850 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20170730" schemaversion="4.1">
+<image name="OBS__openSUSE___20170801" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -34,9 +34,9 @@
<productvar name="RUN_ISOHYBRID">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20170730</productvar>
+ <productvar name="VERSION">20170801</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170730,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170801,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW </productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/suse-tumbleweed</productoption>
++++++ _service:product_converter:openSUSE-dvd9-dvd-biarch-i586_x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:17.140033086 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:17.140033086 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20170730" schemaversion="4.1">
+<image name="OBS__openSUSE___20170801" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -36,9 +36,9 @@
<productvar name="RUN_MEDIA_CHECK">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20170730</productvar>
+ <productvar name="VERSION">20170801</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170730,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170801,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW </productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/suse-tumbleweed</productoption>
++++++ _service:product_converter:openSUSE-ftp-ftp-i586_x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:17.176028014 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:17.176028014 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20170730" schemaversion="4.1">
+<image name="OBS__openSUSE___20170801" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -23,7 +23,7 @@
<productoptions>
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20170730-i586-x86_64</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20170801-i586-x86_64</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -34,9 +34,9 @@
<productvar name="REPO_ONLY">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20170730</productvar>
+ <productvar name="VERSION">20170801</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170730,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20170801,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW </productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
++++++ _service:product_converter:openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:17.212022941 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:17.224021250 +0200
@@ -18,7 +18,7 @@
Name: openSUSE-release
%define product openSUSE
-Version: 20170730
+Version: 20170801
Release: 0
# 0 is the product release, not the build release of this package
Provides: aaa_version
@@ -28,7 +28,7 @@
Obsoletes: aaa_version
Obsoletes: openSUSE-Promo-release <= 11.1
Obsoletes: openSUSE-release-live <= 11.0
-Obsoletes: product_flavor(%{product}) < 20170730
+Obsoletes: product_flavor(%{product}) < 20170801
Conflicts: sles-release <= 10 sled-release <= 10 core-release <= 10
# bnc#826592
Provides: weakremover(kernel-default) < 3.11
@@ -46,7 +46,7 @@
BuildRequires: skelcd-openSUSE
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20170730-0
+Provides: product(openSUSE) = 20170801-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -60,7 +60,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20170730
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20170801
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ftumbleweed%2Frepo%2Foss%2F
@@ -8109,10 +8109,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20170730</version>
+ <version>20170801</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20170730</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20170801</cpeid>
<productline>openSUSE</productline>
<register>
%ifarch x86_64
openSUSE-release.spec: same change
++++++ openSUSE-Kubic.product ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:17.635963192 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:17.639962629 +0200
@@ -6,7 +6,7 @@
<name>openSUSE-Kubic</name>
<releasepkgname>openSUSE-Kubic-release</releasepkgname>
<endoflife/>
- <version>20170730</version>
+ <version>20170801</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>openSUSE-Kubic</productline>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.VUf6ww/_old 2017-08-01 09:26:17.679956992 +0200
+++ /var/tmp/diff_new_pack.VUf6ww/_new 2017-08-01 09:26:17.683956428 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20170730</version>
+ <version>20170801</version>
<release>0</release>
<productline>openSUSE</productline>
1
0
Hello community,
here is the log from the commit of package unrar for openSUSE:Factory:NonFree checked in at 2017-08-01 09:25:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/unrar (Old)
and /work/SRC/openSUSE:Factory:NonFree/.unrar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "unrar"
Tue Aug 1 09:25:47 2017 rev:67 rq:513151 version:5.5.7
Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/unrar/unrar.changes 2017-07-04 09:12:36.879874950 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new/unrar.changes 2017-08-01 09:26:13.872493598 +0200
@@ -1,0 +2,7 @@
+Mon Jul 31 09:08:09 UTC 2017 - idonmez(a)suse.com
+
+- Update to version 5.5.7
+ * "Checksum error" could be mistakenly reported for some valid
+ GZIP archives.
+
+-------------------------------------------------------------------
Old:
----
unrarsrc-5.5.6.tar.gz
New:
----
unrarsrc-5.5.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ unrar.spec ++++++
--- /var/tmp/diff_new_pack.bWIRWW/_old 2017-08-01 09:26:14.608389884 +0200
+++ /var/tmp/diff_new_pack.bWIRWW/_new 2017-08-01 09:26:14.612389321 +0200
@@ -18,10 +18,10 @@
# majorversion should match the major version number.
%define majorversion 5
-%define libsuffix 5_5_6
+%define libsuffix 5_5_7
Name: unrar
-Version: 5.5.6
+Version: 5.5.7
Release: 0
Summary: A program to extract, test, and view RAR archives
License: SUSE-NonFree
++++++ unrarsrc-5.5.6.tar.gz -> unrarsrc-5.5.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/arccmt.cpp new/unrar/arccmt.cpp
--- old/unrar/arccmt.cpp 2017-07-02 09:52:34.000000000 +0200
+++ new/unrar/arccmt.cpp 2017-07-25 11:04:29.000000000 +0200
@@ -7,7 +7,7 @@
SaveFilePos SavePos(*this);
#ifndef SFX_MODULE
- ushort CmtLength;
+ uint CmtLength;
if (Format==RARFMT14)
{
Seek(SFXSize+SIZEOF_MAINHEAD14,SEEK_SET);
@@ -52,7 +52,7 @@
if (Format==RARFMT14)
{
#ifdef RAR_NOCRYPT
- return(false);
+ return false;
#else
UnpCmtLength=GetByte();
UnpCmtLength+=(GetByte()<<8);
@@ -96,6 +96,8 @@
}
else
{
+ if (CmtLength==0)
+ return false;
Array<byte> CmtRaw(CmtLength);
Read(&CmtRaw[0],CmtLength);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/arcread.cpp new/unrar/arcread.cpp
--- old/unrar/arcread.cpp 2017-07-02 09:52:34.000000000 +0200
+++ new/unrar/arcread.cpp 2017-07-25 11:04:29.000000000 +0200
@@ -308,17 +308,17 @@
if (FileBlock)
{
+ *hd->FileName=0;
if ((hd->Flags & LHD_UNICODE)!=0)
{
EncodeFileName NameCoder;
size_t Length=strlen(FileName);
Length++;
- NameCoder.Decode(FileName,(byte *)FileName+Length,
- NameSize-Length,hd->FileName,
- ASIZE(hd->FileName));
+ if (ReadNameSize>Length)
+ NameCoder.Decode(FileName,(byte *)FileName+Length,
+ ReadNameSize-Length,hd->FileName,
+ ASIZE(hd->FileName));
}
- else
- *hd->FileName=0;
if (*hd->FileName==0)
ArcCharToWide(FileName,hd->FileName,ASIZE(hd->FileName),ACTW_OEM);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc
--- old/unrar/dll.rc 2017-07-02 09:48:59.000000000 +0200
+++ new/unrar/dll.rc 2017-07-25 10:58:41.000000000 +0200
@@ -2,8 +2,8 @@
#include <commctrl.h>
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 5, 50, 5, 2378
-PRODUCTVERSION 5, 50, 5, 2378
+FILEVERSION 5, 50, 6, 2401
+PRODUCTVERSION 5, 50, 6, 2401
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
{
@@ -14,8 +14,8 @@
VALUE "CompanyName", "Alexander Roshal\0"
VALUE "ProductName", "RAR decompression library\0"
VALUE "FileDescription", "RAR decompression library\0"
- VALUE "FileVersion", "5.50.5\0"
- VALUE "ProductVersion", "5.50.5\0"
+ VALUE "FileVersion", "5.50.6\0"
+ VALUE "ProductVersion", "5.50.6\0"
VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2017\0"
VALUE "OriginalFilename", "Unrar.dll\0"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/encname.cpp new/unrar/encname.cpp
--- old/unrar/encname.cpp 2017-07-02 09:52:35.000000000 +0200
+++ new/unrar/encname.cpp 2017-07-25 11:04:30.000000000 +0200
@@ -15,31 +15,43 @@
size_t MaxDecSize)
{
size_t EncPos=0,DecPos=0;
- byte HighByte=EncName[EncPos++];
+ byte HighByte=EncPos<EncSize ? EncName[EncPos++] : 0;
while (EncPos<EncSize && DecPos<MaxDecSize)
{
if (FlagBits==0)
{
+ if (EncPos>=EncSize)
+ break;
Flags=EncName[EncPos++];
FlagBits=8;
}
switch(Flags>>6)
{
case 0:
+ if (EncPos>=EncSize)
+ break;
NameW[DecPos++]=EncName[EncPos++];
break;
case 1:
+ if (EncPos>=EncSize)
+ break;
NameW[DecPos++]=EncName[EncPos++]+(HighByte<<8);
break;
case 2:
+ if (EncPos+1>=EncSize)
+ break;
NameW[DecPos++]=EncName[EncPos]+(EncName[EncPos+1]<<8);
EncPos+=2;
break;
case 3:
{
+ if (EncPos>=EncSize)
+ break;
int Length=EncName[EncPos++];
- if (Length & 0x80)
+ if ((Length & 0x80)!=0)
{
+ if (EncPos>=EncSize)
+ break;
byte Correction=EncName[EncPos++];
for (Length=(Length&0x7f)+2;Length>0 && DecPos<MaxDecSize;Length--,DecPos++)
NameW[DecPos]=((Name[DecPos]+Correction)&0xff)+(HighByte<<8);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/extinfo.cpp new/unrar/extinfo.cpp
--- old/unrar/extinfo.cpp 2017-07-02 09:52:35.000000000 +0200
+++ new/unrar/extinfo.cpp 2017-07-25 11:04:30.000000000 +0200
@@ -93,6 +93,25 @@
}
+// Check if all existing path components are directories and not links.
+static bool LinkInPath(const wchar *Name)
+{
+ wchar Path[NM];
+ if (wcslen(Name)>=ASIZE(Path))
+ return true; // It should not be that long, skip.
+ wcsncpyz(Path,Name,ASIZE(Path));
+ for (wchar *s=Path+wcslen(Path)-1;s>Path;s--)
+ if (IsPathDiv(*s))
+ {
+ *s=0;
+ FindData FD;
+ if (FindFile::FastFind(Path,&FD,true) && (FD.IsLink || !FD.IsDir))
+ return true;
+ }
+ return false;
+}
+
+
bool IsRelativeSymlinkSafe(CommandData *Cmd,const wchar *SrcName,const wchar *PrepSrcName,const wchar *TargetName)
{
// Catch root dir based /path/file paths also as stuff like \\?\.
@@ -100,7 +119,25 @@
// is a root based.
if (IsFullRootPath(SrcName) || IsFullRootPath(TargetName))
return false;
-
+
+ // Number of ".." in link target.
+ int UpLevels=0;
+ for (int Pos=0;*TargetName!=0;Pos++)
+ {
+ bool Dot2=TargetName[0]=='.' && TargetName[1]=='.' &&
+ (IsPathDiv(TargetName[2]) || TargetName[2]==0) &&
+ (Pos==0 || IsPathDiv(*(TargetName-1)));
+ if (Dot2)
+ UpLevels++;
+ TargetName++;
+ }
+ // If link target includes "..", it must not have another links
+ // in the path, because they can bypass our safety check. For example,
+ // suppose we extracted "lnk1" -> "." first and "lnk1/lnk2" -> ".." next
+ // or "dir/lnk1" -> ".." first and "dir/lnk1/lnk2" -> ".." next.
+ if (UpLevels>0 && LinkInPath(PrepSrcName))
+ return false;
+
// We could check just prepared src name, but for extra safety
// we check both original (as from archive header) and prepared
// (after applying the destination path and -ep switches) names.
@@ -119,17 +156,6 @@
}
int PrepAllowedDepth=CalcAllowedDepth(PrepSrcName);
- // Number of ".." in link target.
- int UpLevels=0;
- for (int Pos=0;*TargetName!=0;Pos++)
- {
- bool Dot2=TargetName[0]=='.' && TargetName[1]=='.' &&
- (IsPathDiv(TargetName[2]) || TargetName[2]==0) &&
- (Pos==0 || IsPathDiv(*(TargetName-1)));
- if (Dot2)
- UpLevels++;
- TargetName++;
- }
return AllowedDepth>=UpLevels && PrepAllowedDepth>=UpLevels;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/file.cpp new/unrar/file.cpp
--- old/unrar/file.cpp 2017-07-02 09:52:35.000000000 +0200
+++ new/unrar/file.cpp 2017-07-25 11:04:30.000000000 +0200
@@ -173,7 +173,7 @@
wchar *LastChar=PointToLastChar(Name);
bool Special=*LastChar=='.' || *LastChar==' ';
- if (Special)
+ if (Special && (Mode & FMF_STANDARDNAMES)==0)
hFile=FILE_BAD_HANDLE;
else
hFile=CreateFile(Name,Access,ShareMode,NULL,CREATE_ALWAYS,0,NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/file.hpp new/unrar/file.hpp
--- old/unrar/file.hpp 2017-07-02 09:52:35.000000000 +0200
+++ new/unrar/file.hpp 2017-07-25 11:04:30.000000000 +0200
@@ -39,6 +39,9 @@
// Provide read access to created file for other programs.
FMF_SHAREREAD=16,
+ // Use standard NTFS names without trailing dots and spaces.
+ FMF_STANDARDNAMES=32,
+
// Mode flags are not defined yet.
FMF_UNDEFINED=256
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/rarvm.cpp new/unrar/rarvm.cpp
--- old/unrar/rarvm.cpp 2017-07-02 09:52:36.000000000 +0200
+++ new/unrar/rarvm.cpp 2017-07-25 11:04:32.000000000 +0200
@@ -22,6 +22,7 @@
void RarVM::Execute(VM_PreparedProgram *Prg)
{
memcpy(R,Prg->InitR,sizeof(Prg->InitR));
+ Prg->FilteredData=NULL;
if (Prg->Type!=VMSF_NONE)
{
bool Success=ExecuteStandardFilter(Prg->Type);
@@ -107,7 +108,14 @@
void RarVM::SetMemory(size_t Pos,byte *Data,size_t DataSize)
{
if (Pos<VM_MEMSIZE && Data!=Mem+Pos)
- memmove(Mem+Pos,Data,Min(DataSize,VM_MEMSIZE-Pos));
+ {
+ // We can have NULL Data for invalid filters with DataSize==0. While most
+ // sensible memmove implementations do not care about data if size is 0,
+ // let's follow the standard and check the size first.
+ size_t CopySize=Min(DataSize,VM_MEMSIZE-Pos);
+ if (CopySize!=0)
+ memmove(Mem+Pos,Data,CopySize);
+ }
}
@@ -279,7 +287,10 @@
PrevDelta=(signed char)(Predicted-PrevByte);
PrevByte=Predicted;
- int D=((signed char)CurByte)<<3;
+ int D=(signed char)CurByte;
+ // Left shift of negative value is undefined behavior in C++,
+ // so we cast it to unsigned to follow the standard.
+ D=(uint)D<<3;
Dif[0]+=abs(D);
Dif[1]+=abs(D-D1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/rawread.cpp new/unrar/rawread.cpp
--- old/unrar/rawread.cpp 2017-07-02 09:52:36.000000000 +0200
+++ new/unrar/rawread.cpp 2017-07-25 11:04:32.000000000 +0200
@@ -115,7 +115,9 @@
uint64 RawRead::GetV()
{
uint64 Result=0;
- for (uint Shift=0;ReadPos<DataSize;Shift+=7)
+ // Need to check Shift<64, because for shift greater than or equal to
+ // the width of the promoted left operand, the behavior is undefined.
+ for (uint Shift=0;ReadPos<DataSize && Shift<64;Shift+=7)
{
byte CurByte=Data[ReadPos++];
Result+=uint64(CurByte & 0x7f)<<Shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unicode.cpp new/unrar/unicode.cpp
--- old/unrar/unicode.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unicode.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -510,19 +510,23 @@
int64 atoilw(const wchar *s)
{
- int sign=1;
+ bool sign=false;
if (*s=='-')
{
s++;
- sign=-1;
+ sign=true;
}
- int64 n=0;
+ // Use unsigned type here, since long string can overflow the variable
+ // and signed integer overflow is undefined behavior in C++.
+ uint64 n=0;
while (*s>='0' && *s<='9')
{
n=n*10+(*s-'0');
s++;
}
- return sign*n;
+ // Check int64(n)>=0 to avoid the signed overflow with undefined behavior
+ // when negating 0x8000000000000000.
+ return sign && int64(n)>=0 ? -int64(n) : int64(n);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack.cpp new/unrar/unpack.cpp
--- old/unrar/unpack.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpack.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -135,7 +135,7 @@
}
-void Unpack::DoUnpack(int Method,bool Solid)
+void Unpack::DoUnpack(uint Method,bool Solid)
{
// Methods <50 will crash in Fragmented mode when accessing NULL Window.
// They cannot be called in such mode now, but we check it below anyway
@@ -206,6 +206,7 @@
UnpInitData20(Solid);
#endif
UnpInitData30(Solid);
+ UnpInitData50(Solid);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack.hpp new/unrar/unpack.hpp
--- old/unrar/unpack.hpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpack.hpp 2017-07-25 11:04:34.000000000 +0200
@@ -211,6 +211,7 @@
void UnpWriteArea(size_t StartPtr,size_t EndPtr);
void UnpWriteData(byte *Data,size_t Size);
_forceinline uint SlotToLength(BitInput &Inp,uint Slot);
+ void UnpInitData50(bool Solid);
bool ReadBlockHeader(BitInput &Inp,UnpackBlockHeader &Header);
bool ReadTables(BitInput &Inp,UnpackBlockHeader &Header,UnpackBlockTables &Tables);
void MakeDecodeTables(byte *LengthTable,DecodeTable *Dec,uint Size);
@@ -307,7 +308,9 @@
DecodeTable MD[4]; // Decode multimedia data, up to 4 channels.
unsigned char UnpOldTable20[MC20*4];
- int UnpAudioBlock,UnpChannels,UnpCurChannel,UnpChannelDelta;
+ bool UnpAudioBlock;
+ uint UnpChannels,UnpCurChannel;
+ int UnpChannelDelta;
void CopyString20(uint Length,uint Distance);
bool ReadTables20();
void UnpWriteBuf20();
@@ -341,7 +344,12 @@
byte UnpOldTable[HUFF_TABLE_SIZE30];
int UnpBlockType;
- bool TablesRead;
+ // If we already read decoding tables for Unpack v2,v3,v5.
+ // We should not use a single variable for all algorithm versions,
+ // because we can have a corrupt archive with one algorithm file
+ // followed by another algorithm file with "solid" flag and we do not
+ // want to reuse tables from one algorithm in another.
+ bool TablesRead2,TablesRead3,TablesRead5;
// Virtual machine to execute filters code.
RarVM VM;
@@ -368,7 +376,7 @@
Unpack(ComprDataIO *DataIO);
~Unpack();
void Init(size_t WinSize,bool Solid);
- void DoUnpack(int Method,bool Solid);
+ void DoUnpack(uint Method,bool Solid);
bool IsFileExtracted() {return(FileExtracted);}
void SetDestSize(int64 DestSize) {DestUnpSize=DestSize;FileExtracted=false;}
void SetSuspended(bool Suspended) {Unpack::Suspended=Suspended;}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack15.cpp new/unrar/unpack15.cpp
--- old/unrar/unpack15.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpack15.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -285,7 +285,7 @@
break;
}
- ChSetB[DistancePlace]=ChSetB[NewDistancePlace];
+ ChSetB[DistancePlace & 0xff]=ChSetB[NewDistancePlace];
ChSetB[NewDistancePlace]=Distance;
Distance=((Distance & 0xff00) | (Inp.fgetbits() >> 8)) >> 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack20.cpp new/unrar/unpack20.cpp
--- old/unrar/unpack20.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpack20.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -13,11 +13,11 @@
{
static unsigned char LDecode[]={0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224};
static unsigned char LBits[]= {0,0,0,0,0,0,0,0,1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5};
- static int DDecode[]={0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576,32768U,49152U,65536,98304,131072,196608,262144,327680,393216,458752,524288,589824,655360,720896,786432,851968,917504,983040};
+ static uint DDecode[]={0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576,32768U,49152U,65536,98304,131072,196608,262144,327680,393216,458752,524288,589824,655360,720896,786432,851968,917504,983040};
static unsigned char DBits[]= {0,0,0,0,1,1,2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
static unsigned char SDDecode[]={0,4,8,16,32,64,128,192};
static unsigned char SDBits[]= {2,2,3, 4, 5, 6, 6, 6};
- unsigned int Bits;
+ uint Bits;
if (Suspended)
UnpPtr=WrPtr;
@@ -26,9 +26,8 @@
UnpInitData(Solid);
if (!UnpReadBuf())
return;
- if (!Solid)
- if (!ReadTables20())
- return;
+ if ((!Solid || !TablesRead2) && !ReadTables20())
+ return;
--DestUnpSize;
}
@@ -47,7 +46,7 @@
}
if (UnpAudioBlock)
{
- int AudioNumber=DecodeNumber(Inp,&MD[UnpCurChannel]);
+ uint AudioNumber=DecodeNumber(Inp,&MD[UnpCurChannel]);
if (AudioNumber==256)
{
@@ -55,14 +54,14 @@
break;
continue;
}
- Window[UnpPtr++]=DecodeAudio(AudioNumber);
+ Window[UnpPtr++]=DecodeAudio((int)AudioNumber);
if (++UnpCurChannel==UnpChannels)
UnpCurChannel=0;
--DestUnpSize;
continue;
}
- int Number=DecodeNumber(Inp,&BlockTables.LD);
+ uint Number=DecodeNumber(Inp,&BlockTables.LD);
if (Number<256)
{
Window[UnpPtr++]=(byte)Number;
@@ -71,15 +70,15 @@
}
if (Number>269)
{
- int Length=LDecode[Number-=270]+3;
+ uint Length=LDecode[Number-=270]+3;
if ((Bits=LBits[Number])>0)
{
Length+=Inp.getbits()>>(16-Bits);
Inp.addbits(Bits);
}
- int DistNumber=DecodeNumber(Inp,&BlockTables.DD);
- unsigned int Distance=DDecode[DistNumber]+1;
+ uint DistNumber=DecodeNumber(Inp,&BlockTables.DD);
+ uint Distance=DDecode[DistNumber]+1;
if ((Bits=DBits[DistNumber])>0)
{
Distance+=Inp.getbits()>>(16-Bits);
@@ -109,9 +108,9 @@
}
if (Number<261)
{
- unsigned int Distance=OldDist[(OldDistPtr-(Number-256)) & 3];
- int LengthNumber=DecodeNumber(Inp,&BlockTables.RD);
- int Length=LDecode[LengthNumber]+2;
+ uint Distance=OldDist[(OldDistPtr-(Number-256)) & 3];
+ uint LengthNumber=DecodeNumber(Inp,&BlockTables.RD);
+ uint Length=LDecode[LengthNumber]+2;
if ((Bits=LBits[LengthNumber])>0)
{
Length+=Inp.getbits()>>(16-Bits);
@@ -132,7 +131,7 @@
}
if (Number<270)
{
- unsigned int Distance=SDDecode[Number-=261]+1;
+ uint Distance=SDDecode[Number-=261]+1;
if ((Bits=SDBits[Number])>0)
{
Distance+=Inp.getbits()>>(16-Bits);
@@ -167,17 +166,17 @@
{
byte BitLength[BC20];
byte Table[MC20*4];
- int TableSize,N,I;
if (Inp.InAddr>ReadTop-25)
if (!UnpReadBuf())
- return(false);
+ return false;
uint BitField=Inp.getbits();
- UnpAudioBlock=(BitField & 0x8000);
+ UnpAudioBlock=(BitField & 0x8000)!=0;
if (!(BitField & 0x4000))
memset(UnpOldTable20,0,sizeof(UnpOldTable20));
Inp.addbits(2);
+ uint TableSize;
if (UnpAudioBlock)
{
UnpChannels=((BitField>>12) & 3)+1;
@@ -189,19 +188,18 @@
else
TableSize=NC20+DC20+RC20;
- for (I=0;I<BC20;I++)
+ for (uint I=0;I<BC20;I++)
{
BitLength[I]=(byte)(Inp.getbits() >> 12);
Inp.addbits(4);
}
MakeDecodeTables(BitLength,&BlockTables.BD,BC20);
- I=0;
- while (I<TableSize)
+ for (uint I=0;I<TableSize;)
{
if (Inp.InAddr>ReadTop-5)
if (!UnpReadBuf())
return false;
- int Number=DecodeNumber(Inp,&BlockTables.BD);
+ uint Number=DecodeNumber(Inp,&BlockTables.BD);
if (Number<16)
{
Table[I]=(Number+UnpOldTable20[I]) & 0xf;
@@ -210,9 +208,11 @@
else
if (Number==16)
{
- N=(Inp.getbits() >> 14)+3;
+ uint N=(Inp.getbits() >> 14)+3;
Inp.addbits(2);
- if (I>0)
+ if (I==0)
+ return false; // We cannot have "repeat previous" code at the first position.
+ else
while (N-- > 0 && I<TableSize)
{
Table[I]=Table[I-1];
@@ -221,6 +221,7 @@
}
else
{
+ uint N;
if (Number==17)
{
N=(Inp.getbits() >> 13)+3;
@@ -235,10 +236,11 @@
Table[I++]=0;
}
}
+ TablesRead2=true;
if (Inp.InAddr>ReadTop)
- return(true);
+ return true;
if (UnpAudioBlock)
- for (I=0;I<UnpChannels;I++)
+ for (uint I=0;I<UnpChannels;I++)
MakeDecodeTables(&Table[I*MC20],&MD[I],MC20);
else
{
@@ -247,7 +249,7 @@
MakeDecodeTables(&Table[NC20+DC20],&BlockTables.RD,RC20);
}
memcpy(UnpOldTable20,Table,sizeof(UnpOldTable20));
- return(true);
+ return true;
}
@@ -269,7 +271,10 @@
{
if (!Solid)
{
- UnpAudioBlock=UnpChannelDelta=UnpCurChannel=0;
+ TablesRead2=false;
+ UnpAudioBlock=false;
+ UnpChannelDelta=0;
+ UnpCurChannel=0;
UnpChannels=1;
memset(AudV,0,sizeof(AudV));
@@ -290,9 +295,12 @@
int PCh=8*V->LastChar+V->K1*V->D1+V->K2*V->D2+V->K3*V->D3+V->K4*V->D4+V->K5*UnpChannelDelta;
PCh=(PCh>>3) & 0xFF;
- unsigned int Ch=PCh-Delta;
+ uint Ch=PCh-Delta;
- int D=((signed char)Delta)<<3;
+ int D=(signed char)Delta;
+ // Left shift of negative value is undefined behavior in C++,
+ // so we cast it to unsigned to follow the standard.
+ D=(uint)D<<3;
V->Dif[0]+=abs(D);
V->Dif[1]+=abs(D-V->D1);
@@ -311,9 +319,9 @@
if ((V->ByteCount & 0x1F)==0)
{
- unsigned int MinDif=V->Dif[0],NumMinDif=0;
+ uint MinDif=V->Dif[0],NumMinDif=0;
V->Dif[0]=0;
- for (int I=1;I<sizeof(V->Dif)/sizeof(V->Dif[0]);I++)
+ for (uint I=1;I<ASIZE(V->Dif);I++)
{
if (V->Dif[I]<MinDif)
{
@@ -366,5 +374,5 @@
break;
}
}
- return((byte)Ch);
+ return (byte)Ch;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack30.cpp new/unrar/unpack30.cpp
--- old/unrar/unpack30.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpack30.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -42,7 +42,7 @@
UnpInitData(Solid);
if (!UnpReadBuf30())
return;
- if ((!Solid || !TablesRead) && !ReadTables30())
+ if ((!Solid || !TablesRead3) && !ReadTables30())
return;
}
@@ -133,7 +133,7 @@
continue;
}
- int Number=DecodeNumber(Inp,&BlockTables.LD);
+ uint Number=DecodeNumber(Inp,&BlockTables.LD);
if (Number<256)
{
Window[UnpPtr++]=(byte)Number;
@@ -141,15 +141,15 @@
}
if (Number>=271)
{
- int Length=LDecode[Number-=271]+3;
+ uint Length=LDecode[Number-=271]+3;
if ((Bits=LBits[Number])>0)
{
Length+=Inp.getbits()>>(16-Bits);
Inp.addbits(Bits);
}
- int DistNumber=DecodeNumber(Inp,&BlockTables.DD);
- unsigned int Distance=DDecode[DistNumber]+1;
+ uint DistNumber=DecodeNumber(Inp,&BlockTables.DD);
+ uint Distance=DDecode[DistNumber]+1;
if ((Bits=DBits[DistNumber])>0)
{
if (DistNumber>9)
@@ -166,7 +166,7 @@
}
else
{
- int LowDist=DecodeNumber(Inp,&BlockTables.LDD);
+ uint LowDist=DecodeNumber(Inp,&BlockTables.LDD);
if (LowDist==16)
{
LowDistRepCount=LOW_DIST_REP_COUNT-1;
@@ -189,7 +189,7 @@
if (Distance>=0x2000)
{
Length++;
- if (Distance>=0x40000L)
+ if (Distance>=0x40000)
Length++;
}
@@ -218,13 +218,13 @@
}
if (Number<263)
{
- int DistNum=Number-259;
- unsigned int Distance=OldDist[DistNum];
- for (int I=DistNum;I>0;I--)
+ uint DistNum=Number-259;
+ uint Distance=OldDist[DistNum];
+ for (uint I=DistNum;I>0;I--)
OldDist[I]=OldDist[I-1];
OldDist[0]=Distance;
- int LengthNumber=DecodeNumber(Inp,&BlockTables.RD);
+ uint LengthNumber=DecodeNumber(Inp,&BlockTables.RD);
int Length=LDecode[LengthNumber]+2;
if ((Bits=LBits[LengthNumber])>0)
{
@@ -237,7 +237,7 @@
}
if (Number<272)
{
- unsigned int Distance=SDDecode[Number-=263]+1;
+ uint Distance=SDDecode[Number-=263]+1;
if ((Bits=SDBits[Number])>0)
{
Distance+=Inp.getbits()>>(16-Bits);
@@ -274,11 +274,11 @@
NewTable=(BitField & 0x4000)!=0;
Inp.addbits(2);
}
- TablesRead=!NewTable;
+ TablesRead3=!NewTable;
// Quit immediately if "new file" flag is set. If "new table" flag
// is present, we'll read the table in beginning of next file
- // based on 'TablesRead' 'false' value.
+ // based on 'TablesRead3' 'false' value.
if (NewFile)
return false;
return ReadTables30(); // Quit only if we failed to read tables.
@@ -290,9 +290,9 @@
// Entire VM code is guaranteed to fully present in block defined
// by current Huffman table. Compressor checks that VM code does not cross
// Huffman block boundaries.
- unsigned int FirstByte=Inp.getbits()>>8;
+ uint FirstByte=Inp.getbits()>>8;
Inp.addbits(8);
- int Length=(FirstByte & 7)+1;
+ uint Length=(FirstByte & 7)+1;
if (Length==7)
{
Length=(Inp.getbits()>>8)+7;
@@ -304,8 +304,10 @@
Length=Inp.getbits();
Inp.addbits(16);
}
+ if (Length==0)
+ return false;
Array<byte> VMCode(Length);
- for (int I=0;I<Length;I++)
+ for (uint I=0;I<Length;I++)
{
// Try to read the new buffer if only one byte is left.
// But if we read all bytes except the last, one byte is enough.
@@ -320,15 +322,15 @@
bool Unpack::ReadVMCodePPM()
{
- unsigned int FirstByte=SafePPMDecodeChar();
+ uint FirstByte=SafePPMDecodeChar();
if ((int)FirstByte==-1)
return false;
- int Length=(FirstByte & 7)+1;
+ uint Length=(FirstByte & 7)+1;
if (Length==7)
{
int B1=SafePPMDecodeChar();
if (B1==-1)
- return(false);
+ return false;
Length=B1+7;
}
else
@@ -342,12 +344,14 @@
return false;
Length=B1*256+B2;
}
+ if (Length==0)
+ return false;
Array<byte> VMCode(Length);
- for (int I=0;I<Length;I++)
+ for (uint I=0;I<Length;I++)
{
int Ch=SafePPMDecodeChar();
if (Ch==-1)
- return(false);
+ return false;
VMCode[I]=Ch;
}
return AddVMCode(FirstByte,&VMCode[0],Length);
@@ -405,7 +409,7 @@
StackFilter->ParentFilter=FiltPos;
}
- int EmptyCount=0;
+ uint EmptyCount=0;
for (uint I=0;I<PrgStack.Size();I++)
{
PrgStack[I-EmptyCount]=PrgStack[I];
@@ -424,7 +428,7 @@
PrgStack.Add(1);
EmptyCount=1;
}
- int StackPos=(int)(PrgStack.Size()-EmptyCount);
+ size_t StackPos=PrgStack.Size()-EmptyCount;
PrgStack[StackPos]=StackFilter;
uint BlockStart=RarVM::ReadData(VMCodeInp);
@@ -458,7 +462,7 @@
{
uint InitMask=VMCodeInp.fgetbits()>>9;
VMCodeInp.faddbits(7);
- for (int I=0;I<7;I++)
+ for (uint I=0;I<7;I++)
if (InitMask & (1<<I))
StackFilter->Prg.InitR[I]=RarVM::ReadData(VMCodeInp);
}
@@ -644,13 +648,13 @@
memset(UnpOldTable,0,sizeof(UnpOldTable));
Inp.faddbits(2);
- for (int I=0;I<BC;I++)
+ for (uint I=0;I<BC;I++)
{
- int Length=(byte)(Inp.fgetbits() >> 12);
+ uint Length=(byte)(Inp.fgetbits() >> 12);
Inp.faddbits(4);
if (Length==15)
{
- int ZeroCount=(byte)(Inp.fgetbits() >> 12);
+ uint ZeroCount=(byte)(Inp.fgetbits() >> 12);
Inp.faddbits(4);
if (ZeroCount==0)
BitLength[I]=15;
@@ -667,13 +671,13 @@
}
MakeDecodeTables(BitLength,&BlockTables.BD,BC30);
- const int TableSize=HUFF_TABLE_SIZE30;
- for (int I=0;I<TableSize;)
+ const uint TableSize=HUFF_TABLE_SIZE30;
+ for (uint I=0;I<TableSize;)
{
if (Inp.InAddr>ReadTop-5)
if (!UnpReadBuf30())
return(false);
- int Number=DecodeNumber(Inp,&BlockTables.BD);
+ uint Number=DecodeNumber(Inp,&BlockTables.BD);
if (Number<16)
{
Table[I]=(Number+UnpOldTable[I]) & 0xf;
@@ -682,7 +686,7 @@
else
if (Number<18)
{
- int N;
+ uint N;
if (Number==16)
{
N=(Inp.fgetbits() >> 13)+3;
@@ -693,7 +697,9 @@
N=(Inp.fgetbits() >> 9)+11;
Inp.faddbits(7);
}
- if (I>0)
+ if (I==0)
+ return false; // We cannot have "repeat previous" code at the first position.
+ else
while (N-- > 0 && I<TableSize)
{
Table[I]=Table[I-1];
@@ -702,7 +708,7 @@
}
else
{
- int N;
+ uint N;
if (Number==18)
{
N=(Inp.fgetbits() >> 13)+3;
@@ -717,7 +723,7 @@
Table[I++]=0;
}
}
- TablesRead=true;
+ TablesRead3=true;
if (Inp.InAddr>ReadTop)
return false;
MakeDecodeTables(&Table[0],&BlockTables.LD,NC30);
@@ -733,7 +739,7 @@
{
if (!Solid)
{
- TablesRead=false;
+ TablesRead3=false;
memset(UnpOldTable,0,sizeof(UnpOldTable));
PPMEscChar=2;
UnpBlockType=BLOCK_LZ;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack50.cpp new/unrar/unpack50.cpp
--- old/unrar/unpack50.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpack50.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -7,7 +7,12 @@
UnpInitData(Solid);
if (!UnpReadBuf())
return;
- if (!ReadBlockHeader(Inp,BlockHeader) || !ReadTables(Inp,BlockHeader,BlockTables))
+
+ // Check TablesRead5 to be sure that we read tables at least once
+ // regardless of current block header TablePresent flag.
+ // So we can safefly use these tables below.
+ if (!ReadBlockHeader(Inp,BlockHeader) ||
+ !ReadTables(Inp,BlockHeader,BlockTables) || !TablesRead5)
return;
}
@@ -516,6 +521,13 @@
}
+void Unpack::UnpInitData50(bool Solid)
+{
+ if (!Solid)
+ TablesRead5=false;
+}
+
+
bool Unpack::ReadBlockHeader(BitInput &Inp,UnpackBlockHeader &Header)
{
Header.HeaderSize=0;
@@ -570,13 +582,13 @@
return false;
byte BitLength[BC];
- for (int I=0;I<BC;I++)
+ for (uint I=0;I<BC;I++)
{
- int Length=(byte)(Inp.fgetbits() >> 12);
+ uint Length=(byte)(Inp.fgetbits() >> 12);
Inp.faddbits(4);
if (Length==15)
{
- int ZeroCount=(byte)(Inp.fgetbits() >> 12);
+ uint ZeroCount=(byte)(Inp.fgetbits() >> 12);
Inp.faddbits(4);
if (ZeroCount==0)
BitLength[I]=15;
@@ -595,13 +607,13 @@
MakeDecodeTables(BitLength,&Tables.BD,BC);
byte Table[HUFF_TABLE_SIZE];
- const int TableSize=HUFF_TABLE_SIZE;
- for (int I=0;I<TableSize;)
+ const uint TableSize=HUFF_TABLE_SIZE;
+ for (uint I=0;I<TableSize;)
{
if (!Inp.ExternalBuffer && Inp.InAddr>ReadTop-5)
if (!UnpReadBuf())
return false;
- int Number=DecodeNumber(Inp,&Tables.BD);
+ uint Number=DecodeNumber(Inp,&Tables.BD);
if (Number<16)
{
Table[I]=Number;
@@ -610,7 +622,7 @@
else
if (Number<18)
{
- int N;
+ uint N;
if (Number==16)
{
N=(Inp.fgetbits() >> 13)+3;
@@ -621,7 +633,16 @@
N=(Inp.fgetbits() >> 9)+11;
Inp.faddbits(7);
}
- if (I>0)
+ if (I==0)
+ {
+ // We cannot have "repeat previous" code at the first position.
+ // Multiple such codes would shift Inp position without changing I,
+ // which can lead to reading beyond of Inp boundary in mutithreading
+ // mode, where Inp.ExternalBuffer disables bounds check and we just
+ // reserve a lot of buffer space to not need such check normally.
+ return false;
+ }
+ else
while (N-- > 0 && I<TableSize)
{
Table[I]=Table[I-1];
@@ -630,7 +651,7 @@
}
else
{
- int N;
+ uint N;
if (Number==18)
{
N=(Inp.fgetbits() >> 13)+3;
@@ -645,6 +666,7 @@
Table[I++]=0;
}
}
+ TablesRead5=true;
if (!Inp.ExternalBuffer && Inp.InAddr>ReadTop)
return false;
MakeDecodeTables(&Table[0],&Tables.LD,NC);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack50mt.cpp new/unrar/unpack50mt.cpp
--- old/unrar/unpack50mt.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpack50mt.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -133,11 +133,13 @@
if (!CurData->HeaderRead)
{
CurData->HeaderRead=true;
- if (!ReadBlockHeader(CurData->Inp,CurData->BlockHeader))
+ if (!ReadBlockHeader(CurData->Inp,CurData->BlockHeader) ||
+ !CurData->BlockHeader.TablePresent && !TablesRead5)
{
Done=true;
break;
}
+ TablesRead5=true;
}
// To prevent too high memory use we switch to single threaded mode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpackinline.cpp new/unrar/unpackinline.cpp
--- old/unrar/unpackinline.cpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/unpackinline.cpp 2017-07-25 11:04:34.000000000 +0200
@@ -120,7 +120,7 @@
// Convert the position in the code list to position in alphabet
// and return it.
- return(Dec->DecodeNum[Pos]);
+ return Dec->DecodeNum[Pos];
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp
--- old/unrar/version.hpp 2017-07-02 09:52:37.000000000 +0200
+++ new/unrar/version.hpp 2017-07-25 11:04:34.000000000 +0200
@@ -1,6 +1,6 @@
#define RARVER_MAJOR 5
#define RARVER_MINOR 50
-#define RARVER_BETA 5
-#define RARVER_DAY 2
+#define RARVER_BETA 6
+#define RARVER_DAY 25
#define RARVER_MONTH 7
#define RARVER_YEAR 2017
1
0
Hello community,
here is the log from the commit of package freshplayerplugin for openSUSE:Factory checked in at 2017-08-01 09:25:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/freshplayerplugin (Old)
and /work/SRC/openSUSE:Factory/.freshplayerplugin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freshplayerplugin"
Tue Aug 1 09:25:46 2017 rev:12 rq:513633 version:0.3.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/freshplayerplugin/freshplayerplugin.changes 2016-11-18 22:03:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.freshplayerplugin.new/freshplayerplugin.changes 2017-08-01 09:26:12.624669461 +0200
@@ -1,0 +2,16 @@
+Tue Aug 1 01:34:26 UTC 2017 - i(a)marguerite.su
+
+- Due to redhat#1402582, ragel's colm can't build and core dumps
+ on non-x86_64 arch. As ragel is just a code generator, we
+ can downgrade the buildrequires to ragel-6 (6.10) with no harm.
+
+-------------------------------------------------------------------
+Sun Jun 4 22:14:00 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Update to version 0.3.7:
+ * graphics: Add more fullscreen _NET_WM controls.
+ * misc: drop libpdf and NaCl wrappers.
+ * misc: Search for PepperFlash in Chrome component update
+ directories.
+
+-------------------------------------------------------------------
Old:
----
freshplayerplugin-0.3.6.tar.gz
New:
----
freshplayerplugin-0.3.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ freshplayerplugin.spec ++++++
--- /var/tmp/diff_new_pack.nwGL8k/_old 2017-08-01 09:26:13.296574766 +0200
+++ /var/tmp/diff_new_pack.nwGL8k/_new 2017-08-01 09:26:13.308573075 +0200
@@ -1,7 +1,7 @@
#
# spec file for package freshplayerplugin
#
-# 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
@@ -18,7 +18,7 @@
%bcond_with restricted
Name: freshplayerplugin
-Version: 0.3.6
+Version: 0.3.7
Release: 0
Summary: PPAPI2NPAPI compatibility layer
License: MIT
@@ -30,7 +30,7 @@
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig
-BuildRequires: ragel
+BuildRequires: ragel-6
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(freetype2)
++++++ freshplayerplugin-0.3.6.tar.gz -> freshplayerplugin-0.3.7.tar.gz ++++++
++++ 2289 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package sysdig for openSUSE:Factory checked in at 2017-08-01 09:25:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sysdig (Old)
and /work/SRC/openSUSE:Factory/.sysdig.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sysdig"
Tue Aug 1 09:25:44 2017 rev:15 rq:513621 version:0.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/sysdig/sysdig.changes 2017-05-08 19:05:04.618658764 +0200
+++ /work/SRC/openSUSE:Factory/.sysdig.new/sysdig.changes 2017-08-01 09:26:11.544821649 +0200
@@ -1,0 +2,12 @@
+Mon Jul 31 20:55:47 UTC 2017 - mpluskal(a)suse.com
+
+- Update to version 0.17.0 (boo#1051562):
+ * New features:
+ + Support netlink sockets [#809]
+ * Bug fixes:
+ + Fix a bug on cgroups parsing that prevented sysdig to start [#835]
+ + Allow sysdig to read k8s state from very large k8s environments [#856]
+ + Improve compatibility with older linux kernels [#889]
+ + Improve rkt detection by checking the existence of files into /var/lib/rkt [#893]
+
+-------------------------------------------------------------------
Old:
----
sysdig-0.16.0.tar.gz
New:
----
sysdig-0.17.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sysdig.spec ++++++
--- /var/tmp/diff_new_pack.VMbGlP/_old 2017-08-01 09:26:12.132738791 +0200
+++ /var/tmp/diff_new_pack.VMbGlP/_new 2017-08-01 09:26:12.132738791 +0200
@@ -17,7 +17,7 @@
Name: sysdig
-Version: 0.16.0
+Version: 0.17.0
Release: 0
Summary: System-level exploration
License: GPL-2.0
++++++ sysdig-0.16.0.tar.gz -> sysdig-0.17.0.tar.gz ++++++
++++ 3963 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package perl-pcsc for openSUSE:Factory checked in at 2017-08-01 09:25:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-pcsc (Old)
and /work/SRC/openSUSE:Factory/.perl-pcsc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-pcsc"
Tue Aug 1 09:25:37 2017 rev:11 rq:513606 version:1.4.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-pcsc/perl-pcsc.changes 2014-12-05 21:04:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-pcsc.new/perl-pcsc.changes 2017-08-01 09:26:08.957186338 +0200
@@ -1,0 +2,7 @@
+Mon Jul 31 16:53:57 CEST 2017 - sbrabec(a)suse.com
+
+- Update to version 1.4.14:
+ * Error processing fixes.
+- Add gpg.keyring and pcsc-perl-1.4.14.tar.bz2.asc.
+
+-------------------------------------------------------------------
Old:
----
pcsc-perl-1.4.13.tar.bz2
New:
----
pcsc-perl-1.4.14.tar.bz2
pcsc-perl-1.4.14.tar.bz2.asc
perl-pcsc.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-pcsc.spec ++++++
--- /var/tmp/diff_new_pack.7IhvRM/_old 2017-08-01 09:26:09.537104607 +0200
+++ /var/tmp/diff_new_pack.7IhvRM/_new 2017-08-01 09:26:09.541104043 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-pcsc
#
-# Copyright (c) 2014 SUSE LINUX Products 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
@@ -18,19 +18,22 @@
%define cpan_name pcsc-perl
Name: perl-pcsc
-Version: 1.4.13
+Version: 1.4.14
Release: 0
Summary: Perl interface to Smart Card Reader
License: GPL-2.0+
Group: Development/Libraries/Perl
Url: http://ludovic.rousseau.free.fr/softwares/pcsc-perl/
Source: http://ludovic.rousseau.free.fr/softwares/pcsc-perl/%{cpan_name}-%{version}…
+Source1: http://ludovic.rousseau.free.fr/softwares/pcsc-perl/%{cpan_name}-%{version}…
+Source2: %{name}.keyring
BuildRequires: perl
BuildRequires: pkg-config
BuildRequires: pkgconfig(libpcsclite)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1130
BuildRequires: perl-macros
+Requires: perl-base = %{perl_version}
%{perl_requires}
%else
Requires: perl = %{perl_version}
++++++ pcsc-perl-1.4.13.tar.bz2 -> pcsc-perl-1.4.14.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pcsc-perl-1.4.13/Changelog new/pcsc-perl-1.4.14/Changelog
--- old/pcsc-perl-1.4.13/Changelog 2013-04-01 12:31:44.000000000 +0200
+++ new/pcsc-perl-1.4.14/Changelog 2015-11-19 17:23:08.000000000 +0100
@@ -1,3 +1,27 @@
+2015-11-19 author <author@debian>
+
+ * README: Release 1.4.14
+
+ * PCSC.xs: Update copyright date
+
+ * PCSC.xs: _StringifyError(): cast Error in a (DWORD)
+
+ On Mac OS X El Capitan (at least) the value is extended to 64 bits and
+ is then wrong.
+
+ We get 0xFFFFFFFF80100068 instead of 0x80100068 and all the error codes
+ are all converted to the default error: "Unknown (reader specific ?) error..."
+
+2014-12-05 author <author@debian>
+
+ * LICENCE: Update GNU GPL v2 license text
+
+ The FSF postal adress has changed.
+
+ Thanks to Martin Hauke for the bug report.
+
+ * README: Release 1.4.13
+
2013-04-01 author <author@debian>
* create_distrib.sh:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pcsc-perl-1.4.13/LICENCE new/pcsc-perl-1.4.14/LICENCE
--- old/pcsc-perl-1.4.13/LICENCE 2006-06-18 18:41:19.000000000 +0200
+++ new/pcsc-perl-1.4.14/LICENCE 2014-12-05 09:32:12.000000000 +0100
@@ -1,12 +1,12 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
+the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@
The precise terms and conditions for copying, distribution and
modification follow.
-
- GNU GENERAL PUBLIC LICENSE
+
+ GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
-
+
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
-
+
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
-
+
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -277,9 +277,9 @@
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -303,17 +303,16 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
+library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pcsc-perl-1.4.13/PCSC.xs new/pcsc-perl-1.4.14/PCSC.xs
--- old/pcsc-perl-1.4.13/PCSC.xs 2011-03-06 18:17:04.000000000 +0100
+++ new/pcsc-perl-1.4.14/PCSC.xs 2015-11-19 17:05:17.000000000 +0100
@@ -8,7 +8,7 @@
* Description : Perl wrapper to the PCSC API
*
* Copyright (C) 2001 - Lionel VICTOR
- * Copyright (c) 2003-2010 Ludovic ROUSSEAU
+ * Copyright (c) 2003-2015 Ludovic ROUSSEAU
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
*
**************************************************************************/
- /* $Id: PCSC.xs,v 1.28 2011-03-06 17:17:04 rousseau Exp $ */
+ /* $Id: PCSC.xs,v 1.30 2015/11/19 16:05:17 rousseau Exp $ */
#ifdef __cplusplus
extern "C" {
@@ -235,7 +235,7 @@
* informations
*/
const char * _StringifyError (unsigned long Error) {
- switch ( Error ) {
+ switch ( (DWORD)Error ) {
case SCARD_S_SUCCESS: return "Command successful.";
case SCARD_E_CANCELLED: return "Command cancelled.";
case SCARD_E_CANT_DISPOSE: return "Cannot dispose handle.";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pcsc-perl-1.4.13/README new/pcsc-perl-1.4.14/README
--- old/pcsc-perl-1.4.13/README 2013-04-01 12:27:20.000000000 +0200
+++ new/pcsc-perl-1.4.14/README 2015-11-19 17:21:23.000000000 +0100
@@ -68,6 +68,10 @@
History:
========
+1.4.14 - 19 November 2015, Ludovic ROUSSEAU
+ - Fix _StringifyError() on Mac OS X. The string version of
+ PCSC::errno now works.
+
1.4.13 - 1 April 2013, Ludovic ROUSSEAU
- Fix a warning with Perl 5.16
@@ -185,5 +189,5 @@
1.0.8 - 18 Oct 2001, Ludovic ROUSSEAU
-$Id: README,v 1.25 2011/03/06 19:17:42 rousseau Exp $
+$Id: README,v 1.27 2015/11/19 16:21:23 rousseau Exp $
++++++ perl-pcsc.keyring ++++++
pub 4096R/E8F9C57E 2010-09-19
uid Ludovic Rousseau <ludovic.rousseau(a)free.fr>
uid Ludovic Rousseau <rousseau(a)debian.org>
sub 4096R/2F1BEFF0 2010-09-19
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
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
pRP4yT/Kvsj1Rz0cYYI=
=a5wl
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package poedit for openSUSE:Factory checked in at 2017-08-01 09:25:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/poedit (Old)
and /work/SRC/openSUSE:Factory/.poedit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poedit"
Tue Aug 1 09:25:33 2017 rev:39 rq:513601 version:2.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/poedit/poedit.changes 2017-04-18 13:50:39.832215219 +0200
+++ /work/SRC/openSUSE:Factory/.poedit.new/poedit.changes 2017-08-01 09:26:07.473395456 +0200
@@ -1,0 +2,25 @@
+Mon Jul 31 15:46:53 UTC 2017 - astieger(a)suse.com
+
+- PoEdit 2.0.3:
+ * Much faster loading and saving of large PO files.
+ * Fixed frequent false positives in QA warnings for German,
+ Japanese, Arabic and translations with reordered brackets.
+ * Fixed issues with suggestions not showing up in the sidebar if
+ the user had an unusually tall editing area set up.
+ * Fixed assert when opening a PO file on Linux.
+- build build with GCC7, ICU 59.1 on Factory bsc#1041277
+ add poedit-2.0.3-fix-icu.patch
+
+-------------------------------------------------------------------
+Mon Jun 12 10:08:42 UTC 2017 - astieger(a)suse.com
+
+- PoEdit 2.0.2:
+ * Unusual whitespace (2+ spaces) in the middle of strings is now
+ highlighted
+ * Strings with warnings are now put at the top together with
+ errors
+ * Fixed crash when clicking on an item with plurals in a POT file
+ * Added --line command line argument to open a file at specified
+ item
+
+-------------------------------------------------------------------
Old:
----
poedit-2.0.1.tar.gz
New:
----
poedit-2.0.3-fix-icu.patch
poedit-2.0.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ poedit.spec ++++++
--- /var/tmp/diff_new_pack.pIZKN2/_old 2017-08-01 09:26:08.193293997 +0200
+++ /var/tmp/diff_new_pack.pIZKN2/_new 2017-08-01 09:26:08.201292870 +0200
@@ -19,20 +19,20 @@
%bcond_without language_detection
%bcond_without crowdin_integration
Name: poedit
-Version: 2.0.1
+Version: 2.0.3
Release: 0
Summary: Cross-platform Gettext Catalogs Editing Tool
License: MIT
Group: Development/Tools/Other
Url: http://www.poedit.net/
Source: https://github.com/vslavik/poedit/releases/download/v%{version}-oss/%{name}…
-BuildRequires: autoconf
-BuildRequires: automake
+Patch0: poedit-2.0.3-fix-icu.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
-BuildRequires: wxWidgets-devel >= 3.0.2
+BuildRequires: wxWidgets-3_0-devel
+BuildRequires: wxWidgets-devel >= 3.0.3
BuildRequires: pkgconfig(gtkspell-2.0)
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: pkgconfig(icu-uc)
@@ -66,11 +66,9 @@
%prep
%setup -q
+%patch0 -p1
%build
-autoreconf -fi
-export CFLAGS="%{optflags} -fno-strict-aliasing"
-export CXXFLAGS="%{optflags} -fno-strict-aliasing"
%configure \
%if !%{with language_detection}
--without-cld2 \
++++++ poedit-2.0.3-fix-icu.patch ++++++
From: Andreas Stieger <astieger(a)suse.com>
Date: Mon, 31 Jul 2017 15:36:22 +0000
Subject: Fix build with ICU 59.1
References: https://github.com/vslavik/poedit/issues/406 https://bugzilla.opensuse.org/show_bug.cgi?id=1041277
Upstream: submitted
[ 112s] str_helpers.h:176:37: required from here
[ 112s] /usr/include/wx-3.0/wx/buffer.h:99:27: error: invalid conversion from 'wxScopedCharTypeBuffer<char16_t>::CharType* {aka char16_t*}' to 'const wxChar16* {aka const short unsigned int*}' [-fpermissive]
[ 112s] len = wxStrlen(str);
[ 112s] ~~~~~~~~^~~~~
Index: poedit-2.0.3/src/str_helpers.h
===================================================================
--- poedit-2.0.3.orig/src/str_helpers.h 2017-07-23 19:08:39.000000000 +0200
+++ poedit-2.0.3/src/str_helpers.h 2017-07-31 17:32:05.295617677 +0200
@@ -185,7 +185,7 @@ inline std::wstring to_wstring(const icu
Notice that the resulting string is only valid for the input's lifetime.
*/
-inline wxScopedCharTypeBuffer<UChar> to_icu_raw(const wxString& str)
+inline wxScopedCharTypeBuffer<wxChar16> to_icu_raw(const wxString& str)
{
static_assert(U_SIZEOF_UCHAR == 2, "unexpected UChar size");
#if SIZEOF_WCHAR_T == 2
@@ -194,7 +194,7 @@ inline wxScopedCharTypeBuffer<UChar> to_
#else
auto buf = wxMBConvUTF16().cWC2MB(str.wc_str());
auto len = buf.length();
- return wxCharTypeBuffer<UChar>::CreateOwned((UChar*)buf.release(), len);
+ return wxCharTypeBuffer<wxChar16>::CreateOwned((wxChar16*)buf.release(), len);
#endif
}
Index: poedit-2.0.3/src/unicode_helpers.cpp
===================================================================
--- poedit-2.0.3.orig/src/unicode_helpers.cpp 2017-07-23 19:08:39.000000000 +0200
+++ poedit-2.0.3/src/unicode_helpers.cpp 2017-07-31 17:32:05.295617677 +0200
@@ -38,7 +38,7 @@ TextDirection get_base_direction(const w
return TextDirection::LTR;
auto s = str::to_icu_raw(text);
- switch (ubidi_getBaseDirection(s.data(), (int)s.length()))
+ switch (ubidi_getBaseDirection((const UChar*)s.data(), (int)s.length()))
{
case UBIDI_RTL:
return TextDirection::RTL;
++++++ poedit-2.0.1.tar.gz -> poedit-2.0.3.tar.gz ++++++
++++ 16293 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package youtube-dl for openSUSE:Factory checked in at 2017-08-01 09:25:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/youtube-dl (Old)
and /work/SRC/openSUSE:Factory/.youtube-dl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "youtube-dl"
Tue Aug 1 09:25:28 2017 rev:65 rq:513171 version:2017.07.23
Changes:
--------
--- /work/SRC/openSUSE:Factory/youtube-dl/python-youtube-dl.changes 2017-07-07 10:17:17.823780218 +0200
+++ /work/SRC/openSUSE:Factory/.youtube-dl.new/python-youtube-dl.changes 2017-08-01 09:26:04.229852584 +0200
@@ -1,0 +2,7 @@
+Mon Jul 24 10:58:34 UTC 2017 - jengelh(a)inai.de
+
+- Update to new upstream release 2017.07.23
+ * Remove extractor for yam
+ * spiegel:article: Add support for nexx iframe embeds
+
+-------------------------------------------------------------------
youtube-dl.changes: same change
Old:
----
youtube-dl-2017.07.02.tar.gz
youtube-dl-2017.07.02.tar.gz.sig
New:
----
youtube-dl-2017.07.23.tar.gz
youtube-dl-2017.07.23.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-youtube-dl.spec ++++++
--- /var/tmp/diff_new_pack.8EzwZv/_old 2017-08-01 09:26:06.321557790 +0200
+++ /var/tmp/diff_new_pack.8EzwZv/_new 2017-08-01 09:26:06.325557227 +0200
@@ -19,7 +19,7 @@
%define modname youtube-dl
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-youtube-dl
-Version: 2017.07.02
+Version: 2017.07.23
Release: 0
Summary: A python module for downloading from video sites for offline watching
License: SUSE-Public-Domain and CC-BY-SA-3.0
++++++ youtube-dl.spec ++++++
--- /var/tmp/diff_new_pack.8EzwZv/_old 2017-08-01 09:26:06.373550463 +0200
+++ /var/tmp/diff_new_pack.8EzwZv/_new 2017-08-01 09:26:06.381549335 +0200
@@ -17,7 +17,7 @@
Name: youtube-dl
-Version: 2017.07.02
+Version: 2017.07.23
Release: 0
Summary: A tool for downloading from video sites for offline watching
License: SUSE-Public-Domain and CC-BY-SA-3.0
++++++ youtube-dl-2017.07.02.tar.gz -> youtube-dl-2017.07.23.tar.gz ++++++
++++ 3813 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package fate for openSUSE:Factory checked in at 2017-08-01 09:25:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fate (Old)
and /work/SRC/openSUSE:Factory/.fate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fate"
Tue Aug 1 09:25:26 2017 rev:9 rq:513159 version:1.6.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/fate/fate.changes 2017-06-28 10:37:28.001358357 +0200
+++ /work/SRC/openSUSE:Factory/.fate.new/fate.changes 2017-08-01 09:26:02.838048737 +0200
@@ -1,0 +2,23 @@
+Mon Jul 31 08:36:05 UTC 2017 - jplack(a)suse.com
+
+- bugfix release 1.6.0.2
+ * fix bsc#1050997 in query by ids, thanks to reporter afaerber@
+ and aschwab@
+ * fix freeze/unfreeze in FeatureTableView
+ * do not copy xml representation in Feature::operator=
+ * eliminate public method FeatureMap::recordChange that nobody needs
+ * FeatureMapListView: derive directly from FeatureTableView
+ * fix reloading of single features, eliminate signal
+ FeatureMap::featureReloaded()
+ * let FeatureView handle its stuff alone in MainView
+ * handle signals from FeatureMap properly in FeatureView if they apply
+ * add a new public method FeatureMap::addNewFeature, making
+ addFeature/addFeatures protected
+ * hide progress bar after Feature import or cloning
+ * make Feature::operator= an internal operation for friend classes only
+ * do not bail out on new Features in FeatureDiffView::showFeatureChanges
+ * remove non-emitted signal FeatureDisplay::featureSelected(Feature*)
+ * remove FeatureMap* from FeatureView constructor
+ * fix bug in Feature::operator=
+
+-------------------------------------------------------------------
Old:
----
fate-20170627-b434f6b5.tar.bz2
New:
----
fate-20170731-4baa429b.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fate.spec ++++++
--- /var/tmp/diff_new_pack.gVMWFc/_old 2017-08-01 09:26:03.373973207 +0200
+++ /var/tmp/diff_new_pack.gVMWFc/_new 2017-08-01 09:26:03.377972644 +0200
@@ -17,8 +17,8 @@
%define baseversion 1.6
-%define patchlevel .0.1
-%define snapshot 20170627-b434f6b5
+%define patchlevel .0.2
+%define snapshot 20170731-4baa429b
Name: fate
Version: %{baseversion}%{patchlevel}
Release: 0
++++++ fate-20170627-b434f6b5.tar.bz2 -> fate-20170731-4baa429b.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/fate/editor/featurediffview.cpp new/fate-20170731-4baa429b/src/fate/editor/featurediffview.cpp
--- old/fate-20170627-b434f6b5/src/fate/editor/featurediffview.cpp 2017-06-27 16:44:59.458786761 +0200
+++ new/fate-20170731-4baa429b/src/fate/editor/featurediffview.cpp 2017-07-31 10:53:53.773448590 +0200
@@ -149,24 +149,29 @@
{
if (!isVisible() || !mFeature)
return;
+ Feature *oldRev;
- FeatureMap *fmap = mFeature->featureMap();
- if (!fmap)
- return;
-
- Feature *oldRev = fmap->origFeature( mFeature );
-
- if ( !oldRev ) {
- setPlainText( i18n("Caching has to be enabled to create diffs.\n\n"
- "Please enable cached queries first.") );
- return;
+ if (mFeature->isNew()) {
+ oldRev = new Feature;
+ oldRev->createDomTree( false );
+ }
+ else {
+ FeatureMap *fmap = mFeature->featureMap();
+ if (!fmap)
+ return;
+ oldRev = fmap->origFeature( mFeature );
+
+ if (!oldRev) {
+ setPlainText( i18n("Caching has to be enabled to create diffs.\n\n"
+ "Please enable cached queries first.") );
+ return;
+ }
}
if (mOldFile) { // still another diff process running
qWarning() << "still another diff process running";
return;
}
- qWarning() << Q_FUNC_INFO << "Feature #" << mFeature->id();
// update XML representation
mFeature->createDomTree( false );
@@ -249,7 +254,6 @@
{
QString output;
- qWarning() << Q_FUNC_INFO << proc << success;
if (!success)
output = i18n("diff process failed");
else if (!proc->getStandardOutput(output))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/fate/editor/featuredisplay.h new/fate-20170731-4baa429b/src/fate/editor/featuredisplay.h
--- old/fate-20170627-b434f6b5/src/fate/editor/featuredisplay.h 2017-06-27 16:44:59.458786761 +0200
+++ new/fate-20170731-4baa429b/src/fate/editor/featuredisplay.h 2017-07-31 10:53:53.773448590 +0200
@@ -56,7 +56,6 @@
virtual void showEvent(QShowEvent * event);
signals:
- void featureSelected( Feature * );
void commentRequest( int );
void commentEditRequest( int );
void commentToPublicRequest( int );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/fate/editor/featureview.cpp new/fate-20170731-4baa429b/src/fate/editor/featureview.cpp
--- old/fate-20170627-b434f6b5/src/fate/editor/featureview.cpp 2017-06-27 16:44:59.458786761 +0200
+++ new/fate-20170731-4baa429b/src/fate/editor/featureview.cpp 2017-07-31 10:53:53.777448609 +0200
@@ -56,8 +56,8 @@
{ NULL, QString::null, 0, 0 }
};
-FeatureView::FeatureView(FeatureMap *features, QWidget *parent)
-: QTabWidget(parent), mFeatureMap(features),
+FeatureView::FeatureView(QWidget *parent)
+: QTabWidget(parent), mFeatureMap(0),
mFeatureDisplay(0), mSimpleEditor(0), mEcoEditor(0), mCommentsView(0),
mChangesView(0), mHistoryView(0), mRawXMLView(0), mMultiOpView(0),
mCommentDialog(0), mReadOnly(false)
@@ -128,7 +128,6 @@
void FeatureView::menuTriggered(QAction *action)
{
- qWarning() << Q_FUNC_INFO << action->text() << action->data() << action->objectName();
int number = action->data().toInt();
switch(number) {
@@ -178,7 +177,9 @@
action->setEnabled(featureModified);
action = mMenu->findChild<QAction *>("saveAll");
if (action)
- action->setEnabled(mFeatureMap->modifiedFeatures().size() > featureModified);
+ action->setEnabled(mFeatureMap ?
+ mFeatureMap->modifiedFeatures().size() > featureModified
+ : false);
action = mMenu->findChild<QAction *>("configure");
if (action) {
FeatureViewBase *viewer = dynamic_cast<FeatureViewBase *>(currentWidget());
@@ -205,8 +206,6 @@
SLOT( slotFeatureSelected( const QString & ) ));
connect( mFeatureDisplay, SIGNAL( showTreeRequest(const QString &) ),
SIGNAL( showTreeRequest(const QString &) ) );
- connect( mFeatureDisplay, SIGNAL( featureSelected( Feature * ) ),
- SIGNAL( featureSelected( Feature * ) ) );
}
return mFeatureDisplay;
}
@@ -317,10 +316,15 @@
FeatureViewBase_setFeature(feature);
+ if ( mFeatureMap ) {
+ mFeatureMap->disconnect(this);
+ mFeatureMap = 0;
+ }
+
if (!mFeature) {
mFeatureDisplay->clear();
if (mChangesView)
- mChangesView->setFeature(0);
+ mChangesView->clear();
if (mSimpleEditor)
mSimpleEditor->clear();
if (mEcoEditor)
@@ -328,6 +332,12 @@
return;
}
+ mFeatureMap = mFeature->featureMap();
+ if ( mFeatureMap && mFeatureMap->view() == this) {
+ connect( mFeatureMap, SIGNAL( currentFeatureChanged( Feature * ) ),
+ SLOT( setFeature( Feature * ) ) );
+ }
+
if (mFeature->eco()) {
// show ECO tab
QAction *action = mMenu->actions().at(1); // entry for ecoEditor
@@ -433,6 +443,8 @@
void FeatureView::saveCurrentFeature()
{
+ if (!mFeature || !mFeatureMap)
+ return;
if (!mFeature->isModified())
return;
if (!mFeatureMap->saveKeeper(mFeature)) {
@@ -442,6 +454,8 @@
void FeatureView::saveAllFeatures()
{
+ if (!mFeature || !mFeatureMap)
+ return;
if (!mFeatureMap->isModified())
return;
if (!mFeatureMap->saveModifiedFeatures()) {
@@ -502,9 +516,6 @@
void FeatureView::slotTabChanged( QWidget *w )
{
- if (w == mFeatureDisplay) {
- mFeatureDisplay->setFeature( mFeature );
- }
if (mMultiOpView && w != mMultiOpView) {
// hide multiOp tab
QAction *action = mMenu->actions().at(5); // keep in sync with featureViewTab[]
@@ -552,8 +563,6 @@
{
if ( mFeature != f ) {
setFeature( f );
- // showFeature does already do a 'select´ and emits this signal
- // emit featureSelected( f );
}
if ( mFeatureDisplay->isVisible() ) {
saveComments();
@@ -637,13 +646,16 @@
void FeatureView::slotFeatureSelected( const QString &id )
{
+ if (!mFeatureMap)
+ return;
+
Feature *f = mFeatureMap->feature( id );
// moved that code from FeatureDisplay !!
// !! and _add_ the feature to the current feature set __and__ to
// !! the querystring ... !!
// currentQuery.unite( Query( id.toNum() ) ); ??
- if( !f || !mFeatureMap->features().contains( f ) ) {
+ if ( !f ) {
int res = KMessageBox::questionYesNo( this, i18n(
"The requested feature is not part of the current feature set. "
"Fate can load it, but the feature set will then no longer match "
@@ -656,15 +668,14 @@
}
mFeatureMap->doRestock( id );
+ if (f)
+ mFeatureMap->setCurrentFeature(f);
}
void FeatureView::saveComments()
{
mFeature->createDomTree( true );
mFeatureDisplay->setFeature( mFeature );
- /* the call to showFeature sets the feature unmodified
- * again. But it is modified because of the new comment
- */
}
Feature* FeatureView::currentFeature()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/fate/editor/featureview.h new/fate-20170731-4baa429b/src/fate/editor/featureview.h
--- old/fate-20170627-b434f6b5/src/fate/editor/featureview.h 2017-06-27 16:44:59.458786761 +0200
+++ new/fate-20170731-4baa429b/src/fate/editor/featureview.h 2017-07-31 10:53:53.777448609 +0200
@@ -28,7 +28,6 @@
#include "featureviewbase.h"
#include <QTabWidget>
-#include <QWidget>
class CommentDialog;
class EcoEditor;
@@ -42,6 +41,7 @@
class KActionCollection;
class QComboBox;
class QMenu;
+class QWidget;
class SimpleEditor;
struct FateTabEntry {
@@ -56,7 +56,7 @@
{
Q_OBJECT
public:
- FeatureView( FeatureMap *, QWidget *parent );
+ FeatureView( QWidget *parent );
virtual ~FeatureView();
void setupActions( KActionCollection * );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/fate/editor/htmlview.cpp new/fate-20170731-4baa429b/src/fate/editor/htmlview.cpp
--- old/fate-20170627-b434f6b5/src/fate/editor/htmlview.cpp 2017-06-27 16:44:59.458786761 +0200
+++ new/fate-20170731-4baa429b/src/fate/editor/htmlview.cpp 2017-07-31 10:53:53.777448609 +0200
@@ -92,7 +92,7 @@
void HtmlView::clearView()
{
begin();
- write( QString::null );
+ write("<html><body></body></html>");
end();
setTitle( QString::null );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/fate/mainview.cpp new/fate-20170731-4baa429b/src/fate/mainview.cpp
--- old/fate-20170627-b434f6b5/src/fate/mainview.cpp 2017-06-27 16:44:59.462786781 +0200
+++ new/fate-20170731-4baa429b/src/fate/mainview.cpp 2017-07-31 10:53:53.777448609 +0200
@@ -2,8 +2,10 @@
This file is part of Fate.
Copyright (c) 2005 SUSE LINUX Products GmbH
+ 2017 SUSE Linux GmbH
- Author: Cornelius Schumacher <cschum(a)suse.de>
+ Author: Cornelius Schumacher <cschum(a)suse.de>,
+ Joachim Plack <jplack(a)suse.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -24,9 +26,6 @@
#include "prefs.h"
#include "querylog.h"
-#include <QBoxLayout>
-#include <QHBoxLayout>
-#include <QVBoxLayout>
#include "feature.h"
#include "featureview.h"
#include "featurelistview.h"
@@ -75,29 +74,25 @@
#include <kdialog.h>
#include <kio/job.h>
#include <kstandarddirs.h>
-#include <kuser.h>
#include <kaction.h>
#include <kshortcut.h>
-#include <ksavefile.h>
#include <ksqueezedtextlabel.h>
-#include <kdeversion.h>
-#include <qlineedit.h>
-#include <qlayout.h>
-#include <qpushbutton.h>
-#include <qtextedit.h>
-#include <qlabel.h>
-#include <qsplitter.h>
-#include <qregexp.h>
-#include <qcombobox.h>
-#include <qtimer.h>
-#include <qcursor.h>
-#include <qapplication.h>
-#include <qsignalmapper.h>
+#include <QApplication>
+#include <QBoxLayout>
+#include <QComboBox>
+#include <QCursor>
#include <QDBusConnection>
+#include <QHBoxLayout>
+#include <QLabel>
+#include <QLineEdit>
+#include <QRegExp>
+#include <QSignalMapper>
+#include <QSplitter>
#include <QTabWidget>
-
-#define BULK_FEATURE_UPDATES
+#include <QTextStream>
+#include <QTimer>
+#include <QVBoxLayout>
MainView::MainView( QWidget *parent, bool quietStartup )
: QWidget( parent ), mQuietStartup( quietStartup ),
@@ -166,63 +161,32 @@
connect( mRelationTreeView, SIGNAL( newButtonClicked() ),
SLOT( newRelationTree() ) );
connect( mRelationTreeView, SIGNAL( featureSelected(Feature *) ),
- SLOT( showFeature(Feature *)) );
+ &mFeatureMap, SLOT( setCurrentFeature(Feature *)) );
vbl->addWidget( mRelationTreeView );
mNavigatorTab->addTab( w, i18n("Relation &Trees") );
- mFeatureListView = new FeatureTableView( mNavigatorSplitter );
+ mFeatureMapListView = new FeatureMapListView( mNavigatorSplitter, &mFeatureMap);
- mFeatureView = new FeatureView( &mFeatureMap, rightSplitter );
+ // TODO: remove parameter mFeatureMap, this can be read from the feature in setFeature
+ mFeatureView = new FeatureView( rightSplitter );
mFeatureMap.setView( mFeatureView );
connect( &mFeatureMap, SIGNAL( statusMessage( const QString & ) ),
SIGNAL( statusMessage( const QString & ) ) );
connect( &mFeatureMap, SIGNAL( queryDone( bool ) ),
SLOT( slotQueryDone() ) );
- connect( &mFeatureMap, SIGNAL( queryDone( bool ) ),
- mFeatureListView, SLOT( unfreeze() ) );
- connect( &mFeatureMap, SIGNAL( dataAboutToBeReset() ),
- SLOT( clearFeatureViews() ) );
- connect( &mFeatureMap, SIGNAL( dataAboutToBeReset() ),
- mFeatureListView, SLOT( freeze() ) );
- connect( mFeatureListView, SIGNAL( requestFeatureView( Feature * ) ),
- SLOT( showNewFeatureView( Feature * ) ) );
-
- // This signal/slot connection causes features to be added to the
- // table/list view one by one. Which is fine for a small number of
- // features, but tends to get slow with larger numbers. This is
- // mostly due to table sorting, it appears.
-#ifndef BULK_FEATURE_UPDATES
- connect( &mFeatureMap, SIGNAL( featureAdded( Feature * ) ),
- mFeatureListView, SLOT( insertFeature( Feature * ) ) );
-#endif
-
- connect( &mFeatureMap, SIGNAL( featureChanged( Feature * ) ),
- mFeatureListView, SLOT( updateFeature( Feature * ) ) );
- connect( &mFeatureMap, SIGNAL( featureReloaded( Feature * ) ),
- mFeatureListView, SLOT( updateFeature( Feature * ) ) );
connect( &mFeatureMap, SIGNAL( dataChanged() ),
SLOT( slotFeatureDataChanged() ) );
- connect( &mFeatureMap, SIGNAL( featureReloaded( Feature * ) ),
+
+ // Thinks we do not need that in the end ...
+ connect( &mFeatureMap, SIGNAL( featureChanged( Feature * ) ),
SLOT( slotFeatureReloaded( Feature * ) ) );
connect( &mFeatureMap, SIGNAL( connectionEstablished( bool ) ),
SIGNAL( connectionEstablished( bool ) ) );
- // this gets connected only for the first FeatureView and is the only valid
- // way to change the displayed feature for it
- connect( &mFeatureMap, SIGNAL( currentFeatureChanged( Feature * ) ),
- mFeatureView, SLOT( setFeature( Feature * ) ) );
- connect( mFeatureListView, SIGNAL( featureSelected( Feature * ) ),
- SLOT( showFeature( Feature * ) ) );
- /*
- connect( mFeatureView, SIGNAL( featureSelected( Feature * ) ),
- mFeatureListView, SLOT( selectFeature( Feature * ) ) );
- */
- // TODO: looks like this can be removed both, the second should signal
- // FeatureMap instead
- connect( mFeatureView, SIGNAL( featureSelected( Feature * ) ),
- &mFeatureMap, SLOT( setCurrentFeature( Feature * ) ) );
- connect( mFeatureView, SIGNAL( featureSelected( Feature * ) ),
- SLOT( showFeature( Feature * ) ) );
+ // TODO: may be move this completely to FeatureMapListView
+ connect( mFeatureMapListView, SIGNAL( requestFeatureView( Feature * ) ),
+ SLOT( showNewFeatureView( Feature * ) ) );
+
connect( mFeatureView, SIGNAL(showTreeRequest( const QString & ) ),
SLOT( showTree( const QString & ) ) );
@@ -274,6 +238,10 @@
Prefs::self()->writeConfig();
delete mClientInfo;
+ delete mFeatureView;
+ delete mFeatureMapListView;
+ delete mStatisticsView;
+ delete mRelationTreeView;
}
void MainView::showNewFeatureView(Feature *feature)
@@ -282,7 +250,7 @@
if (!mFeatureMap.features().contains(feature))
return;
- FeatureView *view = new FeatureView(&mFeatureMap, NULL);
+ FeatureView *view = new FeatureView(NULL);
view->setFeature(feature);
KActionCollection c(view);
view->setupActions( &c );
@@ -291,10 +259,25 @@
connect( &mFeatureMap, SIGNAL(dataAboutToBeReset()),
view, SLOT(close()));
- view->resize(800, 600); // better load last geometry
+ disconnect( feature, SIGNAL(destroyed()),
+ view, 0);
+ connect( feature, SIGNAL(destroyed()),
+ view, SLOT(close()));
+ connect( view, SIGNAL(destroyed()),
+ SLOT(aboutToDestroyFeatureView()));
+ // TODO: load and store a default size
+ view->resize(800, 600);
view->show();
}
+void MainView::aboutToDestroyFeatureView()
+{
+ // FeatureView *view == sender();
+
+ emit statusMessage("FeatureView about to be destroyed");
+}
+
+
void MainView::editRelationTree()
{
if( Prefs::self()->offlineModeEnabled() ) {
@@ -334,7 +317,7 @@
dlg.setProductMap( ProductMap::self() );
dlg.showTree( mRelationTreeView->currentTree() );
connect( &dlg, SIGNAL( featureSelected(Feature *) ),
- SLOT( showFeature(Feature *)) );
+ &mFeatureMap, SLOT( setCurrentFeature(Feature *)) );
dlg.exec();
}
@@ -351,7 +334,7 @@
dlg.setProductMap( ProductMap::self() );
dlg.showTree( tree );
connect( &dlg, SIGNAL( featureSelected(Feature *) ),
- SLOT( showFeature(Feature *)) );
+ &mFeatureMap, SLOT( setCurrentFeature(Feature *)) );
dlg.exec();
}
@@ -659,7 +642,7 @@
connect( mLoadMissingFeaturesAction, SIGNAL( triggered() ),
mRelationTreeView, SLOT( stockTree() ) );
c->addAction( "stock_tree", mLoadMissingFeaturesAction );
-
+ /*
KAction* kaction = new KAction( this );
kaction->setText( i18n("Select next feature") );
kaction->setShortcut( Qt::CTRL+Qt::Key_Down );
@@ -671,9 +654,10 @@
kaction->setShortcut( Qt::CTRL+Qt::Key_Up );
connect( kaction, SIGNAL( triggered() ), SLOT(selectPreviousFeature()));
c->addAction( "select_previous_feature", action );
-
+ */
updateStoredQueriesView();
mFeatureView->setupActions( c );
+ mFeatureMapListView->setupActions( c );
}
void MainView::submitQuery( const Query &query )
@@ -1048,9 +1032,8 @@
Feature *f = dlg->feature();
f->setModified(true);
- mFeatureMap.addFeature(f);
+ mFeatureMap.addNewFeature(f);
mFeatureMap.setCurrentFeature(f);
- mFeatureView->setFeature(f);
mFeatureView->focusEditor();
}
}
@@ -1067,12 +1050,14 @@
FeatureParser parser;
connect( &parser, SIGNAL(featureParsed( Feature * )),
- &mFeatureMap, SLOT(addFeature( Feature * )) );
+ &mFeatureMap, SLOT(addNewFeature( Feature * )) );
clonedFeature = new Feature;
clonedFeature->setModified(true);
KResult result = parser.parseFeature(clonedFeature, xml);
+ emit queryDone(); // hide progress bar again
+
if (!result) {
KMessageBox::sorry(this, result.fullMessage());
// FIXME: do we need to delete clonedFeature?
@@ -1099,7 +1084,7 @@
if (!mFeatureMap.checkModified(true))
return;
- f = mFeatureView->currentFeature();
+ f = mFeatureMap.currentFeature();
if (f == 0) {
KMessageBox::sorry(this, i18n("No feature selected."));
return;
@@ -1107,7 +1092,7 @@
f = doClone(f, true);
if (f != 0)
- showFeature(f);
+ mFeatureMap.setCurrentFeature(f);
}
void MainView::cloneFeatureWithoutComments()
@@ -1117,7 +1102,7 @@
if (!mFeatureMap.checkModified(true))
return;
- f = mFeatureView->currentFeature();
+ f = mFeatureMap.currentFeature();
if (f == 0) {
KMessageBox::sorry(this, i18n("No feature selected."));
return;
@@ -1125,7 +1110,7 @@
f = doClone(f, false);
if (f != 0)
- showFeature(f);
+ mFeatureMap.setCurrentFeature(f);
}
void MainView::importFeature()
@@ -1145,9 +1130,11 @@
FeatureParser parser;
connect( &parser, SIGNAL(featureParsed( Feature * )),
- mFeatureView, SLOT(addFeature( Feature * )) );
+ &mFeatureMap, SLOT(addNewFeature( Feature * )) );
KResult result = parser.parse( xml );
+ emit queryDone(); // hide progress bar again
+
if ( !result ) KMessageBox::sorry( this, result.fullMessage() );
}
@@ -1156,27 +1143,16 @@
ImportBugzillaDialog dlg( ProductMap::self(), this );
connect( &dlg, SIGNAL( featureParsed( Feature * ) ),
- &mFeatureMap, SLOT( addFeature( Feature * ) ) );
+ &mFeatureMap, SLOT( addNewFeature( Feature * ) ) );
dlg.exec();
}
-void MainView::updateFeatureList( Feature *f )
-{
- kDebug() << k_funcinfo << f->id();
-
- mFeatureListView->insertFeature( f );
- mFeatureListView->updateView();
-// TODO: Add to tree view.
-// mTreeView->addFeature( f );
- // TODO: Update info in list view item
-}
-
void MainView::reloadFeature( Feature *f )
{
Feature *feature = f;
- if ( !feature ) feature = mFeatureView->currentFeature();
+ if ( !feature ) feature = mFeatureMap.currentFeature();
if ( !feature ) {
KMessageBox::sorry( this, i18n("No feature selected.") );
@@ -1192,12 +1168,10 @@
void MainView::slotFeatureReloaded( Feature * f )
{
- Feature *currentFeature = mFeatureView->currentFeature();
+ Feature *currentFeature = mFeatureMap.currentFeature();
if ( !currentFeature || currentFeature->id() == f->id() ) {
- showFeature( f );
+ mFeatureView->setFeature( f );
}
-
- updateFeatureList( f );
}
void MainView::doDelayedQuery()
@@ -1248,17 +1222,6 @@
void MainView::slotQueryDone()
{
-#ifdef BULK_FEATURE_UPDATES
- /* bsc#899494
- * The problem here is that mFeatureMap emits dataChanged() from
- * FeatureMap::slotQueryDone() and FeatureTableView::slotProductChosen
- * correctly processess the signal BUT at that time there are no features in
- * the table as FeatureTableView::insertFeatures() gets called only after the
- * signal is processed. This needs redesign.
- */
- mFeatureListView->insertFeatures(mFeatureMap.features());
-#endif
-
emit queryDone();
QApplication::restoreOverrideCursor();
}
@@ -1651,7 +1614,7 @@
void MainView::showHistory()
{
- Feature *f = mFeatureView->currentFeature();
+ Feature *f = mFeatureMap.currentFeature();
if ( f ) {
HistoryDialog *dlg = new HistoryDialog( f, this );
dlg->show();
@@ -1730,27 +1693,6 @@
mLoadMissingFeaturesAction->setEnabled( enabled );
}
-void MainView::showFeature( Feature *feature )
-{
- if( !feature ) {
- return;
- }
-
- if( feature != mFeatureView->currentFeature() &&
- !mFeatureMap.checkModified( true ) ) {
- QTimer::singleShot( 0, this, SLOT(reselectFeature()) );
- return;
- }
-
- mFeatureView->setFeature( feature );
-}
-
-void MainView::reselectFeature()
-{
- mFeatureListView->clearSelection();
- mFeatureListView->selectFeature( mFeatureView->currentFeature() );
-}
-
bool MainView::goOnline()
{
if( !mFeatureMap.checkSynch( true ) )
@@ -1817,7 +1759,7 @@
FeatureTableDialog dlg( ProductMap::self(), this );
connect( &dlg, SIGNAL( featureSelected( Feature *) ),
- SLOT( showFeature( Feature * ) ) );
+ &mFeatureMap, SLOT( setCurrentFeature( Feature * ) ) );
dlg.setFeatures( mFeatureMap.features() );
dlg.exec();
@@ -1852,19 +1794,9 @@
dlg.exec();
}
-void MainView::clearFeatureViews()
-{
- mFeatureListView->clear();
- mFeatureView->clear();
-}
-
void MainView::slotFeatureDataChanged()
{
- mFeatureListView->updateView();
- mFeatureListView->updateQueryTitle( mFeatureMap.currentQuery().title() );
- mFeatureListView->updateProductList( mFeatureMap.productList() );
-
StartupSequence::self()->setPrecondition( StartupSequence::StartupQueryDone,
true );
@@ -1883,14 +1815,14 @@
if ( f ) kDebug() << k_funcinfo << "Showing first feature: " << f->id();
else kDebug() << k_funcinfo << "Unable to find first feature.";
}
- mFeatureListView->selectFeature( f );
- showFeature( f );
+ mFeatureMap.setCurrentFeature(f);
+ mFeatureView->setFeature(f);
}
QString MainView::currentURL() const
{
- if( mFeatureView->currentFeature() ) {
- return QString( "fate://%1" ).arg( mFeatureView->currentFeature()->id() );
+ if( mFeatureMap.currentFeature() ) {
+ return QString( "fate://%1" ).arg( mFeatureMap.currentFeature()->id() );
}
return QString::null;
}
@@ -1898,7 +1830,7 @@
QString MainView::currentTitle() const
{
- Feature *f = mFeatureView->currentFeature();
+ Feature *f = mFeatureMap.currentFeature();
if( f )
return QString( "#%1: %2" ).arg( f->id(), f->title() );
return QString::null;
@@ -1923,14 +1855,4 @@
dlg.exec();
}
-void MainView::selectNextFeature()
-{
- mFeatureListView->selectNext();
-}
-
-void MainView::selectPreviousFeature()
-{
- mFeatureListView->selectPrevious();
-}
-
#include "mainview.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/fate/mainview.h new/fate-20170731-4baa429b/src/fate/mainview.h
--- old/fate-20170627-b434f6b5/src/fate/mainview.h 2017-06-27 16:44:59.462786781 +0200
+++ new/fate-20170731-4baa429b/src/fate/mainview.h 2017-07-31 10:53:53.777448609 +0200
@@ -2,8 +2,10 @@
This file is part of Fate.
Copyright (c) 2005 SUSE LINUX Products GmbH
+ 2017 SUSE Linux GmbH
- Author: Cornelius Schumacher <cschum(a)suse.de>
+ Author: Cornelius Schumacher <cschum(a)suse.de>,
+ Joachim Plack <jplack(a)suse.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -30,34 +32,26 @@
#include "dcopfateiface.h"
#include "startupsequence.h"
-#include <qwidget.h>
-#include <qdom.h>
-
-#include <sys/time.h>
-
-class QLineEdit;
-class FeatureTableView;
-class QueryLogDialog;
-class QComboBox;
-class QLabel;
-class QSplitter;
-class KActionCollection;
-class QTabWidget;
-class QPushButton;
-class QSignalMapper;
+#include <QWidget>
+class ClientInfo;
+class ExportJob;
class Feature;
+class FeatureMapListView;
class FeatureView;
class KAction;
+class KActionCollection;
class KActionMenu;
-class XQueryDialog;
-class ExportJob;
-class RelationTreeView;
+class QSignalMapper;
+class QSplitter;
+class QTabWidget;
+class QueryLogDialog;
class RelationList;
class RelationQueryEngine;
+class RelationTreeView;
class StatisticsView;
-class ClientInfo;
class TextTemplate;
+class XQueryDialog;
class MainView : public QWidget // FIXME: DBusObject
{
@@ -101,15 +95,12 @@
void exportFeatureXml();
void showHistory();
void syncDatabase();
- void showFeature( Feature * );
void cancelQuery();
void printFeature() const;
void slotProcessHelp();
void submitQuery( const Query & );
void submitLastQuery();
void sendMail();
- void selectNextFeature();
- void selectPreviousFeature();
signals:
void statusMessage( const QString & );
@@ -166,20 +157,15 @@
void showProducts();
void slotPreconditionChanged( StartupSequence::Precondition p, bool on );
void slotFeatureDataChanged();
- void clearFeatureViews();
void slotQueryDone();
void slotFeatureReloaded( Feature * );
void keeperChanged( const QString & );
void clientLocked( bool );
-
- // This is a hack to work around some signal/slot interaction weirdness
- // TODO: Do this properly eventually
- void reselectFeature();
-
void editRelationTree();
void newRelationTree();
void showTree( const QString & );
void showNewFeatureView(Feature *);
+ void aboutToDestroyFeatureView();
private:
KAction *mNewAction;
@@ -211,7 +197,7 @@
QSplitter *mNavigatorSplitter;
QTabWidget *mNavigatorTab;
- FeatureTableView *mFeatureListView;
+ FeatureMapListView *mFeatureMapListView;
FeatureView *mFeatureView;
RelationTreeView *mRelationTreeView;
StatisticsView *mStatisticsView;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/libfate/feature.cpp new/fate-20170731-4baa429b/src/libfate/feature.cpp
--- old/fate-20170627-b434f6b5/src/libfate/feature.cpp 2017-06-27 16:44:59.466786801 +0200
+++ new/fate-20170731-4baa429b/src/libfate/feature.cpp 2017-07-31 10:53:53.785448648 +0200
@@ -869,7 +869,7 @@
Feature& Feature::operator=( const Feature& f )
{
- mDomElement = f.mDomElement;
+ mDomElement.clear();
mId = f.mId;
mKeeperXmlns = f.mKeeperXmlns;
mTitle = f.mTitle;
@@ -900,7 +900,7 @@
mReleaseNotesSolution = f.mReleaseNotesSolution;
mDoc = f.mDoc;
mModified = f.mModified;
- mFeatureMap = mFeatureMap;
+ mFeatureMap = f.mFeatureMap;
if (mECO)
delete mECO;
@@ -909,6 +909,6 @@
else
mECO = 0;
- emit featureChanged();
+ // emit featureChanged(); this is an internal operation for friend classes only
return *this;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/libfate/feature.h new/fate-20170731-4baa429b/src/libfate/feature.h
--- old/fate-20170627-b434f6b5/src/libfate/feature.h 2017-06-27 16:44:59.466786801 +0200
+++ new/fate-20170731-4baa429b/src/libfate/feature.h 2017-07-31 10:53:53.785448648 +0200
@@ -39,6 +39,7 @@
class Feature : public QObject, public XCLObject
{
Q_OBJECT
+ protected:
// QObject does not have a default operator=
Feature& operator=( const Feature& f );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/libfate/featuremap.cpp new/fate-20170731-4baa429b/src/libfate/featuremap.cpp
--- old/fate-20170627-b434f6b5/src/libfate/featuremap.cpp 2017-06-27 16:44:59.466786801 +0200
+++ new/fate-20170731-4baa429b/src/libfate/featuremap.cpp 2017-07-31 10:53:53.785448648 +0200
@@ -158,6 +158,11 @@
mSaveEngine->setView( view );
}
+QWidget *FeatureMap::view() const
+{
+ return mView;
+}
+
const QStringList FeatureMap::productList()
{
QSet<QString> prodSet; // Use QSet for faster insertion of unique strings
@@ -248,6 +253,13 @@
emit featureChanged( f );
}
+void FeatureMap::addNewFeature(Feature *f)
+{
+ f->mId.clear();
+ f->mModified = true;
+ addFeature(f);
+}
+
void FeatureMap::addFeature(Feature *f)
{
if (f == 0)
@@ -287,7 +299,12 @@
return;
if( mCurrentFeature == f ) {
- setCurrentFeature( 0 );
+ // move to "next" feature in the list in the order of filling
+ // the FeatureMap, else take the previous or none
+ int ix = mFeatures.indexOf(f)+1;
+ if (ix >= mFeatures.size())
+ ix = mFeatures.size()-2;
+ setCurrentFeature( mFeatures.value(ix, NULL) );
}
mRevisionMap.remove( f->id() );
@@ -699,17 +716,14 @@
void FeatureMap::finishReload( Feature *f )
{
+ QString msg = i18n("Reloaded feature #%1").arg( f->id() );
mQueryTiming.stop();
-
- QString s;
- if ( Prefs::self()->showQueryTime() ) {
- s += i18n(" (%1 s)").arg( mQueryTiming.getSecondsAsString() );
- }
-
- QString msg = i18n("Reloaded feature #%1%2").arg( f->id() ).arg( s );
+ if ( Prefs::self()->showQueryTime() )
+ msg += i18n(" (%1 s)").arg( mQueryTiming.getSecondsAsString() );
emit statusMessage( msg );
- emit featureReloaded( f );
-
+ f->setFeatureMap( this );
+ f->setModified(false); // emit a Feature::featureChanged() and thus
+ // a FeatureMap::featureChanged(f)
if( mCache ) {
mCache->removeModifiedItem( f->id() );
}
@@ -737,13 +751,6 @@
return mCurrentQuery;
}
-void FeatureMap::recordChange( Feature *f )
-{
- if ( mCache ) {
- mCache->saveModifiedItem( f->id(), f );
- }
-}
-
void FeatureMap::slotSaveDone( const QString &id )
{
Feature *f = feature( id );
@@ -851,7 +858,7 @@
if( f->isNew() ) {
mCache->saveNewItem( f );
} else {
- recordChange( f );
+ mCache->saveModifiedItem( f->id(), f );
}
SaveResult r;
r.feature = f;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/libfate/featuremap.h new/fate-20170731-4baa429b/src/libfate/featuremap.h
--- old/fate-20170627-b434f6b5/src/libfate/featuremap.h 2017-06-27 16:44:59.466786801 +0200
+++ new/fate-20170731-4baa429b/src/libfate/featuremap.h 2017-07-31 10:53:53.785448648 +0200
@@ -51,6 +51,7 @@
Feature *feature( const QString &id ) const;
Feature *currentFeature() const;
+ QWidget *view() const;
const Feature::List &features() const;
Feature::List modifiedFeatures() const;
bool hasNoModifiedFeatures() const;
@@ -68,9 +69,7 @@
bool doSync( const QString &source, const QString &target );
Query currentQuery() const;
- void recordChange( Feature * );
void saveOfflineProfile( const QString & );
-
bool checkModified( bool askForSaving );
bool checkSynch( bool dataAboutToChange );
bool hasCachedModifiedFeatures() const;
@@ -82,9 +81,7 @@
public slots:
void cancelQuery();
-
- void addFeature( Feature * );
- void addFeatures(QList<Feature *>);
+ void addNewFeature( Feature * );
void removeFeature( Feature * );
void signalFeatureModification( Feature *f = 0 );
@@ -111,8 +108,8 @@
// a new feature has been added to the feature map
void featureAdded( Feature * );
+ // a feature in the map has been changed
void featureChanged( Feature * );
- void featureReloaded( Feature * );
// passthrough signal from QueryEngine
void connectionEstablished( bool );
@@ -131,6 +128,7 @@
void currentFeatureChanged( Feature * );
protected:
+ void addFeatures(QList<Feature *>);
void finishSave( Feature * );
void finishReload( Feature * );
@@ -141,6 +139,7 @@
void initCache();
protected slots:
+ void addFeature( Feature * );
void slotQueryRawResult( const QString &xml );
void slotQueryDone( bool );
void slotQueryIdResult( const QString &id, const QString &revision );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/libfate/query.cpp new/fate-20170731-4baa429b/src/libfate/query.cpp
--- old/fate-20170627-b434f6b5/src/libfate/query.cpp 2017-06-27 16:44:59.470786820 +0200
+++ new/fate-20170731-4baa429b/src/libfate/query.cpp 2017-07-31 10:53:53.785448648 +0200
@@ -31,7 +31,7 @@
Query::Query( int id ) {
mTitle = QString("Feature #%1").arg(id);
- mXquery = QString( "/feature[@k:id=%1]" ).arg( id );
+ mXquery = QString( "/feature[@k:id='%1']" ).arg(id);
}
Query::Query( QList<int> &ids ) {
@@ -40,7 +40,7 @@
idstrs << QString::number(id);
mTitle = QString("Features #") + idstrs.join(",#");
- mXquery = QString("/feature[@k:id=%1]").arg(idstrs.join(" or @k:id="));
+ mXquery = QString("/feature[@k:id='%1']").arg(idstrs.join("' or @k:id='"));
}
QString Query::guessTitle() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/libfate/ui/featurelistview.cpp new/fate-20170731-4baa429b/src/libfate/ui/featurelistview.cpp
--- old/fate-20170627-b434f6b5/src/libfate/ui/featurelistview.cpp 2017-06-27 16:44:59.470786820 +0200
+++ new/fate-20170731-4baa429b/src/libfate/ui/featurelistview.cpp 2017-07-31 10:53:53.789448668 +0200
@@ -29,6 +29,8 @@
#include <klocale.h>
#include <kdialog.h>
+#include <kaction.h>
+#include <kactioncollection.h>
#include <kapplication.h>
#include <kiconloader.h>
#include <ksqueezedtextlabel.h>
@@ -196,9 +198,18 @@
if ( item==0 )
return;
+ Feature *feature = item->feature();
action = menu.addAction(i18n("Open feature in an additional window"), this,
SLOT( createFeatureView() ), 0);
- action->setData(qVariantFromValue((void *)(item->feature())));
+ action->setData(qVariantFromValue((void *)(feature)));
+
+ if (!feature->isModified()) {
+ action = menu.addAction(i18n("Remove feature from this list"), this,
+ SLOT( removeFeatureFromList() ), 0);
+ action->setData(qVariantFromValue((void *)(feature)));
+
+ }
+
QPoint correction
( -mTableView->frameWidth(),
mTableView->horizontalHeader()->height()-mTableView->frameWidth());
@@ -206,11 +217,15 @@
}
void FeatureTableView::createFeatureView() {
-
QAction *action = dynamic_cast<QAction *>(sender());
emit requestFeatureView((Feature *)action->data().value<void *>());
}
+void FeatureTableView::removeFeatureFromList() {
+ QAction *action = dynamic_cast<QAction *>(sender());
+ emit requestRemoveFeature((Feature *)action->data().value<void *>());
+}
+
void FeatureTableView::updateProductList( const QStringList &prodList) {
QString selected = mProductCombo->currentText();
@@ -449,15 +464,16 @@
mTableView->setSortingEnabled(true);
mFilterHeader->updateView();
-
- // workaround for bsc#899494, see also comment in MainView::slotQueryDone()
- emit slotProductChosen(mProductCombo->currentText());
}
void FeatureTableView::selectFeature( Feature *feature )
{
- if (feature)
- selectItem(findItemCreate(feature));
+ if (!feature)
+ return;
+ NewFeatureItem *item = findItemCreate(feature);
+ if (!item || item->isSelected())
+ return;
+ selectItem(item);
}
void FeatureTableView::selectItem( NewFeatureItem *item )
@@ -472,11 +488,6 @@
}
}
-void FeatureTableView::clearSelection()
-{
- mTableView->clearSelection();
-}
-
void FeatureTableView::updateQueryTitle( const QString &title )
{
mQueryTitle->setText(title.simplified()); // limit to a single line
@@ -691,11 +702,13 @@
mFreezeWidget->setPixmap( QPixmap::grabWidget( mTableView ) );
mTableView->hide();
mFreezeWidget->show();
+ mTableView->setSortingEnabled(false);
}
void FeatureTableView::unfreeze()
{
mFreezeWidget->hide();
+ mTableView->setSortingEnabled(true);
mTableView->show();
}
@@ -778,4 +791,82 @@
mChecked = on;
}
+FeatureMapListView::FeatureMapListView(QWidget *parent, FeatureMap *featureMap)
+ : FeatureTableView(parent), mFeatureMap(featureMap)
+{
+ /*
+ * interesting signals from FeatureMap
+ *
+ // an asynchronous keeper query has been finished
+ void queryDone( bool );
+
+ void featureAdded( Feature * );
+ void featureChanged( Feature * );
+
+ // selected feature changed
+ void currentFeatureChanged( Feature * );
+ */
+
+ connect( mFeatureMap, SIGNAL( queryDone( bool ) ),
+ SLOT( queryDone() ) );
+ connect( mFeatureMap, SIGNAL( featureAdded( Feature * ) ),
+ SLOT( insertFeature( Feature * ) ) );
+ connect( mFeatureMap, SIGNAL( featureChanged( Feature * ) ),
+ SLOT( updateFeature( Feature * ) ) );
+ // feature removed or map cleared and sometimes on reload and save
+ connect( mFeatureMap, SIGNAL( featuresModified() ),
+ SLOT( reload() ) );
+ connect( mFeatureMap, SIGNAL( dataChanged() ),
+ SLOT( reload() ) );
+ connect( mFeatureMap, SIGNAL( currentFeatureChanged( Feature * ) ),
+ SLOT( selectFeature( Feature * ) ) );
+
+ // handle signals from FeatureTableView
+ connect( this, SIGNAL( featureSelected( Feature * ) ),
+ mFeatureMap, SLOT( setCurrentFeature( Feature * ) ) );
+ connect( this, SIGNAL( requestFeatureView( Feature * ) ),
+ SIGNAL( requestFeatureView( Feature * ) ) );
+ connect( this, SIGNAL( requestRemoveFeature( Feature * ) ),
+ mFeatureMap, SLOT( removeFeature( Feature * ) ) );
+}
+
+FeatureMapListView::~FeatureMapListView()
+{
+ ;
+}
+
+void FeatureMapListView::updateFeature(Feature *f) {
+ updateProductList(mFeatureMap->productList());
+ FeatureTableView::updateFeature(f);
+}
+
+void FeatureMapListView::queryDone() {
+ updateQueryTitle(mFeatureMap->currentQuery().title());
+ updateProductList(mFeatureMap->productList() );
+ selectFeature(mFeatureMap->currentFeature());
+ unfreeze();
+}
+
+void FeatureMapListView::reload()
+{
+ freeze();
+ clear();
+ foreach (Feature *f, mFeatureMap->features())
+ insertFeature(f);
+ queryDone();
+}
+
+void FeatureMapListView::setupActions( KActionCollection *c )
+{
+ KAction* a = new KAction( this );
+ a->setText( i18n("Remove Feature From List" ) );
+ a->setShortcut( Qt::Key_Delete );
+ connect(a, SIGNAL(triggered()), this, SLOT( removeCurrentFeature() ) );
+ c->addAction( "remove_feature_from_list", a );
+}
+
+void FeatureMapListView::removeCurrentFeature()
+{
+ mFeatureMap->removeFeature(mFeatureMap->currentFeature());
+}
#include "featurelistview.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170627-b434f6b5/src/libfate/ui/featurelistview.h new/fate-20170731-4baa429b/src/libfate/ui/featurelistview.h
--- old/fate-20170627-b434f6b5/src/libfate/ui/featurelistview.h 2017-06-27 16:44:59.470786820 +0200
+++ new/fate-20170731-4baa429b/src/libfate/ui/featurelistview.h 2017-07-31 10:53:53.789448668 +0200
@@ -23,6 +23,7 @@
#define FEATURELISTVIEW_H
#include "feature.h"
+#include "featuremap.h"
#include <qwidget.h>
#include <qmap.h>
@@ -32,6 +33,7 @@
class TableFilterHeader;
class TableViewToolTip;
class NewFeatureItem;
+class KActionCollection;
class KSqueezedTextLabel;
// XXX: Move this to featureitem.h later
@@ -172,7 +174,6 @@
void insertFeature(Feature *);
void insertFeatures(const Feature::List &);
void selectFeature( Feature * );
- void clearSelection();
void updateFeature( Feature * );
void freeze();
void unfreeze();
@@ -180,6 +181,7 @@
signals:
void featureSelected( Feature * );
void requestFeatureView(Feature *);
+ void requestRemoveFeature(Feature *);
protected:
void addColumnInternal(NewFeatureItem::Property, const QString &, int resizeMode);
@@ -205,6 +207,7 @@
void slotProductChosen(const QString &);
void showContextMenu(const QPoint & pos);
void createFeatureView();
+ void removeFeatureFromList();
protected:
// FIXME: turn this into a QList<struct { type, label }>
@@ -226,4 +229,25 @@
QComboBox *mProductCombo;
};
+class FeatureMapListView : public FeatureTableView
+{
+ Q_OBJECT
+ public:
+ FeatureMapListView(QWidget *parent, FeatureMap *);
+ ~FeatureMapListView();
+ void setupActions(KActionCollection*);
+
+ signals:
+ void requestFeatureView(Feature *);
+
+ protected slots:
+ void updateFeature(Feature *f);
+ void queryDone();
+ void reload();
+ void removeCurrentFeature();
+
+ protected:
+ FeatureMap *mFeatureMap;
+};
+
#endif
1
0
Hello community,
here is the log from the commit of package java-9-openjdk for openSUSE:Factory checked in at 2017-08-01 09:25:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-9-openjdk (Old)
and /work/SRC/openSUSE:Factory/.java-9-openjdk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-9-openjdk"
Tue Aug 1 09:25:22 2017 rev:7 rq:513141 version:9.0.0.0~179
Changes:
--------
--- /work/SRC/openSUSE:Factory/java-9-openjdk/java-9-openjdk.changes 2017-07-12 19:36:35.535379628 +0200
+++ /work/SRC/openSUSE:Factory/.java-9-openjdk.new/java-9-openjdk.changes 2017-08-01 09:25:28.534883212 +0200
@@ -1,0 +2,10 @@
+Mon Jul 24 07:16:16 UTC 2017 - fstrba(a)suse.com
+
+- Update to upstream tag jdk-9+179
+
+-------------------------------------------------------------------
+Tue Jul 18 07:03:00 UTC 2017 - fstrba(a)suse.com
+
+- Update to upstream tag jdk-9+178
+
+-------------------------------------------------------------------
Old:
----
0d0ac75b0f6c.tar.bz2
2ab74e5dbdc2.tar.bz2
38cf34e23280.tar.bz2
3c6fbdf6e785.tar.bz2
40fb9f229471.tar.bz2
84777531d994.tar.bz2
9f27d513658d.tar.bz2
ea819b6009d3.tar.bz2
New:
----
06df1ce4b9b8.tar.bz2
24390da83c5e.tar.bz2
252475ccfd84.tar.bz2
3adfb547e3e4.tar.bz2
56ac1831ac59.tar.bz2
87243a3131f7.tar.bz2
b653b1b2ea88.tar.bz2
d2661aa42bff.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-9-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.vyloXL/_old 2017-08-01 09:25:30.890551221 +0200
+++ /var/tmp/diff_new_pack.vyloXL/_new 2017-08-01 09:25:30.894550657 +0200
@@ -32,17 +32,17 @@
%global minorver 0
%global securityver 0
%global patchver 0
-%global buildver 176
+%global buildver 179
%global root_project jdk9
%global root_repository jdk9
-%global root_revision 84777531d994
-%global corba_revision 40fb9f229471
-%global hotspot_revision 2ab74e5dbdc2
-%global jaxp_revision 38cf34e23280
-%global jaxws_revision ea819b6009d3
-%global jdk_revision 9f27d513658d
-%global langtools_revision 0d0ac75b0f6c
-%global nashorn_revision 3c6fbdf6e785
+%global root_revision 252475ccfd84
+%global corba_revision 24390da83c5e
+%global hotspot_revision d2661aa42bff
+%global jaxp_revision 87243a3131f7
+%global jaxws_revision 56ac1831ac59
+%global jdk_revision 06df1ce4b9b8
+%global langtools_revision b653b1b2ea88
+%global nashorn_revision 3adfb547e3e4
%global icedtea_sound_version 1.0.1
# priority must be 6 digits in total
%global priority 1905
++++++ 0d0ac75b0f6c.tar.bz2 -> 06df1ce4b9b8.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-9-openjdk/0d0ac75b0f6c.tar.bz2 /work/SRC/openSUSE:Factory/.java-9-openjdk.new/06df1ce4b9b8.tar.bz2 differ: char 11, line 1
++++++ 0d0ac75b0f6c.tar.bz2 -> 24390da83c5e.tar.bz2 ++++++
++++ 1270273 lines of diff (skipped)
++++++ 0d0ac75b0f6c.tar.bz2 -> 252475ccfd84.tar.bz2 ++++++
++++ 1267763 lines of diff (skipped)
++++++ 0d0ac75b0f6c.tar.bz2 -> 3adfb547e3e4.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-9-openjdk/0d0ac75b0f6c.tar.bz2 /work/SRC/openSUSE:Factory/.java-9-openjdk.new/3adfb547e3e4.tar.bz2 differ: char 11, line 1
++++++ 0d0ac75b0f6c.tar.bz2 -> 56ac1831ac59.tar.bz2 ++++++
++++ 1614609 lines of diff (skipped)
++++++ 0d0ac75b0f6c.tar.bz2 -> 87243a3131f7.tar.bz2 ++++++
++++ 1770498 lines of diff (skipped)
++++++ 0d0ac75b0f6c.tar.bz2 -> b653b1b2ea88.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-0d0ac75b0f6c/.hg_archival.txt new/langtools-b653b1b2ea88/.hg_archival.txt
--- old/langtools-0d0ac75b0f6c/.hg_archival.txt 2017-06-27 03:48:31.000000000 +0200
+++ new/langtools-b653b1b2ea88/.hg_archival.txt 2017-07-13 19:32:52.000000000 +0200
@@ -1,4 +1,4 @@
repo: 9a66ca7c79fab293c1bb0534e0d208c7e4f58b01
-node: 0d0ac75b0f6cbe218362e3fac4bb443496e7258f
+node: b653b1b2ea883593596bc18e9af73a9b369eeb0a
branch: default
-tag: jdk-9+176
+tag: jdk-9+179
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-0d0ac75b0f6c/.hgtags new/langtools-b653b1b2ea88/.hgtags
--- old/langtools-0d0ac75b0f6c/.hgtags 2017-06-27 03:48:31.000000000 +0200
+++ new/langtools-b653b1b2ea88/.hgtags 2017-07-13 19:32:52.000000000 +0200
@@ -418,3 +418,6 @@
123eb0956a459bca29d0812c62fca50da563ee40 jdk-9+173
50c077995aa249890ece698a2a2db4c4fba90e10 jdk-9+174
83f6eb009d8f6e94fd348c7d23e4b00754d745db jdk-9+175
+0d0ac75b0f6cbe218362e3fac4bb443496e7258f jdk-9+176
+2f01728210c1405ef459e69d9c7247b5df6abb78 jdk-9+177
+849e366ef175012e6dedc3ca151da416716e0ea9 jdk-9+178
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-0d0ac75b0f6c/src/java.compiler/share/classes/module-info.java new/langtools-b653b1b2ea88/src/java.compiler/share/classes/module-info.java
--- old/langtools-0d0ac75b0f6c/src/java.compiler/share/classes/module-info.java 2017-06-27 03:48:31.000000000 +0200
+++ new/langtools-b653b1b2ea88/src/java.compiler/share/classes/module-info.java 2017-07-13 19:32:52.000000000 +0200
@@ -30,7 +30,7 @@
* and define interfaces for tools such as compilers which can be invoked
* from a program.
* <p>
- * This module is upgradeble.
+ * This module is upgradeable.
*
* @moduleGraph
* @since 9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-0d0ac75b0f6c/src/jdk.compiler/share/classes/module-info.java new/langtools-b653b1b2ea88/src/jdk.compiler/share/classes/module-info.java
--- old/langtools-0d0ac75b0f6c/src/jdk.compiler/share/classes/module-info.java 2017-06-27 03:48:31.000000000 +0200
+++ new/langtools-b653b1b2ea88/src/jdk.compiler/share/classes/module-info.java 2017-07-13 19:32:52.000000000 +0200
@@ -25,7 +25,7 @@
/**
* Defines the implementation of the
- * {@link javax.tools.ToolProvider#getSystemJavaCompiler system Java compiler}
+ * {@linkplain javax.tools.ToolProvider#getSystemJavaCompiler system Java compiler}
* and its command line equivalent, <em>{@index javac javac tool}</em>,
* as well as <em>{@index javah javah tool}</em>.
*
@@ -40,7 +40,7 @@
*
* <p> Instances of the tools can be obtained by calling
* {@link java.util.spi.ToolProvider#findFirst ToolProvider.findFirst}
- * or the {@link java.util.ServiceLoader service loader} with the name
+ * or the {@linkplain java.util.ServiceLoader service loader} with the name
* {@code "javac"}.
*
* <p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-0d0ac75b0f6c/src/jdk.javadoc/share/classes/module-info.java new/langtools-b653b1b2ea88/src/jdk.javadoc/share/classes/module-info.java
--- old/langtools-0d0ac75b0f6c/src/jdk.javadoc/share/classes/module-info.java 2017-06-27 03:48:31.000000000 +0200
+++ new/langtools-b653b1b2ea88/src/jdk.javadoc/share/classes/module-info.java 2017-07-13 19:32:52.000000000 +0200
@@ -25,7 +25,7 @@
/**
* Defines the implementation of the
- * {@link javax.tools.ToolProvider#getSystemDocumentationTool system documentation tool}
+ * {@linkplain javax.tools.ToolProvider#getSystemDocumentationTool system documentation tool}
* and its command line equivalent, <em>{@index javadoc javadoc tool}</em>.
*
* <h2 style="font-family:'DejaVu Sans Mono', monospace; font-style:italic">javadoc</h2>
@@ -39,7 +39,7 @@
*
* <p> Instances of the tools can be obtained by calling
* {@link java.util.spi.ToolProvider#findFirst ToolProvider.findFirst}
- * or the {@link java.util.ServiceLoader service loader} with the name
+ * or the {@linkplain java.util.ServiceLoader service loader} with the name
* {@code "javadoc"}.
*
* <dl style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-0d0ac75b0f6c/src/jdk.jdeps/share/classes/module-info.java new/langtools-b653b1b2ea88/src/jdk.jdeps/share/classes/module-info.java
--- old/langtools-0d0ac75b0f6c/src/jdk.jdeps/share/classes/module-info.java 2017-06-27 03:48:31.000000000 +0200
+++ new/langtools-b653b1b2ea88/src/jdk.jdeps/share/classes/module-info.java 2017-07-13 19:32:52.000000000 +0200
@@ -26,7 +26,7 @@
/**
* Defines tools for analysing dependencies in Java libraries and programs,
* including the <em>{@index jdeps jdeps tool}</em>,
- * <em>{@index javap javap tool}</em> and
+ * <em>{@index javap javap tool}</em>, and
* <em>{@index jdeprscan jdeprscan tool}</em> tools.
*
* <p>
@@ -37,7 +37,7 @@
*
* <p> Instances of the tools can be obtained by calling
* {@link java.util.spi.ToolProvider#findFirst ToolProvider.findFirst}
- * or the {@link java.util.ServiceLoader service loader} with the name
+ * or the {@linkplain java.util.ServiceLoader service loader} with the name
* {@code "javap"} or {@code "jdeps"} as appropriate.
*
* <p>
++++++ 0d0ac75b0f6c.tar.bz2 -> d2661aa42bff.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-9-openjdk/0d0ac75b0f6c.tar.bz2 /work/SRC/openSUSE:Factory/.java-9-openjdk.new/d2661aa42bff.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package conky for openSUSE:Factory checked in at 2017-08-01 09:25:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/conky (Old)
and /work/SRC/openSUSE:Factory/.conky.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "conky"
Tue Aug 1 09:25:21 2017 rev:19 rq:513106 version:1.10.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/conky/conky.changes 2017-06-26 15:53:29.217308125 +0200
+++ /work/SRC/openSUSE:Factory/.conky.new/conky.changes 2017-08-01 09:25:21.983806473 +0200
@@ -1,0 +2,5 @@
+Thu Jul 27 19:49:23 UTC 2017 - joerg.lorenzen(a)ki.tng.de
+
+- BuildRequires libtolua++-5_1-devel on Leap.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ conky.spec ++++++
--- /var/tmp/diff_new_pack.J20vVl/_old 2017-08-01 09:25:22.695706143 +0200
+++ /var/tmp/diff_new_pack.J20vVl/_new 2017-08-01 09:25:22.707704452 +0200
@@ -56,7 +56,7 @@
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(libxml-2.0)
-%if 0%{?suse_version} > 1320 || 0%{?suse_version} == 1315 && 0%{?is_opensuse} != 1
+%if 0%{?suse_version} > 1320 || 0%{?suse_version} == 1315
BuildRequires: libtolua++-5_1-devel
%else
BuildRequires: tolua++
1
0
Hello community,
here is the log from the commit of package gnu_parallel for openSUSE:Factory checked in at 2017-08-01 09:25:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnu_parallel (Old)
and /work/SRC/openSUSE:Factory/.gnu_parallel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnu_parallel"
Tue Aug 1 09:25:18 2017 rev:37 rq:513085 version:20170722
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnu_parallel/gnu_parallel.changes 2017-07-08 12:35:53.953761255 +0200
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new/gnu_parallel.changes 2017-08-01 09:25:20.356035879 +0200
@@ -1,0 +2,6 @@
+Sun Jul 30 12:30:19 UTC 2017 - astieger(a)suse.com
+
+- update to 20170722:
+ * Bug fixes and man page updates
+
+-------------------------------------------------------------------
Old:
----
parallel-20170622.tar.bz2
parallel-20170622.tar.bz2.sig
New:
----
parallel-20170722.tar.bz2
parallel-20170722.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnu_parallel.spec ++++++
--- /var/tmp/diff_new_pack.knqfZG/_old 2017-08-01 09:25:21.123927657 +0200
+++ /var/tmp/diff_new_pack.knqfZG/_new 2017-08-01 09:25:21.127927094 +0200
@@ -17,7 +17,7 @@
Name: gnu_parallel
-Version: 20170622
+Version: 20170722
Release: 0
Summary: Shell tool for executing jobs in parallel
License: GPL-3.0+
++++++ parallel-20170622.tar.bz2 -> parallel-20170722.tar.bz2 ++++++
++++ 5112 lines of diff (skipped)
++++++ parallel-20170622.tar.bz2.sig -> parallel-20170722.tar.bz2.sig ++++++
--- /work/SRC/openSUSE:Factory/gnu_parallel/parallel-20170622.tar.bz2.sig 2017-07-08 12:35:54.385700330 +0200
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new/parallel-20170722.tar.bz2.sig 2017-08-01 09:25:20.440024041 +0200
@@ -2,40 +2,41 @@
# To check the signature run:
# echo | gpg
-# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20170622.tar.bz2.sig
+# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20170722.tar.bz2.sig
echo | gpg 2>/dev/null
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $0
exit $?
-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
-iQTwBAABCgAGBQJZS7KkAAoJENGrRRaIiIiIDsYmnii/P0mD8QDvz/ZnoC8xS7m0
-SMr5fExNoV3K1ZvDCEsBa92gjDICVZlYDG1GzwJVbDM69GX+4DHQf9lnug98m7HM
-YlE9hFCX6hO2RZ94sePYafg5GUKQcjOEwVxjcfb+fYiW4SUEPoh3MquEG7f6NKVi
-rStIzlLd2GmSGTgNxV8tFVgu5ZGpGf7Qt82Y9ciJtXY96pm9eFhhsg/OZexf9CSE
-S1DWmrirZGndtmWurRH+VVEaRBfvo5kt4MCgXqcDG5KGdrHeqOGyA0bP7uDlujQC
-/4skOzp3ZyeLaVg9RSd0GZDL70emQFihDcMQTnGxvzBCr30y/GtWD0W7VRRCYlUU
-NF+5nhJBoxBwNYcKraNG342j/ycOuh9NDaY2PvGJ0SJ+jCz4B0djwKUku+DpGaPr
-69EENXTYBTc+VCjKQAvo9nhm4ZIZE93I1sjNGLIInW/FYnOlHSJy9VNWOtS+l/et
-sWF7KfYzLaBTEBzIVfJmUPuvoXOF03qK0qSP8GKJTztWqF1cijV4swHwkCvJE6an
-X/Kar9qwmBi2Vc1vwE0ghyS+WEnPeBuz7Kr2a/CCJhKMy94HmhT3IC29ds9jdyVx
-3conNQaLhxGHmCXGl8pEas+2wy12VkWVBiEvFOsfOAxJwS8vTnamgYsPMjoVAM3J
-YEvXJl4qCX0GCsz1jsBxNtXpmwI0BqDSEGFdOzdJQzTKpXrFv89saiNwoGBFGVyK
-Cxn2pvQRU+AacQ996ziDHfaNzpcOi6ELTBYEM9A/RpFonDbpzI7h6T2NlmOW/rkt
-pG/IDBqDpd8zMh2bJuPQRqisdoZbqCPSlzFK6/jOHZHXdxLq6ajN4yTUywfmTXLS
-diniW51HGPEF4hri/fbEvsUqBdUehjYtSVBp9n/X2xe7UE+CXLZCMhQUZtnry1CX
-XmRbNFNsFbGWVrOmTTWBrLIXFiA4nITW/7uomt8HvdO7BeKShQu/z4kSnbwOQCDo
-GGFcavb4iNR4wzoGgmipW10C7K20UVZI6mkpNOJSH5xt8VrE65fXvA9C7xT+Y0+4
-KlH0MWlTq6pgX9U5A59oPWnrdfJKwpGqyF7KXBq212GX74Dwu9wvBKlfRgOZ8YK4
-D+j5TWy48M9guDqxJsvN9y2vwqDb8YXEga+lITiyUx8YsM+8rfe5fL4XwUt4wH+s
-MH051D6ETj+lEe5PwD+ZDc/lj6yx6FX2A3YDJt4jXmvsrSEGYoYb41rwQqFesnnW
-dPkYoLF7D/HH3jW2DEEsGA6k7DaPZUup62EeirHPys6plpyfTo8AXKOrx3qvKpeF
-z40BVgz+M4XspZmTyE6VpzF4K5BS5iRgbbx/s2lWemg6xokj6TUUDvSc7xUpUW/D
-RlqiuIHU36GCkSriwtfzjRy0GLR1nr+Hq9x/tH8wh74Rmx7+fuglTh2v/Pjrf/0/
-48RXyJEnknpEyrnUJBEJ5EIYSnRHzwXut7lYjBZASdo7LNFBB8FVQOtBWMYQaYSt
-3H+/O/oCBWo0KYmL9pBodkI97/a8+LEbIVFPLVILO55nnQmB4NcjZJMSlfFsAfWn
-AKc88gmXqv7A4CsdP2eLOy15K2UYmbnqSKVmuO8Z1DTZ3fRkI5vERCQqhT0v0NYK
-gk2FJIGR09GtbeagJY+9ha2s/A==
-=0ybn
+iQTwBAABCgAGBQJZcmQxAAoJENGrRRaIiIiIZTcmoNPNV1so06UU5go8zF7gcJ8T
+t6+NYbMz5GvogF3SyZugk82xjECot8q9L+VvsFbnl1r5VzYJAsm8J4N0TI16xxgr
+eeWNNZUlzw0wOg62DJpSKRPi1CnE78TYz2Spwe4KaRMjO/lC+2oIm4pxa0B8cCkt
+WQRZvLhgERlS9ybATv/3IFDffRUOluea+oCJV8Hn03UdGqnHQZW6fswcfQMrpMps
+Ww3dpwKdn5QoGLfNH9El6pDcA3G1e8MBgzPop/8B9Fo2koiibWQVdpAgyH58zW5y
+hruHopeAzBdzNGRkio8iY20TE2H2SM/pTubXer+7hL0jIyW+yexi5VOmqI6nBwzq
+tUkYEZdxJHzBzqL3EfK5G5BhWPrdr3uukSwjb+NniVALJh+jcBv+WSLktEFyTMUN
+p+2kIWFb3ijSuw3bED0B0948iuNfIelQ5gfx4tW6e+DHoOGE6/aWL8rdOF+YUl4S
+zt+Hes0m9Ujht2nGgN+eLH3apSdCGGCEXVX9ClPr4PKh1cX+LTb3RHO7VB83z2Ro
+KAPEHccyX2GhMhkOiyOFs1hZ6cy3EmMfpegoWGxrXF3krqsJrbqrFUJtn9c3sg2L
+sVKGBOswVmS10D7JyxLauLI5dhHy9e0y4gQjw1EYtB8EYg8vnWkb6igkdNYRrre0
+xjxNHpRTA0USFZKlPa0qTe8i6UCVjzvwCTRZHQNAoMYRE/gcG9JrQKvtMoXEmj13
+aKrHv6ru9Sw90wYrj/XCx9rAg37qTGdv2d5KDbe3H3a4mZX2O3QxNTxNgL9YnQ37
+T+nM90R6Wc7xFsBQnd1OsIONXXbuZL6FzxcxMZ6cGm17fVHacAh1P6mPC3DcytgH
+T+NCSi7fd8z8mEzsLYrBldWAZlLri9x/qtHosJxYlFyQmqW0PIb2CuPWgXPhu18/
+Adlai0Ghv0ccgXYnogy5GOrnIF6qIapZ1HhFceWhCi+n1nMjfkY2VvpfgCUM1D4S
+Ny0RlUL6UvbAz7PPavGrKGghPqK0eiYxSH6Zf2fDG8aFWwtmto9uoDN6zWDwtdn3
+3BstP96Pgkrqr10omA82BFgVKIcrVN4xtV4nYFc0psTBWT9c74g5CiDS/9fBG+/o
+GggiU5FJkAwWFzS/3VlFPU+cBvPxdQiLD9cAEHuVc7fjvmmprN53Ki5fEqJ9swlk
+7d8lbPbiuk4GixVcx6u80FU7+rw37ThVANfo7OON/i/5v7VGlfilu7U17yF/HXax
+gT//K8DE0hMUkFaYYQKruE/hb/BYBb6vdlQgqn03iL8uaC4jM+cv2Vz+nha+SLrs
+ECk0Iaj2+vrLmd2/XND/D6eRizuhs2pS552GUfctXordNqEtGIydihUTS0YA70Bi
+MKAys45iR9q9p+7CbFfOIrFacTt2x2gUgkJhhknkDyWXOfkD0PMwglPPjovpK1MO
+NxcBXKidMLH7u6oiV+Zo+X9q7XVi3OPvXQ+36dTj+C4JBVDE1Ch0dRqNuTiNVGpV
+JLX9S8GaMIzZjiOcrldTS+odMPLqJInxKBHWWM8fmYIqdP4RW4R5yTPxs7hLPEvb
+UM85OMwje4Dj8tCdgsbGvxEtqoSBHbpUtvkhMYsewsoKXKmii2T5Uk/lZsbqTQIB
+u2q3guJWB9RSwXgSizwPepTJ8Q==
+=3+6E
-----END PGP SIGNATURE-----
1
0
Hello community,
here is the log from the commit of package kiwi-config-openSUSE for openSUSE:Factory checked in at 2017-08-01 09:25:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kiwi-config-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.kiwi-config-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiwi-config-openSUSE"
Tue Aug 1 09:25:14 2017 rev:122 rq:513078 version:13.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/kiwi-config-openSUSE/kiwi-config-openSUSE.changes 2017-07-17 09:10:49.902696472 +0200
+++ /work/SRC/openSUSE:Factory/.kiwi-config-openSUSE.new/kiwi-config-openSUSE.changes 2017-08-01 09:25:17.832391541 +0200
@@ -1,0 +2,6 @@
+Sat Jul 29 08:15:13 UTC 2017 - fabian(a)ritter-vogt.de
+
+- Configure XDG_CURRENT_DESKTOP and KDE_SESSION_VERSION to avoid
+ loading the KDE platform plugin in YaST (boo#1045798)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ config.xml.in ++++++
--- /var/tmp/diff_new_pack.ilDOQJ/_old 2017-08-01 09:25:18.764260211 +0200
+++ /var/tmp/diff_new_pack.ilDOQJ/_new 2017-08-01 09:25:18.784257393 +0200
@@ -37,6 +37,7 @@
<package name="patch"/>
<package name="zypper"/>
<package name="package-lists-openSUSE-@PLIST@"/>
+ <package name="memtest86+"/>
</packages>
<packages type="bootstrap">
<package name="filesystem"/>
@@ -44,7 +45,6 @@
<package name="openSUSE-release"/>
<package name="openSUSE-release-@FLAVOR@"/>
<package name="branding-openSUSE"/>
- <package name="memtest86+"/>
</packages>
<repository type="yast2">
<source path="http://download.opensuse.org/distribution/13.1/repo/oss/"/>
++++++ start-install.sh ++++++
--- /var/tmp/diff_new_pack.ilDOQJ/_old 2017-08-01 09:25:18.948234283 +0200
+++ /var/tmp/diff_new_pack.ilDOQJ/_new 2017-08-01 09:25:18.948234283 +0200
@@ -3,8 +3,11 @@
#snippet from man 1 flock
[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
-#Look like the DVD installer everywhere
-unset XDG_CURRENT_DESKTOP
+#Look like the DVD installer everywhere (if this is unset, it looks for X atoms)
+export XDG_CURRENT_DESKTOP=DOESNOTMATTER
+
+#Don't load the KDE platform theme, to avoid messing with accelerator mnemonics (boo#1045798)
+export KDE_SESSION_VERSION=0
cat >/etc/install.inf <<EOF
ZyppRepoURL: http://download.opensuse.org/tumbleweed/repo/oss
1
0
Hello community,
here is the log from the commit of package afl for openSUSE:Factory checked in at 2017-08-01 09:25:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/afl (Old)
and /work/SRC/openSUSE:Factory/.afl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "afl"
Tue Aug 1 09:25:13 2017 rev:37 rq:513056 version:2.49b
Changes:
--------
--- /work/SRC/openSUSE:Factory/afl/afl.changes 2017-07-26 13:06:34.211302863 +0200
+++ /work/SRC/openSUSE:Factory/.afl.new/afl.changes 2017-08-01 09:25:15.160768059 +0200
@@ -1,0 +2,5 @@
+Sat Jul 29 23:04:43 UTC 2017 - meissner(a)suse.com
+
+- include docs/README
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ afl.spec ++++++
--- /var/tmp/diff_new_pack.Tkbelk/_old 2017-08-01 09:25:15.784680130 +0200
+++ /var/tmp/diff_new_pack.Tkbelk/_new 2017-08-01 09:25:15.788679566 +0200
@@ -56,7 +56,7 @@
make %{?_smp_mflags} PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_docdir} DESTDIR=%{buildroot} install
%files
-%doc docs/ChangeLog docs/COPYING README docs/*.txt
+%doc docs/ChangeLog docs/COPYING docs/README docs/*.txt
%{_bindir}/%{name}-*
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/%{name}-as
1
0
Hello community,
here is the log from the commit of package rakudo for openSUSE:Factory checked in at 2017-08-01 09:25:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rakudo (Old)
and /work/SRC/openSUSE:Factory/.rakudo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rakudo"
Tue Aug 1 09:25:11 2017 rev:49 rq:513011 version:2017.07
Changes:
--------
--- /work/SRC/openSUSE:Factory/rakudo/rakudo.changes 2017-06-18 13:50:47.047494731 +0200
+++ /work/SRC/openSUSE:Factory/.rakudo.new/rakudo.changes 2017-08-01 09:25:12.645122594 +0200
@@ -1,0 +2,7 @@
+Sat Jul 29 10:30:18 CEST 2017 - nine(a)detonation.org
+
+- update to version 2017.07
+- Remove no longer needed rakudo-remove-compile-time-env.diff as it has
+ been comitted upstream.
+
+-------------------------------------------------------------------
Old:
----
rakudo-2017.05.tar.gz
rakudo-remove-compile-time-env.diff
New:
----
rakudo-2017.07.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rakudo.spec ++++++
--- /var/tmp/diff_new_pack.vUuhrN/_old 2017-08-01 09:25:13.313028465 +0200
+++ /var/tmp/diff_new_pack.vUuhrN/_new 2017-08-01 09:25:13.317027901 +0200
@@ -17,19 +17,18 @@
Name: rakudo
-Version: 2017.05
+Version: 2017.07
Release: 2.1
Summary: Perl 6 implemenation that runs on MoarVM
License: Artistic-2.0
Group: Development/Languages/Other
Url: http://rakudo.org/
Source0: rakudo-%{version}.tar.gz
-Patch1: rakudo-remove-compile-time-env.diff
BuildRequires: moarvm-devel
BuildRequires: nqp
Provides: perl6 = %{version}-%{release}
-Requires: moarvm >= 2017.05
-Requires: nqp >= 2017.05
+Requires: moarvm >= 2017.07
+Requires: nqp >= 2017.07
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -38,7 +37,6 @@
%prep
%setup -q
-%patch1 -p1
%build
perl Configure.pl --prefix=%{_usr}
++++++ rakudo-2017.05.tar.gz -> rakudo-2017.07.tar.gz ++++++
++++ 16532 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package calc for openSUSE:Factory checked in at 2017-08-01 09:25:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/calc (Old)
and /work/SRC/openSUSE:Factory/.calc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "calc"
Tue Aug 1 09:25:04 2017 rev:12 rq:512977 version:2.12.6.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/calc/calc.changes 2016-05-19 12:15:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.calc.new/calc.changes 2017-08-01 09:25:05.742095451 +0200
@@ -1,0 +2,10 @@
+Sun Jul 23 21:32:46 UTC 2017 - dnh(a)opensuse.org
+
+- update to 2.12.6.1
+
+-------------------------------------------------------------------
+Tue Jun 6 12:00:05 UTC 2016 - dnh(a)opensuse.org
+
+- update to 2.12.5.6
+
+-------------------------------------------------------------------
Old:
----
calc-2.12.5.4.tar.bz2
New:
----
calc-2.12.6.1.tar.bz2
what-is-calc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ calc.spec ++++++
--- /var/tmp/diff_new_pack.LSB1jn/_old 2017-08-01 09:25:06.949925228 +0200
+++ /var/tmp/diff_new_pack.LSB1jn/_new 2017-08-01 09:25:06.961923538 +0200
@@ -1,7 +1,7 @@
#
# spec file for package calc
#
-# 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
@@ -19,7 +19,7 @@
%define soname 2
%define libname libcalc%{soname}
Name: calc
-Version: 2.12.5.4
+Version: 2.12.6.1
Release: 0
Summary: C-style arbitrary precision calculator
License: LGPL-2.1
@@ -29,6 +29,7 @@
Source1: http://www.isthe.com/chongo/src/calc/checksum.sha-256
Source2: README.openSUSE
Source3: calc-rpmlintrc
+Source10: http://www.isthe.com/chongo/src/calc/what-is-calc
# patch to replace a macro possibly dereferencing an undefined value
# by an inline-function
Patch0: %{name}-qmath-sequence-point.patch
@@ -78,6 +79,16 @@
%patch0 -p1
cp "%{SOURCE2}" .
+cp "%{SOURCE3}" what-is-calc.txt
+
+sed -i '/${CC} ${LIBCUSTCALC_SHLIB} ${CUSTCALC_OBJ}/a\
+\tln -s $@ libcustcalc.so
+' custom/Makefile
+
+sed -i.orig -e 's@^\./myfile@\\a./myfile@g' calc.man
+
+%define _NC_FLAGS %(ncursesw6-config --cflags)
+%define _NC_LIBS %(ncursesw6-config --libs)
%define makevars \\\
BINDIR=%{_bindir} \\\
@@ -87,8 +98,10 @@
CALC_INCDIR=%{_includedir}/calc \\\
MANDIR=%{_mandir}/man1 \\\
HAVE_FPOS="-DHAVE_NO_FPOS" \\\
- LD_SHARE="" \\\
- EXTRA_CFLAGS="%{optflags} -g -fno-strict-aliasing"
+ USE_READLINE="-DUSE_READLINE" \\\
+ READLINE_LIB="-lreadline -lhistory %{_NC_LIBS} -L./custom -lcustcalc" \\\
+ LD_SHARE="%{_NC_LIBS}" \\\
+ EXTRA_CFLAGS="%{optflags} -g -fno-strict-aliasing %{_NC_FLAGS}"
%build
make -e %{makevars}
@@ -98,10 +111,17 @@
%install
make T=%{buildroot} %{makevars} install
+ln -s libcalc.so.%{version} %{buildroot}%{_libdir}/libcalc.so.2
+ln -s libcustcalc.so.%{version} %{buildroot}%{_libdir}/libcustcalc.so.2
+rmdir %{buildroot}%{_includedir}/calc/custom
# dummy-install some docs etc. to create the symlinks
install -d -m 755 %{buildroot}%{_docdir}/%{name}
-install -m 644 BUGS COPYING COPYING-LGPL CHANGES %{buildroot}%{_docdir}/%{name}/
+install -m 644 \
+ BUGS CHANGES COPYING COPYING-LGPL HOWTO.INSTALL LIBRARY \
+ README.FIRST README.md README.openSUSE \
+ custom/CUSTOM_CAL custom/HOW_TO_ADD \
+ %{buildroot}%{_docdir}/%{name}/
# create symlinks to the help-dir for the help command, e.g. "help bugs"
ln -sf %{_docdir}/%{name}/COPYING \
%{buildroot}%{_datadir}/%{name}/help/COPYING
@@ -115,6 +135,10 @@
%{buildroot}%{_datadir}/%{name}/help/changes
ln -sf %{_docdir}/%{name}/CHANGES \
%{buildroot}%{_datadir}/%{name}/help/change
+ln -sf %{_docdir}/%{name}/CUSTOM_CAL \
+ %{buildroot}%{_datadir}/%{name}/help/custom_cal
+ln -sf %{_docdir}/%{name}/HOW_TO_ADD \
+ %{buildroot}%{_datadir}/%{name}/help/new_custom
%fdupes %{buildroot}
@@ -124,10 +148,13 @@
%files
%defattr(-, root, root)
-%doc BUGS CHANGES COPYING COPYING-LGPL README README.openSUSE
+%doc BUGS CHANGES COPYING COPYING-LGPL HOWTO.INSTALL LIBRARY
+%doc README.FIRST README.md README.openSUSE
+%doc custom/CUSTOM_CAL custom/HOW_TO_ADD
%{_bindir}/%{name}
%{_datadir}/%{name}
%doc %{_mandir}/man1/%{name}.1.gz
+%doc what-is-calc.txt
%files -n %{libname}
%defattr(-,root,root)
@@ -137,7 +164,7 @@
%files devel
%defattr(-, root, root)
%doc %attr(644, root, root) BUGS COPYING COPYING-LGPL LIBRARY
-%doc sample_many.c sample_rand.c sample.README README README.openSUSE
+%doc sample_many.c sample_rand.c sample.README README.md README.openSUSE
%{_includedir}/%{name}
%{_libdir}/libcalc.so
%{_libdir}/libcustcalc.so
++++++ calc-2.12.5.4.tar.bz2 -> calc-2.12.6.1.tar.bz2 ++++++
++++ 13054 lines of diff (skipped)
++++++ checksum.sha-256 ++++++
--- /var/tmp/diff_new_pack.LSB1jn/_old 2017-08-01 09:25:07.985779244 +0200
+++ /var/tmp/diff_new_pack.LSB1jn/_new 2017-08-01 09:25:07.989778680 +0200
@@ -4,12 +4,6 @@
#
# sha256sum filename
#
-6881d5fc0adf544557efd4c0b2eb57044e5bf1a3878f42666cb82a496b71fdc2 calc-2.12.4.13-11.i686.rpm
-aae6c5f2f3b121e093e795967e000900a4f70f49aa2af0040d047469d9bf1ca5 calc-2.12.4.13-11.src.rpm
-1e6fd3256bd7bf738fcfe6e2d6a9d8a6bb0f37393aba6020b01d96274419a92c calc-2.12.4.13.tar.bz2
-dbf14329d5e80d02a6bcee7c5709ac1afaa6539d51988f98772b706bc1663c56 calc-2.12.4.14-12.src.rpm
-fe97c8ccd5a5c9761ff4d9706721ffd296172cb49da3cbe741c2ec834c0e3665 calc-2.12.4.14-12.x86_64.rpm
-12b627ab22dddc56b215c0b10c1fb04f864931e0d337d7facc100ebe9c94ec5c calc-2.12.4.14.tar.bz2
fa4802e364a287c1f074bbbe108effc9cf0a859e49e976d2e03c3ddb08b7bd50 calc-2.12.5.0-12.src.rpm
b7bb96b26d42ae40c8cb12f634db0a838f46e54fe9557d26f3097bf1adfcdab6 calc-2.12.5.0-12.x86_64.rpm
a0e7b47af38330f188970998c8e5039134dadf6f2e3f2c00d7efdae272a4338d calc-2.12.5.0.tar.bz2
@@ -22,15 +16,26 @@
198070dc5a427a1eaa5835f3f0848d4df1376e6d96135c17b6e43498dd3aa0d3 calc-2.12.5.4-12.src.rpm
ac9e9cbd5a0ab3432f61e49d7f7924a6dcdd905cf04782971c79bfa11b6217d7 calc-2.12.5.4-12.x86_64.rpm
a776121efe49f3230a293e28682e52ff6d5f2f1896d3a9b474a51de8c890919e calc-2.12.5.4.tar.bz2
-000353ca45343bfb9c6024017745de5862fc4845427eb7ee2ebe3a59e0826713 calc-debuginfo-2.12.4.13-11.i686.rpm
-62d0aa0052e3688076fd6d5d138f133e581b7df5bb0fe9e53fc7db2678a606b5 calc-debuginfo-2.12.4.14-12.x86_64.rpm
+753d90537c0cd0e99c68712b33bfd98ed7504e61b4259d81ba94ff783f86e84c calc-2.12.5.6-12.src.rpm
+d67c376f4b32d33580a29eb8b3c52b5987a15269db010f09f5bed31d0fab230a calc-2.12.5.6-12.x86_64.rpm
+76090203a96d35dd10103112a7ad612f4d9b0526b758f2f49ac5bef02ba7cb39 calc-2.12.5.6.tar.bz2
+9a852f17cce6b48367c0bf11c4d491374e18117b146e7384a9f16c6f85184a7d calc-2.12.6.0-12.src.rpm
+bd7f6c3e102db3431a4e229c75509d6219ba48316aef115d52df9be7b847fc7b calc-2.12.6.0-12.x86_64.rpm
+18dee9d979d8d397ee4a6f57c494a60790034c0ff109b3c552faff97f1ad7cf2 calc-2.12.6.0.tar.bz2
+2982a89257af8066e13fadacd9d6bb880efbb3d1f3506bc0ce5d3c2f5739447e calc-2.12.6.1-12.src.rpm
+5efb924c6f34737af6c78d752ad37782943deca6e5ba1eb55598b7528a820642 calc-2.12.6.1-12.x86_64.rpm
+6d3b9237b671e0970c432f5886d467c142b425c713ec3beffb6fd05b6195c4ef calc-2.12.6.1.tar.bz2
a6461f0cea3cb107f97ea6cb585f47baca98610f3616ed7a5c3649750d14d08b calc-debuginfo-2.12.5.0-12.x86_64.rpm
504d16412ed7c9b2f1122220b4187923bbb82615697c2af355ee3abad54b42ad calc-debuginfo-2.12.5.2-12.x86_64.rpm
ac0aa872fc3f774d9c7e553f370d628ea98119041500326f3f67595ffd332874 calc-debuginfo-2.12.5.3-12.x86_64.rpm
4f6591a328b50bb10196e5dd6c5c0a0a929f5961a85f0aad79d1939a3723b7d8 calc-debuginfo-2.12.5.4-12.x86_64.rpm
-9a0a8c1b483c8cba1eec401f91578da5f12fa08e0aa1c6e48e9e3d7b83c96a55 calc-devel-2.12.4.13-11.i686.rpm
-8a3af8c4f77f5717b4eb77304870111d3ce6a4be67c6fd41b3ad87edf3694352 calc-devel-2.12.4.14-12.x86_64.rpm
+befb1ef348704f0c4c0a5ebf55b57acf6fa75119e3c8c267379814980ae70e83 calc-debuginfo-2.12.5.6-12.x86_64.rpm
+83c7f2728496692f19bab7c957ba9867ed436f5048d595883831b7fdf9db0d31 calc-debuginfo-2.12.6.0-12.x86_64.rpm
+e9aac5102f90ec81f8a3ec0d476d6cd89dc44f43823cff4f9415b10e076e8791 calc-debuginfo-2.12.6.1-12.x86_64.rpm
e753c5737d2ad7123e15f0817605fe8760c2287bbf261347d0097ca43f24ed99 calc-devel-2.12.5.0-12.x86_64.rpm
ca58c8c45878d0b5534ad6bb1f5ce99974b14d349061de512f03f7a818e5c82f calc-devel-2.12.5.2-12.x86_64.rpm
37aa0dea8ad0bb40fd90b5aea1559d83f1992f68f2d14c3379a46e3c85b3cc14 calc-devel-2.12.5.3-12.x86_64.rpm
8bc6c61645d67f4221ae7a9db2db5860bb2dc0f0a86a41dcc377b11df2816996 calc-devel-2.12.5.4-12.x86_64.rpm
+91949fd27a789eab99817d93d1e4f12424948bb4910f0a23755cab5fed2fb658 calc-devel-2.12.5.6-12.x86_64.rpm
+e79286c4b40913bdac87759dc5bf50b616af68c6fbda3c53c7703d66e311b9fa calc-devel-2.12.6.0-12.x86_64.rpm
+97f16cf48b519285f6c8d10f64e56ac5aa4a50f7bfed82b57d2f711482c30930 calc-devel-2.12.6.1-12.x86_64.rpm
++++++ what-is-calc ++++++
What is calc?
Calc is an interactive calculator which provides for easy large
numeric calculations, but which also can be easily programmed
for difficult or long calculations. It can accept a command line
argument, in which case it executes that single command and exits.
Otherwise, it enters interactive mode. In this mode, it accepts
commands one at a time, processes them, and displays the answers.
In the simplest case, commands are simply expressions which are
evaluated. For example, the following line can be input:
3 * (4 + 1)
and the calculator will print:
15
Calc as the usual collection of arithmetic operators +, -, /, *
as well as ^ (exponentiation), % (modulus) and // (integer divide).
For example:
3 * 19^43 - 1
will produce:
29075426613099201338473141505176993450849249622191102976
Notice that calc values can be very large. For example:
2^23209-1
will print:
402874115778988778181873329071 ... many digits ... 3779264511
The special '.' symbol (called dot), represents the result of the
last command expression, if any. This is of great use when a series
of partial results are calculated, or when the output mode is changed
and the last result needs to be redisplayed. For example, the above
result can be modified by typing:
. % (2^127-1)
and the calculator will print:
47385033654019111249345128555354223304
For more complex calculations, variables can be used to save the
intermediate results. For example, the result of adding 7 to the
previous result can be saved by typing:
curds = 15
whey = 7 + 2*curds
Functions can be used in expressions. There are a great number of
pre-defined functions. For example, the following will calculate
the factorial of the value of 'whey':
fact(whey)
and the calculator prints:
13763753091226345046315979581580902400000000
The calculator also knows about complex numbers, so that typing:
(2+3i) * (4-3i)
cos(.)
will print:
17+6i
-55.50474777265624667147+193.9265235748927986537i
The calculator can calculate transcendental functions, and accept and
display numbers in real or exponential format. For example, typing:
config("display", 70)
epsilon(1e-70)
sin(1)
prints:
0.8414709848078965066525023216302989996225630607983710656727517099919104
Calc can output values in terms of fractions, octal or hexadecimal.
For example:
config("mode", "fraction"),
(17/19)^23
base(16),
(19/17)^29
will print:
19967568900859523802559065713/257829627945307727248226067259
0x9201e65bdbb801eaf403f657efcf863/0x5cd2e2a01291ffd73bee6aa7dcf7d1
All numbers are represented as fractions with arbitrarily large
numerators and denominators which are always reduced to lowest terms.
Real or exponential format numbers can be input and are converted
to the equivalent fraction. Hex, binary, or octal numbers can be
input by using numbers with leading '0x', '0b' or '0' characters.
Complex numbers can be input using a trailing 'i', as in '2+3i'.
Strings and characters are input by using single or double quotes.
Commands are statements in a C-like language, where each input
line is treated as the body of a procedure. Thus the command
line can contain variable declarations, expressions, labels,
conditional tests, and loops. Assignments to any variable name
will automatically define that name as a global variable. The
other important thing to know is that all non-assignment expressions
which are evaluated are automatically printed. Thus, you can evaluate
an expression's value by simply typing it in.
Many useful built-in mathematical functions are available. Use
the:
help builtin
command to list them.
You can also define your own functions by using the 'define' keyword,
followed by a function declaration very similar to C.
define f2(n)
{
local ans;
ans = 1;
while (n > 1)
ans *= (n -= 2);
return ans;
}
Thus the input:
f2(79)
will produce;
1009847364737869270905302433221592504062302663202724609375
Functions which only need to return a simple expression can be defined
using an equals sign, as in the example:
define sc(a,b) = a^3 + b^3
Thus the input:
sc(31, 61)
will produce;
256772
Variables in functions can be defined as either 'global', 'local',
or 'static'. Global variables are common to all functions and the
command line, whereas local variables are unique to each function
level, and are destroyed when the function returns. Static variables
are scoped within single input files, or within functions, and are
never destroyed. Variables are not typed at definition time, but
dynamically change as they are used.
For more information about the calc language and features, try:
help overview
In particular, check out the other help functions listed in the
overview help file.
## Copyright (C) 1999 Landon Curt Noll
##
## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License
## as published by the Free Software Foundation.
##
## Calc is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
## Public License for more details.
##
## A copy of version 2.1 of the GNU Lesser General Public License is
## distributed with calc under the filename COPYING-LGPL. You should have
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
## Under source code control: 1991/07/21 04:37:21
## File existed as early as: 1991
##
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
1
0
Hello community,
here is the log from the commit of package python-pyasn1 for openSUSE:Factory checked in at 2017-08-01 09:24:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyasn1 (Old)
and /work/SRC/openSUSE:Factory/.python-pyasn1.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyasn1"
Tue Aug 1 09:24:43 2017 rev:28 rq:513051 version:0.3.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyasn1/python-pyasn1.changes 2017-07-04 11:56:39.480029966 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyasn1.new/python-pyasn1.changes 2017-08-01 09:24:48.780485869 +0200
@@ -1,0 +2,66 @@
+Sat Jul 29 21:01:20 UTC 2017 - michael(a)stroeder.com
+
+- updated to upstream release 0.3.1
+- do not ship doc/source/
+
+Revision 0.3.1, released 26-07-2017
+-----------------------------------
+
+- ASN.1 types __init__(), .clone() and .subtype() signatures
+ refactored into keyword arguments to simplify their signatures.
+- ASN.1 types initialization refactored to minimize the use of
+ relatively expensive isNoValue() call
+- Lazily pre-populate list of values of Sequence/Set/Choice types
+- NamedTypes comparison made more efficient
+- More efficient constraints computation and code clean up
+- The __getitem__() implementation of some ASN.1 types & tag object
+ refactored for better performance
+- BER/CER/DER value encoders refactored to produce either tuple of
+ bytes or octet-stream depending on what is more optimal
+- Reduced the frequency of expensive isinstance() calls
+- Tag-related classes optimized, refactored into properties and
+ documented.
+- The NamedValues implementation refactored to mimic Python dict, its use
+ in ASN.1 types refactored into properties and better documented.
+ WARNING: this change introduces a deviation from original API.
+- NamedType family of classes overhauled, optimized and documented.
+- The `componentType` attribute of constructed ASN.1 types turned
+ read-only on instances.
+- Sequence/Set DER/CER/DER decoder optimized to skip the case of
+ reordered components handling when not necessary.
+- Tags and constraints-related getter methods refactored into read-only
+ instance attributes.
+- The .hasValue() method refactored into .isValue property. All ASN.1
+ objects now support them, not just scalars.
+- The Real.{isInfinity, isPlusInfinity, isMinusInfinity} methods
+ refactored into properties and renamed into IsInf, IsPlusInf and isMinusInf
+- The end-of-octets type refactored to ensure it is a singleton. Codecs
+ changed to rely on that for better performance.
+- Codecs lookup made more efficient at BER/CER/DER decoder main loop by
+ assigning `typeId` to every ASN.1 type, not just ambiguous ones.
+- The .getComponent*() methods of constructed ASN.1 types changed
+ to lazily instantiate underlying type rather than return `None`.
+ This should simplify its API as initialization like `X[0][1] = 2` becomes
+ possible.
+ WARNING: this change introduces a deviation from the original API.
+- The .setComponent*() methods of SetOf/SequenceOf types changed not
+ to allow uninitialized "holes" inside the sequences of their components.
+ They now behave similarly to Python lists.
+ WARNING: this change introduces a deviation from the original API.
+- Default and optional components en/decoding of Constructed type
+ refactored towards better efficiency and more control.
+- OctetsString and Any decoder optimized to avoid creating ASN.1
+ objects for chunks of substrate. Instead they now join substrate
+ chunks together and create ASN.1 object from it just once.
+- The GeneralizedTime and UTCTime types now support to/from Python
+ datetime object conversion.
+- Unit tests added for the `compat` sub-package.
+- Fixed BitString named bits initialization bug.
+- Fixed non-functional tag cache (when running Python 2) at DER decoder.
+- Fixed chunked encoding restriction on DER encoder.
+- Fixed SET components ordering at DER encoder.
+- Fixed BIT STRING & OCTET STRING encoding to be always non-chunked (e.g.
+ primitive) at DER encoder
+- Fixed `compat.integer.from_bytes()` behaviour on empty input.
+
+-------------------------------------------------------------------
Old:
----
pyasn1-0.2.3.tar.gz
New:
----
pyasn1-0.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyasn1.spec ++++++
--- /var/tmp/diff_new_pack.ZmJGDD/_old 2017-08-01 09:24:49.304412032 +0200
+++ /var/tmp/diff_new_pack.ZmJGDD/_new 2017-08-01 09:24:49.304412032 +0200
@@ -20,7 +20,7 @@
%define oldpython python
Name: python-pyasn1
%global modname pyasn1
-Version: 0.2.3
+Version: 0.3.1
Release: 0
Summary: ASN.1 types and codecs
License: BSD-2-Clause
@@ -32,7 +32,7 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
%ifpython2
-Obsoletes: %{oldpython}-asn1 < 0.1.2
+Obsoletes: %{oldpython}-asn1 < 0.2.3
Provides: %{oldpython}-asn1 = %{version}
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -61,7 +61,7 @@
%files %python_files
%defattr(-,root,root,-)
-%doc CHANGES.rst LICENSE.rst README.md THANKS.txt TODO.rst doc
+%doc CHANGES.rst LICENSE.rst README.md TODO.rst
%{python_sitelib}/*
%changelog
++++++ pyasn1-0.2.3.tar.gz -> pyasn1-0.3.1.tar.gz ++++++
++++ 8936 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pyasn1-modules for openSUSE:Factory checked in at 2017-08-01 09:24:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyasn1-modules (Old)
and /work/SRC/openSUSE:Factory/.python-pyasn1-modules.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyasn1-modules"
Tue Aug 1 09:24:37 2017 rev:16 rq:513049 version:0.0.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyasn1-modules/python-pyasn1-modules.changes 2017-06-20 10:59:19.188645827 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyasn1-modules.new/python-pyasn1-modules.changes 2017-08-01 09:24:39.605778864 +0200
@@ -1,0 +2,10 @@
+Sat Jul 29 21:04:04 UTC 2017 - michael(a)stroeder.com
+
+- Updated project URL
+- Update to upstream release 0.0.10
+ * Fixed SequenceOf initializer to pass now-mandatory componentType
+ keyword argument (since pyasn1 0.3.1)
+ * Temporarily fixed recursive ASN.1 type definition to work with
+ pyasn1 0.3.1+. This is going to be fixed properly shortly.
+
+-------------------------------------------------------------------
Old:
----
pyasn1-modules-0.0.9.tar.gz
New:
----
pyasn1-modules-0.0.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyasn1-modules.spec ++++++
--- /var/tmp/diff_new_pack.6HwyPd/_old 2017-08-01 09:24:40.289682482 +0200
+++ /var/tmp/diff_new_pack.6HwyPd/_new 2017-08-01 09:24:40.289682482 +0200
@@ -18,9 +18,9 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pyasn1-modules
-Version: 0.0.9
+Version: 0.0.10
Release: 0
-Url: http://pyasn1.sf.net/
+Url: https://github.com/etingof/pyasn1-modules
Summary: Collection of protocols modules written in ASN.1 language
License: BSD-3-Clause
Group: Development/Languages/Python
++++++ pyasn1-modules-0.0.9.tar.gz -> pyasn1-modules-0.0.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/CHANGES.txt new/pyasn1-modules-0.0.10/CHANGES.txt
--- old/pyasn1-modules-0.0.9/CHANGES.txt 2017-06-01 22:26:37.000000000 +0200
+++ new/pyasn1-modules-0.0.10/CHANGES.txt 2017-07-27 00:28:41.000000000 +0200
@@ -1,3 +1,12 @@
+
+Revision 0.0.10, released 27-07-2017
+------------------------------------
+
+* Fixed SequenceOf initializer to pass now-mandatory componentType
+ keyword argument (since pyasn1 0.3.1)
+* Temporarily fixed recursive ASN.1 type definition to work with
+ pyasn1 0.3.1+. This is going to be fixed properly shortly.
+
Revision 0.0.9, released 01-06-2017
-----------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/PKG-INFO new/pyasn1-modules-0.0.10/PKG-INFO
--- old/pyasn1-modules-0.0.9/PKG-INFO 2017-06-01 23:15:33.000000000 +0200
+++ new/pyasn1-modules-0.0.10/PKG-INFO 2017-07-27 00:33:48.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pyasn1-modules
-Version: 0.0.9
+Version: 0.0.10
Summary: A collection of ASN.1-based protocols modules.
Home-page: https://github.com/etingof/pyasn1-modules
Author: Ilya Etingof <etingof(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/__init__.py new/pyasn1-modules-0.0.10/pyasn1_modules/__init__.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/__init__.py 2016-10-31 19:36:34.000000000 +0100
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/__init__.py 2017-07-27 00:32:11.000000000 +0200
@@ -1,2 +1,2 @@
# http://www.python.org/dev/peps/pep-0396/
-__version__ = '0.0.9'
+__version__ = '0.0.10'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2437.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2437.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2437.py 2017-01-26 19:49:02.000000000 +0100
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2437.py 2017-07-26 23:22:16.000000000 +0200
@@ -26,8 +26,6 @@
id_pSpecified = univ.ObjectIdentifier('1.2.840.113549.1.1.9')
id_sha1 = univ.ObjectIdentifier('1.3.14.3.2.26')
-MAX = 16
-
class Version(univ.Integer):
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2459.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2459.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2459.py 2017-04-21 09:23:33.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2459.py 2017-07-26 23:22:16.000000000 +0200
@@ -15,7 +15,7 @@
#
from pyasn1.type import tag, namedtype, namedval, univ, constraint, char, useful
-MAX = 64 # XXX ?
+MAX = float('inf')
#
# PKIX1Explicit88
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2511.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2511.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2511.py 2017-06-01 18:09:21.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2511.py 2017-07-26 23:22:16.000000000 +0200
@@ -14,7 +14,7 @@
from pyasn1_modules.rfc2459 import *
from pyasn1_modules import rfc2315
-MAX = 16
+MAX = float('inf')
id_pkix = univ.ObjectIdentifier('1.3.6.1.5.5.7')
id_pkip = univ.ObjectIdentifier('1.3.6.1.5.5.7.5')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2560.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2560.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc2560.py 2017-01-26 19:49:02.000000000 +0100
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc2560.py 2017-07-26 23:23:56.000000000 +0200
@@ -140,7 +140,7 @@
explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('responderID', ResponderID()),
namedtype.NamedType('producedAt', useful.GeneralizedTime()),
- namedtype.NamedType('responses', univ.SequenceOf(SingleResponse())),
+ namedtype.NamedType('responses', univ.SequenceOf(componentType=SingleResponse())),
namedtype.OptionalNamedType('responseExtensions', rfc2459.Extensions().subtype(
explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
)
@@ -151,7 +151,7 @@
namedtype.NamedType('tbsResponseData', ResponseData()),
namedtype.NamedType('signatureAlgorithm', rfc2459.AlgorithmIdentifier()),
namedtype.NamedType('signature', univ.BitString()),
- namedtype.OptionalNamedType('certs', univ.SequenceOf(rfc2459.Certificate()).subtype(
+ namedtype.OptionalNamedType('certs', univ.SequenceOf(componentType=rfc2459.Certificate()).subtype(
explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))
)
@@ -195,7 +195,7 @@
componentType = namedtype.NamedTypes(
namedtype.NamedType('signatureAlgorithm', rfc2459.AlgorithmIdentifier()),
namedtype.NamedType('signature', univ.BitString()),
- namedtype.OptionalNamedType('certs', univ.SequenceOf(rfc2459.Certificate()).subtype(
+ namedtype.OptionalNamedType('certs', univ.SequenceOf(componentType=rfc2459.Certificate()).subtype(
explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))
)
@@ -206,7 +206,7 @@
explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.OptionalNamedType('requestorName', GeneralName().subtype(
explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
- namedtype.NamedType('requestList', univ.SequenceOf(Request())),
+ namedtype.NamedType('requestList', univ.SequenceOf(componentType=Request())),
namedtype.OptionalNamedType('requestExtensions', rfc2459.Extensions().subtype(
explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc3280.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc3280.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc3280.py 2017-01-26 19:49:02.000000000 +0100
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc3280.py 2017-07-26 23:22:16.000000000 +0200
@@ -14,7 +14,7 @@
#
from pyasn1.type import univ, char, namedtype, namedval, tag, constraint, useful
-MAX = 64
+MAX = float('inf')
def _OID(*components):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc3281.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc3281.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc3281.py 2017-06-01 18:09:21.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc3281.py 2017-07-26 23:22:16.000000000 +0200
@@ -21,7 +21,7 @@
from pyasn1_modules import rfc3280
-MAX = 64
+MAX = float('inf')
def _buildOid(*components):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc3852.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc3852.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc3852.py 2017-06-01 18:14:49.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc3852.py 2017-07-26 23:22:16.000000000 +0200
@@ -16,7 +16,7 @@
from pyasn1_modules import rfc3280
from pyasn1_modules import rfc3281
-MAX = 64
+MAX = float('inf')
def _buildOid(*components):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc4210.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc4210.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc4210.py 2017-06-01 18:33:22.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc4210.py 2017-07-26 23:24:18.000000000 +0200
@@ -11,7 +11,7 @@
from pyasn1.type import tag, namedtype, namedval, univ, constraint, char, useful
from pyasn1_modules import rfc2459, rfc2511, rfc2314
-MAX = 64
+MAX = float('inf')
class KeyIdentifier(univ.OctetString):
@@ -784,5 +784,5 @@
# pyasn1 does not naturally handle recursive definitions, thus this hack:
# NestedMessageContent ::= PKIMessages
-NestedMessageContent.componentType = PKIMessages()
-nestedMessageContent.componentType = PKIMessages()
+NestedMessageContent._componentType = PKIMessages()
+nestedMessageContent._componentType = PKIMessages()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc4211.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc4211.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc4211.py 2017-06-01 18:57:36.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc4211.py 2017-07-26 23:22:16.000000000 +0200
@@ -17,7 +17,7 @@
from pyasn1_modules import rfc3280
from pyasn1_modules import rfc3852
-MAX = 64
+MAX = float('inf')
def _buildOid(*components):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc5280.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc5280.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc5280.py 2017-06-01 18:57:36.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc5280.py 2017-07-26 23:22:16.000000000 +0200
@@ -20,8 +20,7 @@
from pyasn1.type import constraint
from pyasn1.type import useful
-MAX = 64
-
+MAX = float('inf')
def _buildOid(*components):
output = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc5652.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc5652.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc5652.py 2017-06-01 18:57:36.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc5652.py 2017-07-26 23:22:16.000000000 +0200
@@ -21,7 +21,7 @@
from pyasn1_modules import rfc3281
from pyasn1_modules import rfc5280
-MAX = 64
+MAX = float('inf')
def _buildOid(*components):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules/rfc6402.py new/pyasn1-modules-0.0.10/pyasn1_modules/rfc6402.py
--- old/pyasn1-modules-0.0.9/pyasn1_modules/rfc6402.py 2017-06-01 22:26:37.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules/rfc6402.py 2017-07-26 23:22:16.000000000 +0200
@@ -17,7 +17,7 @@
from pyasn1_modules import rfc5280
from pyasn1_modules import rfc5652
-MAX = 64
+MAX = float('inf')
def _buildOid(*components):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.9/pyasn1_modules.egg-info/PKG-INFO new/pyasn1-modules-0.0.10/pyasn1_modules.egg-info/PKG-INFO
--- old/pyasn1-modules-0.0.9/pyasn1_modules.egg-info/PKG-INFO 2017-06-01 23:15:33.000000000 +0200
+++ new/pyasn1-modules-0.0.10/pyasn1_modules.egg-info/PKG-INFO 2017-07-27 00:33:47.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pyasn1-modules
-Version: 0.0.9
+Version: 0.0.10
Summary: A collection of ASN.1-based protocols modules.
Home-page: https://github.com/etingof/pyasn1-modules
Author: Ilya Etingof <etingof(a)gmail.com>
1
0
Hello community,
here is the log from the commit of package shim for openSUSE:Factory checked in at 2017-08-01 09:24:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shim (Old)
and /work/SRC/openSUSE:Factory/.shim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shim"
Tue Aug 1 09:24:31 2017 rev:59 rq:513024 version:12
Changes:
--------
--- /work/SRC/openSUSE:Factory/shim/shim.changes 2017-07-04 09:08:07.545749329 +0200
+++ /work/SRC/openSUSE:Factory/.shim.new/shim.changes 2017-08-01 09:24:32.706751144 +0200
@@ -1,0 +2,5 @@
+Fri Jul 14 16:40:52 UTC 2017 - bwiedemann(a)suse.com
+
+- Make build reproducible by avoiding race between find and cp
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shim.spec ++++++
--- /var/tmp/diff_new_pack.lsKhAv/_old 2017-08-01 09:24:33.462644616 +0200
+++ /var/tmp/diff_new_pack.lsKhAv/_new 2017-08-01 09:24:33.466644052 +0200
@@ -196,8 +196,9 @@
mv shim-${suffixes[0]}.debug shim.debug
# Collect the source for debugsource
-mkdir source
-find . \( -name "*.c" -o -name "*.h" \) -type f -exec cp --parents -a {} source/ \;
+mkdir ../source
+find . \( -name "*.c" -o -name "*.h" \) -type f -exec cp --parents -a {} ../source/ \;
+mv ../source .
%install
export BRP_PESIGN_FILES='%{_libdir}/efi/shim*.efi %{_libdir}/efi/MokManager.efi %{_libdir}/efi/fallback.efi'
1
0