openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
June 2014
- 1 participants
- 1147 discussions
Hello community,
here is the log from the commit of package libwmf for openSUSE:Factory checked in at 2014-06-01 18:58:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libwmf (Old)
and /work/SRC/openSUSE:Factory/.libwmf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libwmf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libwmf/libwmf.changes 2014-04-03 16:38:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libwmf.new/libwmf.changes 2014-06-01 18:58:17.000000000 +0200
@@ -1,0 +2,6 @@
+Wed May 28 09:41:12 UTC 2014 - fstrba(a)suse.com
+
+- Clean spec file with spec-cleaner
+- Do not distribute *.la files
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libwmf.spec ++++++
--- /var/tmp/diff_new_pack.nWjPQo/_old 2014-06-01 18:58:17.000000000 +0200
+++ /var/tmp/diff_new_pack.nWjPQo/_new 2014-06-01 18:58:17.000000000 +0200
@@ -16,20 +16,8 @@
#
-Name: libwmf
%define lname libwmf-0_2-7
-BuildRequires: gd-devel
-BuildRequires: gtk2-devel
-BuildRequires: libjpeg-devel
-BuildRequires: libtiff-devel
-BuildRequires: libxml2-devel
-BuildRequires: update-desktop-files
-BuildRequires: xorg-x11-proto-devel
-BuildRequires: xorg-x11-util-devel
-BuildRequires: pkgconfig(x11)
-BuildRequires: pkgconfig(xt)
-Provides: mswordvw:/usr/bin/wmftopng
-Provides: wv:/usr/bin/wmftopng
+Name: libwmf
Version: 0.2.8.4
Release: 0
Summary: Utilities for Displaying and Converting Metafile Images
@@ -38,12 +26,24 @@
Url: http://wvWare.sourceforge.net/
Source: http://downloads.sourceforge.net/project/wvware/%{name}/%{version}/%{name}-…
Source2: baselibs.conf
-Patch: libwmf-%{version}-ia64.patch
+Patch0: libwmf-%{version}-ia64.patch
Patch1: libwmf-%{version}-fix.patch
Patch2: libwmf-%{version}-config.patch
Patch3: libwmf-%{version}-overflow-CVE-2006-3376.patch
Patch4: libwmf-0.2.8.4-gd_libpng.patch
Patch5: libwmf-0.2.8.4-bnc495842.patch
+BuildRequires: gd-devel
+BuildRequires: gtk2-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libtiff-devel
+BuildRequires: libxml2-devel
+BuildRequires: update-desktop-files
+BuildRequires: xorg-x11-proto-devel
+BuildRequires: xorg-x11-util-devel
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(xt)
+Provides: mswordvw:%{_bindir}/wmftopng
+Provides: wv:%{_bindir}/wmftopng
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -55,34 +55,34 @@
Summary: Utilities for Displaying and Converting Metafile Images
Group: Productivity/Graphics/Other
# Prov/Obs added on 2011-11-22 (post openSUSE 12.1)
-Provides: libwmf = %version-%release
-Provides: wmf-utils = %version-%release
-Obsoletes: libwmf < %version-%release
-Obsoletes: wmf-utils < %version-%release
+Provides: libwmf = %{version}-%{release}
+Provides: wmf-utils = %{version}-%{release}
+Obsoletes: libwmf < %{version}-%{release}
+Obsoletes: wmf-utils < %{version}-%{release}
%description tools
These utilities read metafile images and can either display them
using the X Window System or convert them to standard formats such as
PNG, JPEG, PS, EPS, and more.
-%package -n %lname
+%package -n %{lname}
Summary: Library for reading Metafile Images
Group: System/Libraries
-%description -n %lname
+%description -n %{lname}
This library reads metafile images.
%package devel
-Requires: %lname = %{version}
-Requires: libwmf-gnome = %{version}
-Provides: mswordvd:/usr/lib/libwmf.a
-Provides: wv-devel:/usr/lib/libwmf.a
Summary: Static libraries, header files and documentation for libwmf
Group: Development/Libraries/C and C++
+Requires: %{lname} = %{version}
Requires: libjpeg-devel
Requires: libpng-devel
Requires: libwmf
+Requires: libwmf-gnome = %{version}
Requires: xorg-x11-devel
+Provides: mswordvd:%{_libexecdir}/libwmf.a
+Provides: wv-devel:%{_libexecdir}/libwmf.a
%description devel
The libwmf-devel package contains the header files and static libraries
@@ -99,10 +99,10 @@
%prep
%setup -q
-%patch -p0
-%patch1 -p0
-%patch2 -p0
-%patch3 -p0
+%patch0
+%patch1
+%patch2
+%patch3
%patch4
%patch5
@@ -111,30 +111,31 @@
make %{?_smp_mflags}
%install
-mkdir -p $RPM_BUILD_ROOT/usr/include/libwmf
-make DESTDIR=$RPM_BUILD_ROOT \
+mkdir -p %{buildroot}%{_includedir}/libwmf
+make DESTDIR=%{buildroot} \
wmfdocdir=%{_defaultdocdir}/libwmf \
wmfonedocdir=%{_defaultdocdir}/libwmf/caolan \
install
-cp AUTHORS COPYING CREDITS ChangeLog README TODO $RPM_BUILD_ROOT/%{_defaultdocdir}/libwmf
+find %{buildroot} -type f -name "*.la" -delete -print
+cp AUTHORS COPYING CREDITS ChangeLog README TODO %{buildroot}/%{_defaultdocdir}/libwmf
-%post -n %lname -p /sbin/ldconfig
+%post -n %{lname} -p /sbin/ldconfig
-%postun -n %lname -p /sbin/ldconfig
+%postun -n %{lname} -p /sbin/ldconfig
%files tools
%defattr(-,root,root)
-/usr/bin/libwmf-fontmap
-/usr/bin/wmf2eps
-/usr/bin/wmf2fig
-/usr/bin/wmf2gd
+%{_bindir}/libwmf-fontmap
+%{_bindir}/wmf2eps
+%{_bindir}/wmf2fig
+%{_bindir}/wmf2gd
#/usr/bin/wmf2magick
#/usr/bin/wmf2plot
-/usr/bin/wmf2svg
-/usr/bin/wmf2x
+%{_bindir}/wmf2svg
+%{_bindir}/wmf2x
#
#
-/usr/share/libwmf
+%{_datadir}/libwmf
#
%dir %{_defaultdocdir}/libwmf
%doc %{_defaultdocdir}/libwmf/AUTHORS
@@ -144,9 +145,9 @@
%doc %{_defaultdocdir}/libwmf/README
%doc %{_defaultdocdir}/libwmf/TODO
-%files -n %lname
+%files -n %{lname}
%defattr(-,root,root)
-%_libdir/libwmf*-0.2.so.7*
+%{_libdir}/libwmf*-0.2.so.7*
%files gnome
%defattr(-,root,root)
@@ -155,11 +156,10 @@
%files devel
%defattr(-,root,root)
-/usr/bin/libwmf-config
-/usr/include/libwmf
+%{_bindir}/libwmf-config
+%{_includedir}/libwmf
%{_libdir}/libwmf*.so
%{_libdir}/libwmf*.a
-%{_libdir}/libwmf*.la
%dir %{_libdir}/gtk-*/*/loaders
%{_libdir}/gtk-*/*/loaders/*.*a
#
--
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 iprutils for openSUSE:Factory checked in at 2014-06-01 18:58:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iprutils (Old)
and /work/SRC/openSUSE:Factory/.iprutils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iprutils"
Changes:
--------
--- /work/SRC/openSUSE:Factory/iprutils/iprutils.changes 2014-05-26 10:28:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.iprutils.new/iprutils.changes 2014-06-01 18:58:15.000000000 +0200
@@ -1,0 +2,5 @@
+Tue May 27 06:35:22 UTC 2014 - meissner(a)suse.com
+
+- make the %pre/%post sections unconditional. bnc#877576
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iprutils.spec ++++++
--- /var/tmp/diff_new_pack.ToyimN/_old 2014-06-01 18:58:16.000000000 +0200
+++ /var/tmp/diff_new_pack.ToyimN/_new 2014-06-01 18:58:16.000000000 +0200
@@ -70,7 +70,6 @@
ln -s /sbin/service %{buildroot}/usr/sbin/rciprupdate
echo %{_sbindir}
-%ifarch ppc ppc64
%pre
%service_add_pre iprdump.service
%service_add_pre iprinit.service
@@ -80,7 +79,6 @@
%service_add_post iprdump.service
%service_add_post iprinit.service
%service_add_post iprupdate.service
-%endif
%preun
%service_del_preun iprdump.service
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
01 Jun '14
Hello community,
here is the log from the commit of package systemd-presets-branding-openSUSE for openSUSE:Factory checked in at 2014-06-01 18:58:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd-presets-branding-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.systemd-presets-branding-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd-presets-branding-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd-presets-branding-openSUSE/systemd-presets-branding-openSUSE.changes 2014-04-14 06:43:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.systemd-presets-branding-openSUSE.new/systemd-presets-branding-openSUSE.changes 2014-06-01 18:58:13.000000000 +0200
@@ -1,0 +2,6 @@
+Wed May 28 06:40:13 UTC 2014 - lwang(a)suse.com
+
+- enable lvm2-lvmetad.socket (bnc#878473)
+ enable lvm2-lvmetad.service
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ default-openSUSE.preset ++++++
--- /var/tmp/diff_new_pack.78XGlA/_old 2014-06-01 18:58:14.000000000 +0200
+++ /var/tmp/diff_new_pack.78XGlA/_new 2014-06-01 18:58:14.000000000 +0200
@@ -21,3 +21,6 @@
enable haveged.service
enable irqbalance.service
enable auditd.service
+enable lvm2-lvmetad.socket
+enable lvm2-lvmetad.service
+
--
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 liburiparser1 for openSUSE:Factory checked in at 2014-06-01 18:58:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/liburiparser1 (Old)
and /work/SRC/openSUSE:Factory/.liburiparser1.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "liburiparser1"
Changes:
--------
--- /work/SRC/openSUSE:Factory/liburiparser1/liburiparser1.changes 2013-02-04 17:59:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.liburiparser1.new/liburiparser1.changes 2014-06-01 18:58:12.000000000 +0200
@@ -1,0 +2,6 @@
+Tue May 27 01:44:02 UTC 2014 - crrodriguez(a)opensuse.org
+
+- Extend uriparser-0.7.5-doxygen.patch so doxygen does not
+ generate timestamped files.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ liburiparser1.spec ++++++
--- /var/tmp/diff_new_pack.gK11sy/_old 2014-06-01 18:58:13.000000000 +0200
+++ /var/tmp/diff_new_pack.gK11sy/_new 2014-06-01 18:58:13.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package liburiparser1
#
-# 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
++++++ uriparser-0.7.5-doxygen.patch ++++++
--- /var/tmp/diff_new_pack.gK11sy/_old 2014-06-01 18:58:13.000000000 +0200
+++ /var/tmp/diff_new_pack.gK11sy/_new 2014-06-01 18:58:13.000000000 +0200
@@ -1,7 +1,5 @@
-Index: uriparser-0.7.5/doc/Makefile.in
-===================================================================
---- uriparser-0.7.5.orig/doc/Makefile.in 2009-03-04 16:59:04.000000000 +0100
-+++ uriparser-0.7.5/doc/Makefile.in 2010-09-06 14:18:31.293260272 +0200
+--- uriparser-0.7.5.orig/doc/Makefile.in
++++ uriparser-0.7.5/doc/Makefile.in
@@ -332,7 +332,7 @@ html/index.html: $(srcdir)/../include/ur
$(srcdir)/../lib/*.c \
$(srcdir)/../lib/*.h
@@ -21,3 +19,13 @@
uninstall-local:
-rm -Rf "$(DESTDIR)$(docdir)/html"
+--- uriparser-0.7.5.orig/doc/Doxyfile.in
++++ uriparser-0.7.5/doc/Doxyfile.in
+@@ -8,6 +8,7 @@ QHP_VIRTUAL_FOLDER = "uriparser-@VERSION
+ # .qch output
+ QCH_FILE = "../@PACKAGE@-@VERSION@.qch"
+ QHG_LOCATION = "@QHG_LOCATION@"
++HTML_TIMESTAMP=NO
+
+
+ ###############################################################
--
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 glew for openSUSE:Factory checked in at 2014-06-01 18:58:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glew (Old)
and /work/SRC/openSUSE:Factory/.glew.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glew"
Changes:
--------
--- /work/SRC/openSUSE:Factory/glew/glew.changes 2012-10-27 07:39:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.glew.new/glew.changes 2014-06-01 18:58:10.000000000 +0200
@@ -1,0 +2,8 @@
+Mon May 26 19:44:23 UTC 2014 - fstrba(a)suse.com
+
+- Upgrade to upstream 0.10.0
+- New patch:
+ * glew-1.10.0-destdir.patch: Sanitize Makefile
+ - Add DESTDIR option to avoid buildroot in .pc files
+
+-------------------------------------------------------------------
Old:
----
glew-1.9.0.tgz
New:
----
glew-1.10.0-destdir.patch
glew-1.10.0.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ glew.spec ++++++
--- /var/tmp/diff_new_pack.IpfNq0/_old 2014-06-01 18:58:11.000000000 +0200
+++ /var/tmp/diff_new_pack.IpfNq0/_new 2014-06-01 18:58:11.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package glew
#
-# Copyright (c) 2012 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
@@ -16,10 +16,9 @@
#
-%define so_ver 1_9
-
+%define so_ver 1_10
Name: glew
-Version: 1.9.0
+Version: 1.10.0
Release: 0
Summary: OpenGL Extension Wrangler Library
License: BSD-3-Clause and GPL-2.0 and MIT
@@ -28,6 +27,7 @@
Source0: http://sourceforge.net/projects/glew/files/glew/%{version}/glew-%{version}.…
Source1: baselibs.conf
Source2: %{name}.rpmlintrc
+Patch0: glew-1.10.0-destdir.patch
BuildRequires: pkg-config
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(x11)
@@ -58,14 +58,14 @@
Summary: Development files for glew
Group: Development/Libraries/C and C++
Requires: libGLEW%{so_ver} = %{version}
-%if %suse_version >= 1220
-# X11/Xlib.h X11/Xutil.h
-Requires: libX11-devel
-%endif
# X11/Xmd.h
Requires: xorg-x11-proto-devel
# Don't require GLU, because there is GLEW_NO_GLU option
Recommends: pkgconfig(glu)
+%if 0%{?suse_version} >= 1220
+# X11/Xlib.h X11/Xutil.h
+Requires: libX11-devel
+%endif
%description devel
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform
@@ -76,16 +76,18 @@
%prep
%setup -q
+%patch0 -p1
%build
-make %{?_smp_mflags} POPT="%{optflags}" LIBDIR=%{_libdir} LDFLAGS.EXTRA= STRIP=
+make %{?_smp_mflags} POPT="%{optflags}" GLEW_DEST=%{_prefix} LIBDIR=%{_libdir} LDFLAGS.EXTRA= STRIP=
%install
-make GLEW_DEST=%{buildroot}%{_prefix} LIBDIR=%{buildroot}%{_libdir} install.all
+make DESTDIR=%{buildroot} GLEW_DEST=%{_prefix} LIBDIR=%{_libdir} install.all
chmod +x %{buildroot}%{_libdir}/*.so.*
rm %{buildroot}%{_libdir}/*.a
%post -n libGLEW%{so_ver} -p /sbin/ldconfig
+
%postun -n libGLEW%{so_ver} -p /sbin/ldconfig
%files
++++++ glew-1.10.0-destdir.patch ++++++
--- glew-1.10.0/Makefile 2013-07-22 16:11:22.000000000 +0200
+++ glew-1.10.0/Makefile 2014-05-26 21:43:14.091089329 +0200
@@ -52,6 +52,8 @@
DIST_DIR := $(shell mktemp -d /tmp/glew.XXXXXX)/$(DIST_NAME)
+DESTDIR ?= ""
+
# To disable stripping of binaries either:
# - use STRIP= on gmake command-line
# - edit this makefile to set STRIP to the empty string
@@ -231,81 +233,81 @@
install.mx: install.include install.lib.mx install.pkgconfig.mx
install.lib: glew.lib
- $(INSTALL) -d -m 0755 $(LIBDIR)
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR)
# runtime
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
- $(INSTALL) -d -m 0755 $(BINDIR)
- $(INSTALL) -m 0755 lib/$(LIB.SHARED) $(BINDIR)/
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 0755 lib/$(LIB.SHARED) $(DESTDIR)$(BINDIR)/
else
- $(INSTALL) -m 0644 lib/$(LIB.SHARED) $(LIBDIR)/
+ $(INSTALL) -m 0644 lib/$(LIB.SHARED) $(DESTDIR)$(LIBDIR)/
endif
ifneq ($(LN),)
- $(LN) $(LIB.SHARED) $(LIBDIR)/$(LIB.SONAME)
+ $(LN) $(LIB.SHARED) $(DESTDIR)$(LIBDIR)/$(LIB.SONAME)
endif
# development files
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
- $(INSTALL) -m 0644 lib/$(LIB.DEVLNK) $(LIBDIR)/
+ $(INSTALL) -m 0644 lib/$(LIB.DEVLNK) $(DESTDIR)$(LIBDIR)/
endif
ifneq ($(LN),)
- $(LN) $(LIB.SHARED) $(LIBDIR)/$(LIB.DEVLNK)
+ $(LN) $(LIB.SHARED) $(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)
endif
- $(INSTALL) -m 0644 lib/$(LIB.STATIC) $(LIBDIR)/
+ $(INSTALL) -m 0644 lib/$(LIB.STATIC) $(DESTDIR)$(LIBDIR)/
install.lib.mx: glew.lib.mx
- $(INSTALL) -d -m 0755 $(LIBDIR)
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR)
# runtime
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
- $(INSTALL) -d -m 0755 $(BINDIR)
- $(INSTALL) -m 0755 lib/$(LIB.SHARED.MX) $(BINDIR)/
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 0755 lib/$(LIB.SHARED.MX) $(DESTDIR)$(BINDIR)/
else
- $(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) $(LIBDIR)/
+ $(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) $(DESTDIR)$(LIBDIR)/
endif
ifneq ($(LN),)
- $(LN) $(LIB.SHARED.MX) $(LIBDIR)/$(LIB.SONAME.MX)
+ $(LN) $(LIB.SHARED.MX) $(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)
endif
# development files
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
- $(INSTALL) -m 0644 lib/$(LIB.DEVLNK.MX) $(LIBDIR)/
+ $(INSTALL) -m 0644 lib/$(LIB.DEVLNK.MX) $(DESTDIR)$(LIBDIR)/
endif
ifneq ($(LN),)
- $(LN) $(LIB.SHARED.MX) $(LIBDIR)/$(LIB.DEVLNK.MX)
+ $(LN) $(LIB.SHARED.MX) $(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)
endif
- $(INSTALL) -m 0644 lib/$(LIB.STATIC.MX) $(LIBDIR)/
+ $(INSTALL) -m 0644 lib/$(LIB.STATIC.MX) $(DESTDIR)$(LIBDIR)/
install.bin: glew.bin
- $(INSTALL) -d -m 0755 $(BINDIR)
- $(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) $(BINDIR)/
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR)
+ $(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) $(DESTDIR)$(BINDIR)/
install.include:
- $(INSTALL) -d -m 0755 $(INCDIR)
- $(INSTALL) -m 0644 include/GL/wglew.h $(INCDIR)/
- $(INSTALL) -m 0644 include/GL/glew.h $(INCDIR)/
- $(INSTALL) -m 0644 include/GL/glxew.h $(INCDIR)/
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(INCDIR)
+ $(INSTALL) -m 0644 include/GL/wglew.h $(DESTDIR)$(INCDIR)/
+ $(INSTALL) -m 0644 include/GL/glew.h $(DESTDIR)$(INCDIR)/
+ $(INSTALL) -m 0644 include/GL/glxew.h $(DESTDIR)$(INCDIR)/
install.pkgconfig: glew.pc
- $(INSTALL) -d -m 0755 $(LIBDIR)
- $(INSTALL) -d -m 0755 $(LIBDIR)/pkgconfig
- $(INSTALL) -m 0644 glew.pc $(LIBDIR)/pkgconfig/
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR)
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR)/pkgconfig
+ $(INSTALL) -m 0644 glew.pc $(DESTDIR)$(LIBDIR)/pkgconfig/
install.pkgconfig.mx: glewmx.pc
- $(INSTALL) -d -m 0755 $(LIBDIR)
- $(INSTALL) -d -m 0755 $(LIBDIR)/pkgconfig
- $(INSTALL) -m 0644 glewmx.pc $(LIBDIR)/pkgconfig/
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR)
+ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR)/pkgconfig
+ $(INSTALL) -m 0644 glewmx.pc $(DESTDIR)$(LIBDIR)/pkgconfig/
uninstall:
- $(RM) $(INCDIR)/wglew.h
- $(RM) $(INCDIR)/glew.h
- $(RM) $(INCDIR)/glxew.h
- $(RM) $(LIBDIR)/$(LIB.DEVLNK) $(LIBDIR)/$(LIB.DEVLNK.MX)
+ $(RM) $(DESTDIR)$(INCDIR)/wglew.h
+ $(RM) $(DESTDIR)$(INCDIR)/glew.h
+ $(RM) $(DESTDIR)$(INCDIR)/glxew.h
+ $(RM) $(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK) $(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
- $(RM) $(BINDIR)/$(LIB.SHARED) $(BINDIR)/$(LIB.SHARED.MX)
+ $(RM) $(DESTDIR)$(BINDIR)/$(LIB.SHARED) $(DESTDIR)$(BINDIR)/$(LIB.SHARED.MX)
else
- $(RM) $(LIBDIR)/$(LIB.SONAME) $(LIBDIR)/$(LIB.SONAME.MX)
- $(RM) $(LIBDIR)/$(LIB.SHARED) $(LIBDIR)/$(LIB.SHARED.MX)
+ $(RM) $(DESTDIR)$(LIBDIR)/$(LIB.SONAME) $(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)
+ $(RM) $(DESTDIR)$(LIBDIR)/$(LIB.SHARED) $(DESTDIR)$(LIBDIR)/$(LIB.SHARED.MX)
endif
- $(RM) $(LIBDIR)/$(LIB.STATIC) $(LIBDIR)/$(LIB.STATIC.MX)
- $(RM) $(BINDIR)/$(GLEWINFO.BIN) $(BINDIR)/$(VISUALINFO.BIN)
+ $(RM) $(DESTDIR)$(LIBDIR)/$(LIB.STATIC) $(DESTDIR)$(LIBDIR)/$(LIB.STATIC.MX)
+ $(RM) $(DESTDIR)$(BINDIR)/$(GLEWINFO.BIN) $(DESTDIR)$(BINDIR)/$(VISUALINFO.BIN)
clean:
$(RM) -r tmp/
++++++ glew-1.9.0.tgz -> glew-1.10.0.tgz ++++++
++++ 38558 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
Hello community,
here is the log from the commit of package dd_rescue for openSUSE:Factory checked in at 2014-06-01 18:58:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dd_rescue (Old)
and /work/SRC/openSUSE:Factory/.dd_rescue.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dd_rescue"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dd_rescue/dd_rescue.changes 2014-05-26 10:28:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dd_rescue.new/dd_rescue.changes 2014-06-01 18:58:09.000000000 +0200
@@ -1,0 +2,10 @@
+Tue May 27 13:45:42 CEST 2014 - kurt(a)garloff.de
+
+- Update to dd_rescue-1.45:
+ * ddr_hash: Fix potential sha512/sha384 buffer overflow.
+ * ddr_hash: Support sha1
+ * ddr_hash: Support checking and storing hash in xattrs and
+ md5sum/sha256sum/... style files.
+ * New ddr_null plugin.
+
+-------------------------------------------------------------------
Old:
----
dd_rescue-1.44.tar.gz
New:
----
dd_rescue-1.45.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dd_rescue.spec ++++++
--- /var/tmp/diff_new_pack.TBSnEk/_old 2014-06-01 18:58:10.000000000 +0200
+++ /var/tmp/diff_new_pack.TBSnEk/_new 2014-06-01 18:58:10.000000000 +0200
@@ -17,7 +17,7 @@
Name: dd_rescue
-Version: 1.44
+Version: 1.45
Release: 0
Summary: Data Copying in the Presence of I/O Errors
License: GPL-2.0 or GPL-3.0
@@ -114,6 +114,7 @@
#EndUsrMerge
%{_libdir}/libddr_hash.so
%{_libdir}/libddr_MD5.so
+%{_libdir}/libddr_null.so
%doc %{_mandir}/man1/dd_rescue.1%{ext_man}
%files lzo
++++++ dd_rescue-1.44.tar.gz -> dd_rescue-1.45.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/Makefile new/dd_rescue/Makefile
--- old/dd_rescue/Makefile 2014-05-23 12:27:19.000000000 +0200
+++ new/dd_rescue/Makefile 2014-05-27 13:31:21.000000000 +0200
@@ -1,8 +1,8 @@
# Makefile for dd_rescue
# (c) garloff(a)suse.de, 99/10/09, GNU GPL
-# $Id: Makefile,v 1.165 2014/05/23 10:27:19 garloff Exp $
+# $Id: Makefile,v 1.172 2014/05/27 11:31:21 garloff Exp $
-VERSION = 1.44
+VERSION = 1.45
DESTDIR =
@@ -15,13 +15,13 @@
prefix = $(DESTDIR)/usr
INSTALLDIR = $(prefix)/bin
#INSTALLDIR = $(DESTDIR)/bin
-#INSTALLLIBDIR = $(prefix)/$(LIB)
-INSTALLLIBDIR = $(DESTDIR)/$(LIBDIR)
+INSTALLLIBDIR = $(prefix)/$(LIB)
+#INSTALLLIBDIR = $(DESTDIR)/$(LIBDIR)
MANDIR = $(prefix)/share/man
#MYDIR = dd_rescue-$(VERSION)
MYDIR = dd_rescue
BINTARGETS = dd_rescue
-LIBTARGETS = libddr_hash.so libddr_MD5.so
+LIBTARGETS = libddr_hash.so libddr_MD5.so libddr_null.so
#TARGETS = libfalloc-dl
OTHTARGETS = find_nonzero fiemap file_zblock fmt_no md5 sha256 sha512 sha224 sha384 sha1
OBJECTS = frandom.o fmt_no.o find_nonzero.o
@@ -152,6 +152,9 @@
libddr_lzo.so: libddr_lzo.po
$(CC) -shared -o $@ $^ -llzo2
+libddr_null.so: libddr_null.po
+ $(CC) -shared -o $@ $^
+
find_nonzero.o: find_nonzero.c $(FNZ_HEADERS) config.h
$(CC) $(CFLAGS_OPT) -c $< $(SSE)
@@ -211,7 +214,7 @@
static: dd_rescue.c $(HEADERS) $(OBJECTS)
$(CC) $(CFLAGS) -DNO_LIBDL -DNO_LIBFALLOCATE -static $(DEFINES) $< $(OUT) $(OBJECTS) $(OBJECTS2)
-strip: $(TARGETS)
+strip: $(TARGETS) $(LIBTARGETS)
strip -S $^
strip-all: $(OTHTARGETS)
@@ -299,7 +302,7 @@
#MD5=$$(./dd_rescue -c0 -a -b16k -L ./libddr_MD5.so TEST TEST2 2>&1 | grep 'MD5(0)': | tail -n1 | sed 's/^dd_rescue: (info): MD5(0):[^:]*: //'); MD5S=$$(md5sum TEST | sed 's/ .*$$//'); echo $$MD5 $$MD5S; if test "$$MD5" != "$$MD5S"; then false; fi
./sha1 /dev/null
./sha1 /dev/null | sha1sum -c
- ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=output:alg=sha1 TEST TEST2 >HASH.TEST
+ ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=outnm=HASH.TEST:alg=sha1 TEST TEST2
sha1sum -c HASH.TEST
if test $(HAVE_SHA256SUM) = 1; then $(MAKE) check_sha2; fi
./sha256 /dev/null
@@ -309,20 +312,36 @@
if test $(HAVE_LZO) = 1; then $(MAKE) check_lzo_algos; fi
#if test $(HAVE_LZO) = 1; then $(MAKE) check_lzo_test; fi
if test $(HAVE_LZO) = 1; then $(MAKE) check_lzo_fuzz; fi
+ # Tests for libddr_null
+ ./dd_rescue -L ./libddr_null.so=debug dd_rescue /dev/null
+ # Tests with hash set_xattr and chk_xattr (with fallback as not all filesystems support xattrs ...)
+ ./dd_rescue -tL ./libddr_hash.so=sha256:set_xattr:fallback dd_rescue /tmp/dd_rescue
+ ./dd_rescue -L ./libddr_hash.so=sha256:chk_xattr:fallback /tmp/dd_rescue /dev/null
+ rm -f /tmp/dd_rescue CHECKSUMS.sha256
+ # Tests with prepend and append
+ ./dd_rescue -tL ./libddr_hash.so=sha512:set_xattr:fallback:prepend=abc:append=xyz dd_rescue /tmp/dd_rescue
+ ./dd_rescue -L ./libddr_hash.so=sha512:chk_xattr:fallback /tmp/dd_rescue /dev/null && false || true
+ ./dd_rescue -L ./libddr_hash.so=sha512:chk_xattr:fallback:prepend=abc:append=xyz /tmp/dd_rescue /dev/null
+ rm -f /tmp/dd_rescue CHECKSUMS.sha512
check_sha2: $(TARGETS) sha224 sha384
./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=output:alg=sha224 TEST TEST2 >HASH.TEST
sha224sum -c HASH.TEST
- ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=output:alg=sha256 TEST TEST2 >HASH.TEST
- sha256sum -c HASH.TEST
+ ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=outnm=:alg=sha256 TEST TEST2 >HASH.TEST
+ sha256sum -c CHECKSUMS.sha256
./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=output:alg=sha384 TEST TEST2 >HASH.TEST
sha384sum -c HASH.TEST
- ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=output:alg=sha512 TEST TEST2 >HASH.TEST
- sha512sum -c HASH.TEST
+ ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=outnm=:alg=sha512 TEST TEST2
+ ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=outnm=:alg=sha512,./libddr_null.so=change dd_rescue /dev/null
+ sha512sum -c CHECKSUMS.sha512
+ ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=sha512:chknm=CHECKSUMS.sha512 TEST2 /dev/null
+ ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=alg=sha512:chknm= dd_rescue /dev/null
+ ./dd_rescue -c0 -a -b16k -t -L ./libddr_hash.so=sha512:check dd_rescue /dev/null <CHECKSUMS.sha512
./sha224 /dev/null | sha224sum -c
./sha256 /dev/null | sha256sum -c
./sha384 /dev/null | sha384sum -c
./sha512 /dev/null | sha512sum -c
+ rm -f HASH.TEST CHECKSUMS.sha256 CHECKSUMS.sha512 TEST2
check_lzo: $(TARGETS)
@echo "***** dd_rescue lzo (and MD5) plugin tests *****"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/Makefile.android new/dd_rescue/Makefile.android
--- old/dd_rescue/Makefile.android 2014-03-01 16:16:26.000000000 +0100
+++ new/dd_rescue/Makefile.android 2014-05-27 13:41:59.000000000 +0200
@@ -43,7 +43,7 @@
$(MAKE) -f Makefile PATH=$(CBIN):$(PATH) CC="$(CC) $(CFLG)" LD="$(CC) -L $(LIBD)" MACH=arm $@
strip: dd_rescue
- strip -S dd_rescue
+ strip -S dd_rescue libddr_*.so
find_nonzero: $(DEPS)
$(MAKE) -f Makefile PATH=$(CBIN):$(PATH) CC="$(CC) $(CFLG)" LD="$(CC) -L $(LIBD)" MACH=arm $@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/README.dd_rescue new/dd_rescue/README.dd_rescue
--- old/dd_rescue/README.dd_rescue 2014-05-23 10:18:39.000000000 +0200
+++ new/dd_rescue/README.dd_rescue 2014-05-27 13:33:48.000000000 +0200
@@ -190,6 +190,9 @@
to test error recovery), and appending to existing .lzo files.
* Version 1.44 renamed the MD5 plugin to the hash plugin, as we support the
SHA-2 family of cryptographic hashes now.
+* Version 1.45 added sha1 to ddr_hash as well as the chk_xattr:chknm=:check
+ and outnm:set_xattr parameters that allow to conveniently store and validate
+ hashes on files.
Copyright
@@ -235,4 +238,4 @@
Kurt Garloff <kurt(a)garloff.de>, 2000-08-30
-$Id: README.dd_rescue,v 1.35 2014/05/23 08:18:39 garloff Exp $
+$Id: README.dd_rescue,v 1.36 2014/05/27 11:33:48 garloff Exp $
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/configure.in new/dd_rescue/configure.in
--- old/dd_rescue/configure.in 2014-05-23 12:39:05.000000000 +0200
+++ new/dd_rescue/configure.in 2014-05-27 12:36:22.000000000 +0200
@@ -7,7 +7,7 @@
#AC_PROG_INSTALL
#CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
AC_CHECK_HEADERS([fallocate.h dlfcn.h unistd.h attr/xattr.h sys/acl.h sys/ioctl.h endian.h linux/fs.h linux/fiemap.h stdint.h lzo/lzo1x.h])
-AC_CHECK_FUNCS([ffs ffsl basename fallocate64 splice getopt_long open64 pread pread64 lseek64 stat64 posix_fadvise posix_fadvise64 __builtin_prefetch htobe64])
+AC_CHECK_FUNCS([ffs ffsl basename fallocate64 splice getopt_long open64 pread pread64 lseek64 stat64 posix_fadvise posix_fadvise64 __builtin_prefetch htobe64 feof_unlocked getline])
AC_CHECK_LIB(dl,dlsym)
AC_CHECK_LIB(fallocate,linux_fallocate64)
AC_CHECK_LIB(lzo2,lzo1x_1_compress)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/dd_rescue.1 new/dd_rescue/dd_rescue.1
--- old/dd_rescue/dd_rescue.1 2014-05-23 11:06:36.000000000 +0200
+++ new/dd_rescue/dd_rescue.1 2014-05-27 13:34:49.000000000 +0200
@@ -1,4 +1,4 @@
-.\" $Id: dd_rescue.1,v 1.39 2014/05/23 09:06:36 garloff Exp $
+.\" $Id: dd_rescue.1,v 1.46 2014/05/27 11:34:49 garloff Exp $
.
.TH dd_rescue 1 "2014-04-30" "Kurt Garloff" "Data recovery and protection tool"
.
@@ -370,10 +370,13 @@
ownership, access rights, xattrs) to be copied, similar to the option with the
same name in the cp program.
.br
-Note that this option is only available if
+Note that ACLs and xattrs will only be copied if
.B dd_rescue
-has been compiled with libxattr support and the library can by dynamically
-loaded on the system.
+has been compiled with libxattr support and the library can be dynamically
+loaded on the system. Also note that failing to copy the attributes with
+.IR -p
+is not considered a failure and thus won't negatively affect the exit code
+of dd_rescue.
.TP 8
.BR \-t ", " \-\-truncate
tells
@@ -539,6 +542,22 @@
.
.SH PLUGINS
+.SS null
+The null plugin (ddr_null) does nothing, except if you specify the
+.B [no]lnchange
+or the
+.B [no]change
+options in which case the plugin indicates to others that it transforms the
+length of the output or the data of the stream. (With the no prefix, it's
+reset to the default no-change indication again.)
+This may be helpful for testing or to influence which file the hash plugin
+considers for reading/writing extended attributes from/to
+and for plugins to change their behavior with respect to hole detection.
+.br
+ddr_null_ddr also allows you to specify
+.B debug
+in which case it just reports the blocks that it passes on.
+.
.SS hash
When the hash plugin (subsequently referred to as ddr_hash) is loaded, it
will calculate a cryptographic hash over the
@@ -549,11 +568,28 @@
alg=help to get a list.)
To abbreviate the syntax, the alg= piece can be omitted.
.br
+For backwards compatibility, the hash plugin can also be referred to with the
+old MD5 name; it then defaults to the md5 algorithm.
+.br
The computed value should be identical to calling md5sum/sha256sum/... on
the target file (unless you only write part of the file),
but saves time by not accessing the (possibly large) file a second time.
The hash plugin handles sparse writes and arbitrary offsets fine.
-.br
+.PP
+ddr_hash also supports the parameter
+.B append=STRING
+which appends the given STRING to the output before computing the cryptographic
+hash. Treating the STRING as a shared secret, this can actually be used to protect
+against someone not knowing the secret altering the contents (and recomputing the
+hash) without anyone noticing. It's thus a cheap way of a cryptographic signature
+(but with preshared secrets as opposed to public key cryptography).
+.br
+ddr_hash also supports
+.B prepend=STRING
+which is likely harder to attack with brute force than an appended string.
+Note that ddr_hash always prepends multiples of the hash algorithm's block
+size and pads the STRING with 0 to match.
+.PP
ddr_hash accepts the parameter
.B output
, which will cause ddr_hash to output
@@ -565,9 +601,79 @@
always processes data in binary mode and correctly indicates this with
a star (*) in the output generated with output/outfd=.
.br
-For backwards compatibility, the hash plugin can also be referred to with the
-old MD5 name; it then defaults to the md5 algorithm.
-.br
+The checksum can also be written to a file by giving the
+.B outnm=CHKNAME
+parameter. Then a file with CHKNAME will be created and a md5sum/sha256sum/...
+compatible line will be printed to the file. If the file exists and contains
+an entry for the file, it will be updated. If the file exists and does not
+contain an entry for the file, one will be appended. If NAME is omitted, the
+filename CHECKSUMS.alg will be used (alg is replaced by the chosen algorithm).
+If the checksum can't be written, a warning will be printed and the exit code
+of dd_rescue will become non-zero.
+.PP
+The checksum can be validated using
+.B checknm=CHKNAME .
+The file will be read and ddr_hash will look for an md5sum/sha256sum/...
+compatible line with a matching file name to take the checksum from and
+compare it to the one computed. If NAME is omitted, the same default
+as described above (in outnm=...) will be used. You can also read the
+checksum from stdin if you prefer by specifying the
+.B check
+option.
+.br
+Note that in any case, the check is only performed after the copy operation
+is completed -- a faulty checksum will thus NOT result in the copy not
+taking place. However, the exit code of dd_rescue will indicate the
+error. (If you want to avoid copying data with a broken checksum into
+the final target, use a temporary target that you delete upon error and
+only move to the final location if dd_rescue's exit value is 0; you can
+of course also copy to /dev/null for testing beforehand, but it might
+be too costly reading the input file twice.)
+.PP
+You can store the cryptographic hash into the files by using the
+.B set_xattr
+option. The hash will be stored into the extended attribute user.checksum.ALG
+by default, but you can override the name of the attribute by specifying
+.B set_xattr=XATTR\.NAME
+instead. If the xattr can't be written, an error will be reported, unless
+you also specify the
+.B fallb[ack][=CHKNAME]
+option. In that case, ddr_hash tries to write the checksum to the CHKNAME
+checksums file. (For the default for CHKNAME, see outnm= option above.)
+.br
+.B chk_xattr
+will validate that the computed hash matches the one read from the extended
+attribute. The same default attribute name applies and you can likewise override
+it with
+.B chk_xattr=XATTR\.NAME .
+A missing attribute is considered an error (although the same fallback is
+tried if you specify the fallback option). A broken checksum is of course
+considered an error as well, but just like with checknm=CHKNAME won't
+prevent the copy. See the discussion there.
+.PP
+Note that for output,outfd,outnm=,set_xattr ddr_hash will use the
+output file name to attach the checksum to (be it by setting xattr or the
+file name used in the checksum file), unless a plugin
+in the chain after ddr_hash indicates that it changes the data.
+In that case, it will warn and associate the checksum with the input file
+name, unless there's another plugin before ddr_hash in the chain which
+indicates data transformation as well. In that case, there is no file that
+the checksum could be associated with and ddr_hash will report an error.
+.br
+Likewise for chknm=,check,chk_xattr ddr_hash will use the input file
+name to get the checksum (be it by reading the xattr or by looking for
+the input file name in a checksums file) unless there's a plugin in the
+chain before ddr_hash that indicates that it changes the data. The output
+file name will then be used, unless there's another plugin after ddr_hash
+indicating data change as well, in which case there's no file we could
+get the checksum for and thus an error is reported.
+.PP
+If your system supports extended attributes, those have the advantage
+of travelling with the files; thus a rename or copy (with dd_rescue -p)
+will maintain the checksum. Checksum files on the other hand can be
+handled everywhere (including the transfer via ftp or http) and can
+be cryptographically signed with PGP/GnuPG.
+.PP
Please note that the md5 algorithm is NOT recommended any more for
good protetction against malicious attempts to hide data modification;
it's not considered strong enough any more to prevent hash collisions.
@@ -638,6 +744,17 @@
it from the filenames. This example shows that you can specify multiple
plugins with multiple parameters; the plugins are forming a filter
chain. You can specify the same plugin multiple times.
+.TP
+.BI dd_rescue\ \-L\ hash=sha512:set_xattr:fallb,null=change\ infile\ /dev/null
+reads the file
+.IR infile
+and computes its sha512 hash. It stores it in the input file's user.checksum.sha512
+attribute (and falls back to writing it to CHECKSUMS.sha512 if xattrs can't be
+written). Note the use of the null plugin with faking data change with
+the change parameter; this causes the hash plugin to write to the input
+file which it would not normally have done. Of course this
+will fail if you don't have the appropriate privileges to write xattrs to
+infile nor to write the checksum to CHECKSUMS.sha512.
.PP
See also README.dd_rescue and ddr_lzo(1) to learn about the possibilities.
.
@@ -760,7 +877,8 @@
.br
Plugins exist since 1.42, the MD5 plugin came with 1.42, the
lzo plugin with 1.43. 1.44 renamed the MD5 plugin to hash and
-added support for the SHA-2 family of hashes.
+added support for the SHA-2 family of hashes. 1.45 added SHA-1
+and the ability to store and validate checksums.
.PP
Some additional information can be found on
.br
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/dd_rescue.c new/dd_rescue/dd_rescue.c
--- old/dd_rescue/dd_rescue.c 2014-05-23 11:56:30.000000000 +0200
+++ new/dd_rescue/dd_rescue.c 2014-05-27 10:27:21.000000000 +0200
@@ -49,7 +49,7 @@
# define __COMPILER__ "(unknown compiler)"
#endif
-#define ID "$Id: dd_rescue.c,v 1.319 2014/05/22 12:29:07 garloff Exp $"
+#define ID "$Id: dd_rescue.c,v 1.323 2014/05/27 08:27:21 garloff Exp $"
#ifndef BUF_SOFTBLOCKSIZE
# define BUF_SOFTBLOCKSIZE 131072
@@ -349,8 +349,10 @@
int plug_max_neg_slack_pre = 0;
unsigned int plug_max_slack_post = 0;
int plug_max_neg_slack_post = 0;
-int plug_first_lenchg = -1;
+int plug_first_lenchg = 9999;
int plug_last_lenchg = -1;
+int plug_first_chg = 9999;
+int plug_last_chg = -1;
unsigned int plug_max_req_align = 0;
char plug_not_sparse = 0;
char plug_output_chg = 0;
@@ -378,16 +380,18 @@
*/
int err = LISTDATA(plug).open_callback(op, (plugins_opened > plug_first_lenchg? 1: 0),
(plugins_opened < plug_last_lenchg ? 1: 0),
+ (plugins_opened > plug_first_chg? 1: 0),
+ (plugins_opened < plug_last_chg ? 1: 0),
plug_max_slack_pre-slk_pre, plug_max_slack_post-slk_post,
&LISTDATA(plug).state);
if (err < 0) {
- fplog(stderr, WARN, "Error initializing plugin %s: %s!\n",
- LISTDATA(plug).name, strerror(err));
+ fplog(stderr, WARN, "Error initializing plugin %s(%i): %s!\n",
+ LISTDATA(plug).name, plugins_opened, strerror(-err));
exit(13);
} else if (err>0) {
fst->ipos += err;
- fplog(stderr, WARN, "Plugin %s skipping %i bytes might break other plugins!\n",
- LISTDATA(plug).name, err);
+ fplog(stderr, WARN, "Plugin %s(%i) skipping %i bytes might break other plugins!\n",
+ LISTDATA(plug).name, plugins_opened, err);
}
}
++plugins_opened;
@@ -396,20 +400,26 @@
assert(slk_post == plug_max_slack_post);
}
-void call_plugins_close(opt_t *op, fstate_t *fst)
+int call_plugins_close(opt_t *op, fstate_t *fst)
{
+ int errs = 0;
+ int seq = 0;
if (!plugins_opened)
- return;
+ return 0;
LISTTYPE(ddr_plugin_t) *plug;
LISTFOREACH(ddr_plugins, plug) {
if (LISTDATA(plug).close_callback) {
int err = LISTDATA(plug).close_callback(fst->opos, &LISTDATA(plug).state);
- if (err)
- fplog(stderr, WARN, "Error closing plugin %s: %s!\n",
- LISTDATA(plug).name, strerror(err));
+ if (err) {
+ fplog(stderr, WARN, "Plugin %s(%i) reported error on close: %s!\n",
+ LISTDATA(plug).name, seq, strerror(-err));
+ ++errs;
+ }
}
+ ++seq;
--plugins_opened;
}
+ return errs;
}
/** Call the plugin block processing chain ...
@@ -459,7 +469,19 @@
if (!plug->name)
plug->name = nm;
plug->fplog = fplog;
-
+ /* Call init after dd_rescue-filled fields have been set; this allows the
+ * init_callback to adjust fiels like slack, align_needs, output_chg
+ * depending on parameters and options ... */
+ if (param && !plug->init_callback) {
+ fplog(stderr, FATAL, "Plugin %s has no init callback to consume passed param %s\n",
+ nm, param);
+ exit(13);
+ }
+ if (plug->init_callback) {
+ int ret = plug->init_callback(&plug->state, param, plugins_loaded, op);
+ if (ret)
+ exit(-ret);
+ }
if (plug->slack_pre > 0)
plug_max_slack_pre += plug->slack_pre;
else if (plug->slack_pre < 0)
@@ -475,16 +497,6 @@
plug_not_sparse = 1;
if (plug->changes_output)
plug_output_chg = 1;
- if (param && !plug->init_callback) {
- fplog(stderr, FATAL, "Plugin %s has no init callback to consume passed param %s\n",
- nm, param);
- exit(13);
- }
- if (plug->init_callback) {
- int ret = plug->init_callback(&plug->state, param, plugins_loaded, op);
- if (ret)
- exit(ret);
- }
plugins_loaded++;
LISTAPPEND(ddr_plugins, *plug, ddr_plugin_t);
if (param && !memcmp(param, "help", 4))
@@ -536,8 +548,12 @@
}
if (plug->changes_output_len)
plug_last_lenchg = plugno;
- if (plug_first_lenchg == -1 && plug->changes_output_len)
+ if (plug_first_lenchg == 9999 && plug->changes_output_len)
plug_first_lenchg = plugno;
+ if (plug->changes_output)
+ plug_last_chg = plugno;
+ if (plug_first_chg == 9999 && plug->changes_output)
+ plug_first_chg = plugno;
++plugno;
}
plugs = next;
@@ -1186,7 +1202,7 @@
else
errs++;
/* And finalize */
- call_plugins_close(op, fst);
+ errs += call_plugins_close(op, fst);
}
errs += sync_close(fst->odes, op->oname, fst->o_chr, op, fst);
if (fst->ides != -1) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/ddr_lzo.1 new/dd_rescue/ddr_lzo.1
--- old/dd_rescue/ddr_lzo.1 2014-05-23 10:18:40.000000000 +0200
+++ new/dd_rescue/ddr_lzo.1 2014-05-25 00:01:52.000000000 +0200
@@ -1,4 +1,4 @@
-.\" $Id: ddr_lzo.1,v 1.10 2014/05/23 08:18:40 garloff Exp $
+.\" $Id: ddr_lzo.1,v 1.11 2014/05/24 22:01:52 garloff Exp $
.
.TH ddr_lzo 1 "2014-05-12" "Kurt Garloff" "LZO de/compression plugin for dd_rescue"
.
@@ -244,7 +244,7 @@
it will be emptied before (if the file happens to exist). The output file
won't have encoded holes; errors in the infile will result in zeros.
.TP
-.BI dd_rescue\ \-aL\ MD5,lzo=compress:bench,MD5,lzo=decompress,MD5\ infile\ infile2
+.BI dd_rescue\ \-aL\ MD5,lzo=compr:bench,MD5,lzo=decompress,MD5\ infile\ infile2
will copy
.IR infile
to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/ddr_plugin.h new/dd_rescue/ddr_plugin.h
--- old/dd_rescue/ddr_plugin.h 2014-05-22 14:10:14.000000000 +0200
+++ new/dd_rescue/ddr_plugin.h 2014-05-26 10:05:13.000000000 +0200
@@ -22,18 +22,20 @@
#endif
/** init callback parameters:
- * opaque handle, parameters from commandline, sequece in filter chain
+ * opaque handle, parameters from commandline, sequence in filter chain,
+ * pointer to options.
+ * Return value: 0 = OK, -x = ERROR
*/
typedef int (_init_callback)(void **stat, char* param, int seq, const opt_t *opt);
-/** open_callback parameters: input file descriptor, input file name,
- * initial offset input file, same 3 params for output file,
- * soft (large) block size, hard (fallback) block size,
- * estimated xfer size, flag that olen will change after writing,
- * total slack size for all plugins,
- * ptr to buffer ptr, opaque handle.
+/** open_callback parameters: pointer to options, four flags telling the
+ * plugin whether length, and/or contents of the stream are changed
+ * by other plugins before (i) or after (o) this one,
+ * required extra buffer memory before and after the main buffer
+ * and the opaque handle
* Return value: 0 = OK, -x = ERROR, +x = Bytes consumed from input file.
*/
typedef int (_open_callback)(const opt_t *opt, int ilnchange, int olnchange,
+ int ichange, int ochange,
unsigned int totslack_pre, unsigned int totslack_post,
void **stat);
/** block_callback parameters: file state (contains file descriptors, positions,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/hash.h new/dd_rescue/hash.h
--- old/dd_rescue/hash.h 2014-05-23 10:30:30.000000000 +0200
+++ new/dd_rescue/hash.h 2014-05-27 12:29:40.000000000 +0200
@@ -21,6 +21,7 @@
uint32_t sha1_h[5];
uint32_t sha256_h[8];
uint64_t sha512_h[8];
+ //uint64_t sha3_h[25];
};
} hash_t ALIGNED(32);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/libddr_MD5.c new/dd_rescue/libddr_MD5.c
--- old/dd_rescue/libddr_MD5.c 2014-05-23 11:05:18.000000000 +0200
+++ new/dd_rescue/libddr_MD5.c 2014-05-27 14:03:18.000000000 +0200
@@ -7,6 +7,13 @@
* License: GNU GPLv2 or v3
*/
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#define _LARGEFILE64_SOURCE 1
+#define _FILE_OFFSET_BITS 64
+
#include "ddr_plugin.h"
#include "ddr_ctrl.h"
#include "hash.h"
@@ -16,9 +23,15 @@
#include "sha1.h"
#include <stdlib.h>
-#include <unistd.h>
#include <string.h>
+#include <libgen.h>
+#include <ctype.h>
#include <assert.h>
+#include <errno.h>
+#include <unistd.h>
+#ifdef HAVE_ATTR_XATTR_H
+# include <attr/xattr.h>
+#endif
// TODO: pass at runtime rather than compile time
#define HASH_DEBUG(x) if (state->debug) x
@@ -49,26 +62,40 @@
{ "sha224", sha224_init, sha256_64 , sha256_calc, sha224_out, 64 },
{ "sha512", sha512_init, sha512_128, sha512_calc, sha512_out, 128 },
{ "sha384", sha384_init, sha512_128, sha512_calc, sha384_out, 128 }
+ // SHA3 ...
};
typedef struct _hash_state {
hash_t hash;
loff_t hash_pos;
- const char* fname;
+ const char *fname;
+ const char *append, *prepend;
hashalg_t *alg;
- uint8_t buf[128];
+ uint8_t buf[288]; // enough for SHA-3 with max blksz of 144Bytes
int seq;
int outfd;
unsigned char buflen;
- unsigned char ilnchg, olnchg, debug;
+ unsigned char ilnchg, olnchg, ichg, ochg, debug, outf, chkf, chkfalloc;
+ const char* chkfnm;
const opt_t *opts;
+#ifdef HAVE_ATTR_XATTR_H
+ char chk_xattr, set_xattr, xnmalloc, xfallback;
+ char* xattr_name;
+#endif
} hash_state;
+/* TO DO: Add updating and reading MD5SUMS style files, optionally
+ * as fallback for unavailable xattrs
+ */
const char *hash_help = "The HASH plugin for dd_rescue calculates a cryptographic checksum on the fly.\n"
- " It supports unaligned blocks (arbitrary offsets) and sparse writing.\n"
- " Parameters: output:outfd=FNO:debug:alg[o[rithm]=ALG\n"
+ " It supports unaligned blocks (arbitrary offsets) and holes(sparse writing).\n"
+ " Parameters: output:outfd=FNO:outnm=FILE:check:chknm=FILE:debug:[alg[o[rithm]=]ALG\n"
+ "\t:append=STR:prepend=STR\n"
+#ifdef HAVE_ATTR_XATTR_H
+ "\t:chk_xattr[=xattr_name]:set_xattr[=xattr_name]:fallb[ack][=FILE]\n"
+#endif
" Use algorithm=help to get a list of supported hash algorithms\n";
@@ -78,7 +105,6 @@
const char help = !strcmp(nm, "help");
if (help)
FPLOG(INFO, "Supported algorithms:");
- // TODO: Handle alg=help
for (i = 0; i < sizeof(hashes)/sizeof(hashalg_t); ++i) {
if (help)
fprintf(stderr, " %s", hashes[i].name);
@@ -113,6 +139,34 @@
state->outfd = 1;
else if (!memcmp(param, "outfd=", 6))
state->outfd = atoi(param+6);
+ else if (!memcmp(param, "append=", 7))
+ state->append = param+7;
+ else if (!memcmp(param, "prepend=", 8))
+ state->prepend = param+8;
+#ifdef HAVE_ATTR_XATTR_H
+ else if (!memcmp(param, "chk_xattr=", 10)) {
+ state->chk_xattr = 1; state->xattr_name = param+10; }
+ else if (!strcmp(param, "chk_xattr"))
+ state->chk_xattr = 1;
+ else if (!memcmp(param, "set_xattr=", 10)) {
+ state->set_xattr = 1; state->xattr_name = param+10; }
+ else if (!strcmp(param, "set_xattr"))
+ state->set_xattr = 1;
+ else if (!strcmp(param, "fallb"))
+ state->xfallback = 1;
+ else if (!strcmp(param, "fallback"))
+ state->xfallback = 1;
+ else if (!memcmp(param, "fallback=", 9)) {
+ state->xfallback = 1; state->chkfnm = param+9; }
+ else if (!memcmp(param, "fallb=", 6)) {
+ state->xfallback = 1; state->chkfnm = param+6; }
+#endif
+ else if (!memcmp(param, "outnm=", 6)) {
+ state->outf = 1; state->chkfnm=param+6; }
+ else if (!memcmp(param, "chknm=", 6)) {
+ state->chkf = 1; state->chkfnm=param+6; }
+ else if (!strcmp(param, "check")) {
+ state->chkf = 1; state->chkfnm="-"; }
else if (!memcmp(param, "algo=", 5))
state->alg = get_hashalg(state, param+5);
else if (!memcmp(param, "alg=", 4))
@@ -128,38 +182,93 @@
else {
FPLOG(FATAL, "plugin doesn't understand param %s\n",
param);
- ++err;
+ --err;
}
}
param = next;
}
if (!state->alg) {
FPLOG(FATAL, "No hash algorithm specified\n");
- ++err;
+ --err;
+ }
+#ifdef HAVE_ATTR_XATTR_H
+ if ((state->chk_xattr || state->set_xattr) && !state->xattr_name) {
+ state->xattr_name = (char*)malloc(24);
+ state->xnmalloc = 1;
+ snprintf(state->xattr_name, 24, "user.checksum.%s", state->alg->name);
+ }
+#endif
+ if ((!state->chkfnm || !*state->chkfnm) && (state->chkf || state->outf
+#ifdef HAVE_ATTR_XATTR_H
+ || state->xfallback
+#endif
+ )) {
+ char cfnm[32];
+ // if (!strcmp(state->alg->name, "md5")) strcpy(cfnm, "MD5SUMS"); else
+ snprintf(cfnm, 32, "CHECKSUMS.%s", state->alg->name);
+ state->chkfalloc = 1;
+ state->chkfnm = strdup(cfnm);
}
if (state->debug)
- FPLOG(DEBUG, "Initialized plugin %s\n", ddr_plug.name);
+ FPLOG(DEBUG, "Initialized plugin %s (%s)\n", ddr_plug.name, state->alg->name);
return err;
}
-int hash_open(const opt_t *opt, int ilnchg, int olnchg,
+#define MIN(a,b) ((a)<(b)? (a): (b))
+
+int hash_open(const opt_t *opt, int ilnchg, int olnchg, int ichg, int ochg,
unsigned int totslack_pre, unsigned int totslack_post,
void **stat)
{
+ int err = 0;
hash_state *state = (hash_state*)*stat;
state->opts = opt;
state->alg->hash_init(&state->hash);
state->hash_pos = 0;
- state->fname = (state->seq == 0? opt->iname: opt->oname);
- memset(state->buf, 0, 128);
+ if (!ochg && state->seq != 0)
+ state->fname = opt->oname;
+ else if (!ichg)
+ state->fname = opt->iname;
+ else {
+ char* nnm = (char*)malloc(strlen(opt->iname)+strlen(opt->oname)+3);
+ strcpy(nnm, opt->iname);
+ strcat(nnm, "->");
+ strcat(nnm, opt->oname);
+ state->fname = nnm;
+#ifdef HAVE_ATTR_XATTR_H
+ if (state->chk_xattr || state->set_xattr) {
+ --err;
+ FPLOG(WARN, "Can't access xattr in the middle of a plugin chain!");
+ }
+#endif
+ }
+ if (state->prepend) {
+ const int blksz = state->alg->blksz;
+ int done = 0; int remain = strlen(state->prepend);
+ while (remain >= blksz) {
+ state->alg->hash_block((uint8_t*)(state->prepend)+done, &state->hash);
+ remain -= blksz;
+ done += blksz;
+ }
+ HASH_DEBUG(FPLOG(DEBUG, "Prepending %i+%i bytes (padded with %i bytes)\n",
+ done, remain, blksz-remain));
+ if (remain) {
+ memcpy(state->buf, state->prepend+done, remain);
+ memset(state->buf+remain, 0, blksz-remain);
+ state->alg->hash_block(state->buf, &state->hash);
+ }
+ }
+ memset(state->buf, 0, sizeof(state->buf));
state->buflen = 0;
state->ilnchg = ilnchg;
state->olnchg = olnchg;
- if (ilnchg && olnchg && (state->opts->sparse || !state->opts->nosparse)) {
+ state->ichg = ichg;
+ state->ochg = ochg;
+ if (ichg && ochg && (state->opts->sparse || !state->opts->nosparse)) {
FPLOG(WARN, "Size of potential holes may not be correct due to other plugins;\n");
FPLOG(WARN, " MD5 hash may be miscomputed! Avoid holes (remove -a, use -A).\n");
}
- return 0;
+ return err;
}
#if __WORDSIZE == 64
@@ -170,6 +279,13 @@
#error __WORDSIZE unknown
#endif
+inline int round_down(int val, const int gran)
+{
+ return val-val%gran;
+}
+
+#define round_up(v, g) round_down(v+g-1, g)
+
void hash_last(hash_state *state, loff_t pos)
{
//hash_block(0, 0, ooff, stat);
@@ -180,7 +296,15 @@
state->fname, len, state->hash_pos);
*/
HASH_DEBUG(FPLOG(DEBUG, "Last block with %i bytes\n", state->buflen));
- state->alg->hash_calc(state->buf, state->buflen, state->hash_pos+state->buflen, &state->hash);
+ if (state->append) {
+ memcpy(state->buf+state->buflen, state->append, strlen(state->append));
+ state->buflen += strlen(state->append);
+ HASH_DEBUG(FPLOG(DEBUG, "Append string with %i bytes for hash\n", strlen(state->append)));
+ }
+ int preln = state->prepend? round_up(strlen(state->prepend), state->alg->blksz): 0;
+ if (preln)
+ HASH_DEBUG(FPLOG(DEBUG, "Account for %i extra prepended bytes\n", preln));
+ state->alg->hash_calc(state->buf, state->buflen, state->hash_pos+state->buflen+preln, &state->hash);
state->hash_pos += state->buflen;
}
@@ -193,8 +317,6 @@
memset(state->buf, 0, clear);
}
-#define MIN(a,b) ((a)<(b)? (a): (b))
-
void hash_hole(fstate_t *fst, hash_state *state, loff_t holelen)
{
if (state->buflen) {
@@ -287,31 +409,284 @@
return bf;
}
+/*
+ * XXXSUM file parsing and updating routines
+ */
+
+#ifndef HAVE_FEOF_UNLOCKED
+#define feof_unlocked(x) feof(x)
+#endif
+
+#ifndef HAVE_GETLINE
+ssize_t getline(char **bf, size_t *sz, FILE *f)
+{
+ if (*sz == 0) {
+ *bf = (char*)malloc(1024);
+ *sz = 1024;
+ }
+ char* bret = fgets(*bf, *sz, f);
+ if (!bret)
+ return -1;
+ int ln = strlen(bret);
+ //if (bret[ln-1] != '\n') increase_buffersize();
+ return ln;
+}
+#endif
+
+/* file offset in the chksum file which has the chksum for nm, -1 = not found */
+off_t find_chks(hash_state* st, FILE* f, const char* nm, char* res)
+{
+ char *lnbf = NULL;
+ size_t lln = 0;
+ char* bnm = basename((char*)nm);
+ while (!feof_unlocked(f)) {
+ char *fnm, *fwh;
+ off_t pos = ftello(f);
+ ssize_t n = getline(&lnbf, &lln, f);
+ if (n <= 0)
+ break;
+ fwh = strchr(lnbf, ' ');
+ if (!fwh)
+ continue;
+ fnm = fwh;
+ ++fnm;
+ if (*fnm == '*' || *fnm == ' ')
+ fnm++;
+ int last = strlen(fnm)-1;
+ // Remove trailing \n\r
+ while (last > 0 && (fnm[last] == '\n' || fnm[last] == '\r'))
+ fnm[last--] = 0;
+ if (!strcmp(fnm, nm) || !strcmp(fnm, bnm)) {
+ if (res && fwh-lnbf <= 2*sizeof(hash_t)) {
+ memcpy(res, lnbf, fwh-lnbf);
+ res[fwh-lnbf] = 0;
+ }
+ free(lnbf);
+ return pos;
+ }
+ }
+ if (lnbf)
+ free(lnbf);
+ return -1;
+}
+FILE* fopen_chks(hash_state *state, const char* mode)
+{
+ const char* fnm = state->chkfnm;
+ assert(fnm);
+ if (!strcmp("-", fnm))
+ return stdin;
+ else
+ return fopen(fnm, mode);
+}
+
+static char _chks[129];
+/* get chksum */
+char* get_chks(hash_state* state, const char* nm)
+{
+ FILE *f = fopen_chks(state, "r");
+ if (!f)
+ return NULL;
+ *_chks = 0;
+ find_chks(state, f, nm, _chks);
+ if (f != stdin)
+ fclose(f);
+ return *_chks? _chks: NULL;
+}
+
+/* update chksum */
+int upd_chks(hash_state* state, const char *nm, const char *chks)
+{
+ FILE *f = fopen_chks(state, "r+");
+ int err = 0;
+ if (!f) {
+ errno = 0;
+ f = fopen_chks(state, "w");
+ if (!f)
+ return -errno;
+ fprintf(f, "%s *%s\n", chks, nm);
+ err = -errno;
+ } else {
+ off_t pos = find_chks(state, f, nm, _chks);
+ if (pos == -1 || strlen(chks) != strlen(_chks)) {
+ fclose(f);
+ f = fopen_chks(state, "a");
+ fprintf(f, "%s *%s\n", chks, nm);
+ err = -errno;
+ } else {
+ if (strcmp(chks, _chks)) {
+ if (pwrite(fileno(f), chks, strlen(chks), pos) <= 0)
+ err = -errno;
+ //pwrite(fileno(f), "*", 1, pos+strlen(chks)+1);
+ }
+ }
+ }
+ fclose(f);
+ return err;
+}
+
+
+#ifdef HAVE_ATTR_XATTR_H
+int check_xattr(hash_state* state, const char* res)
+{
+ char xatstr[128];
+ strcpy(xatstr, "xattr");
+ const char* name = state->opts->iname;
+ if (state->ichg && !state->ochg) {
+ name = state->opts->oname;
+ if (!state->opts->quiet)
+ FPLOG(INFO, "Read xattr from output file %s\n", name);
+ } else if (state->ichg) {
+ FPLOG(WARN, "Can't read xattrs in the middle of plugin chain (%s)\n", state->fname);
+ return -ENOENT;
+ }
+ /* Longest is 128byte hex for SHA512 (8x64byte numbers -> 8x16 digits) */
+ char chksum[129];
+ ssize_t itln = getxattr(name, state->xattr_name, chksum, 129);
+ const int rln = strlen(res);
+ if (itln <= 0) {
+ if (state->xfallback) {
+ char* cks = get_chks(state, name);
+ snprintf(xatstr, 128, "chksum file %s", state->chkfnm);
+ if (!cks) {
+ FPLOG(WARN, "no hash found in xattr nor %s for %s\n", xatstr, name);
+ return -ENOENT;
+ } else if (strcmp(cks, res)) {
+ FPLOG(WARN, "Hash from %s for %s does not match\n", xatstr, name);
+ return -EBADF;
+ }
+ } else {
+ FPLOG(WARN, "Hash could not be read from xattr of %s\n", name);
+ return -ENOENT;
+ }
+ } else if (itln < rln || memcmp(res, chksum, rln)) {
+ FPLOG(WARN, "Hash from xattr of %s does not match\n", name);
+ return -EBADF;
+ }
+ if (!state->opts->quiet || state->debug)
+ FPLOG(INFO, "Successfully validated hash from %s for %s\n", xatstr, name);
+ return 0;
+}
+
+int write_xattr(hash_state* state, const char* res)
+{
+ const char* name = state->opts->oname;
+ char xatstr[128];
+ snprintf(xatstr, 128, "xattr %s", state->xattr_name);
+ if (state->ochg && !state->ichg) {
+ name = state->opts->iname;
+ if (!state->opts->quiet)
+ FPLOG(INFO, "Write xattr to input file %s\n", name);
+ } else if (state->ochg) {
+ FPLOG(WARN, "Can't write xattr in the middle of plugin chain (%s)\n",
+ state->fname);
+ return -ENOENT;
+ }
+ if (setxattr(name, state->xattr_name, res, strlen(res), 0)) {
+ if (state->xfallback) {
+ int err = upd_chks(state, name, res);
+ snprintf(xatstr, 128, "chksum file %s", state->chkfnm);
+ if (err) {
+ FPLOG(WARN, "Failed writing to %s for %s: %s\n",
+ xatstr, name, strerror(-err));
+ return err;
+ }
+ } else {
+ FPLOG(WARN, "Failed writing hash to xattr of %s\n", name);
+ return -errno;
+ }
+ }
+ if (state->debug)
+ FPLOG(DEBUG, "Set %s for %s to %s\n",
+ xatstr, name, res);
+ return 0;
+}
+#endif
+
+int check_chkf(hash_state *state, const char* res)
+{
+ const char* name = state->opts->iname;
+ if (state->ichg && !state->ochg) {
+ name = state->opts->oname;
+ if (!state->opts->quiet)
+ FPLOG(INFO, "Read checksum from %s for output file %s\n", state->chkfnm, name);
+ } else if (state->ichg) {
+ FPLOG(WARN, "Can't read checksum in the middle of plugin chain (%s)\n", state->fname);
+ return -ENOENT;
+ }
+ char* cks = get_chks(state, name);
+ if (!cks) {
+ FPLOG(WARN, "Can't find checksum in %s for %s\n", state->chkfnm, name);
+ return -ENOENT;
+ }
+ if (strcmp(cks, res)) {
+ FPLOG(WARN, "Hash from chksum file %s for %s does not match\n", state->chkfnm, name);
+ return -EBADF;
+ }
+ return 0;
+}
+
+int write_chkf(hash_state *state, const char *res)
+{
+ const char* name = state->opts->oname;
+ if (state->ochg && !state->ichg) {
+ name = state->opts->iname;
+ if (!state->opts->quiet)
+ FPLOG(INFO, "Write checksum to %s for input file %s\n", state->chkfnm, name);
+ } else if (state->ochg) {
+ FPLOG(WARN, "Can't write checksum in the middle of plugin chain (%s)\n",
+ state->fname);
+ return -ENOENT;
+ }
+ int err = upd_chks(state, name, res);
+ if (err)
+ FPLOG(WARN, "Hash writing to %s for %s failed\n", state->chkfnm, name);
+ return err;
+}
int hash_close(loff_t ooff, void **stat)
{
+ int err = 0;
hash_state *state = (hash_state*)*stat;
char res[129];
loff_t firstpos = (state->seq == 0? state->opts->init_ipos: state->opts->init_opos);
- FPLOG(INFO, "%s %s (%" LL "i-%" LL "i): %s\n",
- state->alg->name, state->fname, firstpos, firstpos+state->hash_pos,
- state->alg->hash_out(res, &state->hash));
+ state->alg->hash_out(res, &state->hash);
+ if (!state->opts->quiet)
+ FPLOG(INFO, "%s %s (%" LL "i-%" LL "i): %s\n",
+ state->alg->name, state->fname, firstpos, firstpos+state->hash_pos, res);
if (state->outfd) {
char outbuf[512];
- snprintf(outbuf, 511, "%s *%s\n", state->alg->hash_out(res, &state->hash), state->fname);
- if (write(state->outfd, outbuf, strlen(outbuf)) <= 0)
+ snprintf(outbuf, 511, "%s *%s\n", res, state->fname);
+ if (write(state->outfd, outbuf, strlen(outbuf)) <= 0) {
FPLOG(WARN, "Could not write HASH result to fd %i\n", state->outfd);
+ --err;
+ }
}
+ if (state->chkf)
+ err += check_chkf(state, res);
+ if (state->outf)
+ err += write_chkf(state, res);
+#ifdef HAVE_ATTR_XATTR_H
+ if (state->chk_xattr)
+ err += check_xattr(state, res);
+ if (state->set_xattr)
+ err += write_xattr(state, res);
+ if (state->xnmalloc)
+ free((void*)state->xattr_name);
+#endif
+ if (state->chkfalloc)
+ free((void*)state->chkfnm);
+ if (strcmp(state->fname, state->opts->iname) && strcmp(state->fname, state->opts->oname))
+ free((void*)state->fname);
free(*stat);
- return 0;
+ return err;
}
ddr_plugin_t ddr_plug = {
//.name = "MD5",
- .slack_pre = 128, // not yet used
- .slack_post = 128, // not yet used
+ .slack_pre = 144, // not yet used
+ .slack_post = 288, // not yet used
.needs_align = 0,
.handles_sparse = 1,
.init_callback = hash_plug_init,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/libddr_lzo.c new/dd_rescue/libddr_lzo.c
--- old/dd_rescue/libddr_lzo.c 2014-05-23 11:57:26.000000000 +0200
+++ new/dd_rescue/libddr_lzo.c 2014-05-26 10:19:09.000000000 +0200
@@ -438,7 +438,7 @@
} else {
FPLOG(FATAL, "plugin doesn't understand param %s\n",
param);
- ++err;
+ --err;
}
param = next;
}
@@ -495,7 +495,7 @@
/* TO DO: We could as well adjust to real max (2*softbs) */
#define MAXBLOCKSZ 16UL*1024UL*1024UL
-int lzo_open(const opt_t *opt, int ilnchg, int olnchg,
+int lzo_open(const opt_t *opt, int ilnchg, int olnchg, int ichg, int ochg,
unsigned int totslack_pre, unsigned int totslack_post,
void **stat)
{
@@ -650,10 +650,12 @@
hlen = sizeof(blockhdr_t)-4+((state->flags&(F_ADLER32_C|F_CRC32_C))? 4: 0);
/* Overwrite EOF */
if (state->flags & F_MULTIPART) {
- FPLOG(INFO, "extending by writing next part (MULTIPART)\n");
+ if (!state->opts->quiet)
+ FPLOG(INFO, "extending by writing next part (MULTIPART)\n");
state->hdr_seen = 0;
} else {
- FPLOG(INFO, "extending by overwriting EOF\n");
+ if (!state->opts->quiet)
+ FPLOG(INFO, "extending by overwriting EOF\n");
fst->opos -= 4;
}
}
@@ -782,7 +784,8 @@
&& fst->buf[off+8] == lzop_hdr[8]) {
loff_t hole;
int hlen = lzo_parse_hdr(fst->buf+off+sizeof(lzop_hdr), &hole, state);
- FPLOG(INFO, "lzop header at %i (sz %i/hole %li)\n", fst->ipos+off,
+ if (!state->opts->quiet)
+ FPLOG(INFO, "lzop header at %i (sz %i/hole %li)\n", fst->ipos+off,
hlen+sizeof(lzop_hdr), hole);
fst->opos += hole;
off += hlen+sizeof(lzop_hdr);
@@ -803,14 +806,14 @@
!check_blklen_and_next(state, fst, *towr, off-state->hdroff,
12, unc_len, cmp_len)) {
if (state->debug)
- FPLOG(INFO, "Blk Cand @ %i failed chain tests ...\n",
+ FPLOG(DEBUG, "Blk Cand @ %i failed chain tests ...\n",
fst->ipos+off);
continue;
}
/* Candidate found but we can't decode it with our buffer sizes ... */
if (cmp_len > 2*state->opts->softbs) {
if (state->debug)
- FPLOG(INFO, "Blk Cand @ %i with large size %i, increase softblocksize\n",
+ FPLOG(DEBUG, "Blk Cand @ %i with large size %i, increase softblocksize\n",
fst->ipos+off, cmp_len);
continue;
}
@@ -835,7 +838,7 @@
int err = state->algo->decompr(fst->buf+off+12, cmp_len, state->dbuf, &dst_len, NULL);
if (err != LZO_E_OK || dst_len != unc_len) {
if (state->debug)
- FPLOG(INFO, "Blk Cand @ %i failed decompression\n",
+ FPLOG(DEBUG, "Blk Cand @ %i failed decompression\n",
fst->ipos + off);
continue;
}
@@ -849,15 +852,16 @@
state->flags = F_OS_UNIX | F_CRC32_D | F_MULTIPART;
else {
//if (state->debug)
- FPLOG(INFO, "Blk Cand @ %i fails decomp chksum test\n",
+ FPLOG(DEBUG, "Blk Cand @ %i fails decomp chksum test\n",
fst->ipos+off);
continue;
}
}
}
}
- FPLOG(INFO, "Found block @ %i (flags %08x)\n",
- fst->ipos+off, state->flags);
+ if (!state->opts->quiet)
+ FPLOG(INFO, "Found block @ %i (flags %08x)\n",
+ fst->ipos+off, state->flags);
//*towr -= off;
state->hdroff = off;
state->do_search = 0;
@@ -868,7 +872,8 @@
const size_t totbufln = state->opts->softbs - ddr_plug.slack_post*((state->opts->softbs+15)/16);
const size_t left = totbufln - (*towr-off);
if (left < state->opts->softbs) {
- FPLOG(INFO, "Buffer exhausted Blk Cand @ %i\n", fst->ipos+off);
+ if (!state->opts->quiet)
+ FPLOG(INFO, "Buffer exhausted Blk Cand @ %i\n", fst->ipos+off);
off += fst->buf-state->obuf;
fst->buf = state->obuf;
assert(off >= 0);
@@ -944,7 +949,7 @@
#define QUIT { raise(SIGQUIT); ++do_break; break; }
#define BREAK if (!state->nodiscard) ++do_break; break
#define DRAIN(x) do { ++do_break; *recall=1; \
- LZO_DEBUG(FPLOG(INFO, "Drain %i bytes before %s error handling\n", d_off, x)); \
+ LZO_DEBUG(FPLOG(DEBUG, "Drain %i bytes before %s error handling\n", d_off, x)); \
eof = 0; \
break; } while(0); \
if (do_break) break
@@ -1004,7 +1009,7 @@
char is_err = 0;
effbf = bf+c_off+state->hdroff;
lzo_uint dst_len;
- LZO_DEBUG(FPLOG(INFO, "dec blk @ %p (offs %i, stoffs %i, bln %zi, tbw %i)\n",
+ LZO_DEBUG(FPLOG(DEBUG, "dec blk @ %p (offs %i, stoffs %i, bln %zi, tbw %i)\n",
effbf, effbf-state->obuf, state->hdroff, totbufln, inlen));
blockhdr_t *hdr = (blockhdr_t*)effbf;
have_len = inlen-state->hdroff-c_off;
@@ -1024,7 +1029,7 @@
}
if (!unc_len && state->flags & F_MULTIPART && have_len > 32) {
/* EOF with new LZOP sig */
- LZO_DEBUG(FPLOG(INFO, "Next part ...\n"));
+ LZO_DEBUG(FPLOG(DEBUG, "Next part ...\n"));
if (memcmp(effbf+4, lzop_hdr, sizeof(lzop_hdr))) {
FPLOG(FATAL, "EOF with MULTIPART, but no new hdr\n");
raise(SIGQUIT);
@@ -1034,7 +1039,8 @@
int hln = lzo_parse_hdr(effbf+4+sizeof(lzop_hdr), &hsz, state);
bhsz = hln+sizeof(lzop_hdr)+4;
if (!hsz) {
- FPLOG(INFO, "MULTIPART, just append ...\n");
+ if (!state->opts->quiet)
+ FPLOG(INFO, "MULTIPART, just append ...\n");
c_off += bhsz;
state->cmp_hdr += bhsz;
continue;
@@ -1063,7 +1069,7 @@
if (cmp_len == unc_len)
cmp_cksum = unc_cksum;
- LZO_DEBUG(FPLOG(INFO, "dec blk @ %p (hdroff %i, cln %i, uln %i, have %i)\n",
+ LZO_DEBUG(FPLOG(DEBUG, "dec blk @ %p (hdroff %i, cln %i, uln %i, have %i)\n",
effbf, c_off+state->hdroff, unc_len, cmp_len, have_len));
/* Block incomplete? Then we're done for this round ... */
if (have_len < bhsz+cmp_len)
@@ -1133,7 +1139,7 @@
FPLOG(WARN, "compressed %i > uncompressed %i breaks lzop\n",
cmp_len, unc_len);
err = state->algo->decompr(effbf+bhsz, cmp_len, (unsigned char*)state->dbuf+d_off, &dst_len, NULL);
- LZO_DEBUG(FPLOG(INFO, "decompressed %i@%p -> %i\n",
+ LZO_DEBUG(FPLOG(DEBUG, "decompressed %i@%p -> %i\n",
cmp_len, effbf+bhsz, dst_len));
if (dst_len != unc_len) {
fst->nrerr++;
@@ -1271,7 +1277,7 @@
/* We have enough space to just append */
state->hdroff -= inlen-c_off;
fst->buf += inlen;
- LZO_DEBUG(FPLOG(INFO, "append @ %p\n", fst->buf));
+ LZO_DEBUG(FPLOG(DEBUG, "append @ %p\n", fst->buf));
/* OK, now for the bad cases:
* (a) We can't append, but everything fits if we memmove to start
@@ -1281,7 +1287,7 @@
} else if (bhsz+cmp_len < totbufln &&
have_len+nextrd < totbufln) {
/* We need to move block to beg of buffer */
- LZO_DEBUG(FPLOG(INFO, "move %i bytes to buffer head\n", have_len));
+ LZO_DEBUG(FPLOG(DEBUG, "move %i bytes to buffer head\n", have_len));
if (effbf != state->obuf) {
memmove(state->obuf, effbf, have_len);
++state->nr_memmove;
@@ -1336,30 +1342,32 @@
slackfree(state->dbuf, state);
if (state->workspace)
free(state->workspace);
- if (state->mode == COMPRESS)
- FPLOG(INFO, "%s_compress %.1fkiB (%1.f%%) + %i <- %.1fkiB\n",
- state->algo->name,
- state->cmp_ln/1024.0,
- 100.0*((double)state->cmp_ln/state->unc_ln),
- state->cmp_hdr,
- state->unc_ln/1024.0);
- else {
- FPLOG(INFO, "%s_decompr %.1fkiB (%.1f%%) + %i -> %.1fkiB\n",
- state->algo->name,
- state->cmp_ln/1024.0,
- 100.0*((double)state->cmp_ln/state->unc_ln),
- state->cmp_hdr,
- state->unc_ln/1024.0);
- if (state->do_bench)
- FPLOG(INFO, "%i reallocs (%ikiB), %i(+%i) moves\n",
- state->nr_realloc, state->dbuflen/1024,
- state->nr_memmove, state->nr_cheapmemmove);
- }
- /* Only output if it took us more than 0.05s, otherwise it's completely meaningless */
- if (state->do_bench && state->cpu/(CLOCKS_PER_SEC/20) > 0)
- FPLOG(INFO, "%.2fs CPU time, %.1fMiB/s\n",
+ if (state->do_bench || !state->opts->quiet) {
+ if (state->mode == COMPRESS)
+ FPLOG(INFO, "%s_compress %.1fkiB (%1.f%%) + %i <- %.1fkiB\n",
+ state->algo->name,
+ state->cmp_ln/1024.0,
+ 100.0*((double)state->cmp_ln/state->unc_ln),
+ state->cmp_hdr,
+ state->unc_ln/1024.0);
+ else {
+ FPLOG(INFO, "%s_decompr %.1fkiB (%.1f%%) + %i -> %.1fkiB\n",
+ state->algo->name,
+ state->cmp_ln/1024.0,
+ 100.0*((double)state->cmp_ln/state->unc_ln),
+ state->cmp_hdr,
+ state->unc_ln/1024.0);
+ if (state->do_bench)
+ FPLOG(INFO, "%i reallocs (%ikiB), %i(+%i) moves\n",
+ state->nr_realloc, state->dbuflen/1024,
+ state->nr_memmove, state->nr_cheapmemmove);
+ }
+ /* Only output if it took us more than 0.05s, otherwise it's completely meaningless */
+ if (state->do_bench && state->cpu/(CLOCKS_PER_SEC/20) > 0)
+ FPLOG(INFO, "%.2fs CPU time, %.1fMiB/s\n",
(double)state->cpu/CLOCKS_PER_SEC,
state->unc_ln/1024 / (state->cpu/(CLOCKS_PER_SEC/1024.0)));
+ }
free(*stat);
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/libddr_null.c new/dd_rescue/libddr_null.c
--- old/dd_rescue/libddr_null.c 1970-01-01 01:00:00.000000000 +0100
+++ new/dd_rescue/libddr_null.c 2014-05-26 10:28:12.000000000 +0200
@@ -0,0 +1,121 @@
+/* libddr_null.c
+ *
+ * plugin for dd_rescue, doing nothing (except optionally setting changes_length)
+ *
+ * (c) Kurt Garloff <kurt(a)garloff.de>, 2014
+ * License: GNU GPLv2 or v3
+ */
+
+#include "ddr_plugin.h"
+#include "ddr_ctrl.h"
+#include <string.h>
+#include <stdlib.h>
+
+/* fwd decl */
+extern ddr_plugin_t ddr_plug;
+
+typedef struct _null_state {
+ int seq;
+ char debug;
+} null_state;
+
+#define FPLOG(lvl, fmt, args...) \
+ ddr_plug.fplog(stderr, lvl, "%s(%i): " fmt, ddr_plug.name, state->seq, ##args)
+
+const char* null_help = "The null plugin does nothing ...\n"
+ "Options: debug:[no]lnchange:[no]change. [no]lnchange indicates that the length\n"
+ " may [not] be changed by ddr_null; [no]change indicates that the contents may\n"
+ " [not] be changed by ddr_null. (Both is not true, but influences the behavior\n"
+ " of other plugins)\n";
+
+int null_plug_init(void **stat, char* param, int seq, const opt_t *opt)
+{
+ null_state *state = (null_state*)malloc(sizeof(null_state));
+ *stat = (void*)state;
+ memset(state, 0, sizeof(null_state));
+ state->seq = seq;
+ while (param) {
+ char* next = strchr(param, ':');
+ if (next)
+ *next++ = 0;
+ if (!strcmp(param, "help"))
+ FPLOG(INFO, "%s", null_help);
+ else if (!strcmp(param, "lnchange"))
+ ddr_plug.changes_output_len = 1;
+ else if (!strcmp(param, "lnchg"))
+ ddr_plug.changes_output_len = 1;
+ /* Do we need this if loaded multiple times? */
+ else if (!strcmp(param, "nolnchange"))
+ ddr_plug.changes_output_len = 0;
+ else if (!strcmp(param, "nolnchg"))
+ ddr_plug.changes_output_len = 0;
+ else if (!strcmp(param, "change"))
+ ddr_plug.changes_output = 1;
+ else if (!strcmp(param, "chg"))
+ ddr_plug.changes_output = 1;
+ /* Do we need this if loaded multiple times? */
+ else if (!strcmp(param, "nochange"))
+ ddr_plug.changes_output = 0;
+ else if (!strcmp(param, "nochg"))
+ ddr_plug.changes_output = 0;
+ else if (!strcmp(param, "debug"))
+ state->debug = 1;
+ else {
+ FPLOG(FATAL, "plugin doesn't understand param %s\n",
+ param);
+ return 1;
+
+ }
+ param = next;
+ }
+ /* If the length changes, so does the contents ... */
+ if (ddr_plug.changes_output_len && !ddr_plug.changes_output)
+ FPLOG(WARN, "Change indication for length without contents change?\n");
+ return 0;
+}
+
+int null_open(const opt_t *opt, int ilnchg, int olnchg, int ichg, int ochg,
+ unsigned int totslack_pre, unsigned int totslack_post,
+ void **stat)
+{
+ return 0;
+}
+
+#if __WORDSIZE == 64
+#define LL "l"
+#elif __WORDSIZE == 32
+#define LL "ll"
+#else
+#error __WORDSIZE unknown
+#endif
+
+
+unsigned char* null_blk_cb(fstate_t *fst, unsigned char* bf,
+ int *towr, int eof, int *recall, void **stat)
+{
+ /* TODO: Could actually add debugging output here if wanted ... */
+ null_state *state = (null_state*)*stat;
+ if (state->debug)
+ FPLOG(DEBUG, "Block ipos %" LL "i opos %" LL "i with %i bytes %s\n",
+ fst->ipos, fst->opos, *towr, (eof? "EOF": ""));
+ return bf;
+}
+
+int null_close(loff_t ooff, void **stat)
+{
+ //null_state *state = (null_state*)*stat;
+ free(*stat);
+ return 0;
+}
+
+ddr_plugin_t ddr_plug = {
+ .name = "null",
+ .needs_align = 0,
+ .handles_sparse = 1,
+ .init_callback = null_plug_init,
+ .open_callback = null_open,
+ .block_callback = null_blk_cb,
+ .close_callback = null_close,
+};
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dd_rescue/md5.c new/dd_rescue/md5.c
--- old/dd_rescue/md5.c 2014-05-23 12:12:48.000000000 +0200
+++ new/dd_rescue/md5.c 2014-05-27 13:37:33.000000000 +0200
@@ -51,10 +51,12 @@
{
*(uint32_t *)bytes = val;
}
+#if 0 // Unused
static inline uint32_t to_int32(const uint8_t *bytes)
{
return *(const uint32_t *)bytes;
}
+#endif
#else
/* Store val into bytes in little endian fmt */
static inline void to_bytes(uint32_t val, uint8_t *bytes)
--
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 resource-agents for openSUSE:Factory checked in at 2014-06-01 18:57:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/resource-agents (Old)
and /work/SRC/openSUSE:Factory/.resource-agents.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "resource-agents"
Changes:
--------
--- /work/SRC/openSUSE:Factory/resource-agents/resource-agents.changes 2014-05-26 10:27:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.resource-agents.new/resource-agents.changes 2014-06-01 18:57:19.000000000 +0200
@@ -1,0 +2,18 @@
+Fri May 30 13:25:09 UTC 2014 - lwang(a)suse.com
+
+- sg_persist: change sg_persist ocft not configure isci and let user prepare it manually
+ add sg_persist-ocft-not-configure-iscsi.patch
+
+-------------------------------------------------------------------
+Fri May 30 12:07:13 UTC 2014 - lwang(a)suse.com
+
+- bnc#880726: sg_persist devs required and not defined when define by configuration file
+ add fix-sg_persist-devs-required-and-not-defined.patch
+
+-------------------------------------------------------------------
+Tue May 27 09:28:08 UTC 2014 - lwang(a)suse.com
+
+- bnc#879881: fix sg_persit demote error
+ add fix-sg_persist-demote-error.patch
+
+-------------------------------------------------------------------
New:
----
fix-sg_persist-demote-error.patch
fix-sg_persist-devs-required-and-not-defined.patch
sg_persist-ocft-not-configure-iscsi.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ resource-agents.spec ++++++
--- /var/tmp/diff_new_pack.vqtRmL/_old 2014-06-01 18:57:20.000000000 +0200
+++ /var/tmp/diff_new_pack.vqtRmL/_new 2014-06-01 18:57:20.000000000 +0200
@@ -71,6 +71,12 @@
Patch16: 0001-Medium-mysql-Update-mysql-with-more-sensible-default.patch
# PATCH-FIX-UPSTREAM: sg_persist: fix commented by Lars
Patch17: fix-sg_persist-commented-byLars.patch
+# PATCH: sg_persist: fix demote error
+Patch18: fix-sg_persist-demote-error.patch
+# sg_persist: fix devs required and not defined error when defined by configuration file(bnc#880726)
+Patch19: fix-sg_persist-devs-required-and-not-defined.patch
+# sg_persist: change sg_persist ocft not configure isci and let user prepare it manually
+Patch20: sg_persist-ocft-not-configure-iscsi.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Obsoletes: heartbeat-resources
@@ -153,6 +159,9 @@
%patch14 -p1
%patch16 -p1
%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
###########################################################
%build
++++++ fix-sg_persist-demote-error.patch ++++++
Index: resource-agents-3.9.5+git404/heartbeat/sg_persist
===================================================================
--- resource-agents-3.9.5+git404.orig/heartbeat/sg_persist
+++ resource-agents-3.9.5+git404/heartbeat/sg_persist
@@ -653,7 +653,7 @@ sg_persist_action_promote() {
}
sg_persist_action_demote() {
- case $RESERVATION_TYPER in
+ case $RESERVATION_TYPE in
1|3|5|6)
if [ ${#RESERVED_DEVS[*]} -eq 0 ]; then
ocf_log info "$RESOURCE demote: already slave"
++++++ fix-sg_persist-devs-required-and-not-defined.patch ++++++
Index: resource-agents-3.9.5+git404/heartbeat/sg_persist
===================================================================
--- resource-agents-3.9.5+git404.orig/heartbeat/sg_persist
+++ resource-agents-3.9.5+git404/heartbeat/sg_persist
@@ -1,3 +1,4 @@
+
#!/bin/bash
#
#
@@ -114,7 +115,7 @@ Resorce init functions for several sg_pe
<content type="string" default="/etc/sg_persist.conf"/>
</parameter>
-<parameter name="devs" unique="0" required="1">
+<parameter name="devs" unique="0" required="0">
<longdesc lang="en">
Device list. Shell wildcars are allowed.
</longdesc>
@@ -261,28 +262,36 @@ sg_persist_init() {
# default configure file path
SG_PERSIST_CONF="${OCF_RESKEY_config_file:=/etc/sg_persist.conf}"
- if [ -f "$SG_PERSIST_CONF" ]; then
- sg_persist_read_config
- fi
-
# no default value for device list
- DEVS=${OCF_RESKEY_devs:=""}
+ devs=""
# default number of required devices
- REQUIRED_DEVS_NOF=${OCF_RESKEY_required_devs_nof:=1}
+ required_devs_nof=1
# default reservation type
- RESERVATION_TYPE=${OCF_RESKEY_reservation_type:=1}
+ reservation_type=1
# default master score base
- MASTER_SCORE_BASE=${OCF_RESKEY_master_score_base:=0}
+ master_score_base=0
# default device factor for master score
- MASTER_SCORE_DEV_FACTOR=${OCF_RESKEY_master_score_dev_factor:=100}
+ master_score_dev_factor=100
# default delay for master score
- MASTER_SCORE_DELAY=${OCF_RESKEY_master_score_delay:=30}
-
+ master_score_delay=30
+
+ if [ -f "$SG_PERSIST_CONF" ]
+ then
+ sg_persist_read_config
+ fi
+
+ DEVS=${OCF_RESKEY_devs:=$devs}
+ REQUIRED_DEVS_NOF=${OCF_RESKEY_required_devs_nof:=$required_devs_nof}
+ RESERVATION_TYPE=${OCF_RESKEY_reservation_type:=$reservation_type}
+ MASTER_SCORE_BASE=${OCF_RESKEY_master_score_base:=$master_score_base}
+ MASTER_SCORE_DEV_FACTOR=${OCF_RESKEY_master_score_dev_factor:=$master_score_dev_factor}
+ MASTER_SCORE_DELAY=${OCF_RESKEY_master_score_delay:=$master_score_delay}
+
ocf_log debug "$RESOURCE: DEVS=$DEVS"
ocf_log debug "$RESOURCE: REQUIRED_DEVS_NOF=$REQUIRED_DEVS_NOF"
ocf_log debug "$RESOURCE: RESERVATION_TYPE=$RESERVATION_TYPE"
@@ -588,7 +597,7 @@ sg_persist_action_monitor() {
fi
if [ ${#REGISTERED_DEVS[*]} -eq ${#WORKING_DEVS[*]} ]; then
- if [ $RESERVATION_TYPE -eq 7 ] || [ $RESERVATION_TYPE -eq 8]; then
+ if [ $RESERVATION_TYPE -eq 7 ] || [ $RESERVATION_TYPE -eq 8 ]; then
if [ ${#DEVS_WITH_RESERVATION[*]} -gt 0 ]; then
return $OCF_RUNNING_MASTER
else
++++++ sg_persist-ocft-not-configure-iscsi.patch ++++++
Index: resource-agents-3.9.5+git404/tools/ocft/sg_persist
===================================================================
--- resource-agents-3.9.5+git404.orig/tools/ocft/sg_persist
+++ resource-agents-3.9.5+git404/tools/ocft/sg_persist
@@ -1,77 +1,38 @@
# sg_persist
+# Before use sg_persist ocft test case you have to prepare to make pacemaker
+# can be started successfully because sg_persist RA needs to use the result of
+# `crm_node -i` as sg_persist register key.
CONFIG
Agent sg_persist
AgentRoot /usr/lib/ocf/resource.d/heartbeat
- InstallPackage open-iscsi
- InstallPackage iscsitarget
InstallPackage sg3_utils
HangTimeout 20
VARIABLE
- OCFT_disk=/var/run/resource-agents/ocft-sg_disk
- OCFT_target="iqn.2013-12.ocft.localhost:disk0"
+
+ #Please set the disk you want to test for example "/dev/sdd"
+ OCFT_sg_disk=
+
OCFT_sg_conf="/tmp/sg_persist.conf"
- # please modify it by yourself.
+ # please set the IP addrees of the other server.
IP_2=
- OCFT_portal="$IP_2:3260"
SETUP-AGENT
- # create an iscsi target at node IP_2
- ifconfig|grep -q $IP_2
- if [ $? -eq 0 ]
- then
- dd if=/dev/zero of=$OCFT_disk bs=1024k count=1 2>/dev/null
- echo "Target $OCFT_target" >> /etc/iet/ietd.conf
- echo " Lun 0 Path=$OCFT_disk,Type=fileio" >> /etc/iet/ietd.conf
- /etc/init.d/iscsitarget restart 2>/dev/null
- fi
-
- # connect to the target
- iscsiadm --mode discoverydb --type sendtargets --portal $IP_2 --discover 2>/dev/null
- iscsiadm --mode node --targetname $OCFT_target --portal $OCFT_portal --login 2>/dev/null
-
# start pacemaker to get node_id through crm_node -i
systemctl start pacemaker
- # get the disk attached through target name.
- get_scsi_disk_attached()
- {
- found=0
- while read line
- do
- if [ "$found" = "0" ];then
- echo $line|grep -q "$1"
- [ $? -eq 0 ] && found=1
- fi
-
- if [ "$found" = "1" ];then
- echo $line|grep -q "Attached scsi disk"
- if [ $? = 0 ];then
- found=0;
- disk_attached=`echo $line|tr -s ' '|cut -d' ' -f4`
- echo "$disk_attached"
- break
- fi
- fi
- done <<< "`iscsiadm -m session -P3`"
- }
-
- OCFT_sg_disk=`get_scsi_disk_attached $OCFT_target`
-
cat > $OCFT_sg_conf <<EOF
sg_persist_resource_sg1(){
- devs="/dev/$OCFT_sg_disk"
+ devs=$OCFT_sg_disk
required_dev_nof=1
}
EOF
CLEANUP-AGENT
- iscsiadm --mode node --targetname $OCFT_target --portal $OCFT_portal --logout 2>/dev/null
rm -f $OCFT_disk
rm -f $OCFT_sg_conf
- sed -i "/^Target $OCFT_target/,+1d" /etc/iet/ietd.conf
CASE-BLOCK required_args
Env HA_SBIN_DIR=""
--
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 libyui-qt-graph for openSUSE:Factory checked in at 2014-06-01 18:57:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui-qt-graph (Old)
and /work/SRC/openSUSE:Factory/.libyui-qt-graph.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui-qt-graph"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui-qt-graph/libyui-qt-graph.changes 2014-03-01 14:38:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libyui-qt-graph.new/libyui-qt-graph.changes 2014-06-01 18:57:17.000000000 +0200
@@ -1,0 +2,7 @@
+Sat May 24 19:10:46 UTC 2014 - bjoern.esser(a)gmail.com
+
+- clarify license by adding license headers from libyui
+- pull in GPLv3-license, since LGPLv3 is additional rules on top
+- 2.44.2
+
+-------------------------------------------------------------------
Old:
----
libyui-qt-graph-2.44.1.tar.bz2
New:
----
libyui-qt-graph-2.44.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libyui-qt-graph-doc.spec ++++++
--- /var/tmp/diff_new_pack.zfYh4q/_old 2014-06-01 18:57:18.000000000 +0200
+++ /var/tmp/diff_new_pack.zfYh4q/_new 2014-06-01 18:57:18.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt-graph-doc
-Version: 2.44.1
+Version: 2.44.2
Release: 0
Source: libyui-qt-graph-%{version}.tar.bz2
++++++ libyui-qt-graph.spec ++++++
--- /var/tmp/diff_new_pack.zfYh4q/_old 2014-06-01 18:57:18.000000000 +0200
+++ /var/tmp/diff_new_pack.zfYh4q/_new 2014-06-01 18:57:18.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt-graph
-Version: 2.44.1
+Version: 2.44.2
Release: 0
Source: libyui-qt-graph-%{version}.tar.bz2
++++++ libyui-qt-graph-2.44.1.tar.bz2 -> libyui-qt-graph-2.44.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/COPYING.gpl-3 new/libyui-qt-graph-2.44.2/COPYING.gpl-3
--- old/libyui-qt-graph-2.44.1/COPYING.gpl-3 1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/COPYING.gpl-3 2014-05-29 13:08:47.000000000 +0200
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/ChangeLog new/libyui-qt-graph-2.44.2/ChangeLog
--- old/libyui-qt-graph-2.44.1/ChangeLog 2014-02-25 16:08:58.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/ChangeLog 2014-05-29 13:08:47.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Sat May 24 19:10:46 UTC 2014 - bjoern.esser(a)gmail.com
+
+- clarify license by adding license headers from libyui
+- pull in GPLv3-license, since LGPLv3 is additional rules on top
+- 2.44.2
+
+-------------------------------------------------------------------
Tue Feb 25 14:46:20 UTC 2014 - mvidner(a)suse.com
- merged git and Factory state: the patch is now upstreamed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/VERSION.cmake new/libyui-qt-graph-2.44.2/VERSION.cmake
--- old/libyui-qt-graph-2.44.1/VERSION.cmake 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/VERSION.cmake 2014-05-29 13:08:47.000000000 +0200
@@ -1,6 +1,6 @@
SET(VERSION_MAJOR "2")
SET(VERSION_MINOR "44")
-SET(VERSION_PATCH "1")
+SET(VERSION_PATCH "2")
SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
##### This is need for the libyui core, ONLY.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/examples/SimpleCreate.cc new/libyui-qt-graph-2.44.2/examples/SimpleCreate.cc
--- old/libyui-qt-graph-2.44.1/examples/SimpleCreate.cc 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/examples/SimpleCreate.cc 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
// g++ SimpleCreate.cc -o SimpleCreate -Wall -O2 -lyui -lgvc -lgraph -lcdt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/examples/SimpleLoad.cc new/libyui-qt-graph-2.44.2/examples/SimpleLoad.cc
--- old/libyui-qt-graph-2.44.1/examples/SimpleLoad.cc 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/examples/SimpleLoad.cc 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
// g++ SimpleLoad.cc -o SimpleLoad -Wall -O2 -lyui
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/QY2Graph.cc new/libyui-qt-graph-2.44.2/src/QY2Graph.cc
--- old/libyui-qt-graph-2.44.1/src/QY2Graph.cc 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/QY2Graph.cc 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/QY2Graph.h new/libyui-qt-graph-2.44.2/src/QY2Graph.h
--- old/libyui-qt-graph-2.44.1/src/QY2Graph.h 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/QY2Graph.h 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/YQGraph.cc new/libyui-qt-graph-2.44.2/src/YQGraph.cc
--- old/libyui-qt-graph-2.44.1/src/YQGraph.cc 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/YQGraph.cc 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/YQGraph.h new/libyui-qt-graph-2.44.2/src/YQGraph.h
--- old/libyui-qt-graph-2.44.1/src/YQGraph.h 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/YQGraph.h 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/YQGraphPlugin.cc new/libyui-qt-graph-2.44.2/src/YQGraphPlugin.cc
--- old/libyui-qt-graph-2.44.1/src/YQGraphPlugin.cc 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/YQGraphPlugin.cc 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/YQGraphPlugin.h new/libyui-qt-graph-2.44.2/src/YQGraphPlugin.h
--- old/libyui-qt-graph-2.44.1/src/YQGraphPlugin.h 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/YQGraphPlugin.h 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/YQGraphPluginImpl.cc new/libyui-qt-graph-2.44.2/src/YQGraphPluginImpl.cc
--- old/libyui-qt-graph-2.44.1/src/YQGraphPluginImpl.cc 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/YQGraphPluginImpl.cc 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-graph-2.44.1/src/YQGraphPluginImpl.h new/libyui-qt-graph-2.44.2/src/YQGraphPluginImpl.h
--- old/libyui-qt-graph-2.44.1/src/YQGraphPluginImpl.h 2014-02-21 15:14:45.000000000 +0100
+++ new/libyui-qt-graph-2.44.2/src/YQGraphPluginImpl.h 2014-05-29 13:08:47.000000000 +0200
@@ -1,22 +1,16 @@
/*
- * Copyright (c) [2009-2012] Novell, Inc.
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact Novell, Inc.
- *
- * To contact Novell about this file by physical or electronic mail, you may
- * find current contact information at www.novell.com.
+ * Copyright (C) 2009-2012 Novell, Inc
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) version 3.0 of the License. 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
*/
/*
--
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 libyui-qt-pkg for openSUSE:Factory checked in at 2014-06-01 18:57:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui-qt-pkg (Old)
and /work/SRC/openSUSE:Factory/.libyui-qt-pkg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui-qt-pkg"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui-qt-pkg/libyui-qt-pkg.changes 2014-03-21 12:13:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libyui-qt-pkg.new/libyui-qt-pkg.changes 2014-06-01 18:57:16.000000000 +0200
@@ -1,0 +2,6 @@
+Tue May 20 14:25:44 UTC 2014 - mvidner(a)suse.com
+
+- Fix showing package changelog, version, filelist (bnc#868101).
+- 2.44.4
+
+-------------------------------------------------------------------
Old:
----
libyui-qt-pkg-2.44.3.tar.bz2
New:
----
libyui-qt-pkg-2.44.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libyui-qt-pkg-doc.spec ++++++
--- /var/tmp/diff_new_pack.tSZq2a/_old 2014-06-01 18:57:17.000000000 +0200
+++ /var/tmp/diff_new_pack.tSZq2a/_new 2014-06-01 18:57:17.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt-pkg-doc
-Version: 2.44.3
+Version: 2.44.4
Release: 0
Source: libyui-qt-pkg-%{version}.tar.bz2
++++++ libyui-qt-pkg.spec ++++++
--- /var/tmp/diff_new_pack.tSZq2a/_old 2014-06-01 18:57:17.000000000 +0200
+++ /var/tmp/diff_new_pack.tSZq2a/_new 2014-06-01 18:57:17.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt-pkg
-Version: 2.44.3
+Version: 2.44.4
Release: 0
Source: libyui-qt-pkg-%{version}.tar.bz2
++++++ libyui-qt-pkg-2.44.3.tar.bz2 -> libyui-qt-pkg-2.44.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/ChangeLog new/libyui-qt-pkg-2.44.4/ChangeLog
--- old/libyui-qt-pkg-2.44.3/ChangeLog 2014-03-12 16:25:47.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/ChangeLog 2014-05-21 13:55:22.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Tue May 20 14:25:44 UTC 2014 - mvidner(a)suse.com
+
+- Fix showing package changelog, version, filelist (bnc#868101).
+- 2.44.4
+
+-------------------------------------------------------------------
Wed Mar 12 15:19:22 UTC 2014 - mvidner(a)suse.com
- Fixed hard-coded colors and improved code to accept stylesheets.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/VERSION.cmake new/libyui-qt-pkg-2.44.4/VERSION.cmake
--- old/libyui-qt-pkg-2.44.3/VERSION.cmake 2014-03-12 16:25:47.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/VERSION.cmake 2014-05-21 13:55:22.000000000 +0200
@@ -1,6 +1,6 @@
SET( VERSION_MAJOR "2" )
SET( VERSION_MINOR "44" )
-SET( VERSION_PATCH "3" )
+SET( VERSION_PATCH "4" )
SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
##### This is need for the libyui core, ONLY.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/src/YQPackageSelector.cc new/libyui-qt-pkg-2.44.4/src/YQPackageSelector.cc
--- old/libyui-qt-pkg-2.44.3/src/YQPackageSelector.cc 2014-03-12 16:25:47.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/src/YQPackageSelector.cc 2014-05-21 13:55:22.000000000 +0200
@@ -407,7 +407,8 @@
// selects repositories
connect(_repoFilterView, SIGNAL(filterStart()), this, SLOT(updateRepositoryUpgradeLabel()));
connect(this, SIGNAL(refresh()), this, SLOT(updateRepositoryUpgradeLabel()));
- connect(_filters, SIGNAL(currentChanged(QWidget *)), this, SLOT(updateRepositoryUpgradeLabel()));
+ connect(_filters, &YQPkgFilterTab::currentChanged,
+ this, &YQPackageSelector::updateRepositoryUpgradeLabel );
//
// Package search view
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/src/YQPkgFilterTab.cc new/libyui-qt-pkg-2.44.4/src/YQPkgFilterTab.cc
--- old/libyui-qt-pkg-2.44.3/src/YQPkgFilterTab.cc 2014-03-12 16:25:47.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/src/YQPkgFilterTab.cc 2014-05-21 13:55:22.000000000 +0200
@@ -132,7 +132,7 @@
// Nasty hack: Disconnect the base class from signals from its tab bar.
// We will handle that signal on our own.
- disconnect( tabBar(), SIGNAL( currentChanged( int ) ), 0, 0 );
+ disconnect( tabBar(), &QTabBar::currentChanged, 0, 0 );
//
@@ -241,8 +241,8 @@
// Set up connections
- connect( tabBar(), SIGNAL( currentChanged( int ) ),
- this, SLOT ( showPage ( int ) ) );
+ connect( tabBar(), &QTabBar::currentChanged,
+ this, static_cast<void (YQPkgFilterTab::*)(int)>(&YQPkgFilterTab::showPage) );
tabBar()->installEventFilter( this ); // for tab context menu
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/src/YQPkgGenericDetailsView.cc new/libyui-qt-pkg-2.44.4/src/YQPkgGenericDetailsView.cc
--- old/libyui-qt-pkg-2.44.3/src/YQPkgGenericDetailsView.cc 2014-03-12 16:25:47.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/src/YQPkgGenericDetailsView.cc 2014-05-21 13:55:22.000000000 +0200
@@ -58,8 +58,8 @@
if ( _parentTab )
{
- connect( parent, SIGNAL( currentChanged(QWidget *) ),
- this, SLOT ( reload (QWidget *) ) );
+ connect( _parentTab, &QTabWidget::currentChanged,
+ this, &YQPkgGenericDetailsView::reloadTab );
}
QString css;
@@ -100,9 +100,9 @@
void
-YQPkgGenericDetailsView::reload( QWidget * newCurrent )
+YQPkgGenericDetailsView::reloadTab( int newCurrent )
{
- if ( newCurrent == this )
+ if ( _parentTab && _parentTab->widget(newCurrent) == this )
{
showDetailsIfVisible( _selectable );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/src/YQPkgGenericDetailsView.h new/libyui-qt-pkg-2.44.4/src/YQPkgGenericDetailsView.h
--- old/libyui-qt-pkg-2.44.3/src/YQPkgGenericDetailsView.h 2014-02-21 15:09:38.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/src/YQPkgGenericDetailsView.h 2014-05-21 13:55:22.000000000 +0200
@@ -152,7 +152,7 @@
/**
* Show data for the last package.
**/
- void reload( QWidget * newCurrent );
+ void reloadTab( int newCurrent );
virtual void reload() { QTextBrowser::reload(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/src/YQPkgRepoFilterView.cc new/libyui-qt-pkg-2.44.4/src/YQPkgRepoFilterView.cc
--- old/libyui-qt-pkg-2.44.3/src/YQPkgRepoFilterView.cc 2014-02-21 15:09:38.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/src/YQPkgRepoFilterView.cc 2014-05-21 13:55:22.000000000 +0200
@@ -182,8 +182,8 @@
connect( _searchFilterView, SIGNAL( filterStart() ),
_repoList, SLOT ( filter() ) );
- connect( _secondaryFilters, SIGNAL( currentChanged( QWidget * ) ),
- this, SLOT ( filter() ) );
+ connect( _secondaryFilters, &QY2ComboTabWidget::currentChanged,
+ this, &YQPkgRepoFilterView::filter );
//
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/src/YQPkgVersionsView.cc new/libyui-qt-pkg-2.44.4/src/YQPkgVersionsView.cc
--- old/libyui-qt-pkg-2.44.3/src/YQPkgVersionsView.cc 2014-03-12 16:25:47.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/src/YQPkgVersionsView.cc 2014-05-21 13:55:22.000000000 +0200
@@ -75,8 +75,8 @@
if ( _parentTab )
{
- connect( parent, SIGNAL( currentChanged(QWidget *) ),
- this, SLOT ( reload (QWidget *) ) );
+ connect( _parentTab, &QTabWidget::currentChanged,
+ this, &YQPkgVersionsView::reload );
}
}
@@ -88,9 +88,9 @@
void
-YQPkgVersionsView::reload( QWidget * newCurrent )
+YQPkgVersionsView::reload( int newCurrent )
{
- if ( newCurrent == this )
+ if ( _parentTab && _parentTab->widget( newCurrent ) == this )
showDetailsIfVisible( _selectable );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.44.3/src/YQPkgVersionsView.h new/libyui-qt-pkg-2.44.4/src/YQPkgVersionsView.h
--- old/libyui-qt-pkg-2.44.3/src/YQPkgVersionsView.h 2014-02-21 15:09:38.000000000 +0100
+++ new/libyui-qt-pkg-2.44.4/src/YQPkgVersionsView.h 2014-05-21 13:55:22.000000000 +0200
@@ -101,7 +101,7 @@
/**
* Show data for the last package.
**/
- void reload( QWidget * newCurrent );
+ void reload( int newCurrent );
void slotRefreshDetails();
--
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 libyui-qt for openSUSE:Factory checked in at 2014-06-01 18:57:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui-qt (Old)
and /work/SRC/openSUSE:Factory/.libyui-qt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui-qt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui-qt/libyui-qt.changes 2014-05-22 06:39:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libyui-qt.new/libyui-qt.changes 2014-06-01 18:57:14.000000000 +0200
@@ -1,0 +2,6 @@
+Thu May 29 09:15:17 UTC 2014 - mvidner(a)suse.com
+
+- Fix recent ugly fonts in cs_CZ, hu_HU (bnc#879991).
+- 2.46.11
+
+-------------------------------------------------------------------
Old:
----
libyui-qt-2.46.10.tar.bz2
New:
----
libyui-qt-2.46.11.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libyui-qt-doc.spec ++++++
--- /var/tmp/diff_new_pack.uW9Zgq/_old 2014-06-01 18:57:15.000000000 +0200
+++ /var/tmp/diff_new_pack.uW9Zgq/_new 2014-06-01 18:57:15.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt-doc
-Version: 2.46.10
+Version: 2.46.11
Release: 0
Source: libyui-qt-%{version}.tar.bz2
++++++ libyui-qt.spec ++++++
--- /var/tmp/diff_new_pack.uW9Zgq/_old 2014-06-01 18:57:15.000000000 +0200
+++ /var/tmp/diff_new_pack.uW9Zgq/_new 2014-06-01 18:57:15.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt
-Version: 2.46.10
+Version: 2.46.11
Release: 0
Source: libyui-qt-%{version}.tar.bz2
++++++ libyui-qt-2.46.10.tar.bz2 -> libyui-qt-2.46.11.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.10/ChangeLog new/libyui-qt-2.46.11/ChangeLog
--- old/libyui-qt-2.46.10/ChangeLog 2014-05-21 10:35:20.000000000 +0200
+++ new/libyui-qt-2.46.11/ChangeLog 2014-05-30 11:35:45.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Thu May 29 09:15:17 UTC 2014 - mvidner(a)suse.com
+
+- Fix recent ugly fonts in cs_CZ, hu_HU (bnc#879991).
+- 2.46.11
+
+-------------------------------------------------------------------
Wed May 21 08:21:09 CEST 2014 - snwint(a)suse.de
- fix last font selection fix (bnc #878859)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.10/VERSION.cmake new/libyui-qt-2.46.11/VERSION.cmake
--- old/libyui-qt-2.46.10/VERSION.cmake 2014-05-21 10:35:20.000000000 +0200
+++ new/libyui-qt-2.46.11/VERSION.cmake 2014-05-30 11:35:45.000000000 +0200
@@ -1,6 +1,6 @@
SET(VERSION_MAJOR "2")
SET(VERSION_MINOR "46")
-SET(VERSION_PATCH "10")
+SET(VERSION_PATCH "11")
SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${GIT_SHA1_VERSION}" )
##### This is need for the libyui core, ONLY.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.10/src/YQApplication.cc new/libyui-qt-2.46.11/src/YQApplication.cc
--- old/libyui-qt-2.46.10/src/YQApplication.cc 2014-05-21 10:35:20.000000000 +0200
+++ new/libyui-qt-2.46.11/src/YQApplication.cc 2014-05-30 11:35:45.000000000 +0200
@@ -52,6 +52,11 @@
#include "YQGraphPluginStub.h"
#include "YQContextMenu.h"
+// Qt5 requires the explicit font initialization; otherwise it picks up
+// any random matching fonts, and tends to choose the worst one
+// (e.g. bitmap fonts) in the end. (bnc#879991)
+// Note that this is also set in LANG_FONTS_FILE
+static const char * default_font_family = "Sans Serif";
YQApplication::YQApplication()
: YApplication()
@@ -74,6 +79,7 @@
// the above works too, but let's try it the icon-loader way - FaTE #306356
iconLoader()->addIconSearchPath( ICONDIR "/icons/" );
loadPredefinedQtTranslations();
+ _fontFamily = default_font_family;
yuiDebug() << "YQApplication constructor end" << std::endl;
}
@@ -207,6 +213,8 @@
{
if ( ! _langFonts )
{
+ // FIXME, LANG_FONTS_FILE is defined in the generic interface,
+ // in yui/Libyui_config.h
_langFonts = new QSettings( LANG_FONTS_FILE, QSettings::IniFormat );
Q_CHECK_PTR( _langFonts );
@@ -248,7 +256,7 @@
}
if ( _fontFamily.isEmpty() ) {
- _fontFamily = "Sans Serif";
+ _fontFamily = default_font_family;
reloadFont = true;
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0