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
November 2014
- 1 participants
- 1346 discussions
Hello community,
here is the log from the commit of package coccinelle for openSUSE:Factory checked in at 2014-11-28 08:44:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/coccinelle (Old)
and /work/SRC/openSUSE:Factory/.coccinelle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "coccinelle"
Changes:
--------
--- /work/SRC/openSUSE:Factory/coccinelle/coccinelle.changes 2014-10-11 19:27:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.coccinelle.new/coccinelle.changes 2014-11-28 08:44:55.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Nov 27 13:21:13 UTC 2014 - jslaby(a)suse.com
+
+- fix spatch link. The target did not exist.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ coccinelle.spec ++++++
--- /var/tmp/diff_new_pack.AnqogS/_old 2014-11-28 08:44:56.000000000 +0100
+++ /var/tmp/diff_new_pack.AnqogS/_new 2014-11-28 08:44:56.000000000 +0100
@@ -77,7 +77,7 @@
mkdir -p "$b/%_libdir";
mv "$b/%_datadir/%name/dllpycaml_stubs.so" "$b/%_libdir/";
mv "$b/%_datadir/%name/spatch" "$b/%_bindir/spatch.bin"
-ln -s spatch.bin "$b/%_datadir/%name/spatch"
+ln -s %_bindir/spatch.bin "$b/%_datadir/%name/spatch"
%fdupes %buildroot/%_prefix
%files
--
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 icedtea-web for openSUSE:Factory checked in at 2014-11-28 08:44:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icedtea-web (Old)
and /work/SRC/openSUSE:Factory/.icedtea-web.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icedtea-web"
Changes:
--------
--- /work/SRC/openSUSE:Factory/icedtea-web/icedtea-web.changes 2014-10-17 08:51:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.icedtea-web.new/icedtea-web.changes 2014-11-28 08:44:50.000000000 +0100
@@ -1,0 +2,13 @@
+Wed Nov 26 17:40:23 UTC 2014 - fstrba(a)suse.com
+
+- Update to 1.5.2
+ * NetX
+ - RH1095311, PR574 - References class sun.misc.Ref removed in
+ OpenJDK 9 - fixed, and so buildable on JDK9
+ - RH1154177 - decoded file needed from cache
+ - fixed NPE in https dialog
+ - empty codebase behaves as "."
+- Remove patch: icedtea-web-1.5.1-java9.patch
+ * Upstreamed in this version
+
+-------------------------------------------------------------------
java-1_7_0-openjdk-plugin.changes: same change
java-1_8_0-openjdk-plugin.changes: same change
Old:
----
icedtea-web-1.5.1-java9.patch
icedtea-web-1.5.1.tar.gz
New:
----
icedtea-web-1.5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ icedtea-web.spec ++++++
--- /var/tmp/diff_new_pack.k5Xumn/_old 2014-11-28 08:44:50.000000000 +0100
+++ /var/tmp/diff_new_pack.k5Xumn/_new 2014-11-28 08:44:50.000000000 +0100
@@ -19,7 +19,7 @@
%define sdkdir java
%define jredir %{sdkdir}/jre
Name: icedtea-web
-Version: 1.5.1
+Version: 1.5.2
Release: 0
Summary: Java Web Start and plugin implementation
License: GPL-2.0-with-classpath-exception
++++++ java-1_7_0-openjdk-plugin.spec ++++++
--- /var/tmp/diff_new_pack.k5Xumn/_old 2014-11-28 08:44:50.000000000 +0100
+++ /var/tmp/diff_new_pack.k5Xumn/_new 2014-11-28 08:44:50.000000000 +0100
@@ -26,23 +26,19 @@
%define pluginpath %{_libdir}/%{name}/lib
%define pluginname IcedTeaPlugin.so
Name: %{java_name}-plugin
-Version: 1.5.1
+Version: 1.5.2
Release: 0
Summary: Java Web Start and plugin implementation
License: GPL-2.0-with-classpath-exception
Group: Development/Languages/Java
Url: http://icedtea.classpath.org
Source0: http://icedtea.classpath.org/download/source/icedtea-web-%{version}.tar.gz
-Patch1: icedtea-web-1.5.1-java9.patch
Patch1000: icedtea-web-suse-desktop-files.patch
BuildRequires: %{java_name}-devel >= %{javaver}
-BuildRequires: autoconf
-BuildRequires: automake
BuildRequires: fdupes
BuildRequires: gcc-c++
# IcedTeaPlugin build requirements.
BuildRequires: glib2-devel
-BuildRequires: libtool
BuildRequires: npapi-sdk
BuildRequires: pkgconfig >= 0.9.0
BuildRequires: procps
@@ -83,12 +79,9 @@
%prep
%setup -q -n icedtea-web-%{version}
-%patch1 -p1
%patch1000 -p1
%build
-libtoolize --force --copy --install
-autoreconf -fi
%configure \
--with-jdk-home=%{_jvmdir}/%{sdkdir} \
--with-jre-home=%{_jvmdir}/%{sdkdir}/jre \
java-1_8_0-openjdk-plugin.spec: same change
++++++ icedtea-web-1.5.1.tar.gz -> icedtea-web-1.5.2.tar.gz ++++++
++++ 3089 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 mozaddon-adblock_edge for openSUSE:Factory checked in at 2014-11-28 08:44:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mozaddon-adblock_edge (Old)
and /work/SRC/openSUSE:Factory/.mozaddon-adblock_edge.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozaddon-adblock_edge"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mozaddon-adblock_edge/mozaddon-adblock_edge.changes 2014-10-18 09:09:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mozaddon-adblock_edge.new/mozaddon-adblock_edge.changes 2014-11-28 08:44:48.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Nov 19 22:22:23 UTC 2014 - jengelh(a)inai.de
+
+- Update to new upstream release 2.1.6
+* Fixed element hiding exceptions which were broken in FF35
+- Support for Firefox 36
+
+-------------------------------------------------------------------
Old:
----
adblock_edge-2.1.5-tb+fx+an+sm-linux.xpi
New:
----
adblock_edge-2.1.6-tb+fx+an+sm-linux.xpi
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mozaddon-adblock_edge.spec ++++++
--- /var/tmp/diff_new_pack.oThutf/_old 2014-11-28 08:44:49.000000000 +0100
+++ /var/tmp/diff_new_pack.oThutf/_new 2014-11-28 08:44:49.000000000 +0100
@@ -17,14 +17,14 @@
Name: mozaddon-adblock_edge
-Version: 2.1.5
+Version: 2.1.6
Release: 0
Summary: Adblock Edge extension for Mozilla
License: MPL-2.0
Group: Productivity/Networking/Web/Browsers
Url: https://addons.mozilla.org/firefox/addon/adblock-edge/
-Source: https://addons.mozilla.org/firefox/downloads/file/276006/adblock_edge-2.1.5…
+Source: https://addons.mozilla.org/firefox/downloads/file/276006/adblock_edge-%vers…
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: mozaddon-devel
--
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 qupzilla for openSUSE:Factory checked in at 2014-11-28 08:44:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qupzilla (Old)
and /work/SRC/openSUSE:Factory/.qupzilla.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qupzilla"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qupzilla/qupzilla-qt5.changes 2014-10-22 16:23:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qupzilla.new/qupzilla-qt5.changes 2014-11-28 08:44:45.000000000 +0100
@@ -1,0 +2,19 @@
+Thu Nov 13 23:26:33 UTC 2014 - hrvoje.senjan(a)gmail.com
+
+- Activate KWallet support for Qt5 builds on openSUSE 13.2 and newer
+- Added kwallet-devel BuildRequires for the above case
+- Make KWallet plugin supplement qupzilla(-qt5) based on whether
+ user has kdebase4-workspace or plasma5-workspace installed
+
+-------------------------------------------------------------------
+Sat Nov 8 22:36:09 UTC 2014 - hrvoje.senjan(a)gmail.com
+
+- Update to 1.8.4
+ * added possibility to build against system QtFtp module
+ * CSS exceptions in AdBlock now works for rules from different
+ subscrictions
+ * fixed: correctly saving some settings in preferences
+ * fixed: preference action on Mac
+ * fixed: loading plugins on Windows
+
+-------------------------------------------------------------------
qupzilla.changes: same change
Old:
----
QupZilla-1.8.3.tar.xz
New:
----
QupZilla-1.8.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qupzilla-qt5.spec ++++++
--- /var/tmp/diff_new_pack.ASafbE/_old 2014-11-28 08:44:46.000000000 +0100
+++ /var/tmp/diff_new_pack.ASafbE/_new 2014-11-28 08:44:46.000000000 +0100
@@ -19,7 +19,7 @@
%bcond_without qt5
Name: qupzilla-qt5
-Version: 1.8.3
+Version: 1.8.4
Release: 0
Summary: A very fast open source browser based on WebKit core
License: GPL-3.0+
@@ -29,6 +29,7 @@
BuildRequires: fdupes
%if %{with qt5}
%if 0%{?suse_version} > 1310
+BuildRequires: kwallet-devel
BuildRequires: libQt5Gui-private-headers-devel
%else
BuildRequires: libqt5-qtbase-private-headers-devel
@@ -36,8 +37,8 @@
BuildRequires: libqt5-qttools-devel
%else
BuildRequires: libkde4-devel
-BuildRequires: pkgconfig(gnome-keyring-1)
%endif
+BuildRequires: pkgconfig(gnome-keyring-1)
BuildRequires: pkgconfig(hunspell)
%if %{with qt5}
BuildRequires: pkgconfig(Qt5Concurrent)
@@ -66,11 +67,21 @@
QupZilla is modern web browser based on WebKit core and Qt Framework.
WebKit guarante fast browsing and Qt availability on all major platforms.
-%if !0%{with qt5}
+%if 0%{?suse_version} > 1310 || !0%{with qt5}
%package kwallet
Summary: Kwallet plugin for qupzilla
Group: Productivity/Networking/Web/Browsers
Requires: %{name} = %{version}
+%if %{with qt5}
+Requires: kwalletd5
+Supplements: packageand(%{name};plasma5-workspace)
+%else
+Requires: kdebase4-runtime
+Supplements: packageand(%{name};kdebase4-workspace)
+%endif
+%if %{with qt5}
+Conflicts: qupzilla-kwallet
+%endif
%description kwallet
Kwallet plugin for QupZilla browser which allows to store passwords in kwallet.
@@ -79,6 +90,9 @@
Summary: Gnome keyring plugin for qupzilla
Group: Productivity/Networking/Web/Browsers
Requires: %{name} = %{version}
+%if %{with qt5}
+Conflicts: qupzilla-gnome-keyring
+%endif
%description gnome-keyring
Gnome keyring plugin for QupZilla browser which allows to store passwords in
@@ -94,10 +108,14 @@
sed -i '/Qz::BUILDTIME/d' src/lib/app/commandlineoptions.cpp
sed -i '/Qz::BUILDTIME/d' src/lib/app/qzcommon.cpp
sed -i '/Qz::BUILDTIME/d' src/lib/network/schemehandlers/qupzillaschemehandler.cpp
+%if %{with qt5}
+# Adjust KWallet include for KF5 library
+sed -i 's|<KDE/KWallet/Wallet>|<KWallet>|g' src/plugins/KWalletPasswords/kwalletpasswordbackend.h
+%endif
%build
export USE_WEBGL=true
-%if !0%{with qt5}
+%if 0%{?suse_version} > 1310 || !0%{with qt5}
# Enable better KDE integration, it is also needed for KWallet plugin.
export KDE_INTEGRATION=true
# Enable GNOME Keyring support.
@@ -150,7 +168,7 @@
%{_datadir}/qupzilla/
%{_datadir}/bash-completion/
-%if !0%{with qt5}
+%if 0%{?suse_version} > 1310 || !0%{with qt5}
%files kwallet
%defattr(-,root,root)
%{_libdir}/qupzilla/libKWalletPasswords.so
++++++ qupzilla.spec ++++++
--- /var/tmp/diff_new_pack.ASafbE/_old 2014-11-28 08:44:46.000000000 +0100
+++ /var/tmp/diff_new_pack.ASafbE/_new 2014-11-28 08:44:46.000000000 +0100
@@ -19,7 +19,7 @@
%bcond_with qt5
Name: qupzilla
-Version: 1.8.3
+Version: 1.8.4
Release: 0
Summary: A very fast open source browser based on WebKit core
License: GPL-3.0+
@@ -29,6 +29,7 @@
BuildRequires: fdupes
%if %{with qt5}
%if 0%{?suse_version} > 1310
+BuildRequires: kwallet-devel
BuildRequires: libQt5Gui-private-headers-devel
%else
BuildRequires: libqt5-qtbase-private-headers-devel
@@ -36,8 +37,8 @@
BuildRequires: libqt5-qttools-devel
%else
BuildRequires: libkde4-devel
-BuildRequires: pkgconfig(gnome-keyring-1)
%endif
+BuildRequires: pkgconfig(gnome-keyring-1)
BuildRequires: pkgconfig(hunspell)
%if %{with qt5}
BuildRequires: pkgconfig(Qt5Concurrent)
@@ -66,11 +67,21 @@
QupZilla is modern web browser based on WebKit core and Qt Framework.
WebKit guarante fast browsing and Qt availability on all major platforms.
-%if !0%{with qt5}
+%if 0%{?suse_version} > 1310 || !0%{with qt5}
%package kwallet
Summary: Kwallet plugin for qupzilla
Group: Productivity/Networking/Web/Browsers
Requires: %{name} = %{version}
+%if %{with qt5}
+Requires: kwalletd5
+Supplements: packageand(%{name};plasma5-workspace)
+%else
+Requires: kdebase4-runtime
+Supplements: packageand(%{name};kdebase4-workspace)
+%endif
+%if %{with qt5}
+Conflicts: qupzilla-kwallet
+%endif
%description kwallet
Kwallet plugin for QupZilla browser which allows to store passwords in kwallet.
@@ -79,6 +90,9 @@
Summary: Gnome keyring plugin for qupzilla
Group: Productivity/Networking/Web/Browsers
Requires: %{name} = %{version}
+%if %{with qt5}
+Conflicts: qupzilla-gnome-keyring
+%endif
%description gnome-keyring
Gnome keyring plugin for QupZilla browser which allows to store passwords in
@@ -94,10 +108,14 @@
sed -i '/Qz::BUILDTIME/d' src/lib/app/commandlineoptions.cpp
sed -i '/Qz::BUILDTIME/d' src/lib/app/qzcommon.cpp
sed -i '/Qz::BUILDTIME/d' src/lib/network/schemehandlers/qupzillaschemehandler.cpp
+%if %{with qt5}
+# Adjust KWallet include for KF5 library
+sed -i 's|<KDE/KWallet/Wallet>|<KWallet>|g' src/plugins/KWalletPasswords/kwalletpasswordbackend.h
+%endif
%build
export USE_WEBGL=true
-%if !0%{with qt5}
+%if 0%{?suse_version} > 1310 || !0%{with qt5}
# Enable better KDE integration, it is also needed for KWallet plugin.
export KDE_INTEGRATION=true
# Enable GNOME Keyring support.
@@ -150,7 +168,7 @@
%{_datadir}/qupzilla/
%{_datadir}/bash-completion/
-%if !0%{with qt5}
+%if 0%{?suse_version} > 1310 || !0%{with qt5}
%files kwallet
%defattr(-,root,root)
%{_libdir}/qupzilla/libKWalletPasswords.so
++++++ QupZilla-1.8.3.tar.xz -> QupZilla-1.8.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/CHANGELOG new/QupZilla-1.8.4/CHANGELOG
--- old/QupZilla-1.8.3/CHANGELOG 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/CHANGELOG 2014-11-03 21:21:24.000000000 +0100
@@ -1,3 +1,11 @@
+Version 1.8.4
+ * released 3 November 2014
+ * added possibility to build against system QtFtp module
+ * CSS exceptions in AdBlock now works for rules from different subscrictions
+ * fixed: correctly saving some settings in preferences
+ * fixed: preference action on Mac
+ * fixed: loading plugins on Windows
+
Version 1.8.3
* released 19 October 2014
* fixed: crash when passing messages to running instance
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/README.md new/QupZilla-1.8.4/README.md
--- old/QupZilla-1.8.3/README.md 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/README.md 2014-11-03 21:21:24.000000000 +0100
@@ -74,7 +74,7 @@
Current version
----------------------------------------------------------------------------------------
-The current stable version of QupZilla is 1.8.3. You can download precompiled packages
+The current stable version of QupZilla is 1.8.4. You can download precompiled packages
and the sources from the download section at [homepage](http://www.qupzilla.com/download).
However, if you want the latest revision, just take the latest code snapshot either by
downloading a tarball or running:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/haiku/QupZilla.rdef new/QupZilla-1.8.4/haiku/QupZilla.rdef
--- old/QupZilla-1.8.3/haiku/QupZilla.rdef 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/haiku/QupZilla.rdef 2014-11-03 21:21:24.000000000 +0100
@@ -3,7 +3,7 @@
resource app_version {
major = 1,
middle = 8,
- minor = 3,
+ minor = 4,
/* Application "variety" can be set to one of the following:
* B_APPV_DEVELOPMENT,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/defines.pri new/QupZilla-1.8.4/src/defines.pri
--- old/QupZilla-1.8.3/src/defines.pri 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/defines.pri 2014-11-03 21:21:24.000000000 +0100
@@ -8,7 +8,7 @@
# workaround for #849: see https://bugreports.qt-project.org/browse/QTBUG-23196
mocinclude.CONFIG *= fix_target
-QZ_VERSION = 1.8.3
+QZ_VERSION = 1.8.4
unix: VERSION = $$QZ_VERSION
DEFINES *= QUPZILLA_VERSION=\\\"""$$QZ_VERSION"\\\""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblockblockednetworkreply.cpp new/QupZilla-1.8.4/src/lib/adblock/adblockblockednetworkreply.cpp
--- old/QupZilla-1.8.3/src/lib/adblock/adblockblockednetworkreply.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/adblock/adblockblockednetworkreply.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -50,11 +50,11 @@
#include <QNetworkRequest>
#include <QTimer>
-AdBlockBlockedNetworkReply::AdBlockBlockedNetworkReply(const AdBlockSubscription* subscription, const AdBlockRule* rule, QObject* parent)
+AdBlockBlockedNetworkReply::AdBlockBlockedNetworkReply(const AdBlockRule* rule, QObject* parent)
: QNetworkReply(parent)
{
setOperation(QNetworkAccessManager::GetOperation);
- setError(QNetworkReply::ContentAccessDenied, QString("AdBlock: %1 (%2)").arg(subscription->title(), rule->filter()));
+ setError(QNetworkReply::ContentAccessDenied, QString("AdBlock: %1 (%2)").arg(rule->subscription()->title(), rule->filter()));
open(QIODevice::ReadOnly);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblockblockednetworkreply.h new/QupZilla-1.8.4/src/lib/adblock/adblockblockednetworkreply.h
--- old/QupZilla-1.8.3/src/lib/adblock/adblockblockednetworkreply.h 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/adblock/adblockblockednetworkreply.h 2014-11-03 21:21:24.000000000 +0100
@@ -58,7 +58,7 @@
Q_OBJECT
public:
- AdBlockBlockedNetworkReply(const AdBlockSubscription* subscription, const AdBlockRule* rule, QObject* parent = 0);
+ AdBlockBlockedNetworkReply(const AdBlockRule* rule, QObject* parent = 0);
void abort() {}
void setRequest(const QNetworkRequest &request);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblockmanager.cpp new/QupZilla-1.8.4/src/lib/adblock/adblockmanager.cpp
--- old/QupZilla-1.8.3/src/lib/adblock/adblockmanager.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/adblock/adblockmanager.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -17,6 +17,7 @@
* ============================================================ */
#include "adblockmanager.h"
#include "adblockdialog.h"
+#include "adblockmatcher.h"
#include "adblocksubscription.h"
#include "adblockblockednetworkreply.h"
#include "datapaths.h"
@@ -45,6 +46,7 @@
, m_loaded(false)
, m_enabled(true)
, m_useLimitedEasyList(true)
+ , m_matcher(new AdBlockMatcher(this))
{
load();
}
@@ -92,33 +94,30 @@
const QString urlDomain = request.url().host().toLower();
const QString urlScheme = request.url().scheme().toLower();
- if (!isEnabled() || !canRunOnScheme(urlScheme)) {
+ if (!isEnabled() || !canRunOnScheme(urlScheme))
return 0;
- }
-
- foreach (AdBlockSubscription* subscription, m_subscriptions) {
- const AdBlockRule* blockedRule = subscription->match(request, urlDomain, urlString);
- if (blockedRule) {
- QVariant v = request.attribute((QNetworkRequest::Attribute)(QNetworkRequest::User + 100));
- WebPage* webPage = static_cast<WebPage*>(v.value<void*>());
- if (WebPage::isPointerSafeToUse(webPage)) {
- if (!canBeBlocked(webPage->url())) {
- return 0;
- }
+ const AdBlockRule* blockedRule = m_matcher->match(request, urlDomain, urlString);
- webPage->addAdBlockRule(blockedRule, request.url());
+ if (blockedRule) {
+ QVariant v = request.attribute((QNetworkRequest::Attribute)(QNetworkRequest::User + 100));
+ WebPage* webPage = static_cast<WebPage*>(v.value<void*>());
+ if (WebPage::isPointerSafeToUse(webPage)) {
+ if (!canBeBlocked(webPage->url())) {
+ return 0;
}
- AdBlockBlockedNetworkReply* reply = new AdBlockBlockedNetworkReply(subscription, blockedRule, this);
- reply->setRequest(request);
+ webPage->addAdBlockRule(blockedRule, request.url());
+ }
+
+ AdBlockBlockedNetworkReply* reply = new AdBlockBlockedNetworkReply(blockedRule, this);
+ reply->setRequest(request);
#ifdef ADBLOCK_DEBUG
- qDebug() << "BLOCKED: " << timer.elapsed() << blockedRule->filter() << request.url();
+ qDebug() << "BLOCKED: " << timer.elapsed() << blockedRule->filter() << request.url();
#endif
- return reply;
- }
+ return reply;
}
#ifdef ADBLOCK_DEBUG
@@ -252,7 +251,6 @@
AdBlockSubscription* subscription = new AdBlockSubscription(title, this);
subscription->setUrl(url);
subscription->setFilePath(absolutePath);
- connect(subscription, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet()));
m_subscriptions.append(subscription);
}
@@ -262,7 +260,6 @@
AdBlockSubscription* easyList = new AdBlockSubscription(tr("EasyList"), this);
easyList->setUrl(QUrl(ADBLOCK_EASYLIST_URL));
easyList->setFilePath(DataPaths::currentProfilePath() + QLatin1String("/adblock/easylist.txt"));
- connect(easyList, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet()));
m_subscriptions.prepend(easyList);
}
@@ -270,11 +267,13 @@
// Append CustomList
AdBlockCustomList* customList = new AdBlockCustomList(this);
m_subscriptions.append(customList);
- connect(customList, SIGNAL(subscriptionEdited()), mApp, SLOT(reloadUserStyleSheet()));
// Load all subscriptions
foreach (AdBlockSubscription* subscription, m_subscriptions) {
subscription->loadSubscription(m_disabledRules);
+
+ connect(subscription, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet()));
+ connect(subscription, SIGNAL(subscriptionChanged()), m_matcher, SLOT(update()));
}
if (lastUpdate.addDays(5) < QDateTime::currentDateTime()) {
@@ -285,6 +284,7 @@
qDebug() << "AdBlock loaded in" << timer.elapsed();
#endif
+ m_matcher->update();
m_loaded = true;
}
@@ -348,57 +348,24 @@
bool AdBlockManager::canBeBlocked(const QUrl &url) const
{
- foreach (AdBlockSubscription* subscription, m_subscriptions) {
- if (subscription->adBlockDisabledForUrl(url)) {
- return false;
- }
- }
-
- return true;
+ return !m_matcher->adBlockDisabledForUrl(url);
}
QString AdBlockManager::elementHidingRules() const
{
- if (!m_enabled) {
- return QString();
- }
-
- QString rules;
-
- foreach (AdBlockSubscription* subscription, m_subscriptions) {
- rules.append(subscription->elementHidingRules());
- }
-
- return rules;
+ return m_matcher->elementHidingRules();
}
QString AdBlockManager::elementHidingRulesForDomain(const QUrl &url) const
{
- if (!isEnabled() || !canRunOnScheme(url.scheme()) || !canBeBlocked(url)) {
+ if (!isEnabled() || !canRunOnScheme(url.scheme()) || !canBeBlocked(url))
return QString();
- }
// Acid3 doesn't like the way element hiding rules are embedded into page
- if (url.host() == QLatin1String("acid3.acidtests.org")) {
+ if (url.host() == QLatin1String("acid3.acidtests.org"))
return QString();
- }
-
- QString rules;
-
- foreach (AdBlockSubscription* subscription, m_subscriptions) {
- if (subscription->elemHideDisabledForUrl(url)) {
- return QString();
- }
-
- rules.append(subscription->elementHidingRulesForDomain(url.host()));
- }
-
- // Remove last ","
- if (!rules.isEmpty()) {
- rules = rules.left(rules.size() - 1);
- }
- return rules;
+ return m_matcher->elementHidingRulesForDomain(url.host());
}
AdBlockSubscription* AdBlockManager::subscriptionByName(const QString &name) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblockmanager.h new/QupZilla-1.8.4/src/lib/adblock/adblockmanager.h
--- old/QupZilla-1.8.3/src/lib/adblock/adblockmanager.h 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/adblock/adblockmanager.h 2014-11-03 21:21:24.000000000 +0100
@@ -28,7 +28,9 @@
class QNetworkReply;
class QNetworkRequest;
+class AdBlockRule;
class AdBlockDialog;
+class AdBlockMatcher;
class AdBlockCustomList;
class AdBlockSubscription;
@@ -87,6 +89,7 @@
bool m_useLimitedEasyList;
QList<AdBlockSubscription*> m_subscriptions;
+ AdBlockMatcher* m_matcher;
QStringList m_disabledRules;
QPointer<AdBlockDialog> m_adBlockDialog;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblockmatcher.cpp new/QupZilla-1.8.4/src/lib/adblock/adblockmatcher.cpp
--- old/QupZilla-1.8.3/src/lib/adblock/adblockmatcher.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/QupZilla-1.8.4/src/lib/adblock/adblockmatcher.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -0,0 +1,228 @@
+/* ============================================================
+* QupZilla - WebKit based browser
+* Copyright (C) 2014 David Rosca <nowrep(a)gmail.com>
+*
+* 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/>.
+* ============================================================ */
+#include "adblockmatcher.h"
+#include "adblockmanager.h"
+#include "adblockrule.h"
+#include "adblocksubscription.h"
+
+AdBlockMatcher::AdBlockMatcher(AdBlockManager* manager)
+ : QObject(manager)
+ , m_manager(manager)
+{
+ connect(manager, SIGNAL(enabledChanged(bool)), this, SLOT(enabledChanged(bool)));
+}
+
+AdBlockMatcher::~AdBlockMatcher()
+{
+ clear();
+}
+
+const AdBlockRule* AdBlockMatcher::match(const QNetworkRequest &request, const QString &urlDomain, const QString &urlString) const
+{
+ // Exception rules
+ if (m_networkExceptionTree.find(request, urlDomain, urlString))
+ return 0;
+
+ int count = m_networkExceptionRules.count();
+ for (int i = 0; i < count; ++i) {
+ const AdBlockRule* rule = m_networkExceptionRules.at(i);
+ if (rule->networkMatch(request, urlDomain, urlString))
+ return 0;
+ }
+
+ // Block rules
+ if (const AdBlockRule* rule = m_networkBlockTree.find(request, urlDomain, urlString))
+ return rule;
+
+ count = m_networkBlockRules.count();
+ for (int i = 0; i < count; ++i) {
+ const AdBlockRule* rule = m_networkBlockRules.at(i);
+ if (rule->networkMatch(request, urlDomain, urlString))
+ return rule;
+ }
+
+ return 0;
+}
+
+bool AdBlockMatcher::adBlockDisabledForUrl(const QUrl &url) const
+{
+ int count = m_documentRules.count();
+
+ for (int i = 0; i < count; ++i)
+ if (m_documentRules.at(i)->urlMatch(url))
+ return true;
+
+ return false;
+}
+
+bool AdBlockMatcher::elemHideDisabledForUrl(const QUrl &url) const
+{
+ if (adBlockDisabledForUrl(url))
+ return true;
+
+ int count = m_elemhideRules.count();
+
+ for (int i = 0; i < count; ++i)
+ if (m_elemhideRules.at(i)->urlMatch(url))
+ return true;
+
+ return false;
+}
+
+QString AdBlockMatcher::elementHidingRules() const
+{
+ return m_elementHidingRules;
+}
+
+QString AdBlockMatcher::elementHidingRulesForDomain(const QString &domain) const
+{
+ QString rules;
+ int addedRulesCount = 0;
+ int count = m_domainRestrictedCssRules.count();
+
+ for (int i = 0; i < count; ++i) {
+ const AdBlockRule* rule = m_domainRestrictedCssRules.at(i);
+ if (!rule->matchDomain(domain))
+ continue;
+
+ if (Q_UNLIKELY(addedRulesCount == 1000)) {
+ rules.append(rule->cssSelector());
+ rules.append(QL1S("{display:none !important;}\n"));
+ addedRulesCount = 0;
+ }
+ else {
+ rules.append(rule->cssSelector() + QLatin1Char(','));
+ addedRulesCount++;
+ }
+ }
+
+ if (addedRulesCount != 0) {
+ rules = rules.left(rules.size() - 1);
+ rules.append(QL1S("{display:none !important;}\n"));
+ }
+
+ return rules;
+}
+
+void AdBlockMatcher::update()
+{
+ clear();
+
+ QHash<QString, const AdBlockRule*> cssRulesHash;
+ QVector<const AdBlockRule*> exceptionCssRules;
+
+ foreach (AdBlockSubscription* subscription, m_manager->subscriptions()) {
+ foreach (const AdBlockRule* rule, subscription->allRules()) {
+ // Don't add internally disabled rules to cache
+ if (rule->isInternalDisabled())
+ continue;
+
+ if (rule->isCssRule()) {
+ // We will add only enabled css rules to cache, because there is no enabled/disabled
+ // check on match. They are directly embedded to pages.
+ if (!rule->isEnabled())
+ continue;
+
+ if (rule->isException())
+ exceptionCssRules.append(rule);
+ else
+ cssRulesHash.insert(rule->cssSelector(), rule);
+ }
+ else if (rule->isDocument()) {
+ m_documentRules.append(rule);
+ }
+ else if (rule->isElemhide()) {
+ m_elemhideRules.append(rule);
+ }
+ else if (rule->isException()) {
+ if (!m_networkExceptionTree.add(rule))
+ m_networkExceptionRules.append(rule);
+ }
+ else {
+ if (!m_networkBlockTree.add(rule))
+ m_networkBlockRules.append(rule);
+ }
+ }
+ }
+
+ foreach (const AdBlockRule* rule, exceptionCssRules) {
+ const AdBlockRule* originalRule = cssRulesHash.value(rule->cssSelector());
+
+ // If we don't have this selector, the exception does nothing
+ if (!originalRule)
+ continue;
+
+ AdBlockRule* copiedRule = originalRule->copy();
+ copiedRule->m_options |= AdBlockRule::DomainRestrictedOption;
+ copiedRule->m_blockedDomains.append(rule->m_allowedDomains);
+
+ cssRulesHash[rule->cssSelector()] = copiedRule;
+ m_createdRules.append(copiedRule);
+ }
+
+ // Apparently, excessive amount of selectors for one CSS rule is not what WebKit likes.
+ // (In my testings, 4931 is the number that makes it crash)
+ // So let's split it by 1000 selectors...
+ int hidingRulesCount = 0;
+
+ QHashIterator<QString, const AdBlockRule*> it(cssRulesHash);
+ while (it.hasNext()) {
+ it.next();
+ const AdBlockRule* rule = it.value();
+
+ if (rule->isDomainRestricted()) {
+ m_domainRestrictedCssRules.append(rule);
+ }
+ else if (Q_UNLIKELY(hidingRulesCount == 1000)) {
+ m_elementHidingRules.append(rule->cssSelector());
+ m_elementHidingRules.append(QL1S("{display:none !important;} "));
+ hidingRulesCount = 0;
+ }
+ else {
+ m_elementHidingRules.append(rule->cssSelector() + QLatin1Char(','));
+ hidingRulesCount++;
+ }
+ }
+
+ if (hidingRulesCount != 0) {
+ m_elementHidingRules = m_elementHidingRules.left(m_elementHidingRules.size() - 1);
+ m_elementHidingRules.append(QL1S("{display:none !important;} "));
+ }
+}
+
+void AdBlockMatcher::clear()
+{
+ m_networkExceptionTree.clear();
+ m_networkExceptionRules.clear();
+ m_networkBlockTree.clear();
+ m_networkBlockRules.clear();
+ m_domainRestrictedCssRules.clear();
+ m_elementHidingRules.clear();
+ m_documentRules.clear();
+ m_elemhideRules.clear();
+ qDeleteAll(m_createdRules);
+ m_createdRules.clear();
+}
+
+void AdBlockMatcher::enabledChanged(bool enabled)
+{
+ if (enabled)
+ update();
+ else
+ clear();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblockmatcher.h new/QupZilla-1.8.4/src/lib/adblock/adblockmatcher.h
--- old/QupZilla-1.8.3/src/lib/adblock/adblockmatcher.h 1970-01-01 01:00:00.000000000 +0100
+++ new/QupZilla-1.8.4/src/lib/adblock/adblockmatcher.h 2014-11-03 21:21:24.000000000 +0100
@@ -0,0 +1,67 @@
+/* ============================================================
+* QupZilla - WebKit based browser
+* Copyright (C) 2014 David Rosca <nowrep(a)gmail.com>
+*
+* 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/>.
+* ============================================================ */
+#ifndef ADBLOCKMATCHER_H
+#define ADBLOCKMATCHER_H
+
+#include <QUrl>
+#include <QObject>
+
+#include "qzcommon.h"
+#include "adblocksearchtree.h"
+
+class AdBlockManager;
+
+class QUPZILLA_EXPORT AdBlockMatcher : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit AdBlockMatcher(AdBlockManager* manager);
+ ~AdBlockMatcher();
+
+ const AdBlockRule* match(const QNetworkRequest &request, const QString &urlDomain, const QString &urlString) const;
+
+ bool adBlockDisabledForUrl(const QUrl &url) const;
+ bool elemHideDisabledForUrl(const QUrl &url) const;
+
+ QString elementHidingRules() const;
+ QString elementHidingRulesForDomain(const QString &domain) const;
+
+public slots:
+ void update();
+ void clear();
+
+private slots:
+ void enabledChanged(bool enabled);
+
+private:
+ AdBlockManager* m_manager;
+
+ QVector<AdBlockRule*> m_createdRules;
+ QVector<const AdBlockRule*> m_networkExceptionRules;
+ QVector<const AdBlockRule*> m_networkBlockRules;
+ QVector<const AdBlockRule*> m_domainRestrictedCssRules;
+ QVector<const AdBlockRule*> m_documentRules;
+ QVector<const AdBlockRule*> m_elemhideRules;
+
+ QString m_elementHidingRules;
+ AdBlockSearchTree m_networkBlockTree;
+ AdBlockSearchTree m_networkExceptionTree;
+};
+
+#endif // ADBLOCKMATCHER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblockrule.h new/QupZilla-1.8.4/src/lib/adblock/adblockrule.h
--- old/QupZilla-1.8.3/src/lib/adblock/adblockrule.h 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/adblock/adblockrule.h 2014-11-03 21:21:24.000000000 +0100
@@ -169,6 +169,7 @@
// Use dynamic allocation to save memory
RegExp* m_regExp;
+ friend class AdBlockMatcher;
friend class AdBlockSearchTree;
friend class AdBlockSubscription;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblocksubscription.cpp new/QupZilla-1.8.4/src/lib/adblock/adblocksubscription.cpp
--- old/QupZilla-1.8.3/src/lib/adblock/adblocksubscription.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/adblock/adblocksubscription.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -128,8 +128,6 @@
m_rules.append(rule);
}
- populateCache();
-
// Initial update
if (m_rules.isEmpty() && !m_updated) {
QTimer::singleShot(0, this, SLOT(updateSubscription()));
@@ -176,7 +174,9 @@
}
loadSubscription(AdBlockManager::instance()->disabledRules());
+
emit subscriptionUpdated();
+ emit subscriptionChanged();
}
bool AdBlockSubscription::saveDownloadedData(const QByteArray &data)
@@ -210,103 +210,6 @@
return true;
}
-const AdBlockRule* AdBlockSubscription::match(const QNetworkRequest &request, const QString &urlDomain, const QString &urlString) const
-{
- // Exception rules
- if (m_networkExceptionTree.find(request, urlDomain, urlString)) {
- return 0;
- }
-
- int count = m_networkExceptionRules.count();
- for (int i = 0; i < count; ++i) {
- const AdBlockRule* rule = m_networkExceptionRules.at(i);
- if (rule->networkMatch(request, urlDomain, urlString)) {
- return 0;
- }
- }
-
- // Block rules
- if (const AdBlockRule* rule = m_networkBlockTree.find(request, urlDomain, urlString)) {
- return rule;
- }
-
- count = m_networkBlockRules.count();
- for (int i = 0; i < count; ++i) {
- const AdBlockRule* rule = m_networkBlockRules.at(i);
- if (rule->networkMatch(request, urlDomain, urlString)) {
- return rule;
- }
- }
-
- return 0;
-}
-
-bool AdBlockSubscription::adBlockDisabledForUrl(const QUrl &url) const
-{
- int count = m_documentRules.count();
- for (int i = 0; i < count; ++i) {
- const AdBlockRule* rule = m_documentRules.at(i);
- if (rule->urlMatch(url)) {
- return true;
- }
- }
-
- return false;
-}
-
-bool AdBlockSubscription::elemHideDisabledForUrl(const QUrl &url) const
-{
- if (adBlockDisabledForUrl(url)) {
- return true;
- }
-
- int count = m_elemhideRules.count();
- for (int i = 0; i < count; ++i) {
- const AdBlockRule* rule = m_elemhideRules.at(i);
- if (rule->urlMatch(url)) {
- return true;
- }
- }
-
- return false;
-}
-
-QString AdBlockSubscription::elementHidingRules() const
-{
- return m_elementHidingRules;
-}
-
-QString AdBlockSubscription::elementHidingRulesForDomain(const QString &domain) const
-{
- QString rules;
-
- int addedRulesCount = 0;
- int count = m_domainRestrictedCssRules.count();
- for (int i = 0; i < count; ++i) {
- const AdBlockRule* rule = m_domainRestrictedCssRules.at(i);
- if (!rule->matchDomain(domain)) {
- continue;
- }
-
- if (Q_UNLIKELY(addedRulesCount == 1000)) {
- rules.append(rule->cssSelector());
- rules.append("{display:none !important;}\n");
- addedRulesCount = 0;
- }
- else {
- rules.append(rule->cssSelector() + QLatin1Char(','));
- addedRulesCount++;
- }
- }
-
- if (addedRulesCount != 0) {
- rules = rules.left(rules.size() - 1);
- rules.append("{display:none !important;}\n");
- }
-
- return rules;
-}
-
const AdBlockRule* AdBlockSubscription::rule(int offset) const
{
if (!QzTools::containsIndex(m_rules, offset)) {
@@ -331,10 +234,10 @@
rule->setEnabled(true);
AdBlockManager::instance()->removeDisabledRule(rule->filter());
- if (rule->isCssRule()) {
- populateCache();
+ emit subscriptionChanged();
+
+ if (rule->isCssRule())
mApp->reloadUserStyleSheet();
- }
return rule;
}
@@ -349,10 +252,10 @@
rule->setEnabled(false);
AdBlockManager::instance()->addDisabledRule(rule->filter());
- if (rule->isCssRule()) {
- populateCache();
+ emit subscriptionChanged();
+
+ if (rule->isCssRule())
mApp->reloadUserStyleSheet();
- }
return rule;
}
@@ -386,112 +289,6 @@
return 0;
}
-void AdBlockSubscription::populateCache()
-{
- m_networkExceptionTree.clear();
- m_networkExceptionRules.clear();
- m_networkBlockTree.clear();
- m_networkBlockRules.clear();
- m_domainRestrictedCssRules.clear();
- m_elementHidingRules.clear();
- m_documentRules.clear();
- m_elemhideRules.clear();
-
- qDeleteAll(m_createdRules);
- m_createdRules.clear();
-
- QHash<QString, const AdBlockRule*> cssRulesHash;
- QVector<const AdBlockRule*> exceptionCssRules;
-
- int count = m_rules.count();
- for (int i = 0; i < count; ++i) {
- const AdBlockRule* rule = m_rules.at(i);
-
- // Don't add internally disabled rules to cache
- if (rule->isInternalDisabled()) {
- continue;
- }
-
- if (rule->isCssRule()) {
- // We will add only enabled css rules to cache, because there is no enabled/disabled
- // check on match. They are directly embedded to pages.
- if (!rule->isEnabled()) {
- continue;
- }
-
- if (rule->isException()) {
- exceptionCssRules.append(rule);
- }
- else {
- cssRulesHash.insert(rule->cssSelector(), rule);
- }
- }
- else if (rule->isDocument()) {
- m_documentRules.append(rule);
- }
- else if (rule->isElemhide()) {
- m_elemhideRules.append(rule);
- }
- else if (rule->isException()) {
- if (!m_networkExceptionTree.add(rule)) {
- m_networkExceptionRules.append(rule);
- }
- }
- else {
- if (!m_networkBlockTree.add(rule)) {
- m_networkBlockRules.append(rule);
- }
- }
- }
-
- count = exceptionCssRules.count();
- for (int i = 0; i < count; ++i) {
- const AdBlockRule* rule = exceptionCssRules.at(i);
- const AdBlockRule* originalRule = cssRulesHash.value(rule->cssSelector());
-
- // If we don't have this selector, the exception does nothing
- if (!originalRule) {
- continue;
- }
-
- AdBlockRule* copiedRule = originalRule->copy();
- copiedRule->m_options |= AdBlockRule::DomainRestrictedOption;
- copiedRule->m_blockedDomains.append(rule->m_allowedDomains);
-
- cssRulesHash[rule->cssSelector()] = copiedRule;
- m_createdRules.append(copiedRule);
- }
-
- // Apparently, excessive amount of selectors for one CSS rule is not what WebKit likes.
- // (In my testings, 4931 is the number that makes it crash)
- // So let's split it by 1000 selectors...
- int hidingRulesCount = 0;
-
- QHashIterator<QString, const AdBlockRule*> it(cssRulesHash);
- while (it.hasNext()) {
- it.next();
- const AdBlockRule* rule = it.value();
-
- if (rule->isDomainRestricted()) {
- m_domainRestrictedCssRules.append(rule);
- }
- else if (Q_UNLIKELY(hidingRulesCount == 1000)) {
- m_elementHidingRules.append(rule->cssSelector());
- m_elementHidingRules.append(QL1S("{display:none !important;} "));
- hidingRulesCount = 0;
- }
- else {
- m_elementHidingRules.append(rule->cssSelector() + QLatin1Char(','));
- hidingRulesCount++;
- }
- }
-
- if (hidingRulesCount != 0) {
- m_elementHidingRules = m_elementHidingRules.left(m_elementHidingRules.size() - 1);
- m_elementHidingRules.append(QL1S("{display:none !important;} "));
- }
-}
-
AdBlockSubscription::~AdBlockSubscription()
{
qDeleteAll(m_rules);
@@ -519,12 +316,13 @@
QFile file(filePath());
if (file.open(QFile::WriteOnly | QFile::Append)) {
QTextStream stream(&file);
+ stream.setCodec("UTF-8");
- if (!rules.contains(ddg1))
- stream << ddg1;
+ if (!rules.contains(ddg1 + QL1S("\n")))
+ stream << ddg1 << endl;
- if (!rules.contains(ddg2))
- stream << ddg2;
+ if (!rules.contains(QL1S("\n") + ddg2))
+ stream << ddg2 << endl;
}
file.close();
@@ -590,9 +388,11 @@
int AdBlockCustomList::addRule(AdBlockRule* rule)
{
m_rules.append(rule);
- populateCache();
- emit subscriptionEdited();
+ emit subscriptionChanged();
+
+ if (rule->isCssRule())
+ mApp->reloadUserStyleSheet();
return m_rules.count() - 1;
}
@@ -607,9 +407,11 @@
const QString filter = rule->filter();
m_rules.remove(offset);
- populateCache();
- emit subscriptionEdited();
+ emit subscriptionChanged();
+
+ if (rule->isCssRule())
+ mApp->reloadUserStyleSheet();
AdBlockManager::instance()->removeDisabledRule(filter);
@@ -623,12 +425,14 @@
return 0;
}
- delete m_rules.at(offset);
-
+ AdBlockRule* oldRule = m_rules.at(offset);
m_rules[offset] = rule;
- populateCache();
- emit subscriptionEdited();
+ emit subscriptionChanged();
+
+ if (rule->isCssRule() || oldRule->isCssRule())
+ mApp->reloadUserStyleSheet();
+ delete oldRule;
return m_rules[offset];
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/adblock/adblocksubscription.h new/QupZilla-1.8.4/src/lib/adblock/adblocksubscription.h
--- old/QupZilla-1.8.3/src/lib/adblock/adblocksubscription.h 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/adblock/adblocksubscription.h 2014-11-03 21:21:24.000000000 +0100
@@ -77,14 +77,6 @@
virtual void loadSubscription(const QStringList &disabledRules);
virtual void saveSubscription();
- const AdBlockRule* match(const QNetworkRequest &request, const QString &urlDomain, const QString &urlString) const;
-
- bool adBlockDisabledForUrl(const QUrl &url) const;
- bool elemHideDisabledForUrl(const QUrl &url) const;
-
- QString elementHidingRules() const;
- QString elementHidingRulesForDomain(const QString &domain) const;
-
const AdBlockRule* rule(int offset) const;
QVector<AdBlockRule*> allRules() const;
@@ -102,6 +94,7 @@
void updateSubscription();
signals:
+ void subscriptionChanged();
void subscriptionUpdated();
void subscriptionError(const QString &message);
@@ -111,23 +104,8 @@
protected:
virtual bool saveDownloadedData(const QByteArray &data);
- void populateCache();
-
FollowRedirectReply* m_reply;
-
QVector<AdBlockRule*> m_rules;
- QVector<AdBlockRule*> m_createdRules;
- QString m_elementHidingRules;
-
- QVector<const AdBlockRule*> m_networkExceptionRules;
- QVector<const AdBlockRule*> m_networkBlockRules;
- QVector<const AdBlockRule*> m_domainRestrictedCssRules;
-
- QVector<const AdBlockRule*> m_documentRules;
- QVector<const AdBlockRule*> m_elemhideRules;
-
- AdBlockSearchTree m_networkBlockTree;
- AdBlockSearchTree m_networkExceptionTree;
private:
QString m_title;
@@ -155,9 +133,6 @@
int addRule(AdBlockRule* rule);
bool removeRule(int offset);
const AdBlockRule* replaceRule(AdBlockRule* rule, int offset);
-
-signals:
- void subscriptionEdited();
};
#endif // ADBLOCKSUBSCRIPTION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/app/mainapplication.cpp new/QupZilla-1.8.4/src/lib/app/mainapplication.cpp
--- old/QupZilla-1.8.3/src/lib/app/mainapplication.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/app/mainapplication.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -894,8 +894,8 @@
webSettings->setFontFamily(QWebSettings::FixedFont, settings.value("FixedFont", webSettings->fontFamily(QWebSettings::FixedFont)).toString());
webSettings->setFontFamily(QWebSettings::SansSerifFont, settings.value("SansSerifFont", webSettings->fontFamily(QWebSettings::SansSerifFont)).toString());
webSettings->setFontFamily(QWebSettings::SerifFont, settings.value("SerifFont", webSettings->fontFamily(QWebSettings::SerifFont)).toString());
- webSettings->setFontSize(QWebSettings::DefaultFontSize, settings.value("DefaultFontSize", 14).toInt());
- webSettings->setFontSize(QWebSettings::DefaultFixedFontSize, settings.value("FixedFontSize", 12).toInt());
+ webSettings->setFontSize(QWebSettings::DefaultFontSize, settings.value("DefaultFontSize", 15).toInt());
+ webSettings->setFontSize(QWebSettings::DefaultFixedFontSize, settings.value("FixedFontSize", 14).toInt());
webSettings->setFontSize(QWebSettings::MinimumFontSize, settings.value("MinimumFontSize", 3).toInt());
webSettings->setFontSize(QWebSettings::MinimumLogicalFontSize, settings.value("MinimumLogicalFontSize", 5).toInt());
settings.endGroup();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/app/mainmenu.cpp new/QupZilla-1.8.4/src/lib/app/mainmenu.cpp
--- old/QupZilla-1.8.3/src/lib/app/mainmenu.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/app/mainmenu.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -629,12 +629,15 @@
m_actions[QSL("Other/RestoreClosedTab")] = action;
#ifdef Q_OS_MAC
- m_actions[QSL("View/FullScreen")]->setShortcut(QKeySequence(QSL("F11")));
+ m_actions[QSL("View/FullScreen")]->setShortcut(QKeySequence::FullScreen);
// Add standard actions to File Menu (as it won't be ever cleared) and Mac menubar should move them to "Application" menu
m_menuFile->addAction(m_actions[QSL("Standard/About")]);
m_menuFile->addAction(m_actions[QSL("Standard/Preferences")]);
+ // Prevent ConfigInfo action to be detected as "Preferences..." action in Mac menubar
+ m_actions[QSL("Help/ConfigInfo")]->setMenuRole(QAction::NoRole);
+
// Create Dock menu
QMenu* dockMenu = new QMenu(0);
dockMenu->addAction(m_actions[QSL("File/NewTab")]);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/app/settings.cpp new/QupZilla-1.8.4/src/lib/app/settings.cpp
--- old/QupZilla-1.8.3/src/lib/app/settings.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/app/settings.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -25,8 +25,9 @@
Settings::Settings()
{
+ // Save currently opened group
if (!s_settings->group().isEmpty()) {
- qDebug("Settings: Creating object with opened group!");
+ m_openedGroup = s_settings->group();
s_settings->endGroup();
}
}
@@ -78,7 +79,11 @@
Settings::~Settings()
{
if (!s_settings->group().isEmpty()) {
- qDebug("Settings: Deleting object with opened group!");
+ qDebug() << "Settings: Deleting object with opened group!";
s_settings->endGroup();
}
+
+ // Restore opened group
+ if (!m_openedGroup.isEmpty())
+ s_settings->beginGroup(m_openedGroup);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/app/settings.h new/QupZilla-1.8.4/src/lib/app/settings.h
--- old/QupZilla-1.8.3/src/lib/app/settings.h 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/app/settings.h 2014-11-03 21:21:24.000000000 +0100
@@ -18,7 +18,6 @@
#ifndef SETTINGS_H
#define SETTINGS_H
-#include <qglobal.h>
#include <QVariant>
#include "qzcommon.h"
@@ -45,14 +44,12 @@
void beginGroup(const QString &prefix);
void endGroup();
-signals:
-
-public slots:
-
private:
static QSettings* s_settings;
static QzSettings* s_qzSettings;
+ QString m_openedGroup;
+
};
#endif // SETTINGS_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/lib.pro new/QupZilla-1.8.4/src/lib/lib.pro
--- old/QupZilla-1.8.3/src/lib/lib.pro 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/lib.pro 2014-11-03 21:21:24.000000000 +0100
@@ -242,6 +242,7 @@
webtab/searchtoolbar.cpp \
webtab/tabbedwebview.cpp \
webtab/webtab.cpp \
+ adblock/adblockmatcher.cpp
HEADERS += \
3rdparty/ecwin7.h \
@@ -445,6 +446,7 @@
webtab/searchtoolbar.h \
webtab/tabbedwebview.h \
webtab/webtab.h \
+ adblock/adblockmatcher.h
FORMS += \
adblock/adblockaddsubscriptiondialog.ui \
@@ -506,7 +508,12 @@
data/oxygen-fallback.qrc
isEqual(QT_MAJOR_VERSION, 5) {
- include(3rdparty/qftp/qftp.pri)
+ qtHaveModule(ftp) {
+ QT *= ftp
+ } else {
+ include(3rdparty/qftp/qftp.pri)
+ }
+
SOURCES += tools/qzregexp.cpp
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/network/networkmanager.cpp new/QupZilla-1.8.4/src/lib/network/networkmanager.cpp
--- old/QupZilla-1.8.3/src/lib/network/networkmanager.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/network/networkmanager.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -102,8 +102,8 @@
// Force SSLv3 for servers that doesn't understand TLSv1 handshake
QStringList sslv3Sites;
- sslv3Sites << QLatin1String("centrum.sk") << QLatin1String("centrum.cz") << QLatin1String("oneaccount.com") << QLatin1String("hdi.de")
- << QLatin1String("live.com") << QLatin1String("i0.cz") << QLatin1String("sermepa.es");
+ sslv3Sites << QLatin1String("centrum.sk") << QLatin1String("centrum.cz") << QLatin1String("oneaccount.com")
+ << QLatin1String("i0.cz") << QLatin1String("sermepa.es");
settings.beginGroup("Web-Browser-Settings");
m_doNotTrack = settings.value("DoNotTrack", false).toBool();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/network/schemehandlers/qupzillaschemehandler.cpp new/QupZilla-1.8.4/src/lib/network/schemehandlers/qupzillaschemehandler.cpp
--- old/QupZilla-1.8.3/src/lib/network/schemehandlers/qupzillaschemehandler.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/network/schemehandlers/qupzillaschemehandler.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -417,31 +417,21 @@
QString debugBuild = tr("Disabled");
#endif
-#if defined (USE_WEBGL) || (QTWEBKIT_FROM_2_3 && defined(Q_OS_UNIX))
- QString webGLEnabled = tr("<b>Enabled</b>");
-#else
- QString webGLEnabled = tr("Disabled");
-#endif
-
+#ifdef Q_OS_WIN
#if defined(Q_OS_WIN) && defined(W7API)
QString w7APIEnabled = tr("<b>Enabled</b>");
#else
QString w7APIEnabled = tr("Disabled");
#endif
-
-#if defined(Q_OS_UNIX) && defined(KDE_INTEGRATION)
- QString KDEIntegration = tr("<b>Enabled</b>");
-#else
- QString KDEIntegration = tr("Disabled");
#endif
QString portableBuild = mApp->isPortable() ? tr("<b>Enabled</b>") : tr("Disabled");
cPage.replace(QLatin1String("%BUILD-CONFIG-TEXT%"),
QString("<dt>%1</dt><dd>%2<dd>").arg(tr("Debug build"), debugBuild) +
- QString("<dt>%1</dt><dd>%2<dd>").arg(tr("WebGL support"), webGLEnabled) +
+#ifdef Q_OS_WIN
QString("<dt>%1</dt><dd>%2<dd>").arg(tr("Windows 7 API"), w7APIEnabled) +
- QString("<dt>%1</dt><dd>%2<dd>").arg(tr("KDE integration"), KDEIntegration) +
+#endif
QString("<dt>%1</dt><dd>%2<dd>").arg(tr("Portable build"), portableBuild));
cPage = QzTools::applyDirectionToPage(cPage);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/lib/plugins/plugins.cpp new/QupZilla-1.8.4/src/lib/plugins/plugins.cpp
--- old/QupZilla-1.8.3/src/lib/plugins/plugins.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/lib/plugins/plugins.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -180,9 +180,6 @@
QDir pluginsDir = QDir(dir);
foreach (const QString &fileName, pluginsDir.entryList(QDir::Files)) {
const QString absolutePath = pluginsDir.absoluteFilePath(fileName);
- if (m_allowedPlugins.contains(absolutePath)) {
- continue;
- }
QPluginLoader* loader = new QPluginLoader(absolutePath);
PluginInterface* iPlugin = qobject_cast<PluginInterface*>(loader->instance());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/main/Info.plist new/QupZilla-1.8.4/src/main/Info.plist
--- old/QupZilla-1.8.3/src/main/Info.plist 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/main/Info.plist 2014-11-03 21:21:24.000000000 +0100
@@ -7,9 +7,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
- <string>1.8.3</string>
+ <string>1.8.4</string>
<key>CFBundleVersion</key>
- <string>1.8.3</string>
+ <string>1.8.4</string>
<key>CFBundleSignature</key>
<string>@TYPEINFO@</string>
<key>CFBundleExecutable</key>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/src/main/appicon.rc new/QupZilla-1.8.4/src/main/appicon.rc
--- old/QupZilla-1.8.3/src/main/appicon.rc 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/src/main/appicon.rc 2014-11-03 21:21:24.000000000 +0100
@@ -4,8 +4,8 @@
IDI_ICON2 ICON DISCARDABLE "..\lib\data\icons\exeicons\page.ico"
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,8,3,0
- PRODUCTVERSION 1,8,3,0
+ FILEVERSION 1,8,4,0
+ PRODUCTVERSION 1,8,4,0
FILEFLAGS 0x0L
FILEFLAGSMASK 0x3fL
FILEOS 0x00040004L
@@ -18,12 +18,12 @@
BEGIN
VALUE "CompanyName", "QupZilla Team"
VALUE "FileDescription", "QupZilla Web Browser"
- VALUE "FileVersion", "1.8.3"
+ VALUE "FileVersion", "1.8.4"
VALUE "LegalCopyright", "Copyright (C) 2010-2014 David Rosca"
VALUE "InternalName", "qupzilla"
VALUE "OriginalFilename", "qupzilla.exe"
VALUE "ProductName", "QupZilla"
- VALUE "ProductVersion", "1.8.3"
+ VALUE "ProductVersion", "1.8.4"
END
END
BLOCK "VarFileInfo"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/tests/autotests/networktest.cpp new/QupZilla-1.8.4/tests/autotests/networktest.cpp
--- old/QupZilla-1.8.3/tests/autotests/networktest.cpp 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/tests/autotests/networktest.cpp 2014-11-03 21:21:24.000000000 +0100
@@ -45,8 +45,6 @@
QTest::newRow("centrum.sk") << QUrl("https://user.centrum.sk/");
QTest::newRow("centrum.cz") << QUrl("https://user.centrum.cz/");
QTest::newRow("oneaccount.com") << QUrl("https://service.oneaccount.com/onlineV2/OSV2?event=login&pt=3");
- QTest::newRow("hdi.de") << QUrl("https://www.hdi.de/");
- QTest::newRow("office-webapps") << QUrl("https://skydrive.live.com/view.aspx?resid=4FE8716FF67627C7!1218&cid=4fe8716…");
QTest::newRow("i0.cz") << QUrl("https://i0.cz/6/ju/css/login/centrum.sk.css");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QupZilla-1.8.3/windows/installer.nsi new/QupZilla-1.8.4/windows/installer.nsi
--- old/QupZilla-1.8.3/windows/installer.nsi 2014-10-19 20:43:38.000000000 +0200
+++ new/QupZilla-1.8.4/windows/installer.nsi 2014-11-03 21:21:24.000000000 +0100
@@ -24,7 +24,7 @@
SetCompressor /SOLID /FINAL lzma
!define PRODUCT_NAME "QupZilla"
-!define /date PRODUCT_VERSION "1.8.3"
+!define /date PRODUCT_VERSION "1.8.4"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\qupzilla.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
--
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 python-Markdown for openSUSE:Factory checked in at 2014-11-28 08:44:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Markdown (Old)
and /work/SRC/openSUSE:Factory/.python-Markdown.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Markdown"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Markdown/python-Markdown.changes 2014-10-05 20:33:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-Markdown.new/python-Markdown.changes 2014-11-28 08:44:43.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Nov 24 17:35:36 UTC 2014 - benoit.monin(a)gmx.fr
+
+- update to version 2.5.2: bugfix release
+
+-------------------------------------------------------------------
Old:
----
Markdown-2.5.1.tar.gz
New:
----
Markdown-2.5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Markdown.spec ++++++
--- /var/tmp/diff_new_pack.vOtF8Q/_old 2014-11-28 08:44:44.000000000 +0100
+++ /var/tmp/diff_new_pack.vOtF8Q/_new 2014-11-28 08:44:44.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-Markdown
-Version: 2.5.1
+Version: 2.5.2
Release: 0
Summary: Python implementation of Markdown
License: BSD-3-Clause
++++++ Markdown-2.5.1.tar.gz -> Markdown-2.5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/PKG-INFO new/Markdown-2.5.2/PKG-INFO
--- old/Markdown-2.5.1/PKG-INFO 2014-09-27 00:40:21.000000000 +0200
+++ new/Markdown-2.5.2/PKG-INFO 2014-11-20 03:13:55.000000000 +0100
@@ -1,12 +1,12 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: Markdown
-Version: 2.5.1
+Version: 2.5.2
Summary: Python implementation of Markdown.
Home-page: https://pythonhosted.org/Markdown/
Author: Waylan Limberg
Author-email: waylan [at] gmail.com
License: BSD License
-Download-URL: http://pypi.python.org/packages/source/M/Markdown/Markdown-2.5.1.tar.gz
+Download-URL: http://pypi.python.org/packages/source/M/Markdown/Markdown-2.5.2.tar.gz
Description: This is a Python implementation of John Gruber's Markdown_.
It is almost completely compliant with the reference implementation,
though there are a few known issues. See Features_ for information
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/docs/extensions/nl2br.txt new/Markdown-2.5.2/docs/extensions/nl2br.txt
--- old/Markdown-2.5.1/docs/extensions/nl2br.txt 2014-09-13 02:32:11.000000000 +0200
+++ new/Markdown-2.5.2/docs/extensions/nl2br.txt 2014-11-03 05:43:58.000000000 +0100
@@ -23,7 +23,7 @@
... Line 1
... Line 2
... """
- >>> html = markdown.markdown(text, extensions=['nl2br'])
+ >>> html = markdown.markdown(text, extensions=['markdown.extensions.nl2br'])
>>> print html
<p>Line 1<br />
Line 2</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/markdown/__init__.py new/Markdown-2.5.2/markdown/__init__.py
--- old/Markdown-2.5.1/markdown/__init__.py 2014-09-26 04:31:04.000000000 +0200
+++ new/Markdown-2.5.2/markdown/__init__.py 2014-11-14 04:18:21.000000000 +0100
@@ -180,7 +180,7 @@
ext = self.build_extension(ext, configs.get(ext, {}))
if isinstance(ext, Extension):
ext.extendMarkdown(self, globals())
- logger.info('Successfully loaded extension "%s.%s".'
+ logger.debug('Successfully loaded extension "%s.%s".'
% (ext.__class__.__module__, ext.__class__.__name__))
elif ext is not None:
raise TypeError(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/markdown/__version__.py new/Markdown-2.5.2/markdown/__version__.py
--- old/Markdown-2.5.1/markdown/__version__.py 2014-09-27 00:31:53.000000000 +0200
+++ new/Markdown-2.5.2/markdown/__version__.py 2014-11-20 03:04:29.000000000 +0100
@@ -5,7 +5,7 @@
# (major, minor, micro, alpha/beta/rc/final, #)
# (1, 1, 2, 'alpha', 0) => "1.1.2.dev"
# (1, 2, 0, 'beta', 2) => "1.2b2"
-version_info = (2, 5, 1, 'final', 0)
+version_info = (2, 5, 2, 'final', 0)
def _get_version():
" Returns a PEP 386-compliant version number from version_info. "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/markdown/extensions/codehilite.py new/Markdown-2.5.2/markdown/extensions/codehilite.py
--- old/Markdown-2.5.1/markdown/extensions/codehilite.py 2014-08-26 03:30:47.000000000 +0200
+++ new/Markdown-2.5.2/markdown/extensions/codehilite.py 2014-11-03 05:43:58.000000000 +0100
@@ -22,8 +22,8 @@
import warnings
try:
from pygments import highlight
- from pygments.lexers import get_lexer_by_name, guess_lexer, TextLexer
- from pygments.formatters import HtmlFormatter
+ from pygments.lexers import get_lexer_by_name, guess_lexer
+ from pygments.formatters import get_formatter_by_name
pygments = True
except ImportError:
pygments = False
@@ -109,14 +109,15 @@
if self.guess_lang:
lexer = guess_lexer(self.src)
else:
- lexer = TextLexer()
+ lexer = get_lexer_by_name('text')
except ValueError:
- lexer = TextLexer()
- formatter = HtmlFormatter(linenos=self.linenums,
- cssclass=self.css_class,
- style=self.style,
- noclasses=self.noclasses,
- hl_lines=self.hl_lines)
+ lexer = get_lexer_by_name('text')
+ formatter = get_formatter_by_name('html',
+ linenos=self.linenums,
+ cssclass=self.css_class,
+ style=self.style,
+ noclasses=self.noclasses,
+ hl_lines=self.hl_lines)
return highlight(self.src, lexer, formatter)
else:
# just escape and build markup usable by JS highlighting libs
@@ -247,4 +248,3 @@
def makeExtension(*args, **kwargs):
return CodeHiliteExtension(*args, **kwargs)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/markdown/extensions/toc.py new/Markdown-2.5.2/markdown/extensions/toc.py
--- old/Markdown-2.5.1/markdown/extensions/toc.py 2014-09-26 04:31:04.000000000 +0200
+++ new/Markdown-2.5.2/markdown/extensions/toc.py 2014-11-18 05:32:47.000000000 +0100
@@ -27,60 +27,59 @@
[{'level': 1}, {'level': 2}]
=>
[{'level': 1, 'children': [{'level': 2, 'children': []}]}]
-
+
A wrong list is also converted:
[{'level': 2}, {'level': 1}]
=>
[{'level': 2, 'children': []}, {'level': 1, 'children': []}]
"""
-
- def build_correct(remaining_list, prev_elements=[{'level': 1000}]):
-
- if not remaining_list:
- return [], []
-
- current = remaining_list.pop(0)
- if not 'children' in current.keys():
- current['children'] = []
-
- if not prev_elements:
- # This happens for instance with [8, 1, 1], ie. when some
- # header level is outside a scope. We treat it as a
- # top-level
- next_elements, children = build_correct(remaining_list, [current])
- current['children'].append(children)
- return [current] + next_elements, []
-
- prev_element = prev_elements.pop()
- children = []
- next_elements = []
- # Is current part of the child list or next list?
- if current['level'] > prev_element['level']:
- #print "%d is a child of %d" % (current['level'], prev_element['level'])
- prev_elements.append(prev_element)
- prev_elements.append(current)
- prev_element['children'].append(current)
- next_elements2, children2 = build_correct(remaining_list, prev_elements)
- children += children2
- next_elements += next_elements2
- else:
- #print "%d is ancestor of %d" % (current['level'], prev_element['level'])
- if not prev_elements:
- #print "No previous elements, so appending to the next set"
- next_elements.append(current)
- prev_elements = [current]
- next_elements2, children2 = build_correct(remaining_list, prev_elements)
- current['children'].extend(children2)
+
+ ordered_list = []
+ if len(toc_list):
+ # Initialize everything by processing the first entry
+ last = toc_list.pop(0)
+ last['children'] = []
+ levels = [last['level']]
+ ordered_list.append(last)
+ parents = []
+
+ # Walk the rest nesting the entries properly
+ while toc_list:
+ t = toc_list.pop(0)
+ current_level = t['level']
+ t['children'] = []
+
+ # Reduce depth if current level < last item's level
+ if current_level < levels[-1]:
+ # Pop last level since we know we are less than it
+ levels.pop()
+
+ # Pop parents and levels we are less than or equal to
+ to_pop = 0
+ for p in reversed(parents):
+ if current_level <= p['level']:
+ to_pop += 1
+ else:
+ break
+ if to_pop:
+ levels = levels[:-to_pop]
+ parents = parents[:-to_pop]
+
+ # Note current level as last
+ levels.append(current_level)
+
+ # Level is the same, so append to the current parent (if available)
+ if current_level == levels[-1]:
+ (parents[-1]['children'] if parents else ordered_list).append(t)
+
+ # Current level is > last item's level,
+ # So make last item a parent and append current as child
else:
- #print "Previous elements, comparing to those first"
- remaining_list.insert(0, current)
- next_elements2, children2 = build_correct(remaining_list, prev_elements)
- children.extend(children2)
- next_elements += next_elements2
-
- return next_elements, children
-
- ordered_list, __ = build_correct(toc_list)
+ last['children'].append(t)
+ parents.append(last)
+ levels.append(current_level)
+ last = t
+
return ordered_list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/markdown/inlinepatterns.py new/Markdown-2.5.2/markdown/inlinepatterns.py
--- old/Markdown-2.5.1/markdown/inlinepatterns.py 2014-09-27 00:30:31.000000000 +0200
+++ new/Markdown-2.5.2/markdown/inlinepatterns.py 2014-11-18 05:32:47.000000000 +0100
@@ -101,8 +101,8 @@
ESCAPE_RE = r'\\(.)' # \<
EMPHASIS_RE = r'(\*)([^\*]+)\2' # *emphasis*
STRONG_RE = r'(\*{2}|_{2})(.+?)\2' # **strong**
-EM_STRONG_RE = r'(\*|_){3}(.+?)\2(.*?)\2{2}' # ***strongem*** or ***em*strong**
-STRONG_EM_RE = r'(\*|_){3}(.+?)\2{2}(.*?)\2' # ***strong**em*
+EM_STRONG_RE = r'(\*|_)\2{2}(.+?)\2(.*?)\2{2}' # ***strongem*** or ***em*strong**
+STRONG_EM_RE = r'(\*|_)\2{2}(.+?)\2{2}(.*?)\2' # ***strong**em*
SMART_EMPHASIS_RE = r'(?<!\w)(_)(?!_)(.+?)(?<!_)\2(?!\w)' # _smart_emphasis_
EMPHASIS_2_RE = r'(_)(.+?)\2' # _emphasis_
LINK_RE = NOIMG + BRK + \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/markdown/preprocessors.py new/Markdown-2.5.2/markdown/preprocessors.py
--- old/Markdown-2.5.1/markdown/preprocessors.py 2014-07-12 03:09:09.000000000 +0200
+++ new/Markdown-2.5.2/markdown/preprocessors.py 2014-11-20 03:01:25.000000000 +0100
@@ -174,9 +174,10 @@
else: # raw html
if len(items) - right_listindex <= 1: # last element
right_listindex -= 1
+ offset = 1 if i == right_listindex else 0
placeholder = self.markdown.htmlStash.store('\n\n'.join(
- items[i:right_listindex + 1]))
- del items[i:right_listindex + 1]
+ items[i:right_listindex + offset]))
+ del items[i:right_listindex + offset]
items.insert(i, placeholder)
return items
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/markdown/treeprocessors.py new/Markdown-2.5.2/markdown/treeprocessors.py
--- old/Markdown-2.5.1/markdown/treeprocessors.py 2014-09-27 00:30:31.000000000 +0200
+++ new/Markdown-2.5.2/markdown/treeprocessors.py 2014-11-03 05:43:58.000000000 +0100
@@ -132,7 +132,7 @@
childResult = self.__processPlaceholders(text, subnode, isText)
if not isText and node is not subnode:
- pos = list(node).index(subnode)
+ pos = list(node).index(subnode) + 1
else:
pos = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/tests/extensions/extra/raw-html.html new/Markdown-2.5.2/tests/extensions/extra/raw-html.html
--- old/Markdown-2.5.1/tests/extensions/extra/raw-html.html 2014-05-23 00:35:13.000000000 +0200
+++ new/Markdown-2.5.2/tests/extensions/extra/raw-html.html 2014-11-20 03:01:25.000000000 +0100
@@ -27,11 +27,18 @@
Raw html blocks may also be nested.
</div>
-
-
</div>
<p>This text is after the markdown in html.</p>
<div name="issue308">
<p><span>1</span>
<span>2</span></p>
-</div>
\ No newline at end of file
+</div>
+<div name="issue368">
+<p>Markdown is <em>active</em> here.</p>
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+<p>Markdown is <em>still</em> active here.</p>
+</div>
+<p>Markdown is <em>active again</em> here.</p>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/tests/extensions/extra/raw-html.txt new/Markdown-2.5.2/tests/extensions/extra/raw-html.txt
--- old/Markdown-2.5.1/tests/extensions/extra/raw-html.txt 2014-05-23 00:35:13.000000000 +0200
+++ new/Markdown-2.5.2/tests/extensions/extra/raw-html.txt 2014-11-20 03:01:25.000000000 +0100
@@ -51,3 +51,17 @@
<span>2</span>
</div>
+
+<div markdown="1" name="issue368">
+
+Markdown is *active* here.
+
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+Markdown is *still* active here.
+
+</div>
+
+Markdown is *active again* here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/tests/misc/nested-patterns.html new/Markdown-2.5.2/tests/misc/nested-patterns.html
--- old/Markdown-2.5.1/tests/misc/nested-patterns.html 2013-03-08 04:04:29.000000000 +0100
+++ new/Markdown-2.5.2/tests/misc/nested-patterns.html 2014-11-18 05:32:47.000000000 +0100
@@ -4,4 +4,7 @@
<strong><a href="http://example.com"><em>link</em></a></strong>
<strong><a href="http://example.com"><em>link</em></a></strong>
<strong><a href="http://example.com"><em>link</em></a></strong>
-<a href="http://example.com"><strong><em>link</em></strong></a></p>
\ No newline at end of file
+<a href="http://example.com"><strong><em>link</em></strong></a></p>
+<p><strong><em>I am <strong><em>italic</em> and</strong> bold</em> I am <code>just</code> bold</strong></p>
+<p>Example <strong><em>bold italic</em></strong> on the same line <strong><em>bold italic</em></strong>.</p>
+<p>Example <strong><em>bold italic</em></strong> on the same line <strong><em>bold italic</em></strong>.</p>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/tests/misc/nested-patterns.txt new/Markdown-2.5.2/tests/misc/nested-patterns.txt
--- old/Markdown-2.5.1/tests/misc/nested-patterns.txt 2013-03-08 04:04:29.000000000 +0100
+++ new/Markdown-2.5.2/tests/misc/nested-patterns.txt 2014-11-18 05:32:47.000000000 +0100
@@ -5,3 +5,9 @@
__[*link*](http://example.com)__
**[_link_](http://example.com)**
[***link***](http://example.com)
+
+***I am ___italic_ and__ bold* I am `just` bold**
+
+Example __*bold italic*__ on the same line __*bold italic*__.
+
+Example **_bold italic_** on the same line **_bold italic_**.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Markdown-2.5.1/tests/test_extensions.py new/Markdown-2.5.2/tests/test_extensions.py
--- old/Markdown-2.5.1/tests/test_extensions.py 2014-09-13 02:32:11.000000000 +0200
+++ new/Markdown-2.5.2/tests/test_extensions.py 2014-11-11 01:52:05.000000000 +0100
@@ -91,10 +91,8 @@
text = '\t# A Code Comment'
md = markdown.Markdown(extensions=['markdown.extensions.codehilite'])
if self.has_pygments:
- self.assertEqual(md.convert(text),
- '<div class="codehilite">'
- '<pre><span class="c"># A Code Comment</span>\n'
- '</pre></div>')
+ # Pygments can use random lexer here as we did not specify the language
+ self.assertTrue(md.convert(text).startswith('<div class="codehilite"><pre>'))
else:
self.assertEqual(md.convert(text),
'<pre class="codehilite"><code># A Code Comment'
@@ -105,7 +103,7 @@
md = markdown.Markdown(
extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=True)])
if self.has_pygments:
- # Differant versions of pygments output slightly different markup.
+ # Different versions of pygments output slightly different markup.
# So we use 'startwith' and test just enough to confirm that
# pygments received and processed linenums.
self.assertTrue(md.convert(text).startswith(
@@ -134,10 +132,8 @@
md = markdown.Markdown(
extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=None)])
if self.has_pygments:
- self.assertEqual(md.convert(text),
- '<div class="codehilite">'
- '<pre><span class="c"># A Code Comment</span>\n'
- '</pre></div>')
+ # Pygments can use random lexer here as we did not specify the language
+ self.assertTrue(md.convert(text).startswith('<div class="codehilite"><pre>'))
else:
self.assertEqual(md.convert(text),
'<pre class="codehilite"><code># A Code Comment'
--
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 python3-apache-libcloud for openSUSE:Factory checked in at 2014-11-28 08:44:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-apache-libcloud (Old)
and /work/SRC/openSUSE:Factory/.python3-apache-libcloud.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-apache-libcloud"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-apache-libcloud/python3-apache-libcloud.changes 2014-11-18 22:46:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-apache-libcloud.new/python3-apache-libcloud.changes 2014-11-28 08:44:40.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Nov 24 10:26:19 UTC 2014 - andrea(a)opensuse.org
+
+- New upstream version 0.16.0
+ * changes listed on the website:
+ https://libcloud.readthedocs.org/en/latest/changelog.html
+
+-------------------------------------------------------------------
Old:
----
apache-libcloud-0.15.1.tar.bz2
New:
----
apache-libcloud-0.16.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-apache-libcloud.spec ++++++
--- /var/tmp/diff_new_pack.ssTG9E/_old 2014-11-28 08:44:42.000000000 +0100
+++ /var/tmp/diff_new_pack.ssTG9E/_new 2014-11-28 08:44:42.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-apache-libcloud
-Version: 0.15.1
+Version: 0.16.0
Release: 0
Summary: Abstract away differences among multiple cloud provider APIs
License: Apache-2.0
++++++ apache-libcloud-0.15.1.tar.bz2 -> apache-libcloud-0.16.0.tar.bz2 ++++++
++++ 15782 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 python-dnspython for openSUSE:Factory checked in at 2014-11-28 08:44:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dnspython (Old)
and /work/SRC/openSUSE:Factory/.python-dnspython.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-dnspython"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-dnspython/python-dnspython.changes 2014-10-25 08:33:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-dnspython.new/python-dnspython.changes 2014-11-28 08:44:39.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Nov 25 11:18:34 UTC 2014 - dmueller(a)suse.com
+
+- fix build on SLE11
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-dnspython.spec ++++++
--- /var/tmp/diff_new_pack.TWtr41/_old 2014-11-28 08:44:40.000000000 +0100
+++ /var/tmp/diff_new_pack.TWtr41/_new 2014-11-28 08:44:40.000000000 +0100
@@ -58,11 +58,14 @@
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
%check
+# Requires TestLoader.discover which only exists in Python 2.7.x
+%if 0%{?suse_version} > 1110
pushd tests
# skip the resolver test suite as it requires an internet connection
test -f test_resolver.py && rm test_resolver.py
make check
popd
+%endif
%files
%defattr(-,root,root)
--
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 clamav for openSUSE:Factory checked in at 2014-11-28 08:44:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clamav (Old)
and /work/SRC/openSUSE:Factory/.clamav.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clamav"
Changes:
--------
--- /work/SRC/openSUSE:Factory/clamav/clamav.changes 2014-11-10 17:29:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.clamav.new/clamav.changes 2014-11-28 08:44:38.000000000 +0100
@@ -1,0 +2,24 @@
+Wed Nov 19 14:54:58 UTC 2014 - max(a)suse.com
+
+- Version 0.98.5:
+ * Support for the XDP file format and extracting, decoding, and
+ scanning PDF files within XDP files.
+ * Addition of shared library support for LLVM versions 3.1 - 3.5
+ for the purpose of just-in-time(JIT) compilation of ClamAV
+ bytecode signatures.
+ * Enhancements to the clambc command line utility to assist
+ ClamAV bytecode signature authors by providing introspection
+ into compiled bytecode programs.
+ * Resolution of many of the warning messages from ClamAV
+ compilation.
+ * Improved detection of malicious PE files.
+ * Security fix for ClamAV crash when using 'clamscan -a'.
+ * Security fix for ClamAV crash when scanning maliciously
+ crafted yoda's crypter files (bnc#906077, CVE-2013-6497).
+ * ClamAV 0.98.5 now works with OpenSSL in FIPS compliant
+ mode (bnc#904207).
+ * Fix server socket setup code in clamd (bnc#903489).
+- Change updateclamconf to prefer the state of the old config
+ file even for commented-out options (bnc#903719).
+
+-------------------------------------------------------------------
Old:
----
clamav-0.98.4.tar.gz
clamav-0.98.4.tar.gz.sig
New:
----
clamav-0.98.5.tar.gz
clamav-0.98.5.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clamav.spec ++++++
--- /var/tmp/diff_new_pack.iRx4st/_old 2014-11-28 08:44:39.000000000 +0100
+++ /var/tmp/diff_new_pack.iRx4st/_new 2014-11-28 08:44:39.000000000 +0100
@@ -49,7 +49,7 @@
Summary: Antivirus Toolkit
License: GPL-2.0
Group: Productivity/Security
-Version: 0.98.4
+Version: 0.98.5
Release: 0
Url: http://www.clamav.net
Requires: latex2html-pngicons
++++++ clamav-0.98.4.tar.gz -> clamav-0.98.5.tar.gz ++++++
/work/SRC/openSUSE:Factory/clamav/clamav-0.98.4.tar.gz /work/SRC/openSUSE:Factory/.clamav.new/clamav-0.98.5.tar.gz differ: char 5, line 1
++++++ clamav-updateclamconf ++++++
--- /var/tmp/diff_new_pack.iRx4st/_old 2014-11-28 08:44:39.000000000 +0100
+++ /var/tmp/diff_new_pack.iRx4st/_new 2014-11-28 08:44:39.000000000 +0100
@@ -56,25 +56,28 @@
pass++
}
# collect options from the first file
-pass == 1 && $0 ~ /^[[:space:]]*[^#]/ {
+pass == 1 && $0 ~ /^[[:space:]]*#?[^[:space:]]/ {
if (NF == 1) {
$2 = "yes"
}
- if (!($1 in options)) {
- options[$1] = $0
+ # copy $1, so that sub() doesn't modify $0
+ o = $1
+ sub("^#", "", o)
+ if (!(o in options)) {
+ options[o] = $0
}
}
# merge options into the content of the second file
pass == 2 {
# copy $1, so that sub() doesn't modify $0
o = $1
- sub("^#", "", o)
+ sub("^[[:space:]]*#", "", o)
if (o in options) {
- if (o == "NotifyClamd" && options[o] ~ / yes$/) {
- sub("^#", "")
- options[o] = $0
+ if (options[o] ~ /^[[:space:]]*#/ && $0 ~ /^[[:space:]]*#/) {
+ print
+ } else {
+ print options[o]
}
- print options[o]
delete options[o]
} else {
print
@@ -85,7 +88,7 @@
for (o in options) {
print "\n# These options weren't found in the new config file"
for (o in options) {
- print "# " o, options[o]
+ print "# " options[o]
}
break
}
--
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 libjpeg-turbo for openSUSE:Factory checked in at 2014-11-28 08:44:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libjpeg-turbo (Old)
and /work/SRC/openSUSE:Factory/.libjpeg-turbo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libjpeg-turbo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libjpeg-turbo/libjpeg-turbo.changes 2014-10-18 09:08:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libjpeg-turbo.new/libjpeg-turbo.changes 2014-11-28 08:44:31.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Nov 27 09:50:00 UTC 2014 - pgajdos(a)suse.com
+
+- security update CVE-2014-9092 [bnc#906761]
+ * added libjpeg-turbo-CVE-2014-9092.patch
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/libjpeg-turbo/libjpeg62-turbo.changes 2014-10-07 18:23:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libjpeg-turbo.new/libjpeg62-turbo.changes 2014-11-28 08:44:31.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Nov 27 09:49:28 UTC 2014 - pgajdos(a)suse.com
+
+- security update CVE-2014-9092 [bnc#906761]
+ * added libjpeg-turbo-CVE-2014-9092.patch
+
+-------------------------------------------------------------------
New:
----
libjpeg-turbo-CVE-2014-9092.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libjpeg-turbo.spec ++++++
--- /var/tmp/diff_new_pack.81YQGe/_old 2014-11-28 08:44:32.000000000 +0100
+++ /var/tmp/diff_new_pack.81YQGe/_new 2014-11-28 08:44:32.000000000 +0100
@@ -38,6 +38,7 @@
Patch0: libjpeg-turbo-1.3.0-int32.patch
Patch1: libjpeg-turbo-1.3.0-tiff-ojpeg.patch
Patch2: libjpeg-ocloexec.patch
+Patch3: libjpeg-turbo-CVE-2014-9092.patch
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: yasm
@@ -106,6 +107,7 @@
%patch0
%patch1
%patch2
+%patch3
%build
autoreconf -fiv
++++++ libjpeg62-turbo.spec ++++++
--- /var/tmp/diff_new_pack.81YQGe/_old 2014-11-28 08:44:32.000000000 +0100
+++ /var/tmp/diff_new_pack.81YQGe/_new 2014-11-28 08:44:32.000000000 +0100
@@ -34,6 +34,7 @@
Patch0: libjpeg-turbo-1.3.0-int32.patch
Patch1: libjpeg-turbo-1.3.0-tiff-ojpeg.patch
Patch2: libjpeg-ocloexec.patch
+Patch3: libjpeg-turbo-CVE-2014-9092.patch
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: yasm
@@ -87,6 +88,7 @@
%patch0
%patch1
%patch2
+%patch3
%build
autoreconf -fiv
++++++ libjpeg-turbo-CVE-2014-9092.patch ++++++
Index: jchuff.c
===================================================================
--- jchuff.c.orig 2012-06-30 01:52:08.000000000 +0200
+++ jchuff.c 2014-11-24 13:52:20.214638106 +0100
@@ -392,7 +392,7 @@
#endif
-#define BUFSIZE (DCTSIZE2 * 2)
+#define BUFSIZE (DCTSIZE2 * 4)
#define LOAD_BUFFER() { \
if (state->free_in_buffer < BUFSIZE) { \
--
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 pesign for openSUSE:Factory checked in at 2014-11-28 08:44:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pesign (Old)
and /work/SRC/openSUSE:Factory/.pesign.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pesign"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pesign/pesign.changes 2014-11-12 00:20:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.pesign.new/pesign.changes 2014-11-28 08:44:30.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Nov 26 09:46:50 UTC 2014 - glin(a)suse.com
+
+- Add pesign-fix-import-sig-check.patch to fix the signature size
+ check while importing a signature
+- Amend the spec file with spec-cleaner
+
+-------------------------------------------------------------------
New:
----
pesign-fix-import-sig-check.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pesign.spec ++++++
--- /var/tmp/diff_new_pack.dQVlea/_old 2014-11-28 08:44:31.000000000 +0100
+++ /var/tmp/diff_new_pack.dQVlea/_new 2014-11-28 08:44:31.000000000 +0100
@@ -38,14 +38,16 @@
Patch6: pesign-fix-authvar-write-loop.patch
# PATCH-FIX-SUSE pesign-install-supplementary-programs.patch glin(a)suse.com -- Install the supplementary programs
Patch7: pesign-install-supplementary-programs.patch
+# PATCH-FIX-UPSTREAM pesign-fix-import-sig-check.patch glin(a)suse.com -- Fix the signature size check while importing a signature
+Patch8: pesign-fix-import-sig-check.patch
BuildRequires: efivar-devel
BuildRequires: libuuid-devel
BuildRequires: mozilla-nss-devel
BuildRequires: pkg-config
BuildRequires: popt-devel
BuildRequires: pkgconfig(systemd)
+Requires(pre): pwdutils
%{?systemd_requires}
-PreReq: pwdutils
ExclusiveArch: ia64 %ix86 x86_64 aarch64
%description
@@ -67,24 +69,25 @@
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
%build
-make OPTFLAGS="$RPM_OPT_FLAGS"
+make %{?_smp_mflags} OPTFLAGS="%{optflags}"
%install
make INSTALLROOT=%{buildroot} PREFIX=/usr DOCDIR=/share/doc/packages install
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/pesign
+mkdir -p %{buildroot}%{_localstatedir}/lib/pesign
-mkdir -p $RPM_BUILD_ROOT%{_sbindir}
+mkdir -p %{buildroot}%{_sbindir}
make INSTALLROOT=%{buildroot} UNITDIR=%{_unitdir} install_systemd
# there's some stuff that's not really meant to be shipped yet
-rm -rf %{buildroot}/boot %{buildroot}/usr/include
+rm -rf %{buildroot}/boot %{buildroot}%{_prefix}/include
rm -rf %{buildroot}%{_libdir}/libdpe*
%pre
getent group pesign >/dev/null || groupadd -r pesign
-getent passwd pesign >/dev/null || useradd -r -g pesign -d /var/lib/pesign -s /bin/false -c "PE-COFF signing daemon" pesign
+getent passwd pesign >/dev/null || useradd -r -g pesign -d %{_localstatedir}/lib/pesign -s /bin/false -c "PE-COFF signing daemon" pesign
%service_add_pre pesign.service
%preun
@@ -92,7 +95,7 @@
%post
%service_add_post pesign.service
-systemd-tmpfiles --create /usr/lib/tmpfiles.d/pesign.conf
+systemd-tmpfiles --create %{_libexecdir}/tmpfiles.d/pesign.conf
%postun
%service_del_preun pesign.service
@@ -111,9 +114,9 @@
%{_sysconfdir}/pki/
%config %{_sysconfdir}/rpm/macros.pesign
%{_mandir}/man?/*
-/var/lib/pesign
+%{_localstatedir}/lib/pesign
%{_unitdir}/pesign.service
-/usr/lib/tmpfiles.d/pesign.conf
+%{_libexecdir}/tmpfiles.d/pesign.conf
%dir %attr(0775,pesign,pesign) %{_sysconfdir}/pki/pesign
%ghost %dir %attr(0770,pesign,pesign) /run/%{name}
%dir %attr(0770,pesign,pesign) %{_localstatedir}/lib/%{name}
++++++ pesign-fix-import-sig-check.patch ++++++
>From b5f822be1da9c8e4f6e04286b4b7ab73165478ab Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Tue, 25 Nov 2014 15:28:40 +0800
Subject: [PATCH] Correct the signature size check
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
src/actions.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/actions.c b/src/actions.c
index 74a34e3..44c9675 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -416,10 +416,9 @@ check_signature_space(pesign_context *ctx)
ssize_t available = available_cert_space(ctx->outpe);
ssize_t target = ctx->cms_ctx->newsig.len + sizeof (win_certificate);
- if (available == target)
- return;
+ target += ALIGNMENT_PADDING(target, 8);
- if (target + 8 > available)
+ if (available >= target)
return;
fprintf(stderr, "Could not add new signature: insufficient space.\n");
--
2.1.2
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0