Hello community,
here is the log from the commit of package yast2 for openSUSE:13.1 checked in at 2013-10-23 11:28:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1/yast2 (Old)
and /work/SRC/openSUSE:13.1/.yast2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2"
Changes:
--------
--- /work/SRC/openSUSE:13.1/yast2/yast2.changes 2013-09-27 19:30:45.000000000 +0200
+++ /work/SRC/openSUSE:13.1/.yast2.new/yast2.changes 2013-10-23 11:28:50.000000000 +0200
@@ -1,0 +2,21 @@
+Fri Oct 18 10:45:51 UTC 2013 - mfilka@suse.com
+
+- bnc#846550
+ - deleting aliases works even for devices with name according
+ new scheme
+- 3.0.10
+
+-------------------------------------------------------------------
+Tue Sep 24 10:03:12 UTC 2013 - jreidinger@suse.com
+
+- allow nested ipv4 in ipv6 (BNC#828683)
+- 3.0.9
+
+-------------------------------------------------------------------
+Tue Sep 3 08:47:37 UTC 2013 - mfilka@suse.com
+
+- bnc#837517
+ - fixed misinterpreting IPv6 prefixes when converting to netmask
+- 3.0.8
+
+-------------------------------------------------------------------
Old:
----
yast2-3.0.7.tar.bz2
New:
----
yast2-3.0.10.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2.spec ++++++
--- /var/tmp/diff_new_pack.SyzVdx/_old 2013-10-23 11:28:50.000000000 +0200
+++ /var/tmp/diff_new_pack.SyzVdx/_new 2013-10-23 11:28:50.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2
-Version: 3.0.7
+Version: 3.0.10
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-3.0.7.tar.bz2 -> yast2-3.0.10.tar.bz2 ++++++
++++ 24746 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/VERSION new/yast2-3.0.10/VERSION
--- old/yast2-3.0.7/VERSION 2013-08-30 15:01:51.000000000 +0200
+++ new/yast2-3.0.10/VERSION 2013-10-21 12:09:54.000000000 +0200
@@ -1 +1 @@
-3.0.7
+3.0.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/configure.ac new/yast2-3.0.10/configure.ac
--- old/yast2-3.0.7/configure.ac 2013-08-30 15:01:59.000000000 +0200
+++ new/yast2-3.0.10/configure.ac 2013-10-21 12:10:26.000000000 +0200
@@ -1,9 +1,9 @@
dnl configure.ac for yast2
dnl
-dnl -- This file is generated by y2autoconf 3.0.4 - DO NOT EDIT! --
+dnl -- This file is generated by y2autoconf 3.0.5 - DO NOT EDIT! --
dnl (edit configure.ac.in or configure.in.in instead)
-AC_INIT(yast2, 3.0.7, http://bugs.opensuse.org/, yast2)
+AC_INIT(yast2, 3.0.10, http://bugs.opensuse.org/, yast2)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -18,7 +18,7 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
dnl Important YaST2 variables
-VERSION="3.0.7"
+VERSION="3.0.10"
RPMNAME="yast2"
MAINTAINER="YaST2 Maintainers "
@@ -274,6 +274,7 @@
library/network/doc/Makefile
library/network/src/Makefile
library/network/testsuite/Makefile
+library/network/test/Makefile
library/network/Makefile
library/gpg/doc/autodocs/Makefile
library/gpg/doc/Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/network/Makefile.am new/yast2-3.0.10/library/network/Makefile.am
--- old/yast2-3.0.7/library/network/Makefile.am 2013-08-01 09:09:58.000000000 +0200
+++ new/yast2-3.0.10/library/network/Makefile.am 2013-10-21 12:09:55.000000000 +0200
@@ -2,4 +2,4 @@
# Makefile.am for yast2/library/network
#
-SUBDIRS = doc src testsuite
+SUBDIRS = doc src testsuite test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/network/src/modules/NetworkInterfaces.rb new/yast2-3.0.10/library/network/src/modules/NetworkInterfaces.rb
--- old/yast2-3.0.7/library/network/src/modules/NetworkInterfaces.rb 2013-08-14 09:16:53.000000000 +0200
+++ new/yast2-3.0.10/library/network/src/modules/NetworkInterfaces.rb 2013-10-21 12:09:55.000000000 +0200
@@ -35,6 +35,16 @@
module Yast
class NetworkInterfacesClass < Module
+
+ Yast.import "String"
+
+ # A single character used to separate alias id
+ ALIAS_SEPARATOR = "#"
+ TYPE_REGEX = "(ip6tnl|mip6mnha|[#{String.CAlpha}]+)"
+ ID_REGEX = "([^#{ALIAS_SEPARATOR}]*)"
+ ALIAS_REGEX = "(.*)"
+ DEVNAME_REGEX = "#{TYPE_REGEX}-?#{ID_REGEX}"
+
def main
textdomain "base"
@@ -42,9 +52,9 @@
Yast.import "Map"
Yast.import "Mode"
Yast.import "Netmask"
- Yast.import "String"
Yast.import "TypeRepository"
Yast.import "FileUtils"
+ Yast.import "IP"
# False suppresses tones of logs 'NetworkInterfaces.ycp:ABC Check(eth,id-00:aa:bb:cc:dd:ee,)'
@report_every_check =
@@ -139,46 +149,11 @@
# -------------------- components of configuration names --------------------
- # A single character used to separate alias id
- @alias_separator = "#"
-
# ifcfg name = type + id + alias_id
# If id is numeric, it is not separated from type, otherwise separated by "-"
# Id may be empty
# Alias_id, if nonempty, is separated by alias_separator
- @ifcfg_name_regex = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add(
- Ops.add(
- Ops.add(
- Ops.add(
- Ops.add(
- Ops.add(
- Ops.add(
- "^" +
- # ip6: #48696
- "(ip6tnl|mip6mnha|[",
- String.CAlpha
- ),
- "]+)"
- ),
- "-?"
- ),
- "([^"
- ),
- @alias_separator
- ),
- "]*)"
- ),
- @alias_separator
- ),
- "?"
- ),
- "(.*)"
- ),
- "$"
- )
+ @ifcfg_name_regex = "^#{DEVNAME_REGEX}#{ALIAS_SEPARATOR}?#{ALIAS_REGEX}$"
# Translates type code exposed by kernel in sysfs onto internaly used dev types.
@TypeBySysfs = {
@@ -263,7 +238,7 @@
def ifcfg_part(ifcfg, part)
return "" if Builtins.regexpmatch(ifcfg, @ifcfg_name_regex) != true
- ret = Builtins.regexpsub(ifcfg, @ifcfg_name_regex, Ops.add("\\", part))
+ ret = Builtins.regexpsub(ifcfg, @ifcfg_name_regex, "\\#{part}")
ret == nil ? "" : ret
end
@@ -271,7 +246,7 @@
# @param [String] dev device
# @return device type
# @example device_type("eth1") -> "eth"
- # @example device_type("eth-pcmcia-0") -> "eth-pcmcia"
+ # @example device_type("eth-pcmcia-0") -> "eth"
def device_type(dev)
ifcfg_part(dev, "1")
end
@@ -469,7 +444,10 @@
# @return device number
# @example device_num("eth1") -> "1"
# @example device_num("lo") -> ""
+ #
+ # Obsolete: It is incompatible with new device naming scheme.
def device_num(dev)
+ Builtins.y2warning( "Do not use device_num.")
ifcfg_part(dev, "2")
end
@@ -506,6 +484,13 @@
Builtins.sformat("%1-%2", typ, num)
end
+ # Extracts device name from alias name
+ #
+ # alias_name := {ALIAS_SEPARATOR}
+ def device_name_from_alias(alias_name)
+ alias_name.sub(/#{ALIAS_SEPARATOR}.*/, "")
+ end
+
# Create a alias name from its type and numbers
# @param [String] typ device type
# @param [String] num device number
@@ -605,19 +590,30 @@
deep_copy(ifcfg)
end
- # Canonicalize netmask data (#46885)
- # Sysconfig allows:
- # IPADDR=10.0.0.1/8
- # IPADDR=10.0.0.1 PREFIXLEN=8
- # IPADDR=10.0.0.1 NETMASK=255.0.0.0
- # (IPADDR overrides PREFIXLEN, NETMASK used only if prefix length unspecified)
- # If prefix length and NETMASK are unspecified, 32 is implied.
- # Canonicalize it to
- # IPADDR=10.0.0.1 PREFIXLEN= NETMASK=255.0.0.0
- # @param [Hash{String => Object}] ifcfg a map containing IPADDR and possibly NETMASK, PREFIXLEN
- # and possibly other fields
- # @return the map with IPADDR, NETMASK adjusted; PREFIXLEN ""
- # others unchanged. If IPADDR is empty, return the original.
+ #
+ # Canonicalize static ip configuration obtained from sysconfig. (suse#46885)
+ #
+ # Static ip configuration formats supported by sysconfig:
+ # 1) IPADDR=10.0.0.1/8
+ # 2) IPADDR=10.0.0.1 PREFIXLEN=8
+ # 3) IPADDR=10.0.0.1 NETMASK=255.0.0.0
+ #
+ # Features:
+ # - IPADDR (in form <ip>/<prefix>) overrides PREFIXLEN,
+ # - NETMASK is used only if prefix length unspecified)
+ # - If prefix length and NETMASK are unspecified, 32 is implied.
+ #
+ # Canonicalize it to:
+ # - IPADDR="<ipv4>" PREFIXLEN="<prefix>" NETMASK="<netmask>") in case of IPv4 config
+ # E.g. IPADDR=10.0.0.1 PREFIXLEN=8 NETMASK=255.0.0.0
+ # - IPADDR="<ipv6>" PREFIXLEN="<prefix>" NETMASK="") in case of IPv6 config
+ # E.g. IPADDR=2001:15c0:668e::5 PREFIXLEN=48 NETMASK=""
+ #
+ # @param ifcfg a map with netconfig (ifcfg) configuration for a one device
+ # @return a map with IPADDR, NETMASK and PREFIXLEN adjusted if IPADDR is present.
+ # Returns original ifcfg if IPADDR is not present. In case of error,
+ # returns nil.
+ #
def CanonicalizeIP(ifcfg)
ifcfg = deep_copy(ifcfg)
return nil if ifcfg == nil
@@ -628,8 +624,10 @@
)
ipaddr = Ops.get(ip_and_prefix, 0, "")
return deep_copy(ifcfg) if ipaddr == "" # DHCP or inconsistent
+
prefixlen = Ops.get(ip_and_prefix, 1, "")
prefixlen = Ops.get_string(ifcfg, "PREFIXLEN", "") if prefixlen == ""
+
if prefixlen == ""
prefixlen = Builtins.tostring(
Netmask.ToBits(Ops.get_string(ifcfg, "NETMASK", ""))
@@ -638,12 +636,14 @@
# Now we have ipaddr and prefixlen
# Let's compute the rest
- netmask = Netmask.FromBits(Builtins.tointeger(prefixlen))
- ret = deep_copy(ifcfg)
- Ops.set(ret, "IPADDR", ipaddr)
- Ops.set(ret, "PREFIXLEN", prefixlen)
- Ops.set(ret, "NETMASK", netmask)
- deep_copy(ret)
+ netmask = ""
+ netmask = Netmask.FromBits(Builtins.tointeger(prefixlen)) if IP.Check4( ipaddr)
+
+ Ops.set(ifcfg, "IPADDR", ipaddr)
+ Ops.set(ifcfg, "PREFIXLEN", prefixlen)
+ Ops.set(ifcfg, "NETMASK", netmask)
+
+ ifcfg
end
# Conceal secret information, such as WEP keys, so that the output
@@ -853,16 +853,15 @@
Builtins.y2debug("deleting: %1", p)
SCR.Write(p, nil)
else
- typ = device_type(d)
- num = device_num(d)
- dev = device_name(typ, num)
+ dev = device_name_from_alias(d)
+ typ = GetType(dev)
base = Builtins.add(path(".network.value"), dev)
# look in OriginalDevs because we need to catch all variables
# of the alias
- Builtins.foreach(
- Ops.get_map(_OriginalDevs, [typ, dev, "_aliases", anum], {})
- ) do |key, dummy|
- p = Builtins.add(base, Ops.add(Ops.add(key, "_"), anum))
+
+ dev_aliases = _OriginalDevs[typ][dev]["_aliases"][anum] || {}
+ dev_aliases.keys.each do |key|
+ p = base + "#{key}_#{anum}"
Builtins.y2debug("deleting: %1", p)
SCR.Write(p, nil)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/network/test/Makefile.am new/yast2-3.0.10/library/network/test/Makefile.am
--- old/yast2-3.0.7/library/network/test/Makefile.am 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.0.10/library/network/test/Makefile.am 2013-10-21 12:09:55.000000000 +0200
@@ -0,0 +1,8 @@
+TESTS = \
+ load_ipv6_cfg_test.rb \
+ network_interfaces_helpers_test.rb
+
+TEST_EXTENSIONS = .rb
+RB_LOG_COMPILER = ruby
+VERBOSE = 1
+EXTRA_DIST = $(TESTS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/network/test/load_ipv6_cfg_test.rb new/yast2-3.0.10/library/network/test/load_ipv6_cfg_test.rb
--- old/yast2-3.0.7/library/network/test/load_ipv6_cfg_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.0.10/library/network/test/load_ipv6_cfg_test.rb 2013-10-21 12:09:55.000000000 +0200
@@ -0,0 +1,33 @@
+#! /usr/bin/env ruby
+
+require "minitest/spec"
+require "minitest/autorun"
+
+require "yast"
+
+Yast.import "NetworkInterfaces"
+
+# mocked IPv6 relevant part of loaded ifcfg
+IPV6_IFCFG = [
+ {
+ :data => { "IPADDR" => "2001:15c0:668e::5", "PREFIXLEN" => "48" },
+ :expected => { "IPADDR" => "2001:15c0:668e::5", "PREFIXLEN" => "48", "NETMASK" => "" }
+ },
+ {
+ :data => { "IPADDR" => "2001:15c0:668e::5/48", "PREFIXLEN" => "" },
+ :expected => { "IPADDR" => "2001:15c0:668e::5", "PREFIXLEN" => "48", "NETMASK" => "" }
+ },
+ {
+ :data => { "IPADDR" => "2a00:8a00:6000:40::451", "PREFIXLEN" => "119" },
+ :expected => { "IPADDR" => "2a00:8a00:6000:40::451", "PREFIXLEN" => "119", "NETMASK" => "" }
+ }
+]
+
+describe "When reading devices configuration with IPv6 setup" do
+ it "Sets ipaddr, prefix and empty mask" do
+ IPV6_IFCFG.each do |ipv6_ifcfg|
+ canonical_ifcfg = Yast::NetworkInterfaces.CanonicalizeIP( ipv6_ifcfg[ :data])
+ canonical_ifcfg.must_equal( ipv6_ifcfg[ :expected])
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/network/test/network_interfaces_helpers_test.rb new/yast2-3.0.10/library/network/test/network_interfaces_helpers_test.rb
--- old/yast2-3.0.7/library/network/test/network_interfaces_helpers_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.0.10/library/network/test/network_interfaces_helpers_test.rb 2013-10-21 12:09:55.000000000 +0200
@@ -0,0 +1,70 @@
+#! /usr/bin/env ruby
+
+require "minitest/spec"
+require "minitest/autorun"
+
+require "yast"
+
+Yast.import("NetworkInterfaces")
+
+module Yast
+
+ describe NetworkInterfaces do
+
+ describe "Parsing device name" do
+
+ DEVICE_DESCS = [
+ {
+ name: "",
+ alias_id: "",
+ type_by_regex: ""
+ },
+ {
+ name: "eth0",
+ alias_id: "",
+ type_by_regex: "eth"
+ },
+ {
+ name: "eth-pcmcia-0",
+ alias_id: "",
+ type_by_regex: "eth"
+ },
+ {
+ name: "enp0s3",
+ alias_id: "",
+ type_by_regex: "enp"
+ },
+ {
+ name: "eth0#1",
+ alias_id: "1",
+ type_by_regex: "eth"
+ },
+ {
+ name: "enp0s3#0",
+ alias_id: "0",
+ type_by_regex: "enp"
+ }
+ ]
+
+ DEVICE_DESCS.each do |device_desc|
+
+ device_name = device_desc[:name]
+ alias_id = device_desc[:alias_id]
+ type_by_regex = device_desc[:type_by_regex]
+
+ describe '#alias_num' do
+
+ it "returns alias_id: <#{alias_id}> for name: <#{device_name}>" do
+ NetworkInterfaces.alias_num(device_name).must_equal alias_id
+ end
+ end
+
+ describe "#device_type" do
+ it "returns type by regex: <#{type_by_regex}> for name: <#{device_name}>" do
+ NetworkInterfaces.device_type(device_name).must_equal type_by_regex
+ end
+ end
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/network/testsuite/tests/NetworkInterfaces.out new/yast2-3.0.10/library/network/testsuite/tests/NetworkInterfaces.out
--- old/yast2-3.0.7/library/network/testsuite/tests/NetworkInterfaces.out 2013-07-23 10:07:48.000000000 +0200
+++ new/yast2-3.0.10/library/network/testsuite/tests/NetworkInterfaces.out 2013-10-21 12:09:55.000000000 +0200
@@ -32,5 +32,3 @@
Return nil
Return $[]
Return $["IPADDR":"10.0.0.1", "NETMASK":"255.255.255.255", "PREFIXLEN":"32", "other":"data"]
-Return $["IPADDR":"2001:15c0:668e::5", "NETMASK":"", "PREFIXLEN":"48"]
-Return $["IPADDR":"2001:15c0:668e::5", "NETMASK":"", "PREFIXLEN":"48"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/network/testsuite/tests/NetworkInterfaces.rb new/yast2-3.0.10/library/network/testsuite/tests/NetworkInterfaces.rb
--- old/yast2-3.0.7/library/network/testsuite/tests/NetworkInterfaces.rb 2013-07-30 14:09:40.000000000 +0200
+++ new/yast2-3.0.10/library/network/testsuite/tests/NetworkInterfaces.rb 2013-10-21 12:09:55.000000000 +0200
@@ -80,9 +80,6 @@
nil,
{},
{ "IPADDR" => "10.0.0.1", "other" => "data" },
- # IPv6
- { "IPADDR" => "2001:15c0:668e::5", "PREFIXLEN" => "48" },
- { "IPADDR" => "2001:15c0:668e::5/48", "PREFIXLEN" => "" }
]
Builtins.foreach(@addresses) { |address| TEST(lambda do
NetworkInterfaces.CanonicalizeIP(address)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/types/src/modules/IP.rb new/yast2-3.0.10/library/types/src/modules/IP.rb
--- old/yast2-3.0.7/library/types/src/modules/IP.rb 2013-08-30 15:01:51.000000000 +0200
+++ new/yast2-3.0.10/library/types/src/modules/IP.rb 2013-10-21 12:09:54.000000000 +0200
@@ -81,21 +81,17 @@
def Check6(ip)
return false if ip == nil
- # we need special regex because Resolv::IPv6::Regex support also directly
- # mapped ipv4 to ipv6 which yast doesn't support
- regexp = /
- (?:#{Resolv::IPv6::Regex_8Hex}) |
- (?:#{Resolv::IPv6::Regex_CompressedHex})
- /xo
- res = !regexp.match(ip).nil?
+ res = !Resolv::IPv6::Regex.match(ip).nil?
# workaround for compressed address as it is hard to check correct number
# in compressed ip using regexp only
if res && ip.include?("::")
prefix, suffix = ip.split("::")
elements = prefix.split(":")
+ contain_ipv4 = ip.include? "."
elements += suffix.split(":") if suffix
- return elements.size < 8
+ max_elements = contain_ipv4 ? 6 : 7
+ return elements.size <= max_elements
end
return res
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/types/src/modules/Netmask.rb new/yast2-3.0.10/library/types/src/modules/Netmask.rb
--- old/yast2-3.0.7/library/types/src/modules/Netmask.rb 2013-07-30 14:09:40.000000000 +0200
+++ new/yast2-3.0.10/library/types/src/modules/Netmask.rb 2013-10-21 12:09:54.000000000 +0200
@@ -108,10 +108,16 @@
Check4(netmask) || Check6(netmask)
end
- # Convert netmask in bits form (20) to netmask string (255.255.240.0)
- # @param [Fixnum] bits number of bits in netmask
- # @return netmask string
+ #
+ # Convert netmask in bits form (20) to IPv4 netmask string (255.255.240.0)
+ #
+ # @param bits number of bits in netmask
+ # @return netmask string or empty string in case of invalid bits (e.g.
+ # when prefix is incompatible with IPv4)
+ #
def FromBits(bits)
+ return "" unless bits.between?( 0, 32)
+
b = Ops.divide(bits, 8)
d = Ops.modulo(bits, 8)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/types/test/Makefile.am new/yast2-3.0.10/library/types/test/Makefile.am
--- old/yast2-3.0.7/library/types/test/Makefile.am 2013-08-30 15:01:51.000000000 +0200
+++ new/yast2-3.0.10/library/types/test/Makefile.am 2013-10-21 12:09:54.000000000 +0200
@@ -1,4 +1,4 @@
-TESTS = ip_test.rb
+TESTS = ipv4_netmask_test.rb
TEST_EXTENSIONS = .rb
RB_LOG_COMPILER = ruby
VERBOSE = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/types/test/ip_test.rb new/yast2-3.0.10/library/types/test/ip_test.rb
--- old/yast2-3.0.7/library/types/test/ip_test.rb 2013-08-30 15:01:51.000000000 +0200
+++ new/yast2-3.0.10/library/types/test/ip_test.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,188 +0,0 @@
-#! /usr/bin/env ruby
-ENV["Y2DIR"] = File.expand_path("../../src", __FILE__)
-
-require "minitest/autorun"
-require "yast"
-
-Yast.import "IP"
-
-describe Yast::IP do
- before do
- @object = Yast::IPClass.new
- @object.main
- end
-
- describe "when asked for validation string for IPv4" do
- it "must return translated text" do
- @object.Valid4.must_match /^A valid/
- end
- end
-
- describe "when told to check IPv4" do
- valid_ip4s = [
- "0.0.0.0",
- "127.0.0.1",
- "255.255.255.255",
- "10.11.12.13",
- ]
- valid_ip4s.each do |valid_ip4|
- it "return true for valid IPv4 '#{valid_ip4}'" do
- @object.Check4(valid_ip4).must_equal true
- end
- end
-
- invalid_ip4s = [
- "0.0.0",
- "127.0.0.1.1",
- "256.255.255.255",
- "01.01.012.013",
- "10,11.12.13",
- ]
- invalid_ip4s.each do |invalid_ip4|
- it "return false for invalid IPv4 '#{invalid_ip4}'" do
- @object.Check4(invalid_ip4).must_equal false
- end
- end
-
- it "return false for empty argument" do
- @object.Check4("").must_equal false
- end
-
- it "return false for nil argument" do
- @object.Check4(nil).must_equal false
- end
- end
-
- describe "when told to check IPv6" do
-
- valid_ip6s = [
- "1:2:3:4:5:6:7:8",
- "::3:4:5:6:7:8",
- "1:2:3:4:5:6::",
- "1:2:3::5:6:7:8",
- "1:2:3:4:5:6::8",
- "a:FF:b:c:d:d:e:e",
- "fe80::200:1cff:feb5:5433",
- "0::",
- "0000::",
- "0:1::",
- "1:0::",
- "1:0::0"
- ]
- valid_ip6s.each do |valid_ip6|
- it "return true for valid IPv6 '#{valid_ip6}'" do
- @object.Check6(valid_ip6).must_equal true
- end
- end
-
- invalid_ip6s = [
- "1::3:4:5:6::8",
- "1:2:3:4:5:6:7:8:9",
- "1:2:3:4::5:6:7:8:9",
- ":2:3:4:5:6:7:8",
- "1:2:3:4:5:6:7:",
- "g:FF:b:c:d:d:e:e",
- "127.0.0.1",
- "1:2:3:4:5:6:127.0.0.1", # FIXME old yast doesn't support direct mapping IPv4 to IPv6
- ]
- invalid_ip6s.each do |invalid_ip6|
- it "return false for invalid IPv6 '#{invalid_ip6}" do
- @object.Check6(invalid_ip6).must_equal false
- end
- end
-
- it "return false for empty argument" do
- @object.Check6("").must_equal false
- end
-
- it "return false for nil argument" do
- @object.Check6(nil).must_equal false
- end
- end
-
- describe "when told to compute integer value" do
- it "return value for valid ipv4" do
- result_map = {
- "0.0.0.0" => 0,
- "127.0.0.1" => 2130706433,
- "192.168.110.23" => 3232263703,
- "10.20.1.29" => 169083165
- }
- result_map.each_pair do |k,v|
- @object.ToInteger(k).must_equal v
- end
- end
-
- it "return nil if value is not valid ipv4" do
- @object.ToInteger("blabla").must_equal nil
- end
- end
-
- describe "when told to create ipv4 string from integer" do
- it "it return ipv4" do
- result_map = {
- "0.0.0.0" => 0,
- "127.0.0.1" => 2130706433,
- "192.168.110.23" => 3232263703,
- "10.20.1.29" => 169083165
- }
- result_map.each_pair do |k,v|
- @object.ToString(v).must_equal k
- end
- end
- end
-
- describe "when told to create string with hex value of ipv4 string" do
- it "return value for valid ipv4" do
- result_map = {
- "0.0.0.0" => "00000000",
- "10.10.0.1" => "0A0A0001",
- "192.168.1.1" => "C0A80101",
- "255.255.255.255" => "FFFFFFFF"
- }
- result_map.each_pair do |k,v|
- @object.ToHex(k).must_equal v
- end
- end
-
- it "return nil if value is not valid ipv4" do
- @object.ToHex("blabla").must_equal nil
- end
- end
-
- describe "when told to convert IPv4 address into bits" do
- it "return value for proper ipv4" do
- result_map = {
- "80.25.135.2" => "01010000000110011000011100000010",
- "172.24.233.211" => "10101100000110001110100111010011"
- }
- result_map.each_pair do |k,v|
- @object.IPv4ToBits(k).must_equal v
- end
- end
-
- it "return nil if value is not valid ipv4" do
- @object.IPv4ToBits("blabla").must_equal nil
- end
- end
-
- describe "when told to convert bits to IPv4 address" do
- it "return value for string" do
- result_map = {
- "80.25.135.2" => "01010000000110011000011100000010",
- "172.24.233.211" => "10101100000110001110100111010011"
- }
- result_map.each_pair do |k,v|
- @object.BitsToIPv4(v).must_equal k
- end
- end
-
- it "return nil if size of string is not 32" do
- @object.BitsToIPv4("101").must_equal nil
- end
-
- it "return nil if value is not valid string with 0 or 1" do
- @object.BitsToIPv4("blabla").must_equal nil
- end
- end
-end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/library/types/test/ipv4_netmask_test.rb new/yast2-3.0.10/library/types/test/ipv4_netmask_test.rb
--- old/yast2-3.0.7/library/types/test/ipv4_netmask_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.0.10/library/types/test/ipv4_netmask_test.rb 2013-10-21 12:09:54.000000000 +0200
@@ -0,0 +1,26 @@
+#! /usr/bin/env ruby
+
+require "minitest/spec"
+require "minitest/autorun"
+
+require "yast"
+
+Yast.import "Netmask"
+
+describe "When creating netmask from prefixlen" do
+ it "returns valid netmask for prefix shorter than 32 bits" do
+ 0.upto 32 do |prefix_len|
+ Yast::Netmask.FromBits( prefix_len).wont_be_empty
+ end
+ end
+
+ it "returns empty netmask for prefix longer than 32 bits" do
+ 33.upto 128 do |prefix_len|
+ Yast::Netmask.FromBits( prefix_len).must_be_empty
+ end
+ end
+
+ it "returns empty netmask for incorrect prefix length" do
+ Yast::Netmask.FromBits( -1).must_be_empty
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/missing new/yast2-3.0.10/missing
--- old/yast2-3.0.7/missing 2013-08-30 15:02:04.000000000 +0200
+++ new/yast2-3.0.10/missing 2013-10-21 12:10:29.000000000 +0200
@@ -1,10 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.18; # UTC
+scriptversion=2012-06-26.16; # UTC
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard , 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard , 1996.
# 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
@@ -29,61 +29,33 @@
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, 'missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file 'aclocal.m4'
- autoconf touch file 'configure'
- autoheader touch file 'config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all 'Makefile.in' files
- bison create 'y.tab.[ch]', if possible, from existing .[ch]
- flex create 'lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create 'lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create 'y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
@@ -98,228 +70,141 @@
;;
-*)
- echo 1>&2 "$0: Unknown '$1' option"
+ echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running '$TOOL --version' or '$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acinclude.m4' or '${configure_ac}'. You might want
- to install the Automake and Perl packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified '${configure_ac}'. You might want to install the
- Autoconf and GNU m4 packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acconfig.h' or '${configure_ac}'. You might want
- to install the Autoconf and GNU m4 packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
- automake*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
- You might want to install the Automake and Perl packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: '$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get '$1' as part of Autoconf from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: '$1' $msg. You should only need it if
- you modified a '.y' file. You may need the Bison package
- in order for those modifications to take effect. You can get
- Bison from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.l' file. You may need the Flex package
- in order for those modifications to take effect. You can get
- Flex from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- Help2man package in order for those modifications to take
- effect. You can get Help2man from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.texi' or '.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy 'make' (AIX,
- DU, IRIX). You might want to install the Texinfo package or
- the GNU make package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: '$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the 'README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing '$1' program."
- exit 1
- ;;
-esac
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'automa4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-3.0.7/test-driver new/yast2-3.0.10/test-driver
--- old/yast2-3.0.7/test-driver 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.0.10/test-driver 2013-10-21 12:10:31.000000000 +0200
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see http://www.gnu.org/licenses/.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to or send patches to
+# .
+
+# Make unconditional expansion of undefined variables an error. This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+ echo "$0: $*" >&2
+ print_usage >&2
+ exit 2
+}
+
+print_usage ()
+{
+ cat <$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+ estatus=1
+fi
+
+case $estatus:$expect_failure in
+ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+ 0:*) col=$grn res=PASS recheck=no gcopy=no;;
+ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
+ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
+ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
+ *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org