openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2015
- 1 participants
- 1128 discussions
Hello community,
here is the log from the commit of package waf for openSUSE:Factory checked in at 2015-09-30 05:51:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/waf (Old)
and /work/SRC/openSUSE:Factory/.waf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "waf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/waf/waf.changes 2015-07-21 13:29:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.waf.new/waf.changes 2015-09-30 05:51:14.000000000 +0200
@@ -1,0 +2,26 @@
+Wed Sep 23 07:42:31 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 1.8.14
+ * Fixed the Visual Studio detection on Python 3 when
+ --msvc_lazy_autodetect is not provided (regression)
+ * Enable vala processing on a folder basis with the vala_dir
+ parameter - #1601
+ * Enable vala resource processing - #1626
+ * Minor documentation updates - #1605
+- Changes for 1.8.13
+ * Exposed the Popen parameters input/timeout to
+ cmd_and_log/exec_command (timeout is for Python >= 3.3)
+ * Added 'with_sys_path' to Context.load_tool to use/skip
+ sys.path
+ * Changed gccdeps so that it handle '..' within paths
+ * env = conf.env.derive().detach()
+ * Changed Sun compiler's default flags from -Kpic to
+ -xcode=pic32 - #1625
+ * Added bld(rule=, ..., cls_str=, cls_keyword=) for more
+ descriptive outputs - #1598
+ * Added a lazy Visual Studio detection option
+ --msvc_lazy_autodetect - #1614
+ * Changed the definition of function tests to prevent warnings
+ with gcc - #1622
+
+-------------------------------------------------------------------
Old:
----
waf-1.8.12.tar.bz2
waf-1.8.12.tar.bz2.asc
New:
----
waf-1.8.14.tar.bz2
waf-1.8.14.tar.bz2.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ waf.spec ++++++
--- /var/tmp/diff_new_pack.DuKDkH/_old 2015-09-30 05:51:15.000000000 +0200
+++ /var/tmp/diff_new_pack.DuKDkH/_new 2015-09-30 05:51:15.000000000 +0200
@@ -17,7 +17,7 @@
Name: waf
-Version: 1.8.12
+Version: 1.8.14
Release: 0
Summary: A Python-based build system
License: BSD-3-Clause
++++++ waf-1.6.2-libdir.patch ++++++
--- /var/tmp/diff_new_pack.DuKDkH/_old 2015-09-30 05:51:15.000000000 +0200
+++ /var/tmp/diff_new_pack.DuKDkH/_new 2015-09-30 05:51:15.000000000 +0200
@@ -1,6 +1,8 @@
---- waf-light.orig 2010-11-25 11:11:50.000000000 +0100
-+++ waf-light 2011-01-15 15:22:53.485315375 +0100
-@@ -147,6 +147,9 @@
+Index: waf-light
+===================================================================
+--- waf-light.orig
++++ waf-light
+@@ -149,6 +149,9 @@ def find_lib():
w = test(i + '/lib/' + dirname)
if w: return w
++++++ waf-1.8.12.tar.bz2 -> waf-1.8.14.tar.bz2 ++++++
++++ 1906 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ibus-anthy for openSUSE:Factory checked in at 2015-09-30 05:51:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ibus-anthy (Old)
and /work/SRC/openSUSE:Factory/.ibus-anthy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ibus-anthy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ibus-anthy/ibus-anthy.changes 2015-08-12 15:13:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ibus-anthy.new/ibus-anthy.changes 2015-09-30 05:51:11.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Sep 22 09:39:47 UTC 2015 - ftake(a)geeko.jp
+
+- Stop providing locale(ja)
+ * Most of ja locale users do not need this anymore
+- Update the upstream URL
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ibus-anthy.spec ++++++
--- /var/tmp/diff_new_pack.PnXp75/_old 2015-09-30 05:51:11.000000000 +0200
+++ /var/tmp/diff_new_pack.PnXp75/_new 2015-09-30 05:51:11.000000000 +0200
@@ -34,8 +34,7 @@
Summary: The Anthy engine for IBus input platform
License: GPL-2.0+
Group: System/I18n/Japanese
-Provides: locale(ibus:ja)
-Url: http://code.google.com/p/ibus/
+Url: https://github.com/ibus/ibus-anthy
Source: https://github.com/ibus/ibus-anthy/releases/download/%{version}/%{name}-%{v…
BuildRoot: %{_tmppath}/%{name}-%{version}-build
1
0
Hello community,
here is the log from the commit of package anthy for openSUSE:Factory checked in at 2015-09-30 05:51:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/anthy (Old)
and /work/SRC/openSUSE:Factory/.anthy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "anthy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/anthy/anthy.changes 2014-06-01 19:41:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.anthy.new/anthy.changes 2015-09-30 05:51:08.000000000 +0200
@@ -1,0 +2,8 @@
+Tue Sep 22 09:52:59 UTC 2015 - ftake(a)geeko.jp
+
+- Stop providing locale(ja)
+ + Most of ja locale users do not need this anymore
+- Change the upstream URL
+- Clean up the spec file
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ anthy.spec ++++++
--- /var/tmp/diff_new_pack.h2DDuA/_old 2015-09-30 05:51:09.000000000 +0200
+++ /var/tmp/diff_new_pack.h2DDuA/_new 2015-09-30 05:51:09.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package anthy
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,23 +18,13 @@
Name: anthy
BuildRequires: emacs-x11
-%if 0%{?suse_version} >= 1110
BuildRequires: fdupes
-%endif
BuildRequires: libtool
BuildRequires: xemacs
BuildRequires: xorg-x11-devel
-Provides: locale(emacs:ja)
-Provides: locale(m17n-lib:ja)
-Provides: locale(scim-anthy:ja)
-Provides: locale(uim:ja)
-Provides: locale(xemacs:ja)
Version: 9100h
Release: 0
-Url: http://sourceforge.jp/projects/anthy/
-# old URL, still some information only there: http://www.kmc.kyoto-u.ac.jp/proj/heke/
-# cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/anthy login
-# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/anthy co modulename
+Url: https://osdn.jp/projects/anthy/
Source0: anthy-%{version}.tar.bz2
Source1: suse-start-anthy.el
Source2: baselibs.conf
@@ -111,9 +101,7 @@
mkdir -p $RPM_BUILD_ROOT/usr/share/xemacs/site-packages/lisp/anthy
install -m 644 *.el *.elc $RPM_BUILD_ROOT/usr/share/xemacs/site-packages/lisp/anthy
popd
-%if %suse_version > 1110
%fdupes $RPM_BUILD_ROOT/usr/share
-%endif
%{__rm} -f %{buildroot}%{_libdir}/*.la
# remove unneeded Makefiles for documents
rm -f doc/Makefile.*
1
0
Hello community,
here is the log from the commit of package domination for openSUSE:Factory checked in at 2015-09-30 05:51:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/domination (Old)
and /work/SRC/openSUSE:Factory/.domination.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "domination"
Changes:
--------
--- /work/SRC/openSUSE:Factory/domination/domination.changes 2015-04-07 09:29:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.domination.new/domination.changes 2015-09-30 05:51:07.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Sep 22 18:26:20 UTC 2015 - nemysis(a)openSUSE.org
+
+- Update to 1.1.1.6, please look
+
+ /usr/share/domination/ChangeLog.txt
+
+-------------------------------------------------------------------
Old:
----
Domination_1.1.1.5.zip
New:
----
Domination_1.1.1.6.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ domination.spec ++++++
--- /var/tmp/diff_new_pack.SvcXEN/_old 2015-09-30 05:51:08.000000000 +0200
+++ /var/tmp/diff_new_pack.SvcXEN/_new 2015-09-30 05:51:08.000000000 +0200
@@ -17,7 +17,7 @@
Name: domination
-Version: 1.1.1.5
+Version: 1.1.1.6
Release: 0
Summary: Board game that is a bit like the well known game Risk
License: GPL-3.0
@@ -93,7 +93,7 @@
%endif
%files
-%defattr(-,root,root,-)
+%defattr(-,root,root)
%{_bindir}/%{name}-*GUI
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
1
0
Hello community,
here is the log from the commit of package powermanga for openSUSE:Factory checked in at 2015-09-30 05:51:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/powermanga (Old)
and /work/SRC/openSUSE:Factory/.powermanga.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "powermanga"
Changes:
--------
--- /work/SRC/openSUSE:Factory/powermanga/powermanga.changes 2014-11-24 11:08:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.powermanga.new/powermanga.changes 2015-09-30 05:51:05.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Sep 21 21:15:27 UTC 2015 - nemysis(a)openSUSE.org
+
+- Update to 0.93.1, please look
+
+ /usr/share/doc/packages/powermanga/CHANGES
+
+-------------------------------------------------------------------
Old:
----
powermanga-0.93.tgz
New:
----
powermanga-0.93.1.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ powermanga.spec ++++++
--- /var/tmp/diff_new_pack.0lAMms/_old 2015-09-30 05:51:06.000000000 +0200
+++ /var/tmp/diff_new_pack.0lAMms/_new 2015-09-30 05:51:06.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package powermanga
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: powermanga
-Version: 0.93
+Version: 0.93.1
Release: 0
Summary: Arcade 2D shoot-them-up game
License: GPL-3.0+
++++++ powermanga-0.93.tgz -> powermanga-0.93.1.tgz ++++++
/work/SRC/openSUSE:Factory/powermanga/powermanga-0.93.tgz /work/SRC/openSUSE:Factory/.powermanga.new/powermanga-0.93.1.tgz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package scim-bridge for openSUSE:Factory checked in at 2015-09-30 05:51:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/scim-bridge (Old)
and /work/SRC/openSUSE:Factory/.scim-bridge.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "scim-bridge"
Changes:
--------
--- /work/SRC/openSUSE:Factory/scim-bridge/scim-bridge.changes 2014-04-26 10:11:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.scim-bridge.new/scim-bridge.changes 2015-09-30 05:51:03.000000000 +0200
@@ -1,0 +2,19 @@
+Sun Sep 13 06:28:21 UTC 2015 - i(a)marguerite.su
+
+- remove SLE_10 check
+- remove gtk_prefix macro
+- use scim_gtk2_immodule_* macros
+- drop etc-x11-xim.d-scim-bridge-114
+- refactored xim.d-scim-bridge
+ * no more skim, no bother to check WINDOWMANAGER
+- rename subpackages: scim-bridge-gtk2/qt4
+- add provides/obsoletes for the old subpackages
+- baselibs.conf: scim-bridge-qt4 should supplement
+ scim-bridge and libqt4
+- add scim-bridge.1 manpage from debian.
+- use Summary/Description from debian, which properly
+ describle the packages.
+- provide alt names which are the same w/ debian
+- install immodules to the correct places.
+
+-------------------------------------------------------------------
Old:
----
etc-x11-xim.d-scim-bridge
etc-x11-xim.d-scim-bridge-114
New:
----
scim-bridge.1
xim.d-scim-bridge
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ scim-bridge.spec ++++++
--- /var/tmp/diff_new_pack.kifDZU/_old 2015-09-30 05:51:04.000000000 +0200
+++ /var/tmp/diff_new_pack.kifDZU/_new 2015-09-30 05:51:04.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package scim-bridge
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,78 +17,72 @@
Name: scim-bridge
-BuildRequires: docbook-xsl-stylesheets
-BuildRequires: doxygen
-BuildRequires: gtk2-devel
-BuildRequires: libqt4-devel
-BuildRequires: libtool
-BuildRequires: scim-devel
-Summary: Scim Bridge
-License: LGPL-2.1+
-Group: System/I18n/Japanese
Version: 0.4.16
Release: 0
-PreReq: /usr/bin/touch
-# Provides: locale(scim:ja;ko)
-Recommends: scim-bridge-gtk,scim-bridge-qt
-Url: http://www.scim-im.org/
+Summary: Yet another IM client of SCIM
+License: LGPL-2.1+
+Group: System/I18n/Japanese
+Url: https://github.com/scim-im
# CVS repository:
# cvs -d:pserver:anonymous@scim.cvs.sourceforge.net:/cvsroot/scim login
# cvs -z3 -d:pserver:anonymous@scim.cvs.sourceforge.net:/cvsroot/scim co scim-bridge
-Source0: scim-bridge-%{version}.tar.bz2
-Source1: baselibs.conf
-Source10: etc-x11-xim.d-scim-bridge
-Source11: etc-x11-xim.d-scim-bridge-114
+Source: %{name}-%{version}.tar.bz2
+Source1: xim.d-%{name}
+Source2: %{name}.1
+Source99: baselibs.conf
Patch3: bug-351920-should-return-retval.patch
Patch8: scim-bridge-0.4.15-gcc44.patch
Patch9: scim-bridge-fix-vnc-display-check.diff
Patch10: scim-bridge-reregister-type-module-if-reload.patch
Patch11: scim-bridge-gcc47.patch
+BuildRequires: docbook-xsl-stylesheets
+BuildRequires: doxygen
+BuildRequires: gtk2-devel
+BuildRequires: libqt4-devel
+BuildRequires: libtool
+BuildRequires: scim-devel
+Provides: scim-bridge-agent
+Recommends: scim-bridge-gtk2 = %{version}
+Recommends: scim-bridge-qt4 = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%define gtk_prefix %(pkg-config --variable=prefix gtk+-2.0)
%description
-Scim Bridge
+Yet another IM client of SCIM. The immodules of scim-bridge
+communicates with SCIM via socket.
+scim-bridge has two parts: agent and client. scim-bridge (agent)
+stands between SCIM and its clients (immodules), so the clients
+only need to communicate with scim-bridge, because scim-bridge
+was writen in C, it will solve some C++ ABI problems.
-
-Authors:
---------
- Ryo Dairiki <ryo-dairiki(a)users.sourceforge.net>
-
-%package -n scim-bridge-gtk
-Summary: Scim Bridge for gtk2
+%package gtk2
+Summary: Scim-bridge immodule for GTK+ 2.0
Group: System/I18n/Japanese
Requires: %{name} = %{version}
+Provides: scim-bridge-client-gtk
+Provides: scim-bridge-gtk = %{version}
+Obsoletes: scim-bridge-gtk <= %{version}
Supplements: packageand(scim-bridge:gtk2)
-%gtk2_immodule_requires
-
-%description -n scim-bridge-gtk
-Scim Bridge for gtk2
-
+%{scim_gtk2_immodule_requires}
+%description gtk2
+Scim-bridge-gtk2 is the gtk+-2.0 client of scim-bridge, it provides
+another gtk-immodule for SCIM.
-Authors:
---------
- Ryo Dairiki <ryo-dairiki(a)users.sourceforge.net>
-
-%package -n scim-bridge-qt
-Summary: Scim Bridge for Qt
+%package qt4
+Summary: Scim-bridge immodule for Qt4
Group: System/I18n/Japanese
Requires: %{name} = %{version}
+Provides: scim-bridge-client-qt4
+Provides: scim-bridge-qt = %{version}
+Obsoletes: scim-bridge-qt <= %{version}
Supplements: packageand(scim-bridge:libqt4)
-%description -n scim-bridge-qt
-Scim Bridge for Qt
-
-
-
-Authors:
---------
- Ryo Dairiki <ryo-dairiki(a)users.sourceforge.net>
+%description qt4
+Scim-bridge-qt4 is the qt4 client of scim-bridge, it provides
+another qt-immodule for SCIM.
%prep
-%define qt4_plugindir %_libdir/qt4/plugins
%setup -q -n %{name}-%{version}
%patch3 -p1
%patch8
@@ -96,87 +90,82 @@
%patch10 -p1
%patch11 -p1
-find . -type f | xargs chmod u+w
-#find . -name CVS -type d | xargs rm -r
-find . -name .cvsignore -type f | xargs rm -f
-#chmod 644 doc/icon/kasasagi.png
-# hack to build with older distros
-%if %suse_version < 1100
-sed -i -e'/supplements/d' $RPM_SOURCE_DIR/baselibs.conf
-%endif
-
%build
+export CFLAGS="%{optflags}"
+%configure \
+ --disable-static \
+ --with-pic \
+ --enable-agent \
+ --enable-gtk2-immodule \
+ --disable-qt3-immodule \
+ --enable-qt4-immodule \
+ --enable-documents \
+ --enable-debug
-./bootstrap
-
-libtoolize --force -c --automake
-
-export CFLAGS="$RPM_OPT_FLAGS"
-%configure --disable-static --with-pic --enable-gtk2-immodule --disable-qt3-immodule \
- --enable-qt4-immodule --enable-documents
-
-%{__make} %{?jobs:-j%jobs}
+make %{?_smp_mflags}
%install
-make DESTDIR=${RPM_BUILD_ROOT} install
-rm -f $RPM_BUILD_ROOT/%{gtk_prefix}/%{_lib}/gtk-2.0/immodules/im-scim-bridge.*a
-mkdir -p $RPM_BUILD_ROOT/%qt4_plugindir/inputmethods
-mv $RPM_BUILD_ROOT/usr/plugins/inputmethods/im-scim-bridge* $RPM_BUILD_ROOT/%qt4_plugindir/inputmethods
-pushd $RPM_BUILD_ROOT/%qt4_plugindir/inputmethods
- if [ %_lib = lib64 ]; then
- mv im-scim-bridge.so im-scim-bridge.lib64.so
- mv im-scim-bridge.la im-scim-bridge.lib64.la
- else
- :
- fi
-popd
-rm -f $RPM_BUILD_ROOT/%qt4_plugindir/inputmethods/im-scim-bridge.*a
-mkdir -p $RPM_BUILD_ROOT/etc/X11/xim.d/
-%if %suse_version < 1210
-install -m 644 $RPM_SOURCE_DIR/etc-x11-xim.d-scim-bridge-114 \
- $RPM_BUILD_ROOT/etc/X11/xim.d/scim-bridge
-%else
-install -m 644 $RPM_SOURCE_DIR/etc-x11-xim.d-scim-bridge \
- $RPM_BUILD_ROOT/etc/X11/xim.d/scim-bridge
-%endif
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
+find %{buildroot} -name "*.la" -delete -print
+
+mkdir -p %{buildroot}%{_sysconfdir}/X11/xim.d/
+install -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/X11/xim.d/%{name}
# install symlinks in /etc/X11/xim.d/$lang for all languages
# where scim-bridge might be useful:
PRIORITY=49
-pushd $RPM_BUILD_ROOT/etc/X11/xim.d/
+pushd %{buildroot}%{_sysconfdir}/X11/xim.d/
for lang in am ar as bn el fa gu he hi hr ja ka kk kn ko lo ml my \
pa ru sk vi zh_TW zh_CN zh_HK zh_SG \
de fr it es nl cs pl da nn nb fi en sv
do
mkdir $lang
pushd $lang
- ln -s ../scim-bridge $PRIORITY-scim-bridge
+ ln -s ../%{name} $PRIORITY-%{name}
popd
done
popd
-rm doc/Makefile*
+# fix path
+mkdir -p %{buildroot}%{_libdir}/qt4/plugins/inputmethods
+mv %{buildroot}%{_prefix}/plugins/inputmethods/*.so %{buildroot}%{_libdir}/qt4/plugins/inputmethods/
+rm -rf %{buildroot}%{_prefix}/plugins
+mkdir -p %{buildroot}%{_libdir}/gtk-2.0/2.10.0/immodules
+mv %{buildroot}%{_libdir}/gtk-2.0/immodules/*.so %{buildroot}%{_libdir}/gtk-2.0/2.10.0/immodules/
+rm -rf %{buildroot}%{_libdir}/gtk-2.0/immodules
+
+# install manpage
+mkdir -p %{buildroot}%{_mandir}/man1
+install -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man1/
-%post -n scim-bridge-gtk
-%gtk2_immodule_post
+rm doc/Makefile*
-%postun -n scim-bridge-gtk
-%gtk2_immodule_postun
+%post gtk2
+/sbin/ldconfig
+%{scim_gtk2_immodule_post}
+
+%postun gtk2
+/sbin/ldconfig
+%{scim_gtk2_immodule_postun}
+
+%post qt4 -p /sbin/ldconfig
+%postun qt4 -p /sbin/ldconfig
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
%files
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog doc
-%dir /etc/X11/xim.d/
+%dir %{_sysconfdir}/X11/xim.d/
%config %{_sysconfdir}/X11/xim.d/*
-%{_bindir}/scim-bridge
+%{_bindir}/%{name}
+%{_mandir}/man1/%{name}.1%{ext_man}
-%files -n scim-bridge-gtk
+%files gtk2
%defattr(-, root, root)
-%{gtk_prefix}/%{_lib}/gtk-2.0/immodules
+%{_libdir}/gtk-2.0/2.10.0/immodules/im-%{name}.so
-%files -n scim-bridge-qt
+%files qt4
%defattr(-, root, root)
-%dir %qt4_plugindir/
-%dir %qt4_plugindir/inputmethods/
-%qt4_plugindir/inputmethods/im-scim-bridge*.so
+%{_libdir}/qt4/plugins/inputmethods/im-%{name}.so
%changelog
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.kifDZU/_old 2015-09-30 05:51:04.000000000 +0200
+++ /var/tmp/diff_new_pack.kifDZU/_new 2015-09-30 05:51:04.000000000 +0200
@@ -1,4 +1,12 @@
-scim-bridge-qt
- supplements "packageand(scim-bridge-qt:qt3-<targettype>)"
-scim-bridge-gtk
- supplements "packageand(scim-bridge-gtk:gtk2-<targettype>)"
+scim-bridge-qt4
+ supplements "packageand(scim-bridge:libqt4-<targettype>)"
+ requires "scim-bridge-<targettype> = <version>"
+ provides "scim-bridge-gtk-<targettype> = <version>"
+ obsoletes "scim-bridge-gtk-<targettype> <= <version>"
+ provides "scim-bridge-client-qt-<targettype> = <version>"
+scim-bridge-gtk2
+ supplements "packageand(scim-bridge:gtk2-<targettype>)"
+ requires "scim-bridge-<targettype> = <version>"
+ provides "scim-bridge-gtk-<targettype> = <version>"
+ obsoletes "scim-bridge-gtk-<targettype> <= <version>"
+ provides "scim-bridge-client-gtk-<targettype> = <version>"
++++++ scim-bridge.1 ++++++
.\" Copyright 2006 ZhengPeng Hou <zhengpeng.hou(a)gmail.com>,
.\" This man page is distributed under the same license as scim-bridge package.
.\"
.TH "SCIM-BRIDGE" "1"
.SH "NAME"
scim-bridge \(em Yet another IM client of SCIM. The im-module of scim-bridge communicates with scim via socket.
.SH "SYNOPSIS"
.PP
\fBscim-bridge;\fR [\fB-h \fI\-\-help\fR\fP] [\fB-v\fI\-\-verbose\fR\fP] [\fB-q\fI\-\-quiet\fR\fP] [\fB-b\fI\-\-debugflags\fR\fP] [\fB-l\fI\-\-debuglevel\fR\fP] [\fB-standalone\fI\-\-standalone\fR\fP] [\fB-n\fI\-\-noexit\fR\fP]
.SH "DESCRIPTION"
.PP
This manual page documents briefly the
\fBscim-bridge;\fR and \fBbar\fR commands.
.PP
This manual page was written for the \fBDebian\fP distribution
because the original program does not have a manual page.
.SH "OPTIONS"
.PP
These programs follow the usual GNU command line syntax,
with long options starting with two dashes (`\-'). A summary of
options is included below.
.IP "\fB-h\fP \fB\-\-help\fP " 10
Give this help list.
.IP "\fB-v\fP \fB\-\-verbose\fP " 10
Verbosely print out the debug message into standard output.This option equals to '\-\-debuglevel=9 \-\-debugflags=all'.
.IP "\fB-q\fP \fB\-\-quiet\fP " 10
Make it print no debug message at all.This option equals to '\-\-debuglevel=0 \-\-debugflags=none'.
.IP "\fB-b\fP \fB\-\-debugflags\fP " 10
Set which category of debug output do you need.Select one or more from 'all', 'none', 'agent', 'messenger', 'imcontext', and 'scim'.
.IP "\fB-l\fP \fB\-\-debuglevel\fP " 10
Set how verbosely should it print debug output.'\-\-debuglevel=0' equals to '\-\-queit', and '\-\-debuglevel=9' equals to '\-\-verbose'.
.IP "\fB-standalone\fP \fB\-\-standalone\fP " 10
Given this, scim-brige won't daemonize itself.
.IP "\fB-n\fP \fB\-\-noexit\fP " 10
Given this, scim-brige won't exit when there is no client.
.SH "AUTHOR"
scim-bridge is writen by Ryo Dairiki.
.PP
This manual page was written by Zhengpeng Hou zhengpeng-hou(a)ubuntu.com for
the \fBDebian\fP system (but may be used by others). Permission is
granted to copy, distribute and/or modify this document under
the terms of the GNU General Public License, Version 2 any
later version published by the Free Software Foundation.
.\" created by instant / docbook-to-man, Mon 03 Apr 2006, 10:00
++++++ xim.d-scim-bridge ++++++
if ! type -p scim > /dev/null 2>&1 ; then
echo "scim is not available."
return 1
fi
export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE="scim-bridge:scim:xim"
export QT_IM_SWITCHER=imsw-multi
export QT_IM_MODULE=scim-bridge
scim -d
# success:
return 0
1
0
Hello community,
here is the log from the commit of package zeromq for openSUSE:Factory checked in at 2015-09-30 05:51:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zeromq (Old)
and /work/SRC/openSUSE:Factory/.zeromq.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zeromq"
Changes:
--------
--- /work/SRC/openSUSE:Factory/zeromq/zeromq.changes 2015-08-05 06:49:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.zeromq.new/zeromq.changes 2015-09-30 05:51:02.000000000 +0200
@@ -1,0 +2,10 @@
+Tue Sep 22 13:26:21 UTC 2015 - tampakrap(a)opensuse.org
+
+- Fix the conditionals on the previous commit
+
+-------------------------------------------------------------------
+Tue Sep 22 12:48:38 UTC 2015 - tampakrap(a)opensuse.org
+
+- Conditionally use the pkgconfig style, to support SLE11
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zeromq.spec ++++++
--- /var/tmp/diff_new_pack.I7sPvO/_old 2015-09-30 05:51:03.000000000 +0200
+++ /var/tmp/diff_new_pack.I7sPvO/_new 2015-09-30 05:51:03.000000000 +0200
@@ -32,13 +32,22 @@
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: xmlto
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%if 0%{?suse_version} && 0%{?suse_version} <= 1110
+BuildRequires: libsodium-devel
+BuildRequires: libuuid-devel
+%else
BuildRequires: pkgconfig(libsodium)
BuildRequires: pkgconfig(uuid)
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%endif
%if 0%{?with_pgm}
+%if 0%{?suse_version} && 0%{?suse_version} <= 1110
+BuildRequires: glib2-devel >= 2.8
+%else
+BuildRequires: pkgconfig(glib-2.0) >= 2.8
+%endif
BuildRequires: openpgm-devel >= 5.1
BuildRequires: python
-BuildRequires: pkgconfig(glib-2.0) >= 2.8
%endif
%description
1
0
Hello community,
here is the log from the commit of package linphone for openSUSE:Factory checked in at 2015-09-30 05:50:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linphone (Old)
and /work/SRC/openSUSE:Factory/.linphone.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linphone"
Changes:
--------
--- /work/SRC/openSUSE:Factory/linphone/linphone.changes 2015-04-07 09:29:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.linphone.new/linphone.changes 2015-09-30 05:51:01.000000000 +0200
@@ -1,0 +2,33 @@
+Mon Sep 21 09:08:07 UTC 2015 - olaf(a)aepfle.de
+
+- Use pkgconfig for ffmpeg to fix build in PMBS
+
+-------------------------------------------------------------------
+Tue Sep 8 08:35:50 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 3.8.5 (changes since 3.8.0):
+ + Application level improvements:
+ * Auto-answer ability.
+ * Add support of the StatusNotifierItem standard (modern
+ GNU/Linux status icons).
+ * Auto-answering can be set through the preferences panel.
+ * Fix crash at the end of the audio assistant.
+ * Fix crash when configuring a remote provisioning.
+ * Fix regretion in the codec view. Codec which are not usable
+ because bandwitch limits are to low were not grayed anymore.
+ * Bug fixes.
+ * Add translation for 'Arabic' and 'Turkish' items in the
+ language selection list
+ + Liblinphone level improvements:
+ * Fix audio bug with OPUS codec.
+ * Fix ICE corner case not properly handled and resulting bad
+ final ice status.
+ * Update shared library ABI version to 7 (it should had been
+ done in 3.8.0).
+ * Bug fixes.
+ * Add a built-in XMLRPC client. Linphone does not depend on
+ libsoup anymore.
+- Build with video support outside PMBS for openSUSE Leap 42.1
+ and newer (where ffmpeg is available).
+
+-------------------------------------------------------------------
Old:
----
linphone-3.8.0.tar.gz
New:
----
linphone-3.8.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ linphone.spec ++++++
--- /var/tmp/diff_new_pack.f4hMHD/_old 2015-09-30 05:51:02.000000000 +0200
+++ /var/tmp/diff_new_pack.f4hMHD/_new 2015-09-30 05:51:02.000000000 +0200
@@ -17,13 +17,14 @@
%define _version 3.8
+%bcond_with ffmpeg
Name: linphone
-Version: 3.8.0
+Version: 3.8.5
Release: 0
Summary: Web Phone
License: GPL-2.0+
Group: Productivity/Networking/Other
-Url: https://linphone.org
+Url: https://linphone.org/
Source0: http://download.savannah.gnu.org/releases/linphone/%{_version}.x/sources/%{…
Source1: %{name}-manual.tar.bz2
BuildRequires: autoconf
@@ -39,26 +40,28 @@
BuildRequires: sgmltool
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(alsa)
-BuildRequires: pkgconfig(belle-sip) >= 1.3.1
+BuildRequires: pkgconfig(belle-sip) >= 1.4.0
BuildRequires: pkgconfig(gtk+-2.0) >= 2.18.0
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(libosip2)
BuildRequires: pkgconfig(libpulse)
-BuildRequires: pkgconfig(libsasl2)
-BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: pkgconfig(libupnp)
BuildRequires: pkgconfig(libv4l2) >= 0.8.4
-BuildRequires: pkgconfig(mediastreamer) >= 2.10.0
-BuildRequires: pkgconfig(ortp) >= 0.23.0
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(mediastreamer) >= 2.11.0
+BuildRequires: pkgconfig(ortp) >= 0.24.0
BuildRequires: pkgconfig(speex) >= 1.1.6
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(udev)
-Recommends: %{name}-lang = %{version}
-# Video support - disabled by default due to patent issues.
-%if 0%{?packman_bs}
-BuildRequires: libffmpeg-devel
+Recommends: %{name}-lang
+%if 0%{?suse_version} >= 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse})
+BuildRequires: pkgconfig(libsasl2)
+%endif
+%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse}) || %{with ffmpeg}
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
+BuildRequires: pkgconfig(libavcodec) >= 51.0.0
+BuildRequires: pkgconfig(libswscale) >= 0.7.0
BuildRequires: pkgconfig(vpx)
BuildRequires: pkgconfig(xv)
%endif
@@ -81,8 +84,9 @@
Requires: pkgconfig(alsa)
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(speex)
-%if 0%{?packman_bs}
-Requires: libffmpeg-devel
+%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse}) || %{with ffmpeg}
+Requires: pkgconfig(libavcodec) >= 51.0.0
+Requires: pkgconfig(libswscale) >= 0.7.0
Requires: pkgconfig(xv)
%endif
@@ -99,7 +103,7 @@
%prep
%setup -q
%setup -q -D -T -a 1
-# Set tutorial path inside linphone in /usr/share.
+# Set tutorial path inside /usr/share/linphone/.
sed -i "s|\(\$(datadir)/\)\(tutorials\)/%{name}|\1%{name}/\2|" coreapi/help/Makefile.{in,am}
%build
@@ -111,8 +115,10 @@
--enable-external-ortp \
--enable-external-mediastreamer \
--enable-zrtp \
+%if 0%{?suse_version} >= 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse})
--enable-ldap \
-%if !0%{?packman_bs}
+%endif
+%if 0%{?suse_version} <= 1320 && !(0%{?suse_version} == 1315 && 0%{?is_opensuse}) && !%{with ffmpeg}
--disable-video \
%endif
--disable-strict \
@@ -142,13 +148,14 @@
%files
%defattr(-,root,root)
-%doc NEWS AUTHORS COPYING
+%doc AUTHORS COPYING NEWS README
%{_bindir}/*
%{_libdir}/lib%{name}.so.*
%{_datadir}/%{name}/
%exclude %{_datadir}/%{name}/tutorials/
%{_datadir}/sounds/%{name}/
%{_datadir}/applications/*.desktop
+%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/pixmaps/%{name}/
%{_mandir}/man?/*.?%{?ext_man}
%{_mandir}/*/man?/*.?%{?ext_man}
++++++ linphone-3.8.0.tar.gz -> linphone-3.8.5.tar.gz ++++++
/work/SRC/openSUSE:Factory/linphone/linphone-3.8.0.tar.gz /work/SRC/openSUSE:Factory/.linphone.new/linphone-3.8.5.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package perl-Moose for openSUSE:Factory checked in at 2015-09-30 05:50:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Moose (Old)
and /work/SRC/openSUSE:Factory/.perl-Moose.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Moose"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Moose/perl-Moose.changes 2015-05-07 08:28:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Moose.new/perl-Moose.changes 2015-09-30 05:50:58.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Sep 21 05:03:57 UTC 2015 - coolo(a)suse.com
+
+- updated to 2.1603
+ see /usr/share/doc/packages/perl-Moose/Changes
+
+-------------------------------------------------------------------
Old:
----
Moose-2.1403.tar.gz
New:
----
Moose-2.1603.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Moose.spec ++++++
--- /var/tmp/diff_new_pack.e9R85u/_old 2015-09-30 05:50:59.000000000 +0200
+++ /var/tmp/diff_new_pack.e9R85u/_new 2015-09-30 05:50:59.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Moose
-Version: 2.1403
+Version: 2.1603
Release: 0
#Upstream: Artistic-1.0 or GPL-1.0+
%define cpan_name Moose
@@ -37,22 +37,23 @@
BuildRequires: perl(Class::Load::XS) >= 0.01
BuildRequires: perl(Data::OptList) >= 0.107
BuildRequires: perl(Devel::GlobalDestruction)
-BuildRequires: perl(Devel::OverloadInfo) >= 0.002
+BuildRequires: perl(Devel::OverloadInfo) >= 0.004
BuildRequires: perl(Devel::StackTrace) >= 1.33
BuildRequires: perl(Dist::CheckConflicts) >= 0.02
BuildRequires: perl(Eval::Closure) >= 0.04
BuildRequires: perl(ExtUtils::CBuilder) >= 0.27
BuildRequires: perl(List::MoreUtils) >= 0.28
-BuildRequires: perl(List::Util) >= 1.33
+BuildRequires: perl(List::Util) >= 1.35
BuildRequires: perl(MRO::Compat) >= 0.05
BuildRequires: perl(Module::Runtime) >= 0.014
-BuildRequires: perl(Module::Runtime::Conflicts)
+BuildRequires: perl(Module::Runtime::Conflicts) >= 0.002
BuildRequires: perl(Package::DeprecationManager) >= 0.11
BuildRequires: perl(Package::Stash) >= 0.32
BuildRequires: perl(Package::Stash::XS) >= 0.24
BuildRequires: perl(Params::Util) >= 1.00
BuildRequires: perl(Scalar::Util) >= 1.19
BuildRequires: perl(Sub::Exporter) >= 0.980
+BuildRequires: perl(Sub::Identify)
BuildRequires: perl(Sub::Name) >= 0.05
BuildRequires: perl(Task::Weaken)
BuildRequires: perl(Test::CleanNamespaces) >= 0.13
@@ -67,26 +68,26 @@
Requires: perl(Class::Load::XS) >= 0.01
Requires: perl(Data::OptList) >= 0.107
Requires: perl(Devel::GlobalDestruction)
-Requires: perl(Devel::OverloadInfo) >= 0.002
+Requires: perl(Devel::OverloadInfo) >= 0.004
Requires: perl(Devel::StackTrace) >= 1.33
Requires: perl(Dist::CheckConflicts) >= 0.02
Requires: perl(Eval::Closure) >= 0.04
Requires: perl(List::MoreUtils) >= 0.28
-Requires: perl(List::Util) >= 1.33
+Requires: perl(List::Util) >= 1.35
Requires: perl(MRO::Compat) >= 0.05
Requires: perl(Module::Runtime) >= 0.014
-Requires: perl(Module::Runtime::Conflicts)
+Requires: perl(Module::Runtime::Conflicts) >= 0.002
Requires: perl(Package::DeprecationManager) >= 0.11
Requires: perl(Package::Stash) >= 0.32
Requires: perl(Package::Stash::XS) >= 0.24
Requires: perl(Params::Util) >= 1.00
Requires: perl(Scalar::Util) >= 1.19
Requires: perl(Sub::Exporter) >= 0.980
+Requires: perl(Sub::Identify)
Requires: perl(Sub::Name) >= 0.05
Requires: perl(Task::Weaken)
Requires: perl(Try::Tiny) >= 0.17
Requires: perl(parent) >= 0.223
-Recommends: perl(Devel::PartialDump) >= 0.14
%{perl_requires}
# MANUAL BEGIN
Provides: perl-Class-MOP = %{version}
++++++ Moose-2.1403.tar.gz -> Moose-2.1603.tar.gz ++++++
++++ 26889 lines of diff (skipped)
++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.e9R85u/_old 2015-09-30 05:50:59.000000000 +0200
+++ /var/tmp/diff_new_pack.e9R85u/_new 2015-09-30 05:50:59.000000000 +0200
@@ -4,8 +4,8 @@
#sources:
# - source1
# - source2
-patches:
- perl-Moose-apply_role.patch: -1
+#patches:
+# perl-Moose-apply_role.patch: -1
preamble: |-
Provides: perl-Class-MOP = %{version}
Obsoletes: perl-Class-MOP < %{version}
1
0
Hello community,
here is the log from the commit of package perl-Prima for openSUSE:Factory checked in at 2015-09-30 05:50:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Prima (Old)
and /work/SRC/openSUSE:Factory/.perl-Prima.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Prima"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Prima/perl-Prima.changes 2015-04-18 10:39:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Prima.new/perl-Prima.changes 2015-09-30 05:50:57.000000000 +0200
@@ -1,0 +2,11 @@
+Sun Sep 20 16:20:02 UTC 2015 - coolo(a)suse.com
+
+- updated to 1.44
+ see /usr/share/doc/packages/perl-Prima/Changes
+
+ 1.44 2015-08-04
+ - Rewrite rubberband
+ - Work on portable perls
+ - Better support of graphic libs where several versions are available
+
+-------------------------------------------------------------------
Old:
----
Prima-1.43.tar.gz
New:
----
Prima-1.44.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Prima.spec ++++++
--- /var/tmp/diff_new_pack.FqFKla/_old 2015-09-30 05:50:58.000000000 +0200
+++ /var/tmp/diff_new_pack.FqFKla/_new 2015-09-30 05:50:58.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Prima
-Version: 1.43
+Version: 1.44
Release: 0
#Upstream: SUSE-Public-Domain
%define cpan_name Prima
++++++ Prima-1.43.tar.gz -> Prima-1.44.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Changes new/Prima-1.44/Changes
--- old/Prima-1.43/Changes 2015-04-10 21:17:48.000000000 +0200
+++ new/Prima-1.44/Changes 2015-08-05 09:18:10.000000000 +0200
@@ -1,5 +1,10 @@
Revision history for Perl module Prima
+1.44 2015-08-04
+ - Rewrite rubberband
+ - Work on portable perls
+ - Better support of graphic libs where several versions are available
+
1.43 2015-04-10
- Rewrite font test and polish rough ends in xft font handling
- Copy images to clipboard so that GTK recognizes them
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/META.json new/Prima-1.44/META.json
--- old/Prima-1.43/META.json 2015-04-10 21:18:49.000000000 +0200
+++ new/Prima-1.44/META.json 2015-08-05 09:19:21.000000000 +0200
@@ -4,7 +4,7 @@
"Dmitry Karasik <dmitry(a)karasik.eu.org>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.140640",
"license" : [
"freebsd"
],
@@ -50,5 +50,5 @@
"url" : "http://github.com/dk/Prima"
}
},
- "version" : "1.43"
+ "version" : "1.44"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/META.yml new/Prima-1.44/META.yml
--- old/Prima-1.43/META.yml 2015-04-10 21:18:49.000000000 +0200
+++ new/Prima-1.44/META.yml 2015-08-05 09:19:21.000000000 +0200
@@ -3,15 +3,15 @@
author:
- 'Dmitry Karasik <dmitry(a)karasik.eu.org>'
build_requires:
- ExtUtils::MakeMaker: 0
+ ExtUtils::MakeMaker: '0'
configure_requires:
- ExtUtils::MakeMaker: 0
+ ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.140640'
license: open_source
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Prima
no_index:
directory:
@@ -29,4 +29,4 @@
resources:
homepage: http://www.prima.eu.org/
repository: http://github.com/dk/Prima
-version: 1.43
+version: '1.44'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Makefile.PL new/Prima-1.44/Makefile.PL
--- old/Prima-1.43/Makefile.PL 2015-04-10 21:17:48.000000000 +0200
+++ new/Prima-1.44/Makefile.PL 2015-08-05 09:18:10.000000000 +0200
@@ -428,15 +428,16 @@
} elsif ( `perl -V` =~ /activeperl/i) {
$flavor = 'activestate';
}
+ $flavor .= ( $Config{ptrsize} == 8 ) ? '64' : '32';
} elsif ( $cygwin ) {
- $flavor .= ( $Config{ptrsize} == 8 ) ? '64' : '32';
- $flavor .= '.' . ( $cmd_options{CYGWIN_WINAPI} ? 'win32' : 'x11' );
- }
+ $flavor .= ( $Config{ptrsize} == 8 ) ? '64' : '32';
+ $flavor .= '.' . ( $cmd_options{CYGWIN_WINAPI} ? 'win32' : 'x11' );
+ }
$flavor =~ s/\s/_/g;
printlog "$flavor\n";
- $flavor = 'sb32' if $flavor eq 'strawberry';
- $flavor = 'as32' if $flavor eq 'activestate';
+ $flavor =~ s/strawberry/sb/;
+ $flavor =~ s/activestate/as/;
$DISTNAME = "Prima-$ver1.$ver2-$flavor-$REVISION.$PATCHLEVEL.$SUBVERSION";
printlog "Build: $DISTNAME\n";
@@ -1434,7 +1435,7 @@
push @codecs, $_;
}
}
-
+
my @codec_libpath = qd( $Config{installsitearch});
my @warn_codecs;
for my $cx ( @codecs) {
@@ -1448,8 +1449,19 @@
}
close F;
+ # do we have a versioned inc/lib from dependency hell?
+ my $version = '';
+ if (
+ ( $codec ne 'X11' ) &&
+ ( my @versioned = grep { /$codec\d+$/ } @INCPATH )
+ ) {
+ $versioned[0] =~ /$codec(\d+)$/;
+ $version = $1;
+ $lib .= $1;
+ }
+
AGAIN:
- printlog "Checking for $codec library... ";
+ printlog "Checking for $codec$version library... ";
if (
$libs{$lib} ||
defined ( $foundlib = find_lib( $lib, join('', @inc), '', @codec_libpath))
@@ -1466,13 +1478,19 @@
printlog ", in $foundlib" if defined($foundlib) and length($foundlib);
printlog "\n";
} elsif ( $codec eq 'ungif') {
- $lib = $codec = 'gif';
+ $codec = 'gif';
+ $lib = $codec.$version;
printlog "no\n";
goto AGAIN;
} elsif ( $codec eq 'X11') {
$DEFINES{EMULATE_X11_CODEC} = 1;
push( @ACTIVE_CODECS, $codec);
printlog "no, using built-in\n";
+ } elsif ( length $version) {
+ $lib = $codec;
+ $version = '';
+ printlog "no\n";
+ goto AGAIN;
} else {
$PASSIVE_CODECS{$fn} = 1;
push @warn_codecs, $codec;
@@ -1650,8 +1668,8 @@
%Config_inst = (
incpaths => [ $ippi ],
- gencls => '\$(bin)${ifs}gencls$SCRIPT_EXT',
- tmlink => '\$(bin)${ifs}tmlink$SCRIPT_EXT',
+ gencls => 'gencls$SCRIPT_EXT',
+ tmlink => 'tmlink$SCRIPT_EXT',
libname => '\$(lib)${ifs}auto${ifs}Prima${ifs}${LIB_PREFIX}Prima$LIB_EXT',
dlname => '\$(lib)${ifs}auto${ifs}Prima${ifs}Prima.$Config{dlext}',
ldpaths => [$libpathi],
@@ -1721,11 +1739,16 @@
s/\//\\/g for values %vars;
}
- print FF <<HEADER;
+ print FF <<'HEADER';
# This file was automatically generated.
package Prima::Config;
use vars qw(%Config);
+# Determine lib based on the location of this module
+use File::Basename qw(dirname);
+use File::Spec;
+my $lib = File::Spec->catfile(dirname(__FILE__), '..');
+
%Config = (
HEADER
while ( <F>) {
@@ -1738,7 +1761,9 @@
$ci_state = 0;
} elsif ( m/^\s*(\S+)\s*/ ) {
my $k = $1;
- s/\$\((\w+)\)/$vars{$1}/g;
+ s/\$\((\w+)\)/\$$1/g;
+ s/'/"/g;
+ s{\\}{\\\\}g;
$ci{$k} = $_;
}
}
@@ -2062,8 +2087,8 @@
my $t = $self->SUPER::install(@_);
my $n = $t =~ s[
(pure_\w+_install.*?) # 1
- (INST_ARCHLIB\)\s+)\$\(DEST(\w+)\)(.*?) # 2,3,4
- (INST_BIN\)\s+)\$\(DEST(\w+)\)(.*?) # 5,6,7
+ (INST_ARCHLIB\)"?\s+"?)\$\(DEST(\w+)\)(.*?) # 2,3,4
+ (INST_BIN\)"?\s+"?)\$\(DEST(\w+)\)(.*?) # 5,6,7
(.*?) # 8
\n\n
][
@@ -2071,16 +2096,16 @@
"$2\$(DEST$3)$4".
"$5\$(DEST$6)$7$8".
"\n\t\$(NOECHO) \$(ABSPERL) $0 --postinstall ".
- "dest=\$(DEST$3) lib=\$($3) bin=\$($6) ".
- "slib=$cygwin_fake_Slib\n\n"
+ "dest=\$(DEST$3) slib=$cygwin_fake_Slib\n\n"
]xgse;
$END .= <<BAD_MAKEFILE if $n != 3;
** Warning: expected format of Makefile generated by ExtUtils::MakeMaker
-is changed, so post-installation steps may not be performed correcty.
+is changed, so post-installation steps may not be performed correctly.
Prima will run OK, but modules dependent on it may not build.
-Please notify the author.
+Please notify the author by sending a report with Makefile and
+noting that ExtUtils\:\:MakeMaker version $ExtUtils::MakeMaker::VERSION was used.
BAD_MAKEFILE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima/Config.pm new/Prima-1.44/Prima/Config.pm
--- old/Prima-1.43/Prima/Config.pm 2015-04-10 21:17:57.000000000 +0200
+++ new/Prima-1.44/Prima/Config.pm 2015-08-05 09:18:19.000000000 +0200
@@ -5,8 +5,8 @@
%Config_inst = (
incpaths => [ '$(lib)/Prima/CORE','$(lib)/Prima/CORE/generic','/usr/local/include','/usr/local/include/freetype2','/usr/local/include/gtk-2.0','/usr/local/include/atk-1.0','/usr/local/include/cairo','/usr/local/include/pixman-1','/usr/local/include/gdk-pixbuf-2.0','/usr/local/include/libpng16','/usr/local/include/pango-1.0','/usr/local/include/glib-2.0','/usr/local/lib/glib-2.0/include','/usr/local/include/harfbuzz' ],
- gencls => '$(bin)/gencls',
- tmlink => '$(bin)/tmlink',
+ gencls => 'gencls',
+ tmlink => 'tmlink',
libname => '$(lib)/auto/Prima/Prima.a',
dlname => '$(lib)/auto/Prima/Prima.so',
ldpaths => [],
@@ -37,7 +37,7 @@
ldlibflag => '-l',
ldlibpathflag => '-L',
ldpaths => [],
- ldlibs => ['Xpm','gif','tiff','png','jpeg','X11','Xext','freetype','fontconfig','Xrender','Xft','iconv','gtk-x11-2.0','gdk-x11-2.0','pangocairo-1.0','atk-1.0','cairo','gdk_pixbuf-2.0','gio-2.0','pangoft2-1.0','pango-1.0','gobject-2.0','glib-2.0','intl','Xrandr'],
+ ldlibs => ['Xpm','gif','tiff','png16','jpeg','X11','Xext','freetype','fontconfig','Xrender','Xft','iconv','gtk-x11-2.0','gdk-x11-2.0','pangocairo-1.0','atk-1.0','cairo','gdk_pixbuf-2.0','gio-2.0','pangoft2-1.0','pango-1.0','gobject-2.0','glib-2.0','intl','Xrandr'],
ldlibext => '',
inline => 'inline',
dl_load_flags => 1,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima/Docks.pm new/Prima-1.44/Prima/Docks.pm
--- old/Prima-1.43/Prima/Docks.pm 2014-07-15 17:27:36.000000000 +0200
+++ new/Prima-1.44/Prima/Docks.pm 2015-08-05 09:18:10.000000000 +0200
@@ -1215,7 +1215,6 @@
sub xorrect
{
my ( $self, $x1, $y1, $x2, $y2, $width) = @_;
- $::application-> begin_paint;
if ( defined $x1 ) {
$x2--; $y2--;
$::application-> rubberband(
@@ -1225,7 +1224,6 @@
} else {
$::application-> rubberband( destroy => 1 )
}
- $::application-> end_paint;
}
sub on_paint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima/FrameSet.pm new/Prima-1.44/Prima/FrameSet.pm
--- old/Prima-1.43/Prima/FrameSet.pm 2014-07-15 17:27:36.000000000 +0200
+++ new/Prima-1.44/Prima/FrameSet.pm 2015-08-05 09:18:10.000000000 +0200
@@ -296,15 +296,13 @@
sub xorrect
{
my ( $self, @r) = @_;
- my $o = $::application;
my $p = $self->get_parent;
- $o-> begin_paint;
- $o-> clipRect( $p-> client_to_screen( 0,0,$p-> size));
- $o-> rubberband( @r ?
- ( rect => \@r, breadth => $self->{thickness} ) :
- ( destroy => 1 )
+ $::application-> rubberband(
+ clipRect => [ $p->client_to_screen( 0,0,$p-> size) ],
+ @r ?
+ ( rect => \@r, breadth => $self->{thickness} ) :
+ ( destroy => 1 )
);
- $o-> end_paint;
}
sub get_delta
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima/PS/Drawable.pm new/Prima-1.44/Prima/PS/Drawable.pm
--- old/Prima-1.43/Prima/PS/Drawable.pm 2014-07-15 17:27:36.000000000 +0200
+++ new/Prima-1.44/Prima/PS/Drawable.pm 2015-08-05 09:18:10.000000000 +0200
@@ -723,6 +723,10 @@
}
$_[0]-> {useDeviceFonts} = $_[1] unless $_[0]-> get_paint_state;
$_[0]-> {useDeviceFonts} = 1 if $_[0]-> {useDeviceFontsOnly};
+ if ( !$::application && !$_[1] ) {
+ warn "warning: ignored .useDeviceFonts(0) because Prima::Application is not instantiated\n";
+ $_[0]->{useDeviceFonts} = 1;
+ }
}
sub useDeviceFontsOnly
@@ -1017,6 +1021,8 @@
$self-> emit( $pg);
$self-> emit(";");
$advance = $a + $b + $c;
+ } elsif ( defined $a ) {
+ $advance = $a + $b + $c;
} else {
$advance = $$nd[1] + $$nd[2] + $$nd[3];
}
@@ -1511,7 +1517,7 @@
"$scalex $scaley scale $b $bby true [$b 0 0 -$bby 0 $bby] <$cdz> imagemask",
$a, $b, $c;
}
- return '';
+ return '', $a, $b, $c;
}
sub get_rmap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima/RubberBand.pm new/Prima-1.44/Prima/RubberBand.pm
--- old/Prima-1.43/Prima/RubberBand.pm 2012-02-10 18:55:10.000000000 +0100
+++ new/Prima-1.44/Prima/RubberBand.pm 2015-08-05 09:18:10.000000000 +0200
@@ -1,410 +1,480 @@
-package Prima::RubberBand;
-
-use strict;
-use warnings;
-
-sub new
-{
- my ( $class, %profile ) = @_;
- my $ref = {
- mode => 'auto', # auto, full, xor
- canvas => $::application,
- rect => [-1,-1,-1,-1],
- breadth => 1,
- };
- my $self = bless $ref, shift;
- $self-> set(%profile);
- $self-> show;
- return $self;
-}
-
-sub set
-{
- my ( $self, %profile ) = @_;
- my $visible = $self-> {visible};
- $self-> hide if $visible;
- $self-> $_( @{$profile{$_}} ) for grep { exists $profile{$_} } qw(rect);
- $self-> $_( $profile{$_} ) for grep { exists $profile{$_} } qw(mode canvas breadth);
- $self-> show if $visible;
-}
-
-sub DESTROY { shift-> hide }
-
-sub show
-{
- my $self = shift;
- $self-> _visible(1) unless $self-> _visible;
-}
-
-sub hide
-{
- my $self = shift;
- $self-> _visible(0) if $self-> _visible;
-}
-
-sub _gfx_mode
-{
- my $self = shift;
- if ( $self-> {mode} eq 'auto') {
- return (
- $^O =~ /win32/i &&
- $::application-> get_system_value( sv::CompositeDisplay ) &&
- $self-> {canvas} &&
- $self-> {canvas}-> isa('Prima::Widget')
- ) ? 1 : 0;
- } else {
- return ( $self-> {mode} eq 'full' ) ? 1 : 0;
- }
-}
-
-sub canvas
-{
- return $_[0]-> {canvas} unless $#_;
-
- my ( $self, $canvas ) = @_;
- $self-> {canvas} = $canvas // $::application;
-}
-
-sub mode
-{
- return $_[0]-> {mode} unless $#_;
-
- my ( $self, $mode ) = @_;
- Carp::confess "mode(auto,full,xor)" unless $mode =~ /^(auto|full|xor)$/;
- $self-> {mode} = $mode;
-}
-
-# geometry handlers
-
-sub left { $_[0]-> {rect}-> [0] }
-sub bottom { $_[0]-> {rect}-> [1] }
-sub right { $_[0]-> {rect}-> [2] }
-sub top { $_[0]-> {rect}-> [3] }
-sub width { $_[0]-> {rect}-> [2] - $_[0]-> {rect}-> [0] + 1 }
-sub height { $_[0]-> {rect}-> [3] - $_[0]-> {rect}-> [1] + 1 }
-sub origin { $_[0]-> {rect}-> [0], $_[0]-> {rect}-> [1] }
-sub size { $_[0]-> {rect}-> [2] - $_[0]-> {rect}-> [0] + 1 , $_[0]-> {rect}-> [3] - $_[0]-> {rect}-> [1] + 1 }
-
-sub rect
-{
- return @{$_[0]-> {rect}} unless $#_;
-
- my ( $self, @rect ) = @_;
- Carp::confess("@rect") unless 4 == grep { defined } @rect;
-
- ($rect[2],$rect[0]) = ($rect[0],$rect[2]) if $rect[2] < $rect[0];
- ($rect[3],$rect[1]) = ($rect[1],$rect[3]) if $rect[3] < $rect[1];
- @{$self-> {rect}} = @rect;
-}
-
-sub breadth
-{
- return $_[0]-> {breadth} unless $#_;
-
- my ( $self, $breadth ) = @_;
- $breadth = 1 if $breadth < 1;
- $breadth = 64 if $breadth > 64; # well, huh?
- $self-> {breadth} = $breadth;
-}
-
-# drawing handlers
-
-sub _intersect
-{
- my ( $rect, $outer ) = @_;
-
- return if
- $rect-> [0] > $outer-> [2] ||
- $rect-> [1] > $outer-> [3] ||
- $rect-> [2] < $outer-> [0] ||
- $rect-> [3] < $outer-> [1];
-
- my @res = @$rect;
- $res[0] = $outer-> [0] if $res[0] < $outer-> [0];
- $res[1] = $outer-> [1] if $res[1] < $outer-> [1];
- $res[2] = $outer-> [2] if $res[2] > $outer-> [2];
- $res[3] = $outer-> [3] if $res[3] > $outer-> [3];
-
- return \@res;
-}
-
-sub _visible
-{
- return $_[0]-> {visible} unless $#_;
-
- my ( $self, $visible ) = @_;
- $visible = ( $visible ? 1 : 0 );
- my $curr_visible = ( $self-> {visible} ? 1 : 0);
- return if $visible == $curr_visible;
- return unless $self-> {canvas};
-
- $self-> {visible} = $visible;
-
- my $canvas = $self-> {canvas};
-
- # just a regular xor
- unless ( $self-> _gfx_mode ) {
- $canvas-> rect_focus( $self-> rect, $self-> breadth );
- return;
- }
-
- # save all bits under the rect
- if ( $visible ) {
- my @desktop = $::application-> size;
- @desktop = ( 0, 0, $desktop[0] - 1, $desktop[1] - 1);
-
- my @outer = $self-> rect;
- my @delta = $canvas-> client_to_screen(0,0);
- $outer[$_] += $delta[0] for 0,2;
- $outer[$_] += $delta[1] for 1,3;
-
- my @inner = @outer;
- my $breadth = $self-> {breadth};
- $inner[$_] += $breadth - 1 for 0,1;
- $inner[$_] -= $breadth - 1 for 2,3;
-
- # save bits:
- # 11111111
- # 22 33
- # 00000000
-
- my @requests;
- if ( $inner[0] >= $inner[2] || $inner[1] >= $inner[3] ) {
- push @requests, [ @outer ];
- } else {
- push @requests, [ $outer[0], $outer[1], $outer[2], $inner[1] ];
- push @requests, [ $outer[0], $inner[3], $outer[2], $outer[3] ];
- push @requests, [ $outer[0], $inner[1] + 1, $inner[0], $inner[3] - 1 ];
- push @requests, [ $inner[2], $inner[1] + 1, $outer[2], $inner[3] - 1 ];
- }
-
- @requests = grep { _intersect( $_, \@desktop ) } @requests;
- $self-> {_cache} = [];
-
- return unless @requests;
-
- for ( @requests ) {
- my ( $x1, $y1, $x2, $y2) = @$_;
- push @{ $self-> {_cache} }, [
- $x1 - $delta[0],
- $y1 - $delta[1],
- $::application-> get_image( $x1, $y1, $x2 - $x1 + 1, $y2 - $y1 + 1 )
- ];
- }
-
- my ( $cl, $cl2, $rop, $fp) = ( $canvas-> color, $canvas-> backColor, $canvas-> rop, $canvas-> fillPattern);
- $canvas-> set(
- fillPattern => fp::SimpleDots,
- color => cl::Set,
- backColor => cl::Clear,
- rop => rop::XorPut,
- );
-
- for ( @requests ) {
- my ( $x1, $y1, $x2, $y2) = @$_;
- $canvas-> bar(
- $x1 + $delta[0],
- $y1 + $delta[1],
- $x2 + $delta[0],
- $y2 + $delta[1]
- );
- }
-
- $canvas-> set(
- fillPattern => $fp,
- backColor => $cl2,
- color => $cl,
- rop => $rop,
- );
- } else {
- # restore bits
- # $canvas-> rectangle( $_->[0], $_-> [1], $_->[0] - 1 + $_->[2]-> width, $_[1] - 1 + $_-> [2]-> height) for @{ $self-> {_cache} };
- $canvas-> put_image( @$_) for @{ $self-> {_cache} };
- $self-> {_cache} = [];
- }
-}
-
-package Prima::Widget;
-
-sub rubberband
-{
- my ($self, %profile) = @_;
-
- if ($profile{destroy}) {
- $self-> {__rubberband}-> hide if $self-> {__rubberband};
- return delete $self-> {__rubberband}
- }
-
- if ( keys %profile) {
- if ( $self-> {__rubberband}) {
- $self-> {__rubberband}-> set(%profile);
- } else {
- $profile{canvas} //= $self;
- $self-> {__rubberband} = Prima::RubberBand-> new(%profile);
- }
- }
-
- return $self-> {__rubberband};
-}
-
-1;
-
-__DATA__
-
-=pod
-
-=head1 NAME
-
-Prima::RubberBand - draw rubberbands
-
-=head1 DESCRIPTION
-
-The motivation for this module was that I was tired to see corrupted screens on
-Windows 7 when dragging rubberbands in Prima code. Even though MS somewhere
-warned of not doing any specific hacks to circumvent the bug, I decided to give
-it a go anyway.
-
-This module thus is a C<Prima::Widget/rect_focus> with a safeguard. The only
-thing it can do is to draw a static rubberband - but also remember the last
-coordinates drawn, so cleaning comes for free.
-
-The idea is that a rubberband object is meant to be a short-lived one: as soon
-as it get instantiatet it draws itself on the screen. When it is destroyed, the
-rubberband is erased too.
-
-=head1 SYNOPSIS
-
- use strict;
- use Prima qw(Application RubberBand);
-
- sub xordraw
- {
- my ($self, @new_rect) = @_;
- my $o = $::application;
- $o-> begin_paint;
- $o-> rubberband( @new_rect ?
- ( rect => \@new_rect ) :
- ( destroy => 1 )
- );
- $o-> end_paint;
- }
-
- Prima::MainWindow-> create(
- onMouseDown => sub {
- my ( $self, $btn, $mod, $x, $y) = @_;
- $self-> {anchor} = [$self-> client_to_screen( $x, $y)];
- xordraw( $self, @{$self-> {anchor}}, $self-> client_to_screen( $x, $y));
- $self-> capture(1);
- },
- onMouseMove => sub {
- my ( $self, $mod, $x, $y) = @_;
- xordraw( $self, @{$self-> {anchor}}, $self-> client_to_screen( $x, $y)) if $self-> {anchor};
- },
- onMouseUp => sub {
- my ( $self, $btn, $mod, $x, $y) = @_;
- xordraw if delete $self-> {anchor};
- $self-> capture(0);
- },
- );
-
- run Prima;
-
-=head1 API
-
-=head2 Properties
-
-=over
-
-=item breadth INTEGER = 1
-
-Defines rubberband breadth, in pixels.
-
-=item canvas = $::application
-
-Sets the painting surface, and also the widget (it must be a widget) used for drawing.
-
-=item mode STRING = 'auto'
-
-The module implements two techniques, standard classic 'xor' (using .rect_focus method)
-and a conservative method that explicitly saves and restores desktop pixels ('full').
-The 'auto' mode checks the system and selects the appropriate mode.
-
-Allowed modes: auto, xor, full
-
-=item rect X1, Y1, X2, Y2
-
-Defines the band geometry, in inclusive-inclusive coordinates. The band is drawn so that its body
-is always inside these coordinates, no matter what breadth is.
-
-=back
-
-=head2 Methods
-
-=over
-
-=item hide
-
-Hides the band, if drawn
-
-=item set %profile
-
-Applies all properties
-
-=item left, right, top, bottom, width, height, origin, size
-
-Same shortcuts as in C<Prima::Widget>, but read-only.
-
-=back
-
-=head1 Prima::Widget interface
-
-The module adds a single method to C<Prima::Widget> namespace, C<rubberband>
-(see example of use in the synopsis).
-
-=over
-
-=item rubberband(%profile)
-
-Instantiates a C<Prima::RubberBand> with C<%profile>, also sets C<canvas> to C<$self>
-unless C<canvas> is set explicitly.
-
-=item rubberband()
-
-Returns the existing C<Prima::RubberBand> object
-
-=item rubberband(destroy => 1)
-
-Destroys the existing C<Prima::RubberBand> object
-
-=back
-
-=head1 AUTHOR
-
-Dmitry Karasik, E<lt>dmitry(a)karasik.eu.orgE<gt>.
-
-=head1 SEE ALSO
-
-L<Prima::Widget/rect_focus>, L<examples/grip.pl>
-
-=head2 Windows 7 Aero mode
-
-Quote from L<http://blogs.msdn.com/b/greg_schechter/archive/2006/05/02/588934.aspx> :
-
-"One particularly dangerous practice is writing to the screen, either through
-the use of GetDC(NULL) and writing to that, or attempting to do XOR rubber-band
-lines, etc ... Since the UCE doesn't know about it, it may get cleared in the
-next frame refresh, or it may persist for a very long time, depending on what
-else needs to be updated on the screen. (We really don't allow direct writing
-to the primary anyhow, for that very reason... if you try to access the
-DirectDraw primary, for instance, the DWM will turn off until the accessing
-application exits)"
-
-This quote seems to explain the effect why screen sometimes gets badly
-corrupted when using a normal xor rubberband. UCE ( Update Compatibility
-Evaluator ?? ) seems to be hacky enough to recognize some situations, but not
-all. It seems that depending on which widget received mouse button just before
-initialting rubberband drawing matters somehow. Anyway, the module tries to
-see if we're under Windows 7 aero, and if so, turns the 'full' mode on.
-
-=cut
-
+package Prima::RubberBand;
+
+use strict;
+use warnings;
+
+sub new
+{
+ my ( $class, %profile ) = @_;
+ my $ref = {
+ mode => 'auto', # auto, full, xor
+ canvas => $::application,
+ rect => [-1,-1,-1,-1],
+ clipRect => [-1,-1,-1,-1],
+ breadth => 1,
+ };
+ my $self = bless $ref, shift;
+ $self-> set(%profile);
+ $self-> show;
+ return $self;
+}
+
+sub _normalize_rect
+{
+ my $rect = shift;
+ ($$rect[2],$$rect[0]) = ($$rect[0],$$rect[2]) if $$rect[2] < $$rect[0];
+ ($$rect[3],$$rect[1]) = ($$rect[1],$$rect[3]) if $$rect[3] < $$rect[1];
+}
+
+sub _rect_changed
+{
+ my ( $a, $b ) = @_;
+ my @r1 = @$a;
+ my @r2 = @$b;
+ _normalize_rect(\@r1);
+ _normalize_rect(\@r2);
+ return
+ $r2[0] != $r1[0] ||
+ $r2[1] != $r1[1] ||
+ $r2[2] != $r1[2] ||
+ $r2[3] != $r1[3];
+}
+
+sub set
+{
+ my ( $self, %profile ) = @_;
+ my $visible = $self-> {visible};
+
+ my ($rect_changed, $other_changed);
+ if ( exists $profile{rect} ) {
+ $rect_changed = 1 if _rect_changed($profile{rect}, $self->{rect});
+ }
+ if ( exists $profile{clipRect} ) {
+ $other_changed = 1 if _rect_changed($profile{clipRect}, $self->{clipRect});
+ }
+ for my $accessor (grep { exists $profile{$_} } qw(mode canvas breadth)) {
+ my $old = $self->$accessor();
+ next if $old eq $profile{$accessor};
+ $other_changed = 1;
+ last;
+ }
+ $other_changed = 1 if $rect_changed and ( !$visible or !$self->_gfx_mode );
+ $rect_changed = 0 if $other_changed;
+ return unless $rect_changed or $other_changed;
+
+ if ( $other_changed ) {
+ $self-> hide if $visible;
+ $self-> $_( @{$profile{$_}} ) for grep { exists $profile{$_} } qw(rect clipRect);
+ $self-> $_( $profile{$_} ) for grep { exists $profile{$_} } qw(mode canvas breadth);
+ $self-> show if $visible;
+ } elsif ( $rect_changed ) {
+ $self->{visible} = 0;
+ $self->rect( @{ $profile{rect} });
+ $self->_visible(1, 1);
+ }
+}
+
+sub DESTROY { shift-> hide }
+
+sub show
+{
+ my $self = shift;
+ $self-> _visible(1) unless $self-> _visible;
+}
+
+sub hide
+{
+ my $self = shift;
+ $self-> _visible(0) if $self-> _visible;
+}
+
+sub _gfx_mode
+{
+ my $self = shift;
+ if ( $self-> {mode} eq 'auto') {
+ return (
+ $^O =~ /win32/i &&
+ $::application-> get_system_value( sv::CompositeDisplay ) &&
+ $self-> {canvas} &&
+ $self-> {canvas}-> isa('Prima::Widget')
+ ) ? 1 : 0;
+ } else {
+ return ( $self-> {mode} eq 'full' ) ? 1 : 0;
+ }
+}
+
+sub canvas
+{
+ return $_[0]-> {canvas} unless $#_;
+
+ my ( $self, $canvas ) = @_;
+ $self-> {canvas} = $canvas // $::application;
+}
+
+sub mode
+{
+ return $_[0]-> {mode} unless $#_;
+
+ my ( $self, $mode ) = @_;
+ Carp::confess "mode(auto,full,xor)" unless $mode =~ /^(auto|full|xor)$/;
+ $self-> {mode} = $mode;
+}
+
+# geometry handlers
+
+sub left { $_[0]-> {rect}-> [0] }
+sub bottom { $_[0]-> {rect}-> [1] }
+sub right { $_[0]-> {rect}-> [2] }
+sub top { $_[0]-> {rect}-> [3] }
+sub width { $_[0]-> {rect}-> [2] - $_[0]-> {rect}-> [0] + 1 }
+sub height { $_[0]-> {rect}-> [3] - $_[0]-> {rect}-> [1] + 1 }
+sub origin { $_[0]-> {rect}-> [0], $_[0]-> {rect}-> [1] }
+sub size { $_[0]-> {rect}-> [2] - $_[0]-> {rect}-> [0] + 1 , $_[0]-> {rect}-> [3] - $_[0]-> {rect}-> [1] + 1 }
+
+sub rect
+{
+ return @{$_[0]-> {rect}} unless $#_;
+
+ my ( $self, @rect ) = @_;
+ Carp::confess("@rect") unless 4 == grep { defined } @rect;
+
+ _normalize_rect(\@rect);
+ @{$self-> {rect}} = @rect;
+}
+
+sub clipRect
+{
+ return @{$_[0]-> {clipRect}} unless $#_;
+
+ my ( $self, @rect ) = @_;
+ Carp::confess("@rect") unless 4 == grep { defined } @rect;
+
+ _normalize_rect(\@rect);
+ @{$self-> {clipRect}} = @rect;
+}
+
+sub has_clip_rect
+{
+ my $self = shift;
+ return 4 != grep { $_ == -1 } @{ $self->{clipRect} };
+}
+
+sub breadth
+{
+ return $_[0]-> {breadth} unless $#_;
+
+ my ( $self, $breadth ) = @_;
+ $breadth = 1 if $breadth < 1;
+ $breadth = 64 if $breadth > 64; # well, huh?
+ $self-> {breadth} = $breadth;
+}
+
+# drawing handlers
+
+sub _intersect
+{
+ my ( $rect, $outer ) = @_;
+
+ return if
+ $rect-> [0] > $outer-> [2] ||
+ $rect-> [1] > $outer-> [3] ||
+ $rect-> [2] < $outer-> [0] ||
+ $rect-> [3] < $outer-> [1];
+
+ my @res = @$rect;
+ $res[0] = $outer-> [0] if $res[0] < $outer-> [0];
+ $res[1] = $outer-> [1] if $res[1] < $outer-> [1];
+ $res[2] = $outer-> [2] if $res[2] > $outer-> [2];
+ $res[3] = $outer-> [3] if $res[3] > $outer-> [3];
+
+ return \@res;
+}
+
+sub _visible
+{
+ return $_[0]-> {visible} unless $#_;
+
+ my ( $self, $visible, $optimized_rect_change ) = @_;
+ $visible = ( $visible ? 1 : 0 );
+ my $curr_visible = ( $self-> {visible} ? 1 : 0);
+ return if $visible == $curr_visible;
+ return unless $self-> {canvas};
+
+ $self-> {visible} = $visible;
+
+ my $canvas = $self-> {canvas};
+
+ # just a regular xor
+ unless ( $self-> _gfx_mode ) {
+ my $ps = $canvas->get_paint_state;
+ $canvas-> begin_paint if $ps == ps::Disabled;
+ $canvas-> clipRect( $self-> clipRect ) if $self-> has_clip_rect;
+ $canvas-> rect_focus( $self-> rect, $self-> breadth );
+ $canvas-> end_paint if $ps == ps::Disabled;
+ return;
+ }
+
+ if ( $visible ) {
+ my @clip = $self-> has_clip_rect ?
+ $canvas-> client_to_screen( $self-> clipRect ) :
+ ( 0, 0, $::application->width - 1, $::application-> height - 1 );
+
+ my @outer = $self-> rect;
+ my @delta = $canvas-> client_to_screen(0,0);
+ $outer[$_] += $delta[0] for 0,2;
+ $outer[$_] += $delta[1] for 1,3;
+
+ my @inner = @outer;
+ my $breadth = $self-> {breadth};
+ $inner[$_] += $breadth - 1 for 0,1;
+ $inner[$_] -= $breadth - 1 for 2,3;
+
+ # save bits:
+ # 11111111
+ # 22 33
+ # 00000000
+
+ my @requests;
+ if ( $inner[0] >= $inner[2] || $inner[1] >= $inner[3] ) {
+ push @requests, [ @outer ];
+ } else {
+ push @requests, [ $outer[0], $outer[1], $outer[2], $inner[1] ];
+ push @requests, [ $outer[0], $inner[3], $outer[2], $outer[3] ];
+ push @requests, [ $outer[0], $inner[1] + 1, $inner[0], $inner[3] - 1 ];
+ push @requests, [ $inner[2], $inner[1] + 1, $outer[2], $inner[3] - 1 ];
+ }
+ @requests = map { _intersect( $_, \@clip ) } @requests;
+
+ goto LEAVE unless @requests;
+
+ _normalize_rect($_) for @requests;
+
+ unless ( $self->{_widgets} ) {
+ push @{ $self-> {_widgets} }, Prima::Widget->new(
+ origin => [ 0, 0 ],
+ size => [ 1, 1 ],
+ owner => $::application,
+ color => cl::White,
+ backColor => cl::Black,
+ visible => 0,
+ onPaint => sub {
+ my ( $self, $canvas ) = @_;
+ $canvas->fillPattern(
+ ($self->left % 2) ?
+ [ (0xaa, 0x55) x 4 ] :
+ [ (0x55, 0xaa) x 4 ]
+ );
+ $canvas->bar(0,0,$self->size);
+ },
+ ) for 1..4;
+ }
+
+ my $i = 0;
+ for ( @requests ) {
+ my ( $x1, $y1, $x2, $y2) = @$_;
+ my $w = $x2 - $x1 + 1;
+ my $h = $y2 - $y1 + 1;
+ $self->{_widgets}->[$i++]->set(
+ origin => [ $x1, $y1 ],
+ size => [ $w, $h ],
+ visible => 1,
+ );
+ }
+
+ LEAVE:
+ if ( $optimized_rect_change ) {
+ for ( my $i = 0; $i < 4; $i++) {
+ $self->{_widgets}->[$i]->visible( defined $requests[$i] );
+ }
+ }
+ } else {
+ $_->hide for @{$self->{_widgets}};
+ }
+}
+
+package Prima::Widget;
+
+sub rubberband
+{
+ my ($self, %profile) = @_;
+
+ if ($profile{destroy}) {
+ $self-> {__rubberband}-> hide if $self-> {__rubberband};
+ return delete $self-> {__rubberband}
+ }
+
+ if ( keys %profile) {
+ if ( $self-> {__rubberband}) {
+ $self-> {__rubberband}-> set(%profile);
+ } else {
+ $profile{canvas} //= $self;
+ $self-> {__rubberband} = Prima::RubberBand-> new(%profile);
+ }
+ }
+
+ return $self-> {__rubberband};
+}
+
+1;
+
+__DATA__
+
+=pod
+
+=head1 NAME
+
+Prima::RubberBand - draw rubberbands
+
+=head1 DESCRIPTION
+
+The motivation for this module was that I was tired to see corrupted screens on
+Windows 7 when dragging rubberbands in Prima code. Even though MS somewhere
+warned of not doing any specific hacks to circumvent the bug, I decided to give
+it a go anyway.
+
+This module thus is a C<Prima::Widget/rect_focus> with a safeguard. The only
+thing it can do is to draw a static rubberband - but also remember the last
+coordinates drawn, so cleaning comes for free.
+
+The idea is that a rubberband object is meant to be a short-lived one: as soon
+as it get instantiatet it draws itself on the screen. When it is destroyed, the
+rubberband is erased too.
+
+=head1 SYNOPSIS
+
+ use strict;
+ use Prima qw(Application RubberBand);
+
+ sub xordraw
+ {
+ my ($self, @new_rect) = @_;
+ $::application-> rubberband( @new_rect ?
+ ( rect => \@new_rect ) :
+ ( destroy => 1 )
+ );
+ }
+
+ Prima::MainWindow-> create(
+ onMouseDown => sub {
+ my ( $self, $btn, $mod, $x, $y) = @_;
+ $self-> {anchor} = [$self-> client_to_screen( $x, $y)];
+ xordraw( $self, @{$self-> {anchor}}, $self-> client_to_screen( $x, $y));
+ $self-> capture(1);
+ },
+ onMouseMove => sub {
+ my ( $self, $mod, $x, $y) = @_;
+ xordraw( $self, @{$self-> {anchor}}, $self-> client_to_screen( $x, $y)) if $self-> {anchor};
+ },
+ onMouseUp => sub {
+ my ( $self, $btn, $mod, $x, $y) = @_;
+ xordraw if delete $self-> {anchor};
+ $self-> capture(0);
+ },
+ );
+
+ run Prima;
+
+=head1 API
+
+=head2 Properties
+
+=over
+
+=item breadth INTEGER = 1
+
+Defines rubberband breadth, in pixels.
+
+=item canvas = $::application
+
+Sets the painting surface, and also the widget (it must be a widget) used for drawing.
+
+=item clipRect X1, Y1, X2, Y2
+
+Defines the clipping rectangle, in inclusive-inclusive coordinates. If set to [-1,-1,-1,-1],
+means no clipping is done.
+
+=item mode STRING = 'auto'
+
+The module implements two techniques, standard classic 'xor' (using .rect_focus method)
+and a conservative method that uses widgets instead of drawing on a canvas ('full').
+The 'auto' mode checks the system and selects the appropriate mode.
+
+Allowed modes: auto, xor, full
+
+=item rect X1, Y1, X2, Y2
+
+Defines the band geometry, in inclusive-inclusive coordinates. The band is drawn so that its body
+is always inside these coordinates, no matter what breadth is.
+
+=back
+
+=head2 Methods
+
+=over
+
+=item hide
+
+Hides the band, if drawn
+
+=item set %profile
+
+Applies all properties
+
+=item left, right, top, bottom, width, height, origin, size
+
+Same shortcuts as in C<Prima::Widget>, but read-only.
+
+=back
+
+=head1 Prima::Widget interface
+
+The module adds a single method to C<Prima::Widget> namespace, C<rubberband>
+(see example of use in the synopsis).
+
+=over
+
+=item rubberband(%profile)
+
+Instantiates a C<Prima::RubberBand> with C<%profile>, also sets C<canvas> to C<$self>
+unless C<canvas> is set explicitly.
+
+=item rubberband()
+
+Returns the existing C<Prima::RubberBand> object
+
+=item rubberband(destroy => 1)
+
+Destroys the existing C<Prima::RubberBand> object
+
+=back
+
+=head1 AUTHOR
+
+Dmitry Karasik, E<lt>dmitry(a)karasik.eu.orgE<gt>.
+
+=head1 SEE ALSO
+
+L<Prima::Widget/rect_focus>, L<examples/grip.pl>
+
+=head2 Windows 7 Aero mode
+
+Quote from L<http://blogs.msdn.com/b/greg_schechter/archive/2006/05/02/588934.aspx> :
+
+"One particularly dangerous practice is writing to the screen, either through
+the use of GetDC(NULL) and writing to that, or attempting to do XOR rubber-band
+lines, etc ... Since the UCE doesn't know about it, it may get cleared in the
+next frame refresh, or it may persist for a very long time, depending on what
+else needs to be updated on the screen. (We really don't allow direct writing
+to the primary anyhow, for that very reason... if you try to access the
+DirectDraw primary, for instance, the DWM will turn off until the accessing
+application exits)"
+
+This quote seems to explain the effect why screen sometimes gets badly
+corrupted when using a normal xor rubberband. UCE ( Update Compatibility
+Evaluator ?? ) seems to be hacky enough to recognize some situations, but not
+all. It seems that depending on which widget received mouse button just before
+initialting rubberband drawing matters somehow. Anyway, the module tries to
+see if we're under Windows 7 aero, and if so, turns the 'full' mode on.
+
+=cut
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima/VB/Classes.pm new/Prima-1.44/Prima/VB/Classes.pm
--- old/Prima-1.43/Prima/VB/Classes.pm 2014-07-15 17:27:36.000000000 +0200
+++ new/Prima-1.44/Prima/VB/Classes.pm 2015-08-05 09:18:10.000000000 +0200
@@ -2984,8 +2984,10 @@
anchor => 'pack_anchor',
expand => 'bool',
fill => 'pack_fill',
- pad => 'point',
- ipad => 'point',
+ padx => 'iv',
+ pady => 'iv',
+ ipadx => 'iv',
+ ipady => 'iv',
side => 'pack_side',
);
@@ -2995,8 +2997,10 @@
anchor => 'center',
expand => 0,
fill => 'none',
- pad => [0,0],
- ipad => [0,0],
+ padx => 0,
+ pady => 0,
+ ipadx => 0,
+ ipady => 0,
side => 'top',
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima/VB/VB.pl new/Prima-1.44/Prima/VB/VB.pl
--- old/Prima-1.43/Prima/VB/VB.pl 2014-07-15 17:27:36.000000000 +0200
+++ new/Prima-1.44/Prima/VB/VB.pl 2015-08-05 09:18:10.000000000 +0200
@@ -772,17 +772,16 @@
sub veil
{
my ($self, $draw) = @_;
- $::application-> begin_paint;
my @r = ( @{$self-> {anchor}}, @{$self-> {dim}});
( $r[0], $r[2]) = ( $r[2], $r[0]) if $r[2] < $r[0];
( $r[1], $r[3]) = ( $r[3], $r[1]) if $r[3] < $r[1];
@r = $self-> client_to_screen( @r);
- $::application-> clipRect( $self-> client_to_screen( 0,0,$self-> size));
- $::application-> rubberband( $draw ?
- ( rect => \@r ) :
- ( destroy => 1 )
+ $::application-> rubberband(
+ clipRect => [ $self-> client_to_screen( 0,0,$self->size ) ],
+ $draw ?
+ ( rect => \@r ) :
+ ( destroy => 1 )
);
- $::application-> end_paint;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/Prima.pm new/Prima-1.44/Prima.pm
--- old/Prima-1.43/Prima.pm 2015-04-10 21:17:48.000000000 +0200
+++ new/Prima-1.44/Prima.pm 2015-08-05 09:18:10.000000000 +0200
@@ -34,7 +34,7 @@
use vars qw($VERSION @ISA $__import @preload);
@ISA = qw(DynaLoader);
sub dl_load_flags { 0x00 }
-$VERSION = '1.43';
+$VERSION = '1.44';
bootstrap Prima $VERSION;
unless ( UNIVERSAL::can('Prima', 'init')) {
$::application = 0;
@@ -204,11 +204,11 @@
The window is created by invoking
- new Prima::Window();
+ new Prima::MainWindow();
or
- Prima::Window-> create()
+ Prima::MainWindow-> create()
code with the additional parameters. Actually, all Prima objects are created by such a
scheme. The class name is passed as the first parameter, and a custom set
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/examples/grip.pl new/Prima-1.44/examples/grip.pl
--- old/Prima-1.43/examples/grip.pl 2014-07-15 17:27:36.000000000 +0200
+++ new/Prima-1.44/examples/grip.pl 2015-08-05 09:18:10.000000000 +0200
@@ -59,13 +59,10 @@
sub xordraw
{
my ($self, $new_rect) = @_;
- my $o = $::application;
- $o-> begin_paint;
- $o-> rubberband( $new_rect ?
+ $::application-> rubberband( $new_rect ?
( rect => [$self-> {capx},$self-> {capy}, $self-> {dx},$self-> {dy}]) :
( destroy => 1 )
);
- $o-> end_paint;
}
my $w = Prima::MainWindow-> create(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/img/codec_png.c new/Prima-1.44/img/codec_png.c
--- old/Prima-1.43/img/codec_png.c 2014-07-15 17:27:36.000000000 +0200
+++ new/Prima-1.44/img/codec_png.c 2015-05-02 17:27:17.000000000 +0200
@@ -267,7 +267,7 @@
#endif
warning_fn( png_structp png_ptr, png_const_charp msg)
{
- /* warn( msg); */
+ warn( msg);
}
static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/include/apricot.h new/Prima-1.44/include/apricot.h
--- old/Prima-1.43/include/apricot.h 2015-03-31 23:47:44.000000000 +0200
+++ new/Prima-1.44/include/apricot.h 2015-05-02 17:27:17.000000000 +0200
@@ -1349,7 +1349,7 @@
#define pdelete( key) (void) hv_delete( profile, # key, (I32) strlen( #key), G_DISCARD)
#define dPROFILE SV ** temporary_prf_Sv
#define pget_sv( key) ((( temporary_prf_Sv = hv_fetch( profile, # key, (I32) strlen( # key), 0)) == nil) ? croak( "Panic: bad profile key (``%s'') requested in ``%s'', line %d\n", # key, __FILE__, __LINE__ ), &PL_sv_undef : *temporary_prf_Sv)
-#define pget_sv_void( key) ((( temporary_prf_Sv = hv_fetch( profile, # key, (I32) strlen( # key), 0)) == nil) ? croak( "Panic: bad profile key (``%s'') requested in ``%s'', line %d\n", # key, __FILE__, __LINE__ ) : NULL)
+#define pget_sv_void( key) ((( temporary_prf_Sv = hv_fetch( profile, # key, (I32) strlen( # key), 0)) == nil) ? croak( "Panic: bad profile key (``%s'') requested in ``%s'', line %d\n", # key, __FILE__, __LINE__ ) : (void)NULL)
#define pget_i( key) ( pget_sv_void( key), SvIV( *temporary_prf_Sv))
#define pget_f( key) ( pget_sv_void( key), SvNV( *temporary_prf_Sv))
#define pget_c( key) ( pget_sv_void( key), SvPV_nolen( *temporary_prf_Sv))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/include/unix/guts.h new/Prima-1.44/include/unix/guts.h
--- old/Prima-1.43/include/unix/guts.h 2015-03-31 23:47:44.000000000 +0200
+++ new/Prima-1.44/include/unix/guts.h 2015-05-02 17:27:17.000000000 +0200
@@ -1185,6 +1185,8 @@
#endif
+#ifdef USE_XFT
+
extern void
prima_xft_init( void);
@@ -1232,6 +1234,8 @@
extern void
prima_xft_update_region( Handle self);
+#endif
+
#ifdef WITH_GTK2
Bool
prima_gtk_init( void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/t/Object/Application.t new/Prima-1.44/t/Object/Application.t
--- old/Prima-1.43/t/Object/Application.t 2015-04-10 21:17:48.000000000 +0200
+++ new/Prima-1.44/t/Object/Application.t 2015-08-05 09:18:10.000000000 +0200
@@ -15,8 +15,9 @@
ok( $a-> get_paint_state, "get_paint_state");
SKIP: {
- skip "pixel", 1 if $^O eq 'darwin';
+ skip "xquartz doesn't support this", 1 if $^O eq 'darwin';
my $pix = $a-> pixel( 10, 10);
+ skip "rdesktop", 1 if $^O =~ /win32/i && $pix == cl::Invalid;
$a-> pixel( 10, 10, 0);
my $bl = $a-> pixel( 10, 10);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/t/Object/Clipboard.t new/Prima-1.44/t/Object/Clipboard.t
--- old/Prima-1.43/t/Object/Clipboard.t 2015-03-21 23:39:09.000000000 +0100
+++ new/Prima-1.44/t/Object/Clipboard.t 2015-08-05 09:18:10.000000000 +0200
@@ -12,6 +12,14 @@
my %rc = map { $_ => 1 } $c-> get_registered_formats;
ok( exists $rc{'Text'} && exists $rc{'Image'}, "predefined formats" );
+SKIP: {
+$::application->begin_paint;
+skip "rdesktop", 8 if $^O =~ /win32/i && $::application->pixel(0,0) == cl::Invalid;
+$::application->end_paint;
+
+skip "Cannot talk to clipboard", 8 unless $c->open;
+$c->close;
+
$c-> store( "Text", 'jabba dabba du');
my $res = $c-> fetch( 'Text');
my %fm = map { $_ => 1 } $c-> get_formats;
@@ -39,3 +47,4 @@
$c-> clear;
my @f = $c-> get_formats;
is( scalar(@f), 0, "clear");
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/t/Object/Fonts.t new/Prima-1.44/t/Object/Fonts.t
--- old/Prima-1.43/t/Object/Fonts.t 2015-04-10 21:17:48.000000000 +0200
+++ new/Prima-1.44/t/Object/Fonts.t 2015-05-02 17:27:17.000000000 +0200
@@ -78,8 +78,11 @@
return $ok;
}
+my $filter = @ARGV ? qr/$ARGV[0]/ : qr/./;
+
$x = Prima::DeviceBitmap-> create( monochrome => 1, width => 8, height => 8);
for my $f ( @{$::application->fonts} ) {
+ next unless $f->{name} =~ /$filter/;
if (!t($f) && Prima::Application-> get_system_info-> {apc} == apc::Unix) {
Prima::options(debug => 'f');
t($f);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/t/Widget/Mouse.t new/Prima-1.44/t/Widget/Mouse.t
--- old/Prima-1.43/t/Widget/Mouse.t 2015-03-21 23:39:09.000000000 +0100
+++ new/Prima-1.44/t/Widget/Mouse.t 2015-08-05 09:18:10.000000000 +0200
@@ -50,20 +50,25 @@
@keydata = grep { scalar @$_ == 6 && $$_[1] == mb::Left && $$_[2] == 0 && $$_[3] == 1 && $$_[4] == 2 && $$_[5] == 1 } @keydata;
ok( get_flag && scalar @keydata, "doubleclick" );
-
my @ppx = $c-> pointerPos;
$c-> capture(1);
$c-> focus;
ok( $c-> capture, "capture" );
-reset_flag;
-$c-> pointerPos( 10, 10);
-my @pp = $c-> pointerPos;
-is( $pp[0], 10, "positioning" );
-is( $pp[1], 10, "positioning" );
-$c-> pointerPos( 11, 11);
-ok( wait_flag, "simulated movement" );
+SKIP: {
+ $::application->begin_paint;
+ skip "rdesktop", 3 if $^O =~ /win32/i && $::application->pixel(0,0) == cl::Invalid;
+ $::application->end_paint;
-$c-> pointerPos( @ppx);
-$c-> capture(0);
+ reset_flag;
+ $c-> pointerPos( 10, 10);
+ my @pp = $c-> pointerPos;
+ is( $pp[0], 10, "positioning" );
+ is( $pp[1], 10, "positioning" );
+ $c-> pointerPos( 11, 11);
+ ok( wait_flag, "simulated movement" );
+
+ $c-> pointerPos( @ppx);
+ $c-> capture(0);
+}
$c-> destroy;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/t/Widget/Paint.t new/Prima-1.44/t/Widget/Paint.t
--- old/Prima-1.43/t/Widget/Paint.t 2015-03-21 23:39:09.000000000 +0100
+++ new/Prima-1.44/t/Widget/Paint.t 2015-08-05 09:18:10.000000000 +0200
@@ -4,10 +4,15 @@
use Test::More;
use Prima::Test;
-plan tests => 10;
-
reset_flag;
my $window = create_window;
+
+$::application->begin_paint;
+plan skip_all => "rdesktop" if $^O =~ /win32/i && $::application->pixel(0,0) == cl::Invalid;
+$::application->end_paint;
+
+plan tests => 10;
+
$window-> bring_to_front;
my @rcrect;
my $ww = $window-> insert( Widget => origin => [ 0, 0] => size => [ 8, 8],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/t/Widget/Window.t new/Prima-1.44/t/Widget/Window.t
--- old/Prima-1.43/t/Widget/Window.t 2015-03-31 23:47:44.000000000 +0200
+++ new/Prima-1.44/t/Widget/Window.t 2015-08-05 09:18:10.000000000 +0200
@@ -29,7 +29,7 @@
});
$window-> focus;
reset_flag;
-wait_flag;
+wait_flag unless $id{Activate2};
SKIP: {
skip "WM doesn't respect focus requests", 4 if !$id{Activate2} &&
Prima::Application-> get_system_info->{apc} == apc::Unix;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/unix/apc_font.c new/Prima-1.44/unix/apc_font.c
--- old/Prima-1.43/unix/apc_font.c 2015-03-31 23:47:44.000000000 +0200
+++ new/Prima-1.44/unix/apc_font.c 2015-05-02 17:27:17.000000000 +0200
@@ -1291,7 +1291,10 @@
/* detailing width */
if ( f-> font. width == 0 || !f-> flags. width) {
- if ( XGetFontProperty( s, FXA_AVERAGE_WIDTH, &v) && v) {
+ if ( f-> vecname && font-> width > 0) {
+ f-> font. width = font-> width;
+ Fdebug("font: width = copy as is %d\n", f->font.width);
+ } else if ( XGetFontProperty( s, FXA_AVERAGE_WIDTH, &v) && v) {
XCHECKPOINT;
f-> font. width = (v + 5) / 10;
Fdebug("font: width = FXA_AVERAGE_WIDTH %d(%d)\n", f->font.width, v);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Prima-1.43/unix/xft.c new/Prima-1.44/unix/xft.c
--- old/Prima-1.43/unix/xft.c 2015-04-10 21:17:48.000000000 +0200
+++ new/Prima-1.44/unix/xft.c 2015-05-02 17:28:50.000000000 +0200
@@ -229,7 +229,7 @@
ibl = 128;
obl = 128 * sizeof( uint32_t);
while ( 1 ) {
- int ret = iconv( ii, ( const char **) &iptr, &ibl, ( char **) &optr, &obl);
+ int ret = iconv( ii, ( char **) &iptr, &ibl, ( char **) &optr, &obl);
if ( ret < 0 && errno == EILSEQ) {
iptr++;
optr++;
@@ -690,7 +690,7 @@
FcPatternAddDouble( request, FC_SIZE, *size);
XFTdebug("FC_SIZE = %.1f", *size);
} else {
- FcPatternAddInteger( request, FC_SIZE, requested_font. size);
+ FcPatternAddDouble( request, FC_SIZE, requested_font. size);
XFTdebug("FC_SIZE = %d", requested_font. size);
}
} else {
1
0