openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
November 2014
- 1 participants
- 1346 discussions
Hello community,
here is the log from the commit of package rubygem-yast-rake for openSUSE:Factory checked in at 2014-11-24 11:11:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-yast-rake (Old)
and /work/SRC/openSUSE:Factory/.rubygem-yast-rake.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-yast-rake"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-yast-rake/rubygem-yast-rake.changes 2014-11-02 16:28:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-yast-rake.new/rubygem-yast-rake.changes 2014-11-24 11:11:04.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Nov 13 09:26:46 UTC 2014 - lslezak(a)suse.cz
+
+- new tasks:
+ - "pot" - collect translatable strings and create *.pot files
+ - "check:pot" - check for common mistakes in translations
+- 0.1.10
+
+-------------------------------------------------------------------
Old:
----
yast-rake-0.1.9.gem
New:
----
yast-rake-0.1.10.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-yast-rake.spec ++++++
--- /var/tmp/diff_new_pack.KwtbK1/_old 2014-11-24 11:11:05.000000000 +0100
+++ /var/tmp/diff_new_pack.KwtbK1/_new 2014-11-24 11:11:05.000000000 +0100
@@ -17,7 +17,7 @@
Name: rubygem-yast-rake
-Version: 0.1.9
+Version: 0.1.10
Release: 0
%define mod_name yast-rake
%define mod_full_name %{mod_name}-%{version}
++++++ yast-rake-0.1.9.gem -> yast-rake-0.1.10.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/VERSION new/VERSION
--- old/VERSION 1970-01-01 01:00:00.000000000 +0100
+++ new/VERSION 1970-01-01 01:00:00.000000000 +0100
@@ -1 +1 @@
-0.1.9
+0.1.10
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/tasks/pot.rake new/lib/tasks/pot.rake
--- old/lib/tasks/pot.rake 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/tasks/pot.rake 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,72 @@
+#--
+# Yast rake
+#
+# Copyright (C) 2014 Novell, Inc.
+# This library is free software; you can redistribute it and/or modify
+# it only under the terms of version 2.1 of the GNU Lesser General Public
+# License as published by the Free Software Foundation.
+#
+# This library 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.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#++
+
+desc "Collect translatable strings and create POT files"
+task :pot do
+ y2tool = "/usr/bin/y2tool"
+ raise "File #{y2tool} is missing, install yast2-devtools" unless File.exist?(y2tool)
+
+ sh "#{y2tool} y2makepot"
+end
+
+namespace :check do
+ # print failed lines and a hint to STDERR
+ def report_pot_errors(lines)
+ $stderr.puts "Failed lines:"
+ $stderr.puts "-" * 30
+ $stderr.puts lines
+ $stderr.puts "-" * 30
+ $stderr.puts
+ $stderr.puts "Note: \#{foo} substitution in translatable strings does" \
+ " not work properly, use"
+ $stderr.puts " _(\"foo %{bar} baz\") % { :bar => bar }"
+ $stderr.puts "or"
+ $stderr.puts " _(\"foo %s baz\") % bar"
+ $stderr.puts
+ end
+
+ # remove gettext keywords and extra quotes
+ def clean_pot_lines(lines)
+ # leave just the text
+ lines.each do |line|
+ line.sub!(/^msgid \"/, "")
+ line.sub!(/^\"/, "")
+ line.sub!(/\"$/, "")
+ end
+ end
+
+ desc "Check translatable strings for common mistakes"
+ # depends on the global "pot" task defined above
+ task :pot => :"rake:pot" do
+ Dir["*.pot"].each do |pot|
+ puts "Checking #{pot}..."
+ lines = File.readlines(pot)
+ # remove comments
+ lines.reject!{ |line| line.match(/^#/) }
+ # Ruby substitution present?
+ lines.select!{ |line| line.include?('#{') }
+
+ clean_pot_lines(lines)
+
+ if !lines.empty?
+ report_pot_errors(lines)
+ raise "ERROR: Ruby substitution found in a translatable string"
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 1970-01-01 01:00:00.000000000 +0100
+++ new/metadata 1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: yast-rake
version: !ruby/object:Gem::Version
- version: 0.1.9
+ version: 0.1.10
platform: ruby
authors:
- Josef Reidinger
autorequire:
bindir: bin
cert_chain: []
-date: 2014-10-29 00:00:00.000000000 Z
+date: 2014-11-13 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: rake
@@ -49,6 +49,7 @@
files:
- lib/yast/rake.rb
- lib/tasks/install.rake
+- lib/tasks/pot.rake
- lib/tasks/test_unit.rake
- lib/tasks/version.rake
- lib/tasks/run.rake
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package mythes for openSUSE:Factory checked in at 2014-11-24 11:10:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mythes (Old)
and /work/SRC/openSUSE:Factory/.mythes.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mythes"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mythes/mythes.changes 2013-12-11 16:15:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mythes.new/mythes.changes 2014-11-24 11:11:02.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Nov 13 12:18:08 UTC 2014 - tchvatal(a)suse.com
+
+- Version bump to 1.2.4:
+ * Fix some clang build warnings
+
+-------------------------------------------------------------------
Old:
----
mythes-1.2.3.tar.gz
New:
----
mythes-1.2.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mythes.spec ++++++
--- /var/tmp/diff_new_pack.QqgPaf/_old 2014-11-24 11:11:03.000000000 +0100
+++ /var/tmp/diff_new_pack.QqgPaf/_new 2014-11-24 11:11:03.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package mythes
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products 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 @@
%define libname libmythes-1_2-0
Name: mythes
-Version: 1.2.3
+Version: 1.2.4
Release: 0
Summary: A simple thesaurus for Libreoffice
License: BSD-2-Clause and MIT
++++++ mythes-1.2.3.tar.gz -> mythes-1.2.4.tar.gz ++++++
++++ 2256 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/mythes-1.2.3/ChangeLog new/mythes-1.2.4/ChangeLog
--- old/mythes-1.2.3/ChangeLog 2012-06-28 12:59:14.000000000 +0200
+++ new/mythes-1.2.4/ChangeLog 2014-06-27 10:16:01.000000000 +0200
@@ -1,3 +1,5 @@
+2014-06-27 Caolán McNamara <cmc at LibO>:
+ * fix some clang scan-build warnings
2012-06-28 Caolán McNamara <cmc at LibO>:
* fix some cppcheck warnings
* fix some parfait warnings
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/mythes-1.2.3/configure.ac new/mythes-1.2.4/configure.ac
--- old/mythes-1.2.3/configure.ac 2012-06-28 12:57:11.000000000 +0200
+++ new/mythes-1.2.4/configure.ac 2014-06-27 10:23:58.000000000 +0200
@@ -4,12 +4,12 @@
m4_pattern_allow
AC_PREREQ(2.59)
-AC_INIT([mythes],[1.2.3],[nemeth(a)openoffice.org])
+AC_INIT([mythes],[1.2.4],[nemeth(a)openoffice.org])
AC_CANONICAL_SYSTEM
AC_SUBST(XFAILED)
-AM_INIT_AUTOMAKE(mythes, 1.2.3)
+AM_INIT_AUTOMAKE(mythes, 1.2.4)
MYTHES_VERSION_MAJOR=`echo $VERSION | cut -d"." -f1`
MYTHES_VERSION_MINOR=`echo $VERSION | cut -d"." -f2`
AC_SUBST(MYTHES_VERSION_MAJOR)
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/mythes-1.2.3/example.cxx new/mythes-1.2.4/example.cxx
--- old/mythes-1.2.3/example.cxx 2012-06-28 19:01:47.000000000 +0200
+++ new/mythes-1.2.4/example.cxx 2014-06-27 10:15:43.000000000 +0200
@@ -8,8 +8,6 @@
extern char * mystrdup(const char * s);
-using namespace std;
-
void myfreelist(char *** list, int n)
{
if (list && (n > 0)) {
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/mythes-1.2.3/m4/libtool.m4 new/mythes-1.2.4/m4/libtool.m4
--- old/mythes-1.2.3/m4/libtool.m4 2012-01-05 07:16:33.000000000 +0100
+++ new/mythes-1.2.4/m4/libtool.m4 2014-01-23 13:34:44.000000000 +0100
@@ -1312,7 +1312,7 @@
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
@@ -1326,7 +1326,10 @@
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -1345,7 +1348,10 @@
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
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/mythes-1.2.3/makefile.mk new/mythes-1.2.4/makefile.mk
--- old/mythes-1.2.3/makefile.mk 2010-06-17 16:00:48.000000000 +0200
+++ new/mythes-1.2.4/makefile.mk 2012-06-28 22:15:04.000000000 +0200
@@ -33,11 +33,12 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
+PRJ = ../../../..
-PRJNAME = lingucomponent
-TARGET = mythes
-LIBTARGET=NO
+PRJNAME=mythes
+TARGET=mythes
+LIBTARGET=YES
+EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
#----- Settings ---------------------------------------------------------
@@ -47,10 +48,8 @@
all_target: ALLTAR
-
-
-SLOFILES= \
- $(SLO)$/mythes.obj
+SLOFILES=\
+ $(SLO)$/mythes.obj
LIB1TARGET= $(SLB)$/lib$(TARGET).lib
LIB1ARCHIV= $(LB)/lib$(TARGET).a
@@ -59,4 +58,3 @@
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
-
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/mythes-1.2.3/mythes.cxx new/mythes-1.2.4/mythes.cxx
--- old/mythes-1.2.3/mythes.cxx 2012-06-28 19:49:50.000000000 +0200
+++ new/mythes-1.2.4/mythes.cxx 2014-06-27 10:13:01.000000000 +0200
@@ -43,12 +43,12 @@
// parse in encoding and index size */
std::vector<char> buffer(MAX_WD_LEN);
char * wrd = &buffer[0];
- int len = readLine(pifile,wrd,MAX_WD_LEN);
+ readLine(pifile,wrd,MAX_WD_LEN);
encoding = mystrdup(wrd);
- len = readLine(pifile,wrd,MAX_WD_LEN);
+ readLine(pifile,wrd,MAX_WD_LEN);
int idxsz = atoi(wrd);
- if (idxsz <= 0 || idxsz > std::numeric_limits<ssize_t>::max() / sizeof(sizeof(char*))) {
+ if (idxsz <= 0 || idxsz > std::numeric_limits<int>::max() / sizeof(sizeof(char*))) {
fprintf(stderr,"Error - bad index %d\n", idxsz);
fclose(pifile);
return 0;
@@ -65,7 +65,7 @@
}
// now parse the remaining lines of the index
- len = readLine(pifile,wrd,MAX_WD_LEN);
+ int len = readLine(pifile,wrd,MAX_WD_LEN);
while (len > 0)
{
int np = mystr_indexOfChar(wrd,'|');
@@ -176,7 +176,7 @@
return 0;
}
int nmeanings = atoi(buf+np+1);
- if (nmeanings < 0 || nmeanings > std::numeric_limits<ssize_t>::max() / sizeof(mentry))
+ if (nmeanings < 0 || nmeanings > std::numeric_limits<int>::max() / sizeof(mentry))
nmeanings = 0;
*pme = (mentry*)(nmeanings ? malloc(nmeanings * sizeof(mentry)) : NULL);
if (!(*pme)) {
@@ -237,16 +237,19 @@
}
// add pos to first synonym to create the definition
- int k = strlen(pos);
- int m = strlen(pm->psyns[0]);
- if ((k+m) < (MAX_WD_LEN - 1)) {
- strncpy(dfn,pos,k);
- *(dfn+k) = ' ';
- strncpy((dfn+k+1),(pm->psyns[0]),m+1);
- pm->defn = mystrdup(dfn);
- } else {
- pm->defn = mystrdup(pm->psyns[0]);
- }
+ if (pm->psyns[0])
+ {
+ int k = strlen(pos);
+ int m = strlen(pm->psyns[0]);
+ if ((k+m) < (MAX_WD_LEN - 1)) {
+ strncpy(dfn,pos,k);
+ *(dfn+k) = ' ';
+ strncpy((dfn+k+1),(pm->psyns[0]),m+1);
+ pm->defn = mystrdup(dfn);
+ } else {
+ pm->defn = mystrdup(pm->psyns[0]);
+ }
+ }
free(pos);
pm++;
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package mdds for openSUSE:Factory checked in at 2014-11-24 11:10:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mdds (Old)
and /work/SRC/openSUSE:Factory/.mdds.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mdds"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mdds/mdds.changes 2014-10-05 20:30:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mdds.new/mdds.changes 2014-11-24 11:10:58.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Nov 13 12:13:18 UTC 2014 - tchvatal(a)suse.com
+
+- Version bump to 0.11.1:
+ * Small bugfixes along 0.11 series
+
+-------------------------------------------------------------------
Old:
----
mdds_0.11.0.tar.bz2
New:
----
mdds_0.11.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mdds.spec ++++++
--- /var/tmp/diff_new_pack.c7q8UE/_old 2014-11-24 11:10:59.000000000 +0100
+++ /var/tmp/diff_new_pack.c7q8UE/_new 2014-11-24 11:10:59.000000000 +0100
@@ -17,7 +17,7 @@
Name: mdds
-Version: 0.11.0
+Version: 0.11.1
Release: 0
Summary: A collection of multi-dimensional data structure and indexing algorithm
License: MIT
++++++ mdds_0.11.0.tar.bz2 -> mdds_0.11.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/NEWS new/mdds_0.11.1/NEWS
--- old/mdds_0.11.0/NEWS 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/NEWS 2014-10-03 02:44:03.000000000 +0200
@@ -1,3 +1,15 @@
+mdds 0.11.1
+
+* all
+
+ * fixed a large number of outstanding defects reported by Coverity
+ Scan.
+
+* multi_type_vector
+
+ * fixed 2 cases of double-free bug in the variant of swap() that
+ allows segmented swapping.
+
mdds 0.11.0
* sorted_string_map (new)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/configure new/mdds_0.11.1/configure
--- old/mdds_0.11.0/configure 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/configure 2014-10-03 02:44:03.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mdds 0.11.0.
+# Generated by GNU Autoconf 2.69 for mdds 0.11.1.
#
# Report bugs to <kohei.yoshida(a)gmail.com>.
#
@@ -579,8 +579,8 @@
# Identity of this package.
PACKAGE_NAME='mdds'
PACKAGE_TARNAME='mdds'
-PACKAGE_VERSION='0.11.0'
-PACKAGE_STRING='mdds 0.11.0'
+PACKAGE_VERSION='0.11.1'
+PACKAGE_STRING='mdds 0.11.1'
PACKAGE_BUGREPORT='kohei.yoshida(a)gmail.com'
PACKAGE_URL=''
@@ -1181,7 +1181,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mdds 0.11.0 to adapt to many kinds of systems.
+\`configure' configures mdds 0.11.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1242,7 +1242,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mdds 0.11.0:";;
+ short | recursive ) echo "Configuration of mdds 0.11.1:";;
esac
cat <<\_ACEOF
@@ -1335,7 +1335,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-mdds configure 0.11.0
+mdds configure 0.11.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1352,7 +1352,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mdds $as_me 0.11.0, which was
+It was created by mdds $as_me 0.11.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -1701,7 +1701,7 @@
-VERSION=0.11.0
+VERSION=0.11.1
PACKAGE_TARNAME=mdds
@@ -2298,7 +2298,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.11.0, which was
+This file was extended by mdds $as_me 0.11.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -2351,7 +2351,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.11.0
+mdds config.status 0.11.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -3455,7 +3455,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.11.0, which was
+This file was extended by mdds $as_me 0.11.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3508,7 +3508,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.11.0
+mdds config.status 0.11.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -4613,7 +4613,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.11.0, which was
+This file was extended by mdds $as_me 0.11.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4666,7 +4666,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.11.0
+mdds config.status 0.11.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -5772,7 +5772,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.11.0, which was
+This file was extended by mdds $as_me 0.11.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5825,7 +5825,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.11.0
+mdds config.status 0.11.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/configure.ac new/mdds_0.11.1/configure.ac
--- old/mdds_0.11.0/configure.ac 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/configure.ac 2014-10-03 02:44:03.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(mdds, 0.11.0, kohei.yoshida(a)gmail.com)
+AC_INIT(mdds, 0.11.1, kohei.yoshida(a)gmail.com)
VERSION=AC_PACKAGE_VERSION
AC_SUBST(VERSION)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/flat_segment_tree.hpp new/mdds_0.11.1/include/mdds/flat_segment_tree.hpp
--- old/mdds_0.11.0/include/mdds/flat_segment_tree.hpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/flat_segment_tree.hpp 2014-10-03 02:44:03.000000000 +0200
@@ -61,6 +61,12 @@
{
return low == r.low && high == r.high;
}
+
+ nonleaf_value_type()
+ : low(0)
+ , high(0)
+ {
+ }
};
struct leaf_value_type
@@ -72,6 +78,12 @@
{
return key == r.key && value == r.value;
}
+
+ leaf_value_type()
+ : key(0)
+ , value(0)
+ {
+ }
};
// Handlers required by the node template class.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/mixed_type_matrix_flag_storage.hpp new/mdds_0.11.1/include/mdds/mixed_type_matrix_flag_storage.hpp
--- old/mdds_0.11.0/include/mdds/mixed_type_matrix_flag_storage.hpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/mixed_type_matrix_flag_storage.hpp 2014-10-03 02:44:03.000000000 +0200
@@ -27,6 +27,7 @@
#ifdef MDDS_UNIT_TEST
#include <iostream>
+#include <boost/io/ios_state.hpp>
#endif
#include "mdds/hash_container/map.hpp"
@@ -85,6 +86,7 @@
}
cout << "flags stored:" << endl;
+ boost::io::ios_flags_saver ifs(cout);
typename flag_store_type::const_iterator itr = m_flags.begin(), itr_end = m_flags.end();
for (; itr != itr_end; ++itr)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/mixed_type_matrix_storage_sparse.inl new/mdds_0.11.1/include/mdds/mixed_type_matrix_storage_sparse.inl
--- old/mdds_0.11.0/include/mdds/mixed_type_matrix_storage_sparse.inl 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/mixed_type_matrix_storage_sparse.inl 2014-10-03 02:44:03.000000000 +0200
@@ -79,7 +79,9 @@
m_rows(r.m_rows),
m_empty_elem(r.m_empty_elem),
m_row_size(r.m_row_size),
- m_col_size(r.m_col_size) {}
+ m_col_size(r.m_col_size),
+ m_numeric(r.m_numeric),
+ m_valid(r.m_valid) {}
~storage_sparse() {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/multi_type_matrix_def.inl new/mdds_0.11.1/include/mdds/multi_type_matrix_def.inl
--- old/mdds_0.11.0/include/mdds/multi_type_matrix_def.inl 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/multi_type_matrix_def.inl 2014-10-03 02:44:03.000000000 +0200
@@ -366,31 +366,31 @@
multi_type_matrix<_String>::transpose()
{
multi_type_matrix tmp(m_size.column, m_size.row);
- for (size_type row = 0; row < m_size.row; ++row)
+ for (size_type old_row_new_col = 0; old_row_new_col < m_size.row; ++old_row_new_col)
{
- for (size_type col = 0; col < m_size.column; ++col)
+ for (size_type old_col_new_row = 0; old_col_new_row < m_size.column; ++old_col_new_row)
{
- switch (get_type(row,col))
+ switch (get_type(old_row_new_col,old_col_new_row))
{
case mtm::element_numeric:
{
double val;
- m_store.get(get_pos(row,col), val);
- tmp.set(col, row, val);
+ m_store.get(get_pos(old_row_new_col,old_col_new_row), val);
+ tmp.set(old_col_new_row, old_row_new_col, val);
}
break;
case mtm::element_boolean:
{
bool val;
- m_store.get(get_pos(row,col), val);
- tmp.set(col, row, val);
+ m_store.get(get_pos(old_row_new_col,old_col_new_row), val);
+ tmp.set(old_col_new_row, old_row_new_col, val);
}
break;
case mtm::element_string:
{
string_type val;
- m_store.get(get_pos(row,col), val);
- tmp.set(col, row, val);
+ m_store.get(get_pos(old_row_new_col,old_col_new_row), val);
+ tmp.set(old_col_new_row, old_row_new_col, val);
}
break;
case mtm::element_empty:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/multi_type_vector_def.inl new/mdds_0.11.1/include/mdds/multi_type_vector_def.inl
--- old/mdds_0.11.0/include/mdds/multi_type_vector_def.inl 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/multi_type_vector_def.inl 2014-10-03 02:44:03.000000000 +0200
@@ -2009,6 +2009,7 @@
{
// Append the new elements to the previous block.
element_block_func::append_values_from_block(*blk_prev->mp_data, *dst_data);
+ element_block_func::resize_block(*dst_data, 0); // prevent double-delete.
blk_prev->m_size += len;
}
else
@@ -2038,6 +2039,7 @@
{
// Merge with the next block.
element_block_func::prepend_values_from_block(*blk_next->mp_data, *dst_data, 0, len);
+ element_block_func::resize_block(*dst_data, 0); // prevent double-delete.
blk_next->m_size += len;
}
else
@@ -2913,7 +2915,7 @@
if (dst_end_pos == blk->m_size)
{
// The new elements will replace the lower part of the block.
-
+ assert(blk->mp_data && "NULL block mp_data");
element_block_func::resize_block(*blk->mp_data, dst_offset);
blk->m_size = dst_offset;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/point_quad_tree.hpp new/mdds_0.11.1/include/mdds/point_quad_tree.hpp
--- old/mdds_0.11.0/include/mdds/point_quad_tree.hpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/point_quad_tree.hpp 2014-10-03 02:44:03.000000000 +0200
@@ -804,7 +804,6 @@
adjust_quad(xrange, yrange, delete_node->southeast, dir_north, insert_list);
set_new_root(xrange, yrange, delete_node->southwest, quad_northeast, insert_list);
break;
- case quad_unspecified:
default:
throw general_error("quadrant for the replacement node is unspecified.");
}
@@ -837,7 +836,6 @@
reinsert_tree(delete_node, quad_southwest, root);
}
break;
- case quad_unspecified:
default:
throw general_error("quadrant for the replacement node is unspecified.");
}
@@ -869,7 +867,6 @@
delete_node->southwest = repl_node->southwest;
repl_node->southwest.reset();
break;
- case quad_unspecified:
default:
throw general_error("quadrant for the replacement node is unspecified.");
}
@@ -1533,7 +1530,6 @@
root->parent = dest;
}
break;
- case quad_unspecified:
default:
throw general_error("reinsert_tree: quadrant unspecified");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/quad_node.hpp new/mdds_0.11.1/include/mdds/quad_node.hpp
--- old/mdds_0.11.0/include/mdds/quad_node.hpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/quad_node.hpp 2014-10-03 02:44:03.000000000 +0200
@@ -232,20 +232,25 @@
node_ptr get_quadrant_node(node_quadrant_t quad) const
{
+ node_ptr ret;
switch (quad)
{
case quad_northeast:
- return northeast;
+ ret = northeast;
+ break;
case quad_northwest:
- return northwest;
+ ret = northwest;
+ break;
case quad_southeast:
- return southeast;
+ ret = southeast;
+ break;
case quad_southwest:
- return southwest;
+ ret = southwest;
+ break;
default:
throw general_error("unknown quadrant type");
}
- return node_ptr();
+ return ret;
}
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/include/mdds/segment_tree.hpp new/mdds_0.11.1/include/mdds/segment_tree.hpp
--- old/mdds_0.11.0/include/mdds/segment_tree.hpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/include/mdds/segment_tree.hpp 2014-10-03 02:44:03.000000000 +0200
@@ -771,15 +771,17 @@
};
template<typename _Key, typename _Data>
-segment_tree<_Key, _Data>::segment_tree() :
- m_valid_tree(false)
+segment_tree<_Key, _Data>::segment_tree()
+ : m_root_node(NULL)
+ , m_valid_tree(false)
{
}
template<typename _Key, typename _Data>
-segment_tree<_Key, _Data>::segment_tree(const segment_tree& r) :
- m_segment_data(r.m_segment_data),
- m_valid_tree(r.m_valid_tree)
+segment_tree<_Key, _Data>::segment_tree(const segment_tree& r)
+ : m_segment_data(r.m_segment_data)
+ , m_root_node(NULL)
+ , m_valid_tree(r.m_valid_tree)
{
if (m_valid_tree)
build_tree();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/misc/sorted_string_map_perf.cpp new/mdds_0.11.1/misc/sorted_string_map_perf.cpp
--- old/mdds_0.11.0/misc/sorted_string_map_perf.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/mdds_0.11.1/misc/sorted_string_map_perf.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -0,0 +1,166 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * Copyright (c) 2014 Kohei Yoshida
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ ************************************************************************/
+
+#include "../include/mdds/sorted_string_map.hpp"
+
+#include <cstdlib>
+#include <iostream>
+#include <cstring>
+
+#include <boost/unordered_map.hpp>
+
+using namespace std;
+
+#include <stdio.h>
+#include <string>
+#include <sys/time.h>
+
+namespace {
+
+class stack_printer
+{
+public:
+ explicit stack_printer(const char* msg) :
+ m_msg(msg)
+ {
+ fprintf(stdout, "%s: --begin\n", m_msg.c_str());
+ m_start_time = getTime();
+ }
+
+ ~stack_printer()
+ {
+ double end_time = getTime();
+ fprintf(stdout, "%s: --end (duration: %g sec)\n", m_msg.c_str(), (end_time - m_start_time));
+ }
+
+ void printTime(int line) const
+ {
+ double fEndTime = getTime();
+ fprintf(stdout, "%s: --(%d) (duration: %g sec)\n", m_msg.c_str(), line, (fEndTime - m_start_time));
+ }
+
+private:
+ double getTime() const
+ {
+ timeval tv;
+ gettimeofday(&tv, NULL);
+ return tv.tv_sec + tv.tv_usec / 1000000.0;
+ }
+
+ ::std::string m_msg;
+ double m_start_time;
+};
+
+}
+
+enum name_type {
+ name_none = 0,
+ name_andy,
+ name_bruce,
+ name_charlie,
+ name_david
+};
+
+typedef mdds::sorted_string_map<name_type> map_type;
+
+map_type::entry entries[] =
+{
+ { "andy", name_andy },
+ { "andy1", name_andy },
+ { "andy13", name_andy },
+ { "bruce", name_bruce },
+ { "charlie", name_charlie },
+ { "david", name_david },
+};
+
+typedef boost::unordered_map<std::string, name_type> hashmap_type;
+
+void init_hash_map(hashmap_type& hm)
+{
+ size_t n = sizeof(entries) / sizeof(entries[0]);
+ const map_type::entry* p = entries;
+ const map_type::entry* pend = p + n;
+ for (; p != pend; ++p)
+ hm.insert(hashmap_type::value_type(p->key, p->value));
+}
+
+void run(map_type& sm, const char* input)
+{
+ name_type type = sm.find(input, strlen(input));
+}
+
+void run_hash(hashmap_type& hm, const char* input)
+{
+ name_type type = name_none;
+ hashmap_type::const_iterator it = hm.find(input);
+ if (it != hm.end())
+ type = it->second;
+}
+
+const char* tests[] = {
+ "andy",
+ "david",
+ "charlie",
+ "andy1",
+ "bruce",
+ "blah",
+ "andy13"
+};
+
+int main()
+{
+ static const size_t repeat_count = 10000000;
+
+ map_type sorted_map(entries, sizeof(entries)/sizeof(entries[0]), name_none);
+ size_t n = sorted_map.size();
+ cout << "entry count = " << n << endl;
+
+ {
+ stack_printer __stack_printer__("sorted entry");
+ for (size_t rep = 0; rep < repeat_count; ++rep)
+ {
+ for (size_t i = 0; i < n; ++i)
+ run(sorted_map, tests[i]);
+ }
+ }
+
+ hashmap_type hm;
+ init_hash_map(hm);
+ {
+ stack_printer __stack_printer__("hash map");
+ for (size_t rep = 0; rep < repeat_count; ++rep)
+ {
+ for (size_t i = 0; i < n; ++i)
+ run_hash(hm, tests[i]);
+ }
+ }
+
+ return EXIT_SUCCESS;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/flat_segment_tree_test.cpp new/mdds_0.11.1/src/flat_segment_tree_test.cpp
--- old/mdds_0.11.0/src/flat_segment_tree_test.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/flat_segment_tree_test.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -1930,65 +1930,73 @@
int main (int argc, char **argv)
{
- cmd_options opt;
- if (!parse_cmd_options(argc, argv, opt))
- return EXIT_FAILURE;
-
- if (opt.test_func)
+ try
{
- fst_test_equality();
- fst_test_copy_ctor();
- fst_test_back_insert();
- {
- typedef unsigned int key_type;
- typedef unsigned short value_type;
- for (value_type i = 0; i <= 100; ++i)
- fst_test_insert_front_back<key_type, value_type>(0, 100, i);
- }
+ cmd_options opt;
+ if (!parse_cmd_options(argc, argv, opt))
+ return EXIT_FAILURE;
+ if (opt.test_func)
{
- typedef int key_type;
- typedef short value_type;
- for (value_type i = 0; i <= 100; ++i)
- fst_test_insert_front_back<key_type, value_type>(0, 100, i);
+ fst_test_equality();
+ fst_test_copy_ctor();
+ fst_test_back_insert();
+ {
+ typedef unsigned int key_type;
+ typedef unsigned short value_type;
+ for (value_type i = 0; i <= 100; ++i)
+ fst_test_insert_front_back<key_type, value_type>(0, 100, i);
+ }
+
+ {
+ typedef int key_type;
+ typedef short value_type;
+ for (value_type i = 0; i <= 100; ++i)
+ fst_test_insert_front_back<key_type, value_type>(0, 100, i);
+ }
+
+ {
+ typedef long key_type;
+ typedef unsigned int value_type;
+ for (value_type i = 0; i <= 100; ++i)
+ fst_test_insert_front_back<key_type, value_type>(0, 100, i);
+ }
+
+ fst_test_leaf_search();
+ fst_test_tree_build();
+ fst_test_tree_search();
+ fst_test_insert_search_mix();
+ fst_test_shift_left();
+ fst_test_shift_left_right_edge();
+ fst_test_shift_left_append_new_segment();
+ fst_test_shift_right_init0();
+ fst_test_shift_right_init999();
+ fst_test_shift_right_bool();
+ fst_test_shift_right_skip_start_node();
+ fst_test_shift_right_all_nodes();
+ fst_test_const_iterator();
+ fst_test_insert_iterator();
+ fst_test_insert_state_changed();
+ fst_test_position_search();
+ fst_test_min_max_default();
+ fst_test_swap();
+ fst_test_clear();
+ fst_test_assignment();
}
+ if (opt.test_perf)
{
- typedef long key_type;
- typedef unsigned int value_type;
- for (value_type i = 0; i <= 100; ++i)
- fst_test_insert_front_back<key_type, value_type>(0, 100, i);
+ fst_perf_test_search_leaf();
+ fst_perf_test_search_tree();
+ fst_perf_test_insert_front_back();
+ fst_perf_test_insert_position();
+ fst_perf_test_position_search();
}
-
- fst_test_leaf_search();
- fst_test_tree_build();
- fst_test_tree_search();
- fst_test_insert_search_mix();
- fst_test_shift_left();
- fst_test_shift_left_right_edge();
- fst_test_shift_left_append_new_segment();
- fst_test_shift_right_init0();
- fst_test_shift_right_init999();
- fst_test_shift_right_bool();
- fst_test_shift_right_skip_start_node();
- fst_test_shift_right_all_nodes();
- fst_test_const_iterator();
- fst_test_insert_iterator();
- fst_test_insert_state_changed();
- fst_test_position_search();
- fst_test_min_max_default();
- fst_test_swap();
- fst_test_clear();
- fst_test_assignment();
}
-
- if (opt.test_perf)
+ catch (const std::exception& e)
{
- fst_perf_test_search_leaf();
- fst_perf_test_search_tree();
- fst_perf_test_insert_front_back();
- fst_perf_test_insert_position();
- fst_perf_test_position_search();
+ fprintf(stdout, "Test failed: %s\n", e.what());
+ return EXIT_FAILURE;
}
fprintf(stdout, "Test finished successfully!\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/mixed_type_matrix_test.cpp new/mdds_0.11.1/src/mixed_type_matrix_test.cpp
--- old/mdds_0.11.0/src/mixed_type_matrix_test.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/mixed_type_matrix_test.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -947,48 +947,56 @@
int main(int argc, char** argv)
{
- cmd_options opt;
- if (!parse_cmd_options(argc, argv, opt))
- return EXIT_FAILURE;
-
- if (opt.test_func)
+ try
{
- run_tests_on_all_density_types(mtm_test_resize);
- run_tests_on_all_density_types(mtm_test_value_store);
- run_tests_on_all_density_types(mtm_test_transpose);
- run_tests_on_all_density_types(mtm_test_assignment);
-
- mtm_test_initial_elements();
- mtm_test_numeric_matrix();
- mtm_test_assign(matrix_density_filled_zero, matrix_density_filled_zero);
- mtm_test_assign(matrix_density_filled_empty, matrix_density_filled_zero);
- mtm_test_assign(matrix_density_filled_zero, matrix_density_filled_empty);
- mtm_test_assign(matrix_density_filled_empty, matrix_density_filled_empty);
-
- run_tests_on_all_density_types(mtm_test_flag_storage);
-
- mtm_test_iterator_access_filled<mx_type::filled_storage_type>(1, 1);
- mtm_test_iterator_access_filled<mx_type::filled_storage_type>(3, 1);
- mtm_test_iterator_access_filled<mx_type::filled_storage_type>(1, 3);
- mtm_test_iterator_access_filled<mx_type::filled_storage_type>(3, 3);
- mtm_test_iterator_access_filled<mx_type::filled_storage_type>(0, 0);
-
- mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(1, 1);
- mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(3, 1);
- mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(1, 3);
- mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(3, 3);
- mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(0, 0);
-
- mtm_test_iterator_access_sparse();
-
- mtm_test_const_iterator();
+ cmd_options opt;
+ if (!parse_cmd_options(argc, argv, opt))
+ return EXIT_FAILURE;
+
+ if (opt.test_func)
+ {
+ run_tests_on_all_density_types(mtm_test_resize);
+ run_tests_on_all_density_types(mtm_test_value_store);
+ run_tests_on_all_density_types(mtm_test_transpose);
+ run_tests_on_all_density_types(mtm_test_assignment);
+
+ mtm_test_initial_elements();
+ mtm_test_numeric_matrix();
+ mtm_test_assign(matrix_density_filled_zero, matrix_density_filled_zero);
+ mtm_test_assign(matrix_density_filled_empty, matrix_density_filled_zero);
+ mtm_test_assign(matrix_density_filled_zero, matrix_density_filled_empty);
+ mtm_test_assign(matrix_density_filled_empty, matrix_density_filled_empty);
+
+ run_tests_on_all_density_types(mtm_test_flag_storage);
+
+ mtm_test_iterator_access_filled<mx_type::filled_storage_type>(1, 1);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_type>(3, 1);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_type>(1, 3);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_type>(3, 3);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_type>(0, 0);
+
+ mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(1, 1);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(3, 1);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(1, 3);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(3, 3);
+ mtm_test_iterator_access_filled<mx_type::filled_storage_zero_type>(0, 0);
+
+ mtm_test_iterator_access_sparse();
+
+ mtm_test_const_iterator();
+ }
+
+ if (opt.test_perf)
+ {
+ mtm_perf_test_storage_creation();
+ mtm_perf_test_storage_set_numeric();
+ mtm_perf_test_iterate_elements();
+ }
}
-
- if (opt.test_perf)
+ catch (const std::exception& e)
{
- mtm_perf_test_storage_creation();
- mtm_perf_test_storage_set_numeric();
- mtm_perf_test_iterate_elements();
+ cout << "Test failed: " << e.what() << endl;
+ return EXIT_FAILURE;
}
cout << "Test finished successfully!" << endl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/multi_type_matrix_test.cpp new/mdds_0.11.1/src/multi_type_matrix_test.cpp
--- old/mdds_0.11.0/src/multi_type_matrix_test.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/multi_type_matrix_test.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -969,34 +969,42 @@
int main (int argc, char **argv)
{
- cmd_options opt;
- if (!parse_cmd_options(argc, argv, opt))
- return EXIT_FAILURE;
-
- if (opt.test_func)
+ try
{
- mtm_test_construction();
- mtm_test_data_insertion();
- mtm_test_data_insertion_multiple();
- mtm_test_set_empty();
- mtm_test_swap();
- mtm_test_transpose();
- mtm_test_resize();
- mtm_test_copy();
- mtm_test_assignment();
- mtm_test_numeric();
- mtm_test_walk();
- mtm_test_custom_string();
- mtm_test_position();
- mtm_test_set_data_via_position();
- }
+ cmd_options opt;
+ if (!parse_cmd_options(argc, argv, opt))
+ return EXIT_FAILURE;
- if (opt.test_perf)
+ if (opt.test_func)
+ {
+ mtm_test_construction();
+ mtm_test_data_insertion();
+ mtm_test_data_insertion_multiple();
+ mtm_test_set_empty();
+ mtm_test_swap();
+ mtm_test_transpose();
+ mtm_test_resize();
+ mtm_test_copy();
+ mtm_test_assignment();
+ mtm_test_numeric();
+ mtm_test_walk();
+ mtm_test_custom_string();
+ mtm_test_position();
+ mtm_test_set_data_via_position();
+ }
+
+ if (opt.test_perf)
+ {
+ mtm_perf_test_storage_creation();
+ mtm_perf_test_storage_set_numeric();
+ mtm_perf_test_iterate_elements();
+ mtm_perf_test_insert_via_position_object();
+ }
+ }
+ catch (const std::exception& e)
{
- mtm_perf_test_storage_creation();
- mtm_perf_test_storage_set_numeric();
- mtm_perf_test_iterate_elements();
- mtm_perf_test_insert_via_position_object();
+ fprintf(stdout, "Test failed: %s\n", e.what());
+ return EXIT_FAILURE;
}
cout << "Test finished successfully!" << endl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/multi_type_vector_test_custom.cpp new/mdds_0.11.1/src/multi_type_vector_test_custom.cpp
--- old/mdds_0.11.0/src/multi_type_vector_test_custom.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/multi_type_vector_test_custom.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -76,6 +76,7 @@
muser_cell() : value(0.0) {}
muser_cell(const muser_cell& r) : value(r.value) {}
muser_cell(double _v) : value(_v) {}
+ ~muser_cell() {}
};
struct date
@@ -1449,6 +1450,69 @@
db2.set(5, new muser_cell(3.3));
db2.swap(3, 4, db1, 3);
+
+ // Another scenario that used to crash on double delete.
+
+ db1.clear();
+ db1.resize(10);
+ db2.clear();
+ db2.resize(10);
+
+ db1.set(2, new muser_cell(4.1));
+ db1.set(3, 4.2);
+ db1.set(4, new muser_cell(4.3));
+
+ db2.set(3, new muser_cell(6.1));
+ db2.set(4, 6.2);
+ db2.set(5, 6.3);
+
+ assert(db1.get<muser_cell*>(2)->value == 4.1);
+ assert(db1.get<double>(3) == 4.2);
+ assert(db1.get<muser_cell*>(4)->value == 4.3);
+
+ assert(db2.get<muser_cell*>(3)->value == 6.1);
+ assert(db2.get<double>(4) == 6.2);
+ assert(db2.get<double>(5) == 6.3);
+
+ db2.swap(4, 4, db1, 4);
+
+ assert(db1.get<muser_cell*>(2)->value == 4.1);
+ assert(db1.get<double>(3) == 4.2);
+ assert(db1.get<double>(4) == 6.2);
+
+ assert(db2.get<muser_cell*>(3)->value == 6.1);
+ assert(db2.get<muser_cell*>(4)->value == 4.3);
+ assert(db2.get<double>(5) == 6.3);
+
+ // One more on double deletion...
+
+ db1.clear();
+ db1.resize(10);
+ db2.clear();
+ db2.resize(10);
+
+ db1.set(0, 2.1);
+ db1.set(1, 2.2);
+ db1.set(2, 2.3);
+ db1.set(3, new muser_cell(4.5));
+
+ db2.set(2, new muser_cell(3.1));
+ db2.set(3, new muser_cell(3.2));
+ db2.set(4, new muser_cell(3.3));
+
+ db1.swap(2, 2, db2, 3);
+
+ assert(db1.get<double>(0) == 2.1);
+ assert(db1.get<double>(1) == 2.2);
+ assert(db1.get<muser_cell*>(2)->value == 3.2);
+ assert(db1.get<muser_cell*>(3)->value == 4.5);
+
+ assert(db2.get<muser_cell*>(2)->value == 3.1);
+ assert(db2.get<double>(3) == 2.3);
+ assert(db2.get<muser_cell*>(4)->value == 3.3);
+
+ assert(db1.check_block_integrity());
+ assert(db2.check_block_integrity());
}
void mtv_test_custom_block_func3()
@@ -1569,17 +1633,25 @@
int main (int argc, char **argv)
{
- mtv_test_types();
- mtv_test_block_identifier();
- mtv_test_basic();
- mtv_test_equality();
- mtv_test_managed_block();
- mtv_test_custom_block_func1();
- mtv_test_transfer();
- mtv_test_swap();
- mtv_test_custom_block_func3();
- mtv_test_release();
- mtv_test_construction_with_array();
+ try
+ {
+ mtv_test_types();
+ mtv_test_block_identifier();
+ mtv_test_basic();
+ mtv_test_equality();
+ mtv_test_managed_block();
+ mtv_test_custom_block_func1();
+ mtv_test_transfer();
+ mtv_test_swap();
+ mtv_test_custom_block_func3();
+ mtv_test_release();
+ mtv_test_construction_with_array();
+ }
+ catch (const std::exception& e)
+ {
+ cout << "Test failed: " << e.what() << endl;
+ return EXIT_FAILURE;
+ }
cout << "Test finished successfully!" << endl;
return EXIT_SUCCESS;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/multi_type_vector_test_default.cpp new/mdds_0.11.1/src/multi_type_vector_test_default.cpp
--- old/mdds_0.11.0/src/multi_type_vector_test_default.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/multi_type_vector_test_default.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -2964,7 +2964,7 @@
it = db.set(6, string("text"));
assert(it->size == 1);
assert(it->type == mtv::element_type_string);
- assert(it->position = 6);
+ assert(it->position == 6);
check = db.begin();
std::advance(check, 2);
assert(it == check);
@@ -5071,40 +5071,48 @@
int main (int argc, char **argv)
{
- mtv_test_types();
- mtv_test_construction();
- mtv_test_basic();
- mtv_test_empty_cells();
- mtv_test_swap();
- mtv_test_equality();
- mtv_test_clone();
- mtv_test_resize();
- mtv_test_erase();
- mtv_test_insert_empty();
- mtv_test_set_cells();
- mtv_test_insert_cells();
- mtv_test_iterators();
- mtv_test_data_iterators();
- mtv_test_non_const_data_iterators();
- mtv_test_iterator_private_data();
- mtv_test_set_return_iterator();
- mtv_test_set2_return_iterator();
- mtv_test_insert_cells_return_iterator();
- mtv_test_set_empty_return_iterator();
- mtv_test_insert_empty_return_iterator();
- mtv_test_set_with_position();
- mtv_test_set_cells_with_position();
- mtv_test_insert_cells_with_position();
- mtv_test_set_empty_with_position();
- mtv_test_insert_empty_with_position();
- mtv_test_position();
- mtv_test_next_position();
- mtv_test_swap_range();
- mtv_test_value_type();
- mtv_test_block_identifier();
- mtv_test_transfer();
- mtv_test_push_back();
- mtv_test_capacity();
+ try
+ {
+ mtv_test_types();
+ mtv_test_construction();
+ mtv_test_basic();
+ mtv_test_empty_cells();
+ mtv_test_swap();
+ mtv_test_equality();
+ mtv_test_clone();
+ mtv_test_resize();
+ mtv_test_erase();
+ mtv_test_insert_empty();
+ mtv_test_set_cells();
+ mtv_test_insert_cells();
+ mtv_test_iterators();
+ mtv_test_data_iterators();
+ mtv_test_non_const_data_iterators();
+ mtv_test_iterator_private_data();
+ mtv_test_set_return_iterator();
+ mtv_test_set2_return_iterator();
+ mtv_test_insert_cells_return_iterator();
+ mtv_test_set_empty_return_iterator();
+ mtv_test_insert_empty_return_iterator();
+ mtv_test_set_with_position();
+ mtv_test_set_cells_with_position();
+ mtv_test_insert_cells_with_position();
+ mtv_test_set_empty_with_position();
+ mtv_test_insert_empty_with_position();
+ mtv_test_position();
+ mtv_test_next_position();
+ mtv_test_swap_range();
+ mtv_test_value_type();
+ mtv_test_block_identifier();
+ mtv_test_transfer();
+ mtv_test_push_back();
+ mtv_test_capacity();
+ }
+ catch (const std::exception& e)
+ {
+ cout << "Test failed: " << e.what() << endl;
+ return EXIT_FAILURE;
+ }
cout << "Test finished successfully!" << endl;
return EXIT_SUCCESS;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/point_quad_tree_test.cpp new/mdds_0.11.1/src/point_quad_tree_test.cpp
--- old/mdds_0.11.0/src/point_quad_tree_test.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/point_quad_tree_test.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -188,7 +188,8 @@
db.remove(x, y);
size_t n = db.size();
cout << "removing node at (" << x << "," << y << ") " << "size after removal: " << n << endl;
- assert(--node_count == n);
+ --node_count;
+ assert(node_count == n);
}
}
}
@@ -454,15 +455,24 @@
int main()
{
- pqt_test_basic();
- pqt_test_insertion_removal();
- pqt_test_remove_root();
- pqt_test_equality();
- pqt_test_assignment();
- pqt_test_swap();
- pqt_test_find();
- pqt_test_node_access();
- assert(get_node_instance_count() == 0);
+ try
+ {
+ pqt_test_basic();
+ pqt_test_insertion_removal();
+ pqt_test_remove_root();
+ pqt_test_equality();
+ pqt_test_assignment();
+ pqt_test_swap();
+ pqt_test_find();
+ pqt_test_node_access();
+ assert(get_node_instance_count() == 0);
+ }
+ catch (const std::exception& e)
+ {
+ cout << "Test failed: " << e.what() << endl;
+ return EXIT_FAILURE;
+ }
+
cout << "Test finished successfully!" << endl;
return EXIT_SUCCESS;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/rectangle_set_test.cpp new/mdds_0.11.1/src/rectangle_set_test.cpp
--- old/mdds_0.11.0/src/rectangle_set_test.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/rectangle_set_test.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -943,24 +943,32 @@
int main(int argc, char** argv)
{
- cmd_options opt;
- if (!parse_cmd_options(argc, argv, opt))
- return EXIT_FAILURE;
- if (opt.test_func)
+ try
{
- rect_test_insertion_removal();
- rect_test_search();
- rect_test_copy_constructor();
- rect_test_assignment();
- rect_test_equality();
- rect_test_search_result_iterator();
- rect_test_invalid_range();
- }
+ cmd_options opt;
+ if (!parse_cmd_options(argc, argv, opt))
+ return EXIT_FAILURE;
+ if (opt.test_func)
+ {
+ rect_test_insertion_removal();
+ rect_test_search();
+ rect_test_copy_constructor();
+ rect_test_assignment();
+ rect_test_equality();
+ rect_test_search_result_iterator();
+ rect_test_invalid_range();
+ }
- if (opt.test_perf)
+ if (opt.test_perf)
+ {
+ rect_test_perf_insertion_fixed_x();
+ rect_test_perf_insertion_fixed_y();
+ }
+ }
+ catch (const std::exception& e)
{
- rect_test_perf_insertion_fixed_x();
- rect_test_perf_insertion_fixed_y();
+ fprintf(stdout, "Test failed: %s\n", e.what());
+ return EXIT_FAILURE;
}
fprintf(stdout, "Test finished successfully!\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds_0.11.0/src/segment_tree_test.cpp new/mdds_0.11.1/src/segment_tree_test.cpp
--- old/mdds_0.11.0/src/segment_tree_test.cpp 2014-09-18 20:06:38.000000000 +0200
+++ new/mdds_0.11.1/src/segment_tree_test.cpp 2014-10-03 02:44:03.000000000 +0200
@@ -1084,36 +1084,43 @@
int main(int argc, char** argv)
{
- cmd_options opt;
- if (!parse_cmd_options(argc, argv, opt))
- return EXIT_FAILURE;
-
- if (opt.test_func)
+ try
{
- st_test_insert_search_removal();
- st_test_copy_constructor();
- st_test_equality();
- st_test_clear();
- st_test_duplicate_insertion();
- st_test_search_on_uneven_tree();
- st_test_aggregated_search_results();
- st_test_dense_tree_search();
- st_test_search_on_empty_set();
- st_test_search_iterator_basic();
- st_test_search_iterator_result_check();
- st_test_empty_result_set();
- }
+ cmd_options opt;
+ if (!parse_cmd_options(argc, argv, opt))
+ return EXIT_FAILURE;
- if (opt.test_perf)
- {
- st_test_perf_insertion();
- }
+ if (opt.test_func)
+ {
+ st_test_insert_search_removal();
+ st_test_copy_constructor();
+ st_test_equality();
+ st_test_clear();
+ st_test_duplicate_insertion();
+ st_test_search_on_uneven_tree();
+ st_test_aggregated_search_results();
+ st_test_dense_tree_search();
+ st_test_search_on_empty_set();
+ st_test_search_iterator_basic();
+ st_test_search_iterator_result_check();
+ st_test_empty_result_set();
+ }
- // At this point, all of the nodes created during the test run should have
- // been destroyed. If not, we are leaking memory.
- typedef segment_tree<uint32_t, void> db_type;
- assert(db_type::node::get_instance_count() == 0);
+ if (opt.test_perf)
+ {
+ st_test_perf_insertion();
+ }
+ // At this point, all of the nodes created during the test run should have
+ // been destroyed. If not, we are leaking memory.
+ typedef segment_tree<uint32_t, void> db_type;
+ assert(db_type::node::get_instance_count() == 0);
+ }
+ catch (const std::exception& e)
+ {
+ fprintf(stdout, "Test failed: %s\n", e.what());
+ return EXIT_FAILURE;
+ }
fprintf(stdout, "Test finished successfully!\n");
return EXIT_SUCCESS;
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package wireless-tools for openSUSE:Factory checked in at 2014-11-24 11:10:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wireless-tools (Old)
and /work/SRC/openSUSE:Factory/.wireless-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wireless-tools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wireless-tools/wireless-tools.changes 2014-02-15 17:23:41.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.wireless-tools.new/wireless-tools.changes 2014-11-24 11:10:56.000000000 +0100
@@ -1,0 +2,10 @@
+Sat Oct 18 19:28:00 UTC 2014 - Led <ledest(a)gmail.com>
+
+- update URL in install_intersil_firmware script
+
+-------------------------------------------------------------------
+Sat Oct 18 18:43:00 UTC 2014 - Led <ledest(a)gmail.com>
+
+- fix bashisms in install_*_scripts
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ suse-files.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/install_acx100_firmware new/install_acx100_firmware
--- old/install_acx100_firmware 2009-03-23 10:15:00.000000000 +0100
+++ new/install_acx100_firmware 2014-10-18 20:40:02.000000000 +0200
@@ -9,7 +9,7 @@
die()
{
- popd
+ cd - >/dev/null
test -d $TMPDIR
rm -rf $TMPDIR
exit 1
@@ -17,7 +17,7 @@
curldie()
{
- popd
+ cd - >/dev/null
test -d $TMPDIR
rm -rf $TMPDIR
echo ""
@@ -40,7 +40,6 @@
TMPDIR=$(mktemp -d /var/tmp/acx100.XXXXXX) || exit 1
-pushd `pwd` >/dev/null
cd $TMPDIR
echo "Downloading firmware"
curl -# -o ${FWFILE} ${URL}/${FWFILE}
@@ -52,7 +51,7 @@
echo
echo "Firmware successfully installed."
-popd >/dev/null
+cd - >/dev/null
rm -rf $TMPDIR
exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/install_intersil_firmware new/install_intersil_firmware
--- old/install_intersil_firmware 2009-03-23 10:15:00.000000000 +0100
+++ new/install_intersil_firmware 2014-10-18 21:27:39.000000000 +0200
@@ -4,12 +4,12 @@
#
# This script tries to download and install the firmware needed to run
# WLAN cards using Intersil's PrismGT chip.
-URL=ftp://ftp.funkwerk-ec.com/pub/old_products/artem/client_cards/11g
+URL=ftp://ftp.funkwerk-ec.com/bintec/old_products/artem/client_cards/11g
FWFILE=CC-54g_v1017.zip
die()
{
- popd
+ cd - >/dev/null
test -d $TMPDIR
rm -rf $TMPDIR
exit 1
@@ -17,7 +17,7 @@
curldie()
{
- popd
+ cd - >/dev/null
test -d $TMPDIR
rm -rf $TMPDIR
echo ""
@@ -40,7 +40,6 @@
TMPDIR=$(mktemp -d /var/tmp/intersil.XXXXXX) || exit 1
-pushd `pwd` >/dev/null
cd $TMPDIR
echo "Downloading firmware"
curl -# -o $FWFILE $URL/$FWFILE || curldie
@@ -50,7 +49,7 @@
echo
echo "Firmware successfully installed."
-popd >/dev/null
+cd - >/dev/null
rm -rf $TMPDIR
exit 0
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rubygem-rspec for openSUSE:Factory checked in at 2014-11-24 11:10:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rspec (Old)
and /work/SRC/openSUSE:Factory/.rubygem-rspec.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rspec"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rspec/rubygem-rspec.changes 2013-10-14 13:06:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-rspec.new/rubygem-rspec.changes 2014-11-24 11:10:55.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Nov 10 10:11:03 UTC 2014 - tboerger(a)suse.com
+
+- Added new ruby macros
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-rspec.spec ++++++
--- /var/tmp/diff_new_pack.d1gLnO/_old 2014-11-24 11:10:55.000000000 +0100
+++ /var/tmp/diff_new_pack.d1gLnO/_new 2014-11-24 11:10:55.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-rspec
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,10 +21,11 @@
Release: 0
%define mod_name rspec
%define mod_full_name %{mod_name}-%{version}
-
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 1
-BuildRequires: rubygem(rdoc) > 3.10
+BuildRequires: %{rubygem gem2rpm}
+BuildRequires: %{rubygem rdoc > 3.10}
+BuildRequires: %{ruby}
+BuildRequires: ruby-macros >= 5
Url: http://github.com/rspec
Source: http://rubygems.org/gems/%{mod_full_name}.gem
Summary: rspec-2.14.1
@@ -32,39 +33,17 @@
Group: Development/Languages/Ruby
%description
-BDD for Ruby
-
-%package doc
-Summary: RDoc documentation for %{mod_name}
-Group: Development/Languages/Ruby
-Requires: %{name} = %{version}
-
-%description doc
-Documentation generated at gem installation time.
-Usually in RDoc and RI formats.
+BDD for Ruby.
%prep
-#gem_unpack
-#if you need patches, apply them here and replace the # with a % sign in the surrounding lines
-#gem_build
%build
%install
-%gem_install -f
-mkdir -p %{buildroot}%{_docdir}/%{name}
-ln -s %{_libdir}/ruby/gems/%{rb_ver}/gems/%{mod_full_name}/License.txt %buildroot/%{_docdir}/%{name}/License.txt
-ln -s %{_libdir}/ruby/gems/%{rb_ver}/gems/%{mod_full_name}/README.md %buildroot/%{_docdir}/%{name}/README.md
-
-%files
-%defattr(-,root,root,-)
-%{_docdir}/%{name}
-%{_libdir}/ruby/gems/%{rb_ver}/cache/%{mod_full_name}.gem
-%{_libdir}/ruby/gems/%{rb_ver}/gems/%{mod_full_name}/
-%{_libdir}/ruby/gems/%{rb_ver}/specifications/%{mod_full_name}.gemspec
-
-%files doc
-%defattr(-,root,root,-)
-%doc %{_libdir}/ruby/gems/%{rb_ver}/doc/%{mod_full_name}/
+%gem_install \
+ --doc-files="License.txt README.md" \
+ -f
+
+%gem_packages
%changelog
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package armadillo for openSUSE:Factory checked in at 2014-11-24 11:09:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/armadillo (Old)
and /work/SRC/openSUSE:Factory/.armadillo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "armadillo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes 2014-11-19 20:30:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.armadillo.new/armadillo.changes 2014-11-24 11:10:19.000000000 +0100
@@ -1,0 +2,10 @@
+Thu Nov 20 19:12:24 UTC 2014 - badshah400(a)gmail.com
+
+- Update to version 4.550 (Singapore Sling Deluxe):
+ + Added matrix exponential function: expmat()
+ + Faster .log_p() and .avg_log_p() functions in the gmm_diag
+ class when compiling with OpenMP enabled
+ + Faster handling of in-place addition/subtraction of
+ expressions with an outer product.
+
+-------------------------------------------------------------------
Old:
----
armadillo-4.500.1.tar.gz
New:
----
armadillo-4.550.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ armadillo.spec ++++++
--- /var/tmp/diff_new_pack.If0TFj/_old 2014-11-24 11:10:20.000000000 +0100
+++ /var/tmp/diff_new_pack.If0TFj/_new 2014-11-24 11:10:20.000000000 +0100
@@ -19,7 +19,7 @@
%define soname libarmadillo4
Name: armadillo
-Version: 4.500.1
+Version: 4.550.0
Release: 0
Summary: Fast C++ matrix library with interfaces to LAPACK and ATLAS
License: MPL-2.0
++++++ armadillo-4.500.1.tar.gz -> armadillo-4.550.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/CMakeLists.txt new/armadillo-4.550.0/CMakeLists.txt
--- old/armadillo-4.500.1/CMakeLists.txt 2014-11-17 09:41:54.000000000 +0100
+++ new/armadillo-4.550.0/CMakeLists.txt 2014-11-21 05:52:24.000000000 +0100
@@ -13,8 +13,8 @@
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(ARMA_MAJOR 4)
-set(ARMA_MINOR 500)
-set(ARMA_PATCH 1)
+set(ARMA_MINOR 550)
+set(ARMA_PATCH 0)
set(ARMADILLO_VERSION ${ARMA_MAJOR}.${ARMA_MINOR}.${ARMA_PATCH})
message(STATUS "Configuring Armadillo ${ARMADILLO_VERSION}")
@@ -95,10 +95,12 @@
set(ARMA_USE_LAPACK true)
message(STATUS "")
- message(STATUS "*** If the MKL or ACML libraries are installed in")
- message(STATUS "*** /opt or /usr/local, make sure the run-time linker can find them.")
+ message(STATUS "*** If the MKL or ACML libraries are installed in non-standard locations such as")
+ message(STATUS "*** /opt/intel/mkl, /opt/intel/composerxe/, /usr/local/intel/mkl")
+ message(STATUS "*** make sure the run-time linker can find them.")
message(STATUS "*** On Linux systems this can be done by editing /etc/ld.so.conf")
message(STATUS "*** or modifying the LD_LIBRARY_PATH environment variable.")
+ message(STATUS "")
message(STATUS "*** On systems with SELinux enabled (eg. Fedora, RHEL),")
message(STATUS "*** you may need to change the SELinux type of all MKL/ACML libraries")
message(STATUS "*** to fix permission problems that may occur during run-time.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/README.txt new/armadillo-4.550.0/README.txt
--- old/armadillo-4.500.1/README.txt 2014-11-17 09:50:18.000000000 +0100
+++ new/armadillo-4.550.0/README.txt 2014-11-17 09:50:18.000000000 +0100
@@ -187,7 +187,7 @@
If you want to use Armadillo without installation,
or you're getting linking errors, compile along these lines:
- g++ example1.cpp -o example1 -O2 -I /home/blah/armadillo-4.500.1/include -DARMA_DONT_USE_WRAPPER -lblas -llapack
+ g++ example1.cpp -o example1 -O2 -I /home/blah/armadillo-4.550.0/include -DARMA_DONT_USE_WRAPPER -lblas -llapack
The above command line assumes that you have unpacked the armadillo archive into /home/blah/
You will need to adjust this for later versions of Armadillo,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/cmake_aux/Modules/ARMA_FindMKL.cmake new/armadillo-4.550.0/cmake_aux/Modules/ARMA_FindMKL.cmake
--- old/armadillo-4.500.1/cmake_aux/Modules/ARMA_FindMKL.cmake 2013-04-18 06:50:43.000000000 +0200
+++ new/armadillo-4.550.0/cmake_aux/Modules/ARMA_FindMKL.cmake 2014-11-18 09:53:49.000000000 +0100
@@ -3,47 +3,130 @@
# MKL_LIBRARIES, the libraries needed to use Intel's implementation of BLAS & LAPACK.
# MKL_FOUND, If false, do not try to use MKL.
-SET(MKL_NAMES ${MKL_NAMES} mkl_lapack)
-SET(MKL_NAMES ${MKL_NAMES} mkl_intel_thread)
-SET(MKL_NAMES ${MKL_NAMES} mkl_core)
-SET(MKL_NAMES ${MKL_NAMES} guide)
-SET(MKL_NAMES ${MKL_NAMES} mkl)
-SET(MKL_NAMES ${MKL_NAMES} iomp5)
-#SET(MKL_NAMES ${MKL_NAMES} pthread)
-
-IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
- SET(MKL_NAMES ${MKL_NAMES} mkl_intel_lp64)
-ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8)
- SET(MKL_NAMES ${MKL_NAMES} mkl_intel)
-ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
+set(MKL_NAMES ${MKL_NAMES} mkl_lapack)
+set(MKL_NAMES ${MKL_NAMES} mkl_intel_thread)
+set(MKL_NAMES ${MKL_NAMES} mkl_core)
+set(MKL_NAMES ${MKL_NAMES} guide)
+set(MKL_NAMES ${MKL_NAMES} mkl)
+set(MKL_NAMES ${MKL_NAMES} iomp5)
+#set(MKL_NAMES ${MKL_NAMES} pthread)
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(MKL_NAMES ${MKL_NAMES} mkl_intel_lp64)
+ set(MKL_ARCH intel64)
+else()
+ set(MKL_NAMES ${MKL_NAMES} mkl_intel)
+ set(MKL_ARCH ia32)
+endif()
+
+set(MKL_ROOT $ENV{MKLROOT} CACHE TYPE STRING)
+
+if(NOT MKL_ROOT)
+ set(MKL_ROOT "/opt/intel/mkl")
+endif()
-FOREACH (MKL_NAME ${MKL_NAMES})
- FIND_LIBRARY(${MKL_NAME}_LIBRARY
+
+foreach (MKL_NAME ${MKL_NAMES})
+ find_library(${MKL_NAME}_LIBRARY
NAMES ${MKL_NAME}
- PATHS /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/intel/lib/intel64 /opt/intel/lib/ia32 /opt/intel/mkl/lib/lib64 /opt/intel/mkl/lib/intel64 /opt/intel/mkl/lib/ia32 /opt/intel/mkl/lib /opt/intel/*/mkl/lib/intel64 /opt/intel/*/mkl/lib/ia32/ /opt/mkl/*/lib/em64t /opt/mkl/*/lib/32 /opt/intel/mkl/*/lib/em64t /opt/intel/mkl/*/lib/32
+ PATHS
+ ${CMAKE_SYSTEM_LIBRARY_PATH}
+ ${MKL_ROOT}/lib/${MKL_ARCH}
+ /usr/lib64
+ /usr/lib
+ /usr/local/lib64
+ /usr/local/lib
+ /opt/intel/composerxe/lib/intel64
+ /opt/intel/composerxe/lib/ia32
+ /opt/intel/composerxe/lib/mkl/lib/intel64
+ /opt/intel/composerxe/lib/mkl/lib/ia32
+ /usr/local/intel/composerxe/lib/intel64
+ /usr/local/intel/composerxe/lib/ia32
+ /usr/local/intel/composerxe/lib/mkl/lib/intel64
+ /usr/local/intel/composerxe/lib/mkl/lib/ia32
+ /opt/intel/lib
+ /opt/intel/lib/intel64
+ /opt/intel/lib/em64t
+ /opt/intel/lib/lib64
+ /opt/intel/lib/ia32
+ /opt/intel/mkl/lib
+ /opt/intel/mkl/lib/intel64
+ /opt/intel/mkl/lib/em64t
+ /opt/intel/mkl/lib/lib64
+ /opt/intel/mkl/lib/ia32
+ /opt/intel/mkl/*/lib
+ /opt/intel/mkl/*/lib/intel64
+ /opt/intel/mkl/*/lib/em64t
+ /opt/intel/mkl/*/lib/lib64
+ /opt/intel/mkl/*/lib/32
+ /opt/intel/*/mkl/lib
+ /opt/intel/*/mkl/lib/intel64
+ /opt/intel/*/mkl/lib/em64t
+ /opt/intel/*/mkl/lib/lib64
+ /opt/intel/*/mkl/lib/ia32
+ /opt/mkl/lib
+ /opt/mkl/lib/intel64
+ /opt/mkl/lib/em64t
+ /opt/mkl/lib/lib64
+ /opt/mkl/lib/ia32
+ /opt/mkl/*/lib
+ /opt/mkl/*/lib/intel64
+ /opt/mkl/*/lib/em64t
+ /opt/mkl/*/lib/lib64
+ /opt/mkl/*/lib/32
+ /usr/local/intel/lib
+ /usr/local/intel/lib/intel64
+ /usr/local/intel/lib/em64t
+ /usr/local/intel/lib/lib64
+ /usr/local/intel/lib/ia32
+ /usr/local/intel/mkl/lib
+ /usr/local/intel/mkl/lib/intel64
+ /usr/local/intel/mkl/lib/em64t
+ /usr/local/intel/mkl/lib/lib64
+ /usr/local/intel/mkl/lib/ia32
+ /usr/local/intel/mkl/*/lib
+ /usr/local/intel/mkl/*/lib/intel64
+ /usr/local/intel/mkl/*/lib/em64t
+ /usr/local/intel/mkl/*/lib/lib64
+ /usr/local/intel/mkl/*/lib/32
+ /usr/local/intel/*/mkl/lib
+ /usr/local/intel/*/mkl/lib/intel64
+ /usr/local/intel/*/mkl/lib/em64t
+ /usr/local/intel/*/mkl/lib/lib64
+ /usr/local/intel/*/mkl/lib/ia32
+ /usr/local/mkl/lib
+ /usr/local/mkl/lib/intel64
+ /usr/local/mkl/lib/em64t
+ /usr/local/mkl/lib/lib64
+ /usr/local/mkl/lib/ia32
+ /usr/local/mkl/*/lib
+ /usr/local/mkl/*/lib/intel64
+ /usr/local/mkl/*/lib/em64t
+ /usr/local/mkl/*/lib/lib64
+ /usr/local/mkl/*/lib/32
)
- SET(TMP_LIBRARY ${${MKL_NAME}_LIBRARY})
+ set(TMP_LIBRARY ${${MKL_NAME}_LIBRARY})
- IF(TMP_LIBRARY)
- SET(MKL_LIBRARIES ${MKL_LIBRARIES} ${TMP_LIBRARY})
- ENDIF(TMP_LIBRARY)
-ENDFOREACH(MKL_NAME)
-
-IF (MKL_LIBRARIES)
- SET(MKL_FOUND "YES")
-ELSE (MKL_LIBRARIES)
- SET(MKL_FOUND "NO")
-ENDIF (MKL_LIBRARIES)
-
-IF (MKL_FOUND)
- IF (NOT MKL_FIND_QUIETLY)
- MESSAGE(STATUS "Found MKL libraries: ${MKL_LIBRARIES}")
- ENDIF (NOT MKL_FIND_QUIETLY)
-ELSE (MKL_FOUND)
- IF (MKL_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find MKL libraries")
- ENDIF (MKL_FIND_REQUIRED)
-ENDIF (MKL_FOUND)
+ if(TMP_LIBRARY)
+ set(MKL_LIBRARIES ${MKL_LIBRARIES} ${TMP_LIBRARY})
+ endif()
+endforeach()
+
+if(MKL_LIBRARIES)
+ set(MKL_FOUND "YES")
+else()
+ set(MKL_FOUND "NO")
+endif()
+
+if(MKL_FOUND)
+ if(NOT MKL_FIND_QUIETLY)
+ message(STATUS "Found MKL libraries: ${MKL_LIBRARIES}")
+ endif()
+else()
+ if(MKL_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find MKL libraries")
+ endif()
+endif()
-# MARK_AS_ADVANCED(MKL_LIBRARY)
+# mark_as_advanced(MKL_LIBRARY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/docs.html new/armadillo-4.550.0/docs.html
--- old/armadillo-4.500.1/docs.html 2014-10-30 05:32:38.000000000 +0100
+++ new/armadillo-4.550.0/docs.html 2014-11-21 05:52:24.000000000 +0100
@@ -101,8 +101,10 @@
</head>
<body>
+
<a name="top"></a>
-<a style="display:scroll; position:fixed; bottom:5px; right:5px;" href="#top"><font size=-1>[top]</font></a>
+<!-- -->
+<a style="display:scroll; position:fixed; bottom:5px; right:5px;" href="#top"><font size=-1>[top]</font></a>
<center>
<table style="text-align: left; width: 80%; margin-left: auto; margin-right: auto;" border="0" cellpadding="0" cellspacing="0">
@@ -114,7 +116,7 @@
<tbody>
<tr>
<td style="text-align: left; vertical-align: top;">
- <font size=+2><b>Reference for Armadillo 4.500</b></font>
+ <font size=+2><b>Reference for Armadillo 4.550</b></font>
<br>
</td>
<td style="text-align: right; vertical-align: top;">
@@ -314,6 +316,7 @@
<a href="#cross">cross</a> ·
<a href="#cumsum">cumsum</a> ·
<a href="#diagmat">diagmat</a> ·
+<a href="#expmat">expmat</a> ·
<a href="#find">find</a> ·
<a href="#find_finite">find_finite</a> ·
<a href="#find_nonfinite">find_nonfinite</a> ·
@@ -6457,6 +6460,7 @@
<li><a href="#clamp">clamp()</a></li>
<li><a href="#conj">conj()</a></li>
<li><a href="#imag_real">imag() / real()</a></li>
+<li><a href="#expmat">expmat()</a></li>
<li><a href="#constants">pre-defined constants</a></li>
</ul>
</li>
@@ -7752,6 +7756,40 @@
<hr class="greyline">
<br>
+<a name="expmat"></a>
+<b>expmat( X )</b>
+<ul>
+<li>Return the matrix exponential of square matrix <i>X</i></li>
+<br>
+<li>If <i>X</i> is not square, a <i>std::logic_error</i> exception is thrown</li>
+<br>
+<li><b>Caveat</b>: the matrix exponential operation is <b>not</b> the same as applying the <a href="#misc_fns">exp()</a> function to each element
+</li>
+<br>
+<li>
+Examples:
+<ul>
+<pre>
+mat A = randu<mat>(5,5);
+
+mat B = expmat(A);
+</pre>
+</ul>
+</li>
+<br>
+<li>
+See also:
+<ul>
+<li><a href="#misc_fns">element-wise functions</a></li>
+<li><a href="http://en.wikipedia.org/wiki/Matrix_exponential">matrix exponential in Wikipedia</a></li>
+<li><a href="http://mathworld.wolfram.com/MatrixExponential.html">matrix exponential in MathWorld</a></li>
+</ul>
+</li>
+<br>
+</ul>
+<hr class="greyline">
+<br>
+
<a name="find"></a>
<b>find( X )</b>
<br><b>find( X, k )</b>
@@ -13317,6 +13355,15 @@
<br>
<ul>
+<a name="added_in_4550"></a>
+<li>Added in 4.550:
+<ul>
+<li>added matrix exponential function: <a href="#expmat">expmat()</a></li>
+<li>faster <i>.log_p()</i> and <i>.avg_log_p()</i> functions in the <a href="#gmm_diag">gmm_diag</a> class when compiling with OpenMP enabled</li>
+<li>faster handling of in-place addition/subtraction of expressions with an outer product
+</ul>
+</li>
+<br>
<a name="added_in_4500"></a>
<li>Added in 4.500:
<ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo new/armadillo-4.550.0/include/armadillo
--- old/armadillo-4.500.1/include/armadillo 2014-10-19 17:34:05.000000000 +0200
+++ new/armadillo-4.550.0/include/armadillo 2014-11-19 02:26:01.000000000 +0100
@@ -242,6 +242,7 @@
#include "armadillo_bits/op_all_bones.hpp"
#include "armadillo_bits/op_normalise_bones.hpp"
#include "armadillo_bits/op_clamp_bones.hpp"
+ #include "armadillo_bits/op_expmat_bones.hpp"
#include "armadillo_bits/glue_times_bones.hpp"
#include "armadillo_bits/glue_mixed_bones.hpp"
@@ -442,6 +443,7 @@
#include "armadillo_bits/fn_cond.hpp"
#include "armadillo_bits/fn_normalise.hpp"
#include "armadillo_bits/fn_clamp.hpp"
+ #include "armadillo_bits/fn_expmat.hpp"
#include "armadillo_bits/fn_speye.hpp"
#include "armadillo_bits/fn_spones.hpp"
@@ -557,6 +559,7 @@
#include "armadillo_bits/op_all_meat.hpp"
#include "armadillo_bits/op_normalise_meat.hpp"
#include "armadillo_bits/op_clamp_meat.hpp"
+ #include "armadillo_bits/op_expmat_meat.hpp"
#include "armadillo_bits/glue_times_meat.hpp"
#include "armadillo_bits/glue_mixed_meat.hpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/Proxy.hpp new/armadillo-4.550.0/include/armadillo_bits/Proxy.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/Proxy.hpp 2014-09-02 09:32:08.000000000 +0200
+++ new/armadillo-4.550.0/include/armadillo_bits/Proxy.hpp 2014-11-18 05:16:24.000000000 +0100
@@ -1318,6 +1318,54 @@
+template<typename T1>
+class Proxy< Op<T1, op_vectorise_cube_col> >
+ {
+ public:
+
+ typedef typename T1::elem_type elem_type;
+ typedef typename get_pod_type<elem_type>::result pod_type;
+ typedef Mat<elem_type> stored_type;
+ typedef const elem_type* ea_type;
+ typedef const Mat<elem_type>& aligned_ea_type;
+
+ static const bool prefer_at_accessor = false;
+ static const bool has_subview = true;
+ static const bool is_fixed = false;
+ static const bool fake_mat = true;
+
+ static const bool is_row = false;
+ static const bool is_col = true;
+
+ arma_aligned const unwrap_cube<T1> U;
+ arma_aligned const Mat<elem_type> Q;
+
+ inline explicit Proxy(const Op<T1, op_vectorise_cube_col>& A)
+ : U(A.m)
+ , Q(const_cast<elem_type*>(U.M.memptr()), U.M.n_elem, 1, false, false)
+ {
+ arma_extra_debug_sigprint();
+ }
+
+ arma_inline uword get_n_rows() const { return Q.n_rows; }
+ arma_inline uword get_n_cols() const { return 1; }
+ arma_inline uword get_n_elem() const { return Q.n_elem; }
+
+ arma_inline elem_type operator[] (const uword i) const { return Q[i]; }
+ arma_inline elem_type at (const uword row, const uword) const { return Q[row]; }
+ arma_inline elem_type at_alt (const uword i) const { return Q.at_alt(i); }
+
+ arma_inline ea_type get_ea() const { return Q.memptr(); }
+ arma_inline aligned_ea_type get_aligned_ea() const { return Q; }
+
+ template<typename eT2>
+ arma_inline bool is_alias(const Mat<eT2>&) const { return false; }
+
+ arma_inline bool is_aligned() const { return memory::is_aligned(Q.memptr()); }
+ };
+
+
+
template<typename T1, typename T2, typename glue_type>
class Proxy< Glue<T1, T2, glue_type> >
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/arma_version.hpp new/armadillo-4.550.0/include/armadillo_bits/arma_version.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/arma_version.hpp 2014-11-17 09:41:54.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/arma_version.hpp 2014-11-21 05:52:24.000000000 +0100
@@ -12,9 +12,9 @@
#define ARMA_VERSION_MAJOR 4
-#define ARMA_VERSION_MINOR 500
-#define ARMA_VERSION_PATCH 1
-#define ARMA_VERSION_NAME "Singapore Sling"
+#define ARMA_VERSION_MINOR 550
+#define ARMA_VERSION_PATCH 0
+#define ARMA_VERSION_NAME "Singapore Sling Deluxe"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/config.hpp new/armadillo-4.550.0/include/armadillo_bits/config.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/config.hpp 2014-11-02 02:47:17.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/config.hpp 2014-11-18 04:30:56.000000000 +0100
@@ -31,7 +31,7 @@
// #define ARMA_USE_WRAPPER
//// Comment out the above line if you're getting linking errors when compiling your programs,
-//// or if you prefer to directly link with LAPACK, BLAS or ARPACK.
+//// or if you prefer to directly link with LAPACK, BLAS or ARPACK instead of the Armadillo runtime library.
//// You will then need to link your programs directly with -llapack -lblas instead of -larmadillo
// #define ARMA_BLAS_CAPITALS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/config.hpp.cmake new/armadillo-4.550.0/include/armadillo_bits/config.hpp.cmake
--- old/armadillo-4.500.1/include/armadillo_bits/config.hpp.cmake 2014-11-02 02:47:17.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/config.hpp.cmake 2014-11-18 04:30:56.000000000 +0100
@@ -31,7 +31,7 @@
#cmakedefine ARMA_USE_WRAPPER
//// Comment out the above line if you're getting linking errors when compiling your programs,
-//// or if you prefer to directly link with LAPACK, BLAS or ARPACK.
+//// or if you prefer to directly link with LAPACK, BLAS or ARPACK instead of the Armadillo runtime library.
//// You will then need to link your programs directly with -llapack -lblas instead of -larmadillo
// #define ARMA_BLAS_CAPITALS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/fn_expmat.hpp new/armadillo-4.550.0/include/armadillo_bits/fn_expmat.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/fn_expmat.hpp 1970-01-01 01:00:00.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/fn_expmat.hpp 2014-11-19 06:36:59.000000000 +0100
@@ -0,0 +1,23 @@
+// Copyright (C) 2014 Conrad Sanderson
+// Copyright (C) 2014 NICTA (www.nicta.com.au)
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+
+template<typename T1>
+inline
+typename
+enable_if2
+ <
+ is_real<typename T1::pod_type>::value,
+ const Op<T1,op_expmat>
+ >::result
+expmat(const Base<typename T1::elem_type,T1>& A)
+ {
+ arma_extra_debug_sigprint();
+
+ return Op<T1,op_expmat>( A.get_ref() );
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/fn_vectorise.hpp new/armadillo-4.550.0/include/armadillo_bits/fn_vectorise.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/fn_vectorise.hpp 2013-08-01 10:47:00.000000000 +0200
+++ new/armadillo-4.550.0/include/armadillo_bits/fn_vectorise.hpp 2014-11-18 05:16:24.000000000 +0100
@@ -1,5 +1,5 @@
-// Copyright (C) 2013 Conrad Sanderson
-// Copyright (C) 2013 NICTA (www.nicta.com.au)
+// Copyright (C) 2013-2014 Conrad Sanderson
+// Copyright (C) 2013-2014 NICTA (www.nicta.com.au)
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -46,5 +46,18 @@
}
+
+//! experimental: vectorisation of cubes
+template<typename T1>
+inline
+const Op<T1, op_vectorise_cube_col>
+vectorise(const BaseCube<typename T1::elem_type, T1>& X)
+ {
+ arma_extra_debug_sigprint();
+
+ return Op<T1, op_vectorise_cube_col>(X.get_ref());
+ }
+
+
//! @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/glue_times_meat.hpp new/armadillo-4.550.0/include/armadillo_bits/glue_times_meat.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/glue_times_meat.hpp 2014-05-02 08:05:11.000000000 +0200
+++ new/armadillo-4.550.0/include/armadillo_bits/glue_times_meat.hpp 2014-11-07 05:25:21.000000000 +0100
@@ -473,6 +473,17 @@
typedef typename T1::elem_type eT;
typedef typename get_pod_type<eT>::result T;
+ if( (is_outer_product<T1>::value) || (has_op_inv<T1>::value) || (has_op_inv<T2>::value) )
+ {
+ // partial workaround for corner cases
+
+ const Mat<eT> tmp(X);
+
+ if(sign > sword(0)) { out += tmp; } else { out -= tmp; }
+
+ return;
+ }
+
const partial_unwrap_check<T1> tmp1(X.A, out);
const partial_unwrap_check<T2> tmp2(X.B, out);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/gmm_diag_bones.hpp new/armadillo-4.550.0/include/armadillo_bits/gmm_diag_bones.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/gmm_diag_bones.hpp 2014-09-01 03:14:30.000000000 +0200
+++ new/armadillo-4.550.0/include/armadillo_bits/gmm_diag_bones.hpp 2014-11-21 11:57:06.000000000 +0100
@@ -48,15 +48,17 @@
#if defined(_OPENMP)
struct arma_omp_state
{
- const int dynamic_state;
+ const int orig_dynamic_state;
- inline arma_omp_state() : dynamic_state(omp_get_dynamic()) {}
- inline ~arma_omp_state() { omp_set_dynamic(dynamic_state); }
+ inline arma_omp_state() : orig_dynamic_state(omp_get_dynamic()) { omp_set_dynamic(0); }
+ inline ~arma_omp_state() { omp_set_dynamic(orig_dynamic_state); }
};
-
+#else
+ struct arma_omp_state {};
#endif
+
template<typename eT>
class gmm_diag
{
@@ -142,7 +144,9 @@
inline void init(const uword in_n_dim, const uword in_n_gaus);
inline void init_constants();
-
+
+ inline umat internal_gen_boundaries(const uword N) const;
+
inline eT internal_scalar_log_p(const eT* x ) const;
inline eT internal_scalar_log_p(const eT* x, const uword gaus_id) const;
@@ -172,9 +176,9 @@
inline bool em_iterate(const Mat<eT>& X, const uword max_iter, const eT var_floor, const bool verbose);
- inline void em_update_params(const Mat<eT>& X, const field<uvec>& t_boundary, field< Mat<eT> >& t_acc_means, field< Mat<eT> >& t_acc_dcovs, field< Col<eT> >& t_acc_norm_lhoods, field< Col<eT> >& t_gaus_log_lhoods, Col<eT>& t_progress_log_lhoods);
+ inline void em_update_params(const Mat<eT>& X, const umat& boundaries, field< Mat<eT> >& t_acc_means, field< Mat<eT> >& t_acc_dcovs, field< Col<eT> >& t_acc_norm_lhoods, field< Col<eT> >& t_gaus_log_lhoods, Col<eT>& t_progress_log_lhoods);
- inline void em_generate_acc(const Mat<eT>& X, const uvec& boundary, Mat<eT>& acc_means, Mat<eT>& acc_dcovs, Col<eT>& acc_norm_lhoods, Col<eT>& gaus_log_lhoods, eT& progress_log_lhood) const;
+ inline void em_generate_acc(const Mat<eT>& X, const uword start_index, const uword end_index, Mat<eT>& acc_means, Mat<eT>& acc_dcovs, Col<eT>& acc_norm_lhoods, Col<eT>& gaus_log_lhoods, eT& progress_log_lhood) const;
inline void em_fix_params(const eT var_floor);
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/gmm_diag_meat.hpp new/armadillo-4.550.0/include/armadillo_bits/gmm_diag_meat.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/gmm_diag_meat.hpp 2014-10-07 15:00:29.000000000 +0200
+++ new/armadillo-4.550.0/include/armadillo_bits/gmm_diag_meat.hpp 2014-11-21 11:57:06.000000000 +0100
@@ -826,6 +826,56 @@
template<typename eT>
+inline
+umat
+gmm_diag<eT>::internal_gen_boundaries(const uword N) const
+ {
+ arma_extra_debug_sigprint();
+
+ #if defined(_OPENMP)
+ // const uword n_cores = 0;
+ const uword n_cores = uword(omp_get_num_procs());
+ const uword n_threads = (n_cores > 0) ? ( (n_cores <= N) ? n_cores : 1 ) : 1;
+ #else
+ // static const uword n_cores = 0;
+ static const uword n_threads = 1;
+ #endif
+
+ // get_stream_err2() << "gmm_diag::internal_gen_boundaries(): n_cores: " << n_cores << '\n';
+ // get_stream_err2() << "gmm_diag::internal_gen_boundaries(): n_threads: " << n_threads << '\n';
+
+ umat boundaries(2, n_threads);
+
+ if(N > 0)
+ {
+ const uword chunk_size = N / n_threads;
+
+ uword count = 0;
+
+ for(uword t=0; t<n_threads; t++)
+ {
+ boundaries.at(0,t) = count;
+
+ count += chunk_size;
+
+ boundaries.at(1,t) = count-1;
+ }
+
+ boundaries.at(1,n_threads-1) = N - 1;
+ }
+ else
+ {
+ boundaries.zeros();
+ }
+
+ // get_stream_err2() << "gmm_diag::internal_gen_boundaries(): boundaries: " << '\n' << boundaries << '\n';
+
+ return boundaries;
+ }
+
+
+
+template<typename eT>
arma_hot
inline
eT
@@ -914,11 +964,40 @@
Row<eT> out(N);
- eT* out_mem = out.memptr();
-
- for(uword i=0; i < N; ++i)
+ if(N > 0)
{
- out_mem[i] = internal_scalar_log_p( X.colptr(i) );
+ #if defined(_OPENMP)
+ {
+ const arma_omp_state save_omp_state;
+
+ const umat boundaries = internal_gen_boundaries(N);
+
+ const uword n_threads = boundaries.n_cols;
+
+ #pragma omp parallel for
+ for(uword t=0; t < n_threads; ++t)
+ {
+ const uword start_index = boundaries.at(0,t);
+ const uword end_index = boundaries.at(1,t);
+
+ eT* out_mem = out.memptr();
+
+ for(uword i=start_index; i <= end_index; ++i)
+ {
+ out_mem[i] = internal_scalar_log_p( X.colptr(i) );
+ }
+ }
+ }
+ #else
+ {
+ eT* out_mem = out.memptr();
+
+ for(uword i=0; i < N; ++i)
+ {
+ out_mem[i] = internal_scalar_log_p( X.colptr(i) );
+ }
+ }
+ #endif
}
return out;
@@ -941,11 +1020,40 @@
Row<eT> out(N);
- eT* out_mem = out.memptr();
-
- for(uword i=0; i < N; ++i)
+ if(N > 0)
{
- out_mem[i] = internal_scalar_log_p( X.colptr(i), gaus_id );
+ #if defined(_OPENMP)
+ {
+ const arma_omp_state save_omp_state;
+
+ const umat boundaries = internal_gen_boundaries(N);
+
+ const uword n_threads = boundaries.n_cols;
+
+ #pragma omp parallel for
+ for(uword t=0; t < n_threads; ++t)
+ {
+ const uword start_index = boundaries.at(0,t);
+ const uword end_index = boundaries.at(1,t);
+
+ eT* out_mem = out.memptr();
+
+ for(uword i=start_index; i <= end_index; ++i)
+ {
+ out_mem[i] = internal_scalar_log_p( X.colptr(i), gaus_id );
+ }
+ }
+ }
+ #else
+ {
+ eT* out_mem = out.memptr();
+
+ for(uword i=0; i < N; ++i)
+ {
+ out_mem[i] = internal_scalar_log_p( X.colptr(i), gaus_id );
+ }
+ }
+ #endif
}
return out;
@@ -962,17 +1070,63 @@
arma_extra_debug_sigprint();
arma_debug_check( (X.n_rows != means.n_rows), "gmm_diag::avg_log_p(): incompatible dimensions" );
+
+ const uword N = X.n_cols;
- running_mean_scalar<eT> running_mean;
+ if(N == 0) { return (-Datum<eT>::inf); }
- const uword N = X.n_cols;
- for(uword i=0; i<N; ++i)
+ #if defined(_OPENMP)
{
- running_mean( internal_scalar_log_p( X.colptr(i) ) );
+ const arma_omp_state save_omp_state;
+
+ const umat boundaries = internal_gen_boundaries(N);
+
+ const uword n_threads = boundaries.n_cols;
+
+ field< running_mean_scalar<eT> > t_running_means(n_threads);
+
+
+ #pragma omp parallel for
+ for(uword t=0; t < n_threads; ++t)
+ {
+ const uword start_index = boundaries.at(0,t);
+ const uword end_index = boundaries.at(1,t);
+
+ running_mean_scalar<eT>& current_running_mean = t_running_means[t];
+
+ for(uword i=start_index; i <= end_index; ++i)
+ {
+ current_running_mean( internal_scalar_log_p( X.colptr(i) ) );
+ }
+ }
+
+
+ eT avg = eT(0);
+
+ for(uword t=0; t < n_threads; ++t)
+ {
+ running_mean_scalar<eT>& current_running_mean = t_running_means[t];
+
+ const eT w = eT(current_running_mean.count()) / eT(N);
+
+ avg += w * current_running_mean.mean();
+ }
+
+ return avg;
}
-
- return ( (N > 0) ? running_mean.mean() : (-Datum<eT>::inf) );
+ #else
+ {
+ running_mean_scalar<eT> running_mean;
+
+ for(uword i=0; i<N; ++i)
+ {
+ running_mean( internal_scalar_log_p( X.colptr(i) ) );
+ }
+
+ return running_mean.mean();
+ }
+ #endif
}
@@ -988,16 +1142,64 @@
arma_debug_check( (X.n_rows != means.n_rows), "gmm_diag::avg_log_p(): incompatible dimensions" );
arma_debug_check( (gaus_id >= means.n_cols), "gmm_diag::avg_log_p(): specified gaussian is out of range" );
- running_mean_scalar<eT> running_mean;
-
const uword N = X.n_cols;
- for(uword i=0; i<N; ++i)
+ if(N == 0) { return (-Datum<eT>::inf); }
+
+
+ #if defined(_OPENMP)
+ {
+ const arma_omp_state save_omp_state;
+
+ const umat boundaries = internal_gen_boundaries(N);
+
+ const uword n_threads = boundaries.n_cols;
+
+ field< running_mean_scalar<eT> > t_running_means(n_threads);
+
+
+ #pragma omp parallel for
+ for(uword t=0; t < n_threads; ++t)
+ {
+ const uword start_index = boundaries.at(0,t);
+ const uword end_index = boundaries.at(1,t);
+
+ running_mean_scalar<eT>& current_running_mean = t_running_means[t];
+
+ for(uword i=start_index; i <= end_index; ++i)
+ {
+ current_running_mean( internal_scalar_log_p( X.colptr(i), gaus_id) );
+ }
+ }
+
+
+ eT avg = eT(0);
+
+ for(uword t=0; t < n_threads; ++t)
+ {
+ running_mean_scalar<eT>& current_running_mean = t_running_means[t];
+
+ const eT w = eT(current_running_mean.count()) / eT(N);
+
+ avg += w * current_running_mean.mean();
+ }
+
+ return avg;
+ }
+ #else
{
- running_mean( internal_scalar_log_p( X.colptr(i), gaus_id ) );
+ running_mean_scalar<eT> running_mean;
+
+ const uword N = X.n_cols;
+
+ for(uword i=0; i<N; ++i)
+ {
+ running_mean( internal_scalar_log_p( X.colptr(i), gaus_id ) );
+ }
+
+ return running_mean.mean();
}
-
- return ( (N > 0) ? running_mean.mean() : (-Datum<eT>::inf) );
+ #endif
}
@@ -1376,41 +1578,19 @@
#if defined(_OPENMP)
const arma_omp_state save_omp_state;
- omp_set_dynamic(0);
+ const umat boundaries = internal_gen_boundaries(X.n_cols);
- //const uword n_cores = 0;
- const uword n_cores = uword(omp_get_num_procs());
- const uword n_threads = (n_cores > 0) ? ( (n_cores <= X.n_cols) ? n_cores : 1 ) : 1;
+ const uword n_threads = boundaries.n_cols;
field< field< running_mean_vec<eT> > > t_running_means(n_threads);
for(uword t=0; t < n_threads; ++t) { t_running_means[t].set_size(N_gaus); }
- field< uvec > t_boundary(n_threads);
-
- const uword chunk_size = X.n_cols / n_threads;
-
- uword vec_count = 0;
-
- for(uword t=0; t<n_threads; t++)
- {
- t_boundary[t].set_size(2);
-
- t_boundary[t][0] = vec_count;
-
- vec_count += chunk_size;
-
- t_boundary[t][1] = vec_count-1;
- }
-
- t_boundary[n_threads-1][1] = X.n_cols - 1;
-
vec tmp_mean(N_dims);
if(verbose)
{
- get_stream_err2() << "gmm_diag::learn(): k-means: n_threads: " << n_threads << '\n';
- get_stream_err2() << "gmm_diag::learn(): k-means: chunk_size: " << chunk_size << '\n';
+ get_stream_err2() << "gmm_diag::learn(): k-means: n_threads: " << n_threads << '\n';
}
#endif
@@ -1430,11 +1610,9 @@
#pragma omp parallel for
for(uword t=0; t < n_threads; ++t)
{
- const uvec& boundary = t_boundary[t];
-
field< running_mean_vec<eT> >& current_running_means = t_running_means[t];
- km_update_stats<dist_id>(X, boundary[0], boundary[1], old_means, current_running_means);
+ km_update_stats<dist_id>(X, boundaries.at(0,t), boundaries.at(1,t), old_means, current_running_means);
}
@@ -1642,21 +1820,11 @@
#if defined(_OPENMP)
const arma_omp_state save_omp_state;
-
- omp_set_dynamic(0);
-
- // const uword n_cores = 0;
- const uword n_cores = uword(omp_get_num_procs());
- const uword n_threads = (n_cores > 0) ? ( (n_cores <= X.n_cols) ? n_cores : 1 ) : 1;
- #else
- // static const uword n_cores = 0;
- static const uword n_threads = 1;
#endif
- // get_stream_err2() << "n_cores: " << n_cores << '\n';
- // get_stream_err2() << "n_threads: " << n_threads << '\n';
+ const umat boundaries = internal_gen_boundaries(X.n_cols);
- field< uvec > t_boundary(n_threads);
+ const uword n_threads = boundaries.n_cols;
field< Mat<eT> > t_acc_means(n_threads);
field< Mat<eT> > t_acc_dcovs(n_threads);
@@ -1668,8 +1836,6 @@
for(uword t=0; t<n_threads; t++)
{
- t_boundary[t].set_size(2);
-
t_acc_means[t].set_size(N_dims, N_gaus);
t_acc_dcovs[t].set_size(N_dims, N_gaus);
@@ -1677,29 +1843,11 @@
t_gaus_log_lhoods[t].set_size(N_gaus);
}
- const uword chunk_size = X.n_cols / n_threads;
-
- uword count = 0;
-
- for(uword t=0; t<n_threads; t++)
- {
- t_boundary[t][0] = count;
-
- count += chunk_size;
-
- t_boundary[t][1] = count-1;
- }
-
- t_boundary[n_threads-1][1] = X.n_cols - 1;
-
- // get_stream_err2() << "t_boundary.n_elem: " << t_boundary.n_elem << '\n';
- // t_boundary.print("t_boundary:");
#if defined(_OPENMP)
if(verbose)
{
- get_stream_err2() << "gmm_diag::learn(): EM: n_threads: " << n_threads << '\n';
- get_stream_err2() << "gmm_diag::learn(): EM: chunk_size: " << chunk_size << '\n';
+ get_stream_err2() << "gmm_diag::learn(): EM: n_threads: " << n_threads << '\n';
}
#endif
@@ -1709,7 +1857,7 @@
{
init_constants();
- em_update_params(X, t_boundary, t_acc_means, t_acc_dcovs, t_acc_norm_lhoods, t_gaus_log_lhoods, t_progress_log_lhood);
+ em_update_params(X, boundaries, t_acc_means, t_acc_dcovs, t_acc_norm_lhoods, t_gaus_log_lhoods, t_progress_log_lhood);
em_fix_params(var_floor);
@@ -1754,7 +1902,7 @@
gmm_diag<eT>::em_update_params
(
const Mat<eT>& X,
- const field< uvec >& t_boundary,
+ const umat& boundaries,
field< Mat<eT> >& t_acc_means,
field< Mat<eT> >& t_acc_dcovs,
field< Col<eT> >& t_acc_norm_lhoods,
@@ -1764,7 +1912,7 @@
{
arma_extra_debug_sigprint();
- const uword n_threads = t_boundary.n_elem;
+ const uword n_threads = boundaries.n_cols;
// em_generate_acc() is the "map" operation, which produces partial accumulators for means, diagonal covariances and hefts
@@ -1774,19 +1922,18 @@
#pragma omp parallel for
for(uword t=0; t<n_threads; t++)
{
- const uvec& boundary = t_boundary[t];
- Mat<eT>& acc_means = t_acc_means[t];
- Mat<eT>& acc_dcovs = t_acc_dcovs[t];
- Col<eT>& acc_norm_lhoods = t_acc_norm_lhoods[t];
- Col<eT>& gaus_log_lhoods = t_gaus_log_lhoods[t];
- eT& progress_log_lhood = t_progress_log_lhood[t];
+ Mat<eT>& acc_means = t_acc_means[t];
+ Mat<eT>& acc_dcovs = t_acc_dcovs[t];
+ Col<eT>& acc_norm_lhoods = t_acc_norm_lhoods[t];
+ Col<eT>& gaus_log_lhoods = t_gaus_log_lhoods[t];
+ eT& progress_log_lhood = t_progress_log_lhood[t];
- em_generate_acc(X, boundary, acc_means, acc_dcovs, acc_norm_lhoods, gaus_log_lhoods, progress_log_lhood);
+ em_generate_acc(X, boundaries.at(0,t), boundaries.at(1,t), acc_means, acc_dcovs, acc_norm_lhoods, gaus_log_lhoods, progress_log_lhood);
}
}
#else
{
- em_generate_acc(X, t_boundary[0], t_acc_means[0], t_acc_dcovs[0], t_acc_norm_lhoods[0], t_gaus_log_lhoods[0], t_progress_log_lhood[0]);
+ em_generate_acc(X, boundaries.at(0,0), boundaries.at(1,0), t_acc_means[0], t_acc_dcovs[0], t_acc_norm_lhoods[0], t_gaus_log_lhoods[0], t_progress_log_lhood[0]);
}
#endif
@@ -1842,7 +1989,8 @@
gmm_diag<eT>::em_generate_acc
(
const Mat<eT>& X,
- const uvec& boundary,
+ const uword start_index,
+ const uword end_index,
Mat<eT>& acc_means,
Mat<eT>& acc_dcovs,
Col<eT>& acc_norm_lhoods,
@@ -1867,8 +2015,6 @@
const eT* log_hefts_mem = log_hefts.memptr();
eT* gaus_log_lhoods_mem = gaus_log_lhoods.memptr();
- const uword start_index = boundary[0];
- const uword end_index = boundary[1];
for(uword i=start_index; i <= end_index; i++)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/op_expmat_bones.hpp new/armadillo-4.550.0/include/armadillo_bits/op_expmat_bones.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/op_expmat_bones.hpp 1970-01-01 01:00:00.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/op_expmat_bones.hpp 2014-11-19 02:26:01.000000000 +0100
@@ -0,0 +1,25 @@
+// Copyright (C) 2014 Conrad Sanderson
+// Copyright (C) 2014 NICTA (www.nicta.com.au)
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+
+//! \addtogroup op_expmat
+//! @{
+
+
+
+class op_expmat
+ {
+ public:
+
+ template<typename T1>
+ inline static void apply(Mat<typename T1::elem_type>& out, const Op<T1,op_expmat>& expr);
+ };
+
+
+
+//! @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/op_expmat_meat.hpp new/armadillo-4.550.0/include/armadillo_bits/op_expmat_meat.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/op_expmat_meat.hpp 1970-01-01 01:00:00.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/op_expmat_meat.hpp 2014-11-19 06:36:59.000000000 +0100
@@ -0,0 +1,85 @@
+// Copyright (C) 2014 Conrad Sanderson
+// Copyright (C) 2014 NICTA (www.nicta.com.au)
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+
+//! \addtogroup op_expmat
+//! @{
+
+
+//! implementation based on:
+//! Cleve Moler, Charles Van Loan.
+//! Nineteen Dubious Ways to Compute the Exponential of a Matrix, Twenty-Five Years Later.
+//! SIAM Review, Vol. 45, No. 1, 2003, pp. 3-49.
+//! http://dx.doi.org/10.1137/S00361445024180
+
+template<typename T1>
+inline
+void
+op_expmat::apply(Mat<typename T1::elem_type>& out, const Op<T1, op_expmat>& expr)
+ {
+ arma_extra_debug_sigprint();
+
+ typedef typename T1::elem_type eT;
+ typedef typename T1::pod_type T;
+
+
+ if(is_op_diagmat<T1>::value)
+ {
+ out = expr.m; // force the evaluation of diagmat()
+
+ const uword n_rows = out.n_rows;
+
+ for(uword i=0; i<n_rows; ++i)
+ {
+ out.at(i,i) = std::exp( out.at(i,i) );
+ }
+ }
+ else
+ {
+ const unwrap<T1> tmp(expr.m);
+ const Mat<eT>& A = tmp.M;
+
+ arma_debug_check( (A.is_square() == false), "expmat(): given matrix is not square sized" );
+
+ const uword s = (std::max)(uword(0), uword(eop_aux::log2(norm(A, "inf"))) + uword(1) + uword(1));
+
+ const Mat<eT> AA = A / std::pow(double(2), s);
+
+ T c = T(0.5);
+
+ Mat<eT> E(AA.n_rows, AA.n_rows, fill::eye); E += c * AA;
+ Mat<eT> D(AA.n_rows, AA.n_rows, fill::eye); D -= c * AA;
+
+ Mat<eT> X = AA;
+
+ bool positive = true;
+
+ const uword N = 6;
+
+ for(uword i = 2; i <= N; ++i)
+ {
+ c = c * T(N - i + 1) / T(i * (2*N - i + 1));
+
+ X = AA * X;
+
+ E += c * X;
+
+ if(positive) { D += c * X; } else { D -= c * X; }
+
+ positive = (positive) ? false : true;
+ }
+
+ out = solve(D, E);
+
+ for(uword i=0; i < s; ++i) { out = out * out; }
+ }
+ }
+
+
+
+//! @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/op_vectorise_bones.hpp new/armadillo-4.550.0/include/armadillo_bits/op_vectorise_bones.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/op_vectorise_bones.hpp 2013-12-25 18:01:20.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/op_vectorise_bones.hpp 2014-11-18 05:16:24.000000000 +0100
@@ -1,5 +1,5 @@
-// Copyright (C) 2013 Conrad Sanderson
-// Copyright (C) 2013 NICTA (www.nicta.com.au)
+// Copyright (C) 2013-2014 Conrad Sanderson
+// Copyright (C) 2013-2014 NICTA (www.nicta.com.au)
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -42,5 +42,14 @@
};
+
+class op_vectorise_cube_col
+ {
+ public:
+
+ template<typename T1> inline static void apply( Mat<typename T1::elem_type>& out, const Op<T1,op_vectorise_cube_col>& in);
+ };
+
+
//! @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/op_vectorise_meat.hpp new/armadillo-4.550.0/include/armadillo_bits/op_vectorise_meat.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/op_vectorise_meat.hpp 2013-12-25 18:01:20.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/op_vectorise_meat.hpp 2014-11-18 05:16:24.000000000 +0100
@@ -206,4 +206,73 @@
+//
+
+
+
+//! experimental: vectorisation of cubes
+template<typename T1>
+inline
+void
+op_vectorise_cube_col::apply(Mat<typename T1::elem_type>& out, const Op<T1,op_vectorise_cube_col>& in)
+ {
+ arma_extra_debug_sigprint();
+
+ typedef typename T1::elem_type eT;
+
+ ProxyCube<T1> P(in.m);
+
+ const uword N = P.get_n_elem();
+
+ out.set_size(N, 1);
+
+ if(is_Cube<typename ProxyCube<T1>::stored_type>::value == true)
+ {
+ const unwrap_cube<typename ProxyCube<T1>::stored_type> tmp(P.Q);
+
+ arrayops::copy(out.memptr(), tmp.M.memptr(), N);
+ }
+ else
+ {
+ eT* outmem = out.memptr();
+
+ if(ProxyCube<T1>::prefer_at_accessor == false)
+ {
+ typename ProxyCube<T1>::ea_type A = P.get_ea();
+
+ uword i,j;
+
+ for(i=0, j=1; j < N; i+=2, j+=2)
+ {
+ const eT tmp_i = A[i];
+ const eT tmp_j = A[j];
+
+ outmem[i] = tmp_i;
+ outmem[j] = tmp_j;
+ }
+
+ if(i < N)
+ {
+ outmem[i] = A[i];
+ }
+ }
+ else
+ {
+ const uword n_rows = P.get_n_rows();
+ const uword n_cols = P.get_n_cols();
+ const uword n_slices = P.get_n_slices();
+
+ for(uword slice=0; slice < n_slices; ++slice)
+ for(uword col=0; col < n_cols; ++col )
+ for(uword row=0; row < n_rows; ++row )
+ {
+ *outmem = P.at(row,col,slice);
+ outmem++;
+ }
+ }
+ }
+ }
+
+
+
//! @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-4.500.1/include/armadillo_bits/traits.hpp new/armadillo-4.550.0/include/armadillo_bits/traits.hpp
--- old/armadillo-4.500.1/include/armadillo_bits/traits.hpp 2014-03-14 17:51:29.000000000 +0100
+++ new/armadillo-4.550.0/include/armadillo_bits/traits.hpp 2014-11-07 05:25:21.000000000 +0100
@@ -1290,4 +1290,32 @@
+template<typename T1>
+struct is_outer_product
+ { static const bool value = false; };
+
+template<typename T1, typename T2>
+struct is_outer_product< Glue<T1,T2,glue_times> >
+ { static const bool value = (resolves_to_colvector<T1>::value && resolves_to_rowvector<T2>::value); };
+
+
+
+template<typename T1>
+struct has_op_inv
+ { static const bool value = false; };
+
+template<typename T1>
+struct has_op_inv< Op<T1,op_inv> >
+ { static const bool value = true; };
+
+template<typename T1, typename T2>
+struct has_op_inv< Glue<Op<T1,op_inv>, T2, glue_times> >
+ { static const bool value = true; };
+
+template<typename T1, typename T2>
+struct has_op_inv< Glue<T1, Op<T2,op_inv>, glue_times> >
+ { static const bool value = true; };
+
+
+
//! @}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package shorewall for openSUSE:Factory checked in at 2014-11-24 11:09:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shorewall (Old)
and /work/SRC/openSUSE:Factory/.shorewall.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shorewall"
Changes:
--------
--- /work/SRC/openSUSE:Factory/shorewall/shorewall.changes 2014-11-06 16:51:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.shorewall.new/shorewall.changes 2014-11-24 11:10:14.000000000 +0100
@@ -1,0 +2,27 @@
+Sun Nov 23 23:20:00 UTC 2014 - toganm(a)opensuse.org
+
+- Update to version 4.6.5.2 For more details see changelog.txt and
+ releasenotes.txt
+
+ * LOG_BACKEND=LOG failed at run-time for all but the most recent
+ kernels.
+
+- Changes in 4.6.5.1
+
+ * The generated script can now detect an gateway address assigned
+ by later versions of that program (Alan Barrett).
+
+ * In 4.6.5, the bash-based configure script would issue the
+ following diagnostic if SERVICEDIR was not specified in the
+ shorewallrc file:
+
+ ./configure: line 199: [SERVICEDIR]=: command not found
+
+ This was compounded by the fact that all of the released
+ shorewallrc files still specified SYSTEMDDIR rather than
+ SERVICEDIR (Evangelos Foutras)
+
+ * The shorewallrc.archlinux file now reflects a change in SBINDIR
+ that occurred in Arch Linux in mid 2013 (Evangelos Foutras).
+
+-------------------------------------------------------------------
Old:
----
shorewall-4.6.4.3.tar.bz2
shorewall-core-4.6.4.3.tar.bz2
shorewall-docs-html-4.6.4.3.tar.bz2
shorewall-init-4.6.4.3.tar.bz2
shorewall-lite-4.6.4.3.tar.bz2
shorewall6-4.6.4.3.tar.bz2
shorewall6-lite-4.6.4.3.tar.bz2
New:
----
shorewall-4.6.5.2.tar.bz2
shorewall-core-4.6.5.2.tar.bz2
shorewall-docs-html-4.6.5.2.tar.bz2
shorewall-init-4.6.5.2.tar.bz2
shorewall-lite-4.6.5.2.tar.bz2
shorewall6-4.6.5.2.tar.bz2
shorewall6-lite-4.6.5.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shorewall.spec ++++++
--- /var/tmp/diff_new_pack.oP0bRP/_old 2014-11-24 11:10:16.000000000 +0100
+++ /var/tmp/diff_new_pack.oP0bRP/_new 2014-11-24 11:10:16.000000000 +0100
@@ -20,19 +20,19 @@
%define have_systemd 1
Name: shorewall
-Version: 4.6.4.3
+Version: 4.6.5.2
Release: 0
Summary: Shoreline Firewall is an iptables-based firewall for Linux systems
License: GPL-2.0
Group: Productivity/Networking/Security
Url: http://www.shorewall.net/
-Source: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.4/%{name}-%version…
-Source1: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.4/%{name}-core-%ve…
-Source2: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.4/%{name}-lite-%ve…
-Source3: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.4/%{name}-init-%ve…
-Source4: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.4/%{name}6-lite-%v…
-Source5: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.4/%{name}6-%versio…
-Source6: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.4/%{name}-docs-htm…
+Source: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.5/%{name}-%version…
+Source1: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.5/%{name}-core-%ve…
+Source2: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.5/%{name}-lite-%ve…
+Source3: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.5/%{name}-init-%ve…
+Source4: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.5/%{name}6-lite-%v…
+Source5: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.5/%{name}6-%versio…
+Source6: http://www.shorewall.net/pub/shorewall/4.6/shorewall-4.6.5/%{name}-docs-htm…
Source7: %{name}-4.4.22.rpmlintrc
Source8: README.openSUSE
# PATCH-FIX-UPSTREAM toganm(a)opensuse.org Shorewall-lite init.suse.sh Required Stop
@@ -360,6 +360,7 @@
# FIXME
# somehow shorewall-init is not installed for opensuse 11.4
+# systemd changed to servicedir
for i in $targets; do
pushd ${i}-%{version}
@@ -371,7 +372,7 @@
libexecdir=%{_libexecdir} \
sbindir=%_sbindir \
%if 0%{?have_systemd}
- systemd=%_unitdir \
+ servicedir=%_unitdir \
%endif
# %%if 0%%{?suse_version} >= 1210
# systemd=%%_unitdir \
++++++ shorewall-4.6.4.3.tar.bz2 -> shorewall-4.6.5.2.tar.bz2 ++++++
++++ 3251 lines of diff (skipped)
++++++ shorewall-core-4.6.4.3.tar.bz2 -> shorewall-core-4.6.5.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/changelog.txt new/shorewall-core-4.6.5.2/changelog.txt
--- old/shorewall-core-4.6.4.3/changelog.txt 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-core-4.6.5.2/changelog.txt 2014-11-17 16:17:15.000000000 +0100
@@ -1,14 +1,66 @@
-Changes in 4.6.4.3
+Changes in 4.6.5.1
-1) Update release documents
+1) Update release documents.
-2) Add xt_LOG to the helpers files.
+2) Fix IPv6 LOG_BACKEND=LOG
-Changes in 4.6.4.2
+Changes in 4.6.5.1
-1) Update release documents
+1) Update release documents.
-2) Add ipt_LOG to the helpers files.
+2) Apply Alan Barrett's dhclient patch
+
+3) Make emacs sh-mode work better with lib.core
+
+4) Fix setting of options[SERVICEDIR] in configure
+
+5) Rename SYSTEMDDIR to SERVICEDIR in shorewallrc.*
+
+6) Eliminate redundant "/" in the installers
+
+Changes in 4.6.5 Final
+
+1) Update release documents.
+
+2) Apply Thomas D's manpage fixes.
+
+3) Correct .service files.
+
+Changes in 4.6.5 RC 1
+
+1) Update release documents.
+
+2) Correct a couple of defects in the -C code.
+
+3) Fix LOG_BACKEND on kernel 3.17.
+
+Changes in 4.6.5 Beta 3
+
+1) Update release documents.
+
+2) Process params files with $SHOREWALL_SHELL.
+
+3) Implement the -C option.
+
+Changes in 4.6.5 Beta 2
+
+1) Update release documents.
+
+2) Defect repair from the 4.6.4 branch.
+
+3) Allow both source and dest limits in the RATE LIMIT column.
+
+Changes in 4.6.5 Beta 1
+
+1) Update release documents.
+
+2) Merge defect repair from 4.6.4.
+
+Changes in 4.6.5 Beta 1
+
+1) Update release documents.
+
+2) New .service file strategy.
Changes in 4.6.4.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/configure new/shorewall-core-4.6.5.2/configure
--- old/shorewall-core-4.6.4.3/configure 2014-10-19 16:59:57.000000000 +0200
+++ new/shorewall-core-4.6.5.2/configure 2014-11-17 16:17:14.000000000 +0100
@@ -28,7 +28,7 @@
#
# Build updates this
#
-VERSION=4.6.4.3
+VERSION=4.6.5.2
case "$BASH_VERSION" in
[4-9].*)
@@ -195,6 +195,10 @@
fi
fi
+if [ -z "${options[SERVICEDIR]}" ]; then
+ options[SERVICEDIR]="${options[SYSTEMD]}"
+fi
+
for on in \
HOST \
PREFIX \
@@ -209,7 +213,7 @@
INITFILE \
AUXINITSOURCE \
AUXINITFILE \
- SYSTEMD \
+ SERVICEDIR \
SERVICEFILE \
SYSCONFFILE \
SYSCONFDIR \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/configure.pl new/shorewall-core-4.6.5.2/configure.pl
--- old/shorewall-core-4.6.4.3/configure.pl 2014-10-19 16:59:57.000000000 +0200
+++ new/shorewall-core-4.6.5.2/configure.pl 2014-11-17 16:17:14.000000000 +0100
@@ -31,7 +31,7 @@
# Build updates this
#
use constant {
- VERSION => '4.6.4.3'
+ VERSION => '4.6.5.2'
};
my %params;
@@ -154,6 +154,8 @@
$options{VARDIR} = '${VARLIB}/${PRODUCT}';
}
+$options{SERVICEDIR}=$options{SYSTEMD} unless $options{SERVICEDIR};
+
for ( qw/ HOST
PREFIX
SHAREDIR
@@ -167,8 +169,8 @@
INITFILE
AUXINITSOURCE
AUXINITFILE
- SYSTEMD
- SERVICEFILE
+ SERVICEDIR
+ SERVICEFILE
SYSCONFFILE
SYSCONFDIR
SPARSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/install.sh new/shorewall-core-4.6.5.2/install.sh
--- old/shorewall-core-4.6.4.3/install.sh 2014-10-19 16:59:57.000000000 +0200
+++ new/shorewall-core-4.6.5.2/install.sh 2014-11-17 16:17:14.000000000 +0100
@@ -22,7 +22,7 @@
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
-VERSION=4.6.4.3
+VERSION=4.6.5.2
usage() # $1 = exit status
{
@@ -329,9 +329,13 @@
chmod 755 ${DESTDIR}${SYSCONFDIR}
fi
-if [ -n "${SYSTEMD}" ]; then
- mkdir -p ${DESTDIR}${SYSTEMD}
- chmod 755 ${DESTDIR}${SYSTEMD}
+if [ -z "${SERVICEDIR}" ]; then
+ SERVICEDIR="$SYSTEMD"
+fi
+
+if [ -n "${SERVICEDIR}" ]; then
+ mkdir -p ${DESTDIR}${SERVICEDIR}
+ chmod 755 ${DESTDIR}${SERVICEDIR}
fi
mkdir -p ${DESTDIR}${SBINDIR}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/known_problems.txt new/shorewall-core-4.6.5.2/known_problems.txt
--- old/shorewall-core-4.6.4.3/known_problems.txt 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-core-4.6.5.2/known_problems.txt 2014-11-17 16:17:15.000000000 +0100
@@ -1,74 +1,25 @@
1) On systems running Upstart, shorewall-init cannot reliably secure
the firewall before interfaces are brought up.
-2) If you install 4.6.4 and then use the 'safe-restart' command to
- restart your firewall, confusing output is produced:
+2) The generated firewall cannot detect the gateway added by recent
+ versions of dhclient.
- # shorewall safe-restart
- Compiling...
- Processing /etc/shorewall/params ...
- Processing /etc/shorewall/shorewall.conf...
- ...
- Optimizing Ruleset...
- Creating iptables-restore input...
- Shorewall configuration compiled to /var/lib/shorewall/.restart
- Currently-running Configuration Saved to /var/lib/shorewall/.safe
- Usage: /var/lib/shorewall/firewall [ options ] <command>
-
- <command> is one of:
- start
- stop
- clear
- disable <interface>
- down <interface>
- enable <interface>
- reset
- refresh
- restart
- run <command> [ <parameter> ... ]
- status
- up <interface>
- version
-
- Options are:
-
- -v and -q Standard Shorewall verbosity controls
- -n Don't update routing configuration
- -p Purge Conntrack Table
- -t Timestamp progress Messages
- -V <verbosity> Set verbosity explicitly
- -R <file> Override RESTOREFILE setting
- Restarting...
- Restarting Shorewall....
- Initializing...
- Processing /etc/shorewall/init ...
- ...
- Processing /etc/shorewall/start ...
- Processing /etc/shorewall/started ...
- done.
- Do you want to accept the new firewall configuration? [y/n]
-
- The above 'usage' information, while confusing, does not represent a
- problem and it is safe to answer 'y'.
-
-
- Corrected in Shorewall 4.6.4.1.
-
-3) The 'Universal' sample configuration fails to start.
-
- Workaround: Remove the 'optional' option from the interfaces file
- entry.
-
- Corrected in Shorewall 4.6.4.1.
-
-4) Setting LOGBACKEND=ipt_LOG may result in the following startup
- failure at boot:
-
- Starting shorewall ...
- /var/lib/shorewall/firewall: line 2080: echo: write error: No such file or directory
- WARNING: Unable to set log backend to ipt_LOG
+ Corrected in 4.6.5.1.
- Partially corrected in Shorewall 4.6.4.2. Fixed on Squeeze and
- RHEL6 (and derivatives). Not fixed on Fedora, Ubuntu and OpenSuSE.
+3) In 4.6.5, the bash-based configure script would issue the following
+ diagnostic if SERVICEDIR was not specified in the shorewallrc
+ file.
+
+ ./configure: line 199: [SERVICEDIR]=: command not found
+
+ This is compounded by the fact that all of the released
+ shorewallrc files still specify SYSTEMDDIR rather than SERVICEDIR
+ (Evangelos Foutras)
+
+ Corrected in 4.6.5.1.
+
+4) LOG_BACKEND=LOG is broken in Shorewall6 on all but the most recent
+ kernel versions.
+
+ Corrected in 4.6.5.2.
- Corrected on other distros in 4.6.4.3.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/lib.cli new/shorewall-core-4.6.5.2/lib.cli
--- old/shorewall-core-4.6.4.3/lib.cli 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/lib.cli 2014-11-15 17:56:42.000000000 +0100
@@ -493,6 +493,8 @@
[ -x $iptables_save ] || echo "$iptables-save does not exist or is not executable" >&2
+ [ -n "$g_counters" ] && iptables_save="$iptables_save --counters"
+
if product_is_started ; then
[ -d ${VARDIR} ] || mkdir -p ${VARDIR}
@@ -1624,6 +1626,15 @@
g_noroutes=Yes
option=${option#n}
;;
+ p*)
+ [ -n "$(which conntrack)" ] || fatal_error "The '-p' option requires the conntrack utility which does not appear to be installed on this system"
+ g_purge=Yes
+ option=${option%p}
+ ;;
+ C*)
+ g_counters=Yes
+ option=${option#C}
+ ;;
*)
usage 1
;;
@@ -3108,11 +3119,45 @@
}
save_command() {
+ local finished
+ finished=0
+
+ shift
+
+ while [ $finished -eq 0 -a $# -gt 0 ]; do
+ option=$1
+ case $option in
+ -*)
+ option=${option#-}
+
+ while [ -n "$option" ]; do
+ case $option in
+ -)
+ finished=1
+ option=
+ ;;
+ C*)
+ g_counters=Yes
+ option=${option#C}
+ ;;
+ *)
+ usage 1
+ ;;
+ esac
+ done
+ shift
+ ;;
+ *)
+ finished=1
+ ;;
+ esac
+ done
+
case $# in
- 1)
+ 0)
;;
- 2)
- RESTOREFILE="$2"
+ 1)
+ RESTOREFILE="$1"
validate_restorefile '<restore file>'
;;
*)
@@ -3407,7 +3452,11 @@
[ -n "$g_nolock" ] || mutex_on
if [ -x ${VARDIR}/firewall ]; then
- run_it ${VARDIR}/firewall $g_debugging start
+ if [ -n "$g_fast" -a -x ${VARDIR}/${RESTOREFILE} -a ! ${VARDIR}/firewall -nt ${VARDIR}/${RESTOREFILE} ]; then
+ run_it ${VARDIR}/${RESTOREFILE} $g_debugging restore
+ else
+ run_it ${VARDIR}/firewall $g_debugging start
+ fi
rc=$?
else
error_message "${VARDIR}/firewall is missing or is not executable"
@@ -3443,6 +3492,14 @@
finished=1
option=
;;
+ f*)
+ g_fast=Yes
+ option=${option#f}
+ ;;
+ C*)
+ g_counters=Yes
+ option=${option#C}
+ ;;
p*)
[ -n "$(which conntrack)" ] || fatal_error "The '-p' option requires the conntrack utility which does not appear to be installed on this system"
g_purge=Yes
@@ -3504,6 +3561,10 @@
g_purge=Yes
option=${option%p}
;;
+ C*)
+ g_counters=Yes
+ option=${option#C}
+ ;;
*)
usage 1
;;
@@ -3577,10 +3638,10 @@
echo " logwatch [<refresh interval>]"
echo " reject <address> ..."
echo " reset [ <chain> ... ]"
- echo " restart [ -n ] [ -p ] [ -f ] [ <directory> ]"
- echo " restore [ -n ] [ <file name> ]"
+ echo " restart [ -n ] [ -p ] [ -f ] [ -C ] [ <directory> ]"
+ echo " restore [ -n ] [ -p ] [ -C ] [ <file name> ]"
echo " run <command> [ <parameter> ... ]"
- echo " save [ <file name> ]"
+ echo " save [ -C ] [ <file name> ]"
echo " [ show | list | ls ] [ -b ] [ -x ] [ -t {filter|mangle|nat} ] [ {chain [<chain> [ <chain> ... ]"
echo " [ show | list | ls ] [ -f ] capabilities"
echo " [ show | list | ls ] arptables"
@@ -3605,7 +3666,7 @@
echo " [ show | list | ls ] tc [ device ]"
echo " [ show | list | ls ] vardir"
echo " [ show | list | ls ] zones"
- echo " start [ -f ] [ -p ] [ <directory> ]"
+ echo " start [ -f ] [ -p ] [ -C ] [ <directory> ]"
echo " stop"
echo " status [ -i ]"
echo " version [ -a ]"
@@ -3657,6 +3718,7 @@
g_directives=
g_inline=
g_tcrules=
+ g_counters=
VERBOSE=
VERBOSITY=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/lib.common new/shorewall-core-4.6.5.2/lib.common
--- old/shorewall-core-4.6.4.3/lib.common 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/lib.common 2014-11-15 17:56:42.000000000 +0100
@@ -157,6 +157,7 @@
[ -n "$g_timestamp" ] && options=${options}t
[ -n "$g_purge" ] && options=${options}p
[ -n "$g_recovering" ] && options=${options}r
+ [ -n "$g_counters" ] && options=${options}c
options="${options}V $VERBOSITY"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/releasenotes.txt new/shorewall-core-4.6.5.2/releasenotes.txt
--- old/shorewall-core-4.6.4.3/releasenotes.txt 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-core-4.6.5.2/releasenotes.txt 2014-11-17 16:17:15.000000000 +0100
@@ -1,7 +1,7 @@
----------------------------------------------------------------------------
- S H O R E W A L L 4 . 6 . 4 . 3
+ S H O R E W A L L 4 . 6 . 5 . 2
------------------------------------
- O c t o b e r 2 0 , 2 0 1 4
+ N o v e m b e r 1 8 , 2 0 1 4
----------------------------------------------------------------------------
I. PROBLEMS CORRECTED IN THIS RELEASE
@@ -14,82 +14,45 @@
I. P R O B L E M S C O R R E C T E D I N T H I S R E L E A S E
----------------------------------------------------------------------------
-4.6.4.3
+4.6.5.2
-1) The fix for LOGBACKEND in 4.6.4.2 worked on some older
- distributions but not on newer ones. This release fixes the problem
- in the remaining cases.
+1) LOG_BACKEND=LOG failed at run-time for all but the most recent
+ kernels.
-4.6.4.2
+4.6.5.1
-1) Setting LOGBACKEND=ipt_LOG could result in the following startup
- failure at boot:
+1) The generated script can now detect an gateway address assigned by
+ later versions of that program (Alan Barrett).
- Starting shorewall ...
- /var/lib/shorewall/firewall: line 2080: echo: write error: No such file or directory
- WARNING: Unable to set log backend to ipt_LOG
+2) In 4.6.5, the bash-based configure script would issue the following
+ diagnostic if SERVICEDIR was not specified in the shorewallrc
+ file:
-4.6.4.1
-
-1) Confusing 'usage' output was produced under the following
- conditions:
-
- a) 4.6.4 installed
-
- b) The running firewall was compiled on an earlier release.
-
- c) A 'safe-start', 'save-restart', 'save' or 'try' command is
- executed.
-
- This problem has been corrected.
-
-2) The 'optional' option has been removed from the IPv4 Universal
- interfaces file, as that option caused startup failures.
-
-4.6.4 Final.
+ ./configure: line 199: [SERVICEDIR]=: command not found
-1) This release includes defect repair through release 4.6.3.4.
-
-2) Two corrections have been made to the .service files:
+ This was compounded by the fact that all of the released
+ shorewallrc files still specified SYSTEMDDIR rather than SERVICEDIR
+ (Evangelos Foutras)
- - The .service files now correctly specify
-
- WantedBy=basic.target
+3) The shorewallrc.archlinux file now reflects a change in SBINDIR
+ that occurred in Arch Linux in mid 2013 (Evangelos Foutras).
- - Conflicting services have been added.
-
-3) A warning message generated during stoppedrules processing
- previously referred to the file as routestopped.
-
-4) Previously, the stoppedrules file did not work properly when
- ADMINISABSENTMINDED=No.
-
- - A warning message was issued stating that the file would be
- processed as if ADMINISABSENTMINDED=Yes, and it was.
-
- - Unfortunately, part of the surrounding rule-generating logic
- proceded as if ADMINISABSENTMINDED=No, leading to an unusable
- ruleset.
-
- This problem has been corrected by changing the way that
- stoppedrules works with ADMINISABSENTMINDED=No. In the new
- implementation:
-
- - All existing connections continue to work.
- - Response packets and related connection requests to new accepted
- connections are accepted (in other words, the resulting ruleset
- is stateful).
+4.6.5
- See shorewall[6].conf(5) for additional details.
+1) This release includes defect repair through release 4.6.4.3.
-5) The .spec files now set SBINDIR correctly.
+2) On kernel 3.17, LOG_BACKEND=LOG previously failed with the
+ diagnostics:
-6) The -lite installers now create INITDIR if it doesn't exist.
+ Setting up log backend
+ /var/lib/shorewall/.restart: line 2075: echo: write error:
+ No such file or directory
+ WARNING: Unable to set log backend to ipt_LOG
-7) The installers no longer attempt to create a symbolic link to the
- init script when no init script is installed.
+3) A number of corrections have been made to the manpages (Thomas D).
-8) A large number of defects in the uninstallers have been corrected.
+4) Previously, if $OPTIONS was set in /etc/sysconfig/shorewall-init,
+ then servicd failed to start/stop Shorewall-init.
----------------------------------------------------------------------------
I I. K N O W N P R O B L E M S R E M A I N I N G
@@ -102,39 +65,83 @@
I I I. N E W F E A T U R E S I N T H I S R E L E A S E
----------------------------------------------------------------------------
-1) Install support for Centos 7 and Foobar 7 has been added (Tuomo
- Soini).
-
-2) A 'terminating' option has been added to shorewall[6].actions.
- this option, when used with the 'builtin' option, indicates to the
- compiler that the built-in action is terminating. This allows the
- optimizer to omit rules after an unconditional jump to the
- built-in.
-
-3) A LOG_BACKEND option has been added to allow specification of the
- default logging backends. See shorewall.conf(5) and
- shorewall6.conf(5) for details.
-
-4) The SAVE_IPSETS option may now specify a list of ipsets to be
- saved. When such a list is specified, only those ipsets together
- with the ipsets supporting dynamic zones are saved.
-
- Shorewall6 now supports the SAVE_IPSETS option. When
- SAVE_IPSETS=Yes, only ipv6 ipsets are saved. For Shorewall, if
- SAVE_IPSETS=ipv4, then only ipv4 ipsets are saved. Both features
- require ipset version 5 or later.
-
- Note that shorewall.conf and shorewall6.conf may now both specify
- SAVE_IPSETS.
-
-5) The SBINDIR setting for SuSE now defaults to /usr/sbin/.
-
-6) With the exception of Shorewall-core, the tarball installers and
- uninstallers now support a -n option which inhibits any attempt to
- change the startup configuration. The -n option can be
- automatically invoked by setting the SANDBOX variable to a
- non-empty value, either in the environment or in your shorewallrc
- file.
+1) The configure scripts and installers now support SERVICEDIR as an
+ alternative to SYSTEMD. For compatability, SERVICED is an alias
+ for SERVICEDIR.
+
+2) The installers now offer a choice of .service files, selected by
+ the SERVICEFILE option. The default remains $PRODUCT.service. Each
+ product supplying a .service file now supplies a .service.214. The
+ differences between the standard .service files and the service.214
+ files are:
+
+ a) They specify 'after=network-online.target' rather than
+ 'after=network.target'.
+
+ b) The file shorewall-init.service.214 specifies
+ 'before=network-pre.target' rather than
+ 'before=network.target'. That file requires serviced 214 or
+ later, hence the names of the new files.
+
+ Regardless of which file is selected, it is installed in
+ $SERVICEDIR/$PRODUCT.service.
+
+3) The RATE LIMIT column of the rules files now allows specification
+ of both a per-source and per-destination limit. See
+ shorewall[6]-rules(5) for details.
+
+4) Previously, /bin/sh was used unconditionally to process the helper
+ script 'getparams'. That shell script reads the params file and
+ passes back the (variable,value) pairs to the compiler. Beginning
+ with this release, $SHOREWALL_SHELL is used to process that script,
+ unless the compilation is for export, in which case /bin/sh is
+ still used.
+
+ Note that the default value of $SHOREWALL_SHELL is /bin/sh, so
+ unless your configuration sets that variable, this enhancement will
+ have no effect. Similarly, on an administrative system, this
+ enhancement has no effect on the processing of the 'compile -e',
+ 'load', 'reload' and 'export' commands.
+
+5) A -C option has been added to several commands to allow the
+ ip[6]tables packet and byte counters to be preserved.
+
+ - save command
+
+ Causes the packet and byte counters to be saved along with the
+ chains and rules.
+
+ - restore command
+
+ Causes the packet and byte counters (if saved) to be restored
+ along with the chains and rules.
+
+ - start command
+
+ With Shorewall and Shorewall6, the -C option only has an effect
+ if the -f option is also specified. If a previously-saved
+ configuration is restored, then the packet and byte counters (if
+ saved) will be restored along with the chains and rules.
+
+ - restart command
+
+ If an existing compiled script is used (no recompilation
+ required) and if that script generated the current running
+ configuration, then the current netfilter configuration is
+ reloaded as is so as to preserve the current packet and byte
+ counters.
+
+ If you wish to (approximately) preserve the counters over a
+ possibly unexpected reboot, then:
+
+ - Create a cron job that periodically does 'shorewall save -C'
+
+ - Specify the -C and -f option in the STARTOPTIONS variable in
+ either /etc/default/shorewall[6][-lite] or
+ /etc/sysconfig/shorewall[6][-lite], whichever is supported by your
+ distribution. Note that some distributions do not distribute these
+ files so you may have to create the one(s) you need (such as
+ /etc/sysconfig/shorewall).
----------------------------------------------------------------------------
I V. M I G R A T I O N I S S U E S
@@ -429,6 +436,110 @@
----------------------------------------------------------------------------
V. N O T E S F R O M O T H E R 4 . 6 R E L E A S E S
----------------------------------------------------------------------------
+ P R O B L E M S C O R R E C T E D I N 4 . 6 . 4
+----------------------------------------------------------------------------
+
+4.6.4.1
+
+1) Confusing 'usage' output was produced under the following
+ conditions:
+
+ a) 4.6.4 installed
+
+ b) The running firewall was compiled on an earlier release.
+
+ c) A 'safe-start', 'save-restart', 'save' or 'try' command is
+ executed.
+
+ This problem has been corrected.
+
+2) The 'optional' option has been removed from the IPv4 Universal
+ interfaces file, as that option caused startup failures.
+
+4.6.4 Final.
+
+1) This release includes defect repair through release 4.6.3.4.
+
+2) Two corrections have been made to the .service files:
+
+ - The .service files now correctly specify
+
+ WantedBy=basic.target
+
+ - Conflicting services have been added.
+
+3) A warning message generated during stoppedrules processing
+ previously referred to the file as routestopped.
+
+4) Previously, the stoppedrules file did not work properly when
+ ADMINISABSENTMINDED=No.
+
+ - A warning message was issued stating that the file would be
+ processed as if ADMINISABSENTMINDED=Yes, and it was.
+
+ - Unfortunately, part of the surrounding rule-generating logic
+ proceded as if ADMINISABSENTMINDED=No, leading to an unusable
+ ruleset.
+
+ This problem has been corrected by changing the way that
+ stoppedrules works with ADMINISABSENTMINDED=No. In the new
+ implementation:
+
+ - All existing connections continue to work.
+ - Response packets and related connection requests to new accepted
+ connections are accepted (in other words, the resulting ruleset
+ is stateful).
+
+ See shorewall[6].conf(5) for additional details.
+
+5) The .spec files now set SBINDIR correctly.
+
+6) The -lite installers now create INITDIR if it doesn't exist.
+
+7) The installers no longer attempt to create a symbolic link to the
+ init script when no init script is installed.
+
+8) A large number of defects in the uninstallers have been corrected.
+
+----------------------------------------------------------------------------
+ N E W F E A T U R E S I N 4 . 6 . 4
+----------------------------------------------------------------------------
+
+1) Install support for Centos 7 and Foobar 7 has been added (Tuomo
+ Soini).
+
+2) A 'terminating' option has been added to shorewall[6].actions.
+ this option, when used with the 'builtin' option, indicates to the
+ compiler that the built-in action is terminating. This allows the
+ optimizer to omit rules after an unconditional jump to the
+ built-in.
+
+3) A LOG_BACKEND option has been added to allow specification of the
+ default logging backends. See shorewall.conf(5) and
+ shorewall6.conf(5) for details.
+
+4) The SAVE_IPSETS option may now specify a list of ipsets to be
+ saved. When such a list is specified, only those ipsets together
+ with the ipsets supporting dynamic zones are saved.
+
+ Shorewall6 now supports the SAVE_IPSETS option. When
+ SAVE_IPSETS=Yes, only ipv6 ipsets are saved. For Shorewall, if
+ SAVE_IPSETS=ipv4, then only ipv4 ipsets are saved. Both features
+ require ipset version 5 or later.
+
+ Note that shorewall.conf and shorewall6.conf may now both specify
+ SAVE_IPSETS.
+
+5) The SBINDIR setting for SuSE now defaults to /usr/sbin/.
+
+6) With the exception of Shorewall-core, the tarball installers and
+ uninstallers now support a -n option which inhibits any attempt to
+ change the startup configuration. The -n option can be
+ automatically invoked by setting the SANDBOX variable to a
+ non-empty value, either in the environment or in your shorewallrc
+ file.
+
+----------------------------------------------------------------------------
P R O B L E M S C O R R E C T E D I N 4 . 6 . 3
----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewall-core.spec new/shorewall-core-4.6.5.2/shorewall-core.spec
--- old/shorewall-core-4.6.4.3/shorewall-core.spec 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewall-core.spec 2014-11-17 16:17:15.000000000 +0100
@@ -1,6 +1,6 @@
%define name shorewall-core
-%define version 4.6.4
-%define release 3
+%define version 4.6.5
+%define release 2
Summary: Shoreline Firewall is an iptables-based firewall for Linux systems.
Name: %{name}
@@ -63,12 +63,20 @@
%doc COPYING INSTALL changelog.txt releasenotes.txt
%changelog
-* Sun Oct 19 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-3
-* Wed Oct 15 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-2
-* Fri Oct 10 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-1
+* Sat Nov 15 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-2
+* Fri Nov 14 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-1
+* Thu Nov 06 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0base
+* Sat Nov 01 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0RC1
+* Thu Oct 30 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta3
+* Mon Oct 20 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta2
+* Wed Oct 08 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta1
* Mon Oct 06 2014 Tom Eastep tom(a)shorewall.net
- Updated to 4.6.4-0base
* Thu Oct 02 2014 Tom Eastep tom(a)shorewall.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.apple new/shorewall-core-4.6.5.2/shorewallrc.apple
--- old/shorewall-core-4.6.4.3/shorewallrc.apple 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.apple 2014-11-15 17:56:42.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE= #Unused on OS X
INITSOURCE= #Unused on OS X
ANNOTATED= #Unused on OS X
-SYSTEMD= #Unused on OS X
+SERVICEDIR= #Unused on OS X
SERVICEFILE= #Unused on OS X
SYSCONFDIR= #Unused on OS X
SPARSE=Yes #Only install $PRODUCT/$PRODUCT.conf in $CONFDIR.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.archlinux new/shorewall-core-4.6.5.2/shorewallrc.archlinux
--- old/shorewall-core-4.6.4.3/shorewallrc.archlinux 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.archlinux 2014-11-15 17:56:42.000000000 +0100
@@ -8,14 +8,14 @@
LIBEXECDIR=${PREFIX}/share #Directory for executable scripts.
PERLLIBDIR=${PREFIX}/share/shorewall #Directory to install Shorewall Perl module directory
CONFDIR=/etc #Directory where subsystem configurations are installed
-SBINDIR=/usr/sbin #Directory where system administration programs are installed
+SBINDIR=/usr/bin #Directory where system administration programs are installed
MANDIR=${SHAREDIR}/man #Directory where manpages are installed.
INITDIR= #Directory where SysV init scripts are installed.
INITFILE= #Name of the product's installed SysV init script
INITSOURCE= #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
SYSCONFDIR= #Directory where SysV init parameter files are installed
-SYSTEMD=/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR=/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
VARLIB=/var/lib #Directory where product variable data is stored.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.cygwin new/shorewall-core-4.6.5.2/shorewallrc.cygwin
--- old/shorewall-core-4.6.4.3/shorewallrc.cygwin 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.cygwin 2014-11-15 17:56:42.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE= #Unused on Cygwin
INITSOURCE= #Unused on Cygwin
ANNOTATED= #Unused on Cygwin
-SYSTEMD= #Unused on Cygwin
+SERVICEDIR= #Unused on Cygwin
SERVICEFILE= #Unused on Cygwin
SYSCONFDIR= #Unused on Cygwin
SPARSE=Yes #Only install $PRODUCT/$PRODUCT.conf in $CONFDIR.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.debian new/shorewall-core-4.6.5.2/shorewallrc.debian
--- old/shorewall-core-4.6.4.3/shorewallrc.debian 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.debian 2014-11-15 17:56:42.000000000 +0100
@@ -17,7 +17,7 @@
SYSCONFFILE=default.debian #Name of the distributed file to be installed in $SYSCONFDIR
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFDIR=/etc/default #Directory where SysV init parameter files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SPARSE=Yes #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
VARLIB=/var/lib #Directory where product variable data is stored.
VARDIR=${VARLIB}/$PRODUCT #Directory where product variable data is stored.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.default new/shorewall-core-4.6.5.2/shorewallrc.default
--- old/shorewall-core-4.6.4.3/shorewallrc.default 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.default 2014-11-15 17:56:42.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's installed SysV init script
INITSOURCE=init.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE= #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR= #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.redhat new/shorewall-core-4.6.5.2/shorewallrc.redhat
--- old/shorewall-core-4.6.4.3/shorewallrc.redhat 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.redhat 2014-11-15 17:56:42.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's installed SysV init script
INITSOURCE=init.fedora.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
SYSCONFFILE=sysconfig #Name of the distributed file to be installed as $SYSCONFDIR/$PRODUCT
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFDIR=/etc/sysconfig/ #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.slackware new/shorewall-core-4.6.5.2/shorewallrc.slackware
--- old/shorewall-core-4.6.4.3/shorewallrc.slackware 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.slackware 2014-11-15 17:56:42.000000000 +0100
@@ -15,7 +15,7 @@
AUXINITFILE=rc.firewall #Name of the product's installed SysV init script
INITSOURCE=init.slackware.$PRODUCT.sh #Name of the distributed file to be installed as a second SysV init script
INITFILE=rc.$PRODUCT #Name of the product's installed second init script
-SYSTEMD= #Name of the directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Name of the directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE= #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR= #Name of the directory where SysV init parameter files are installed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/shorewallrc.suse new/shorewall-core-4.6.5.2/shorewallrc.suse
--- old/shorewall-core-4.6.4.3/shorewallrc.suse 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-core-4.6.5.2/shorewallrc.suse 2014-11-15 17:56:42.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's SysV init script
INITSOURCE=init.suse.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE=sysconfig #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR=/etc/sysconfig/ #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-core-4.6.4.3/uninstall.sh new/shorewall-core-4.6.5.2/uninstall.sh
--- old/shorewall-core-4.6.4.3/uninstall.sh 2014-10-19 16:59:57.000000000 +0200
+++ new/shorewall-core-4.6.5.2/uninstall.sh 2014-11-17 16:17:14.000000000 +0100
@@ -26,7 +26,7 @@
# You may only use this script to uninstall the version
# shown below. Simply run this script to remove Shorewall Firewall
-VERSION=4.6.4.3
+VERSION=4.6.5.2
usage() # $1 = exit status
{
++++++ shorewall-docs-html-4.6.4.3.tar.bz2 -> shorewall-docs-html-4.6.5.2.tar.bz2 ++++++
++++ 7715 lines of diff (skipped)
++++++ shorewall-init-4.6.4.3.tar.bz2 -> shorewall-init-4.6.5.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/changelog.txt new/shorewall-init-4.6.5.2/changelog.txt
--- old/shorewall-init-4.6.4.3/changelog.txt 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/changelog.txt 2014-11-17 16:17:15.000000000 +0100
@@ -1,14 +1,66 @@
-Changes in 4.6.4.3
+Changes in 4.6.5.1
-1) Update release documents
+1) Update release documents.
-2) Add xt_LOG to the helpers files.
+2) Fix IPv6 LOG_BACKEND=LOG
-Changes in 4.6.4.2
+Changes in 4.6.5.1
-1) Update release documents
+1) Update release documents.
-2) Add ipt_LOG to the helpers files.
+2) Apply Alan Barrett's dhclient patch
+
+3) Make emacs sh-mode work better with lib.core
+
+4) Fix setting of options[SERVICEDIR] in configure
+
+5) Rename SYSTEMDDIR to SERVICEDIR in shorewallrc.*
+
+6) Eliminate redundant "/" in the installers
+
+Changes in 4.6.5 Final
+
+1) Update release documents.
+
+2) Apply Thomas D's manpage fixes.
+
+3) Correct .service files.
+
+Changes in 4.6.5 RC 1
+
+1) Update release documents.
+
+2) Correct a couple of defects in the -C code.
+
+3) Fix LOG_BACKEND on kernel 3.17.
+
+Changes in 4.6.5 Beta 3
+
+1) Update release documents.
+
+2) Process params files with $SHOREWALL_SHELL.
+
+3) Implement the -C option.
+
+Changes in 4.6.5 Beta 2
+
+1) Update release documents.
+
+2) Defect repair from the 4.6.4 branch.
+
+3) Allow both source and dest limits in the RATE LIMIT column.
+
+Changes in 4.6.5 Beta 1
+
+1) Update release documents.
+
+2) Merge defect repair from 4.6.4.
+
+Changes in 4.6.5 Beta 1
+
+1) Update release documents.
+
+2) New .service file strategy.
Changes in 4.6.4.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/configure new/shorewall-init-4.6.5.2/configure
--- old/shorewall-init-4.6.4.3/configure 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/configure 2014-11-17 16:17:15.000000000 +0100
@@ -28,7 +28,7 @@
#
# Build updates this
#
-VERSION=4.6.4.3
+VERSION=4.6.5.2
case "$BASH_VERSION" in
[4-9].*)
@@ -195,6 +195,10 @@
fi
fi
+if [ -z "${options[SERVICEDIR]}" ]; then
+ options[SERVICEDIR]="${options[SYSTEMD]}"
+fi
+
for on in \
HOST \
PREFIX \
@@ -209,7 +213,7 @@
INITFILE \
AUXINITSOURCE \
AUXINITFILE \
- SYSTEMD \
+ SERVICEDIR \
SERVICEFILE \
SYSCONFFILE \
SYSCONFDIR \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/configure.pl new/shorewall-init-4.6.5.2/configure.pl
--- old/shorewall-init-4.6.4.3/configure.pl 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/configure.pl 2014-11-17 16:17:15.000000000 +0100
@@ -31,7 +31,7 @@
# Build updates this
#
use constant {
- VERSION => '4.6.4.3'
+ VERSION => '4.6.5.2'
};
my %params;
@@ -154,6 +154,8 @@
$options{VARDIR} = '${VARLIB}/${PRODUCT}';
}
+$options{SERVICEDIR}=$options{SYSTEMD} unless $options{SERVICEDIR};
+
for ( qw/ HOST
PREFIX
SHAREDIR
@@ -167,8 +169,8 @@
INITFILE
AUXINITSOURCE
AUXINITFILE
- SYSTEMD
- SERVICEFILE
+ SERVICEDIR
+ SERVICEFILE
SYSCONFFILE
SYSCONFDIR
SPARSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/install.sh new/shorewall-init-4.6.5.2/install.sh
--- old/shorewall-init-4.6.4.3/install.sh 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/install.sh 2014-11-17 16:17:15.000000000 +0100
@@ -27,7 +27,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-VERSION=4.6.4.3
+VERSION=4.6.5.2
usage() # $1 = exit status
{
@@ -330,12 +330,16 @@
#
# Install the .service file
#
-if [ -n "$SYSTEMD" ]; then
- mkdir -p ${DESTDIR}${SYSTEMD}
+if [ -z "${SERVICEDIR}" ]; then
+ SERVICEDIR="$SYSTEMD"
+fi
+
+if [ -n "$SERVICEDIR" ]; then
+ mkdir -p ${DESTDIR}${SERVICEDIR}
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
- run_install $OWNERSHIP -m 644 $SERVICEFILE ${DESTDIR}${SYSTEMD}/$PRODUCT.service
- [ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SYSTEMD}/$PRODUCT.service
- echo "Service file $SERVICEFILE installed as ${DESTDIR}${SYSTEMD}/$PRODUCT.service"
+ run_install $OWNERSHIP -m 644 $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
+ [ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
+ echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
if [ -n "$DESTDIR" -o $configure -eq 0 ]; then
mkdir -p ${DESTDIR}${SBINDIR}
chmod 755 ${DESTDIR}${SBINDIR}
@@ -513,7 +517,7 @@
# not by the installer
/bin/true
else
- if [ -n "$SYSTEMD" ]; then
+ if [ -n "$SERVICEDIR" ]; then
if systemctl enable shorewall-init.service; then
echo "Shorewall Init will start automatically at boot"
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/releasenotes.txt new/shorewall-init-4.6.5.2/releasenotes.txt
--- old/shorewall-init-4.6.4.3/releasenotes.txt 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/releasenotes.txt 2014-11-17 16:17:15.000000000 +0100
@@ -1,7 +1,7 @@
----------------------------------------------------------------------------
- S H O R E W A L L 4 . 6 . 4 . 3
+ S H O R E W A L L 4 . 6 . 5 . 2
------------------------------------
- O c t o b e r 2 0 , 2 0 1 4
+ N o v e m b e r 1 8 , 2 0 1 4
----------------------------------------------------------------------------
I. PROBLEMS CORRECTED IN THIS RELEASE
@@ -14,82 +14,45 @@
I. P R O B L E M S C O R R E C T E D I N T H I S R E L E A S E
----------------------------------------------------------------------------
-4.6.4.3
+4.6.5.2
-1) The fix for LOGBACKEND in 4.6.4.2 worked on some older
- distributions but not on newer ones. This release fixes the problem
- in the remaining cases.
+1) LOG_BACKEND=LOG failed at run-time for all but the most recent
+ kernels.
-4.6.4.2
+4.6.5.1
-1) Setting LOGBACKEND=ipt_LOG could result in the following startup
- failure at boot:
+1) The generated script can now detect an gateway address assigned by
+ later versions of that program (Alan Barrett).
- Starting shorewall ...
- /var/lib/shorewall/firewall: line 2080: echo: write error: No such file or directory
- WARNING: Unable to set log backend to ipt_LOG
+2) In 4.6.5, the bash-based configure script would issue the following
+ diagnostic if SERVICEDIR was not specified in the shorewallrc
+ file:
-4.6.4.1
-
-1) Confusing 'usage' output was produced under the following
- conditions:
-
- a) 4.6.4 installed
-
- b) The running firewall was compiled on an earlier release.
-
- c) A 'safe-start', 'save-restart', 'save' or 'try' command is
- executed.
-
- This problem has been corrected.
-
-2) The 'optional' option has been removed from the IPv4 Universal
- interfaces file, as that option caused startup failures.
-
-4.6.4 Final.
+ ./configure: line 199: [SERVICEDIR]=: command not found
-1) This release includes defect repair through release 4.6.3.4.
-
-2) Two corrections have been made to the .service files:
+ This was compounded by the fact that all of the released
+ shorewallrc files still specified SYSTEMDDIR rather than SERVICEDIR
+ (Evangelos Foutras)
- - The .service files now correctly specify
-
- WantedBy=basic.target
+3) The shorewallrc.archlinux file now reflects a change in SBINDIR
+ that occurred in Arch Linux in mid 2013 (Evangelos Foutras).
- - Conflicting services have been added.
-
-3) A warning message generated during stoppedrules processing
- previously referred to the file as routestopped.
-
-4) Previously, the stoppedrules file did not work properly when
- ADMINISABSENTMINDED=No.
-
- - A warning message was issued stating that the file would be
- processed as if ADMINISABSENTMINDED=Yes, and it was.
-
- - Unfortunately, part of the surrounding rule-generating logic
- proceded as if ADMINISABSENTMINDED=No, leading to an unusable
- ruleset.
-
- This problem has been corrected by changing the way that
- stoppedrules works with ADMINISABSENTMINDED=No. In the new
- implementation:
-
- - All existing connections continue to work.
- - Response packets and related connection requests to new accepted
- connections are accepted (in other words, the resulting ruleset
- is stateful).
+4.6.5
- See shorewall[6].conf(5) for additional details.
+1) This release includes defect repair through release 4.6.4.3.
-5) The .spec files now set SBINDIR correctly.
+2) On kernel 3.17, LOG_BACKEND=LOG previously failed with the
+ diagnostics:
-6) The -lite installers now create INITDIR if it doesn't exist.
+ Setting up log backend
+ /var/lib/shorewall/.restart: line 2075: echo: write error:
+ No such file or directory
+ WARNING: Unable to set log backend to ipt_LOG
-7) The installers no longer attempt to create a symbolic link to the
- init script when no init script is installed.
+3) A number of corrections have been made to the manpages (Thomas D).
-8) A large number of defects in the uninstallers have been corrected.
+4) Previously, if $OPTIONS was set in /etc/sysconfig/shorewall-init,
+ then servicd failed to start/stop Shorewall-init.
----------------------------------------------------------------------------
I I. K N O W N P R O B L E M S R E M A I N I N G
@@ -102,39 +65,83 @@
I I I. N E W F E A T U R E S I N T H I S R E L E A S E
----------------------------------------------------------------------------
-1) Install support for Centos 7 and Foobar 7 has been added (Tuomo
- Soini).
-
-2) A 'terminating' option has been added to shorewall[6].actions.
- this option, when used with the 'builtin' option, indicates to the
- compiler that the built-in action is terminating. This allows the
- optimizer to omit rules after an unconditional jump to the
- built-in.
-
-3) A LOG_BACKEND option has been added to allow specification of the
- default logging backends. See shorewall.conf(5) and
- shorewall6.conf(5) for details.
-
-4) The SAVE_IPSETS option may now specify a list of ipsets to be
- saved. When such a list is specified, only those ipsets together
- with the ipsets supporting dynamic zones are saved.
-
- Shorewall6 now supports the SAVE_IPSETS option. When
- SAVE_IPSETS=Yes, only ipv6 ipsets are saved. For Shorewall, if
- SAVE_IPSETS=ipv4, then only ipv4 ipsets are saved. Both features
- require ipset version 5 or later.
-
- Note that shorewall.conf and shorewall6.conf may now both specify
- SAVE_IPSETS.
-
-5) The SBINDIR setting for SuSE now defaults to /usr/sbin/.
-
-6) With the exception of Shorewall-core, the tarball installers and
- uninstallers now support a -n option which inhibits any attempt to
- change the startup configuration. The -n option can be
- automatically invoked by setting the SANDBOX variable to a
- non-empty value, either in the environment or in your shorewallrc
- file.
+1) The configure scripts and installers now support SERVICEDIR as an
+ alternative to SYSTEMD. For compatability, SERVICED is an alias
+ for SERVICEDIR.
+
+2) The installers now offer a choice of .service files, selected by
+ the SERVICEFILE option. The default remains $PRODUCT.service. Each
+ product supplying a .service file now supplies a .service.214. The
+ differences between the standard .service files and the service.214
+ files are:
+
+ a) They specify 'after=network-online.target' rather than
+ 'after=network.target'.
+
+ b) The file shorewall-init.service.214 specifies
+ 'before=network-pre.target' rather than
+ 'before=network.target'. That file requires serviced 214 or
+ later, hence the names of the new files.
+
+ Regardless of which file is selected, it is installed in
+ $SERVICEDIR/$PRODUCT.service.
+
+3) The RATE LIMIT column of the rules files now allows specification
+ of both a per-source and per-destination limit. See
+ shorewall[6]-rules(5) for details.
+
+4) Previously, /bin/sh was used unconditionally to process the helper
+ script 'getparams'. That shell script reads the params file and
+ passes back the (variable,value) pairs to the compiler. Beginning
+ with this release, $SHOREWALL_SHELL is used to process that script,
+ unless the compilation is for export, in which case /bin/sh is
+ still used.
+
+ Note that the default value of $SHOREWALL_SHELL is /bin/sh, so
+ unless your configuration sets that variable, this enhancement will
+ have no effect. Similarly, on an administrative system, this
+ enhancement has no effect on the processing of the 'compile -e',
+ 'load', 'reload' and 'export' commands.
+
+5) A -C option has been added to several commands to allow the
+ ip[6]tables packet and byte counters to be preserved.
+
+ - save command
+
+ Causes the packet and byte counters to be saved along with the
+ chains and rules.
+
+ - restore command
+
+ Causes the packet and byte counters (if saved) to be restored
+ along with the chains and rules.
+
+ - start command
+
+ With Shorewall and Shorewall6, the -C option only has an effect
+ if the -f option is also specified. If a previously-saved
+ configuration is restored, then the packet and byte counters (if
+ saved) will be restored along with the chains and rules.
+
+ - restart command
+
+ If an existing compiled script is used (no recompilation
+ required) and if that script generated the current running
+ configuration, then the current netfilter configuration is
+ reloaded as is so as to preserve the current packet and byte
+ counters.
+
+ If you wish to (approximately) preserve the counters over a
+ possibly unexpected reboot, then:
+
+ - Create a cron job that periodically does 'shorewall save -C'
+
+ - Specify the -C and -f option in the STARTOPTIONS variable in
+ either /etc/default/shorewall[6][-lite] or
+ /etc/sysconfig/shorewall[6][-lite], whichever is supported by your
+ distribution. Note that some distributions do not distribute these
+ files so you may have to create the one(s) you need (such as
+ /etc/sysconfig/shorewall).
----------------------------------------------------------------------------
I V. M I G R A T I O N I S S U E S
@@ -429,6 +436,110 @@
----------------------------------------------------------------------------
V. N O T E S F R O M O T H E R 4 . 6 R E L E A S E S
----------------------------------------------------------------------------
+ P R O B L E M S C O R R E C T E D I N 4 . 6 . 4
+----------------------------------------------------------------------------
+
+4.6.4.1
+
+1) Confusing 'usage' output was produced under the following
+ conditions:
+
+ a) 4.6.4 installed
+
+ b) The running firewall was compiled on an earlier release.
+
+ c) A 'safe-start', 'save-restart', 'save' or 'try' command is
+ executed.
+
+ This problem has been corrected.
+
+2) The 'optional' option has been removed from the IPv4 Universal
+ interfaces file, as that option caused startup failures.
+
+4.6.4 Final.
+
+1) This release includes defect repair through release 4.6.3.4.
+
+2) Two corrections have been made to the .service files:
+
+ - The .service files now correctly specify
+
+ WantedBy=basic.target
+
+ - Conflicting services have been added.
+
+3) A warning message generated during stoppedrules processing
+ previously referred to the file as routestopped.
+
+4) Previously, the stoppedrules file did not work properly when
+ ADMINISABSENTMINDED=No.
+
+ - A warning message was issued stating that the file would be
+ processed as if ADMINISABSENTMINDED=Yes, and it was.
+
+ - Unfortunately, part of the surrounding rule-generating logic
+ proceded as if ADMINISABSENTMINDED=No, leading to an unusable
+ ruleset.
+
+ This problem has been corrected by changing the way that
+ stoppedrules works with ADMINISABSENTMINDED=No. In the new
+ implementation:
+
+ - All existing connections continue to work.
+ - Response packets and related connection requests to new accepted
+ connections are accepted (in other words, the resulting ruleset
+ is stateful).
+
+ See shorewall[6].conf(5) for additional details.
+
+5) The .spec files now set SBINDIR correctly.
+
+6) The -lite installers now create INITDIR if it doesn't exist.
+
+7) The installers no longer attempt to create a symbolic link to the
+ init script when no init script is installed.
+
+8) A large number of defects in the uninstallers have been corrected.
+
+----------------------------------------------------------------------------
+ N E W F E A T U R E S I N 4 . 6 . 4
+----------------------------------------------------------------------------
+
+1) Install support for Centos 7 and Foobar 7 has been added (Tuomo
+ Soini).
+
+2) A 'terminating' option has been added to shorewall[6].actions.
+ this option, when used with the 'builtin' option, indicates to the
+ compiler that the built-in action is terminating. This allows the
+ optimizer to omit rules after an unconditional jump to the
+ built-in.
+
+3) A LOG_BACKEND option has been added to allow specification of the
+ default logging backends. See shorewall.conf(5) and
+ shorewall6.conf(5) for details.
+
+4) The SAVE_IPSETS option may now specify a list of ipsets to be
+ saved. When such a list is specified, only those ipsets together
+ with the ipsets supporting dynamic zones are saved.
+
+ Shorewall6 now supports the SAVE_IPSETS option. When
+ SAVE_IPSETS=Yes, only ipv6 ipsets are saved. For Shorewall, if
+ SAVE_IPSETS=ipv4, then only ipv4 ipsets are saved. Both features
+ require ipset version 5 or later.
+
+ Note that shorewall.conf and shorewall6.conf may now both specify
+ SAVE_IPSETS.
+
+5) The SBINDIR setting for SuSE now defaults to /usr/sbin/.
+
+6) With the exception of Shorewall-core, the tarball installers and
+ uninstallers now support a -n option which inhibits any attempt to
+ change the startup configuration. The -n option can be
+ automatically invoked by setting the SANDBOX variable to a
+ non-empty value, either in the environment or in your shorewallrc
+ file.
+
+----------------------------------------------------------------------------
P R O B L E M S C O R R E C T E D I N 4 . 6 . 3
----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewall-init.service new/shorewall-init-4.6.5.2/shorewall-init.service
--- old/shorewall-init-4.6.4.3/shorewall-init.service 2014-10-19 17:16:02.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewall-init.service 2014-11-15 17:56:42.000000000 +0100
@@ -13,8 +13,8 @@
RemainAfterExit=yes
EnvironmentFile=-/etc/sysconfig/shorewall-init
StandardOutput=syslog
-ExecStart=/sbin/shorewall-init $OPTIONS start
-ExecStop=/sbin/shorewall-init $OPTIONS stop
+ExecStart=/sbin/shorewall-init start
+ExecStop=/sbin/shorewall-init stop
[Install]
WantedBy=basic.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewall-init.service.214 new/shorewall-init-4.6.5.2/shorewall-init.service.214
--- old/shorewall-init-4.6.4.3/shorewall-init.service.214 1970-01-01 01:00:00.000000000 +0100
+++ new/shorewall-init-4.6.5.2/shorewall-init.service.214 2014-11-15 17:56:42.000000000 +0100
@@ -0,0 +1,21 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall
+#
+# Copyright 2011 Jonathan Underwood <jonathan.underwood(a)gmail.com>
+#
+[Unit]
+Description=Shorewall IPv4 firewall (bootup security)
+Before=network-pre.target
+Wants=network-pre.target
+Conflicts=iptables.service firewalld.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=-/etc/sysconfig/shorewall-init
+StandardOutput=syslog
+ExecStart=/sbin/shorewall-init start
+ExecStop=/sbin/shorewall-init stop
+
+[Install]
+WantedBy=basic.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewall-init.spec new/shorewall-init-4.6.5.2/shorewall-init.spec
--- old/shorewall-init-4.6.4.3/shorewall-init.spec 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewall-init.spec 2014-11-17 16:17:15.000000000 +0100
@@ -1,6 +1,6 @@
%define name shorewall-init
-%define version 4.6.4
-%define release 3
+%define version 4.6.5
+%define release 2
Summary: Shorewall-init adds functionality to Shoreline Firewall (Shorewall).
Name: %{name}
@@ -126,12 +126,20 @@
%doc COPYING changelog.txt releasenotes.txt
%changelog
-* Sun Oct 19 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-3
-* Wed Oct 15 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-2
-* Fri Oct 10 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-1
+* Sat Nov 15 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-2
+* Fri Nov 14 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-1
+* Thu Nov 06 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0base
+* Sat Nov 01 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0RC1
+* Thu Oct 30 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta3
+* Mon Oct 20 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta2
+* Wed Oct 08 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta1
* Mon Oct 06 2014 Tom Eastep tom(a)shorewall.net
- Updated to 4.6.4-0base
* Thu Oct 02 2014 Tom Eastep tom(a)shorewall.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.apple new/shorewall-init-4.6.5.2/shorewallrc.apple
--- old/shorewall-init-4.6.4.3/shorewallrc.apple 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.apple 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE= #Unused on OS X
INITSOURCE= #Unused on OS X
ANNOTATED= #Unused on OS X
-SYSTEMD= #Unused on OS X
+SERVICEDIR= #Unused on OS X
SERVICEFILE= #Unused on OS X
SYSCONFDIR= #Unused on OS X
SPARSE=Yes #Only install $PRODUCT/$PRODUCT.conf in $CONFDIR.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.archlinux new/shorewall-init-4.6.5.2/shorewallrc.archlinux
--- old/shorewall-init-4.6.4.3/shorewallrc.archlinux 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.archlinux 2014-11-17 16:17:15.000000000 +0100
@@ -8,14 +8,14 @@
LIBEXECDIR=${PREFIX}/share #Directory for executable scripts.
PERLLIBDIR=${PREFIX}/share/shorewall #Directory to install Shorewall Perl module directory
CONFDIR=/etc #Directory where subsystem configurations are installed
-SBINDIR=/usr/sbin #Directory where system administration programs are installed
+SBINDIR=/usr/bin #Directory where system administration programs are installed
MANDIR=${SHAREDIR}/man #Directory where manpages are installed.
INITDIR= #Directory where SysV init scripts are installed.
INITFILE= #Name of the product's installed SysV init script
INITSOURCE= #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
SYSCONFDIR= #Directory where SysV init parameter files are installed
-SYSTEMD=/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR=/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
VARLIB=/var/lib #Directory where product variable data is stored.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.cygwin new/shorewall-init-4.6.5.2/shorewallrc.cygwin
--- old/shorewall-init-4.6.4.3/shorewallrc.cygwin 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.cygwin 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE= #Unused on Cygwin
INITSOURCE= #Unused on Cygwin
ANNOTATED= #Unused on Cygwin
-SYSTEMD= #Unused on Cygwin
+SERVICEDIR= #Unused on Cygwin
SERVICEFILE= #Unused on Cygwin
SYSCONFDIR= #Unused on Cygwin
SPARSE=Yes #Only install $PRODUCT/$PRODUCT.conf in $CONFDIR.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.debian new/shorewall-init-4.6.5.2/shorewallrc.debian
--- old/shorewall-init-4.6.4.3/shorewallrc.debian 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.debian 2014-11-17 16:17:15.000000000 +0100
@@ -17,7 +17,7 @@
SYSCONFFILE=default.debian #Name of the distributed file to be installed in $SYSCONFDIR
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFDIR=/etc/default #Directory where SysV init parameter files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SPARSE=Yes #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
VARLIB=/var/lib #Directory where product variable data is stored.
VARDIR=${VARLIB}/$PRODUCT #Directory where product variable data is stored.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.default new/shorewall-init-4.6.5.2/shorewallrc.default
--- old/shorewall-init-4.6.4.3/shorewallrc.default 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.default 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's installed SysV init script
INITSOURCE=init.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE= #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR= #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.redhat new/shorewall-init-4.6.5.2/shorewallrc.redhat
--- old/shorewall-init-4.6.4.3/shorewallrc.redhat 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.redhat 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's installed SysV init script
INITSOURCE=init.fedora.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
SYSCONFFILE=sysconfig #Name of the distributed file to be installed as $SYSCONFDIR/$PRODUCT
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFDIR=/etc/sysconfig/ #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.slackware new/shorewall-init-4.6.5.2/shorewallrc.slackware
--- old/shorewall-init-4.6.4.3/shorewallrc.slackware 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.slackware 2014-11-17 16:17:15.000000000 +0100
@@ -15,7 +15,7 @@
AUXINITFILE=rc.firewall #Name of the product's installed SysV init script
INITSOURCE=init.slackware.$PRODUCT.sh #Name of the distributed file to be installed as a second SysV init script
INITFILE=rc.$PRODUCT #Name of the product's installed second init script
-SYSTEMD= #Name of the directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Name of the directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE= #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR= #Name of the directory where SysV init parameter files are installed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/shorewallrc.suse new/shorewall-init-4.6.5.2/shorewallrc.suse
--- old/shorewall-init-4.6.4.3/shorewallrc.suse 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/shorewallrc.suse 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's SysV init script
INITSOURCE=init.suse.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE=sysconfig #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR=/etc/sysconfig/ #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-init-4.6.4.3/uninstall.sh new/shorewall-init-4.6.5.2/uninstall.sh
--- old/shorewall-init-4.6.4.3/uninstall.sh 2014-10-19 17:16:42.000000000 +0200
+++ new/shorewall-init-4.6.5.2/uninstall.sh 2014-11-17 16:17:15.000000000 +0100
@@ -26,7 +26,7 @@
# You may only use this script to uninstall the version
# shown below. Simply run this script to remove Shorewall Firewall
-VERSION=4.6.4.3
+VERSION=4.6.5.2
usage() # $1 = exit status
{
++++++ shorewall-lite-4.6.4.3.tar.bz2 -> shorewall-lite-4.6.5.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/changelog.txt new/shorewall-lite-4.6.5.2/changelog.txt
--- old/shorewall-lite-4.6.4.3/changelog.txt 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/changelog.txt 2014-11-17 16:17:15.000000000 +0100
@@ -1,14 +1,66 @@
-Changes in 4.6.4.3
+Changes in 4.6.5.1
-1) Update release documents
+1) Update release documents.
-2) Add xt_LOG to the helpers files.
+2) Fix IPv6 LOG_BACKEND=LOG
-Changes in 4.6.4.2
+Changes in 4.6.5.1
-1) Update release documents
+1) Update release documents.
-2) Add ipt_LOG to the helpers files.
+2) Apply Alan Barrett's dhclient patch
+
+3) Make emacs sh-mode work better with lib.core
+
+4) Fix setting of options[SERVICEDIR] in configure
+
+5) Rename SYSTEMDDIR to SERVICEDIR in shorewallrc.*
+
+6) Eliminate redundant "/" in the installers
+
+Changes in 4.6.5 Final
+
+1) Update release documents.
+
+2) Apply Thomas D's manpage fixes.
+
+3) Correct .service files.
+
+Changes in 4.6.5 RC 1
+
+1) Update release documents.
+
+2) Correct a couple of defects in the -C code.
+
+3) Fix LOG_BACKEND on kernel 3.17.
+
+Changes in 4.6.5 Beta 3
+
+1) Update release documents.
+
+2) Process params files with $SHOREWALL_SHELL.
+
+3) Implement the -C option.
+
+Changes in 4.6.5 Beta 2
+
+1) Update release documents.
+
+2) Defect repair from the 4.6.4 branch.
+
+3) Allow both source and dest limits in the RATE LIMIT column.
+
+Changes in 4.6.5 Beta 1
+
+1) Update release documents.
+
+2) Merge defect repair from 4.6.4.
+
+Changes in 4.6.5 Beta 1
+
+1) Update release documents.
+
+2) New .service file strategy.
Changes in 4.6.4.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/configure new/shorewall-lite-4.6.5.2/configure
--- old/shorewall-lite-4.6.4.3/configure 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/configure 2014-11-17 16:17:15.000000000 +0100
@@ -28,7 +28,7 @@
#
# Build updates this
#
-VERSION=4.6.4.3
+VERSION=4.6.5.2
case "$BASH_VERSION" in
[4-9].*)
@@ -195,6 +195,10 @@
fi
fi
+if [ -z "${options[SERVICEDIR]}" ]; then
+ options[SERVICEDIR]="${options[SYSTEMD]}"
+fi
+
for on in \
HOST \
PREFIX \
@@ -209,7 +213,7 @@
INITFILE \
AUXINITSOURCE \
AUXINITFILE \
- SYSTEMD \
+ SERVICEDIR \
SERVICEFILE \
SYSCONFFILE \
SYSCONFDIR \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/configure.pl new/shorewall-lite-4.6.5.2/configure.pl
--- old/shorewall-lite-4.6.4.3/configure.pl 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/configure.pl 2014-11-17 16:17:15.000000000 +0100
@@ -31,7 +31,7 @@
# Build updates this
#
use constant {
- VERSION => '4.6.4.3'
+ VERSION => '4.6.5.2'
};
my %params;
@@ -154,6 +154,8 @@
$options{VARDIR} = '${VARLIB}/${PRODUCT}';
}
+$options{SERVICEDIR}=$options{SYSTEMD} unless $options{SERVICEDIR};
+
for ( qw/ HOST
PREFIX
SHAREDIR
@@ -167,8 +169,8 @@
INITFILE
AUXINITSOURCE
AUXINITFILE
- SYSTEMD
- SERVICEFILE
+ SERVICEDIR
+ SERVICEFILE
SYSCONFFILE
SYSCONFDIR
SPARSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/helpers new/shorewall-lite-4.6.5.2/helpers
--- old/shorewall-lite-4.6.4.3/helpers 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/helpers 2014-11-17 16:17:15.000000000 +0100
@@ -58,11 +58,13 @@
loadmodule nf_nat_snmp_basic
loadmodule nf_nat_tftp
#
-# While not actually helpers, these are handy to have. Not
-# all of these will be found on any given system, since
-# some are aliases on later kernels.
+# While not actually helpers, these are included here so that
+# LOG_BACKEND can work correctly. Not all of them will be
+# loaded, since at least one of them will be an alias on any
+# given system.
#
loadmodule ipt_LOG
+loadmodule nf_log_ipv4
loadmodule xt_LOG
loadmodule xt_NFLOG
loadmodule ipt_ULOG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/init.fedora.sh new/shorewall-lite-4.6.5.2/init.fedora.sh
--- old/shorewall-lite-4.6.4.3/init.fedora.sh 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/init.fedora.sh 2014-11-15 17:56:42.000000000 +0100
@@ -39,7 +39,7 @@
start() {
echo -n $"Starting Shorewall: "
- $shorewall $OPTIONS start 2>&1 | $logger
+ $shorewall $OPTIONS start $STARTOPTIONS 2>&1 | $logger
retval=${PIPESTATUS[0]}
if [[ $retval == 0 ]]; then
touch $lockfile
@@ -69,7 +69,7 @@
# Note that we don't simply stop and start since shorewall has a built in
# restart which stops the firewall if running and then starts it.
echo -n $"Restarting Shorewall: "
- $shorewall $OPTIONS restart 2>&1 | $logger
+ $shorewall $OPTIONS restart $RESTARTOPTIONS 2>&1 | $logger
retval=${PIPESTATUS[0]}
if [[ $retval == 0 ]]; then
touch $lockfile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/install.sh new/shorewall-lite-4.6.5.2/install.sh
--- old/shorewall-lite-4.6.4.3/install.sh 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/install.sh 2014-11-17 16:17:15.000000000 +0100
@@ -22,7 +22,7 @@
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
-VERSION=4.6.4.3
+VERSION=4.6.5.2
usage() # $1 = exit status
{
@@ -381,7 +381,7 @@
if [ -n "$INITFILE" ]; then
if [ -f "${INITSOURCE}" ]; then
- initfile="${DESTDIR}/${INITDIR}/${INITFILE}"
+ initfile="${DESTDIR}${INITDIR}/${INITFILE}"
install_file ${INITSOURCE} "$initfile" 0544
[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' "$initfile"
@@ -392,12 +392,16 @@
#
# Install the .service file
#
-if [ -n "$SYSTEMD" ]; then
- mkdir -p ${DESTDIR}${SYSTEMD}
+if [ -z "${SERVICEDIR}" ]; then
+ SERVICEDIR="$SYSTEMD"
+fi
+
+if [ -n "$SERVICEDIR" ]; then
+ mkdir -p ${DESTDIR}${SERVICEDIR}
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
- run_install $OWNERSHIP -m 644 $SERVICEFILE ${DESTDIR}${SYSTEMD}/$PRODUCT.service
- [ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SYSTEMD}/$PRODUCT.service
- echo "Service file $SERVICEFILE installed as ${DESTDIR}${SYSTEMD}/$PRODUCT.service"
+ run_install $OWNERSHIP -m 644 $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
+ [ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
+ echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
fi
#
# Install the config file
@@ -539,7 +543,7 @@
fi
if [ $configure -eq 1 -a -z "$DESTDIR" -a -n "$first_install" -a -z "${cygwin}${mac}" ]; then
- if [ -n "$SYSTEMD" ]; then
+ if [ -n "$SERVICEDIR" ]; then
if systemctl enable ${PRODUCT}.service; then
echo "$Product will start automatically at boot"
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/manpages/shorewall-lite-vardir.5 new/shorewall-lite-4.6.5.2/manpages/shorewall-lite-vardir.5
--- old/shorewall-lite-4.6.4.3/manpages/shorewall-lite-vardir.5 2014-10-19 17:03:23.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/manpages/shorewall-lite-vardir.5 2014-11-17 16:20:35.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: shorewall-lite-vardir
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\" Date: 10/19/2014
+.\" Date: 11/17/2014
.\" Manual: Configuration Files
.\" Source: Configuration Files
.\" Language: English
.\"
-.TH "SHOREWALL\-LITE\-VAR" "5" "10/19/2014" "Configuration Files" "Configuration Files"
+.TH "SHOREWALL\-LITE\-VAR" "5" "11/17/2014" "Configuration Files" "Configuration Files"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/manpages/shorewall-lite.8 new/shorewall-lite-4.6.5.2/manpages/shorewall-lite.8
--- old/shorewall-lite-4.6.4.3/manpages/shorewall-lite.8 2014-10-19 17:03:24.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/manpages/shorewall-lite.8 2014-11-17 16:20:36.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: shorewall-lite
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\" Date: 10/19/2014
+.\" Date: 11/17/2014
.\" Manual: Administrative Commands
.\" Source: Administrative Commands
.\" Language: English
.\"
-.TH "SHOREWALL\-LITE" "8" "10/19/2014" "Administrative Commands" "Administrative Commands"
+.TH "SHOREWALL\-LITE" "8" "11/17/2014" "Administrative Commands" "Administrative Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -71,13 +71,13 @@
.HP \w'\fBshorewall\-lite\fR\ 'u
\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBreset\fR
.HP \w'\fBshorewall\-lite\fR\ 'u
-\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBrestart\fR [\fB\-n\fR] [\fB\-p\fR] [\fIdirectory\fR]
+\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBrestart\fR [\fB\-n\fR] [\fB\-p\fR\ [\fB\-C\fR]] [\fIdirectory\fR]
.HP \w'\fBshorewall\-lite\fR\ 'u
-\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBrestore\fR [\fIfilename\fR]
+\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBrestore\fR [\fB\-C\fR] [\fIfilename\fR]
.HP \w'\fBshorewall\-lite\fR\ 'u
\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBrun\fR function [\fIparameter\ \&.\&.\&.\fR]
.HP \w'\fBshorewall\-lite\fR\ 'u
-\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBsave\fR [\fIfilename\fR]
+\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBsave\fR\ [\fB\-C\fR] [\fIfilename\fR]
.HP \w'\fBshorewall\-lite\fR\ 'u
\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR] [\-\fIoptions\fR] [\fBshow\ |\ list\ |\ ls\ \fR] [\fB\-b\fR] [\fB\-x\fR] [\fB\-l\fR] [\fB\-t\fR\ {\fBfilter\fR|\fBmangle\fR|\fBnat\fR|\fBraw|rawpost\fR}] [[\fBchain\fR]\ \fIchain\fR...]
.HP \w'\fBshorewall\-lite\fR\ 'u
@@ -95,7 +95,7 @@
.HP \w'\fBshorewall\-lite\fR\ 'u
\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR] [\-\fIoptions\fR] [\fBshow\ |\ list\ |\ ls\ \fR] [\fB\-m\fR] \fBlog\fR
.HP \w'\fBshorewall\-lite\fR\ 'u
-\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBstart\fR [\fB\-n\fR] [\fB\-p\fR]
+\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBstart\fR [\fB\-n\fR] [\fB\-p\fR] [\fB\-f\fR] [\fB\-C\fR]
.HP \w'\fBshorewall\-lite\fR\ 'u
\fBshorewall\-lite\fR [\fBtrace\fR|\fBdebug\fR\ [\fBnolock\fR]] [\-\fIoptions\fR] \fBstop\fR
.HP \w'\fBshorewall\-lite\fR\ 'u
@@ -118,8 +118,9 @@
\fBoption\fR
prevents the command from attempting to acquire the Shorewall\-lite lockfile\&. It is useful if you need to include
\fBshorewall\fR
-commands in
-/etc/shorewall/started\&.
+commands in the
+started
+\m[blue]\fBextension script\fR\m[]\&\s-2\u[1]\d\s+2\&.
.PP
The
\fIoptions\fR
@@ -127,13 +128,13 @@
\fBv\fR
and
\fBq\fR\&. If the options are omitted, the amount of output is determined by the setting of the VERBOSITY parameter in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2(5)\&. Each
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5)\&. Each
\fBv\fR
adds one to the effective verbosity and each
\fBq\fR
subtracts one from the effective VERBOSITY\&. Alternately,
\fBv\fR
-may be followed immediately with one of \-1,0,1,2 to specify a specify VERBOSITY\&. There may be no white\-space between
+may be followed immediately with one of \-1,0,1,2 to specify VERBOSITY\&. There may be no white\-space between
\fBv\fR
and the VERBOSITY\&.
.PP
@@ -153,7 +154,7 @@
The
\fIinterface\fR
argument names an interface defined in the
-\m[blue]\fBshorewall\-interfaces\fR\m[]\&\s-2\u[2]\d\s+2(5) file\&. A
+\m[blue]\fBshorewall\-interfaces\fR\m[]\&\s-2\u[3]\d\s+2(5) file\&. A
\fIhost\-list\fR
is comma\-separated list whose elements are host or network addresses\&.
.if n \{\
@@ -215,7 +216,7 @@
The
\fIinterface\fR
argument names an interface defined in the
-\m[blue]\fBshorewall\-interfaces\fR\m[]\&\s-2\u[2]\d\s+2(5) file\&. A
+\m[blue]\fBshorewall\-interfaces\fR\m[]\&\s-2\u[3]\d\s+2(5) file\&. A
\fIhost\-list\fR
is comma\-separated list whose elements are a host or network address\&.
.RE
@@ -267,7 +268,7 @@
and /var/lib/shorewall\-lite/save\&. If no
\fIfilename\fR
is given then the file specified by RESTOREFILE in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2(5) is assumed\&.
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5) is assumed\&.
.RE
.PP
\fBhelp\fR
@@ -307,14 +308,14 @@
.RS 4
Causes traffic from the listed
\fIaddress\fRes to be logged then discarded\&. Logging occurs at the log level specified by the BLACKLIST_LOGLEVEL setting in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2
(5)\&.
.RE
.PP
\fBlogwatch\fR
.RS 4
Monitors the log file specified by the LOGFILE option in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2(5) and produces an audible alarm when new Shorewall\-lite messages are logged\&. The
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5) and produces an audible alarm when new Shorewall\-lite messages are logged\&. The
\fB\-m\fR
option causes the MAC address of each packet source to be displayed if that information is available\&. The
\fIrefresh\-interval\fR
@@ -326,7 +327,7 @@
.RS 4
Causes traffic from the listed
\fIaddress\fRes to be logged then rejected\&. Logging occurs at the log level specified by the BLACKLIST_LOGLEVEL setting in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2
(5)\&.
.RE
.PP
@@ -363,6 +364,10 @@
option causes the connection tracking table to be flushed; the
\fBconntrack\fR
utility must be installed to use this option\&.
+.sp
+The
+\fB\-C\fR
+option was added in Shorewall 4\&.6\&.5\&. If the specified (or implicit) firewall script is the one that generated the current running configuration, then the running netfilter configuration will be reloaded as is so as to preserve the iptables packet and byte counters\&.
.RE
.PP
\fBrestore\fR
@@ -375,7 +380,30 @@
\fBshorewall\-lite save\fR; if no
\fIfilename\fR
is given then Shorewall\-lite will be restored from the file specified by the RESTOREFILE option in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2(5)\&.
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5)\&.
+.if n \{\
+.sp
+.\}
+.RS 4
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBCaution\fR
+.ps -1
+.br
+If your iptables ruleset depends on variables that are detected at run\-time, either in your params file or by Shorewall\-generated code,
+\fBrestore\fR
+will use the values that were current when the ruleset was saved, which may be different from the current values\&.
+.sp .5v
+.RE
+The
+\fB\-C\fR
+option was added in Shorewall 4\&.6\&.5\&. If the
+\fB\-C\fR
+option was specified during
+\fBshorewall save\fR, then the counters saved by that operation will be restored\&.
.RE
.PP
\fBrun\fR
@@ -401,7 +429,11 @@
\fBshorewall\-lite restore\fR\&. If
\fIfilename\fR
is not given then the state is saved in the file specified by the RESTOREFILE option in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2(5)\&.
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5)\&.
+.sp
+The
+\fB\-C\fR
+option, added in Shorewall 4\&.6\&.5, causes the iptables packet and byte counters to be saved along with the chains and rules\&.
.RE
.PP
\fBshow\fR
@@ -488,14 +520,14 @@
.PP
\fBipa\fR
.RS 4
-Added in Shorewall 4\&.4\&.17\&. Displays the per\-IP accounting counters (\m[blue]\fBshorewall\-accounting\fR\m[]\&\s-2\u[3]\d\s+2
+Added in Shorewall 4\&.4\&.17\&. Displays the per\-IP accounting counters (\m[blue]\fBshorewall\-accounting\fR\m[]\&\s-2\u[4]\d\s+2
(5))\&.
.RE
.PP
\fBlog\fR
.RS 4
Displays the last 20 Shorewall\-lite messages from the log file specified by the LOGFILE option in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2(5)\&. The
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5)\&. The
\fB\-m\fR
option causes the MAC address of each packet source to be displayed if that information is available\&.
.RE
@@ -552,14 +584,33 @@
option causes the connection tracking table to be flushed; the
\fBconntrack\fR
utility must be installed to use this option\&.
+.sp
+The
+\fB\-m\fR
+option prevents the firewall script from modifying the current routing configuration\&.
+.sp
+The
+\fB\-f\fR
+option was added in Shorewall 4\&.6\&.5\&. If the RESTOREFILE named in
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5) exists, is executable and is not older than the current filewall script, then that saved configuration is restored\&.
+.sp
+The
+\fB\-C\fR
+option was added in Shorewall 4\&.6\&.5 and is only meaningful when the
+\fB\-f\fR
+option is also specified\&. If the previously\-saved configuration is restored, and if the
+\fB\-C\fR
+option was also specified in the
+\fBsave\fR
+command, then the packet and byte counters will be restored\&.
.RE
.PP
\fBstop\fR
.RS 4
Stops the firewall\&. All existing connections, except those listed in
-\m[blue]\fBshorewall\-routestopped\fR\m[]\&\s-2\u[4]\d\s+2(5) or permitted by the ADMINISABSENTMINDED option in
-\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[1]\d\s+2(5), are taken down\&. The only new traffic permitted through the firewall is from systems listed in
-\m[blue]\fBshorewall\-routestopped\fR\m[]\&\s-2\u[4]\d\s+2(5) or by ADMINISABSENTMINDED\&.
+\m[blue]\fBshorewall\-routestopped\fR\m[]\&\s-2\u[5]\d\s+2(5) or permitted by the ADMINISABSENTMINDED option in
+\m[blue]\fBshorewall\&.conf\fR\m[]\&\s-2\u[2]\d\s+2(5), are taken down\&. The only new traffic permitted through the firewall is from systems listed in
+\m[blue]\fBshorewall\-routestopped\fR\m[]\&\s-2\u[5]\d\s+2(5) or by ADMINISABSENTMINDED\&.
.sp
If
\fB\-f\fR
@@ -608,21 +659,26 @@
shorewall\-accounting(5), shorewall\-actions(5), shorewall\-blacklist(5), shorewall\-hosts(5), shorewall_interfaces(5), shorewall\-ipsets(5), shorewall\-maclist(5), shorewall\-masq(5), shorewall\-nat(5), shorewall\-netmap(5), shorewall\-params(5), shorewall\-policy(5), shorewall\-providers(5), shorewall\-proxyarp(5), shorewall\-rtrules(5), shorewall\-routestopped(5), shorewall\-rules(5), shorewall\&.conf(5), shorewall\-secmarks(5), shorewall\-tcclasses(5), shorewall\-tcdevices(5), shorewall\-tcrules(5), shorewall\-tos(5), shorewall\-tunnels(5), shorewall\-zones(5)
.SH "NOTES"
.IP " 1." 4
+extension script
+.RS 4
+\%http://www.shorewall.net../shorewall_extension_scripts.html
+.RE
+.IP " 2." 4
shorewall.conf
.RS 4
\%http://www.shorewall.netshorewall.conf.html
.RE
-.IP " 2." 4
+.IP " 3." 4
shorewall-interfaces
.RS 4
\%http://www.shorewall.netshorewall-interfaces.html
.RE
-.IP " 3." 4
+.IP " 4." 4
shorewall-accounting
.RS 4
\%http://www.shorewall.netmanpages/shorewall-accounting.html
.RE
-.IP " 4." 4
+.IP " 5." 4
shorewall-routestopped
.RS 4
\%http://www.shorewall.netshorewall-routestopped.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/manpages/shorewall-lite.conf.5 new/shorewall-lite-4.6.5.2/manpages/shorewall-lite.conf.5
--- old/shorewall-lite-4.6.4.3/manpages/shorewall-lite.conf.5 2014-10-19 17:03:21.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/manpages/shorewall-lite.conf.5 2014-11-17 16:20:33.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: shorewall-lite.conf
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\" Date: 10/19/2014
+.\" Date: 11/17/2014
.\" Manual: Configuration Files
.\" Source: Configuration Files
.\" Language: English
.\"
-.TH "SHOREWALL\-LITE\&.CO" "5" "10/19/2014" "Configuration Files" "Configuration Files"
+.TH "SHOREWALL\-LITE\&.CO" "5" "11/17/2014" "Configuration Files" "Configuration Files"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/manpages/shorewall-lite.xml new/shorewall-lite-4.6.5.2/manpages/shorewall-lite.xml
--- old/shorewall-lite-4.6.4.3/manpages/shorewall-lite.xml 2014-10-19 17:03:25.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/manpages/shorewall-lite.xml 2014-11-17 16:20:36.000000000 +0100
@@ -299,7 +299,7 @@
<arg><option>-n</option></arg>
- <arg><option>-p</option></arg>
+ <arg><option>-p</option><arg><option>-C</option></arg></arg>
<arg><replaceable>directory</replaceable></arg>
</cmdsynopsis>
@@ -314,6 +314,8 @@
<arg choice="plain"><option>restore</option></arg>
+ <arg><option>-C</option></arg>
+
<arg><replaceable>filename</replaceable></arg>
</cmdsynopsis>
@@ -340,7 +342,8 @@
<arg>-<replaceable>options</replaceable></arg>
- <arg choice="plain"><option>save</option></arg>
+ <arg
+ choice="plain"><option>save</option><arg><option>-C</option></arg></arg>
<arg choice="opt"><replaceable>filename</replaceable></arg>
</cmdsynopsis>
@@ -474,6 +477,10 @@
<arg><option>-n</option></arg>
<arg><option>-p</option></arg>
+
+ <arg><option>-f</option></arg>
+
+ <arg><option>-C</option></arg>
</cmdsynopsis>
<cmdsynopsis>
@@ -526,8 +533,9 @@
<para>The nolock <option>option</option> prevents the command from
attempting to acquire the Shorewall-lite lockfile. It is useful if you
- need to include <command>shorewall</command> commands in
- <filename>/etc/shorewall/started</filename>.</para>
+ need to include <command>shorewall</command> commands in the
+ <filename>started</filename> <ulink
+ url="../shorewall_extension_scripts.html">extension script</ulink>.</para>
<para>The <emphasis>options</emphasis> control the amount of output that
the command produces. They consist of a sequence of the letters <emphasis
@@ -538,8 +546,8 @@
role="bold">v</emphasis> adds one to the effective verbosity and each
<emphasis role="bold">q</emphasis> subtracts one from the effective
VERBOSITY. Alternately, <emphasis role="bold">v</emphasis> may be followed
- immediately with one of -1,0,1,2 to specify a specify VERBOSITY. There may
- be no white-space between <emphasis role="bold">v</emphasis> and the
+ immediately with one of -1,0,1,2 to specify VERBOSITY. There may be no
+ white-space between <emphasis role="bold">v</emphasis> and the
VERBOSITY.</para>
<para>The <emphasis>options</emphasis> may also include the letter
@@ -819,6 +827,12 @@
<para>The <option>-p</option> option causes the connection tracking
table to be flushed; the <command>conntrack</command> utility must
be installed to use this option.</para>
+
+ <para>The <option>-C</option> option was added in Shorewall 4.6.5.
+ If the specified (or implicit) firewall script is the one that
+ generated the current running configuration, then the running
+ netfilter configuration will be reloaded as is so as to preserve the
+ iptables packet and byte counters.</para>
</listitem>
</varlistentry>
@@ -834,6 +848,19 @@
<emphasis>filename</emphasis> is given then Shorewall-lite will be
restored from the file specified by the RESTOREFILE option in <ulink
url="shorewall.conf.html">shorewall.conf</ulink>(5).</para>
+
+ <caution>
+ <para>If your iptables ruleset depends on variables that are
+ detected at run-time, either in your params file or by
+ Shorewall-generated code, <command>restore</command> will use the
+ values that were current when the ruleset was saved, which may be
+ different from the current values.</para>
+ </caution>
+
+ <para>The <option>-C</option> option was added in Shorewall 4.6.5.
+ If the <option>-C</option> option was specified during <emphasis
+ role="bold">shorewall save</emphasis>, then the counters saved by
+ that operation will be restored.</para>
</listitem>
</varlistentry>
@@ -865,6 +892,10 @@
<emphasis>filename</emphasis> is not given then the state is saved
in the file specified by the RESTOREFILE option in <ulink
url="shorewall.conf.html">shorewall.conf</ulink>(5).</para>
+
+ <para>The <option>-C</option> option, added in Shorewall 4.6.5,
+ causes the iptables packet and byte counters to be saved along with
+ the chains and rules.</para>
</listitem>
</varlistentry>
@@ -1102,6 +1133,22 @@
<para>The <option>-p</option> option causes the connection tracking
table to be flushed; the <command>conntrack</command> utility must
be installed to use this option.</para>
+
+ <para>The <option>-m</option> option prevents the firewall script
+ from modifying the current routing configuration.</para>
+
+ <para>The <option>-f</option> option was added in Shorewall 4.6.5.
+ If the RESTOREFILE named in <ulink
+ url="shorewall.conf.html">shorewall.conf</ulink>(5) exists, is
+ executable and is not older than the current filewall script, then
+ that saved configuration is restored.</para>
+
+ <para>The <option>-C</option> option was added in Shorewall 4.6.5
+ and is only meaningful when the <option>-f</option> option is also
+ specified. If the previously-saved configuration is restored, and if
+ the <option>-C</option> option was also specified in the <emphasis
+ role="bold">save</emphasis> command, then the packet and byte
+ counters will be restored.</para>
</listitem>
</varlistentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/modules.essential new/shorewall-lite-4.6.5.2/modules.essential
--- old/shorewall-lite-4.6.4.3/modules.essential 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/modules.essential 2014-11-17 16:17:15.000000000 +0100
@@ -28,4 +28,3 @@
loadmodule iptable_raw
loadmodule xt_state
loadmodule xt_tcpudp
-loadmodule ipt_LOG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/modules.extensions new/shorewall-lite-4.6.5.2/modules.extensions
--- old/shorewall-lite-4.6.4.3/modules.extensions 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/modules.extensions 2014-11-17 16:17:15.000000000 +0100
@@ -32,7 +32,6 @@
loadmodule ipt_iprange
loadmodule ipt_length
loadmodule ipt_limit
-loadmodule ipt_LOG
loadmodule ipt_mac
loadmodule ipt_mark
loadmodule ipt_MARK
@@ -58,4 +57,3 @@
loadmodule ipt_TOS
loadmodule ipt_ttl
loadmodule ipt_TTL
-loadmodule ipt_ULOG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/modules.xtables new/shorewall-lite-4.6.5.2/modules.xtables
--- old/shorewall-lite-4.6.4.3/modules.xtables 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/modules.xtables 2014-11-17 16:17:15.000000000 +0100
@@ -31,7 +31,6 @@
loadmodule xt_mark
loadmodule xt_MARK
loadmodule xt_multiport
-loadmodule xt_NFLOG
loadmodule xt_NFQUEUE
loadmodule xt_owner
loadmodule xt_physdev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/releasenotes.txt new/shorewall-lite-4.6.5.2/releasenotes.txt
--- old/shorewall-lite-4.6.4.3/releasenotes.txt 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/releasenotes.txt 2014-11-17 16:17:15.000000000 +0100
@@ -1,7 +1,7 @@
----------------------------------------------------------------------------
- S H O R E W A L L 4 . 6 . 4 . 3
+ S H O R E W A L L 4 . 6 . 5 . 2
------------------------------------
- O c t o b e r 2 0 , 2 0 1 4
+ N o v e m b e r 1 8 , 2 0 1 4
----------------------------------------------------------------------------
I. PROBLEMS CORRECTED IN THIS RELEASE
@@ -14,82 +14,45 @@
I. P R O B L E M S C O R R E C T E D I N T H I S R E L E A S E
----------------------------------------------------------------------------
-4.6.4.3
+4.6.5.2
-1) The fix for LOGBACKEND in 4.6.4.2 worked on some older
- distributions but not on newer ones. This release fixes the problem
- in the remaining cases.
+1) LOG_BACKEND=LOG failed at run-time for all but the most recent
+ kernels.
-4.6.4.2
+4.6.5.1
-1) Setting LOGBACKEND=ipt_LOG could result in the following startup
- failure at boot:
+1) The generated script can now detect an gateway address assigned by
+ later versions of that program (Alan Barrett).
- Starting shorewall ...
- /var/lib/shorewall/firewall: line 2080: echo: write error: No such file or directory
- WARNING: Unable to set log backend to ipt_LOG
+2) In 4.6.5, the bash-based configure script would issue the following
+ diagnostic if SERVICEDIR was not specified in the shorewallrc
+ file:
-4.6.4.1
-
-1) Confusing 'usage' output was produced under the following
- conditions:
-
- a) 4.6.4 installed
-
- b) The running firewall was compiled on an earlier release.
-
- c) A 'safe-start', 'save-restart', 'save' or 'try' command is
- executed.
-
- This problem has been corrected.
-
-2) The 'optional' option has been removed from the IPv4 Universal
- interfaces file, as that option caused startup failures.
-
-4.6.4 Final.
+ ./configure: line 199: [SERVICEDIR]=: command not found
-1) This release includes defect repair through release 4.6.3.4.
-
-2) Two corrections have been made to the .service files:
+ This was compounded by the fact that all of the released
+ shorewallrc files still specified SYSTEMDDIR rather than SERVICEDIR
+ (Evangelos Foutras)
- - The .service files now correctly specify
-
- WantedBy=basic.target
+3) The shorewallrc.archlinux file now reflects a change in SBINDIR
+ that occurred in Arch Linux in mid 2013 (Evangelos Foutras).
- - Conflicting services have been added.
-
-3) A warning message generated during stoppedrules processing
- previously referred to the file as routestopped.
-
-4) Previously, the stoppedrules file did not work properly when
- ADMINISABSENTMINDED=No.
-
- - A warning message was issued stating that the file would be
- processed as if ADMINISABSENTMINDED=Yes, and it was.
-
- - Unfortunately, part of the surrounding rule-generating logic
- proceded as if ADMINISABSENTMINDED=No, leading to an unusable
- ruleset.
-
- This problem has been corrected by changing the way that
- stoppedrules works with ADMINISABSENTMINDED=No. In the new
- implementation:
-
- - All existing connections continue to work.
- - Response packets and related connection requests to new accepted
- connections are accepted (in other words, the resulting ruleset
- is stateful).
+4.6.5
- See shorewall[6].conf(5) for additional details.
+1) This release includes defect repair through release 4.6.4.3.
-5) The .spec files now set SBINDIR correctly.
+2) On kernel 3.17, LOG_BACKEND=LOG previously failed with the
+ diagnostics:
-6) The -lite installers now create INITDIR if it doesn't exist.
+ Setting up log backend
+ /var/lib/shorewall/.restart: line 2075: echo: write error:
+ No such file or directory
+ WARNING: Unable to set log backend to ipt_LOG
-7) The installers no longer attempt to create a symbolic link to the
- init script when no init script is installed.
+3) A number of corrections have been made to the manpages (Thomas D).
-8) A large number of defects in the uninstallers have been corrected.
+4) Previously, if $OPTIONS was set in /etc/sysconfig/shorewall-init,
+ then servicd failed to start/stop Shorewall-init.
----------------------------------------------------------------------------
I I. K N O W N P R O B L E M S R E M A I N I N G
@@ -102,39 +65,83 @@
I I I. N E W F E A T U R E S I N T H I S R E L E A S E
----------------------------------------------------------------------------
-1) Install support for Centos 7 and Foobar 7 has been added (Tuomo
- Soini).
-
-2) A 'terminating' option has been added to shorewall[6].actions.
- this option, when used with the 'builtin' option, indicates to the
- compiler that the built-in action is terminating. This allows the
- optimizer to omit rules after an unconditional jump to the
- built-in.
-
-3) A LOG_BACKEND option has been added to allow specification of the
- default logging backends. See shorewall.conf(5) and
- shorewall6.conf(5) for details.
-
-4) The SAVE_IPSETS option may now specify a list of ipsets to be
- saved. When such a list is specified, only those ipsets together
- with the ipsets supporting dynamic zones are saved.
-
- Shorewall6 now supports the SAVE_IPSETS option. When
- SAVE_IPSETS=Yes, only ipv6 ipsets are saved. For Shorewall, if
- SAVE_IPSETS=ipv4, then only ipv4 ipsets are saved. Both features
- require ipset version 5 or later.
-
- Note that shorewall.conf and shorewall6.conf may now both specify
- SAVE_IPSETS.
-
-5) The SBINDIR setting for SuSE now defaults to /usr/sbin/.
-
-6) With the exception of Shorewall-core, the tarball installers and
- uninstallers now support a -n option which inhibits any attempt to
- change the startup configuration. The -n option can be
- automatically invoked by setting the SANDBOX variable to a
- non-empty value, either in the environment or in your shorewallrc
- file.
+1) The configure scripts and installers now support SERVICEDIR as an
+ alternative to SYSTEMD. For compatability, SERVICED is an alias
+ for SERVICEDIR.
+
+2) The installers now offer a choice of .service files, selected by
+ the SERVICEFILE option. The default remains $PRODUCT.service. Each
+ product supplying a .service file now supplies a .service.214. The
+ differences between the standard .service files and the service.214
+ files are:
+
+ a) They specify 'after=network-online.target' rather than
+ 'after=network.target'.
+
+ b) The file shorewall-init.service.214 specifies
+ 'before=network-pre.target' rather than
+ 'before=network.target'. That file requires serviced 214 or
+ later, hence the names of the new files.
+
+ Regardless of which file is selected, it is installed in
+ $SERVICEDIR/$PRODUCT.service.
+
+3) The RATE LIMIT column of the rules files now allows specification
+ of both a per-source and per-destination limit. See
+ shorewall[6]-rules(5) for details.
+
+4) Previously, /bin/sh was used unconditionally to process the helper
+ script 'getparams'. That shell script reads the params file and
+ passes back the (variable,value) pairs to the compiler. Beginning
+ with this release, $SHOREWALL_SHELL is used to process that script,
+ unless the compilation is for export, in which case /bin/sh is
+ still used.
+
+ Note that the default value of $SHOREWALL_SHELL is /bin/sh, so
+ unless your configuration sets that variable, this enhancement will
+ have no effect. Similarly, on an administrative system, this
+ enhancement has no effect on the processing of the 'compile -e',
+ 'load', 'reload' and 'export' commands.
+
+5) A -C option has been added to several commands to allow the
+ ip[6]tables packet and byte counters to be preserved.
+
+ - save command
+
+ Causes the packet and byte counters to be saved along with the
+ chains and rules.
+
+ - restore command
+
+ Causes the packet and byte counters (if saved) to be restored
+ along with the chains and rules.
+
+ - start command
+
+ With Shorewall and Shorewall6, the -C option only has an effect
+ if the -f option is also specified. If a previously-saved
+ configuration is restored, then the packet and byte counters (if
+ saved) will be restored along with the chains and rules.
+
+ - restart command
+
+ If an existing compiled script is used (no recompilation
+ required) and if that script generated the current running
+ configuration, then the current netfilter configuration is
+ reloaded as is so as to preserve the current packet and byte
+ counters.
+
+ If you wish to (approximately) preserve the counters over a
+ possibly unexpected reboot, then:
+
+ - Create a cron job that periodically does 'shorewall save -C'
+
+ - Specify the -C and -f option in the STARTOPTIONS variable in
+ either /etc/default/shorewall[6][-lite] or
+ /etc/sysconfig/shorewall[6][-lite], whichever is supported by your
+ distribution. Note that some distributions do not distribute these
+ files so you may have to create the one(s) you need (such as
+ /etc/sysconfig/shorewall).
----------------------------------------------------------------------------
I V. M I G R A T I O N I S S U E S
@@ -429,6 +436,110 @@
----------------------------------------------------------------------------
V. N O T E S F R O M O T H E R 4 . 6 R E L E A S E S
----------------------------------------------------------------------------
+ P R O B L E M S C O R R E C T E D I N 4 . 6 . 4
+----------------------------------------------------------------------------
+
+4.6.4.1
+
+1) Confusing 'usage' output was produced under the following
+ conditions:
+
+ a) 4.6.4 installed
+
+ b) The running firewall was compiled on an earlier release.
+
+ c) A 'safe-start', 'save-restart', 'save' or 'try' command is
+ executed.
+
+ This problem has been corrected.
+
+2) The 'optional' option has been removed from the IPv4 Universal
+ interfaces file, as that option caused startup failures.
+
+4.6.4 Final.
+
+1) This release includes defect repair through release 4.6.3.4.
+
+2) Two corrections have been made to the .service files:
+
+ - The .service files now correctly specify
+
+ WantedBy=basic.target
+
+ - Conflicting services have been added.
+
+3) A warning message generated during stoppedrules processing
+ previously referred to the file as routestopped.
+
+4) Previously, the stoppedrules file did not work properly when
+ ADMINISABSENTMINDED=No.
+
+ - A warning message was issued stating that the file would be
+ processed as if ADMINISABSENTMINDED=Yes, and it was.
+
+ - Unfortunately, part of the surrounding rule-generating logic
+ proceded as if ADMINISABSENTMINDED=No, leading to an unusable
+ ruleset.
+
+ This problem has been corrected by changing the way that
+ stoppedrules works with ADMINISABSENTMINDED=No. In the new
+ implementation:
+
+ - All existing connections continue to work.
+ - Response packets and related connection requests to new accepted
+ connections are accepted (in other words, the resulting ruleset
+ is stateful).
+
+ See shorewall[6].conf(5) for additional details.
+
+5) The .spec files now set SBINDIR correctly.
+
+6) The -lite installers now create INITDIR if it doesn't exist.
+
+7) The installers no longer attempt to create a symbolic link to the
+ init script when no init script is installed.
+
+8) A large number of defects in the uninstallers have been corrected.
+
+----------------------------------------------------------------------------
+ N E W F E A T U R E S I N 4 . 6 . 4
+----------------------------------------------------------------------------
+
+1) Install support for Centos 7 and Foobar 7 has been added (Tuomo
+ Soini).
+
+2) A 'terminating' option has been added to shorewall[6].actions.
+ this option, when used with the 'builtin' option, indicates to the
+ compiler that the built-in action is terminating. This allows the
+ optimizer to omit rules after an unconditional jump to the
+ built-in.
+
+3) A LOG_BACKEND option has been added to allow specification of the
+ default logging backends. See shorewall.conf(5) and
+ shorewall6.conf(5) for details.
+
+4) The SAVE_IPSETS option may now specify a list of ipsets to be
+ saved. When such a list is specified, only those ipsets together
+ with the ipsets supporting dynamic zones are saved.
+
+ Shorewall6 now supports the SAVE_IPSETS option. When
+ SAVE_IPSETS=Yes, only ipv6 ipsets are saved. For Shorewall, if
+ SAVE_IPSETS=ipv4, then only ipv4 ipsets are saved. Both features
+ require ipset version 5 or later.
+
+ Note that shorewall.conf and shorewall6.conf may now both specify
+ SAVE_IPSETS.
+
+5) The SBINDIR setting for SuSE now defaults to /usr/sbin/.
+
+6) With the exception of Shorewall-core, the tarball installers and
+ uninstallers now support a -n option which inhibits any attempt to
+ change the startup configuration. The -n option can be
+ automatically invoked by setting the SANDBOX variable to a
+ non-empty value, either in the environment or in your shorewallrc
+ file.
+
+----------------------------------------------------------------------------
P R O B L E M S C O R R E C T E D I N 4 . 6 . 3
----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewall-lite.service new/shorewall-lite-4.6.5.2/shorewall-lite.service
--- old/shorewall-lite-4.6.4.3/shorewall-lite.service 2014-10-19 16:44:01.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewall-lite.service 2014-11-15 17:56:42.000000000 +0100
@@ -13,7 +13,7 @@
RemainAfterExit=yes
EnvironmentFile=-/etc/sysconfig/shorewall-lite
StandardOutput=syslog
-ExecStart=/sbin/shorewall-lite $OPTIONS start
+ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
ExecStop=/sbin/shorewall-lite $OPTIONS stop
[Install]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewall-lite.service.214 new/shorewall-lite-4.6.5.2/shorewall-lite.service.214
--- old/shorewall-lite-4.6.4.3/shorewall-lite.service.214 1970-01-01 01:00:00.000000000 +0100
+++ new/shorewall-lite-4.6.5.2/shorewall-lite.service.214 2014-11-15 17:56:42.000000000 +0100
@@ -0,0 +1,20 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall
+#
+# Copyright 2011 Jonathan Underwood <jonathan.underwood(a)gmail.com>
+#
+[Unit]
+Description=Shorewall IPv4 firewall (lite)
+After=network-online.target
+Conflicts=iptables.service firewalld.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=-/etc/sysconfig/shorewall-lite
+StandardOutput=syslog
+ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall-lite $OPTIONS stop
+
+[Install]
+WantedBy=basic.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewall-lite.spec new/shorewall-lite-4.6.5.2/shorewall-lite.spec
--- old/shorewall-lite-4.6.4.3/shorewall-lite.spec 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewall-lite.spec 2014-11-17 16:17:15.000000000 +0100
@@ -1,6 +1,6 @@
%define name shorewall-lite
-%define version 4.6.4
-%define release 3
+%define version 4.6.5
+%define release 2
%define initdir /etc/init.d
Summary: Shoreline Firewall Lite is an iptables-based firewall for Linux systems.
@@ -106,12 +106,20 @@
%doc COPYING changelog.txt releasenotes.txt
%changelog
-* Sun Oct 19 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-3
-* Wed Oct 15 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-2
-* Fri Oct 10 2014 Tom Eastep tom(a)shorewall.net
-- Updated to 4.6.4-1
+* Sat Nov 15 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-2
+* Fri Nov 14 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-1
+* Thu Nov 06 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0base
+* Sat Nov 01 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0RC1
+* Thu Oct 30 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta3
+* Mon Oct 20 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta2
+* Wed Oct 08 2014 Tom Eastep tom(a)shorewall.net
+- Updated to 4.6.5-0Beta1
* Mon Oct 06 2014 Tom Eastep tom(a)shorewall.net
- Updated to 4.6.4-0base
* Thu Oct 02 2014 Tom Eastep tom(a)shorewall.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.apple new/shorewall-lite-4.6.5.2/shorewallrc.apple
--- old/shorewall-lite-4.6.4.3/shorewallrc.apple 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.apple 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE= #Unused on OS X
INITSOURCE= #Unused on OS X
ANNOTATED= #Unused on OS X
-SYSTEMD= #Unused on OS X
+SERVICEDIR= #Unused on OS X
SERVICEFILE= #Unused on OS X
SYSCONFDIR= #Unused on OS X
SPARSE=Yes #Only install $PRODUCT/$PRODUCT.conf in $CONFDIR.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.archlinux new/shorewall-lite-4.6.5.2/shorewallrc.archlinux
--- old/shorewall-lite-4.6.4.3/shorewallrc.archlinux 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.archlinux 2014-11-17 16:17:15.000000000 +0100
@@ -8,14 +8,14 @@
LIBEXECDIR=${PREFIX}/share #Directory for executable scripts.
PERLLIBDIR=${PREFIX}/share/shorewall #Directory to install Shorewall Perl module directory
CONFDIR=/etc #Directory where subsystem configurations are installed
-SBINDIR=/usr/sbin #Directory where system administration programs are installed
+SBINDIR=/usr/bin #Directory where system administration programs are installed
MANDIR=${SHAREDIR}/man #Directory where manpages are installed.
INITDIR= #Directory where SysV init scripts are installed.
INITFILE= #Name of the product's installed SysV init script
INITSOURCE= #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
SYSCONFDIR= #Directory where SysV init parameter files are installed
-SYSTEMD=/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR=/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
VARLIB=/var/lib #Directory where product variable data is stored.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.cygwin new/shorewall-lite-4.6.5.2/shorewallrc.cygwin
--- old/shorewall-lite-4.6.4.3/shorewallrc.cygwin 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.cygwin 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE= #Unused on Cygwin
INITSOURCE= #Unused on Cygwin
ANNOTATED= #Unused on Cygwin
-SYSTEMD= #Unused on Cygwin
+SERVICEDIR= #Unused on Cygwin
SERVICEFILE= #Unused on Cygwin
SYSCONFDIR= #Unused on Cygwin
SPARSE=Yes #Only install $PRODUCT/$PRODUCT.conf in $CONFDIR.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.debian new/shorewall-lite-4.6.5.2/shorewallrc.debian
--- old/shorewall-lite-4.6.4.3/shorewallrc.debian 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.debian 2014-11-17 16:17:15.000000000 +0100
@@ -17,7 +17,7 @@
SYSCONFFILE=default.debian #Name of the distributed file to be installed in $SYSCONFDIR
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFDIR=/etc/default #Directory where SysV init parameter files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SPARSE=Yes #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
VARLIB=/var/lib #Directory where product variable data is stored.
VARDIR=${VARLIB}/$PRODUCT #Directory where product variable data is stored.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.default new/shorewall-lite-4.6.5.2/shorewallrc.default
--- old/shorewall-lite-4.6.4.3/shorewallrc.default 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.default 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's installed SysV init script
INITSOURCE=init.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE= #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR= #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.redhat new/shorewall-lite-4.6.5.2/shorewallrc.redhat
--- old/shorewall-lite-4.6.4.3/shorewallrc.redhat 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.redhat 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's installed SysV init script
INITSOURCE=init.fedora.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
SYSCONFFILE=sysconfig #Name of the distributed file to be installed as $SYSCONFDIR/$PRODUCT
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFDIR=/etc/sysconfig/ #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.slackware new/shorewall-lite-4.6.5.2/shorewallrc.slackware
--- old/shorewall-lite-4.6.4.3/shorewallrc.slackware 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.slackware 2014-11-17 16:17:15.000000000 +0100
@@ -15,7 +15,7 @@
AUXINITFILE=rc.firewall #Name of the product's installed SysV init script
INITSOURCE=init.slackware.$PRODUCT.sh #Name of the distributed file to be installed as a second SysV init script
INITFILE=rc.$PRODUCT #Name of the product's installed second init script
-SYSTEMD= #Name of the directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Name of the directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE= #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR= #Name of the directory where SysV init parameter files are installed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/shorewallrc.suse new/shorewall-lite-4.6.5.2/shorewallrc.suse
--- old/shorewall-lite-4.6.4.3/shorewallrc.suse 2014-10-19 16:59:59.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/shorewallrc.suse 2014-11-17 16:17:15.000000000 +0100
@@ -14,7 +14,7 @@
INITFILE=$PRODUCT #Name of the product's SysV init script
INITSOURCE=init.suse.sh #Name of the distributed file to be installed as the SysV init script
ANNOTATED= #If non-zero, annotated configuration files are installed
-SYSTEMD= #Directory where .service files are installed (systems running systemd only)
+SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
SYSCONFFILE=sysconfig #Name of the distributed file to be installed in $SYSCONFDIR
SYSCONFDIR=/etc/sysconfig/ #Directory where SysV init parameter files are installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shorewall-lite-4.6.4.3/uninstall.sh new/shorewall-lite-4.6.5.2/uninstall.sh
--- old/shorewall-lite-4.6.4.3/uninstall.sh 2014-10-19 16:59:58.000000000 +0200
+++ new/shorewall-lite-4.6.5.2/uninstall.sh 2014-11-17 16:17:15.000000000 +0100
@@ -26,7 +26,7 @@
# You may only use this script to uninstall the version
# shown below. Simply run this script to remove Shorewall Firewall
-VERSION=4.6.4.3
+VERSION=4.6.5.2
PRODUCT=shorewall-lite
usage() # $1 = exit status
++++++ shorewall-4.6.4.3.tar.bz2 -> shorewall6-4.6.5.2.tar.bz2 ++++++
++++ 127074 lines of diff (skipped)
++++++ shorewall-lite-4.6.4.3.tar.bz2 -> shorewall6-lite-4.6.5.2.tar.bz2 ++++++
++++ 8349 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
24 Nov '14
Hello community,
here is the log from the commit of package xfce4-panel-plugin-netload for openSUSE:Factory checked in at 2014-11-24 11:09:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-panel-plugin-netload (Old)
and /work/SRC/openSUSE:Factory/.xfce4-panel-plugin-netload.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfce4-panel-plugin-netload"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-panel-plugin-netload/xfce4-panel-plugin-netload.changes 2014-11-18 22:48:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xfce4-panel-plugin-netload.new/xfce4-panel-plugin-netload.changes 2014-11-24 11:10:12.000000000 +0100
@@ -1,0 +2,11 @@
+Sun Nov 23 18:34:15 UTC 2014 - gber(a)opensuse.org
+
+- update to version 1.2.4
+ - option to show values as bits
+ - reverted "Do not enforce max length for text/device entries"
+ - set iface length name to 32 chars max
+ - translation updates
+- add xfce4-panel-plugin-netload-fix-array-out-of-bounds.patch in
+ order to fix an array out of bounds write (bxo#11328)
+
+-------------------------------------------------------------------
Old:
----
xfce4-netload-plugin-1.2.3.tar.bz2
New:
----
xfce4-netload-plugin-1.2.4.tar.bz2
xfce4-panel-plugin-netload-fix-array-out-of-bounds.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfce4-panel-plugin-netload.spec ++++++
--- /var/tmp/diff_new_pack.vl66Fx/_old 2014-11-24 11:10:14.000000000 +0100
+++ /var/tmp/diff_new_pack.vl66Fx/_new 2014-11-24 11:10:14.000000000 +0100
@@ -20,13 +20,15 @@
%define plugin_name xfce4-netload-plugin
Name: xfce4-panel-plugin-netload
-Version: 1.2.3
+Version: 1.2.4
Release: 0
Summary: Network Load Monitoring Plugin for the Xfce Panel
License: GPL-2.0+
Group: System/GUI/XFCE
Url: http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin
Source0: http://archive.xfce.org/src/panel-plugins/%{plugin_name}/1.2/%{plugin_name}…
+# PATCH-FIX-UPSTREAM xfce4-panel-plugin-netload-fix-array-out-of-bounds.patch bxo#11328 gber(a)opensuse.org -- Fix an array out of bounds write
+Patch0: xfce4-panel-plugin-netload-fix-array-out-of-bounds.patch
BuildRequires: fdupes
BuildRequires: intltool
BuildRequires: pkgconfig(libxfce4panel-1.0)
@@ -43,6 +45,7 @@
%prep
%setup -q -n %{plugin_name}-%{version}
+%patch0 -p1
%build
%configure --disable-static
++++++ xfce4-netload-plugin-1.2.3.tar.bz2 -> xfce4-netload-plugin-1.2.4.tar.bz2 ++++++
++++ 10272 lines of diff (skipped)
++++++ xfce4-panel-plugin-netload-fix-array-out-of-bounds.patch ++++++
Index: xfce4-netload-plugin-1.2.4/panel-plugin/net.c
===================================================================
--- xfce4-netload-plugin-1.2.4.orig/panel-plugin/net.c
+++ xfce4-netload-plugin-1.2.4/panel-plugin/net.c
@@ -33,6 +33,8 @@
#include <config.h>
#endif
+#include <glib.h>
+
/* From Wormulon */
#include "net.h"
#include "os.h"
@@ -81,8 +83,7 @@ int init_netload(netdata* data, const ch
return TRUE;
}
- strncpy( data->ifdata.if_name, device, INTERFACE_NAME_LENGTH);
- data->ifdata.if_name[INTERFACE_NAME_LENGTH] = '\0';
+ g_strlcpy(data->ifdata.if_name, device, sizeof(data->ifdata.if_name));
init_osspecific( data );
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package icecast for openSUSE:Factory checked in at 2014-11-24 11:09:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icecast (Old)
and /work/SRC/openSUSE:Factory/.icecast.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icecast"
Changes:
--------
--- /work/SRC/openSUSE:Factory/icecast/icecast.changes 2014-11-18 22:46:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.icecast.new/icecast.changes 2014-11-24 11:10:11.000000000 +0100
@@ -1,0 +2,5 @@
+Sat Nov 22 12:44:18 UTC 2014 - fisiu(a)opensuse.org
+
+- Add icecast-mp3-frame-validation.patch: validate mp3 frame.
+
+-------------------------------------------------------------------
New:
----
icecast-mp3-frame-validation.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ icecast.spec ++++++
--- /var/tmp/diff_new_pack.o5gyAf/_old 2014-11-24 11:10:12.000000000 +0100
+++ /var/tmp/diff_new_pack.o5gyAf/_new 2014-11-24 11:10:12.000000000 +0100
@@ -35,6 +35,8 @@
Patch3: icecast-add_pidfile_directive.patch
# PATCH-FIX-UPSTREAM -- Produce valid json status, already in upstream trunk svn. boo#905468.
Patch4: icecast-2.4.0-produce-valid-json.patch
+# PATCH-FEATURE-OPENSUSE -- mp3 frame validation
+Patch100: icecast-mp3-frame-validation.patch
BuildRequires: curl-devel
BuildRequires: libtheora-devel
BuildRequires: libtool
@@ -79,6 +81,7 @@
%patch1
%patch3
%patch4
+%patch100
%build
autoreconf -fiv
++++++ icecast-mp3-frame-validation.patch ++++++
Description: MP3 Frame validation
Author: Paul Kelly <paul(a)stjohnspoint.co.uk>
Icecast does not make any attempt to demarcate the boundaries between MP3
frames, and when a listening client connects to the server it generally is
sent an initial partial frame that can't be decoded. This is not a problem
for almost all client players.
It becomes a problem however when a "pre-roll" intro clip is used. When
Icecast connects the listener to the main stream after playing the intro
clip, it will very likely cut in in the middle of a frame, which causes a
problem for some players. Flash player in particular exhibits strange
behaviour with the audio cutting in and out every few seconds. Pausing the
player and resuming cures the problem.
http://lists.xiph.org/pipermail//icecast-dev/2011-October/001998.html
Index: src/format_mp3.c
===================================================================
--- src/format_mp3.c.orig
+++ src/format_mp3.c
@@ -509,6 +509,161 @@ static int complete_read (source_t *sour
return 1;
}
+static int bitrate_table[2][3][14] =
+{
+ {
+ /* MPEG-2 Layer III */
+ { 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
+ /* MPEG-2 Layer II */
+ { 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
+ /* MPEG-2 Layer I */
+ {32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256}
+ },
+ {
+ /* MPEG-1 Layer III */
+ {32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320},
+ /* MPEG-1 Layer II */
+ {32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384},
+ /* MPEG-1 Layer I */
+ {32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448}
+ }
+};
+
+static int samplerate_table[4][3] =
+{
+ {11025, 12000, 8000}, /* MPEG-2 LSF */
+ { 0, 0, 0}, /* Reserved */
+ {22050, 24000, 16000}, /* MPEG-2 */
+ {44100, 48000, 32000} /* MPEG-1 */
+};
+
+static int framesize_table[2][3] =
+{
+ /* L.III L.II L.I */
+ { 576, 1152, 384}, /* MPEG-2 */
+ { 1152, 1152, 384} /* MPEG-1 */
+};
+
+static int slotsize_table[3] =
+{
+ 1, /* L. III */
+ 1, /* L. II */
+ 4 /* L. I */
+};
+
+static int validate_header(mpeg_frame_t *fr)
+{
+ unsigned char version_code, layer_code, bitrate_code,
+ samplerate_code, padding;
+ char message[200];
+
+#define MAX_FRAME_LEN 2880 /* 160kbps Layer II @ 8kHz */
+
+ /* Check sync word is present */
+ if (fr->data[0] != 0xff || (fr->data[1] & 0xe0) != 0xe0)
+ goto invalid_frame;
+
+ /* Validate header by checking no reserved values are present */
+ if ( (version_code = (fr->data[1] & 0x18) >> 3) == 1
+ || (layer_code = (fr->data[1] & 0x06) >> 1) == 0
+ || (bitrate_code = (fr->data[2] & 0xf0) >> 4) == 15
+ || (samplerate_code = (fr->data[2] & 0x0c) >> 2) == 3)
+ goto invalid_frame;
+
+ if (bitrate_code == 0) /* Free-format bitrate */
+ /* We can't calculate the frame length anyway from this so can go no
+ * further with validation, so return the header as invalid. This is
+ * arguably a bug. */
+ goto invalid_frame;
+
+ /* Calculate data length of frame */
+ fr->kbps = bitrate_table[version_code & 1][layer_code - 1][bitrate_code - 1];
+ fr->sample_rate_Hz = samplerate_table[version_code][samplerate_code];
+ padding = (fr->data[2] & 0x02) >> 1;
+ fr->bytes = (framesize_table[version_code & 1][layer_code - 1] / 8
+ / slotsize_table[layer_code - 1] * fr->kbps * 1000
+ / fr->sample_rate_Hz + padding) * slotsize_table[layer_code - 1];
+
+ if (fr->bytes <= 0 || fr->bytes > MAX_FRAME_LEN)
+ goto invalid_frame;
+
+ if ((fr->data[3] & 0xc0) >> 6 == 3) /* mono */
+ fr->channels = 1;
+ else
+ fr->channels = 2;
+
+ return fr->bytes;
+
+invalid_frame:
+ fr->bytes = -1;
+ return -1;
+}
+
+/* Parse the MP3 data (also handles MPEG audio layers I/II) to check if there
+ * is a partial frame at the end of the data. If so the partial data is stored
+ * in the MP3 state (where it will be appended to the next time complete_read()
+ * is called) and the modified refbuf containing only complete frames is
+ * returned.
+ * Note that incomplete frames occuring at the *start* of the data buffer are
+ * ignored. This is so that huge frames (greater than the REFBUF size) can still
+ * be handled correctly.
+ */
+static void remove_partial_frames(refbuf_t *refbuf, mp3_state *source_mp3)
+{
+ int frame_offset = 0, valid_frames = 0;
+
+ /* while there are enough bytes remaining for a valid header */
+ while (refbuf->len - frame_offset >= 4)
+ {
+ mpeg_frame_t fr;
+
+ /* check the header is valid and determine the total frame length */
+ fr.data = (unsigned char *)refbuf->data+frame_offset;
+ validate_header(&fr);
+
+ /* If any frames are bigger than the refbuf size, then we need to leave
+ * them intact and just put up with the fact they will be split up. Such
+ * huge frames should be very rare in practice. */
+ if (fr.bytes > REFBUF_SIZE)
+ return;
+
+ if (fr.bytes > 0) /* if header is valid */
+ {
+ if(frame_offset + fr.bytes > refbuf->len)
+ /* this frame extends beyond the buffer */
+ break;
+
+ valid_frames++;
+ /* Skip to start of next frame */
+ frame_offset += fr.bytes;
+ continue;
+ }
+
+ /* Validation failed: shift forward by one byte and keep searching for header */
+ frame_offset++;
+ }
+
+ if (frame_offset == refbuf->len || valid_frames == 0)
+ /* buffer contained only either wholly complete or wholly partial frames */
+ return;
+
+ /* Allocate a new refbuf to hold the partial last frame. When complete_read()
+ * is called again it will append to this. */
+ source_mp3->read_data = refbuf_new (REFBUF_SIZE);
+ source_mp3->read_count = refbuf->len - frame_offset;
+
+ /* Copy the partial frame into the new refbuf and reduce the byte count for
+ * the existing refbuf accordingly. */
+ memcpy (source_mp3->read_data->data, refbuf->data+frame_offset,
+ source_mp3->read_count);
+ refbuf->len = frame_offset;
+
+ /* Finally adjust the metadata interval offset to avoid "double-counting" of
+ * the bytes in the partial frame. */
+ source_mp3->offset -= source_mp3->read_count;
+
+ return;
+}
/* read an mp3 stream which does not have shoutcast style metadata */
static refbuf_t *mp3_get_no_meta (source_t *source)
@@ -529,7 +684,10 @@ static refbuf_t *mp3_get_no_meta (source
}
refbuf->associated = source_mp3->metadata;
refbuf_addref (source_mp3->metadata);
+
+ remove_partial_frames(refbuf, source_mp3);
refbuf->sync_point = 1;
+
return refbuf;
}
@@ -650,6 +808,8 @@ static refbuf_t *mp3_get_filter_meta (so
}
refbuf->associated = source_mp3->metadata;
refbuf_addref (source_mp3->metadata);
+
+ remove_partial_frames(refbuf, source_mp3);
refbuf->sync_point = 1;
return refbuf;
Index: src/format_mp3.h
===================================================================
--- src/format_mp3.h.orig
+++ src/format_mp3.h
@@ -39,6 +39,16 @@ typedef struct {
char build_metadata[4081];
} mp3_state;
+typedef struct
+{
+ unsigned char *data; /* Pointer to complete MPEG audio frame (including
+ * sync word and header */
+ int bytes; /* Length of MPEG frame in bytes */
+ int kbps; /* Bitrate in kilobits per second */
+ int sample_rate_Hz; /* Sample rate in hertz */
+ int channels; /* Number of channels (mono/stereo) */
+} mpeg_frame_t;
+
int format_mp3_get_plugin(struct source_tag *src);
#endif /* __FORMAT_MP3_H__ */
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xxkb for openSUSE:Factory checked in at 2014-11-24 11:09:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xxkb (Old)
and /work/SRC/openSUSE:Factory/.xxkb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xxkb"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xxkb/xxkb.changes 2014-11-20 18:43:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xxkb.new/xxkb.changes 2014-11-24 11:10:10.000000000 +0100
@@ -1,0 +2,5 @@
+Sun Nov 23 15:59:00 UTC 2014 - tampakrap(a)opensuse.org
+
+- Version bump 1.11.1, properly fixes the version mismatch and repacked tarball mess
+
+-------------------------------------------------------------------
Old:
----
xxkb-1.11-al20-src.tar.gz
New:
----
xxkb-1.11.1-src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xxkb.spec ++++++
--- /var/tmp/diff_new_pack.JAED3S/_old 2014-11-24 11:10:11.000000000 +0100
+++ /var/tmp/diff_new_pack.JAED3S/_new 2014-11-24 11:10:11.000000000 +0100
@@ -16,15 +16,14 @@
#
-%define tar_ver 1.11-al20
Name: xxkb
-Version: 1.11al20
+Version: 1.11.1
Release: 0
Summary: A keyboard layout indicator and switcher
License: Artistic-2.0
Group: System/X11/Utilities
Url: http://xxkb.sourceforge.net/
-Source: http://downloads.sourceforge.net/project/%{name}/%{name}/%{tar_ver}/%{name}…
+Source: http://downloads.sourceforge.net/project/%{name}/%{name}-%{version}-src.tar…
BuildRequires: imake
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
@@ -40,7 +39,7 @@
setup of your X Server without any modifications.
%prep
-%setup -q -n %{name}
+%setup -q
%build
xmkmf -a
++++++ xxkb-1.11-al20-src.tar.gz -> xxkb-1.11.1-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xxkb/CHANGES.koi8 new/xxkb-1.11.1/CHANGES.koi8
--- old/xxkb/CHANGES.koi8 2014-11-17 20:08:46.000000000 +0100
+++ new/xxkb-1.11.1/CHANGES.koi8 2014-11-21 19:54:48.000000000 +0100
@@ -1,4 +1,4 @@
-ver 1.11-al20
+ver 1.11.1
- License changed to Artistic License 2.0
ver 1.11
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0