openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
August 2016
- 1 participants
- 1588 discussions
Hello community,
here is the log from the commit of package ktp-auth-handler for openSUSE:Factory checked in at 2016-08-29 14:45:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-auth-handler (Old)
and /work/SRC/openSUSE:Factory/.ktp-auth-handler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-auth-handler"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-auth-handler/ktp-auth-handler.changes 2016-07-15 12:43:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ktp-auth-handler.new/ktp-auth-handler.changes 2016-08-29 14:45:17.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:26:09 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:27:41 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
ktp-auth-handler-16.04.3.tar.xz
New:
----
ktp-auth-handler-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-auth-handler.spec ++++++
--- /var/tmp/diff_new_pack.CnxJXH/_old 2016-08-29 14:45:18.000000000 +0200
+++ /var/tmp/diff_new_pack.CnxJXH/_new 2016-08-29 14:45:18.000000000 +0200
@@ -17,7 +17,7 @@
Name: ktp-auth-handler
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Telepathy auth handler
License: LGPL-2.1+
++++++ ktp-auth-handler-16.04.3.tar.xz -> ktp-auth-handler-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-auth-handler-16.04.3/CMakeLists.txt new/ktp-auth-handler-16.08.0/CMakeLists.txt
--- old/ktp-auth-handler-16.04.3/CMakeLists.txt 2016-07-02 18:11:20.000000000 +0200
+++ new/ktp-auth-handler-16.08.0/CMakeLists.txt 2016-08-10 01:24:35.000000000 +0200
@@ -2,8 +2,8 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "16")
-set(KDE_APPLICATIONS_VERSION_MINOR "04")
-set(KDE_APPLICATIONS_VERSION_MICRO "3")
+set(KDE_APPLICATIONS_VERSION_MINOR "08")
+set(KDE_APPLICATIONS_VERSION_MICRO "0")
set(KTP_AUTH_HANDLER_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package ktp-approver for openSUSE:Factory checked in at 2016-08-29 14:44:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-approver (Old)
and /work/SRC/openSUSE:Factory/.ktp-approver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-approver"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-approver/ktp-approver.changes 2016-07-15 12:42:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ktp-approver.new/ktp-approver.changes 2016-08-29 14:45:02.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:26:02 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:27:17 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
ktp-approver-16.04.3.tar.xz
New:
----
ktp-approver-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-approver.spec ++++++
--- /var/tmp/diff_new_pack.BV5BsO/_old 2016-08-29 14:45:03.000000000 +0200
+++ /var/tmp/diff_new_pack.BV5BsO/_new 2016-08-29 14:45:03.000000000 +0200
@@ -17,7 +17,7 @@
Name: ktp-approver
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: KDE Channel Approver for Telepathy
License: LGPL-2.1+
++++++ ktp-approver-16.04.3.tar.xz -> ktp-approver-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-approver-16.04.3/CMakeLists.txt new/ktp-approver-16.08.0/CMakeLists.txt
--- old/ktp-approver-16.04.3/CMakeLists.txt 2016-07-02 18:11:05.000000000 +0200
+++ new/ktp-approver-16.08.0/CMakeLists.txt 2016-08-10 01:24:19.000000000 +0200
@@ -3,8 +3,8 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "16")
-set (KDE_APPLICATIONS_VERSION_MINOR "04")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
+set (KDE_APPLICATIONS_VERSION_MINOR "08")
+set (KDE_APPLICATIONS_VERSION_MICRO "0")
set(KTP_APPROVER_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-approver-16.04.3/src/ktp_approver.desktop new/ktp-approver-16.08.0/src/ktp_approver.desktop
--- old/ktp-approver-16.04.3/src/ktp_approver.desktop 2016-07-02 18:11:05.000000000 +0200
+++ new/ktp-approver-16.08.0/src/ktp_approver.desktop 2016-08-10 01:24:19.000000000 +0200
@@ -91,7 +91,7 @@
Comment[zh_TW]=顯示進來的即時訊息與呼叫要求通知,並允許您開啟相關的處理器來回答。
Type=Service
X-KDE-ServiceTypes=KDEDModule
-X-KDE-Library=ktp_approver
+X-KDE-Library=kded_ktp_approver
X-KDE-DBus-ModuleName=ktp_approver
X-KDE-Kded-autoload=false
X-KDE-Kded-load-on-demand=true
1
0
Hello community,
here is the log from the commit of package ktp-accounts-kcm for openSUSE:Factory checked in at 2016-08-29 14:44:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-accounts-kcm (Old)
and /work/SRC/openSUSE:Factory/.ktp-accounts-kcm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-accounts-kcm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-accounts-kcm/ktp-accounts-kcm.changes 2016-07-15 12:42:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ktp-accounts-kcm.new/ktp-accounts-kcm.changes 2016-08-29 14:44:46.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:25:56 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:26:53 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
ktp-accounts-kcm-16.04.3.tar.xz
New:
----
ktp-accounts-kcm-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-accounts-kcm.spec ++++++
--- /var/tmp/diff_new_pack.VA2VY9/_old 2016-08-29 14:44:47.000000000 +0200
+++ /var/tmp/diff_new_pack.VA2VY9/_new 2016-08-29 14:44:47.000000000 +0200
@@ -17,7 +17,7 @@
Name: ktp-accounts-kcm
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: KCM Module for configuring Telepathy Instant Messaging Accounts
License: LGPL-2.1+
++++++ ktp-accounts-kcm-16.04.3.tar.xz -> ktp-accounts-kcm-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/CMakeLists.txt new/ktp-accounts-kcm-16.08.0/CMakeLists.txt
--- old/ktp-accounts-kcm-16.04.3/CMakeLists.txt 2016-07-02 18:10:50.000000000 +0200
+++ new/ktp-accounts-kcm-16.08.0/CMakeLists.txt 2016-08-10 01:23:58.000000000 +0200
@@ -11,8 +11,8 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "16")
-set (KDE_APPLICATIONS_VERSION_MINOR "04")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
+set (KDE_APPLICATIONS_VERSION_MINOR "08")
+set (KDE_APPLICATIONS_VERSION_MICRO "0")
set(KTP_ACCOUNTS_KCM_SONUMBER "9")
set(KTP_ACCOUNTS_KCM_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/data/kaccounts/ktp-haze-skypeweb-im.service.in new/ktp-accounts-kcm-16.08.0/data/kaccounts/ktp-haze-skypeweb-im.service.in
--- old/ktp-accounts-kcm-16.04.3/data/kaccounts/ktp-haze-skypeweb-im.service.in 1970-01-01 01:00:00.000000000 +0100
+++ new/ktp-accounts-kcm-16.08.0/data/kaccounts/ktp-haze-skypeweb-im.service.in 2016-08-10 01:23:58.000000000 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<service id="ktp-haze-skypeweb-im">
+ <type>IM</type>
+ <!-- ICQ Chat - Service name being displayed as a checkbox label to enable/disable this service -->
+ <_name>Chat</_name>
+ <icon>im-skype</icon>
+ <provider>ktp-haze-skypeweb</provider>
+ <translations>kaccounts-providers</translations>
+
+ <template>
+ <group name="telepathy">
+ <setting name="manager">haze</setting>
+ <setting name="protocol">skypeweb</setting>
+ </group>
+ <group name="auth">
+ <setting name="method">password</setting>
+ <setting name="mechanism">password</setting>
+ </group>
+ </template>
+</service>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/data/kaccounts/ktp-haze-skypeweb.provider.in new/ktp-accounts-kcm-16.08.0/data/kaccounts/ktp-haze-skypeweb.provider.in
--- old/ktp-accounts-kcm-16.04.3/data/kaccounts/ktp-haze-skypeweb.provider.in 1970-01-01 01:00:00.000000000 +0100
+++ new/ktp-accounts-kcm-16.08.0/data/kaccounts/ktp-haze-skypeweb.provider.in 2016-08-10 01:23:58.000000000 +0200
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<provider id="ktp-haze-skypeweb">
+ <_name>Skype</_name>
+ <icon>im-skype</icon>
+ <!-- Tooltip text appearing over the button to create this type of account -->
+ <_description>Chat account in the Skype network</_description>
+ <translations>kaccounts-providers</translations>
+ <plugin>ktpaccountskcm_plugin_kaccounts</plugin>
+</provider>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/plugins/haze/CMakeLists.txt new/ktp-accounts-kcm-16.08.0/plugins/haze/CMakeLists.txt
--- old/ktp-accounts-kcm-16.04.3/plugins/haze/CMakeLists.txt 2016-07-02 18:10:50.000000000 +0200
+++ new/ktp-accounts-kcm-16.08.0/plugins/haze/CMakeLists.txt 2016-08-10 01:23:58.000000000 +0200
@@ -33,6 +33,8 @@
haze-sipe-account.cpp
sipe-main-options-widget.cpp
sipe-advanced-settings-widget.cpp
+ skypeweb-options-widget.cpp
+ haze-skypeweb-account.cpp
)
ki18n_wrap_ui (ktpaccountskcm_plugin_haze_SRCS
@@ -52,6 +54,7 @@
steam-main-options-widget.ui
sipe-main-options-widget.ui
sipe-advanced-settings-widget.ui
+ skypeweb-options-widget.ui
)
add_library (ktpaccountskcm_plugin_haze MODULE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/plugins/haze/haze-account-ui-plugin.cpp new/ktp-accounts-kcm-16.08.0/plugins/haze/haze-account-ui-plugin.cpp
--- old/ktp-accounts-kcm-16.04.3/plugins/haze/haze-account-ui-plugin.cpp 2016-07-02 18:10:50.000000000 +0200
+++ new/ktp-accounts-kcm-16.08.0/plugins/haze/haze-account-ui-plugin.cpp 2016-08-10 01:23:58.000000000 +0200
@@ -21,6 +21,7 @@
#include "haze-account-ui-plugin.h"
#include "haze-icq-account.h"
+#include "haze-skypeweb-account.h"
#include "haze-myspaceim-account-ui.h"
#include "haze-skype-account-ui.h"
#include "haze-yahoo-account.h"
@@ -47,6 +48,7 @@
registerProvidedProtocol(QLatin1String("haze"), QLatin1String("groupwise"));
registerProvidedProtocol(QLatin1String("haze"), QLatin1String("steam-mobile"));
registerProvidedProtocol(QLatin1String("haze"), QLatin1String("sipe"));
+ registerProvidedProtocol(QLatin1String("haze"), QLatin1String("skypeweb"));
}
HazeAccountUiPlugin::~HazeAccountUiPlugin()
@@ -60,6 +62,8 @@
if (connectionManager == QLatin1String("haze")) {
if (protocol == QLatin1String("icq")) {
return new HazeIcqAccountUi;
+ } else if (protocol == QLatin1String("skypeweb")) {
+ return new HazeSkypeWebAccountUi;
} else if (protocol == QLatin1String("myspace")) {
return new HazeMySpaceIMAccountUi;
} else if (protocol == QLatin1String("bigbrownchunx-skype-dbus")) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/plugins/haze/haze-skypeweb-account.cpp new/ktp-accounts-kcm-16.08.0/plugins/haze/haze-skypeweb-account.cpp
--- old/ktp-accounts-kcm-16.04.3/plugins/haze/haze-skypeweb-account.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/ktp-accounts-kcm-16.08.0/plugins/haze/haze-skypeweb-account.cpp 2016-08-10 01:23:58.000000000 +0200
@@ -0,0 +1,52 @@
+/*
+ * This file is part of telepathy-accounts-kcm
+ *
+ * Copyright (C) 2016 Björn Bidar <theodorstormgrade(a)gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "haze-skypeweb-account.h"
+
+#include "skypeweb-options-widget.h"
+
+#include <KCMTelepathyAccounts/AbstractAccountParametersWidget>
+
+HazeSkypeWebAccountUi::HazeSkypeWebAccountUi(QObject *parent)
+ : AbstractAccountUi(parent)
+{
+ // Register supported parameters
+ registerSupportedParameter(QLatin1String("account"), QVariant::String);
+ registerSupportedParameter(QLatin1String("password"), QVariant::String);
+
+}
+
+HazeSkypeWebAccountUi::~HazeSkypeWebAccountUi()
+{
+}
+
+AbstractAccountParametersWidget *HazeSkypeWebAccountUi::mainOptionsWidget(
+ ParameterEditModel *model,
+ QWidget *parent) const
+{
+ return new SkypeWebOptionsWidget(model, parent);
+}
+
+bool HazeSkypeWebAccountUi::hasAdvancedOptionsWidget() const
+{
+ return false;
+}
+
+#include "haze-skypeweb-account.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/plugins/haze/haze-skypeweb-account.h new/ktp-accounts-kcm-16.08.0/plugins/haze/haze-skypeweb-account.h
--- old/ktp-accounts-kcm-16.04.3/plugins/haze/haze-skypeweb-account.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ktp-accounts-kcm-16.08.0/plugins/haze/haze-skypeweb-account.h 2016-08-10 01:23:58.000000000 +0200
@@ -0,0 +1,43 @@
+/*
+ * This file is part of telepathy-accounts-kcm
+ *
+ * Copyright (C) 2016 Björn Bidar <theodorstormgrade(a)gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef KCMTELEPATHYACCOUNTS_PLUGIN_HAZE_SKYPEWEB_ACCOUNT_H
+#define KCMTELEPATHYACCOUNTS_PLUGIN_HAZE_SKYPEWEB_ACCOUNT_H
+
+#include <KCMTelepathyAccounts/AbstractAccountUi>
+
+class HazeSkypeWebAccountUi : public AbstractAccountUi
+{
+ Q_OBJECT
+
+public:
+ explicit HazeSkypeWebAccountUi(QObject *parent = 0);
+ virtual ~HazeSkypeWebAccountUi();
+
+ virtual AbstractAccountParametersWidget
+ *mainOptionsWidget(ParameterEditModel *model,
+ QWidget *parent = 0) const;
+ virtual bool hasAdvancedOptionsWidget() const;
+
+private:
+ Q_DISABLE_COPY(HazeSkypeWebAccountUi);
+};
+
+#endif // header guard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/plugins/haze/skypeweb-options-widget.cpp new/ktp-accounts-kcm-16.08.0/plugins/haze/skypeweb-options-widget.cpp
--- old/ktp-accounts-kcm-16.04.3/plugins/haze/skypeweb-options-widget.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/ktp-accounts-kcm-16.08.0/plugins/haze/skypeweb-options-widget.cpp 2016-08-10 01:23:58.000000000 +0200
@@ -0,0 +1,46 @@
+/*
+ * This file is part of telepathy-accounts-kcm
+ *
+ * Copyright (C) 2016 Björn Bidar <theodorstormgrade(a)gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "skypeweb-options-widget.h"
+
+SkypeWebOptionsWidget::SkypeWebOptionsWidget(ParameterEditModel *model,
+ QWidget *parent)
+ : AbstractAccountParametersWidget(model, parent)
+{
+ // Set up the UI.
+ m_ui = new Ui::SkypeWebOptionsWidget;
+ m_ui->setupUi(this);
+
+ handleParameter(QLatin1String("account"), QVariant::String, m_ui->accountLineEdit, m_ui->accountLabel);
+ handleParameter(QLatin1String("password"), QVariant::String, m_ui->passwordLineEdit, m_ui->passwordLabel);
+ QTimer::singleShot(0, m_ui->accountLineEdit, SLOT(setFocus()));
+}
+
+SkypeWebOptionsWidget::~SkypeWebOptionsWidget()
+{
+ delete m_ui;
+}
+
+QString SkypeWebOptionsWidget::defaultDisplayName() const
+{
+ return m_ui->accountLineEdit->text();
+}
+
+#include "skypeweb-options-widget.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/plugins/haze/skypeweb-options-widget.h new/ktp-accounts-kcm-16.08.0/plugins/haze/skypeweb-options-widget.h
--- old/ktp-accounts-kcm-16.04.3/plugins/haze/skypeweb-options-widget.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ktp-accounts-kcm-16.08.0/plugins/haze/skypeweb-options-widget.h 2016-08-10 01:23:58.000000000 +0200
@@ -0,0 +1,42 @@
+/*
+ * This file is part of telepathy-accounts-kcm
+ *
+ * Copyright (C) 2016 Björn Bidar <theodorstormgrade(a)gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef KCMTELEPATHYACCOUNTS_PLUGIN_HAZE_SKYPEWEB_ACCOUNT_PARAMETERS_WIDGET_H
+#define KCMTELEPATHYACCOUNTS_PLUGIN_HAZE_SKYPEWEB_ACCOUNT_PARAMETERS_WIDGET_H
+
+#include "ui_skypeweb-options-widget.h"
+
+#include <KCMTelepathyAccounts/AbstractAccountParametersWidget>
+
+class SkypeWebOptionsWidget : public AbstractAccountParametersWidget
+{
+ Q_OBJECT
+public:
+ explicit SkypeWebOptionsWidget(ParameterEditModel *model,
+ QWidget *parent = 0);
+ virtual ~SkypeWebOptionsWidget();
+
+ virtual QString defaultDisplayName() const;
+private:
+ Q_DISABLE_COPY(SkypeWebOptionsWidget);
+ Ui::SkypeWebOptionsWidget *m_ui;
+};
+
+#endif // header guard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/plugins/haze/skypeweb-options-widget.ui new/ktp-accounts-kcm-16.08.0/plugins/haze/skypeweb-options-widget.ui
--- old/ktp-accounts-kcm-16.04.3/plugins/haze/skypeweb-options-widget.ui 1970-01-01 01:00:00.000000000 +0100
+++ new/ktp-accounts-kcm-16.08.0/plugins/haze/skypeweb-options-widget.ui 2016-08-10 01:23:58.000000000 +0200
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SkypeWebOptionsWidget</class>
+ <widget class="QWidget" name="SkypeWebOptionsWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>74</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle">
+ <string>Account Preferences</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMinimumSize</enum>
+ </property>
+ <item>
+ <layout class="QFormLayout" name="formLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMinimumSize</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="accountLabel">
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="accountLineEdit"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="passwordLabel">
+ <property name="text">
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="passwordLineEdit">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets/>
+ <resources/>
+ <connections/>
+</ui>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-16.04.3/src/KCMTelepathyAccounts/dictionary.cpp new/ktp-accounts-kcm-16.08.0/src/KCMTelepathyAccounts/dictionary.cpp
--- old/ktp-accounts-kcm-16.04.3/src/KCMTelepathyAccounts/dictionary.cpp 2016-07-02 18:10:50.000000000 +0200
+++ new/ktp-accounts-kcm-16.08.0/src/KCMTelepathyAccounts/dictionary.cpp 2016-08-10 01:23:58.000000000 +0200
@@ -60,6 +60,7 @@
m_strings.insert(QLatin1String("google-talk"), i18n("Google Talk"));
m_strings.insert(QLatin1String("groupwise"), i18n("Novell Groupwise"));
m_strings.insert(QLatin1String("icq"), i18n("ICQ"));
+ m_strings.insert(QLatin1String("skypeweb"), i18n("Skype"));
m_strings.insert(QLatin1String("irc"), i18n("Internet Relay Chat"));
m_strings.insert(QLatin1String("jabber"), i18n("Jabber/XMPP"));
m_strings.insert(QLatin1String("local-xmpp"), i18n("Bonjour/Salut"));
1
0
Hello community,
here is the log from the commit of package ktnef for openSUSE:Factory checked in at 2016-08-29 14:44:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktnef (Old)
and /work/SRC/openSUSE:Factory/.ktnef.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktnef"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktnef/ktnef.changes 2016-07-21 07:50:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ktnef.new/ktnef.changes 2016-08-29 14:44:32.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:25:38 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:26:04 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
ktnef-16.04.3.tar.xz
New:
----
ktnef-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktnef.spec ++++++
--- /var/tmp/diff_new_pack.zjl0M0/_old 2016-08-29 14:44:33.000000000 +0200
+++ /var/tmp/diff_new_pack.zjl0M0/_new 2016-08-29 14:44:33.000000000 +0200
@@ -17,7 +17,7 @@
Name: ktnef
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: TNEF support
++++++ ktnef-16.04.3.tar.xz -> ktnef-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktnef-16.04.3/CMakeLists.txt new/ktnef-16.08.0/CMakeLists.txt
--- old/ktnef-16.04.3/CMakeLists.txt 2016-06-15 06:40:47.000000000 +0200
+++ new/ktnef-16.08.0/CMakeLists.txt 2016-08-06 20:10:10.000000000 +0200
@@ -3,7 +3,8 @@
project(KTnef)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -18,13 +19,11 @@
include(ECMQtDeclareLoggingCategory)
-
-# FIXME: Do we want the same versions in kdepimlibs and kf5?
-set(KF5_VERSION "5.19.0")
-set(KTNEF_LIB_VERSION "5.2.3")
-set(CALENDARCORE_LIB_VERSION "5.2.0")
-set(CALENDARUTILS_LIB_VERSION "5.2.0")
-set(KCONTACTS_LIB_VERSION "5.2.0")
+set(PIM_VERSION "5.3.0")
+set(KTNEF_LIB_VERSION ${PIM_VERSION})
+set(CALENDARCORE_LIB_VERSION "5.3.0")
+set(CALENDARUTILS_LIB_VERSION "5.3.0")
+set(KCONTACTS_LIB_VERSION "5.3.0")
ecm_setup_version(${KTNEF_LIB_VERSION} VARIABLE_PREFIX KTNEF
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/ktnef_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5TnefConfigVersion.cmake"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktnef-16.04.3/src/formatter.cpp new/ktnef-16.08.0/src/formatter.cpp
--- old/ktnef-16.04.3/src/formatter.cpp 2016-06-15 06:40:47.000000000 +0200
+++ new/ktnef-16.08.0/src/formatter.cpp 2016-08-06 20:10:10.000000000 +0200
@@ -517,8 +517,6 @@
}
// Compose return string
- // KDAB_TODO: Interesting, without the explicit QString the toString call is
- // reported to be ambigious with toString( const Incidence::Ptr & ).
const QString iCal = calFormat.toString(cal, QString());
if (!iCal.isEmpty()) {
// This was an iCal
@@ -535,11 +533,10 @@
KCalUtils::InvitationFormatterHelper *h)
{
const QString vPart = msTNEFToVPart(tnef);
- QString iCal = KCalUtils::IncidenceFormatter::formatICalInvitation(vPart, cal, h, true);
+ QString iCal = KCalUtils::IncidenceFormatter::formatICalInvitation(vPart, cal, h);
if (!iCal.isEmpty()) {
return iCal;
} else {
return vPart;
}
}
-
1
0
Hello community,
here is the log from the commit of package kruler for openSUSE:Factory checked in at 2016-08-29 14:44:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kruler (Old)
and /work/SRC/openSUSE:Factory/.kruler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kruler"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kruler/kruler.changes 2016-07-21 07:48:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kruler.new/kruler.changes 2016-08-29 14:44:21.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:23:45 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:21:46 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kruler-16.04.3.tar.xz
New:
----
kruler-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kruler.spec ++++++
--- /var/tmp/diff_new_pack.X6lQ6O/_old 2016-08-29 14:44:22.000000000 +0200
+++ /var/tmp/diff_new_pack.X6lQ6O/_new 2016-08-29 14:44:22.000000000 +0200
@@ -31,7 +31,7 @@
License: GPL-2.0+
Group: Productivity/Graphics/Other
Url: http://www.kde.org
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: %{name}-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kruler-16.04.3.tar.xz -> kruler-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kruler-16.04.3/cfg_advanced.ui new/kruler-16.08.0/cfg_advanced.ui
--- old/kruler-16.04.3/cfg_advanced.ui 2016-04-16 11:54:35.000000000 +0200
+++ new/kruler-16.08.0/cfg_advanced.ui 2016-07-01 15:58:50.000000000 +0200
@@ -27,6 +27,16 @@
</property>
</widget>
</item>
+ <item row="2" column="1" >
+ <widget class="QCheckBox" name="kcfg_AlwaysOnTop" >
+ <property name="toolTip" >
+ <string>If this option is enabled, the window is being kept above other windows.</string>
+ </property>
+ <property name="text" >
+ <string>Always on top</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<resources/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kruler-16.04.3/doc/index.docbook new/kruler-16.08.0/doc/index.docbook
--- old/kruler-16.04.3/doc/index.docbook 2016-04-16 11:54:35.000000000 +0200
+++ new/kruler-16.08.0/doc/index.docbook 2016-07-01 15:58:50.000000000 +0200
@@ -1,6 +1,5 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
- <!ENTITY kappname "&kruler;">
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
<!ENTITY % addindex "IGNORE">
]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kruler-16.04.3/klineal.cpp new/kruler-16.08.0/klineal.cpp
--- old/kruler-16.04.3/klineal.cpp 2016-04-16 11:54:35.000000000 +0200
+++ new/kruler-16.08.0/klineal.cpp 2016-07-01 15:58:50.000000000 +0200
@@ -98,7 +98,6 @@
KWindowSystem::setType( winId(), NET::Override ); // or NET::Normal
KWindowSystem::setState( winId(), NET::KeepAbove );
- setWindowFlags( Qt::FramelessWindowHint );
setWindowTitle( i18nc( "@title:window", "KRuler" ) );
setMinimumSize( 60, 60 );
@@ -126,6 +125,7 @@
mLeftToRight = RulerSettings::self()->leftToRight();
mOffset = RulerSettings::self()->offset();
mRelativeScale = RulerSettings::self()->relativeScale();
+ mAlwaysOnTopLayer = RulerSettings::self()->alwaysOnTop();
mLabel = new QAutoSizeLabel( this );
mLabel->setGeometry( 0, height() - 12, 32, 12 );
@@ -241,6 +241,9 @@
mLastClickPos = geometry().topLeft() + QPoint( width() / 2, height() / 2 );
+ setWindowFlags( mAlwaysOnTopLayer ? Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint
+ : Qt::FramelessWindowHint );
+
hideLabel();
setOrientation( mOrientation );
@@ -631,7 +634,7 @@
dialog->addPage( appearanceConfigWidget, i18n( "Appearance" ), QStringLiteral( "preferences-desktop-default-applications" ) );
#ifdef KRULER_HAVE_X11
- // Advanced page only contains "Native moving" setting, disable when not running on X11
+ // Advanced page only contains the "Native moving" and "Always on top" settings, disable when not running on X11
if ( QX11Info::isPlatformX11() ) {
Ui::ConfigAdvanced advancedConfig;
QWidget *advancedConfigWidget = new QWidget( dialog );
@@ -649,8 +652,12 @@
{
mColor = RulerSettings::self()->bgColor();
mScaleFont = RulerSettings::self()->scaleFont();
+ mAlwaysOnTopLayer = RulerSettings::self()->alwaysOnTop();
saveSettings();
+ setWindowFlags( mAlwaysOnTopLayer ? Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint
+ : Qt::FramelessWindowHint );
+
if ( RulerSettings::self()->trayIcon() ) {
if ( !mTrayIcon ) {
createSystemTray();
@@ -665,6 +672,7 @@
mCloseAction->setVisible( false );
}
}
+ show();
repaint();
}
@@ -693,6 +701,7 @@
RulerSettings::self()->setLeftToRight( mLeftToRight );
RulerSettings::self()->setOffset( mOffset );
RulerSettings::self()->setRelativeScale( mRelativeScale );
+ RulerSettings::self()->setAlwaysOnTop( mAlwaysOnTopLayer );
RulerSettings::self()->save();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kruler-16.04.3/klineal.h new/kruler-16.08.0/klineal.h
--- old/kruler-16.04.3/klineal.h 2016-04-16 11:54:35.000000000 +0200
+++ new/kruler-16.08.0/klineal.h 2016-07-01 15:58:50.000000000 +0200
@@ -90,6 +90,7 @@
QCursor mSouthCursor;
QCursor mDragCursor;
QFont mScaleFont;
+ bool mAlwaysOnTopLayer;
bool mClicked;
bool mLeftToRight;
int mOffset;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kruler-16.04.3/kruler.kcfg new/kruler-16.08.0/kruler.kcfg
--- old/kruler-16.04.3/kruler.kcfg 2016-04-16 11:54:35.000000000 +0200
+++ new/kruler-16.08.0/kruler.kcfg 2016-07-01 15:58:50.000000000 +0200
@@ -52,5 +52,9 @@
<label>Is native moving (possibly wobbling windows) active</label>
<default>false</default>
</entry>
+ <entry name="AlwaysOnTop" type="Bool">
+ <label>Is always on top</label>
+ <default>true</default>
+ </entry>
</group>
</kcfg>
1
0
Hello community,
here is the log from the commit of package krfb for openSUSE:Factory checked in at 2016-08-29 14:44:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/krfb (Old)
and /work/SRC/openSUSE:Factory/.krfb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "krfb"
Changes:
--------
--- /work/SRC/openSUSE:Factory/krfb/krfb.changes 2016-07-21 07:48:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.krfb.new/krfb.changes 2016-08-29 14:44:09.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:23:31 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:21:13 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
krfb-16.04.3.tar.xz
New:
----
krfb-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ krfb.spec ++++++
--- /var/tmp/diff_new_pack.2KRybr/_old 2016-08-29 14:44:10.000000000 +0200
+++ /var/tmp/diff_new_pack.2KRybr/_new 2016-08-29 14:44:10.000000000 +0200
@@ -39,7 +39,7 @@
BuildRequires: pkgconfig(Qt5X11Extras)
BuildRequires: update-desktop-files
BuildRequires: oxygen-icon-theme-large
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Desktop Sharing
License: GPL-2.0+
++++++ krfb-16.04.3.tar.xz -> krfb-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krfb-16.04.3/framebuffers/qt/krfb_framebuffer_qt.json new/krfb-16.08.0/framebuffers/qt/krfb_framebuffer_qt.json
--- old/krfb-16.04.3/framebuffers/qt/krfb_framebuffer_qt.json 2016-04-12 16:08:43.000000000 +0200
+++ new/krfb-16.08.0/framebuffers/qt/krfb_framebuffer_qt.json 2016-01-23 11:35:57.000000000 +0100
@@ -6,7 +6,6 @@
"Description[ca]": "«Framebuffer» basat en Qt per al KRfb.",
"Description[cs]": "Framebuffer založený na Qt pro KRfb.",
"Description[de]": "Qt-basierter Framebuffer für KRfb",
- "Description[en_GB]": "Qt based Framebuffer for KRfb.",
"Description[es]": "Framebuffer basado en Qt para KRfb.",
"Description[fi]": "QT-perustainen Kehyspuskuri KRfb:lle",
"Description[gl]": "Framebuffer baseado en Qt para KRfb.",
@@ -26,7 +25,6 @@
"Description[uk]": "Заснований на Qt буфер кадрів для KRfb.",
"Description[x-test]": "xxQt based Framebuffer for KRfb.xx",
"Description[zh_CN]": "KRfb 的基于 Qt 的帧缓冲。",
- "Description[zh_TW]": "KRfb 的 Qt-based Framebuffer",
"EnabledByDefault": true,
"Id": "qt",
"License": "GPL",
@@ -36,7 +34,6 @@
"Name[ca]": "«Framebuffer» Qt per al KRfb.",
"Name[cs]": "Qt Framebuffer pro KRfb",
"Name[de]": "Qt-Framebuffer für KRfb",
- "Name[en_GB]": "Qt Framebuffer for KRfb",
"Name[es]": "Framebuffer de Qt para KRfb",
"Name[fi]": "QT-kehyspuskuri KRfb:lle",
"Name[gl]": "Framebuffer de Qt para KRfb",
@@ -56,7 +53,6 @@
"Name[uk]": "Буфер кадрів на Qt для KRfb",
"Name[x-test]": "xxQt Framebuffer for KRfbxx",
"Name[zh_CN]": "KRfb 的 Qt 帧缓冲",
- "Name[zh_TW]": "Krfb 的 Qt Framebuffer",
"ServiceTypes": [
"krfb/framebuffer"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krfb-16.04.3/framebuffers/x11/krfb_framebuffer_x11.json new/krfb-16.08.0/framebuffers/x11/krfb_framebuffer_x11.json
--- old/krfb-16.04.3/framebuffers/x11/krfb_framebuffer_x11.json 2016-04-12 16:08:43.000000000 +0200
+++ new/krfb-16.08.0/framebuffers/x11/krfb_framebuffer_x11.json 2016-01-23 11:35:57.000000000 +0100
@@ -6,7 +6,6 @@
"Description[ca]": "«Framebuffer» basat en XDamage/XShmQt del X11 per al KRfb.",
"Description[cs]": "Framebuffer založený na X11 XDamage/XShm pro KRfb.",
"Description[de]": "X11 XDamage/XShm-basierter Framebuffer für KRfb.",
- "Description[en_GB]": "X11 XDamage/XShm based Framebuffer for KRfb.",
"Description[es]": "Framebuffer basado en XDamage/XShm de X11 para KRfb.",
"Description[fi]": "X11 XDamage/XShm-perustainen kehyspuskui KRfb:lle.",
"Description[gl]": "Framebuffer baseado en Xll XDamage/Xshm para XRfb.",
@@ -26,7 +25,6 @@
"Description[uk]": "Заснований на XDamage/XShm X11 буфер кадрів для KRfb.",
"Description[x-test]": "xxX11 XDamage/XShm based Framebuffer for KRfb.xx",
"Description[zh_CN]": "KRfb 的基于 X11 XDamage/XShm 的帧缓冲。",
- "Description[zh_TW]": "KRfb 的 X11 XDamage/XShm based Framebuffer",
"EnabledByDefault": true,
"Id": "x11",
"License": "GPL",
@@ -35,7 +33,6 @@
"Name[ca]": "«Framebuffer» del X11 per al KRfb.",
"Name[cs]": "X11 Framebuffer pro KRfb",
"Name[de]": "X11-Framebuffer für KRfb",
- "Name[en_GB]": "X11 Framebuffer for KRfb",
"Name[es]": "Framebuffer X11 para KRfb",
"Name[fi]": "X11-kehyspuskuri KRfb:lle",
"Name[gl]": "Framebuffer de X11 para KRfb",
@@ -55,7 +52,6 @@
"Name[uk]": "Буфер кадрів X11 для KRfb",
"Name[x-test]": "xxX11 Framebuffer for KRfbxx",
"Name[zh_CN]": "XRfb 的 X11 帧缓冲",
- "Name[zh_TW]": "KRfb 的 X11 Framebuffer",
"ServiceTypes": [
"krfb/framebuffer"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krfb-16.04.3/krfb/krfb-framebuffer.json new/krfb-16.08.0/krfb/krfb-framebuffer.json
--- old/krfb-16.04.3/krfb/krfb-framebuffer.json 2016-04-12 16:08:43.000000000 +0200
+++ new/krfb-16.08.0/krfb/krfb-framebuffer.json 2016-01-23 11:35:57.000000000 +0100
@@ -6,7 +6,6 @@
"Description[cs]": "Moduly Frame bufferu pro KRfb",
"Description[da]": "Framebuffer-plugins til KRfb",
"Description[de]": "Framebuffer-Module für KRfb",
- "Description[en_GB]": "Frame Buffer plugins for KRfb",
"Description[es]": "Complementos de framebuffer para KRfb",
"Description[fi]": "Kehyspuskuriliitännäinen kohteelle KRfb",
"Description[gl]": "Engadido de frame buffer para KRfb",
@@ -25,8 +24,7 @@
"Description[sv]": "Insticksprogram med rambuffert för Krfb",
"Description[uk]": "Додатки буфера кадрів для KRfb",
"Description[x-test]": "xxFrame Buffer plugins for KRfbxx",
- "Description[zh_CN]": "KRfb 的帧缓冲插件",
- "Description[zh_TW]": "KRfb 的 Frame Buffer 外掛程式"
+ "Description[zh_CN]": "KRfb 的帧缓冲插件"
},
"X-KDE-ServiceType": "krfb/framebuffer"
}
\ No newline at end of file
1
0
Hello community,
here is the log from the commit of package krdc for openSUSE:Factory checked in at 2016-08-29 14:43:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/krdc (Old)
and /work/SRC/openSUSE:Factory/.krdc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "krdc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/krdc/krdc.changes 2016-07-21 07:47:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.krdc.new/krdc.changes 2016-08-29 14:43:57.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:23:08 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:20:18 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
krdc-16.04.3.tar.xz
New:
----
krdc-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ krdc.spec ++++++
--- /var/tmp/diff_new_pack.p9OkzF/_old 2016-08-29 14:43:58.000000000 +0200
+++ /var/tmp/diff_new_pack.p9OkzF/_new 2016-08-29 14:43:58.000000000 +0200
@@ -36,7 +36,7 @@
BuildRequires: cmake(KF5I18n)
BuildRequires: cmake(KF5DocTools)
BuildRequires: oxygen5-icon-theme-large
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Remote Desktop Connection
License: GPL-2.0+
++++++ krdc-16.04.3.tar.xz -> krdc-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/CMakeLists.txt new/krdc-16.08.0/CMakeLists.txt
--- old/krdc-16.04.3/CMakeLists.txt 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/CMakeLists.txt 2016-08-10 01:23:35.000000000 +0200
@@ -2,8 +2,8 @@
project(krdc)
set (KDE_APPLICATIONS_VERSION_MAJOR "16")
-set (KDE_APPLICATIONS_VERSION_MINOR "04")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
+set (KDE_APPLICATIONS_VERSION_MINOR "08")
+set (KDE_APPLICATIONS_VERSION_MICRO "0")
set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/config/general.ui new/krdc-16.08.0/config/general.ui
--- old/krdc-16.04.3/config/general.ui 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/config/general.ui 2016-08-10 01:23:35.000000000 +0200
@@ -120,6 +120,24 @@
</property>
</widget>
</item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayoutP">
+ <item>
+ <widget class="QLabel" name="defaultProtocolLabel">
+ <property name="text">
+ <string>Default protocol:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="kcfg_DefaultProtocol">
+ <property name="text">
+ <string>vnc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</widget>
</item>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/core/krdc.kcfg new/krdc-16.08.0/core/krdc.kcfg
--- old/krdc-16.04.3/core/krdc.kcfg 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/core/krdc.kcfg 2016-08-10 01:23:35.000000000 +0200
@@ -60,6 +60,9 @@
<entry name="ConnectionListSortOrder" type="Int">
<default>1</default>
</entry>
+ <entry name="DefaultProtocol" type="String">
+ <default>vnc</default>
+ </entry>
</group>
<group name="VNC">
<entry name="Quality" type="Int">
@@ -86,7 +89,7 @@
<default>7</default>
</entry>
<entry name="Resolution" type="Int">
- <default>2</default>
+ <default>6</default>
</entry>
<entry name="ColorDepth" type="Int">
<default>2</default>
Files old/krdc-16.04.3/doc/address_input.png and new/krdc-16.08.0/doc/address_input.png differ
Files old/krdc-16.04.3/doc/bookmarks_menu.png and new/krdc-16.08.0/doc/bookmarks_menu.png differ
Files old/krdc-16.04.3/doc/general_preferences.png and new/krdc-16.08.0/doc/general_preferences.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/doc/index.docbook new/krdc-16.08.0/doc/index.docbook
--- old/krdc-16.04.3/doc/index.docbook 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/doc/index.docbook 2016-08-10 01:23:35.000000000 +0200
@@ -1,7 +1,5 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
- <!ENTITY kappname "&krdc;">
- <!ENTITY package "kdenetwork">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE"> <!-- ONLY If you are writing non-English
original documentation, change
@@ -37,8 +35,8 @@
<legalnotice>&FDLNotice;</legalnotice>
-<date>2013-06-19</date>
-<releaseinfo>&kde; 4.11</releaseinfo>
+<date>2016-07-25</date>
+<releaseinfo>Applications 16.08</releaseinfo>
<copyright>
<year>2003, 2008</year>
@@ -565,33 +563,6 @@
</chapter>
-<appendix id="installation">
-<title>Installation</title>
-
-<sect1 id="getting-krdc">
-<title>How to obtain &krdc;</title>
-
-<!-- This first entity contains boiler plate for applications that are
-part of K D E CVS. You should remove it if you are releasing your
-application -->
-
-&install.intro.documentation;
-
-</sect1>
-
-<sect1 id="compilation">
-<title>Compilation and Installation</title>
-
-<!-- This entity contains the boilerplate text for standard -->
-<!-- compilation instructions. If your application requires any -->
-<!-- special handling, remove it, and replace with your own text. -->
-
-&install.compile.documentation;
-
-</sect1>
-
-</appendix>
-
&documentation.index;
</book>
Files old/krdc-16.04.3/doc/krdc_mainwindow.png and new/krdc-16.08.0/doc/krdc_mainwindow.png differ
Files old/krdc-16.04.3/doc/password_entry.png and new/krdc-16.08.0/doc/password_entry.png differ
Files old/krdc-16.04.3/doc/rdp_preferences.png and new/krdc-16.08.0/doc/rdp_preferences.png differ
Files old/krdc-16.04.3/doc/view-fullscreen.png and new/krdc-16.08.0/doc/view-fullscreen.png differ
Files old/krdc-16.04.3/doc/view-restore.png and new/krdc-16.08.0/doc/view-restore.png differ
Files old/krdc-16.04.3/doc/vnc_host_configuration.png and new/krdc-16.08.0/doc/vnc_host_configuration.png differ
Files old/krdc-16.04.3/doc/vnc_preferences.png and new/krdc-16.08.0/doc/vnc_preferences.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/main.cpp new/krdc-16.08.0/main.cpp
--- old/krdc-16.04.3/main.cpp 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/main.cpp 2016-08-10 01:23:35.000000000 +0200
@@ -25,6 +25,7 @@
#include "mainwindow.h"
#include "krdc_debug.h"
#include "krdc_version.h"
+#include "settings.h"
#include <KCoreAddons/KAboutData>
#include <Kdelibs4ConfigMigrator>
@@ -40,6 +41,7 @@
int main(int argc, char **argv)
{
+ KLocalizedString::setApplicationDomain("krdc");
const QString appName = QStringLiteral("krdc");
QApplication app(argc, argv);
QTime startupTimer;
@@ -118,21 +120,13 @@
const QStringList args = parser.positionalArguments();
if (args.length() > 0) {
for (int i = 0; i < args.length(); ++i) {
- QUrl url = QUrl::fromLocalFile(args.at(i));
- if (url.scheme().isEmpty() || url.host().isEmpty()) { // unusable url; try to recover it...
- QString arg = args.at(i);
-
- qCDebug(KRDC) << "unusable url; try to recover it:" << arg;
-
- if (arg.lastIndexOf(QLatin1Char('/')) != 0)
- arg = arg.right(arg.length() - arg.lastIndexOf(QLatin1Char('/')) - 1);
-
- if (!arg.contains(QStringLiteral("://")))
- arg.prepend(QStringLiteral("vnc://")); // vnc was default in kde3 times...
-
- qCDebug(KRDC) << "recovered url:" << arg;
-
- url = QUrl(arg);
+ QUrl url = QUrl(args.at(i));
+ // no URL scheme, assume argument is only a hostname
+ if (url.scheme().isEmpty()) {
+ QString defaultProto = Settings::defaultProtocol();
+ url.setScheme(defaultProto);
+ url.setHost(args.at(i));
+ url.setPath(QString());
}
if (!url.isValid()) {
continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/mainwindow.cpp new/krdc-16.08.0/mainwindow.cpp
--- old/krdc-16.04.3/mainwindow.cpp 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/mainwindow.cpp 2016-08-10 01:23:35.000000000 +0200
@@ -299,10 +299,7 @@
// Configure the view
HostPreferences* prefs = view->hostPreferences();
- if (! prefs->showDialogIfNeeded(this)) {
- delete view;
- return;
- }
+ prefs->showDialogIfNeeded(this);
view->showDotCursor(prefs->showLocalCursor() ? RemoteView::CursorOn : RemoteView::CursorOff);
view->setViewOnly(prefs->viewOnly());
@@ -989,7 +986,6 @@
{
foreach (RemoteView *view, m_remoteViewMap.values()) {
saveHostPrefs(view);
- view->startQuitting();
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/rdp/rdpview.cpp new/krdc-16.08.0/rdp/rdpview.cpp
--- old/krdc-16.04.3/rdp/rdpview.cpp 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/rdp/rdpview.cpp 2016-08-10 01:23:35.000000000 +0200
@@ -400,15 +400,25 @@
void RdpView::connectionClosed()
{
+ connectionClosed(NormalClose);
+}
+
+void RdpView::connectionClosed(CloseType closeType)
+{
+ if (m_quitFlag && closeType != ForceClose) {
+ return;
+ }
emit disconnected();
setStatus(Disconnected);
m_quitFlag = true;
}
-void RdpView::connectionError()
+void RdpView::connectionError(const QString &text, const QString &caption)
{
+ m_quitFlag = true;
+ KMessageBox::error(0, text, caption);
emit disconnectedError();
- connectionClosed();
+ connectionClosed(ForceClose);
}
void RdpView::processError(QProcess::ProcessError error)
@@ -419,9 +429,8 @@
if (m_status == Connecting) {
if (error == QProcess::FailedToStart) {
- KMessageBox::error(0, i18n("Could not start \"xfreerdp\"; make sure xfreerdp is properly installed."),
- i18n("RDP Failure"));
- connectionError();
+ connectionError(i18n("Could not start \"xfreerdp\"; make sure xfreerdp is properly installed."),
+ i18n("RDP Failure"));
return;
}
}
@@ -443,10 +452,9 @@
// Serial number of failed request: 36
// Current serial number in output stream: 36"
if (line.contains(QLatin1String("X_ReparentWindow"))) {
- KMessageBox::error(0, i18n("The version of \"xfreerdp\" you are using is too old.\n"
+ connectionError(i18n("The version of \"xfreerdp\" you are using is too old.\n"
"xfreerdp 1.0.2 or greater is required."),
- i18n("RDP Failure"));
- connectionError();
+ i18n("RDP Failure"));
return;
} else if(line.contains(QLatin1String("connection failure"))) {
KMessageBox::error(0, i18n("Connection failed. You might have passed a wrong address or username."),
@@ -465,31 +473,27 @@
Q_FOREACH (const QString &line, splittedOutput) {
// full xfreerdp message: "transport_connect: getaddrinfo (Name or service not known)"
if (line.contains(QLatin1String("Name or service not known"))) {
- KMessageBox::error(0, i18n("Name or service not known."),
- i18n("Connection Failure"));
- connectionError();
+ connectionError(i18n("Name or service not known."),
+ i18n("Connection Failure"));
return;
// full xfreerdp message: "unable to connect to example.com:3389"
} else if (line.contains(QLatin1String("unable to connect to"))) {
- KMessageBox::error(0, i18n("Connection attempt to host failed."),
- i18n("Connection Failure"));
- connectionError();
+ connectionError(i18n("Connection attempt to host failed."),
+ i18n("Connection Failure"));
return;
} else if (line.contains(QLatin1String("Authentication failure, check credentials"))) {
- KMessageBox::error(0, i18n("Authentication failure, check credentials."),
- i18n("Connection Failure"));
- connectionError();
+ connectionError(i18n("Authentication failure, check credentials."),
+ i18n("Connection Failure"));
return;
// looks like some generic xfreerdp error message, handle it if nothing was handled:
// "Error: protocol security negotiation failure"
} else if (line.contains(QLatin1String("Error: protocol security negotiation failure")) || // xfreerdp 1.0
line.contains(QLatin1String("Error: protocol security negotiation or connection failure"))) { // xfreerdp 1.2
- KMessageBox::error(0, i18n("Connection attempt to host failed. Security negotiation or connection failure."),
- i18n("Connection Failure"));
- connectionError();
+ connectionError(i18n("Connection attempt to host failed. Security negotiation or connection failure."),
+ i18n("Connection Failure"));
return;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krdc-16.04.3/rdp/rdpview.h new/krdc-16.08.0/rdp/rdpview.h
--- old/krdc-16.04.3/rdp/rdpview.h 2016-07-02 18:10:29.000000000 +0200
+++ new/krdc-16.08.0/rdp/rdpview.h 2016-08-10 01:23:35.000000000 +0200
@@ -72,6 +72,16 @@
bool eventFilter(QObject *obj, QEvent *event);
private:
+ // Marks if connectionClosed should close the connection if m_quitFlag is true.
+ enum CloseType {
+ NormalClose,
+ ForceClose,
+ };
+
+ void connectionError(const QString &text,
+ const QString &caption); // called if xfreerdp quits with error
+ void connectionClosed(CloseType closeType); // Signals the connection closed if not quiting or it is forced
+
QString keymapToXfreerdp(const QString &keyboadLayout);
QHash<QString, QString> initKeymapToXfreerdp();
@@ -89,7 +99,6 @@
private Q_SLOTS:
void connectionOpened(); // called if xfreerdp started
void connectionClosed(); // called if xfreerdp quits
- void connectionError(); // called if xfreerdp quits with error
void processError(QProcess::ProcessError error); // called if xfreerdp dies
void receivedStandardError(); // catches xfreerdp debug output
void receivedStandardOutput(); // catches xfreerdp output
1
0
Hello community,
here is the log from the commit of package kqtquickcharts for openSUSE:Factory checked in at 2016-08-29 14:43:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kqtquickcharts (Old)
and /work/SRC/openSUSE:Factory/.kqtquickcharts.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kqtquickcharts"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kqtquickcharts/kqtquickcharts.changes 2016-07-21 07:47:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kqtquickcharts.new/kqtquickcharts.changes 2016-08-29 14:43:45.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:23:01 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:20:00 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kqtquickcharts-16.04.3.tar.xz
New:
----
kqtquickcharts-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kqtquickcharts.spec ++++++
--- /var/tmp/diff_new_pack.whTKk6/_old 2016-08-29 14:43:46.000000000 +0200
+++ /var/tmp/diff_new_pack.whTKk6/_new 2016-08-29 14:43:46.000000000 +0200
@@ -17,7 +17,7 @@
Name: kqtquickcharts
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Plugin to render beautiful and interactive graphs
License: LGPL-2.1+
++++++ kqtquickcharts-16.04.3.tar.xz -> kqtquickcharts-16.08.0.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kpimtextedit for openSUSE:Factory checked in at 2016-08-29 14:43:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kpimtextedit (Old)
and /work/SRC/openSUSE:Factory/.kpimtextedit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kpimtextedit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kpimtextedit/kpimtextedit.changes 2016-08-08 13:55:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kpimtextedit.new/kpimtextedit.changes 2016-08-29 14:43:37.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:22:46 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:19:28 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kpimtextedit-16.04.3.tar.xz
New:
----
kpimtextedit-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kpimtextedit.spec ++++++
--- /var/tmp/diff_new_pack.qSe1YG/_old 2016-08-29 14:43:38.000000000 +0200
+++ /var/tmp/diff_new_pack.qSe1YG/_new 2016-08-29 14:43:38.000000000 +0200
@@ -17,7 +17,7 @@
Name: kpimtextedit
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.1.0
Summary: KDE PIM Libraries: Text edit functionality
++++++ kpimtextedit-16.04.3.tar.xz -> kpimtextedit-16.08.0.tar.xz ++++++
++++ 4216 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kopete for openSUSE:Factory checked in at 2016-08-29 14:43:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kopete (Old)
and /work/SRC/openSUSE:Factory/.kopete.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kopete"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kopete/kopete.changes 2016-07-21 07:50:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kopete.new/kopete.changes 2016-08-29 14:43:18.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:22:24 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:18:46 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kopete-16.04.3.tar.xz
New:
----
kopete-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kopete.spec ++++++
--- /var/tmp/diff_new_pack.edtBTw/_old 2016-08-29 14:43:19.000000000 +0200
+++ /var/tmp/diff_new_pack.edtBTw/_new 2016-08-29 14:43:19.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: kopete
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Instant Messenger
License: GPL-2.0+
++++++ kopete-16.04.3.tar.xz -> kopete-16.08.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kopete/kopete-16.04.3.tar.xz /work/SRC/openSUSE:Factory/.kopete.new/kopete-16.08.0.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package kontactinterface for openSUSE:Factory checked in at 2016-08-29 14:43:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kontactinterface (Old)
and /work/SRC/openSUSE:Factory/.kontactinterface.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kontactinterface"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kontactinterface/kontactinterface.changes 2016-07-21 07:51:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kontactinterface.new/kontactinterface.changes 2016-08-29 14:43:05.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:22:15 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:18:28 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kontactinterface-16.04.3.tar.xz
New:
----
kontactinterface-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kontactinterface.spec ++++++
--- /var/tmp/diff_new_pack.T1z9oo/_old 2016-08-29 14:43:06.000000000 +0200
+++ /var/tmp/diff_new_pack.T1z9oo/_new 2016-08-29 14:43:06.000000000 +0200
@@ -17,7 +17,7 @@
Name: kontactinterface
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: Interface to Contacts
++++++ kontactinterface-16.04.3.tar.xz -> kontactinterface-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kontactinterface-16.04.3/CMakeLists.txt new/kontactinterface-16.08.0/CMakeLists.txt
--- old/kontactinterface-16.04.3/CMakeLists.txt 2016-06-15 06:40:20.000000000 +0200
+++ new/kontactinterface-16.08.0/CMakeLists.txt 2016-08-06 09:14:36.000000000 +0200
@@ -3,7 +3,8 @@
project(KontactInterface)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -19,8 +20,9 @@
add_definitions(-DTRANSLATION_DOMAIN=\"kontactinterfaces5\")
-set(KF5_VERSION "5.19.0")
-set(KONTACTINTERFACE_LIB_VERSION "5.2.3")
+set(PIM_VERSION "5.3.0")
+
+set(KONTACTINTERFACE_LIB_VERSION ${PIM_VERSION})
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5KontactInterface")
ecm_setup_version(${KONTACTINTERFACE_LIB_VERSION} VARIABLE_PREFIX KONTACTINTERFACE
1
0
Hello community,
here is the log from the commit of package kompare for openSUSE:Factory checked in at 2016-08-29 14:42:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kompare (Old)
and /work/SRC/openSUSE:Factory/.kompare.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kompare"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kompare/kompare.changes 2016-07-21 07:47:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kompare.new/kompare.changes 2016-08-29 14:42:52.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:21:50 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:17:29 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kompare-16.04.3.tar.xz
New:
----
kompare-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kompare.spec ++++++
--- /var/tmp/diff_new_pack.QjXDAE/_old 2016-08-29 14:42:53.000000000 +0200
+++ /var/tmp/diff_new_pack.QjXDAE/_new 2016-08-29 14:42:53.000000000 +0200
@@ -36,7 +36,7 @@
License: GPL-2.0 and GFDL-1.2
Group: Development/Tools/Other
Url: http://www.kde.org/
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: %{name}-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kompare-16.04.3.tar.xz -> kompare-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kompare-16.04.3/doc/index.docbook new/kompare-16.08.0/doc/index.docbook
--- old/kompare-16.04.3/doc/index.docbook 2016-04-20 22:42:09.000000000 +0200
+++ new/kompare-16.08.0/doc/index.docbook 2016-07-07 21:40:19.000000000 +0200
@@ -1,8 +1,5 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
- <!ENTITY kappname "&kompare;">
- <!ENTITY version "4.4.0">
- <!ENTITY package "kdesdk">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
]>
@@ -25,8 +22,8 @@
<legalnotice>&FDLNotice;</legalnotice>
-<date>2010-07-22</date>
-<releaseinfo>&version;</releaseinfo>
+<date>2016-07-05</date>
+<releaseinfo>4.1.3 (Applications 16.04)</releaseinfo>
<!-- Abstract about this handbook -->
@@ -35,7 +32,6 @@
&kompare; is a &GUI; front-end program that enables differences between source files to be viewed and merged.
&kompare; can be used to compare differences on files or the contents of folders. &kompare; supports a variety
of diff formats and provide many options to customize the information level displayed.</para>
-<para>This document describes &kompare; version &version;.</para>
</abstract>
@@ -58,7 +54,7 @@
application used to create it is one solution but, laborious, time consuming, and prone to error. This is where a program to show
differences, diffs for short, is useful.</para>
-<para>As would be expected, an appropriate name for such a program would be "diff". As it happens, the program diff is installed on
+<para>As would be expected, an appropriate name for such a program would be <quote>diff</quote>;. As it happens, the program diff is installed on
most &Linux;-based systems and is used for exactly this purpose. Developers often use diff, as a command line tool, to show differences
between versions of a source code file. However, the use of diff is not limited to showing differences in code source files,
it can be used on many text-based file types.</para>
@@ -79,13 +75,13 @@
<para>Using &kompare; the second person can view the diff file, compare it to the local copy of the document and apply the changes made by the first person.
So the process can go on for many versions of the document, each person making changes, creating diffs, distributing them and applying them.
-This process is commonly called "patching", a term taken from the program named "patch" which is another command line
+This process is commonly called <quote>patching</quote> , a term taken from the program named <quote>patch</quote> which is another command line
tool specifically designed for the purpose of applying diff files.</para>
<para>It sometimes happens that people edit a file at the same time. In this situation it is likely that people will make changes in the document at
exactly the same line. This creates a problem because, without applied caution, people could be overwriting each others work as they apply the diff files they receive.
Fortunately the developers of the diff and patch programs took this into consideration and so these tools will not allow such changes to be applied without manual intervention.
-When this state is reached, it is known as a "conflict". &kompare; will display conflicts so that you can manually resolve them, deciding
+When this state is reached, it is known as a <quote>conflict</quote> . &kompare; will display conflicts so that you can manually resolve them, deciding
which changes should be applied to which file.</para>
<para>&kompare; is also a great program for comparison of file changes on a folder level. When used to compare folders &kompare; recursively examines subfolders
@@ -105,7 +101,7 @@
<sect2 id="starting-kompare">
<title>Starting &kompare;</title>
-<para>A shortcut for starting &kompare; can be found in the K menu in the Development group
+<para>A shortcut for starting &kompare; can be found in the application menu in the Development group
<menuchoice><guimenu>Development</guimenu><guimenuitem>Kompare</guimenuitem></menuchoice>.</para>
<para>When &kompare; starts the first thing it does is display a dialog from
@@ -212,9 +208,11 @@
</varlistentry>
<varlistentry>
<term>Docking</term>
-<listitem><para>The navigation panel can be undocked from the main interface by clicking the <inlinemediaobject>
+<listitem>
+<para>The navigation panel can be undocked from the main interface by clicking the <inlinemediaobject>
<imageobject><imagedata fileref="undock.png" format="PNG"/></imageobject></inlinemediaobject> icon located top right of the panel.
-This opens it in a window of its own, allowing you to move it across the screen. You can even hide the navigation panel by clicking the <inlinemediaobject><imageobject><imagedata fileref="dock.png" format="PNG"/></imageobject></inlinemediaobject> icon.
+This opens it in a window of its own, allowing you to move it across the screen.
+You can even hide the navigation panel by clicking the <inlinemediaobject><imageobject><imagedata fileref="dock.png" format="PNG"/></imageobject></inlinemediaobject> icon.
To display a hidden navigation bar again, click with the &RMB; into the menubar and select <guilabel>Navigation</guilabel> from the context menu.
</para></listitem>
</varlistentry>
@@ -401,7 +399,7 @@
<chapter id="configure-preferences">
<title>Configuring Preferences</title>
-<para>&kompare; enables users to set appearance preferences for difference formatting in the main interface and set behavioural properties of the diff program.
+<para>&kompare; enables users to set appearance preferences for difference formatting in the main interface and set behavioral properties of the diff program.
The <guilabel>Preferences</guilabel> dialog can be accessed by selecting
<menuchoice><guimenu>Settings</guimenu><guisubmenu>Configure &kompare;...</guisubmenu></menuchoice>.</para>
@@ -417,7 +415,7 @@
<sect2 id="appearance">
<title>Appearance</title>
<para>The <guilabel>Appearance</guilabel> form provides controls to manage the <guilabel>Colors</guilabel> used
-to denote difference in the main interface, behaviour of the <guilabel>Mouse Wheel</guilabel> when jogging up and down
+to denote difference in the main interface, behavior of the <guilabel>Mouse Wheel</guilabel> when jogging up and down
and how <guilabel>Tabs to Spaces</guilabel> conversion is managed.</para>
<screenshot>
<screeninfo>&kompare; Appearance Settings</screeninfo>
@@ -487,7 +485,7 @@
<title>Diff Settings</title>
<para>The <guimenu>Diff</guimenu> page in the <guilabel>Preferences</guilabel> dialog displays the <guilabel>Diff</guilabel>,
<guilabel>Format</guilabel>, <guilabel>Options</guilabel> and <guilabel>Exclude</guilabel> tabbed forms. These forms can be used to configure the
-behavioural properties of the Diff program.</para>
+behavioral properties of the Diff program.</para>
<sect2 id="diff">
<title>Diff</title>
@@ -542,14 +540,7 @@
output is more compact than that of context as it omits redundant context lines.</para>
</listitem>
</varlistentry>
-<!-- not in 3.5.1
-<varlistentry>
-<term><guilabel>Side-by-side</guilabel></term>
-<listitem>
-<para>Use the side by side output format which displays files listed in two columns with a gutter between them. This option is only available from the <guilabel>Diff Options</guilabel> dialog (see <xref linkend="creating-a-diff"/>).</para>
-</listitem>
-</varlistentry>
--->
+
</variablelist>
<variablelist>
<title>Lines of Context</title>
@@ -668,7 +659,10 @@
<chapter id="command-reference">
<title>Command Reference</title>
-<sect1 id="file-menu">
+<sect1 id="menu-items">
+
+<title>Menu Items</title>
+<sect2 id="file-menu">
<title>The File Menu</title>
<variablelist>
<varlistentry>
@@ -718,6 +712,14 @@
</varlistentry>
<varlistentry>
+<term><menuchoice>
+<shortcut><keycap>F5</keycap></shortcut>
+<guimenu>File</guimenu><guimenuitem>Refresh Diff</guimenuitem></menuchoice></term>
+<listitem><para>Updates the difference of the original paths. Useful if you have applied
+some changes, saved them and want to see what is left.</para></listitem>
+</varlistentry>
+
+<varlistentry>
<term><menuchoice><guimenu>File</guimenu><guimenuitem>Swap Source with Destination</guimenuitem></menuchoice></term>
<listitem><para>Changes source and destination.</para></listitem>
</varlistentry>
@@ -727,7 +729,7 @@
<guimenu>File</guimenu><guimenuitem>Show Statistics</guimenuitem></menuchoice></term>
<listitem><para>Displays the <guilabel>Display Statistics</guilabel> dialog.</para></listitem>
</varlistentry>
-<!-- Print Print Preview in 4.5.1-->
+
<varlistentry>
<term><menuchoice>
<shortcut>
@@ -737,9 +739,9 @@
<listitem><para>Exits &kompare;.</para></listitem>
</varlistentry>
</variablelist>
-</sect1>
+</sect2>
-<sect1 id="difference-menu">
+<sect2 id="difference-menu">
<title>The Difference Menu</title>
<variablelist>
<varlistentry>
@@ -810,44 +812,71 @@
<listitem><para>Select the difference below the currently selected difference.</para></listitem>
</varlistentry>
</variablelist>
+</sect2>
+
+<sect2 id="settingshelpmenu">
+
+<title>The Settings and Help Menu</title>
+<para>
+&kompare; has the common &kde; <guimenu>Settings</guimenu> and <guimenu>Help</guimenu>
+menu items, for more information read the sections about the <ulink url="help:/fundamentals/ui.html#menus-settings"
+>Settings Menu</ulink> and <ulink url="help:/fundamentals/ui.html#menus-help">Help Menu</ulink>
+of the &kde; Fundamentals.
+</para>
+</sect2>
</sect1>
-<sect1 id="settingsmenu">
-<title>The Settings Menu</title>
+<sect1 id="commandline-options">
+<title>Commandline Options</title>
+
<variablelist>
<varlistentry>
-<term><menuchoice><guimenu>Settings</guimenu><guimenuitem>Show Toolbar</guimenuitem></menuchoice></term>
-<listitem><para>Toggle the toolbar display ON/OFF.</para></listitem>
-</varlistentry>
-<varlistentry>
-<term><menuchoice><guimenu>Settings</guimenu><guimenuitem>Show Statusbar</guimenuitem></menuchoice></term>
-<listitem><para>Toggle the status bar display ON/OFF.</para></listitem>
+<term>-c</term>
+<listitem><para>This will compare URL1 with URL2.</para></listitem>
</varlistentry>
+
<varlistentry>
-<term><menuchoice><guimenu>Settings</guimenu><guimenuitem>Show Text View</guimenuitem></menuchoice></term>
-<listitem><para>Display the <guilabel>Text View</guilabel> pane.</para></listitem>
+<term><userinput><command>kompare</command>
+<option>-o</option></userinput></term>
+<listitem><para>This will open URL1 and expect it to be diff
+output. URL1 can also be a '-' and then it will
+read from standard input. Can be used for
+instance for <userinput><command>cvs diff | kompare -o -</command></userinput>. Kompare
+will do a check to see if it can find the
+original file(s) and then blend the original
+file(s) into the diffoutput and show that in
+the viewer. <option>-n</option> disables the check.</para></listitem>
</varlistentry>
+
<varlistentry>
-<term><menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure Shortcuts...</guimenuitem></menuchoice></term>
-<listitem><para>Display the <guilabel>Configure Shortcuts</guilabel> dialog.</para></listitem>
+<term><userinput><command>kompare</command>
+<option>-b</option></userinput></term>
+<listitem><para>This will blend URL2 into URL1, URL2 is
+expected to be diff output and URL1 the file or
+folder that the diffoutput needs to be blended
+into.</para></listitem>
</varlistentry>
+
<varlistentry>
-<term><menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure Toolbars...</guimenuitem></menuchoice></term>
-<listitem><para>Display the <guilabel>Configure Toolbar</guilabel>.</para></listitem>
+<term><userinput><command>kompare</command>
+<option>-n</option></userinput></term>
+<listitem><para>Disables the check for automatically finding
+the original file(s) when using '-' as URL with
+the <option>-o</option> option.</para></listitem>
</varlistentry>
+
<varlistentry>
-<term><menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure &kompare;...</guimenuitem></menuchoice></term>
-<listitem><para>Display the &kompare; <guilabel>Preference</guilabel> dialog.</para></listitem>
+<term><userinput><command>kompare</command>
+<option>-e</option> <replaceable>encoding</replaceable></userinput></term>
+<listitem><para>Use this to specify the encoding when
+calling it from the command line. It will
+default to the local encoding if not
+specified.</para></listitem>
</varlistentry>
-</variablelist>
-</sect1>
-<sect1 id="help-menu">
-<title>The Help Menu</title>
+</variablelist>
-&help.menu.documentation;
-</sect1>
-</chapter>
+</sect1></chapter>
<chapter id="credits">
@@ -872,27 +901,6 @@
</chapter>
-<appendix id="installation">
-<title>Installation</title>
-
-<sect1 id="getting-kapp">
-<title>How to obtain &kompare;</title>
-
-&install.intro.documentation;
-
-</sect1>
-
-
-<sect1 id="compilation">
-<title>Compilation and Installation</title>
-
-&install.compile.documentation;
-
-</sect1>
-
-
-</appendix>
-
&documentation.index;
</book>
Files old/kompare-16.04.3/doc/settings-diff1.png and new/kompare-16.08.0/doc/settings-diff1.png differ
Files old/kompare-16.04.3/doc/settings-diff2.png and new/kompare-16.08.0/doc/settings-diff2.png differ
Files old/kompare-16.04.3/doc/settings-diff3.png and new/kompare-16.08.0/doc/settings-diff3.png differ
Files old/kompare-16.04.3/doc/settings-diff4.png and new/kompare-16.08.0/doc/settings-diff4.png differ
Files old/kompare-16.04.3/doc/settings-view1.png and new/kompare-16.08.0/doc/settings-view1.png differ
Files old/kompare-16.04.3/doc/settings-view2.png and new/kompare-16.08.0/doc/settings-view2.png differ
1
0
Hello community,
here is the log from the commit of package kmousetool for openSUSE:Factory checked in at 2016-08-29 14:42:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmousetool (Old)
and /work/SRC/openSUSE:Factory/.kmousetool.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmousetool"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmousetool/kmousetool.changes 2016-07-21 07:47:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmousetool.new/kmousetool.changes 2016-08-29 14:42:37.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:20:37 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:14:13 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kmousetool-16.04.3.tar.xz
New:
----
kmousetool-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmousetool.spec ++++++
--- /var/tmp/diff_new_pack.wNhcit/_old 2016-08-29 14:42:39.000000000 +0200
+++ /var/tmp/diff_new_pack.wNhcit/_new 2016-08-29 14:42:39.000000000 +0200
@@ -26,7 +26,7 @@
License: GPL-2.0+
Group: System/GUI/KDE
Url: http://www.kde.org
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kmousetool-16.04.3.tar.xz -> kmousetool-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmousetool-16.04.3/kmousetool/kmousetool.desktop new/kmousetool-16.08.0/kmousetool/kmousetool.desktop
--- old/kmousetool-16.04.3/kmousetool/kmousetool.desktop 2015-11-05 05:17:54.000000000 +0100
+++ new/kmousetool-16.08.0/kmousetool/kmousetool.desktop 2016-06-30 05:36:04.000000000 +0200
@@ -31,6 +31,7 @@
Comment[hne]=आप मन मुसुवा ल किलिक करथे , आरएसआई के प्रभाव ल कम करे बर
Comment[hr]=Pritišće miš za vas i time smanjuje efekte RSI-a
Comment[hu]=Automatikus egérkattintás (RSI-szindrómában szenvedőknek)
+Comment[ia]=Il pulsa automaticamente le mus per te, reducente le effectos de RSI
Comment[is]=Smellir músarhnöppunum fyrir þig og dregur úr áhrifum RSI
Comment[it]=Fa clic sul mouse al posto tuo, riducendo gli effetti della RSI
Comment[ja]=RSI (反復運動過多損傷) を防ぐために、あなたの代わりにマウスをクリック
@@ -100,6 +101,7 @@
Name[hne]=के-मुसुवा-टूल
Name[hr]=KMouseTool
Name[hu]=KMouseTool
+Name[ia]=KMouseTool
Name[is]=KMouseTool
Name[it]=KMouseTool
Name[ja]=KMouseTool
@@ -171,6 +173,7 @@
GenericName[hne]=अपने अपन मुसुवा किलिक
GenericName[hr]=Automatski pritisak miša
GenericName[hu]=Automatikus egérkattintás
+GenericName[ia]=Pulsar automatic de mus
GenericName[is]=Sjálfvirkur músahnappasmellir
GenericName[it]=Clic automatico del mouse
GenericName[ja]=自動マウスクリック
1
0
Hello community,
here is the log from the commit of package kmix for openSUSE:Factory checked in at 2016-08-29 14:42:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmix (Old)
and /work/SRC/openSUSE:Factory/.kmix.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmix"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmix/kmix.changes 2016-07-21 07:47:13.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmix.new/kmix.changes 2016-08-29 14:42:23.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:20:30 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:13:49 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kmix-16.04.3.tar.xz
New:
----
kmix-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmix.spec ++++++
--- /var/tmp/diff_new_pack.761IXW/_old 2016-08-29 14:42:24.000000000 +0200
+++ /var/tmp/diff_new_pack.761IXW/_new 2016-08-29 14:42:24.000000000 +0200
@@ -17,7 +17,7 @@
Name: kmix
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Sound Mixer
License: GPL-2.0+
++++++ kmix-16.04.3.tar.xz -> kmix-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmix-16.04.3/gui/viewdockareapopup.cpp new/kmix-16.08.0/gui/viewdockareapopup.cpp
--- old/kmix-16.04.3/gui/viewdockareapopup.cpp 2016-04-21 21:28:19.000000000 +0200
+++ new/kmix-16.08.0/gui/viewdockareapopup.cpp 2016-07-28 23:27:58.000000000 +0200
@@ -137,9 +137,11 @@
{
if ( _mdws.isEmpty() )
return;
-
+
+#ifndef X_KMIX_KF5_BUILD
// Pass wheel event from "border widget" to child
QApplication::sendEvent( _mdws.first(), e);
+#endif
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmix-16.04.3/kmixd.desktop new/kmix-16.08.0/kmixd.desktop
--- old/kmix-16.04.3/kmixd.desktop 2016-04-21 21:28:19.000000000 +0200
+++ new/kmix-16.08.0/kmixd.desktop 2016-07-28 23:27:58.000000000 +0200
@@ -105,7 +105,7 @@
# KDED registration
X-KDE-ServiceTypes=KDEDModule
-X-KDE-Library=kmixd
+X-KDE-Library=kded_kmixd
X-KDE-DBus-ModuleName=kmixd
X-KDE-Kded-autoload=true
OnlyShowIn=KDE;
1
0
Hello community,
here is the log from the commit of package kmime for openSUSE:Factory checked in at 2016-08-29 14:42:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmime (Old)
and /work/SRC/openSUSE:Factory/.kmime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmime"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmime/kmime.changes 2016-08-08 13:57:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmime.new/kmime.changes 2016-08-29 14:42:07.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:20:14 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:13:08 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kmime-16.04.3.tar.xz
New:
----
kmime-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmime.spec ++++++
--- /var/tmp/diff_new_pack.BPhMFa/_old 2016-08-29 14:42:08.000000000 +0200
+++ /var/tmp/diff_new_pack.BPhMFa/_new 2016-08-29 14:42:08.000000000 +0200
@@ -17,7 +17,7 @@
Name: kmime
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: Mime support
++++++ kmime-16.04.3.tar.xz -> kmime-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-16.04.3/CMakeLists.txt new/kmime-16.08.0/CMakeLists.txt
--- old/kmime-16.04.3/CMakeLists.txt 2016-06-15 06:40:02.000000000 +0200
+++ new/kmime-16.08.0/CMakeLists.txt 2016-08-06 09:14:48.000000000 +0200
@@ -3,7 +3,8 @@
project(KMime)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${KMime_SOURCE_DIR}/cmake ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -16,9 +17,8 @@
include(KDECMakeSettings)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
-
-set(KF5_VERSION "5.19.0")
-set(KMIME_LIB_VERSION "5.2.3")
+set(PIM_VERSION "5.3.0")
+set(KMIME_LIB_VERSION ${PIM_VERSION})
set(QT_REQUIRED_VERSION "5.2.0")
ecm_setup_version(${KMIME_LIB_VERSION} VARIABLE_PREFIX KMIME
1
0
Hello community,
here is the log from the commit of package kmbox for openSUSE:Factory checked in at 2016-08-29 14:41:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmbox (Old)
and /work/SRC/openSUSE:Factory/.kmbox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmbox"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmbox/kmbox.changes 2016-08-08 13:57:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmbox.new/kmbox.changes 2016-08-29 14:41:44.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:20:07 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:12:46 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kmbox-16.04.3.tar.xz
New:
----
kmbox-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmbox.spec ++++++
--- /var/tmp/diff_new_pack.rZkmVJ/_old 2016-08-29 14:41:45.000000000 +0200
+++ /var/tmp/diff_new_pack.rZkmVJ/_new 2016-08-29 14:41:45.000000000 +0200
@@ -17,7 +17,7 @@
Name: kmbox
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: Mailbox functionality
++++++ kmbox-16.04.3.tar.xz -> kmbox-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmbox-16.04.3/CMakeLists.txt new/kmbox-16.08.0/CMakeLists.txt
--- old/kmbox-16.04.3/CMakeLists.txt 2016-06-15 06:39:43.000000000 +0200
+++ new/kmbox-16.08.0/CMakeLists.txt 2016-08-06 20:10:22.000000000 +0200
@@ -3,7 +3,8 @@
project(KMbox)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -17,9 +18,10 @@
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
-set(KF5_VERSION "5.19.0")
-set(KMBOX_LIB_VERSION "5.2.3")
-set(KMIME_LIB_VERSION "5.2.0")
+set(PIM_VERSION "5.3.0")
+
+set(KMBOX_LIB_VERSION ${PIM_VERSION})
+set(KMIME_LIB_VERSION "5.3.0")
ecm_setup_version(${KMBOX_LIB_VERSION} VARIABLE_PREFIX KMBOX
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kmbox_version.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmbox-16.04.3/src/mbox_p.cpp new/kmbox-16.08.0/src/mbox_p.cpp
--- old/kmbox-16.04.3/src/mbox_p.cpp 2016-06-15 06:39:43.000000000 +0200
+++ new/kmbox-16.08.0/src/mbox_p.cpp 2016-08-06 20:10:22.000000000 +0200
@@ -27,7 +27,7 @@
MBoxPrivate::MBoxPrivate(MBox *mbox)
: mInitialMboxFileSize(0), mMBox(mbox),
- mSeparatorMatcher(QStringLiteral("^From .*[0-9][0-9]:[0-9][0-9]")), mReadOnly(false)
+ mSeparatorMatcher(QStringLiteral("^From .*[0-9][0-9]:[0-9][0-9]")), mLockType(MBox::None), mFileLocked(false), mReadOnly(false)
{
connect(&mUnlockTimer, &QTimer::timeout, this, &MBoxPrivate::unlockMBox);
}
1
0
Hello community,
here is the log from the commit of package kmailtransport for openSUSE:Factory checked in at 2016-08-29 14:41:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmailtransport (Old)
and /work/SRC/openSUSE:Factory/.kmailtransport.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmailtransport"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmailtransport/kmailtransport.changes 2016-08-08 13:50:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmailtransport.new/kmailtransport.changes 2016-08-29 14:41:27.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:20:00 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:12:18 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kmailtransport-16.04.3.tar.xz
New:
----
kmailtransport-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmailtransport.spec ++++++
--- /var/tmp/diff_new_pack.ZngVCF/_old 2016-08-29 14:41:28.000000000 +0200
+++ /var/tmp/diff_new_pack.ZngVCF/_new 2016-08-29 14:41:28.000000000 +0200
@@ -17,7 +17,7 @@
Name: kmailtransport
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: Mailtransport layer
@@ -25,8 +25,8 @@
Group: System/GUI/KDE
Url: http://www.kde.org
Source: kmailtransport-%{version}.tar.xz
-BuildRequires: akonadi-server-devel
-BuildRequires: akonadi-mime-devel
+BuildRequires: akonadi-server-devel = %{version}
+BuildRequires: akonadi-mime-devel = %{version}
BuildRequires: cyrus-sasl-devel
BuildRequires: extra-cmake-modules >= 5.19.0
BuildRequires: kcmutils-devel >= %{kf5_version}
@@ -70,11 +70,17 @@
%files
%defattr(-,root,root)
%doc COPYING*
+%{_kf5_configdir}/kmailtransport.categories
%dir %{_kf5_configkcfgdir}
%{_kf5_configkcfgdir}/mailtransport.kcfg
+%{_kf5_htmldir}/en/kioslave5/
%{_kf5_libdir}/libKF5MailTransport.so.*
+%{_kf5_plugindir}/kf5
+%{_kf5_plugindir}/kf5/kio
%{_kf5_plugindir}/kcm_mailtransport.so
%{_kf5_servicesdir}/kcm_mailtransport.desktop
+%{_kf5_servicesdir}/smtp.protocol
+%{_kf5_servicesdir}/smtps.protocol
%files devel
%defattr(-,root,root)
++++++ kmailtransport-16.04.3.tar.xz -> kmailtransport-16.08.0.tar.xz ++++++
++++ 5608 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kmag for openSUSE:Factory checked in at 2016-08-29 14:41:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmag (Old)
and /work/SRC/openSUSE:Factory/.kmag.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmag"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmag/kmag.changes 2016-07-21 07:46:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmag.new/kmag.changes 2016-08-29 14:41:12.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:19:43 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:11:25 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kmag-16.04.3.tar.xz
New:
----
kmag-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmag.spec ++++++
--- /var/tmp/diff_new_pack.iwRNjX/_old 2016-08-29 14:41:13.000000000 +0200
+++ /var/tmp/diff_new_pack.iwRNjX/_new 2016-08-29 14:41:13.000000000 +0200
@@ -26,7 +26,7 @@
License: GPL-2.0
Group: System/GUI/KDE
Url: http://www.kde.org
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: %{name}-%version.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kmag-16.04.3.tar.xz -> kmag-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmag-16.04.3/kmag.desktop new/kmag-16.08.0/kmag.desktop
--- old/kmag-16.04.3/kmag.desktop 2014-10-03 02:33:26.000000000 +0200
+++ new/kmag-16.08.0/kmag.desktop 2016-06-30 05:35:52.000000000 +0200
@@ -31,6 +31,7 @@
Name[hne]=के-मैग
Name[hr]=KMag
Name[hu]=KMag
+Name[ia]=KMag
Name[is]=KMag
Name[it]=Lente d'ingrandimento
Name[ja]=KMag
@@ -100,6 +101,7 @@
GenericName[hne]=स्क्रीन आवर्धक
GenericName[hr]=Zaslonsko povećalo
GenericName[hu]=Képernyőnagyító
+GenericName[ia]=Aggranditor de schermo
GenericName[is]=Skjástækkunargler
GenericName[it]=Lente di ingrandimento per lo schermo
GenericName[ja]=画面拡大鏡
1
0
Hello community,
here is the log from the commit of package kio_audiocd for openSUSE:Factory checked in at 2016-08-29 14:40:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kio_audiocd (Old)
and /work/SRC/openSUSE:Factory/.kio_audiocd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kio_audiocd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kio_audiocd/kio_audiocd.changes 2016-07-21 07:46:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kio_audiocd.new/kio_audiocd.changes 2016-08-29 14:40:56.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:18:29 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:06:37 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
audiocd-kio-16.04.3.tar.xz
New:
----
audiocd-kio-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kio_audiocd.spec ++++++
--- /var/tmp/diff_new_pack.Ezkc2v/_old 2016-08-29 14:40:57.000000000 +0200
+++ /var/tmp/diff_new_pack.Ezkc2v/_new 2016-08-29 14:40:57.000000000 +0200
@@ -28,7 +28,7 @@
License: GPL-2.0+
Group: System/GUI/KDE
Url: http://www.kde.org
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: audiocd-kio-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ audiocd-kio-16.04.3.tar.xz -> audiocd-kio-16.08.0.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kio-extras5 for openSUSE:Factory checked in at 2016-08-29 14:40:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kio-extras5 (Old)
and /work/SRC/openSUSE:Factory/.kio-extras5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kio-extras5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kio-extras5/kio-extras5.changes 2016-07-21 07:46:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kio-extras5.new/kio-extras5.changes 2016-08-29 14:40:41.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:18:22 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:06:13 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kio-extras-16.04.3.tar.xz
New:
----
kio-extras-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kio-extras5.spec ++++++
--- /var/tmp/diff_new_pack.FcCZvv/_old 2016-08-29 14:40:43.000000000 +0200
+++ /var/tmp/diff_new_pack.FcCZvv/_new 2016-08-29 14:40:43.000000000 +0200
@@ -17,7 +17,7 @@
Name: kio-extras5
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Additional KIO-slaves for KDE applications
License: GPL-2.0+
++++++ kio-extras-16.04.3.tar.xz -> kio-extras-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/CMakeLists.txt new/kio-extras-16.08.0/CMakeLists.txt
--- old/kio-extras-16.04.3/CMakeLists.txt 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/CMakeLists.txt 2016-07-30 15:11:52.000000000 +0200
@@ -36,13 +36,15 @@
KIO
KHtml
KDELibs4Support
- Pty
Solid
Bookmarks
GuiAddons
Activities
)
-
+# As this is the check used for linkage, only require it in the same location...
+if (UNIX)
+ find_package(KF5Pty ${KF5_MIN_VERSION} REQUIRED)
+endif()
include(KDEInstallDirs)
include(KDECMakeSettings)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/activities/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop new/kio-extras-16.08.0/activities/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop
--- old/kio-extras-16.04.3/activities/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/activities/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop 2016-07-30 15:11:52.000000000 +0200
@@ -2,21 +2,31 @@
Encoding=UTF-8
Type=Service
Name=File to activity linking plugin
+Name[ast]=Complementu d'enllazamientu d'actividaes a ficheros
+Name[bs]=Datoteka dodatka za povezivanje na aktivnost
Name[ca]=Connector per enllaçar fitxers amb activitats
Name[ca@valencia]=Connector per enllaçar fitxers amb activitats
Name[da]=Fil til aktivitetslink-plugin
Name[de]=Modul für die Verknüpfung von Dateien zu Aktivitäten
+Name[el]=Αρχείο για το πρόσθετο διαχείρισης δραστηριότητας
Name[en_GB]=File to activity linking plugin
Name[es]=Archivo para el complemento de enlace de actividades
+Name[et]=Faili tegevusega linkimise plugin
Name[fi]=Tiedostojen yhdistäminen aktiviteettiin
+Name[gd]=Plugan gus faidhlichean a co-cheangal ri gnìomhachdan
Name[gl]=Complemento para ligar ficheiros con actividades
+Name[is]=Tengiviðbót fyrir skrá-í-virkni
Name[it]=Estensione di collegamento tra file e attività
+Name[km]=ឯកសារទៅកម្មវិធីជំនួយកំណត់ជួរសកម្មភាព
+Name[ko]=활동 연결 플러그인 파일
+Name[lt]=Failo pririšimo prie veiklos papildinys
Name[nb]=Programtillegg som binder fil til aktivitet
Name[nl]=Plug-in voor koppelen van bestand aan activiteit
Name[nn]=Programtillegg for å knyta fil til aktivitet
Name[pl]=Plik dla wtyczki łączącej działania
Name[pt]='Plugin' de ligação de ficheiros a actividades
Name[pt_BR]=Plugin de ligação de arquivo a atividade
+Name[ru]=Модуль связывания файлов с комнатами
Name[sk]=Súbor na plugin linkovania aktivít
Name[sl]=Vstavek za povezovanje datoteke z dejavnostjo
Name[sr]=Фајл за прикључак повезивања активности
@@ -24,6 +34,8 @@
Name[sr@ijekavianlatin]=Fajl za priključak povezivanja aktivnosti
Name[sr@latin]=Fajl za priključak povezivanja aktivnosti
Name[sv]=Insticksprogram för länkning av fil till aktivitet
+Name[tr]=Etkinliğe dosya bağlama eklentisi
+Name[ug]=پائالىيەت ئۇلانما قىستۇرما ھۆججىتى
Name[uk]=Додаток прив’язування файлів до просторів дій
Name[x-test]=xxFile to activity linking pluginxx
Name[zh_CN]=文件链接到活动插件
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/archive/kio_archive.cpp new/kio-extras-16.08.0/archive/kio_archive.cpp
--- old/kio-extras-16.04.3/archive/kio_archive.cpp 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/archive/kio_archive.cpp 2016-07-30 15:11:52.000000000 +0200
@@ -76,7 +76,7 @@
bool ArchiveProtocol::checkNewFile( const QUrl & url, QString & path, KIO::Error& errorNum )
{
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
QString fullPath = url.path();
#else
QString fullPath = url.path().remove(0, 1);
@@ -134,7 +134,7 @@
{
archiveFile = tryPath;
m_mtime = statbuf.st_mtime;
-#ifdef Q_WS_WIN // st_uid and st_gid provides no information
+#ifdef Q_OS_WIN // st_uid and st_gid provides no information
m_user.clear();
m_group.clear();
#else
@@ -347,7 +347,7 @@
qCDebug(KIO_ARCHIVE_LOG).nospace() << "ArchiveProtocol::stat returning name=" << url.fileName();
KDE_struct_stat buff;
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
QString fullPath = url.path().remove(0, 1);
#else
QString fullPath = url.path();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/fish/fish.cpp new/kio-extras-16.08.0/fish/fish.cpp
--- old/kio-extras-16.04.3/fish/fish.cpp 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/fish/fish.cpp 2016-07-30 15:11:52.000000000 +0200
@@ -105,7 +105,7 @@
#define sendmimeType(x) mimeType(x)
#endif
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
#define ENDLINE "\r\n"
#else
#define ENDLINE '\n'
@@ -117,7 +117,7 @@
// static int isOpenSSH = 0;
/** the SSH process used to communicate with the remote end */
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
static pid_t childPid;
#else
static KProcess *childPid = 0;
@@ -239,7 +239,7 @@
if (sshPath == NULL) {
// disabled: currently not needed. Didn't work reliably.
// isOpenSSH = !system("ssh -V 2>&1 | grep OpenSSH > /dev/null");
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
sshPath = strdup(QFile::encodeName(KStandardDirs::findExe("plink")));
#else
sshPath = strdup(QFile::encodeName(QStandardPaths::findExecutable("ssh")));
@@ -311,7 +311,7 @@
}
// XXX Use KPty! XXX
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
static int open_pty_pair(int fd[2])
{
#if defined(HAVE_TERMIOS_H) && defined(HAVE_GRANTPT) && !defined(HAVE_OPENPTY)
@@ -386,7 +386,7 @@
int rc, flags;
thisFn.clear();
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
rc = open_pty_pair(fd);
if (rc == -1) {
myDebug( << "socketpair failed, error: " << strerror(errno) << endl);
@@ -396,7 +396,7 @@
if (!requestNetwork()) return true;
myDebug( << "Exec: " << (local ? suPath : sshPath) << " Port: " << connectionPort << " User: " << connectionUser << endl);
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
childPid = new KProcess();
childPid->setOutputChannelMode(KProcess::MergedChannels);
QStringList common_args;
@@ -562,7 +562,7 @@
/**
writes one chunk of data to stdin of child process
*/
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
void fishProtocol::writeChild(const char *buf, KIO::fileoffset_t len) {
if (outBufPos >= 0 && outBuf) {
#else
@@ -583,7 +583,7 @@
/**
manages initial communication setup including password queries
*/
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
int fishProtocol::establishConnection(char *buffer, KIO::fileoffset_t len) {
QString buf = QString::fromLatin1(buffer,len);
#else
@@ -672,7 +672,7 @@
writeChild(connectionAuth.password.toLatin1(),connectionAuth.password.length());
}
thisFn.clear();
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
return buf.length();
}
#else
@@ -691,7 +691,7 @@
else {
myDebug( << "unmatched case in initial handling! should not happen!" << endl);
}
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
if (buf.endsWith(QLatin1String("(y/n)"))) {
int rc = messageBox(QuestionYesNo,thisFn+buf);
if (rc == KMessageBox::Yes) {
@@ -757,14 +757,14 @@
*/
void fishProtocol::shutdownConnection(bool forced){
if (childPid) {
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
childPid->terminate();
#else
int killStatus = kill(childPid,SIGTERM); // We may not have permission...
if (killStatus == 0) waitpid(childPid, 0, 0);
#endif
childPid = 0;
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
::close(childFd); // ...in which case this should do the trick
childFd = -1;
#endif
@@ -1423,14 +1423,14 @@
int rc;
isRunning = true;
finished();
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
fd_set rfds, wfds;
FD_ZERO(&rfds);
#endif
char buf[32768];
int offset = 0;
while (isRunning) {
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
FD_SET(childFd,&rfds);
FD_ZERO(&wfds);
if (outBufPos >= 0) FD_SET(childFd,&wfds);
@@ -1465,7 +1465,7 @@
if (rc >= 0)
outBufPos += rc;
else {
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
if (errno == EINTR)
continue;
myDebug( << "write failed, rc: " << rc << ", error: " << strerror(errno) << endl);
@@ -1482,7 +1482,7 @@
sent();
}
}
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
else if (FD_ISSET(childFd,&rfds)) {
rc = ::read(childFd, buf + offset, sizeof(buf) - offset);
#else
@@ -1496,7 +1496,7 @@
//myDebug( << "left " << noff << " bytes: " << QString::fromLatin1(buf,offset) << endl);
offset = noff;
} else {
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
if (errno == EINTR)
continue;
myDebug( << "read failed, rc: " << rc << ", error: " << strerror(errno) << endl);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/fish/fish.h new/kio-extras-16.08.0/fish/fish.h
--- old/kio-extras-16.04.3/fish/fish.h 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/fish/fish.h 2016-07-30 15:11:52.000000000 +0200
@@ -82,7 +82,7 @@
/** fd for reading and writing to the process */
int childFd;
/** buffer for data to be written */
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
const char *outBuf;
#else
QByteArray outBuf;
@@ -184,7 +184,7 @@
int fishCodeLen;
protected: // Protected methods
/** manages initial communication setup including password queries */
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
int establishConnection(char *buffer, KIO::fileoffset_t buflen);
#else
int establishConnection(const QByteArray &buffer);
@@ -202,7 +202,7 @@
/** creates the subprocess */
bool connectionStart();
/** writes one chunk of data to stdin of child process */
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
void writeChild(const char *buf, KIO::fileoffset_t len);
#else
void writeChild(const QByteArray &buf, KIO::fileoffset_t len);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/info/info.cc new/kio-extras-16.08.0/info/info.cc
--- old/kio-extras-16.04.3/info/info.cc 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/info/info.cc 2016-07-30 15:11:52.000000000 +0200
@@ -3,7 +3,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
+#ifdef Q_OS_WIN
+#include <process.h>
+#define getpid _getpid
+#define popen _popen
+#define pclose _pclose
+#else
#include <unistd.h> // getpid()
+#endif
#include <QCoreApplication>
#include <QFile>
@@ -226,8 +233,13 @@
{
UDSEntry uds_entry;
+#ifdef Q_OS_WIN
+ // Regular file with rwx permission for all
+ uds_entry.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG );
+#else
// Regular file with rwx permission for all
uds_entry.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO );
+#endif
statEntry( uds_entry );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/sftp/kio_sftp.cpp new/kio-extras-16.08.0/sftp/kio_sftp.cpp
--- old/kio-extras-16.04.3/sftp/kio_sftp.cpp 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/sftp/kio_sftp.cpp 2016-07-30 15:11:52.000000000 +0200
@@ -458,7 +458,7 @@
sftpProtocol::sftpProtocol(const QByteArray &pool_socket, const QByteArray &app_socket)
: SlaveBase("kio_sftp", pool_socket, app_socket),
mConnected(false), mPort(-1), mSession(NULL), mSftp(NULL), mPublicKeyAuthInfo(0) {
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
qCDebug(KIO_SMTP_LOG) << "pid = " << getpid();
qCDebug(KIO_SMTP_LOG) << "debug = " << getenv("KIO_SFTP_LOG_VERBOSITY");
@@ -503,7 +503,7 @@
}
sftpProtocol::~sftpProtocol() {
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
qCDebug(KIO_SMTP_LOG) << "pid = " << getpid();
#endif
closeConnection();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/thumbnail/CMakeLists.txt new/kio-extras-16.08.0/thumbnail/CMakeLists.txt
--- old/kio-extras-16.04.3/thumbnail/CMakeLists.txt 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/thumbnail/CMakeLists.txt 2016-07-30 15:11:52.000000000 +0200
@@ -188,30 +188,31 @@
#
# endif()
#
-# ########### next target ###############
-#
-#set ( windowsexethumbnail_SRCS windowsexecreator.cpp icoutils_common.cpp)
-#set ( windowsimagethumbnail_SRCS windowsimagecreator.cpp icoutils_common.cpp)
-#
-#if(WIN32)
-# set ( windowsexethumbnail_SRCS ${windowsexethumbnail_SRCS} icoutils_win.cpp )
-# set ( windowsimagethumbnail_SRCS ${windowsimagethumbnail_SRCS} icoutils_win.cpp )
-#else()
-# set ( windowsexethumbnail_SRCS ${windowsexethumbnail_SRCS} icoutils_wrestool.cpp )
-# set ( windowsimagethumbnail_SRCS ${windowsimagethumbnail_SRCS} icoutils_wrestool.cpp )
-#endif()
-
-# add_library(windowsexethumbnail MODULE ${windowsexethumbnail_SRCS} )
-# target_link_libraries ( windowsexethumbnail ${KIO_LIBRARIES} )
-# install ( TARGETS windowsexethumbnail DESTINATION ${PLUGIN_INSTALL_DIR} )
-# install ( FILES windowsexethumbnail.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-#
-# add_library(windowsimagethumbnail MODULE ${windowsimagethumbnail_SRCS} )
-# target_link_libraries ( windowsimagethumbnail ${KIO_LIBRARIES} )
-# install ( TARGETS windowsimagethumbnail DESTINATION ${PLUGIN_INSTALL_DIR} )
-# install ( FILES windowsimagethumbnail.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-#
-# ########### next target ###############
+
+########### next target ###############
+
+set ( windowsexethumbnail_SRCS windowsexecreator.cpp icoutils_common.cpp)
+set ( windowsimagethumbnail_SRCS windowsimagecreator.cpp icoutils_common.cpp)
+
+if(WIN32)
+ set ( windowsexethumbnail_SRCS ${windowsexethumbnail_SRCS} icoutils_win.cpp )
+ set ( windowsimagethumbnail_SRCS ${windowsimagethumbnail_SRCS} icoutils_win.cpp )
+else()
+ set ( windowsexethumbnail_SRCS ${windowsexethumbnail_SRCS} icoutils_wrestool.cpp )
+ set ( windowsimagethumbnail_SRCS ${windowsimagethumbnail_SRCS} icoutils_wrestool.cpp )
+endif()
+
+add_library(windowsexethumbnail MODULE ${windowsexethumbnail_SRCS} )
+target_link_libraries ( windowsexethumbnail KF5::KIOWidgets )
+install ( TARGETS windowsexethumbnail DESTINATION ${PLUGIN_INSTALL_DIR} )
+install ( FILES windowsexethumbnail.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+add_library(windowsimagethumbnail MODULE ${windowsimagethumbnail_SRCS} )
+target_link_libraries ( windowsimagethumbnail KF5::KIOWidgets )
+install ( TARGETS windowsimagethumbnail DESTINATION ${PLUGIN_INSTALL_DIR} )
+install ( FILES windowsimagethumbnail.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+########### next target ###############
set(comicbookthumbnail_SRCS comiccreator.cpp)
add_library(comicbookthumbnail MODULE ${comicbookthumbnail_SRCS})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/thumbnail/kraorathumbnail.desktop new/kio-extras-16.08.0/thumbnail/kraorathumbnail.desktop
--- old/kio-extras-16.04.3/thumbnail/kraorathumbnail.desktop 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/thumbnail/kraorathumbnail.desktop 2016-07-30 15:11:52.000000000 +0200
@@ -6,8 +6,10 @@
Name[cs]=Dokumenty Krita
Name[da]=Krita-dokumenter
Name[de]=Krita-Dokumente
+Name[el]=Τεκμηρίωση Krita
Name[en_GB]=Krita Documents
Name[es]=Documentos de Krita
+Name[et]=Krita dokumendid
Name[fi]=Krita-tiedostot
Name[gl]=Documentos Krita
Name[is]=Krita skjöl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/thumbnail/thumbnail.cpp new/kio-extras-16.08.0/thumbnail/thumbnail.cpp
--- old/kio-extras-16.04.3/thumbnail/thumbnail.cpp 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/thumbnail/thumbnail.cpp 2016-07-30 15:11:52.000000000 +0200
@@ -26,7 +26,7 @@
#include <machine/param.h>
#endif
#include <sys/types.h>
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
#include <sys/ipc.h>
#include <sys/shm.h>
#endif
@@ -38,6 +38,7 @@
#include <QBitmap>
#include <QCryptographicHash>
#include <QImage>
+#include <QIcon>
#include <QPainter>
#include <QPixmap>
#include <QUrl>
@@ -318,7 +319,7 @@
data(imgData);
}
} else {
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
QByteArray imgData;
QDataStream stream( &imgData, QIODevice::WriteOnly );
//qDebug() << "IMAGE TO SHMID";
@@ -466,9 +467,8 @@
const QMimeDatabase db;
const QString iconName = db.mimeTypeForName("inode/directory").iconName();
- const QPixmap folder = KIconLoader::global()->loadMimeTypeIcon(iconName,
- KIconLoader::Desktop,
- qMin(m_width, m_height));
+ const QPixmap folder = QIcon::fromTheme(iconName).pixmap(qMin(m_width, m_height));
+
const int folderWidth = folder.width();
const int folderHeight = folder.height();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/thumbnail/windowsexecreator.cpp new/kio-extras-16.08.0/thumbnail/windowsexecreator.cpp
--- old/kio-extras-16.04.3/thumbnail/windowsexecreator.cpp 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/thumbnail/windowsexecreator.cpp 2016-07-30 15:11:52.000000000 +0200
@@ -19,8 +19,6 @@
#include <QString>
#include <QImage>
-#include <kdemacros.h>
-
extern "C"
{
Q_DECL_EXPORT ThumbCreator *new_creator()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kio-extras-16.04.3/thumbnail/windowsimagecreator.cpp new/kio-extras-16.08.0/thumbnail/windowsimagecreator.cpp
--- old/kio-extras-16.04.3/thumbnail/windowsimagecreator.cpp 2016-07-03 14:38:11.000000000 +0200
+++ new/kio-extras-16.08.0/thumbnail/windowsimagecreator.cpp 2016-07-30 15:11:52.000000000 +0200
@@ -19,8 +19,6 @@
#include <QString>
#include <QImage>
-#include <kdemacros.h>
-
extern "C"
{
Q_DECL_EXPORT ThumbCreator *new_creator()
1
0
Hello community,
here is the log from the commit of package kimap for openSUSE:Factory checked in at 2016-08-29 14:40:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kimap (Old)
and /work/SRC/openSUSE:Factory/.kimap.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kimap"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kimap/kimap.changes 2016-07-21 07:50:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kimap.new/kimap.changes 2016-08-29 14:40:22.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:18:15 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:05:51 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kimap-16.04.3.tar.xz
New:
----
kimap-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kimap.spec ++++++
--- /var/tmp/diff_new_pack.UG1z4V/_old 2016-08-29 14:40:25.000000000 +0200
+++ /var/tmp/diff_new_pack.UG1z4V/_new 2016-08-29 14:40:25.000000000 +0200
@@ -17,7 +17,7 @@
Name: kimap
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: IMAP library
++++++ kimap-16.04.3.tar.xz -> kimap-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimap-16.04.3/CMakeLists.txt new/kimap-16.08.0/CMakeLists.txt
--- old/kimap-16.04.3/CMakeLists.txt 2016-06-15 06:38:59.000000000 +0200
+++ new/kimap-16.08.0/CMakeLists.txt 2016-08-06 20:10:39.000000000 +0200
@@ -3,7 +3,8 @@
project(KIMAP)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${KIMAP_SOURCE_DIR}/cmake)
include(GenerateExportHeader)
@@ -17,9 +18,11 @@
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
-set(KF5_VERSION "5.19.0")
-set(KIMAP_LIB_VERSION "5.2.3")
-set(KMIME_LIBS_VERSION "5.2.0")
+
+set(PIM_VERSION "5.3.0")
+
+set(KIMAP_LIB_VERSION ${PIM_VERSION})
+set(KMIME_LIBS_VERSION "5.3.0")
ecm_setup_version(${KIMAP_LIB_VERSION} VARIABLE_PREFIX KIMAP
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kimap_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5IMAPConfigVersion.cmake"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimap-16.04.3/autotests/CMakeLists.txt new/kimap-16.08.0/autotests/CMakeLists.txt
--- old/kimap-16.04.3/autotests/CMakeLists.txt 2016-06-15 06:38:59.000000000 +0200
+++ new/kimap-16.08.0/autotests/CMakeLists.txt 2016-08-06 20:10:39.000000000 +0200
@@ -37,6 +37,7 @@
listjobtest
storejobtest
imapsettest
+ idjobtest
idlejobtest
quotarootjobtest
searchjobtest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimap-16.04.3/autotests/idjobtest.cpp new/kimap-16.08.0/autotests/idjobtest.cpp
--- old/kimap-16.04.3/autotests/idjobtest.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/kimap-16.08.0/autotests/idjobtest.cpp 2016-08-06 20:10:39.000000000 +0200
@@ -0,0 +1,71 @@
+/*
+ Copyright (c) 2015 Christian Mollekopf <mollekopf(a)kolabsys.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 2 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include "kimaptest/fakeserver.h"
+#include "kimap/session.h"
+#include "kimap/idjob.h"
+
+#include <QTcpSocket>
+#include <QtTest>
+
+typedef QMap<QByteArray, QByteArray> ArrayMap;
+Q_DECLARE_METATYPE(ArrayMap)
+
+class IdJobTest: public QObject {
+ Q_OBJECT
+
+private Q_SLOTS:
+
+void testId_data() {
+ QTest::addColumn<QList<QByteArray> >("scenario");
+ QTest::addColumn<ArrayMap>("values");
+ QList<QByteArray> scenario;
+ scenario << "S: * PREAUTH"
+ << "C: A000001 ID (\"name\" \"clientid\")"
+ << "S: * ID NIL"
+ << "S: A000001 OK ID completed";
+
+ ArrayMap values;
+ values.insert("name", "clientid");
+ QTest::newRow("good") << scenario << values;
+}
+
+void testId()
+{
+ QFETCH(QList<QByteArray>, scenario);
+ QFETCH(ArrayMap, values);
+
+ FakeServer fakeServer;
+ fakeServer.setScenario(scenario);
+ fakeServer.startAndWait();
+ KIMAP::Session session(QStringLiteral("127.0.0.1"), 5989);
+
+ KIMAP::IdJob *job = new KIMAP::IdJob(&session);
+ foreach (const QByteArray &key, values.keys()) {
+ job->setField(key, values.value(key));
+ }
+ bool result = job->exec();
+ QVERIFY(result);
+ fakeServer.quit();
+}
+
+};
+
+QTEST_GUILESS_MAIN(IdJobTest)
+
+#include "idjobtest.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimap-16.04.3/src/CMakeLists.txt new/kimap-16.08.0/src/CMakeLists.txt
--- old/kimap-16.04.3/src/CMakeLists.txt 2016-06-15 06:38:59.000000000 +0200
+++ new/kimap-16.08.0/src/CMakeLists.txt 2016-08-06 20:10:39.000000000 +0200
@@ -20,6 +20,7 @@
getmetadatajob.cpp
getquotajob.cpp
getquotarootjob.cpp
+ idjob.cpp
idlejob.cpp
imapset.cpp
imapstreamparser.cpp
@@ -94,6 +95,7 @@
GetMetaDataJob
GetQuotaJob
GetQuotaRootJob
+ IdJob
IdleJob
ImapSet
Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimap-16.04.3/src/copyjob.cpp new/kimap-16.08.0/src/copyjob.cpp
--- old/kimap-16.04.3/src/copyjob.cpp 2016-06-15 06:38:59.000000000 +0200
+++ new/kimap-16.08.0/src/copyjob.cpp 2016-08-06 20:10:39.000000000 +0200
@@ -33,7 +33,7 @@
class CopyJobPrivate : public JobPrivate
{
public:
- CopyJobPrivate(Session *session, const QString &name) : JobPrivate(session, name) { }
+ CopyJobPrivate(Session *session, const QString &name) : JobPrivate(session, name), uidBased(false) { }
~CopyJobPrivate() { }
QString mailBox;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimap-16.04.3/src/idjob.cpp new/kimap-16.08.0/src/idjob.cpp
--- old/kimap-16.04.3/src/idjob.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/kimap-16.08.0/src/idjob.cpp 2016-08-06 20:10:39.000000000 +0200
@@ -0,0 +1,76 @@
+/*
+ Copyright (c) 2015 Christian Mollekopf <mollekopf(a)kolabsys.com>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+#include "idjob.h"
+
+#include <KLocalizedString>
+
+#include "job_p.h"
+#include "message_p.h"
+#include "session_p.h"
+
+namespace KIMAP
+{
+ class IdJobPrivate : public JobPrivate
+ {
+ public:
+ IdJobPrivate(Session *session, const QString& name) : JobPrivate(session, name) { }
+ ~IdJobPrivate() { }
+
+ QMap<QByteArray, QByteArray> fields;
+ };
+}
+
+using namespace KIMAP;
+
+IdJob::IdJob(Session *session)
+ : Job(*new IdJobPrivate(session, i18n("Id")))
+{
+}
+
+IdJob::~IdJob()
+{
+}
+
+void IdJob::setField(const QByteArray &name, const QByteArray &value)
+{
+ Q_D(IdJob);
+ d->fields.insert(name, value);
+}
+
+void IdJob::doStart()
+{
+ Q_D(IdJob);
+ QByteArray command = "ID";
+ command += " (";
+ foreach (const QByteArray &name, d->fields.keys()) {
+ command += "\"" + name + "\" \"" + d->fields.value(name) + "\" ";
+ }
+ command.chop(1);
+ command += ")";
+ d->tags << d->sessionInternal()->sendCommand(command);
+}
+
+void IdJob::handleResponse(const Message &response)
+{
+ Q_D(IdJob);
+ if (handleErrorReplies(response) == NotHandled) {
+ // Ignore the response
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimap-16.04.3/src/idjob.h new/kimap-16.08.0/src/idjob.h
--- old/kimap-16.04.3/src/idjob.h 1970-01-01 01:00:00.000000000 +0100
+++ new/kimap-16.08.0/src/idjob.h 2016-08-06 20:10:39.000000000 +0200
@@ -0,0 +1,58 @@
+/*
+ Copyright (c) 2015 Christian Mollekopf <mollekopf(a)kolabsys.com>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+#ifndef KIMAP_IDJOB_H
+#define KIMAP_IDJOB_H
+
+#include "kimap_export.h"
+
+#include "job.h"
+
+namespace KIMAP {
+
+class Session;
+struct Message;
+class IdJobPrivate;
+
+/**
+ * Reports client id.
+ *
+ * This job can be run in any open session.
+ */
+class KIMAP_EXPORT IdJob : public Job
+{
+ Q_OBJECT
+ Q_DECLARE_PRIVATE(IdJob)
+
+ friend class SessionPrivate;
+
+public:
+ IdJob( Session *session);
+ virtual ~IdJob();
+
+ void setField(const QByteArray &name, const QByteArray &field);
+
+protected:
+ void doStart() Q_DECL_OVERRIDE;
+ void handleResponse(const Message &response) Q_DECL_OVERRIDE;
+};
+
+}
+
+#endif
1
0
Hello community,
here is the log from the commit of package kidentitymanagement for openSUSE:Factory checked in at 2016-08-29 14:39:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kidentitymanagement (Old)
and /work/SRC/openSUSE:Factory/.kidentitymanagement.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kidentitymanagement"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kidentitymanagement/kidentitymanagement.changes 2016-07-21 07:51:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kidentitymanagement.new/kidentitymanagement.changes 2016-08-29 14:39:53.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:17:35 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:04:32 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kidentitymanagement-16.04.3.tar.xz
New:
----
kidentitymanagement-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kidentitymanagement.spec ++++++
--- /var/tmp/diff_new_pack.urDCS9/_old 2016-08-29 14:39:55.000000000 +0200
+++ /var/tmp/diff_new_pack.urDCS9/_new 2016-08-29 14:39:55.000000000 +0200
@@ -17,7 +17,7 @@
Name: kidentitymanagement
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: Identity Management
++++++ kidentitymanagement-16.04.3.tar.xz -> kidentitymanagement-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kidentitymanagement-16.04.3/CMakeLists.txt new/kidentitymanagement-16.08.0/CMakeLists.txt
--- old/kidentitymanagement-16.04.3/CMakeLists.txt 2016-06-15 06:38:47.000000000 +0200
+++ new/kidentitymanagement-16.08.0/CMakeLists.txt 2016-08-06 20:10:57.000000000 +0200
@@ -3,7 +3,8 @@
project(KIdentityManagement)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -17,9 +18,10 @@
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
-set(KF5_VERSION "5.19.0")
-set(KIDENTITYMANAGEMENT_LIB_VERSION "5.2.3")
-set(PIMTEXTEDIT_LIB_VERSION "5.2.0")
+set(PIM_VERSION "5.3.0")
+
+set(KIDENTITYMANAGEMENT_LIB_VERSION ${PIM_VERSION})
+set(PIMTEXTEDIT_LIB_VERSION "5.3.0")
ecm_setup_version(${KIDENTITYMANAGEMENT_LIB_VERSION} VARIABLE_PREFIX KIDENTITYMANAGEMENT
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kidentitymanagement_version.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kidentitymanagement-16.04.3/src/CMakeLists.txt new/kidentitymanagement-16.08.0/src/CMakeLists.txt
--- old/kidentitymanagement-16.04.3/src/CMakeLists.txt 2016-06-15 06:38:47.000000000 +0200
+++ new/kidentitymanagement-16.08.0/src/CMakeLists.txt 2016-08-06 20:10:57.000000000 +0200
@@ -29,7 +29,6 @@
Qt5::Network
KF5::Completion
KF5::I18n
- KF5::TextWidgets
KF5::WidgetsAddons
KF5::XmlGui
KF5::KIOWidgets
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kidentitymanagement-16.04.3/src/identitymanager.cpp new/kidentitymanagement-16.08.0/src/identitymanager.cpp
--- old/kidentitymanagement-16.04.3/src/identitymanager.cpp 2016-06-15 06:38:47.000000000 +0200
+++ new/kidentitymanagement-16.08.0/src/identitymanager.cpp 2016-08-06 20:10:57.000000000 +0200
@@ -285,6 +285,13 @@
}
}
+Q_GLOBAL_STATIC(IdentityManager, s_self)
+
+IdentityManager *IdentityManager::self()
+{
+ return s_self;
+}
+
IdentityManager::IdentityManager(bool readonly, QObject *parent,
const char *name)
: QObject(parent),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kidentitymanagement-16.04.3/src/identitymanager.h new/kidentitymanagement-16.08.0/src/identitymanager.h
--- old/kidentitymanagement-16.04.3/src/identitymanager.h 2016-06-15 06:38:47.000000000 +0200
+++ new/kidentitymanagement-16.08.0/src/identitymanager.h 2016-08-06 20:10:57.000000000 +0200
@@ -50,6 +50,15 @@
const char *name = 0);
virtual ~IdentityManager();
+ /**
+ * Creates or reuses the identity manager instance for this process.
+ * It loads the emailidentities file to create identities.
+ * This sets readonly to false, so you should create a separate instance
+ * if you need it to be readonly.
+ * @since 5.2.91
+ */
+ static IdentityManager *self();
+
public:
typedef QList<Identity>::Iterator Iterator;
typedef QList<Identity>::ConstIterator ConstIterator;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kidentitymanagement-16.04.3/src/signature.cpp new/kidentitymanagement-16.08.0/src/signature.cpp
--- old/kidentitymanagement-16.04.3/src/signature.cpp 2016-06-15 06:38:47.000000000 +0200
+++ new/kidentitymanagement-16.08.0/src/signature.cpp 2016-08-06 20:10:57.000000000 +0200
@@ -27,7 +27,6 @@
#include <kconfiggroup.h>
#include <QUrl>
#include <kprocess.h>
-#include <KRichTextEdit>
#include <QFileInfo>
#include <QSharedPointer>
@@ -46,6 +45,8 @@
public:
SignaturePrivate(Signature *qq)
: enabled(false),
+ type(Signature::Disabled),
+ inlinedHtml(false),
q(qq)
{
}
1
0
Hello community,
here is the log from the commit of package kholidays for openSUSE:Factory checked in at 2016-08-29 14:39:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kholidays (Old)
and /work/SRC/openSUSE:Factory/.kholidays.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kholidays"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kholidays/kholidays.changes 2016-07-21 07:46:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kholidays.new/kholidays.changes 2016-08-29 14:39:40.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:17:28 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:04:14 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kholidays-16.04.3.tar.xz
New:
----
kholidays-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kholidays.spec ++++++
--- /var/tmp/diff_new_pack.sJ52KE/_old 2016-08-29 14:39:41.000000000 +0200
+++ /var/tmp/diff_new_pack.sJ52KE/_new 2016-08-29 14:39:41.000000000 +0200
@@ -17,7 +17,7 @@
Name: kholidays
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: KDE PIM Libraries
License: LGPL-2.1+
++++++ kholidays-16.04.3.tar.xz -> kholidays-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kholidays-16.04.3/CMakeLists.txt new/kholidays-16.08.0/CMakeLists.txt
--- old/kholidays-16.04.3/CMakeLists.txt 2016-06-15 06:38:34.000000000 +0200
+++ new/kholidays-16.08.0/CMakeLists.txt 2016-08-06 09:17:13.000000000 +0200
@@ -3,7 +3,8 @@
project(KHolidays)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -17,9 +18,9 @@
include(KDECMakeSettings)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
+set(PIM_VERSION "5.3.0")
-set(KF5_VERSION "5.19.0")
-set(KHOLIDAYS_LIB_VERSION "5.2.3")
+set(KHOLIDAYS_LIB_VERSION ${PIM_VERSION})
ecm_setup_version(${KHOLIDAYS_LIB_VERSION} VARIABLE_PREFIX KHOLIDAYS
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kholidays_version.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kholidays-16.04.3/holidays/plan2/holiday_cz_cs new/kholidays-16.08.0/holidays/plan2/holiday_cz_cs
--- old/kholidays-16.04.3/holidays/plan2/holiday_cz_cs 2016-06-15 06:38:34.000000000 +0200
+++ new/kholidays-16.08.0/holidays/plan2/holiday_cz_cs 2016-08-06 09:17:13.000000000 +0200
@@ -19,12 +19,13 @@
:: Public Holidays
"Nový rok" public on january 1
"Státní svátek - Den vzniku samostatného českého státu" public on january 1
+"Velký pátek" public religious on ((year >= 2016) ? ([easter] - 2 days): noop)
"Velikonoce" public religious on easter
"Velikonoční pondělí" public religious on easter plus 1 days
"Svátek práce" public on may 1
"Státní svátek - Den osvobození" public on may 8
"Státní svátek - Den slovanských věrozvěstů Cyrila a Metoděje" public on july 5
-"Statní svátek - Den upálení mistra Jana Husa" public on july 6
+"Státní svátek - Den upálení mistra Jana Husa" public on july 6
"Státní svátek - Den České státnosti" public on september 28
"Státní svátek - Den vzniku samostatného Československa (1918)" public on october 28
"Státní svátek - Den boje za svobodu a demokracii" public on november 17
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kholidays-16.04.3/holidays/plan2/holiday_it_it new/kholidays-16.08.0/holidays/plan2/holiday_it_it
--- old/kholidays-16.04.3/holidays/plan2/holiday_it_it 2016-06-15 06:38:34.000000000 +0200
+++ new/kholidays-16.08.0/holidays/plan2/holiday_it_it 2016-08-06 09:17:13.000000000 +0200
@@ -44,7 +44,7 @@
"Domenica delle Palme" religious on easter minus 7 days
"Ascensione (data tradizionale)" religious on easter plus 39 days
:: Ascensione has been moved in Italy to the next Sunday after 1977
-"Ascensione (Chiesa Cattolica)" religious on ((year >= 1977) ? [easter plus 42 days]: noop)
+"Ascensione (Chiesa Cattolica)" religious on ((year >= 1977) ? ([easter] + 42 days): noop)
"Pentecoste" religious on easter plus 49 days
"Santissima Trinità" religious on easter plus 56 days
"Corpus Domini" religious on easter plus 63 days
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kholidays-16.04.3/src/lunarphase.cpp new/kholidays-16.08.0/src/lunarphase.cpp
--- old/kholidays-16.04.3/src/lunarphase.cpp 2016-06-15 06:38:34.000000000 +0200
+++ new/kholidays-16.08.0/src/lunarphase.cpp 2016-08-06 09:17:13.000000000 +0200
@@ -148,7 +148,6 @@
#include <string.h>
#include <stdlib.h>
#include <time.h>
-#include <unistd.h>
static const double PI = 3.14159265358979323846;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kholidays-16.04.3/src/lunarphase.h new/kholidays-16.08.0/src/lunarphase.h
--- old/kholidays-16.04.3/src/lunarphase.h 2016-06-15 06:38:34.000000000 +0200
+++ new/kholidays-16.08.0/src/lunarphase.h 2016-08-06 09:17:13.000000000 +0200
@@ -1,7 +1,7 @@
/*
This file is part of the kholidays library.
- Copyright (c) 2004,2007,3009 Allen Winter <winter(a)kde.org>
+ Copyright (c) 2004,2007,2009 Allen Winter <winter(a)kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kholidays-16.04.3/src/parsers/plan2/holidayparserplan.cpp new/kholidays-16.08.0/src/parsers/plan2/holidayparserplan.cpp
--- old/kholidays-16.04.3/src/parsers/plan2/holidayparserplan.cpp 2016-06-15 06:38:34.000000000 +0200
+++ new/kholidays-16.08.0/src/parsers/plan2/holidayparserplan.cpp 2016-08-06 09:17:13.000000000 +0200
@@ -43,7 +43,6 @@
#include <stdio.h>
#include <stdlib.h>
-#include <pwd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <limits.h>
1
0
Hello community,
here is the log from the commit of package kgpg for openSUSE:Factory checked in at 2016-08-29 14:39:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kgpg (Old)
and /work/SRC/openSUSE:Factory/.kgpg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kgpg"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kgpg/kgpg.changes 2016-07-21 07:46:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kgpg.new/kgpg.changes 2016-08-29 14:39:25.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:17:09 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:03:35 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kgpg-16.04.3.tar.xz
New:
----
kgpg-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kgpg.spec ++++++
--- /var/tmp/diff_new_pack.xq14LX/_old 2016-08-29 14:39:26.000000000 +0200
+++ /var/tmp/diff_new_pack.xq14LX/_new 2016-08-29 14:39:26.000000000 +0200
@@ -17,7 +17,7 @@
Name: kgpg
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Encryption Tool
License: GPL-2.0+
++++++ kgpg-16.04.3.tar.xz -> kgpg-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kgpg-16.04.3/doc/index.docbook new/kgpg-16.08.0/doc/index.docbook
--- old/kgpg-16.04.3/doc/index.docbook 2016-06-06 18:58:55.000000000 +0200
+++ new/kgpg-16.08.0/doc/index.docbook 2016-08-11 16:19:31.000000000 +0200
@@ -329,6 +329,11 @@
To import/export public keys, you can use drag
and drop or the Copy/Paste keyboard shortcuts.</para>
+<para>You can export a public key via email, to the clipboard, to a keyserver or to a local file.
+Use the options in the export dialog to export everything, export without attributes (photo ids)
+or export a clean key &ie; the key itself including its subkeys, but excluding all signatures.
+</para>
+
<sect2 id="keymanager">
<title>Key Manager</title>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kgpg-16.04.3/keysmanager.cpp new/kgpg-16.08.0/keysmanager.cpp
--- old/kgpg-16.04.3/keysmanager.cpp 2016-06-06 18:58:55.000000000 +0200
+++ new/kgpg-16.08.0/keysmanager.cpp 2016-08-11 16:19:31.000000000 +0200
@@ -949,6 +949,9 @@
QString mess = i18n("<qt>Are you sure you want to delete Photo id <b>%1</b><br/>from key <b>%2 <%3></b>?</qt>",
und->getId(), parent->getName(), parent->getEmail());
+ if (KMessageBox::warningContinueCancel(this, mess) != KMessageBox::Continue)
+ return;
+
KGpgDelUid *deluid = new KGpgDelUid(this, und);
connect(deluid, SIGNAL(done(int)), SLOT(slotDelPhotoFinished(int)));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kgpg-16.04.3/kgpg.appdata.xml new/kgpg-16.08.0/kgpg.appdata.xml
--- old/kgpg-16.04.3/kgpg.appdata.xml 2016-06-06 18:58:55.000000000 +0200
+++ new/kgpg-16.08.0/kgpg.appdata.xml 2016-08-11 16:19:31.000000000 +0200
@@ -19,6 +19,7 @@
<name xml:lang="fr">KGpg</name>
<name xml:lang="gl">KGpg</name>
<name xml:lang="hu">KGpg</name>
+ <name xml:lang="ia">KGpg</name>
<name xml:lang="it">KGpg</name>
<name xml:lang="ko">KGpg</name>
<name xml:lang="lt">KGpg</name>
@@ -55,6 +56,7 @@
<summary xml:lang="fr">Outil de chiffrement</summary>
<summary xml:lang="gl">Ferramenta para cifrar</summary>
<summary xml:lang="hu">Titkosító eszköz</summary>
+ <summary xml:lang="ia">Instrumento per cryptar</summary>
<summary xml:lang="it">Strumento di cifratura</summary>
<summary xml:lang="ko">암호화 도구</summary>
<summary xml:lang="lt">Šifravimo įrankis</summary>
@@ -94,6 +96,7 @@
<p xml:lang="fr">KGpg est une interface simple pour GnuPG, un puissant utilitaire de chiffrement. Il peut vous aider à créer et gérer vos clés, importer et exporter des clés, afficher des signatures de clés, des états de confiance et des dates d'expiration.</p>
<p xml:lang="gl">KGpg é unha interface sinxela para GnuPG, unha potente ferramenta para cifrar. Pode axudalo a crear e xestionar chaves, importar e exportar chaves e ver as sinaturas, o estado de confianza e a data de caducidade das chaves.</p>
<p xml:lang="hu">A KGpg egy egyszerű felület a GnuPG-hez, a hatékony titkosító segédprogramhoz. Segíthet a kulcsok beállításában és kezelésében, kulcsok importálásában és exportálásában, kulcsaláírások, megbízhatósági állapot és lejárati idők megtekintésében.</p>
+ <p xml:lang="ia">Kgpg es un simple interface per GnuPG, un instrumento potente per cryptar. Il pote adjutar te per configurar e gerer tu claves, importar e exportar claves, vider signaturas de clave, le stato de confidentia e le datas de expiration.</p>
<p xml:lang="it">KPgp è un'interfaccia semplice per GnuPG, un potente strumento di cifratura. Ti aiuta a configurare e gestire le tue chiavi, importare ed esportare le chiavi, visualizzarne le firme, lo stato di affidabilità e la data di scadenza.</p>
<p xml:lang="ko">KGpg는 강력한 암호화 유틸리티 GnuPG의 GUI 인터페이스입니다. 키를 설정하고 관리할 수 있으며, 키를 내보내고 가져오고, 키 서명, 신뢰 상태, 만료일을 볼 수 있습니다.</p>
<p xml:lang="nb">KGpg er en enkel brukerflate for GnuPG, et kraftig krypteringsverktøy. Det kan hjelpe til å opprette og håndtere nøkler, importere og eksportere nøkler, vise nøkkelsignaturer, tillitsstatus og utløpsdatoer.</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kgpg-16.04.3/main.cpp new/kgpg-16.08.0/main.cpp
--- old/kgpg-16.04.3/main.cpp 2016-06-06 18:58:55.000000000 +0200
+++ new/kgpg-16.08.0/main.cpp 2016-08-11 16:19:31.000000000 +0200
@@ -23,7 +23,7 @@
static const char description[] =
I18N_NOOP("KGpg - simple gui for gpg\n\nKGpg was designed to make gpg very easy to use.\nI tried to make it as secure as possible.\nHope you enjoy it.");
-static const char version[] = "2.17.40";
+static const char version[] = "2.18.0";
int main(int argc, char *argv[])
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kgpg-16.04.3/transactions/kgpgdelkey.cpp new/kgpg-16.08.0/transactions/kgpgdelkey.cpp
--- old/kgpg-16.04.3/transactions/kgpgdelkey.cpp 2016-06-06 18:58:55.000000000 +0200
+++ new/kgpg-16.08.0/transactions/kgpgdelkey.cpp 2016-08-11 16:19:31.000000000 +0200
@@ -45,7 +45,24 @@
bool
KGpgDelKey::nextLine(const QString &line)
{
- if (!line.startsWith(QLatin1String("[GNUPG:] GOT_IT")))
+ if (line.startsWith(QLatin1String("[GNUPG:] KEY_CONSIDERED "))) {
+ const QStringList &parts = line.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ if (parts.count() < 3) {
+ setSuccess(KGpgTransaction::TS_MSG_SEQUENCE);
+ } else {
+ const QString &fpr = parts[2];
+ bool mine = false;
+
+ foreach (const KGpgKeyNode *key, m_keys) {
+ mine = (key->getFingerprint() == fpr);
+ if (mine)
+ break;
+ }
+
+ if (!mine)
+ setSuccess(KGpgTransaction::TS_MSG_SEQUENCE);
+ }
+ } else if (!line.startsWith(QLatin1String("[GNUPG:] GOT_IT")))
setSuccess(KGpgTransaction::TS_MSG_SEQUENCE);
return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kgpg-16.04.3/transactions/kgpgimport.cpp new/kgpg-16.08.0/transactions/kgpgimport.cpp
--- old/kgpg-16.04.3/transactions/kgpgimport.cpp 2016-06-06 18:58:55.000000000 +0200
+++ new/kgpg-16.08.0/transactions/kgpgimport.cpp 2016-08-11 16:19:31.000000000 +0200
@@ -127,7 +127,7 @@
return i18n("The import result string has an unsupported format in line %1.<br />Please see the detailed log for more information.", line);
}
- for (int i = RESULT_PARTS_MAX - 1; (i >= 0) && fine; i--)
+ for (int i = RESULT_PARTS_MAX - 1; i >= 0; i--)
fine = (rcode[i] != 0);
if (!fine)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kgpg-16.04.3/transactions/kgpgtransaction.cpp new/kgpg-16.08.0/transactions/kgpgtransaction.cpp
--- old/kgpg-16.04.3/transactions/kgpgtransaction.cpp 2016-06-06 18:58:55.000000000 +0200
+++ new/kgpg-16.08.0/transactions/kgpgtransaction.cpp 2016-08-11 16:19:31.000000000 +0200
@@ -238,6 +238,8 @@
m_success = KGpgTransaction::TS_USER_ABORTED;
} else if (line.startsWith(QLatin1String("[GNUPG:] CARDCTRL "))) {
// just ignore them, pinentry should handle that
+ } else if (line.startsWith(QLatin1String("[GNUPG:] PINENTRY_LAUNCHED "))) {
+ // just ignore them, just means pinentry is asked for password input
} else {
// all known hints
int i = 0;
1
0
Hello community,
here is the log from the commit of package kget for openSUSE:Factory checked in at 2016-08-29 14:39:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kget (Old)
and /work/SRC/openSUSE:Factory/.kget.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kget"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kget/kget.changes 2016-07-21 07:46:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kget.new/kget.changes 2016-08-29 14:39:09.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:16:47 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:02:44 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kget-16.04.3.tar.xz
New:
----
kget-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kget.spec ++++++
--- /var/tmp/diff_new_pack.Jb4E0R/_old 2016-08-29 14:39:11.000000000 +0200
+++ /var/tmp/diff_new_pack.Jb4E0R/_new 2016-08-29 14:39:11.000000000 +0200
@@ -17,7 +17,7 @@
Name: kget
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Download Manager
License: GPL-2.0+
++++++ kget-16.04.3.tar.xz -> kget-16.08.0.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdnssd for openSUSE:Factory checked in at 2016-08-29 14:38:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdnssd (Old)
and /work/SRC/openSUSE:Factory/.kdnssd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdnssd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdnssd/kdnssd.changes 2016-07-21 07:45:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdnssd.new/kdnssd.changes 2016-08-29 14:38:54.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:16:08 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 15:00:59 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
zeroconf-ioslave-16.04.3.tar.xz
New:
----
zeroconf-ioslave-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdnssd.spec ++++++
--- /var/tmp/diff_new_pack.eq51un/_old 2016-08-29 14:38:55.000000000 +0200
+++ /var/tmp/diff_new_pack.eq51un/_new 2016-08-29 14:38:55.000000000 +0200
@@ -20,7 +20,7 @@
Name: kdnssd
BuildRequires: libkde4-devel
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Zeroconf Support for KDE
License: GPL-2.0+
++++++ zeroconf-ioslave-16.04.3.tar.xz -> zeroconf-ioslave-16.08.0.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdenetwork4-filesharing for openSUSE:Factory checked in at 2016-08-29 14:38:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdenetwork4-filesharing (Old)
and /work/SRC/openSUSE:Factory/.kdenetwork4-filesharing.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdenetwork4-filesharing"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdenetwork4-filesharing/kdenetwork4-filesharing.changes 2016-07-21 07:45:32.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdenetwork4-filesharing.new/kdenetwork4-filesharing.changes 2016-08-29 14:38:41.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:14:16 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:55:15 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kdenetwork-filesharing-16.04.3.tar.xz
New:
----
kdenetwork-filesharing-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdenetwork4-filesharing.spec ++++++
--- /var/tmp/diff_new_pack.F4JPnw/_old 2016-08-29 14:38:41.000000000 +0200
+++ /var/tmp/diff_new_pack.F4JPnw/_new 2016-08-29 14:38:41.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdenetwork4-filesharing
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: KDE Network Libraries
License: GPL-2.0+
++++++ kdenetwork-filesharing-16.04.3.tar.xz -> kdenetwork-filesharing-16.08.0.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdebase4-runtime for openSUSE:Factory checked in at 2016-08-29 14:38:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase4-runtime (Old)
and /work/SRC/openSUSE:Factory/.kdebase4-runtime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase4-runtime"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase4-runtime/kdebase4-runtime.changes 2016-07-21 07:45:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdebase4-runtime.new/kdebase4-runtime.changes 2016-08-29 14:38:27.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:13:30 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:52:39 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kde-runtime-16.04.3.tar.xz
New:
----
kde-runtime-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebase4-runtime.spec ++++++
--- /var/tmp/diff_new_pack.CstRve/_old 2016-08-29 14:38:29.000000000 +0200
+++ /var/tmp/diff_new_pack.CstRve/_new 2016-08-29 14:38:29.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdebase4-runtime
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: The KDE Runtime Components
License: GPL-2.0+
++++++ kde-runtime-16.04.3.tar.xz -> kde-runtime-16.08.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kdebase4-runtime/kde-runtime-16.04.3.tar.xz /work/SRC/openSUSE:Factory/.kdebase4-runtime.new/kde-runtime-16.08.0.tar.xz differ: char 26, line 1
1
0
Hello community,
here is the log from the commit of package kdebase4 for openSUSE:Factory checked in at 2016-08-29 14:38:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase4 (Old)
and /work/SRC/openSUSE:Factory/.kdebase4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase4/kdebase4.changes 2016-07-21 07:45:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdebase4.new/kdebase4.changes 2016-08-29 14:38:12.000000000 +0200
@@ -1,0 +2,29 @@
+Mon Aug 15 10:10:15 UTC 2016 - wbauer(a)tmo.at
+
+- Disable build of the KDE4 folderview applet by setting the
+ cmake option BUILD_plasma=OFF instead of removing the files after
+ it has been built
+
+-------------------------------------------------------------------
+Fri Aug 12 10:13:14 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:51:55 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
+Mon Jul 18 08:43:53 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Drop the buildrequires on baloo and libbaloowidgets. This will not
+ work with the Baloo5 based db.
+
+-------------------------------------------------------------------
Old:
----
kde-baseapps-16.04.3.tar.xz
New:
----
kde-baseapps-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebase4.spec ++++++
--- /var/tmp/diff_new_pack.eXmYJz/_old 2016-08-29 14:38:14.000000000 +0200
+++ /var/tmp/diff_new_pack.eXmYJz/_new 2016-08-29 14:38:14.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdebase4
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: The Base KDE Apps
License: GPL-2.0+
@@ -28,9 +28,7 @@
Source2: %{name}-rpmlintrc
# PATCH-FEATURE-OPENSUSE dolphin-go_up.diff -- adds a "go up" button to dolphin's default toolbar.
Patch1: dolphin-go_up.diff
-BuildRequires: baloo-devel
BuildRequires: fdupes
-BuildRequires: libbaloowidgets-devel
BuildRequires: libkactivities-devel
BuildRequires: libkde4-devel >= 4.14
BuildRequires: libsmbclient-devel
@@ -48,7 +46,7 @@
%patch1 -p1
%build
- %cmake_kde4 -d build
+ %cmake_kde4 -d build -- -DBUILD_plasma=OFF
%make_jobs
%install
@@ -78,10 +76,6 @@
rm -rf %{buildroot}%{_kde4_configdir}/servicemenu.knsrc
rm -rf %{buildroot}%{_kde4_servicetypesdir}/fileviewversioncontrolplugin.desktop
- # Remove the plasmoid-folderview. This is creating confusion with the Plasma5 counterpart
- rm -rf %{buildroot}%{_kde4_modulesdir}/plasma_applet_folderview.so
- rm -rf %{buildroot}%{_kde4_servicesdir}/plasma-applet-folderview.desktop
-
%package -n kdepasswd
Summary: KDE Password Changer
++++++ kde-baseapps-16.04.3.tar.xz -> kde-baseapps-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-baseapps-16.04.3/CMakeLists.txt new/kde-baseapps-16.08.0/CMakeLists.txt
--- old/kde-baseapps-16.04.3/CMakeLists.txt 2016-06-18 08:55:44.000000000 +0200
+++ new/kde-baseapps-16.08.0/CMakeLists.txt 2016-08-08 07:06:13.000000000 +0200
@@ -44,7 +44,7 @@
add_subdirectory( keditbookmarks )
add_subdirectory( konqueror )
add_subdirectory( kfind )
-add_subdirectory( plasma )
+macro_optional_add_subdirectory( plasma )
add_subdirectory( konq-plugins )
if ( Q_WS_MAC )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-baseapps-16.04.3/konq-plugins/searchbar/searchbar.desktop new/kde-baseapps-16.08.0/konq-plugins/searchbar/searchbar.desktop
--- old/kde-baseapps-16.04.3/konq-plugins/searchbar/searchbar.desktop 2016-06-18 08:55:44.000000000 +0200
+++ new/kde-baseapps-16.08.0/konq-plugins/searchbar/searchbar.desktop 2016-08-08 07:06:13.000000000 +0200
@@ -61,10 +61,10 @@
Name[ru]=Панель поиска
Name[sk]=Lišta pre vyhľadávanie
Name[sl]=Iskalna vrstica
-Name[sr]=Претраживачка трака
-Name[sr@ijekavian]=Претраживачка трака
-Name[sr@ijekavianlatin]=Pretraživačka traka
-Name[sr@latin]=Pretraživačka traka
+Name[sr]=Трака претраге
+Name[sr@ijekavian]=Трака претраге
+Name[sr@ijekavianlatin]=Traka pretrage
+Name[sr@latin]=Traka pretrage
Name[sv]=Sökrad
Name[tg]=Панели ҷустуҷӯӣ
Name[th]=แถบการค้นหา
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-baseapps-16.04.3/konqueror/src/konqview.cpp new/kde-baseapps-16.08.0/konqueror/src/konqview.cpp
--- old/kde-baseapps-16.04.3/konqueror/src/konqview.cpp 2016-06-18 08:55:44.000000000 +0200
+++ new/kde-baseapps-16.08.0/konqueror/src/konqview.cpp 2016-08-08 07:06:13.000000000 +0200
@@ -269,7 +269,7 @@
if ( !m_pMainWindow->viewManager()->isLoadingProfile() )
{
- // Honor "non-removeable passive mode" (like the dirtree)
+ // Honor "non-removable passive mode" (like the dirtree)
prop = m_service->property( "X-KDE-BrowserView-PassiveMode");
if ( prop.isValid() && prop.toBool() )
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-baseapps-16.04.3/konqueror/src/konqviewmanager.cpp new/kde-baseapps-16.08.0/konqueror/src/konqviewmanager.cpp
--- old/kde-baseapps-16.04.3/konqueror/src/konqviewmanager.cpp 2016-06-18 08:55:44.000000000 +0200
+++ new/kde-baseapps-16.08.0/konqueror/src/konqviewmanager.cpp 2016-08-08 07:06:13.000000000 +0200
@@ -615,7 +615,7 @@
removeTab( frame );
}
else if (parentContainer->frameType() == KonqFrameBase::MainWindow)
- kDebug() << "parentContainer is a KonqMainWindow. This shouldn't be removeable, not removing.";
+ kDebug() << "parentContainer is a KonqMainWindow. This shouldn't be removable, not removing.";
else
kDebug() << "Unrecognized frame type, not removing.";
1
0
Hello community,
here is the log from the commit of package kcontacts for openSUSE:Factory checked in at 2016-08-29 14:37:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcontacts (Old)
and /work/SRC/openSUSE:Factory/.kcontacts.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcontacts"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcontacts/kcontacts.changes 2016-07-21 07:45:13.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kcontacts.new/kcontacts.changes 2016-08-29 14:37:57.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:12:23 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:50:42 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kcontacts-16.04.3.tar.xz
New:
----
kcontacts-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcontacts.spec ++++++
--- /var/tmp/diff_new_pack.cVjnvj/_old 2016-08-29 14:37:59.000000000 +0200
+++ /var/tmp/diff_new_pack.cVjnvj/_new 2016-08-29 14:37:59.000000000 +0200
@@ -18,7 +18,7 @@
%define kf5_version 5.5.0
Name: kcontacts
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: New address book API for KDE
License: LGPL-2.1+
++++++ kcontacts-16.04.3.tar.xz -> kcontacts-16.08.0.tar.xz ++++++
++++ 6734 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kcolorchooser for openSUSE:Factory checked in at 2016-08-29 14:37:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcolorchooser (Old)
and /work/SRC/openSUSE:Factory/.kcolorchooser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcolorchooser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcolorchooser/kcolorchooser.changes 2016-07-21 07:45:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kcolorchooser.new/kcolorchooser.changes 2016-08-29 14:37:33.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:12:15 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:50:29 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kcolorchooser-16.04.3.tar.xz
New:
----
kcolorchooser-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcolorchooser.spec ++++++
--- /var/tmp/diff_new_pack.u8aRTE/_old 2016-08-29 14:37:35.000000000 +0200
+++ /var/tmp/diff_new_pack.u8aRTE/_new 2016-08-29 14:37:35.000000000 +0200
@@ -17,7 +17,7 @@
Name: kcolorchooser
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Color Chooser
License: MIT
@@ -48,7 +48,7 @@
%install
%kf5_makeinstall -C build
- %suse_update_desktop_file -r kcolorchooser Utility DesktopUtility
+ %suse_update_desktop_file -r org.kde.kcolorchooser Utility DesktopUtility
%post -p /sbin/ldconfig
@@ -57,7 +57,7 @@
%files
%defattr(-,root,root)
%_bindir/kcolorchooser
-%_kf5_applicationsdir/kcolorchooser.desktop
+%_kf5_applicationsdir/org.kde.kcolorchooser.desktop
%{_datadir}/icons/hicolor/*/apps/kcolorchooser.png
%changelog
++++++ kcolorchooser-16.04.3.tar.xz -> kcolorchooser-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcolorchooser-16.04.3/CMakeLists.txt new/kcolorchooser-16.08.0/CMakeLists.txt
--- old/kcolorchooser-16.04.3/CMakeLists.txt 2016-03-09 10:16:01.000000000 +0100
+++ new/kcolorchooser-16.08.0/CMakeLists.txt 2016-07-14 23:59:47.000000000 +0200
@@ -22,17 +22,16 @@
Widgets)
find_package(KF5 REQUIRED COMPONENTS
I18n
- WidgetsAddons
XmlGui)
set(kcolorchooser_SRCS kcolorchooser.cpp )
add_executable(kcolorchooser ${kcolorchooser_SRCS})
-target_link_libraries(kcolorchooser Qt5::Gui KF5::I18n KF5::WidgetsAddons KF5::XmlGui)
+target_link_libraries(kcolorchooser Qt5::Gui KF5::I18n KF5::XmlGui)
install(TARGETS kcolorchooser ${INSTALL_TARGETS_DEFAULT_ARGS})
-install(PROGRAMS kcolorchooser.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
+install(PROGRAMS org.kde.kcolorchooser.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
ecm_install_icons(ICONS
16-apps-kcolorchooser.png
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcolorchooser-16.04.3/kcolorchooser.desktop new/kcolorchooser-16.08.0/kcolorchooser.desktop
--- old/kcolorchooser-16.04.3/kcolorchooser.desktop 2016-03-09 10:16:01.000000000 +0100
+++ new/kcolorchooser-16.08.0/kcolorchooser.desktop 1970-01-01 01:00:00.000000000 +0100
@@ -1,161 +0,0 @@
-[Desktop Entry]
-Type=Application
-Exec=kcolorchooser
-Icon=kcolorchooser
-Terminal=false
-X-DocPath=fundamentals/index.html#colors
-GenericName=Color Chooser
-GenericName[af]=Kleur Kieser
-GenericName[ar]=مختار اللون
-GenericName[ast]=Seleutor de colores
-GenericName[bg]=Избор на цвят
-GenericName[br]=Dibaber livioù
-GenericName[bs]=Birač boja
-GenericName[ca]=Selector de colors
-GenericName[ca@valencia]=Selector de colors
-GenericName[cs]=Výběr barev
-GenericName[cy]=Dewis Lliwiau
-GenericName[da]=Farvevælger
-GenericName[de]=Farbauswahl
-GenericName[el]=Επιλογέας χρωμάτων
-GenericName[en_GB]=Colour Chooser
-GenericName[eo]=Kolora elektilo
-GenericName[es]=Selector de colores
-GenericName[et]=Värvivalija
-GenericName[eu]=Kolore hautatzailea
-GenericName[fa]=انتخابکننده رنگ
-GenericName[fi]=Värivalitsin
-GenericName[fr]=Sélecteur de couleurs
-GenericName[ga]=Roghnóir Dathanna
-GenericName[gl]=Selector de cores
-GenericName[he]=בוחר צבעים
-GenericName[hi]=रंग चयनक
-GenericName[hne]=रंग चुनइया
-GenericName[hr]=Izbornik boja
-GenericName[hu]=Színválasztó
-GenericName[ia]=Selector de color
-GenericName[is]=Litavalstól
-GenericName[it]=Selettore di colori
-GenericName[ja]=色の選択
-GenericName[kk]=Түсті таңдау
-GenericName[km]=កម្មវិធីជ្រើសពណ៌
-GenericName[ko]=색상 선택기
-GenericName[ku]=Bijarkerê Rengan
-GenericName[lt]=Spalvų parinkiklis
-GenericName[lv]=Krāsu izvēlētājs
-GenericName[mk]=Избирач на бои
-GenericName[mr]=रंग निवडकर्ता
-GenericName[ms]=Pemilih Warna
-GenericName[nb]=Fargevelger
-GenericName[nds]=Klöörköör
-GenericName[ne]=रङ चयनकर्ता
-GenericName[nl]=Kleurenkiezer
-GenericName[nn]=Fargeveljar
-GenericName[pa]=ਰੰਗ ਸੰਰਚਨਾ
-GenericName[pl]=Wybór koloru
-GenericName[pt]=Selector de Cores
-GenericName[pt_BR]=Seletor de cores
-GenericName[ro]=Selector de culori
-GenericName[ru]=Выбор цвета
-GenericName[se]=Ivdneválljejeaddji
-GenericName[si]=වර්ණ තෝරණය
-GenericName[sk]=Výber farieb
-GenericName[sl]=Izbirnik barv
-GenericName[sr]=Бирач боја
-GenericName[sr@ijekavian]=Бирач боја
-GenericName[sr@ijekavianlatin]=Birač boja
-GenericName[sr@latin]=Birač boja
-GenericName[sv]=Färgväljare
-GenericName[ta]=வண்ணத் தேர்வு
-GenericName[tg]=Интихоби ранг
-GenericName[th]=เครื่องมือเลือกสี
-GenericName[tr]=Renk Seçici
-GenericName[ug]=رەڭ تاللىغۇچ
-GenericName[uk]=Вибір кольорів
-GenericName[uz]=Rang tanlovchi
-GenericName[uz@cyrillic]=Ранг танловчи
-GenericName[vi]=Trình chọn màu
-GenericName[wa]=Tchoezixheu di coleurs
-GenericName[xh]=Mkhethi Wombala
-GenericName[x-test]=xxColor Chooserxx
-GenericName[zh_CN]=颜色选择器
-GenericName[zh_HK]=顏色選擇器
-GenericName[zh_TW]=顏色選擇程式
-Name=KColorChooser
-Name[af]=K-kleur-kieser
-Name[ar]=كُولُرْتْشوزِر
-Name[ast]=KColorChooser
-Name[bg]=KColorChooser
-Name[br]=KColorChooser
-Name[bs]=KColorChooser
-Name[ca]=KColorChooser
-Name[ca@valencia]=KColorChooser
-Name[cs]=Výběr barev
-Name[cy]=KDewisLliw
-Name[da]=KColorChooser
-Name[de]=KColorChooser
-Name[el]=KColorChooser
-Name[en_GB]=KColorChooser
-Name[eo]=KColorChooser
-Name[es]=KColorChooser
-Name[et]=KColorChooser
-Name[eu]=KColorChooser
-Name[fi]=Värivalitsin
-Name[fr]=KColorChooser
-Name[ga]=KColorChooser
-Name[gl]=KColorChooser
-Name[he]=KColorChooser
-Name[hi]=केकलरचूज़र
-Name[hne]=केकलरचूजर
-Name[hr]=Izbornik boja
-Name[hu]=KColorChooser
-Name[ia]=KColorChooser
-Name[is]=KLitaval
-Name[it]=KColorChooser
-Name[ja]=KColorChooser
-Name[kk]=KColorChooser
-Name[km]=KColorChooser
-Name[ko]=KColorChooser
-Name[ku]=KColorChooser
-Name[lt]=KColorChooser
-Name[lv]=KColorChooser
-Name[mk]=KColorChooser
-Name[mr]=के-कलर-चूझर
-Name[ms]=KColorChooser
-Name[nb]=KColorChooser
-Name[nds]=KColorChooser
-Name[ne]=केडीई रङ चयनकर्ता
-Name[nl]=KColorChooser
-Name[nn]=KDE-fargeveljar
-Name[pa]=ਕੇ-ਰੰਗ-ਚੋਣਕਾਰ
-Name[pl]=Wybór koloru
-Name[pt]=KColorChooser
-Name[pt_BR]=KColorChooser
-Name[ro]=Selector culori
-Name[ru]=KColorChooser
-Name[se]=KDE-ivdneválljejeaddji
-Name[si]=KColorChooser
-Name[sk]=KColorChooser
-Name[sl]=KColorChooser
-Name[sr]=К‑бирач‑боја
-Name[sr@ijekavian]=К‑бирач‑боја
-Name[sr@ijekavianlatin]=K‑birač‑boja
-Name[sr@latin]=K‑birač‑boja
-Name[sv]=Kcolorchooser
-Name[ta]=கேவண்ணத் தேர்வு
-Name[tg]=KColorChooser
-Name[th]=เครื่องมือเลือกสี-K
-Name[tr]=KColorChooser
-Name[ug]=KColorChooser
-Name[uk]=KColorChooser
-Name[uz]=Rang tanlovchi
-Name[uz@cyrillic]=Ранг танловчи
-Name[vi]=KColorChooser
-Name[xh]=Umkhethi Wombala i K
-Name[x-test]=xxKColorChooserxx
-Name[zh_CN]=KColorChooser
-Name[zh_HK]=KColorChooser
-Name[zh_TW]=KColorChooser 顏色選擇器
-
-X-DBUS-StartupType=Multi
-Categories=Qt;KDE;Graphics;X-KDE-More;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcolorchooser-16.04.3/org.kde.kcolorchooser.desktop new/kcolorchooser-16.08.0/org.kde.kcolorchooser.desktop
--- old/kcolorchooser-16.04.3/org.kde.kcolorchooser.desktop 1970-01-01 01:00:00.000000000 +0100
+++ new/kcolorchooser-16.08.0/org.kde.kcolorchooser.desktop 2016-07-14 23:59:47.000000000 +0200
@@ -0,0 +1,160 @@
+[Desktop Entry]
+Type=Application
+Exec=kcolorchooser
+Icon=kcolorchooser
+Terminal=false
+X-DocPath=fundamentals/index.html#colors
+GenericName=Color Chooser
+GenericName[af]=Kleur Kieser
+GenericName[ar]=مختار اللون
+GenericName[ast]=Seleutor de colores
+GenericName[bg]=Избор на цвят
+GenericName[br]=Dibaber livioù
+GenericName[bs]=Birač boja
+GenericName[ca]=Selector de colors
+GenericName[ca@valencia]=Selector de colors
+GenericName[cs]=Výběr barev
+GenericName[cy]=Dewis Lliwiau
+GenericName[da]=Farvevælger
+GenericName[de]=Farbauswahl
+GenericName[el]=Επιλογέας χρωμάτων
+GenericName[en_GB]=Colour Chooser
+GenericName[eo]=Kolora elektilo
+GenericName[es]=Selector de colores
+GenericName[et]=Värvivalija
+GenericName[eu]=Kolore hautatzailea
+GenericName[fa]=انتخابکننده رنگ
+GenericName[fi]=Värivalitsin
+GenericName[fr]=Sélecteur de couleurs
+GenericName[ga]=Roghnóir Dathanna
+GenericName[gl]=Selector de cores
+GenericName[he]=בוחר צבעים
+GenericName[hi]=रंग चयनक
+GenericName[hne]=रंग चुनइया
+GenericName[hr]=Izbornik boja
+GenericName[hu]=Színválasztó
+GenericName[ia]=Selector de color
+GenericName[is]=Litavalstól
+GenericName[it]=Selettore di colori
+GenericName[ja]=色の選択
+GenericName[kk]=Түсті таңдау
+GenericName[km]=កម្មវិធីជ្រើសពណ៌
+GenericName[ko]=색상 선택기
+GenericName[ku]=Bijarkerê Rengan
+GenericName[lt]=Spalvų parinkiklis
+GenericName[lv]=Krāsu izvēlētājs
+GenericName[mk]=Избирач на бои
+GenericName[mr]=रंग निवडकर्ता
+GenericName[ms]=Pemilih Warna
+GenericName[nb]=Fargevelger
+GenericName[nds]=Klöörköör
+GenericName[ne]=रङ चयनकर्ता
+GenericName[nl]=Kleurenkiezer
+GenericName[nn]=Fargeveljar
+GenericName[pa]=ਰੰਗ ਸੰਰਚਨਾ
+GenericName[pl]=Wybór koloru
+GenericName[pt]=Selector de Cores
+GenericName[pt_BR]=Seletor de cores
+GenericName[ro]=Selector de culori
+GenericName[ru]=Выбор цвета
+GenericName[se]=Ivdneválljejeaddji
+GenericName[si]=වර්ණ තෝරණය
+GenericName[sk]=Výber farieb
+GenericName[sl]=Izbirnik barv
+GenericName[sr]=Бирач боја
+GenericName[sr@ijekavian]=Бирач боја
+GenericName[sr@ijekavianlatin]=Birač boja
+GenericName[sr@latin]=Birač boja
+GenericName[sv]=Färgväljare
+GenericName[ta]=வண்ணத் தேர்வு
+GenericName[tg]=Интихоби ранг
+GenericName[th]=เครื่องมือเลือกสี
+GenericName[tr]=Renk Seçici
+GenericName[ug]=رەڭ تاللىغۇچ
+GenericName[uk]=Вибір кольорів
+GenericName[uz]=Rang tanlovchi
+GenericName[uz@cyrillic]=Ранг танловчи
+GenericName[vi]=Trình chọn màu
+GenericName[wa]=Tchoezixheu di coleurs
+GenericName[xh]=Mkhethi Wombala
+GenericName[x-test]=xxColor Chooserxx
+GenericName[zh_CN]=颜色选择器
+GenericName[zh_HK]=顏色選擇器
+GenericName[zh_TW]=顏色選擇程式
+Name=KColorChooser
+Name[af]=K-kleur-kieser
+Name[ar]=كُولُرْتْشوزِر
+Name[ast]=KColorChooser
+Name[bg]=KColorChooser
+Name[br]=KColorChooser
+Name[bs]=KColorChooser
+Name[ca]=KColorChooser
+Name[ca@valencia]=KColorChooser
+Name[cs]=Výběr barev
+Name[cy]=KDewisLliw
+Name[da]=KColorChooser
+Name[de]=KColorChooser
+Name[el]=KColorChooser
+Name[en_GB]=KColorChooser
+Name[eo]=KColorChooser
+Name[es]=KColorChooser
+Name[et]=KColorChooser
+Name[eu]=KColorChooser
+Name[fi]=Värivalitsin
+Name[fr]=KColorChooser
+Name[ga]=KColorChooser
+Name[gl]=KColorChooser
+Name[he]=KColorChooser
+Name[hi]=केकलरचूज़र
+Name[hne]=केकलरचूजर
+Name[hr]=Izbornik boja
+Name[hu]=KColorChooser
+Name[ia]=KColorChooser
+Name[is]=KLitaval
+Name[it]=KColorChooser
+Name[ja]=KColorChooser
+Name[kk]=KColorChooser
+Name[km]=KColorChooser
+Name[ko]=KColorChooser
+Name[ku]=KColorChooser
+Name[lt]=KColorChooser
+Name[lv]=KColorChooser
+Name[mk]=KColorChooser
+Name[mr]=के-कलर-चूझर
+Name[ms]=KColorChooser
+Name[nb]=KColorChooser
+Name[nds]=KColorChooser
+Name[ne]=केडीई रङ चयनकर्ता
+Name[nl]=KColorChooser
+Name[nn]=KDE-fargeveljar
+Name[pa]=ਕੇ-ਰੰਗ-ਚੋਣਕਾਰ
+Name[pl]=Wybór koloru
+Name[pt]=KColorChooser
+Name[pt_BR]=KColorChooser
+Name[ro]=Selector culori
+Name[ru]=KColorChooser
+Name[se]=KDE-ivdneválljejeaddji
+Name[si]=KColorChooser
+Name[sk]=KColorChooser
+Name[sl]=KColorChooser
+Name[sr]=К‑бирач‑боја
+Name[sr@ijekavian]=К‑бирач‑боја
+Name[sr@ijekavianlatin]=K‑birač‑boja
+Name[sr@latin]=K‑birač‑boja
+Name[sv]=Kcolorchooser
+Name[ta]=கேவண்ணத் தேர்வு
+Name[tg]=KColorChooser
+Name[th]=เครื่องมือเลือกสี-K
+Name[tr]=KColorChooser
+Name[ug]=KColorChooser
+Name[uk]=KColorChooser
+Name[uz]=Rang tanlovchi
+Name[uz@cyrillic]=Ранг танловчи
+Name[vi]=KColorChooser
+Name[xh]=Umkhethi Wombala i K
+Name[x-test]=xxKColorChooserxx
+Name[zh_CN]=KColorChooser
+Name[zh_HK]=KColorChooser
+Name[zh_TW]=KColorChooser 顏色選擇器
+
+Categories=Qt;KDE;Graphics;X-KDE-More;
1
0
Hello community,
here is the log from the commit of package kcharselect for openSUSE:Factory checked in at 2016-08-29 14:37:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcharselect (Old)
and /work/SRC/openSUSE:Factory/.kcharselect.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcharselect"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcharselect/kcharselect.changes 2016-07-21 07:45:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kcharselect.new/kcharselect.changes 2016-08-29 14:37:12.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:12:06 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:50:17 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kcharselect-16.04.3.tar.xz
New:
----
kcharselect-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcharselect.spec ++++++
--- /var/tmp/diff_new_pack.p6nszW/_old 2016-08-29 14:37:14.000000000 +0200
+++ /var/tmp/diff_new_pack.p6nszW/_new 2016-08-29 14:37:14.000000000 +0200
@@ -30,7 +30,7 @@
Summary: KDE Character Selector
License: GPL-2.0+
Group: Productivity/Other
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: %{name}-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kcharselect-16.04.3.tar.xz -> kcharselect-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcharselect-16.04.3/doc/index.docbook new/kcharselect-16.08.0/doc/index.docbook
--- old/kcharselect-16.04.3/doc/index.docbook 2016-04-16 11:42:39.000000000 +0200
+++ new/kcharselect-16.08.0/doc/index.docbook 2016-07-14 21:41:08.000000000 +0200
@@ -18,8 +18,8 @@
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
-<date>2015-08-04</date>
-<releaseinfo>&kcharselect; 1.12 (Applications 15.04)</releaseinfo>
+<date>2016-04-25</date>
+<releaseinfo>1.12 (Applications 16.04)</releaseinfo>
<keywordset>
<keyword>KDE</keyword>
Files old/kcharselect-16.04.3/doc/kcharselect.png and new/kcharselect-16.08.0/doc/kcharselect.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcharselect-16.04.3/kcharselect-generate-datafile.py new/kcharselect-16.08.0/kcharselect-generate-datafile.py
--- old/kcharselect-16.04.3/kcharselect-generate-datafile.py 2016-04-16 11:42:39.000000000 +0200
+++ new/kcharselect-16.08.0/kcharselect-generate-datafile.py 2016-07-14 21:41:08.000000000 +0200
@@ -1,26 +1,28 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
-# This script generates a data file containing all Unicode information needed by KCharSelect.
+# This script generates a data file containing all Unicode information needed
+# by KCharSelect.
#
-#############################################################################
+##############################################################################
# Copyright (C) 2007 Daniel Laidig <d.laidig(a)gmx.de>
+# Copyright (C) 2016 John Zaitseff <J.Zaitseff(a)zap.org.au>
#
-# This script is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This script 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
-# Library General Public License for more details.
+# This script is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+#
+# This script 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 Library General Public
+# License for more details.
#
# You should have received a copy of the GNU Library General Public License
-# along with this library; see the file COPYING.LIB. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
-#############################################################################
+# along with this library; see the file COPYING.LIB. If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+##############################################################################
#
# The current directory must contain the following files that can be found at
# http://www.unicode.org/Public/UNIDATA/:
@@ -29,14 +31,15 @@
# - NamesList.txt
# - Blocks.txt
#
-# The generated file is named "kcharselect-data" and has to be put in kdelibs/kdeui/widgets/.
-# Additionally a translation dummy named "kcharselect-translation.cpp" is generated and has
-# to be placed in the same directory.
+# The generated file is named "kcharselect-data" and has to be put in
+# kwidgetsaddons/src. Additionally a translation dummy named
+# "kcharselect-translation.cpp" is generated and has to be placed in the same
+# directory.
#
# FILE STRUCTURE
#
-# The generated file is a binary file. The first 40 bytes are the header
-# and contain the position of each part of the file. Each entry is uint32.
+# The generated file is a binary file. The first 40 bytes are the header and
+# contain the position of each part of the file. Each entry is uint32.
#
# pos content
# 0 names strings begin
@@ -50,12 +53,14 @@
# 32 unihan strings begin
# 36 unihan offsets begin
#
-# The string parts always contain all strings in a row, followed by a 0x00 byte.
-# There is one exception: The data for seeAlso in details is only 2 bytes (as is always is _one_
-# unicode character) and _not_ followed by a 0x00 byte.
-#
-# The offset parts contain entries with a fixed length. Unicode characters are always uint16 and offsets uint32.
-# Offsets are positions in the data file.
+# The string parts always contain all strings in a row, followed by a 0x00
+# byte. There is one exception: The data for seeAlso in details is only 2
+# bytes (as is always is _one_ unicode character) and _not_ followed by a 0x00
+# byte.
+#
+# The offset parts contain entries with a fixed length. Unicode characters
+# are always uint16 and offsets uint32. Offsets are positions in the data
+# file.
#
# names_offsets:
# each entry 6 bytes
@@ -100,15 +105,16 @@
import re
import StringIO
-# based on http://www.unicode.org/charts/
+# Based on http://www.unicode.org/charts/, updated for Unicode 9.0
sectiondata = '''
-SECTION European Alphabets
+SECTION European Scripts
Basic Latin
Latin-1 Supplement
Latin Extended-A
Latin Extended-B
Latin Extended-C
Latin Extended-D
+Latin Extended-E
Latin Extended Additional
Armenian
Coptic
@@ -116,6 +122,7 @@
Cyrillic Supplement
Cyrillic Extended-A
Cyrillic Extended-B
+Cyrillic Extended-C
Georgian
Georgian Supplement
Glagolitic
@@ -137,6 +144,7 @@
SECTION Middle Eastern Scripts
Arabic
Arabic Supplement
+Arabic Extended-A
Arabic Presentation Forms-A
Arabic Presentation Forms-B
Hebrew
@@ -144,6 +152,11 @@
Samaritan
Syriac
+SECTION Central Asian Scripts
+Mongolian
+Phags-pa
+Tibetan
+
SECTION South Asian Scripts
Bengali
Common Indic Number Forms
@@ -156,6 +169,7 @@
Limbu
Malayalam
Meetei Mayek
+Meetei Mayek Extensions
Ol Chiki
Oriya
Saurashtra
@@ -166,33 +180,34 @@
Thaana
Vedic Extensions
-SECTION Philippine Scripts
-Buhid
-Hanunoo
-Tagalog
-Tagbanwa
-
-
-SECTION South East Asian Scripts
-Balinese
-Batak
-Buginese
+SECTION Southeast Asian Scripts
Cham
-Javanese
Kayah Li
Khmer
Khmer Symbols
Lao
Myanmar
Myanmar Extended-A
+Myanmar Extended-B
New Tai Lue
-Rejang
-Sundanese
Tai Le
Tai Tham
Tai Viet
Thai
+SECTION Indonesia and Oceania Scripts
+Balinese
+Batak
+Buginese
+Buhid
+Hanunoo
+Javanese
+Rejang
+Sundanese
+Sundanese Supplement
+Tagalog
+Tagbanwa
+
SECTION East Asian Scripts
Bopomofo
Bopomofo Extended
@@ -220,23 +235,19 @@
Yi Radicals
Yi Syllables
-SECTION Central Asian Scripts
-Mongolian
-Phags-pa
-Tibetan
-
-SECTION Other Scripts
+SECTION American Scripts
Cherokee
+Cherokee Supplement
Unified Canadian Aboriginal Syllabics
Unified Canadian Aboriginal Syllabics Extended
SECTION Symbols
+General Punctuation
Braille Patterns
Control Pictures
Currency Symbols
Dingbats
Enclosed Alphanumerics
-General Punctuation
Miscellaneous Symbols
Miscellaneous Technical
Optical Character Recognition
@@ -249,17 +260,17 @@
Arrows
Block Elements
Box Drawing
-Supplemental Arrows-A
-Supplemental Arrows-B
Geometric Shapes
Letterlike Symbols
Mathematical Operators
-Supplemental Mathematical Operators
Miscellaneous Mathematical Symbols-A
Miscellaneous Mathematical Symbols-B
Miscellaneous Symbols and Arrows
Number Forms
Superscripts and Subscripts
+Supplemental Arrows-A
+Supplemental Arrows-B
+Supplemental Mathematical Operators
SECTION Phonetic Symbols
IPA Extensions
@@ -268,8 +279,9 @@
Phonetic Extensions Supplement
Spacing Modifier Letters
-SECTION Combining Diacritical Marks
+SECTION Combining Diacritics
Combining Diacritical Marks
+Combining Diacritical Marks Extended
Combining Diacritical Marks Supplement
Combining Diacritical Marks for Symbols
Combining Half Marks
@@ -284,7 +296,6 @@
Specials
Variation Selectors
'''
-# TODO: rename "Other Scripts" to "American Scripts"
categoryMap = { # same values as QChar::Category
"Mn": 1,
@@ -533,7 +544,7 @@
def getBlockList(self):
return self.blockList
-
+
def getSectionList(self):
return self.sectionList
@@ -696,27 +707,28 @@
out.write("""/* This file is part of the KDE libraries
Copyright (C) 2007 Daniel Laidig <d.laidig(a)gmx.de>
+ Copyright (C) 2016 John Zaitseff <J.Zaitseff(a)zap.org.au>
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ License for more details.
You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ along with this library; see the file COPYING.LIB. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
- This file is autogenerated by kdeutils/kcharselect/kcharselect-generate-datafile.py
+ This file is autogenerated by kcharselect/kcharselect-generate-datafile.py
*/\n\n""")
for group in data:
for entry in group[1]:
- out.write("I18N_NOOP2(\""+group[0]+"\", \""+entry+"\");\n")
+ out.write("QT_TRANSLATE_NOOP3(\"KCharSelectData\", \""+entry+"\", \""+group[0]+"\");\n")
out = open("kcharselect-data", "wb")
outTranslationDummy = open("kcharselect-translation.cpp", "wb")
1
0
Hello community,
here is the log from the commit of package kcalutils for openSUSE:Factory checked in at 2016-08-29 14:36:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcalutils (Old)
and /work/SRC/openSUSE:Factory/.kcalutils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcalutils"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcalutils/kcalutils.changes 2016-07-21 07:44:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kcalutils.new/kcalutils.changes 2016-08-29 14:36:58.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:11:59 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:50:05 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kcalutils-16.04.3.tar.xz
New:
----
kcalutils-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcalutils.spec ++++++
--- /var/tmp/diff_new_pack.vFrRic/_old 2016-08-29 14:37:00.000000000 +0200
+++ /var/tmp/diff_new_pack.vFrRic/_new 2016-08-29 14:37:00.000000000 +0200
@@ -17,7 +17,7 @@
Name: kcalutils
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.1.0
Summary: KDE PIM Libraries: KCalUtils
@@ -123,6 +123,5 @@
%defattr(-,root,root)
%doc COPYING*
%_libdir/grantlee/
-%_datadir/kcalendar/
%changelog
++++++ kcalutils-16.04.3.tar.xz -> kcalutils-16.08.0.tar.xz ++++++
++++ 10368 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kcalcore for openSUSE:Factory checked in at 2016-08-29 14:36:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcalcore (Old)
and /work/SRC/openSUSE:Factory/.kcalcore.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcalcore"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcalcore/kcalcore.changes 2016-07-21 07:50:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kcalcore.new/kcalcore.changes 2016-08-29 14:36:33.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:11:46 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:49:53 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kcalcore-16.04.3.tar.xz
New:
----
kcalcore-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcalcore.spec ++++++
--- /var/tmp/diff_new_pack.pzU0Yu/_old 2016-08-29 14:36:35.000000000 +0200
+++ /var/tmp/diff_new_pack.pzU0Yu/_new 2016-08-29 14:36:35.000000000 +0200
@@ -17,7 +17,7 @@
Name: kcalcore
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define kf5_version 5.19.0
Summary: KDE PIM Libraries: KCalCore
++++++ kcalcore-16.04.3.tar.xz -> kcalcore-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/CMakeLists.txt new/kcalcore-16.08.0/CMakeLists.txt
--- old/kcalcore-16.04.3/CMakeLists.txt 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/CMakeLists.txt 2016-08-06 09:12:19.000000000 +0200
@@ -3,7 +3,8 @@
project(KCalCore)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${KCalCore_SOURCE_DIR}/cmake)
include(GenerateExportHeader)
@@ -17,8 +18,9 @@
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
-set(KF5_VERSION "5.19.0")
-set(KCALENDARCORE_LIB_VERSION "5.2.3")
+set(PIM_VERSION "5.3.0")
+
+set(KCALENDARCORE_LIB_VERSION ${PIM_VERSION})
ecm_setup_version(${KCALENDARCORE_LIB_VERSION} VARIABLE_PREFIX KCALCORE
VERSION_HEADER "${KCalCore_BINARY_DIR}/kcalcore_version.h"
PACKAGE_VERSION_FILE "${KCalCore_BINARY_DIR}/KF5CalendarCoreConfigVersion.cmake"
@@ -48,8 +50,7 @@
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)
-add_definitions(-DQT_NO_CAST_FROM_ASCII)
-remove_definitions(-DQT_NO_CAST_TO_ASCII)
+add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII)
########### Targets ###########
add_subdirectory(src)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/KF5CalendarCoreConfig.cmake.in new/kcalcore-16.08.0/KF5CalendarCoreConfig.cmake.in
--- old/kcalcore-16.04.3/KF5CalendarCoreConfig.cmake.in 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/KF5CalendarCoreConfig.cmake.in 2016-08-06 09:12:19.000000000 +0200
@@ -5,11 +5,11 @@
find_dependency(KF5KDELibs4Support "@KF5_VERSION@")
find_dependency(LibIcal "@LibIcal_MIN_VERSION@")
+include(FeatureSummary)
+
set_package_properties(LibIcal PROPERTIES
DESCRIPTION "The Ical library"
URL "http://sourceforge.net/projects/freeassociation"
)
-include(FeatureSummary)
-
include("${CMAKE_CURRENT_LIST_DIR}/KF5CalendarCoreTargets.cmake")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/CMakeLists.txt new/kcalcore-16.08.0/autotests/CMakeLists.txt
--- old/kcalcore-16.04.3/autotests/CMakeLists.txt 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/CMakeLists.txt 2016-08-06 09:12:19.000000000 +0200
@@ -6,8 +6,6 @@
# needed by loadcalendar
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/cal DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
-remove_definitions(-DQT_NO_CAST_FROM_ASCII)
-
macro(macro_unit_tests)
foreach(_testname ${ARGN})
add_executable(${_testname} ${_testname}.cpp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testattachment.cpp new/kcalcore-16.08.0/autotests/testattachment.cpp
--- old/kcalcore-16.04.3/autotests/testattachment.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testattachment.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -51,7 +51,7 @@
QCOMPARE(attachment3.size(), attachment2.size());
QByteArray fred("jkajskldfasjfklasjfaskfaskfasfkasfjdasfkasjf");
- Attachment attachment4(fred, QByteArray("image/nonsense"));
+ Attachment attachment4(fred, QLatin1String("image/nonsense"));
QCOMPARE(fred, attachment4.data());
QVERIFY(attachment4.isBinary());
QByteArray ethel("a9fafafjafkasmfasfasffksjklfjau");
@@ -75,7 +75,7 @@
QTest::addColumn<KCalCore::Attachment::Ptr>("attachment");
Attachment::Ptr nonInline = Attachment::Ptr(new Attachment(QStringLiteral("http://www.kde.org")));
- Attachment::Ptr inlineAttachment = Attachment::Ptr(new Attachment(QByteArray("foo"), QByteArray("image/nonsense")));
+ Attachment::Ptr inlineAttachment = Attachment::Ptr(new Attachment(QByteArray("foo"), QLatin1String("image/nonsense")));
QTest::newRow("inline") << inlineAttachment;
QTest::newRow("not inline") << nonInline;
@@ -99,10 +99,10 @@
void AttachmentTest::testWriteToTempFile()
{
QByteArray data("foo");
- Attachment::Ptr inlineAttachment = Attachment::Ptr(new Attachment(data.toBase64(), QByteArray("image/png")));
+ Attachment::Ptr inlineAttachment = Attachment::Ptr(new Attachment(data.toBase64(), QLatin1String("image/png")));
Event *event = new Event();
QString filePath = event->writeAttachmentToTempFile(inlineAttachment);
- QVERIFY(filePath.endsWith(".png"));
+ QVERIFY(filePath.endsWith(QLatin1String(".png")));
QFile file(filePath);
QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text));
QCOMPARE(file.readLine(), data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testattendee.cpp new/kcalcore-16.08.0/autotests/testattendee.cpp
--- old/kcalcore-16.04.3/autotests/testattendee.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testattendee.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -99,7 +99,7 @@
QVERIFY(!(attendee1 == attendee2));
attendee2.setRole(Attendee::ReqParticipant);
QVERIFY(!(attendee1 == attendee2));
- QVERIFY(attendee1.name() == "fred");
+ QVERIFY(attendee1.name() == QLatin1String("fred"));
}
void AttendeeTest::testCompareType()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testcalfilter.cpp new/kcalcore-16.08.0/autotests/testcalfilter.cpp
--- old/kcalcore-16.04.3/autotests/testcalfilter.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testcalfilter.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -33,9 +33,9 @@
{
CalFilter f;
f.setName(QStringLiteral("testfilter"));
- QVERIFY(f.name() == "testfilter");
+ QVERIFY(f.name() == QLatin1String("testfilter"));
CalFilter g(QStringLiteral("fredfilter"));
- QVERIFY(g.name() == "fredfilter");
+ QVERIFY(g.name() == QLatin1String("fredfilter"));
CalFilter f1, f2;
QVERIFY(f1 == f2);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testcustomproperties.cpp new/kcalcore-16.08.0/autotests/testcustomproperties.cpp
--- old/kcalcore-16.04.3/autotests/testcustomproperties.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testcustomproperties.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -38,22 +38,22 @@
QByteArray name("X-KDE-KORG-TEXT");
QCOMPARE(cp.customPropertyName(app, key), name);
cp.setCustomProperty(app, key, QStringLiteral("rich"));
- QCOMPARE(cp.customProperty(app, key), QString("rich"));
- QCOMPARE(cp.nonKDECustomProperty(name), QString("rich"));
+ QCOMPARE(cp.customProperty(app, key), QLatin1String("rich"));
+ QCOMPARE(cp.nonKDECustomProperty(name), QLatin1String("rich"));
cp.removeCustomProperty(app, key);
cp.setCustomProperty(app, key, QStringLiteral("foo"));
cp.setCustomProperty(app, key, QStringLiteral("rich"));
- QCOMPARE(cp.customProperty(app, key), QString("rich"));
+ QCOMPARE(cp.customProperty(app, key), QLatin1String("rich"));
key = "X-TEXT";
cp.setNonKDECustomProperty(key, QStringLiteral("rich"));
- QCOMPARE(cp.nonKDECustomProperty(key), QString("rich"));
+ QCOMPARE(cp.nonKDECustomProperty(key), QLatin1String("rich"));
cp.removeNonKDECustomProperty(key);
cp.setNonKDECustomProperty(key, QStringLiteral("foo"));
cp.setNonKDECustomProperty(key, QStringLiteral("rich"));
- QCOMPARE(cp.nonKDECustomProperty(key), QString("rich"));
+ QCOMPARE(cp.nonKDECustomProperty(key), QLatin1String("rich"));
}
void CustomPropertiesTest::testCompare()
@@ -71,7 +71,7 @@
cp3.setCustomProperty(app, key, cp1.customProperty(app, key));
QVERIFY(cp1 == cp3);
- QVERIFY(cp1.customProperty(app, key) == QString("rich"));
+ QVERIFY(cp1.customProperty(app, key) == QLatin1String("rich"));
QVERIFY(cp1.customProperty(app, "foo").isEmpty());
QVERIFY(cp1.customProperty(app, QByteArray()).isEmpty());
@@ -88,7 +88,7 @@
cp3.setNonKDECustomProperty(key, cp1.nonKDECustomProperty(key));
QVERIFY(cp1 == cp3);
- QVERIFY(cp1.nonKDECustomProperty(key) == QString("rich"));
+ QVERIFY(cp1.nonKDECustomProperty(key) == QLatin1String("rich"));
QVERIFY(cp1.nonKDECustomProperty("foo").isEmpty());
QVERIFY(cp1.nonKDECustomProperty(QByteArray()).isEmpty());
@@ -110,7 +110,7 @@
CustomProperties cp;
cp.setCustomProperties(cpmap);
- QVERIFY(cp.customProperties().value("X-key3") == QString("val3"));
+ QVERIFY(cp.customProperties().value("X-key3") == QLatin1String("val3"));
}
void CustomPropertiesTest::testMapCompare()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testevent.cpp new/kcalcore-16.08.0/autotests/testevent.cpp
--- old/kcalcore-16.04.3/autotests/testevent.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testevent.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -76,8 +76,8 @@
event->setDescription(QStringLiteral("This is a description of the first event"));
event->setLocation(QStringLiteral("the place"));
//KDE5: QVERIFY( event->typeStr() == i18n( "event" ) );
- QVERIFY(event->summary() == "Event1 Summary");
- QVERIFY(event->location() == "the place");
+ QVERIFY(event->summary() == QLatin1String("Event1 Summary"));
+ QVERIFY(event->location() == QLatin1String("the place"));
QVERIFY(event->type() == Incidence::TypeEvent);
}
@@ -100,7 +100,7 @@
QVERIFY(!(event1 == event2));
QVERIFY(event1.dtEnd() == event2.dtStart());
- QVERIFY(event2.summary() == "Event2 Summary");
+ QVERIFY(event2.summary() == QLatin1String("Event2 Summary"));
}
void EventTest::testClone()
@@ -261,4 +261,38 @@
event1.setDtEnd(KDateTime(dt).addDays(2));
QCOMPARE(event1.dirtyFields(), QSet<IncidenceBase::Field>() << IncidenceBase::FieldDtEnd);
-}
\ No newline at end of file
+}
+
+void EventTest::testIsMultiDay_data()
+{
+ QTest::addColumn<KDateTime>("start");
+ QTest::addColumn<KDateTime>("end");
+ QTest::addColumn<bool>("isMultiDay");
+
+ QTest::newRow("event0") << KDateTime(QDate(2016, 7, 9), QTime(12, 0, 0)) << KDateTime(QDate(2016, 7, 9), QTime(13, 0, 0)) << false;
+
+ QTest::newRow("event1") << KDateTime(QDate(2016, 7, 9), QTime(12, 0, 0)) << KDateTime(QDate(2016, 7, 10), QTime(0, 0, 0)) << false;
+
+ QTest::newRow("event2") << KDateTime(QDate(2016, 7, 9), QTime(12, 0, 0)) << KDateTime(QDate(2016, 7, 10), QTime(12, 0, 0)) << true;
+
+ QTest::newRow("event3") << KDateTime(QDate(2016, 12, 31), QTime(0, 0, 0)) << KDateTime(QDate(2017, 1, 1), QTime(0, 0, 0)) << false;
+
+ QTest::newRow("event4") << KDateTime(QDate(2016, 12, 31), QTime(0, 0, 1)) << KDateTime(QDate(2017, 1, 1), QTime(0, 0, 1)) << true;
+
+ QTest::newRow("event5") << KDateTime(QDate(2016, 12, 31), QTime(12, 0, 0)) << KDateTime(QDate(2017, 1, 1), QTime(12, 0, 0)) << true;
+
+ QTest::newRow("event6") << KDateTime(QDate(2016, 12, 24), QTime(12, 0, 0)) << KDateTime(QDate(2017, 1, 1), QTime(0, 0, 0)) << true;
+}
+
+void EventTest::testIsMultiDay()
+{
+ QFETCH(KDateTime, start);
+ QFETCH(KDateTime, end);
+ QFETCH(bool, isMultiDay);
+
+ Event event;
+ event.setDtStart(start);
+ event.setDtEnd(end);
+
+ QCOMPARE(event.isMultiDay(), isMultiDay);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testevent.h new/kcalcore-16.08.0/autotests/testevent.h
--- old/kcalcore-16.04.3/autotests/testevent.h 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testevent.h 2016-08-06 09:12:19.000000000 +0200
@@ -40,6 +40,8 @@
void testSerializer();
void testDurationDtEnd();
void testDtEndChange();
+ void testIsMultiDay_data();
+ void testIsMultiDay();
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testfilestorage.cpp new/kcalcore-16.08.0/autotests/testfilestorage.cpp
--- old/kcalcore-16.04.3/autotests/testfilestorage.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testfilestorage.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -121,7 +121,7 @@
event->setDtStart(KDateTime(currentDate));
event->setDtEnd(KDateTime(currentDate.addDays(1)));
- const QChar latin1_umlaut[] = { 0xFC, '\0' };
+ const QChar latin1_umlaut[] = { 0xFC, QLatin1Char('\0') };
event->setSummary(QString(latin1_umlaut));
@@ -156,7 +156,7 @@
QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text));
const QByteArray bytesFromFile = file.readAll();
- const QChar utf_umlaut[] = { 0xC3, 0XBC, '\0' };
+ const QChar utf_umlaut[] = { 0xC3, 0XBC, QLatin1Char('\0') };
QVERIFY(bytesFromFile.contains(QString(utf_umlaut).toLatin1().constData()));
QVERIFY(!bytesFromFile.contains(QString(latin1_umlaut).toLatin1().constData()));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testicalformat.cpp new/kcalcore-16.08.0/autotests/testicalformat.cpp
--- old/kcalcore-16.04.3/autotests/testicalformat.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testicalformat.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -46,12 +46,12 @@
event->setDtEnd(KDateTime(currentDate.addDays(1)));
// ü
- const QChar latin1_umlaut[] = { 0xFC, '\0' };
+ const QChar latin1_umlaut[] = { 0xFC, QLatin1Char('\0') };
event->setSummary(QString(latin1_umlaut));
// Test if toString( Incidence ) didn't mess charsets
const QString serialized = format.toString(event.staticCast<Incidence>());
- const QChar utf_umlaut[] = { 0xC3, 0XBC, '\0' };
+ const QChar utf_umlaut[] = { 0xC3, 0XBC, QLatin1Char('\0') };
QVERIFY(serialized.toUtf8().contains(QString(utf_umlaut).toLatin1().constData()));
QVERIFY(!serialized.toUtf8().contains(QString(latin1_umlaut).toLatin1().constData()));
QVERIFY(serialized.toLatin1().contains(QString(latin1_umlaut).toLatin1().constData()));
@@ -59,9 +59,9 @@
// test fromString( QString )
const QString serializedCalendar =
- "BEGIN:VCALENDAR\nPRODID:-//K Desktop Environment//NONSGML libkcal 3.2//EN\nVERSION:2.0\n" +
+ QLatin1String("BEGIN:VCALENDAR\nPRODID:-//K Desktop Environment//NONSGML libkcal 3.2//EN\nVERSION:2.0\n") +
serialized +
- "\nEND:VCALENDAR";
+ QLatin1String("\nEND:VCALENDAR");
Incidence::Ptr event2 = format.fromString(serializedCalendar);
QVERIFY(event->summary() == event2->summary());
@@ -71,7 +71,7 @@
// test save()
MemoryCalendar::Ptr calendar(new MemoryCalendar(QStringLiteral("UTC")));
calendar->addIncidence(event);
- QVERIFY(format.save(calendar, "hommer.ics"));
+ QVERIFY(format.save(calendar, QLatin1String("hommer.ics")));
// Make sure hommer.ics is in UTF-8
QFile file(QStringLiteral("hommer.ics"));
@@ -84,7 +84,7 @@
// Test load:
MemoryCalendar::Ptr calendar2(new MemoryCalendar(QStringLiteral("UTC")));
- QVERIFY(format.load(calendar2, "hommer.ics"));
+ QVERIFY(format.load(calendar2, QLatin1String("hommer.ics")));
QVERIFY(calendar2->incidences().count() == 1);
// qDebug() << format.toString( event.staticCast<Incidence>() );
@@ -139,9 +139,9 @@
// test fromString(QString)
const QString serializedCalendar =
- "BEGIN:VCALENDAR\nPRODID:-//K Desktop Environment//NONSGML libkcal 3.2//EN\nVERSION:2.0\n" +
+ QLatin1String("BEGIN:VCALENDAR\nPRODID:-//K Desktop Environment//NONSGML libkcal 3.2//EN\nVERSION:2.0\n") +
serialized +
- "\nEND:VCALENDAR";
+ QLatin1String("\nEND:VCALENDAR");
Incidence::Ptr event2 = format.fromString(serializedCalendar);
QVERIFY(event2->attendeeCount() == 1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testjournal.cpp new/kcalcore-16.08.0/autotests/testjournal.cpp
--- old/kcalcore-16.04.3/autotests/testjournal.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testjournal.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -35,8 +35,8 @@
journal->setDescription(QStringLiteral("This is a description of my journal"));
journal->setLocation(QStringLiteral("the place"));
//KDE5: QVERIFY( journal->typeStr() == i18n( "journal" ) );
- QVERIFY(journal->summary() == "Journal Summary");
- QVERIFY(journal->location() == "the place");
+ QVERIFY(journal->summary() == QLatin1String("Journal Summary"));
+ QVERIFY(journal->location() == QLatin1String("the place"));
}
void JournalTest::testCompare()
@@ -55,7 +55,7 @@
journal2.setLocation(QStringLiteral("the other place"));
QVERIFY(!(journal1 == journal2));
- QVERIFY(journal2.summary() == "Journal2 Summary");
+ QVERIFY(journal2.summary() == QLatin1String("Journal2 Summary"));
}
void JournalTest::testClone()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testmemorycalendar.cpp new/kcalcore-16.08.0/autotests/testmemorycalendar.cpp
--- old/kcalcore-16.04.3/autotests/testmemorycalendar.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testmemorycalendar.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -123,7 +123,7 @@
QVERIFY(store.load());
Todo::Ptr todo = cal->incidence(QStringLiteral("4")).staticCast<Todo>();
- QVERIFY(todo->uid() == "4");
+ QVERIFY(todo->uid() == QLatin1String("4"));
QVERIFY(todo->summaryIsRich());
QVERIFY(todo->locationIsRich());
cal->close();
@@ -136,12 +136,12 @@
// the incidences had special relations.
// This test tests that scenario, and will crash if it fails.
MemoryCalendar::Ptr cal(new MemoryCalendar(KDateTime::UTC));
- FileStorage store1(cal, ICALTESTDATADIR "test_relations.ics");
+ FileStorage store1(cal, QLatin1Literal(ICALTESTDATADIR) + QLatin1String("test_relations.ics"));
QVERIFY(store1.load());
const Todo::List oldTodos = cal->todos();
qDebug() << "Loaded " << oldTodos.count() << " todos into oldTodos.";
- FileStorage store2(cal, ICALTESTDATADIR "test_relations.ics");
+ FileStorage store2(cal, QLatin1String(ICALTESTDATADIR) + QLatin1String("test_relations.ics"));
QVERIFY(store2.load());
const Todo::List newTodos = cal->todos();
qDebug() << "Loaded " << newTodos.count() << " into newTodos.";
@@ -264,7 +264,7 @@
QVERIFY(main);
QVERIFY(exception);
QVERIFY(exception->recurrenceId() == newRecId);
- QVERIFY(exception->summary() == "exception");
+ QVERIFY(exception->summary() == QLatin1String("exception"));
QVERIFY(main->summary() == event1->summary());
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testperson.cpp new/kcalcore-16.08.0/autotests/testperson.cpp
--- old/kcalcore-16.04.3/autotests/testperson.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testperson.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -34,7 +34,7 @@
void PersonTest::testValidity()
{
Person person(QStringLiteral("fred"), QStringLiteral("fred(a)flintstone.com"));
- QVERIFY(person.name() == "fred");
+ QVERIFY(person.name() == QLatin1String("fred"));
}
void PersonTest::testCompare()
@@ -49,21 +49,21 @@
QVERIFY(person1 == *person3.data());
QVERIFY(person1 == person1copy);
QVERIFY(person1 == person1assign);
- QVERIFY(person1.name() == "fred");
- QVERIFY(person2.email() == "wilma(a)flintstone.com");
- QVERIFY(person3->name() == "fred");
- QVERIFY(person3->email() == "fred(a)flintstone.com");
+ QVERIFY(person1.name() == QLatin1String("fred"));
+ QVERIFY(person2.email() == QLatin1String("wilma(a)flintstone.com"));
+ QVERIFY(person3->name() == QLatin1String("fred"));
+ QVERIFY(person3->email() == QLatin1String("fred(a)flintstone.com"));
}
void PersonTest::testStringify()
{
Person person1(QStringLiteral("fred"), QStringLiteral("fred(a)flintstone.com"));
Person person2(QStringLiteral("wilma"), QStringLiteral("wilma(a)flintstone.com"));
- QVERIFY(person1.fullName() == "fred <fred(a)flintstone.com>");
- QVERIFY(person2.fullName() == "wilma <wilma(a)flintstone.com>");
+ QVERIFY(person1.fullName() == QLatin1String("fred <fred(a)flintstone.com>"));
+ QVERIFY(person2.fullName() == QLatin1String("wilma <wilma(a)flintstone.com>"));
person1.setName(QLatin1String(""));
- QVERIFY(person1.fullName() == "fred(a)flintstone.com");
+ QVERIFY(person1.fullName() == QLatin1String("fred(a)flintstone.com"));
person1.setEmail(QString());
QVERIFY(person1.fullName().isEmpty());
}
@@ -84,10 +84,10 @@
int count;
in_stream >> name;
- QVERIFY(name == "fred");
+ QVERIFY(name == QLatin1String("fred"));
in_stream >> email;
- QVERIFY(email == "fred(a)flintstone.com");
+ QVERIFY(email == QLatin1String("fred(a)flintstone.com"));
in_stream >> count;
QVERIFY(count == initial_count);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testreadrecurrenceid.cpp new/kcalcore-16.08.0/autotests/testreadrecurrenceid.cpp
--- old/kcalcore-16.04.3/autotests/testreadrecurrenceid.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testreadrecurrenceid.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -30,7 +30,7 @@
void TestReadRecurrenceId::testReadSingleException()
{
KCalCore::ICalFormat format;
- QFile file(ICALTESTDATADIR "test_recurrenceid_single.ics");
+ QFile file(QLatin1String(ICALTESTDATADIR) + QLatin1String("test_recurrenceid_single.ics"));
QVERIFY(file.open(QIODevice::ReadOnly));
// qDebug() << file.readAll();
@@ -48,7 +48,7 @@
void TestReadRecurrenceId::testReadSingleExceptionWithThisAndFuture()
{
KCalCore::ICalFormat format;
- QFile file(ICALTESTDATADIR "test_recurrenceid_thisandfuture.ics");
+ QFile file(QLatin1String(ICALTESTDATADIR) + QLatin1String("test_recurrenceid_thisandfuture.ics"));
QVERIFY(file.open(QIODevice::ReadOnly));
KCalCore::Incidence::Ptr i = format.fromString(QString::fromUtf8(file.readAll()));
QVERIFY(i);
@@ -82,7 +82,7 @@
{
KCalCore::MemoryCalendar::Ptr calendar(new KCalCore::MemoryCalendar(KDateTime::UTC));
KCalCore::ICalFormat format;
- QFile file(ICALTESTDATADIR "test_recurrenceid.ics");
+ QFile file(QLatin1String(ICALTESTDATADIR) + QLatin1String("test_recurrenceid.ics"));
QVERIFY(file.open(QIODevice::ReadOnly));
format.fromString(calendar, QString::fromUtf8(file.readAll()));
QCOMPARE(calendar->rawEvents().size(), 2);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/autotests/testtodo.cpp new/kcalcore-16.08.0/autotests/testtodo.cpp
--- old/kcalcore-16.04.3/autotests/testtodo.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/autotests/testtodo.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -39,8 +39,8 @@
todo->setLocation(QStringLiteral("the place"));
todo->setPercentComplete(5);
//KDE5: QVERIFY( todo->typeStr() == i18n( "to-do" ) );
- QVERIFY(todo->summary() == "To-do1 Summary");
- QVERIFY(todo->location() == "the place");
+ QVERIFY(todo->summary() == QLatin1String("To-do1 Summary"));
+ QVERIFY(todo->location() == QLatin1String("the place"));
QVERIFY(todo->percentComplete() == 5);
}
@@ -65,7 +65,7 @@
QVERIFY(!(todo1 == todo2));
QVERIFY(todo1.dtDue() == todo2.dtStart());
- QVERIFY(todo2.summary() == "To-do2 Summary");
+ QVERIFY(todo2.summary() == QLatin1String("To-do2 Summary"));
QVERIFY(!(todo1.isCompleted() == todo2.isCompleted()));
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/src/calendar.cpp new/kcalcore-16.08.0/src/calendar.cpp
--- old/kcalcore-16.04.3/src/calendar.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/src/calendar.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -1021,10 +1021,13 @@
// First, go over the list of orphans and see if this is their parent
Incidence::List l = values(d->mOrphans, uid);
d->mOrphans.remove(uid);
- d->mIncidenceRelations[uid].reserve(l.count());
- for (int i = 0, end = l.count(); i < end; ++i) {
- d->mIncidenceRelations[uid].append(l[i]);
- d->mOrphanUids.remove(l[i]->uid());
+ if (!l.isEmpty()) {
+ Incidence::List &relations = d->mIncidenceRelations[uid];
+ relations.reserve(relations.count() + l.count());
+ for (int i = 0, end = l.count(); i < end; ++i) {
+ relations.append(l[i]);
+ d->mOrphanUids.remove(l[i]->uid());
+ }
}
// Now see about this incidences parent
@@ -1075,10 +1078,10 @@
// If this incidence is related to something else, tell that about it
if (!parentUid.isEmpty()) {
- d->mIncidenceRelations[parentUid].erase(
- std::remove(d->mIncidenceRelations[parentUid].begin(),
- d->mIncidenceRelations[parentUid].end(), incidence),
- d->mIncidenceRelations[parentUid].end());
+ Incidence::List &relations = d->mIncidenceRelations[parentUid];
+ relations.erase(
+ std::remove(relations.begin(), relations.end(), incidence),
+ relations.end());
}
// Remove this one from the orphans list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/src/event.cpp new/kcalcore-16.08.0/src/event.cpp
--- old/kcalcore-16.04.3/src/event.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/src/event.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -206,7 +206,7 @@
// End date is non inclusive
// If we have an incidence that duration is one day and ends with a start of a new day
// than it is not a multiday event
- if (multi && end.time() != QTime(0, 0, 0)) {
+ if (multi && end.time() == QTime(0, 0, 0)) {
multi = start.daysTo(end) > 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/src/icalformat.cpp new/kcalcore-16.08.0/src/icalformat.cpp
--- old/kcalcore-16.04.3/src/icalformat.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/src/icalformat.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -147,8 +147,10 @@
return fromRawString(cal, string.toUtf8(), deleted, notebook);
}
-Incidence::Ptr ICalFormat::readIncidence(const QByteArray &string, ICalTimeZones *tzlist)
+Incidence::Ptr ICalFormat::readIncidence(const QByteArray &string)
{
+ static ICalTimeZones *tzCache = new ICalTimeZones(); // populated on demand further down the call chain
+
icalcomponent *calendar;
// Let's defend const correctness until the very gates of hell^Wlibical
@@ -161,11 +163,11 @@
Incidence::Ptr incidence;
if (icalcomponent_isa(calendar) == ICAL_VCALENDAR_COMPONENT) {
- incidence = d->mImpl->readOneIncidence(calendar, tzlist);
+ incidence = d->mImpl->readOneIncidence(calendar, tzCache);
} else if (icalcomponent_isa(calendar) == ICAL_XROOT_COMPONENT) {
icalcomponent *comp = icalcomponent_get_first_component(calendar, ICAL_VCALENDAR_COMPONENT);
if (comp) {
- incidence = d->mImpl->readOneIncidence(comp, tzlist);
+ incidence = d->mImpl->readOneIncidence(comp, tzCache);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/src/icalformat.h new/kcalcore-16.08.0/src/icalformat.h
--- old/kcalcore-16.04.3/src/icalformat.h 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/src/icalformat.h 2016-08-06 09:12:19.000000000 +0200
@@ -107,15 +107,11 @@
Timezones are instead solely interpreted by using system-timezones.
@param string is a utf8 QByteArray containing the data to be parsed.
- @param tzlist is a collection of timezones used for the parsed date-times.
- This collection may be empty or pre-populated. If it is empty, it is populated
- automatically from the systemtimezones and thus acts as a cache. The tzlist may be 0
- if the timezone should be read everytime from the system.
@return non-zero pointer if the parsing was successful; 0 otherwise.
@see fromString(const QString &), fromRawString()
*/
- Incidence::Ptr readIncidence(const QByteArray &string, ICalTimeZones *tzlist);
+ Incidence::Ptr readIncidence(const QByteArray &string);
/**
Parses a string and fills a RecurrenceRule object with the information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalcore-16.04.3/src/incidence.cpp new/kcalcore-16.08.0/src/incidence.cpp
--- old/kcalcore-16.04.3/src/incidence.cpp 2016-06-15 06:36:43.000000000 +0200
+++ new/kcalcore-16.08.0/src/incidence.cpp 2016-08-06 09:12:19.000000000 +0200
@@ -52,16 +52,16 @@
{
public:
Private()
- : mRevision(0),
- mDescriptionIsRich(false),
- mSummaryIsRich(false),
- mLocationIsRich(false),
+ : mGeoLatitude(INVALID_LATLON),
+ mGeoLongitude(INVALID_LATLON),
mRecurrence(0),
+ mRevision(0),
+ mPriority(0),
mStatus(StatusNone),
mSecrecy(SecrecyPublic),
- mPriority(0),
- mGeoLatitude(INVALID_LATLON),
- mGeoLongitude(INVALID_LATLON),
+ mDescriptionIsRich(false),
+ mSummaryIsRich(false),
+ mLocationIsRich(false),
mHasGeo(false),
mThisAndFuture(false),
mLocalOnly(false)
@@ -70,26 +70,26 @@
Private(const Private &p)
: mCreated(p.mCreated),
- mRevision(p.mRevision),
mDescription(p.mDescription),
- mDescriptionIsRich(p.mDescriptionIsRich),
mSummary(p.mSummary),
- mSummaryIsRich(p.mSummaryIsRich),
mLocation(p.mLocation),
- mLocationIsRich(p.mLocationIsRich),
mCategories(p.mCategories),
- mRecurrence(0),
mResources(p.mResources),
- mStatus(p.mStatus),
mStatusString(p.mStatusString),
- mSecrecy(p.mSecrecy),
- mPriority(p.mPriority),
mSchedulingID(p.mSchedulingID),
mRelatedToUid(p.mRelatedToUid),
+ mRecurrenceId(p.mRecurrenceId),
mGeoLatitude(p.mGeoLatitude),
mGeoLongitude(p.mGeoLongitude),
+ mRecurrence(0),
+ mRevision(p.mRevision),
+ mPriority(p.mPriority),
+ mStatus(p.mStatus),
+ mSecrecy(p.mSecrecy),
+ mDescriptionIsRich(p.mDescriptionIsRich),
+ mSummaryIsRich(p.mSummaryIsRich),
+ mLocationIsRich(p.mLocationIsRich),
mHasGeo(p.mHasGeo),
- mRecurrenceId(p.mRecurrenceId),
mThisAndFuture(p.mThisAndFuture),
mLocalOnly(false)
{
@@ -149,31 +149,30 @@
}
KDateTime mCreated; // creation datetime
- int mRevision; // revision number
-
QString mDescription; // description string
- bool mDescriptionIsRich; // description string is richtext.
QString mSummary; // summary string
- bool mSummaryIsRich; // summary string is richtext.
QString mLocation; // location string
- bool mLocationIsRich; // location string is richtext.
QStringList mCategories; // category list
- mutable Recurrence *mRecurrence; // recurrence
Attachment::List mAttachments; // attachments list
Alarm::List mAlarms; // alarms list
QStringList mResources; // resources list (not calendar resources)
- Status mStatus; // status
QString mStatusString; // status string, for custom status
- Secrecy mSecrecy; // secrecy
- int mPriority; // priority: 1 = highest, 2 = less, etc.
QString mSchedulingID; // ID for scheduling mails
-
QMap<RelType, QString> mRelatedToUid; // incidence uid this is related to, for each relType
+ QHash<Attachment::Ptr, QString> mTempFiles; // Temporary files for writing attachments to.
+ KDateTime mRecurrenceId; // recurrenceId
+
float mGeoLatitude; // Specifies latitude in decimal degrees
float mGeoLongitude; // Specifies longitude in decimal degrees
+ mutable Recurrence *mRecurrence; // recurrence
+ int mRevision; // revision number
+ int mPriority; // priority: 1 = highest, 2 = less, etc.
+ Status mStatus; // status
+ Secrecy mSecrecy; // secrecy
+ bool mDescriptionIsRich; // description string is richtext.
+ bool mSummaryIsRich; // summary string is richtext.
+ bool mLocationIsRich; // location string is richtext.
bool mHasGeo; // if incidence has geo data
- QHash<Attachment::Ptr, QString> mTempFiles; // Temporary files for writing attachments to.
- KDateTime mRecurrenceId; // recurrenceId
bool mThisAndFuture;
bool mLocalOnly; // allow changes that won't go to the server
};
1
0
Hello community,
here is the log from the commit of package kcalc for openSUSE:Factory checked in at 2016-08-29 14:35:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcalc (Old)
and /work/SRC/openSUSE:Factory/.kcalc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcalc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcalc/kcalc.changes 2016-07-21 07:44:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kcalc.new/kcalc.changes 2016-08-29 14:36:04.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:11:37 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:49:40 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kcalc-16.04.3.tar.xz
New:
----
kcalc-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcalc.spec ++++++
--- /var/tmp/diff_new_pack.pBH82f/_old 2016-08-29 14:36:07.000000000 +0200
+++ /var/tmp/diff_new_pack.pBH82f/_new 2016-08-29 14:36:07.000000000 +0200
@@ -34,7 +34,7 @@
License: GPL-2.0+
Group: Productivity/Scientific/Math
Url: http://www.kde.org
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: %{name}-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kcalc-16.04.3.tar.xz -> kcalc-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-16.04.3/CMakeLists.txt new/kcalc-16.08.0/CMakeLists.txt
--- old/kcalc-16.04.3/CMakeLists.txt 2016-07-02 18:02:12.000000000 +0200
+++ new/kcalc-16.08.0/CMakeLists.txt 2016-08-10 01:07:39.000000000 +0200
@@ -2,8 +2,8 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "16")
-set (KDE_APPLICATIONS_VERSION_MINOR "04")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
+set (KDE_APPLICATIONS_VERSION_MINOR "08")
+set (KDE_APPLICATIONS_VERSION_MICRO "0")
set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-16.04.3/kcalc_button.cpp new/kcalc-16.08.0/kcalc_button.cpp
--- old/kcalc-16.04.3/kcalc_button.cpp 2016-07-02 18:02:12.000000000 +0200
+++ new/kcalc-16.08.0/kcalc_button.cpp 2016-08-10 01:07:39.000000000 +0200
@@ -41,6 +41,7 @@
// use preferred size policy for vertical
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
+ setAttribute(Qt::WA_LayoutUsesWidgetRect);
}
//------------------------------------------------------------------------------
@@ -54,6 +55,7 @@
// use preferred size policy for vertical
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
+ setAttribute(Qt::WA_LayoutUsesWidgetRect);
}
//------------------------------------------------------------------------------
1
0
Hello community,
here is the log from the commit of package kamera for openSUSE:Factory checked in at 2016-08-29 14:35:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kamera (Old)
and /work/SRC/openSUSE:Factory/.kamera.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kamera"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kamera/kamera.changes 2016-07-21 07:44:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kamera.new/kamera.changes 2016-08-29 14:35:44.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:09:00 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:45:50 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kamera-16.04.3.tar.xz
New:
----
kamera-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kamera.spec ++++++
--- /var/tmp/diff_new_pack.kyTfx6/_old 2016-08-29 14:35:46.000000000 +0200
+++ /var/tmp/diff_new_pack.kyTfx6/_new 2016-08-29 14:35:46.000000000 +0200
@@ -17,7 +17,7 @@
Name: kamera
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Base package for kdegraphics apps
License: LGPL-2.1+
++++++ kamera-16.04.3.tar.xz -> kamera-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kamera-16.04.3/CMakeLists.txt new/kamera-16.08.0/CMakeLists.txt
--- old/kamera-16.04.3/CMakeLists.txt 2016-07-02 18:00:04.000000000 +0200
+++ new/kamera-16.08.0/CMakeLists.txt 2016-08-10 01:05:27.000000000 +0200
@@ -3,8 +3,8 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "16")
-set (KDE_APPLICATIONS_VERSION_MINOR "04")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
+set (KDE_APPLICATIONS_VERSION_MINOR "08")
+set (KDE_APPLICATIONS_VERSION_MICRO "0")
set(KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(PROJECT_VERSION ${KDE_APPLICATIONS_VERSION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kamera-16.04.3/kcontrol/CMakeLists.txt new/kamera-16.08.0/kcontrol/CMakeLists.txt
--- old/kamera-16.04.3/kcontrol/CMakeLists.txt 2016-07-02 18:00:04.000000000 +0200
+++ new/kamera-16.08.0/kcontrol/CMakeLists.txt 2016-08-10 01:05:27.000000000 +0200
@@ -1,6 +1,8 @@
########### next target ###############
+add_definitions(-DTRANSLATION_DOMAIN=\"kcmkamera\")
+
set(kcm_kamera_PART_SRCS kamera.cpp kameradevice.cpp kameraconfigdialog.cpp )
add_library(kcm_kamera MODULE ${kcm_kamera_PART_SRCS})
1
0
Hello community,
here is the log from the commit of package kalarmcal for openSUSE:Factory checked in at 2016-08-29 14:35:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kalarmcal (Old)
and /work/SRC/openSUSE:Factory/.kalarmcal.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kalarmcal"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kalarmcal/kalarmcal.changes 2016-07-21 07:44:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kalarmcal.new/kalarmcal.changes 2016-08-29 14:35:10.000000000 +0200
@@ -1,0 +2,21 @@
+Fri Aug 12 14:15:22 UTC 2016 - wbauer(a)tmo.at
+
+- Remove unnecessary build requirements
+
+-------------------------------------------------------------------
+Fri Aug 12 10:08:13 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:44:53 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kalarmcal-16.04.3.tar.xz
New:
----
kalarmcal-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kalarmcal.spec ++++++
--- /var/tmp/diff_new_pack.ioyZ7S/_old 2016-08-29 14:35:11.000000000 +0200
+++ /var/tmp/diff_new_pack.ioyZ7S/_new 2016-08-29 14:35:11.000000000 +0200
@@ -17,53 +17,21 @@
Name: kalarmcal
-Version: 16.04.3
+Version: 16.08.0
Release: 0
-%define kf5_version 5.1.0
+%define kf5_version 5.23.0
Summary: KDE PIM Library kalarmcal
License: LGPL-2.1+
Group: System/GUI/KDE
Url: http://www.kde.org
Source: kalarmcal-%{version}.tar.xz
BuildRequires: akonadi-server-devel
-BuildRequires: boost-devel >= 1.34.0
-BuildRequires: cyrus-sasl-devel
-BuildRequires: extra-cmake-modules >= 1.0.0
-BuildRequires: gpgme-devel
+BuildRequires: extra-cmake-modules >= %{kf5_version}
BuildRequires: kcalcore-devel
-BuildRequires: kcmutils-devel >= %{kf5_version}
-BuildRequires: kcodecs-devel >= %{kf5_version}
-BuildRequires: kcodecs-devel >= %{kf5_version}
-BuildRequires: kcompletion-devel >= %{kf5_version}
-BuildRequires: kconfig-devel >= %{kf5_version}
-BuildRequires: kcoreaddons-devel >= %{kf5_version}
BuildRequires: kdelibs4support-devel >= %{kf5_version}
-BuildRequires: kdoctools-devel >= %{kf5_version}
-BuildRequires: kemoticons-devel >= %{kf5_version}
BuildRequires: kf5-filesystem
BuildRequires: kholidays-devel
-BuildRequires: ki18n-devel >= %{kf5_version}
BuildRequires: kidentitymanagement-devel
-BuildRequires: kio-devel >= %{kf5_version}
-BuildRequires: kitemviews-devel >= %{kf5_version}
-BuildRequires: kparts-devel >= %{kf5_version}
-BuildRequires: ktextwidgets-devel >= %{kf5_version}
-BuildRequires: kwallet-devel >= %{kf5_version}
-BuildRequires: kwidgetsaddons-devel >= %{kf5_version}
-BuildRequires: kxmlgui-devel >= %{kf5_version}
-BuildRequires: libassuan-devel
-BuildRequires: libical-devel >= 0.42
-BuildRequires: libxslt-devel
-BuildRequires: openldap2-devel
-BuildRequires: phonon4qt5-devel
-BuildRequires: solid-devel >= %{kf5_version}
-BuildRequires: sonnet-devel >= %{kf5_version}
-BuildRequires: pkgconfig(Qt5Designer) >= 5.2.0
-BuildRequires: pkgconfig(Qt5Network) >= 5.2.0
-BuildRequires: pkgconfig(Qt5Sql) >= 5.2.0
-BuildRequires: pkgconfig(Qt5Test) >= 5.2.0
-BuildRequires: pkgconfig(Qt5WebKitWidgets) >= 5.2.0
-BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
++++++ kalarmcal-16.04.3.tar.xz -> kalarmcal-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kalarmcal-16.04.3/CMakeLists.txt new/kalarmcal-16.08.0/CMakeLists.txt
--- old/kalarmcal-16.04.3/CMakeLists.txt 2016-06-15 06:36:19.000000000 +0200
+++ new/kalarmcal-16.08.0/CMakeLists.txt 2016-08-06 20:11:42.000000000 +0200
@@ -3,7 +3,8 @@
project(KAlarmCal)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -17,12 +18,14 @@
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
-set(KF5_VERSION "5.19.0")
-set(KALARM_LIB_VERSION "5.2.3")
-set(CALENDARCORE_LIB_VERSION "5.2.0")
-set(HOLIDAY_LIB_VERSION "5.2.0")
-set(IDENTITYMANAGER_LIB_VERSION "5.2.0")
-set(AKONADI_LIB_VERSION "5.2.0")
+set(PIM_VERSION "5.3.0")
+
+set(KALARM_LIB_VERSION ${PIM_VERSION})
+
+set(CALENDARCORE_LIB_VERSION "5.3.0")
+set(HOLIDAY_LIB_VERSION "5.3.0")
+set(IDENTITYMANAGER_LIB_VERSION "5.3.0")
+set(AKONADI_LIB_VERSION "5.3.0")
ecm_setup_version(${KALARM_LIB_VERSION} VARIABLE_PREFIX KALARMCAL
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kalarmcal_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5AlarmCalendarConfigVersion.cmake"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kalarmcal-16.04.3/src/alarmtext.cpp new/kalarmcal-16.08.0/src/alarmtext.cpp
--- old/kalarmcal-16.04.3/src/alarmtext.cpp 2016-06-15 06:36:19.000000000 +0200
+++ new/kalarmcal-16.08.0/src/alarmtext.cpp 2016-08-06 20:11:42.000000000 +0200
@@ -2,7 +2,7 @@
* alarmtext.cpp - text/email alarm text conversion
* This file is part of kalarmcal library, which provides access to KAlarm
* calendar data.
- * Copyright © 2004,2005,2007-2013 by David Jarvie <djarvie(a)kde.org>
+ * Copyright © 2004,2005,2007-2016 by David Jarvie <djarvie(a)kde.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as published
@@ -24,11 +24,11 @@
#include "kaevent.h"
-#include <klocale.h>
#include <klocalizedstring.h>
#include <QStringList>
#include <QDateTime>
+#include <QLocale>
namespace
{
@@ -164,8 +164,8 @@
if (todo->hasDueDate()) {
KDateTime due = todo->dtDue(false); // fetch the next due date
if (todo->hasStartDate() && todo->dtStart() != due) {
- d->mTime = todo->allDay() ? KLocale::global()->formatDate(due.date(), KLocale::ShortDate)
- : KLocale::global()->formatDateTime(due.dateTime());
+ d->mTime = todo->allDay() ? QLocale().toString(due.date(), QLocale::ShortFormat)
+ : QLocale().toString(due.dateTime(), QLocale::ShortFormat);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kalarmcal-16.04.3/src/datetime.cpp new/kalarmcal-16.08.0/src/datetime.cpp
--- old/kalarmcal-16.04.3/src/datetime.cpp 2016-06-15 06:36:19.000000000 +0200
+++ new/kalarmcal-16.08.0/src/datetime.cpp 2016-08-06 20:11:42.000000000 +0200
@@ -2,7 +2,7 @@
* datetime.cpp - date/time with start-of-day time for date-only values
* This file is part of kalarmcal library, which provides access to KAlarm
* calendar data.
- * Copyright © 2003,2005-2007,2009-2011 by David Jarvie <djarvie(a)kde.org>
+ * Copyright © 2003,2005-2007,2009-2011,2016 by David Jarvie <djarvie(a)kde.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as published
@@ -21,11 +21,11 @@
*/
#include "datetime.h"
-#include <klocale.h>
#include <klocalizedstring.h>
#include <ktimezone.h>
#include <QDateTime>
+#include <QLocale>
namespace KAlarmCal
{
@@ -344,7 +344,9 @@
QString DateTime::formatLocale(bool shortFormat) const
{
- return KLocale::global()->formatDateTime(d->mDateTime, (shortFormat ? KLocale::ShortDate : KLocale::LongDate));
+ QLocale::FormatType format = shortFormat ? QLocale::ShortFormat : QLocale::LongFormat;
+ return d->mDateTime.isDateOnly() ? QLocale().toString(d->mDateTime.date(), format)
+ : QLocale().toString(d->mDateTime.dateTime(), format);
}
void DateTime::setStartOfDay(const QTime &sod)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kalarmcal-16.04.3/src/karecurrence.cpp new/kalarmcal-16.08.0/src/karecurrence.cpp
--- old/kalarmcal-16.04.3/src/karecurrence.cpp 2016-06-15 06:36:19.000000000 +0200
+++ new/kalarmcal-16.08.0/src/karecurrence.cpp 2016-08-06 20:11:42.000000000 +0200
@@ -2,7 +2,7 @@
* karecurrence.cpp - recurrence with special yearly February 29th handling
* This file is part of kalarmcal library, which provides access to KAlarm
* calendar data.
- * Copyright © 2005-2013 by David Jarvie <djarvie(a)kde.org>
+ * Copyright © 2005-2016 by David Jarvie <djarvie(a)kde.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as published
@@ -30,7 +30,7 @@
#include <QBitArray>
#include <QDate>
-#include <KLocale>
+#include <QLocale>
using namespace KCalCore;
namespace KAlarmCal
@@ -1035,7 +1035,7 @@
int maxgap = 1;
// Use the user's definition of the week, starting at the
// day of the week specified by the user's locale.
- const int weekStart = KLocale::global()->weekStartDay() - 1; // zero-based
+ const int weekStart = QLocale().firstDayOfWeek() - 1; // zero-based
for (int i = 0; i < 7; ++i) {
// Get the standard KDE day-of-week number (zero-based)
// for the day-of-week number in the user's locale.
1
0
Hello community,
here is the log from the commit of package libkleo for openSUSE:Factory checked in at 2016-08-29 14:34:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkleo (Old)
and /work/SRC/openSUSE:Factory/.libkleo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkleo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libkleo/libkleo.changes 2016-08-08 13:50:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libkleo.new/libkleo.changes 2016-08-29 14:34:47.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:06:35 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:41:05 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
libkleo-16.04.3.tar.xz
New:
----
libkleo-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libkleo.spec ++++++
--- /var/tmp/diff_new_pack.Z3l7Ew/_old 2016-08-29 14:34:48.000000000 +0200
+++ /var/tmp/diff_new_pack.Z3l7Ew/_new 2016-08-29 14:34:48.000000000 +0200
@@ -17,7 +17,7 @@
Name: libkleo
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Base package of kdepim
License: GPL-2.0 and GPL-2.0+ and LGPL-2.1+
@@ -89,6 +89,7 @@
%defattr(-,root,root)
%{_kf5_configdir}/libkleopatrarc
%{_datadir}/libkleopatra/
+%{_kf5_configdir}/libkleo.categories
%files -n libKF5Libkleo5
%defattr(-,root,root)
++++++ libkleo-16.04.3.tar.xz -> libkleo-16.08.0.tar.xz ++++++
++++ 3101 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kleopatra5 for openSUSE:Factory checked in at 2016-08-29 14:34:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kleopatra5 (Old)
and /work/SRC/openSUSE:Factory/.kleopatra5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kleopatra5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kleopatra5/kleopatra5.changes 2016-08-08 13:57:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kleopatra5.new/kleopatra5.changes 2016-08-29 14:34:21.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:06:07 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:39:47 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kleopatra-16.04.3.tar.xz
New:
----
kleopatra-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kleopatra5.spec ++++++
--- /var/tmp/diff_new_pack.WWxQ66/_old 2016-08-29 14:34:24.000000000 +0200
+++ /var/tmp/diff_new_pack.WWxQ66/_new 2016-08-29 14:34:24.000000000 +0200
@@ -17,7 +17,7 @@
Name: kleopatra5
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: KDE Key Manager
License: GPL-2.0
@@ -30,22 +30,25 @@
BuildRequires: kcmutils-devel
BuildRequires: kcodecs-devel
BuildRequires: kconfig-devel
+BuildRequires: kconfigwidgets-devel
+BuildRequires: kcoreaddons-devel
BuildRequires: kdbusaddons-devel
BuildRequires: kdoctools-devel
BuildRequires: kf5-filesystem
-BuildRequires: kcmutils-devel
BuildRequires: ki18n-devel
BuildRequires: kiconthemes-devel
BuildRequires: kmime-devel
BuildRequires: knotifications-devel
BuildRequires: ktextwidgets-devel
BuildRequires: kwindowsystem-devel
+BuildRequires: kwidgetsaddons-devel
BuildRequires: kxmlgui-devel
BuildRequires: libassuan-devel
BuildRequires: libkleo-devel
BuildRequires: update-desktop-files
BuildRequires: xz
BuildRequires: pkgconfig(Qt5Network) >= 5.4.0
+BuildRequires: pkgconfig(Qt5PrintSupport) >= 5.4.0
BuildRequires: pkgconfig(Qt5Test) >= 5.4.0
BuildRequires: pkgconfig(Qt5Widgets) >= 5.4.0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -76,8 +79,8 @@
%{_kf5_libdir}/libkleopatraclientcore.so*
%{_kf5_libdir}/libkleopatraclientgui.so*
%{_kf5_plugindir}/kcm_kleopatra.so
-%dir %{_datadir}/appdata
-%{_datadir}/appdata/org.kde.kleopatra.appdata.xml
+%dir %{_kf5_appstreamdir}
+%{_kf5_appstreamdir}/org.kde.kleopatra.appdata.xml
%{_kf5_applicationsdir}/kleopatra_import.desktop
%{_kf5_applicationsdir}/org.kde.kleopatra.desktop
%{_kf5_htmldir}/en/kleopatra/
++++++ kleopatra-16.04.3.tar.xz -> kleopatra-16.08.0.tar.xz ++++++
++++ 10905 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kdgantt2 for openSUSE:Factory checked in at 2016-08-29 14:34:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdgantt2 (Old)
and /work/SRC/openSUSE:Factory/.kdgantt2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdgantt2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdgantt2/kdgantt2.changes 2016-07-21 07:51:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdgantt2.new/kdgantt2.changes 2016-08-29 14:34:03.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:05:48 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:39:27 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kdgantt2-16.04.3.tar.xz
New:
----
kdgantt2-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdgantt2.spec ++++++
--- /var/tmp/diff_new_pack.iMT9uz/_old 2016-08-29 14:34:04.000000000 +0200
+++ /var/tmp/diff_new_pack.iMT9uz/_new 2016-08-29 14:34:04.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdgantt2
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Base package of kdepim
License: GPL-2.0
++++++ kdgantt2-16.04.3.tar.xz -> kdgantt2-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdgantt2-16.04.3/CMakeLists.txt new/kdgantt2-16.08.0/CMakeLists.txt
--- old/kdgantt2-16.04.3/CMakeLists.txt 2016-06-15 06:38:22.000000000 +0200
+++ new/kdgantt2-16.08.0/CMakeLists.txt 2016-08-06 09:15:36.000000000 +0200
@@ -3,7 +3,8 @@
project(kdgantt2)
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
set(LIBRARY_NAMELINK)
include(GenerateExportHeader)
@@ -18,15 +19,15 @@
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
include(ECMAddTests)
+include(ECMPoQmTools)
+set(PIM_VERSION "5.3.0")
-set(KF5_VERSION "5.19.0")
-set(KDGANTS_LIB_VERSION "5.2.3")
-set(QT_REQUIRED_VERSION "5.4.0")
-find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets Test PrintSupport)
-find_package(KF5I18n ${KF5_VERSION} CONFIG REQUIRED)
+set(KDGANTS_LIB_VERSION ${PIM_VERSION})
+set(QT_REQUIRED_VERSION "5.5.0")
+find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets Test PrintSupport)
ecm_setup_version(${KDGANTS_LIB_VERSION} VARIABLE_PREFIX KDGANTT2
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kdgantt2_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5KDGantt2ConfigVersion.cmake"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdgantt2-16.04.3/COPYING new/kdgantt2-16.08.0/COPYING
--- old/kdgantt2-16.04.3/COPYING 1970-01-01 01:00:00.000000000 +0100
+++ new/kdgantt2-16.08.0/COPYING 2016-08-06 09:15:36.000000000 +0200
@@ -0,0 +1,346 @@
+NOTE! The GPL below is copyrighted by the Free Software Foundation, but
+the instance of code that it refers to (the kde programs) are copyrighted
+by the authors who actually wrote it.
+
+---------------------------------------------------------------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdgantt2-16.04.3/COPYING.LIB new/kdgantt2-16.08.0/COPYING.LIB
--- old/kdgantt2-16.04.3/COPYING.LIB 1970-01-01 01:00:00.000000000 +0100
+++ new/kdgantt2-16.08.0/COPYING.LIB 2016-08-06 09:15:36.000000000 +0200
@@ -0,0 +1,510 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard. To achieve this, non-free programs must
+be allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least
+ three years, to give the same user the materials specified in
+ Subsection 6a, above, for a charge no more than the cost of
+ performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+ Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdgantt2-16.04.3/src/CMakeLists.txt new/kdgantt2-16.08.0/src/CMakeLists.txt
--- old/kdgantt2-16.04.3/src/CMakeLists.txt 2016-06-15 06:38:22.000000000 +0200
+++ new/kdgantt2-16.08.0/src/CMakeLists.txt 2016-08-06 09:15:36.000000000 +0200
@@ -1,4 +1,5 @@
-add_definitions(-DTRANSLATION_DOMAIN=\"kdgantt2\")
+ecm_create_qm_loader(libkdgantt2_QM_LOADER kdgantt2)
+
# Those paths need to be absolute since this file is included from other CMakeLists.txt files
set(libkdgantt2_SRCS
kdganttabstractgrid.cpp
@@ -21,6 +22,7 @@
kdganttsummaryhandlingproxymodel.cpp
kdgantttreeviewrowcontroller.cpp
kdganttview.cpp
+${libkdgantt2_QM_LOADER}
)
ecm_qt_declare_logging_category(libkdgantt2_SRCS HEADER kdgantt_debug.h IDENTIFIER KDGANTT_LOG CATEGORY_NAME log_kdgantt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdgantt2-16.04.3/src/Messages.sh new/kdgantt2-16.08.0/src/Messages.sh
--- old/kdgantt2-16.04.3/src/Messages.sh 2016-06-15 06:38:22.000000000 +0200
+++ new/kdgantt2-16.08.0/src/Messages.sh 2016-08-06 09:15:36.000000000 +0200
@@ -1,2 +1,2 @@
#! /bin/sh
-$XGETTEXT_QT *.cpp *.h -o $podir/kdgantt2.pot
+$EXTRACT_TR_STRINGS *.cpp *.h -o $podir/kdgantt2_qt.pot
1
0
Hello community,
here is the log from the commit of package kdelibs4 for openSUSE:Factory checked in at 2016-08-29 14:33:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdelibs4 (Old)
and /work/SRC/openSUSE:Factory/.kdelibs4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdelibs4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdelibs4/kdelibs4-apidocs.changes 2016-07-21 07:42:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs4-apidocs.changes 2016-08-29 14:33:47.000000000 +0200
@@ -1,0 +2,12 @@
+Sat Aug 14 18:26:16 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to 4.14.23
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+-------------------------------------------------------------------
+Tue Aug 9 09:26:23 UTC 2016 - adrian(a)suse.de
+
+- get rid of opensuse_bs macro
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/kdelibs4/kdelibs4.changes 2016-06-20 11:06:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs4.changes 2016-08-29 14:33:50.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Aug 14 18:26:16 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to 4.14.23
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+- Add upstream patch KDE_HAVE_GCC_VISIBILITY-fix.patch to fix the
+ value so that GCC6 is taken into account
+
+-------------------------------------------------------------------
+Tue Aug 9 09:26:23 UTC 2016 - adrian(a)suse.de
+
+- get rid of opensuse_bs macro
+
+-------------------------------------------------------------------
Old:
----
kdelibs-4.14.22.tar.xz
New:
----
KDE_HAVE_GCC_VISIBILITY-fix.patch
kdelibs-4.14.23.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdelibs4-apidocs.spec ++++++
--- /var/tmp/diff_new_pack.pPVimw/_old 2016-08-29 14:33:52.000000000 +0200
+++ /var/tmp/diff_new_pack.pPVimw/_new 2016-08-29 14:33:52.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdelibs4-apidocs
-Version: 4.14.22
+Version: 4.14.23
Release: 0
Summary: KDE 4 API documentation
License: LGPL-2.1+
@@ -40,6 +40,8 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
+%define debug_package_requires %{name} = %{version}-%{release} libqt4-debuginfo
+
%description
This package includes the KDE 4 API documentation in HTML
format for easy browsing.
++++++ kdelibs4.spec ++++++
--- /var/tmp/diff_new_pack.pPVimw/_old 2016-08-29 14:33:52.000000000 +0200
+++ /var/tmp/diff_new_pack.pPVimw/_new 2016-08-29 14:33:52.000000000 +0200
@@ -20,7 +20,7 @@
%bcond_with gendoxygen
Name: kdelibs4
-Version: 4.14.22
+Version: 4.14.23
Release: 0
BuildRequires: OpenEXR-devel
BuildRequires: automoc4
@@ -90,6 +90,8 @@
Patch16: omit-strigi.patch
# PATCH-FIX-OPENSUSE gcc6-fix-errors.patch -- Fix errors spotted by GCC6.
Patch17: gcc6-fix-errors.patch
+# PATCH-FIX-UPSTREAM KDE_HAVE_GCC_VISIBILITY-fix.patch -- fix wrong value on systems with GCC6
+Patch18: KDE_HAVE_GCC_VISIBILITY-fix.patch
PreReq: permissions
Requires: libattica0_4 >= %( echo `rpm -q --queryformat '%{VERSION}' libattica-devel`)
Recommends: media-player-info
@@ -104,10 +106,6 @@
%requires_ge shared-mime-info
%requires_ge libqt4-x11
-%if 0%{?opensuse_bs}
-%define debug_package_requires %{name} = %{version}-%{release} libqt4-debuginfo
-%endif
-
Requires: %{name}-branding = %{_kde_branding_version}
%description
@@ -151,6 +149,7 @@
%patch15 -p1
%patch16 -p1
%patch17
+%patch18 -p1
%build
EXTRA_FLAGS="-DLIB_INSTALL_DIR=%{_kde4_libdir} \
++++++ KDE_HAVE_GCC_VISIBILITY-fix.patch ++++++
From: David Faure <faure(a)kde.org>
Date: Tue, 16 Aug 2016 13:50:57 +0000
Subject: Fix wrong value of __KDE_HAVE_GCC_VISIBILITY on systems with gcc 6.
X-Git-Url: http://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=e9b25c7c040d8526fe867…
---
Fix wrong value of __KDE_HAVE_GCC_VISIBILITY on systems with gcc 6.
Clearly the author of this regexp, in 2006, thought gcc would never
hit version 6 :-)
REVIEW: 128697
---
--- a/cmake/modules/FindKDE4Internal.cmake
+++ b/cmake/modules/FindKDE4Internal.cmake
@@ -1221,7 +1221,7 @@
# get the gcc version
exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
+ string (REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
# gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
if (NOT _gcc_version)
string (REGEX MATCH ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0" _gcc_version "${gcc_on_macos}")
++++++ kdelibs-4.14.22.tar.xz -> kdelibs-4.14.23.tar.xz ++++++
/work/SRC/openSUSE:Factory/kdelibs4/kdelibs-4.14.22.tar.xz /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs-4.14.23.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package grantleetheme for openSUSE:Factory checked in at 2016-08-29 14:33:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grantleetheme (Old)
and /work/SRC/openSUSE:Factory/.grantleetheme.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grantleetheme"
Changes:
--------
--- /work/SRC/openSUSE:Factory/grantleetheme/grantleetheme.changes 2016-07-21 07:50:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.grantleetheme.new/grantleetheme.changes 2016-08-29 14:33:38.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:04:32 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:37:53 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
grantleetheme-16.04.3.tar.xz
New:
----
grantleetheme-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grantleetheme.spec ++++++
--- /var/tmp/diff_new_pack.cSFWRq/_old 2016-08-29 14:33:39.000000000 +0200
+++ /var/tmp/diff_new_pack.cSFWRq/_new 2016-08-29 14:33:39.000000000 +0200
@@ -17,7 +17,7 @@
Name: grantleetheme
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Base package of kdepim
License: GPL-2.0
++++++ grantleetheme-16.04.3.tar.xz -> grantleetheme-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/CMakeLists.txt new/grantleetheme-16.08.0/CMakeLists.txt
--- old/grantleetheme-16.04.3/CMakeLists.txt 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/CMakeLists.txt 2016-08-06 09:16:49.000000000 +0200
@@ -2,7 +2,8 @@
project(GrantleeTheme)
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
set(LIBRARY_NAMELINK)
include(GenerateExportHeader)
@@ -18,10 +19,10 @@
include(ECMQtDeclareLoggingCategory)
include(ECMAddTests)
+set(PIM_VERSION "5.3.0")
+set(GRANTLEETHEME_LIB_VERSION ${PIM_VERSION})
-set(KF5_VERSION "5.19.0")
-set(GRANTLEETHEME_LIB_VERSION "5.2.3")
-set(QT_REQUIRED_VERSION "5.4.0")
+set(QT_REQUIRED_VERSION "5.5.0")
set(GRANTLEE_VERSION "5.0.0")
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets Test Network)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/COPYING new/grantleetheme-16.08.0/COPYING
--- old/grantleetheme-16.04.3/COPYING 1970-01-01 01:00:00.000000000 +0100
+++ new/grantleetheme-16.08.0/COPYING 2016-08-06 09:16:49.000000000 +0200
@@ -0,0 +1,346 @@
+NOTE! The GPL below is copyrighted by the Free Software Foundation, but
+the instance of code that it refers to (the kde programs) are copyrighted
+by the authors who actually wrote it.
+
+---------------------------------------------------------------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/COPYING.LIB new/grantleetheme-16.08.0/COPYING.LIB
--- old/grantleetheme-16.04.3/COPYING.LIB 1970-01-01 01:00:00.000000000 +0100
+++ new/grantleetheme-16.08.0/COPYING.LIB 2016-08-06 09:16:49.000000000 +0200
@@ -0,0 +1,510 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard. To achieve this, non-free programs must
+be allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least
+ three years, to give the same user the materials specified in
+ Subsection 6a, above, for a charge no more than the cost of
+ performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+ Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/autotest/data/icons/dummyTheme/index.theme new/grantleetheme-16.08.0/autotest/data/icons/dummyTheme/index.theme
--- old/grantleetheme-16.04.3/autotest/data/icons/dummyTheme/index.theme 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/autotest/data/icons/dummyTheme/index.theme 2016-08-06 09:16:49.000000000 +0200
@@ -1,27 +1,5 @@
[Icon Theme]
Name=DummyTheme
-Name[ca]=Tema de prova
-Name[ca@valencia]=Tema de prova
-Name[cs]=FalesnyMotiv
-Name[de]=DummyTheme
-Name[es]=Tema vacío
-Name[fi]=Testiteema
-Name[it]=TemaDiProva
-Name[nl]=DummyThema
-Name[pl]=FikcyjnyWystrój
-Name[pt]=Tema de Testes
-Name[pt_BR]=Tema de teste
-Name[ru]=DummyTheme
-Name[sk]=DummyTheme
-Name[sl]=DummyTheme
-Name[sr]=Лажна тема
-Name[sr@ijekavian]=Лажна тема
-Name[sr@ijekavianlatin]=Lažna tema
-Name[sr@latin]=Lažna tema
-Name[sv]=Testtema
-Name[uk]=Фіктивна тема
-Name[x-test]=xxDummyThemexx
-Name[zh_CN]=虚拟主题
Directories=128x128/apps
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/CMakeLists.txt new/grantleetheme-16.08.0/src/CMakeLists.txt
--- old/grantleetheme-16.04.3/src/CMakeLists.txt 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/src/CMakeLists.txt 2016-08-06 09:16:49.000000000 +0200
@@ -7,7 +7,9 @@
set(libgrantleetheme_SRCS
grantleetheme.cpp
grantleethememanager.cpp
+ grantleethemeengine.cpp
grantleeki18nlocalizer.cpp
+ qtresourcetemplateloader.cpp
)
configure_file(config-grantleetheme.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-grantleetheme.h)
@@ -45,6 +47,9 @@
HEADER_NAMES
GrantleeThemeManager
GrantleeTheme
+ GrantleeThemeEngine
+ QtResourceTemplateLoader
+ GrantleeKi18nLocalizer
REQUIRED_HEADERS GrantleeTheme_HEADERS
PREFIX GrantleeTheme
)
@@ -56,7 +61,7 @@
install(FILES
- ${GrantleeTheme_HEADERS}
+ ${GrantleeTheme_CamelCase_HEADERS}
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/GrantleeTheme
COMPONENT Devel
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleeki18nlocalizer.cpp new/grantleetheme-16.08.0/src/grantleeki18nlocalizer.cpp
--- old/grantleetheme-16.04.3/src/grantleeki18nlocalizer.cpp 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/src/grantleeki18nlocalizer.cpp 2016-08-06 09:16:49.000000000 +0200
@@ -17,15 +17,17 @@
*
*/
-#include "grantleeki18nlocalizer_p.h"
+#include "grantleeki18nlocalizer.h"
#include "grantleetheme_debug.h"
#include <QLocale>
#include <QDate>
+#include <QDebug>
#include <grantlee/safestring.h>
#include <KLocalizedString>
+using namespace GrantleeTheme;
GrantleeKi18nLocalizer::GrantleeKi18nLocalizer()
: Grantlee::QtLocalizer()
@@ -76,7 +78,9 @@
}
// Return localized in the currenctly active locale
- return str.toString({ currentLocale() });
+ const QString translatedStr = str.toString(mApplicationDomain.isEmpty() ? str.applicationDomain().constData() : mApplicationDomain.constData());
+ //qDebug() << " translatedStr"<< translatedStr << " domain :" << str.applicationDomain() << " currentLocale() "<< currentLocale() << " Specific applicationDomain" << mApplicationDomain;
+ return translatedStr;
}
QString GrantleeKi18nLocalizer::localizeContextString(const QString &string, const QString &context, const QVariantList &arguments) const
@@ -109,3 +113,18 @@
{
return QLocale(currentLocale()).toCurrencyString(value, currencySymbol);
}
+
+QString GrantleeKi18nLocalizer::currentLocale() const
+{
+ QString locale = Grantlee::QtLocalizer::currentLocale();
+ const int f = locale.indexOf(QLatin1Char('_'));
+ if (f >= 0) {
+ locale.truncate(f);
+ }
+ return locale;
+}
+
+void GrantleeKi18nLocalizer::setApplicationDomain(const QByteArray &domain)
+{
+ mApplicationDomain = domain;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleeki18nlocalizer.h new/grantleetheme-16.08.0/src/grantleeki18nlocalizer.h
--- old/grantleetheme-16.04.3/src/grantleeki18nlocalizer.h 1970-01-01 01:00:00.000000000 +0100
+++ new/grantleetheme-16.08.0/src/grantleeki18nlocalizer.h 2016-08-06 09:16:49.000000000 +0200
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2015 Daniel Vrátil <dvratil(a)redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef GRANTLEEKI18NLOCALIZER_H
+#define GRANTLEEKI18NLOCALIZER_H
+
+#include "grantleetheme_export.h"
+#include <grantlee/qtlocalizer.h>
+
+#include <QLocale>
+#include <QVariantHash>
+
+class KLocalizedString;
+namespace GrantleeTheme
+{
+class GRANTLEETHEME_EXPORT GrantleeKi18nLocalizer : public Grantlee::QtLocalizer
+{
+public:
+ explicit GrantleeKi18nLocalizer();
+ ~GrantleeKi18nLocalizer();
+
+ // Only reimplement string localization to use KLocalizedString instead of
+ // tr(), the remaining methods use QLocale internally, so we can reuse them
+ QString localizeContextString(const QString &string, const QString &context,
+ const QVariantList &arguments) const Q_DECL_OVERRIDE;
+ QString localizeString(const QString &string, const QVariantList &arguments) const Q_DECL_OVERRIDE;
+ QString localizePluralContextString(const QString &string, const QString &pluralForm,
+ const QString &context, const QVariantList &arguments) const Q_DECL_OVERRIDE;
+ QString localizePluralString(const QString &string, const QString &pluralForm,
+ const QVariantList &arguments) const Q_DECL_OVERRIDE;
+
+ // Only exception, Grantlee's implementation is not using QLocale for this
+ // for some reason
+ QString localizeMonetaryValue(qreal value, const QString ¤tCode) const Q_DECL_OVERRIDE;
+
+ QString currentLocale() const Q_DECL_OVERRIDE;
+
+
+ void setApplicationDomain(const QByteArray &domain);
+private:
+ QString processArguments(const KLocalizedString &str,
+ const QVariantList &arguments) const;
+ QByteArray mApplicationDomain;
+};
+}
+
+#endif // GRANTLEEKI18NLOCALIZER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleeki18nlocalizer_p.h new/grantleetheme-16.08.0/src/grantleeki18nlocalizer_p.h
--- old/grantleetheme-16.04.3/src/grantleeki18nlocalizer_p.h 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/src/grantleeki18nlocalizer_p.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2015 Daniel Vrátil <dvratil(a)redhat.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef GRANTLEEKI18NLOCALIZER_H
-#define GRANTLEEKI18NLOCALIZER_H
-
-#include <grantlee/qtlocalizer.h>
-
-#include <QLocale>
-#include <QVariantHash>
-
-class KLocalizedString;
-
-class GrantleeKi18nLocalizer : public Grantlee::QtLocalizer
-{
-public:
- explicit GrantleeKi18nLocalizer();
- ~GrantleeKi18nLocalizer();
-
- // Only reimplement string localization to use KLocalizedString instead of
- // tr(), the remaining methods use QLocale internally, so we can reuse them
- QString localizeContextString(const QString &string, const QString &context,
- const QVariantList &arguments) const Q_DECL_OVERRIDE;
- QString localizeString(const QString &string, const QVariantList &arguments) const Q_DECL_OVERRIDE;
- QString localizePluralContextString(const QString &string, const QString &pluralForm,
- const QString &context, const QVariantList &arguments) const Q_DECL_OVERRIDE;
- QString localizePluralString(const QString &string, const QString &pluralForm,
- const QVariantList &arguments) const Q_DECL_OVERRIDE;
-
- // Only exception, Grantlee's implementation is not using QLocale for this
- // for some reason
- QString localizeMonetaryValue(qreal value, const QString ¤ctCode) const Q_DECL_OVERRIDE;
-
-private:
- QString processArguments(const KLocalizedString &str,
- const QVariantList &arguments) const;
-};
-
-#endif // GRANTLEEKI18NLOCALIZER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleetheme.cpp new/grantleetheme-16.08.0/src/grantleetheme.cpp
--- old/grantleetheme-16.04.3/src/grantleetheme.cpp 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/src/grantleetheme.cpp 2016-08-06 09:16:49.000000000 +0200
@@ -18,6 +18,7 @@
#include "grantleetheme.h"
#include "grantleetheme_p.h"
#include "grantleetheme_debug.h"
+#include "grantleethemeengine.h"
#include "config-grantleetheme.h"
#include <KConfig>
@@ -57,11 +58,7 @@
void ThemePrivate::setupEngine()
{
- sEngine = new Grantlee::Engine;
- sEngine->addPluginPath(QStringLiteral(GRANTLEE_PLUGIN_INSTALL_DIR));
- sEngine->addDefaultLibrary(QStringLiteral("grantlee_i18ntags"));
- sEngine->addDefaultLibrary(QStringLiteral("kde_grantlee_plugin"));
- sEngine->setSmartTrimEnabled(true);
+ sEngine = new GrantleeTheme::Engine();
}
void ThemePrivate::setupLoader()
@@ -80,12 +77,12 @@
sEngine->addTemplateLoader(loader);
}
-Grantlee::Context ThemePrivate::createContext(const QVariantHash &data)
+Grantlee::Context ThemePrivate::createContext(const QVariantHash &data, const QByteArray &applicationDomain)
{
if (!sLocalizer) {
sLocalizer.reset(new GrantleeKi18nLocalizer());
}
-
+ sLocalizer->setApplicationDomain(applicationDomain);
Grantlee::Context ctx(data);
ctx.setLocalizer(sLocalizer);
return ctx;
@@ -198,7 +195,7 @@
return d->email;
}
-QString Theme::render(const QString &templateName, const QVariantHash &data)
+QString Theme::render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain)
{
if (!d->loader) {
d->setupLoader();
@@ -215,7 +212,7 @@
return d->errorTemplate(i18n("Template parsing error"), templateName, tpl);
}
- Grantlee::Context ctx = d->createContext(data);
+ Grantlee::Context ctx = d->createContext(data, applicationDomain);
const QString result = tpl->render(&ctx);
if (tpl->error()) {
return d->errorTemplate(i18n("Template rendering error"), templateName, tpl);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleetheme.h new/grantleetheme-16.08.0/src/grantleetheme.h
--- old/grantleetheme-16.04.3/src/grantleetheme.h 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/src/grantleetheme.h 2016-08-06 09:16:49.000000000 +0200
@@ -53,7 +53,7 @@
QString author() const;
QString authorEmail() const;
- QString render(const QString &templateName, const QVariantHash &data);
+ QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray());
static void addPluginPath(const QString &path);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleetheme_p.h new/grantleetheme-16.08.0/src/grantleetheme_p.h
--- old/grantleetheme-16.04.3/src/grantleetheme_p.h 2016-06-15 06:35:55.000000000 +0200
+++ new/grantleetheme-16.08.0/src/grantleetheme_p.h 2016-08-06 09:16:49.000000000 +0200
@@ -19,7 +19,7 @@
#define GRANTLEETHEME_THEME_P_H
#include "grantleetheme.h"
-#include "grantleeki18nlocalizer_p.h"
+#include "grantleeki18nlocalizer.h"
#include <grantlee/template.h>
#include <grantlee/templateloader.h>
@@ -37,7 +37,7 @@
static void setupEngine();
void setupLoader();
- Grantlee::Context createContext(const QVariantHash &data = QVariantHash());
+ Grantlee::Context createContext(const QVariantHash &data = QVariantHash(), const QByteArray &applicationDomain = QByteArray());
QString errorTemplate(const QString &reason,
const QString &templateName,
const Grantlee::Template &errorTemplate);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleethemeengine.cpp new/grantleetheme-16.08.0/src/grantleethemeengine.cpp
--- old/grantleetheme-16.04.3/src/grantleethemeengine.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/grantleetheme-16.08.0/src/grantleethemeengine.cpp 2016-08-06 09:16:49.000000000 +0200
@@ -0,0 +1,64 @@
+/*
+ Copyright (c) 2016 Daniel Vrátil <dvratil(a)kde.org>
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License, version 2, as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "grantleethemeengine.h"
+#include "grantleeki18nlocalizer.h"
+
+#include "config-grantleetheme.h"
+
+using namespace GrantleeTheme;
+
+class GrantleeTheme::EnginePrivate
+{
+public:
+ EnginePrivate()
+ {
+ }
+
+ ~EnginePrivate()
+ {
+ }
+
+ QWeakPointer<GrantleeKi18nLocalizer> localizer;
+};
+
+
+Engine::Engine(QObject *parent)
+ : Grantlee::Engine(parent)
+ , d(new GrantleeTheme::EnginePrivate)
+{
+ addPluginPath(QStringLiteral(GRANTLEE_PLUGIN_INSTALL_DIR));
+ addDefaultLibrary(QStringLiteral("grantlee_i18ntags"));
+ addDefaultLibrary(QStringLiteral("kde_grantlee_plugin"));
+ addDefaultLibrary(QStringLiteral("grantlee_scriptabletags"));
+ setSmartTrimEnabled(true);
+}
+
+Engine::~Engine()
+{
+ delete d;
+}
+
+QSharedPointer<GrantleeKi18nLocalizer> Engine::localizer() const
+{
+ auto loc = d->localizer.toStrongRef();
+ if (!loc) {
+ loc.reset(new GrantleeKi18nLocalizer());
+ d->localizer = loc.toWeakRef();
+ }
+ return loc;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/grantleethemeengine.h new/grantleetheme-16.08.0/src/grantleethemeengine.h
--- old/grantleetheme-16.04.3/src/grantleethemeengine.h 1970-01-01 01:00:00.000000000 +0100
+++ new/grantleetheme-16.08.0/src/grantleethemeengine.h 2016-08-06 09:16:49.000000000 +0200
@@ -0,0 +1,46 @@
+/*
+ Copyright (c) 2016 Daniel Vrátil <dvratil(a)kde.org>
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License, version 2, as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef GRANTLEETHEMEENGINE_H
+#define GRANTLEETHEMEENGINE_H
+
+#include <grantlee/engine.h>
+#include <QSharedPointer>
+
+#include "grantleetheme_export.h"
+
+namespace GrantleeTheme {
+
+class GrantleeKi18nLocalizer;
+class EnginePrivate;
+class GRANTLEETHEME_EXPORT Engine : public Grantlee::Engine
+{
+ Q_OBJECT
+
+public:
+ explicit Engine(QObject *parent = Q_NULLPTR);
+ ~Engine() Q_DECL_OVERRIDE;
+
+ QSharedPointer<GrantleeKi18nLocalizer> localizer() const;
+
+private:
+ EnginePrivate *const d;
+};
+
+}
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/qtresourcetemplateloader.cpp new/grantleetheme-16.08.0/src/qtresourcetemplateloader.cpp
--- old/grantleetheme-16.04.3/src/qtresourcetemplateloader.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/grantleetheme-16.08.0/src/qtresourcetemplateloader.cpp 2016-08-06 09:16:49.000000000 +0200
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2016 Laurent Montel <montel(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+
+#include "qtresourcetemplateloader.h"
+
+#include <QFile>
+#include <QTextStream>
+#include <grantlee/engine.h>
+//TODO: remove this class when Grantlee support it
+using namespace GrantleeTheme;
+
+QtResourceTemplateLoader::QtResourceTemplateLoader(const QSharedPointer<Grantlee::AbstractLocalizer> localizer)
+ : Grantlee::FileSystemTemplateLoader(localizer)
+{
+
+}
+
+Grantlee::Template QtResourceTemplateLoader::loadByName(const QString &fileName, const Grantlee::Engine *engine) const
+{
+ // Qt resource file
+ if (fileName.startsWith(QLatin1String(":/"))) {
+ QFile file;
+ file.setFileName(fileName);
+ if (!file.exists() || !file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ return Grantlee::Template();
+ }
+
+ QTextStream fstream(&file);
+ fstream.setCodec("UTF-8");
+ const auto fileContent = fstream.readAll();
+
+ return engine->newTemplate(fileContent, fileName);
+ } else {
+ return Grantlee::FileSystemTemplateLoader::loadByName(fileName, engine);
+ }
+}
+
+bool QtResourceTemplateLoader::canLoadTemplate(const QString &name) const
+{
+ // Qt resource file
+ if (name.startsWith(QLatin1String(":/"))) {
+ QFile file;
+ file.setFileName(name);
+
+ if (!file.exists() || !file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ return false;
+ }
+ file.close();
+ return true;
+ } else {
+ return Grantlee::FileSystemTemplateLoader::canLoadTemplate(name);
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grantleetheme-16.04.3/src/qtresourcetemplateloader.h new/grantleetheme-16.08.0/src/qtresourcetemplateloader.h
--- old/grantleetheme-16.04.3/src/qtresourcetemplateloader.h 1970-01-01 01:00:00.000000000 +0100
+++ new/grantleetheme-16.08.0/src/qtresourcetemplateloader.h 2016-08-06 09:16:49.000000000 +0200
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2016 Laurent Montel <montel(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef QTRESOURCETEMPLATELOADER_H
+#define QTRESOURCETEMPLATELOADER_H
+#include "grantlee/templateloader.h"
+#include "grantleetheme_export.h"
+namespace GrantleeTheme
+{
+class GRANTLEETHEME_EXPORT QtResourceTemplateLoader : public Grantlee::FileSystemTemplateLoader
+{
+public:
+ QtResourceTemplateLoader(const QSharedPointer<Grantlee::AbstractLocalizer> localizer = QSharedPointer<Grantlee::AbstractLocalizer>());
+
+ Grantlee::Template loadByName(const QString &fileName, const Grantlee::Engine *engine) const Q_DECL_OVERRIDE;
+ bool canLoadTemplate(const QString &name) const Q_DECL_OVERRIDE;
+};
+}
+#endif // QTRESOURCETEMPLATELOADER_H
1
0
Hello community,
here is the log from the commit of package gwenview5 for openSUSE:Factory checked in at 2016-08-29 14:33:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gwenview5 (Old)
and /work/SRC/openSUSE:Factory/.gwenview5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gwenview5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gwenview5/gwenview5.changes 2016-07-21 07:42:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gwenview5.new/gwenview5.changes 2016-08-29 14:33:20.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:03:34 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:36:00 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
gwenview-16.04.3.tar.xz
New:
----
gwenview-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gwenview5.spec ++++++
--- /var/tmp/diff_new_pack.ztWgQh/_old 2016-08-29 14:33:21.000000000 +0200
+++ /var/tmp/diff_new_pack.ztWgQh/_new 2016-08-29 14:33:21.000000000 +0200
@@ -18,7 +18,7 @@
%define rname gwenview
Name: gwenview5
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Simple Image Viewer for KDE
License: GPL-2.0+
++++++ gwenview-16.04.3.tar.xz -> gwenview-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/CMakeLists.txt new/gwenview-16.08.0/CMakeLists.txt
--- old/gwenview-16.04.3/CMakeLists.txt 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/CMakeLists.txt 2016-08-10 01:05:11.000000000 +0200
@@ -2,8 +2,8 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "16")
-set (KDE_APPLICATIONS_VERSION_MINOR "04")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
+set (KDE_APPLICATIONS_VERSION_MINOR "08")
+set (KDE_APPLICATIONS_VERSION_MICRO "0")
set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )
@@ -107,6 +107,7 @@
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_definitions(-DTRANSLATION_DOMAIN="gwenview")
+add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
## dirs to build
add_subdirectory(lib)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/CMakeLists.txt new/gwenview-16.08.0/app/CMakeLists.txt
--- old/gwenview-16.04.3/app/CMakeLists.txt 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/CMakeLists.txt 2016-08-10 01:05:11.000000000 +0200
@@ -84,6 +84,22 @@
target_link_libraries(gwenview KF5::Kipi)
endif()
+if (APPLE)
+ # own plist template
+ set_target_properties (gwenview PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/MacOSXBundleInfo.plist.in)
+ # the MacOSX bundle display name property (CFBundleDisplayName) is not currently supported by cmake,
+ # so has to be set for all targets in this cmake file
+ set(MACOSX_BUNDLE_DISPLAY_NAME Gwenview5)
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.gwenview")
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Gwenview5")
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_DISPLAY_NAME "Gwenview5")
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_INFO_STRING "Gwenview, KDE Image Viewer")
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_LONG_VERSION_STRING "Gwenview ${KDE_APPLICATIONS_VERSION}")
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}")
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_BUNDLE_VERSION "${KDE_APPLICATIONS_VERSION}")
+ set_target_properties(gwenview PROPERTIES MACOSX_BUNDLE_COPYRIGHT "2002-2016 The Gwenview Authors")
+endif (APPLE)
+
install(TARGETS gwenview
${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/folderviewcontextmanageritem.cpp new/gwenview-16.08.0/app/folderviewcontextmanageritem.cpp
--- old/gwenview-16.04.3/app/folderviewcontextmanageritem.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/folderviewcontextmanageritem.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -232,8 +232,7 @@
void FolderViewContextManagerItem::slotCurrentDirUrlChanged(const QUrl &url)
{
if (url.isValid() && d->mUrlToSelect != url) {
- d->mUrlToSelect = QDir::cleanPath(url.path());
- d->mUrlToSelect = d->mUrlToSelect.adjusted(QUrl::StripTrailingSlash);
+ d->mUrlToSelect = url.adjusted(QUrl::StripTrailingSlash | QUrl::NormalizePathSegments);
d->mExpandingIndex = QModelIndex();
}
if (!d->mView->isVisible()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/imagemetainfodialog.cpp new/gwenview-16.08.0/app/imagemetainfodialog.cpp
--- old/gwenview-16.04.3/app/imagemetainfodialog.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/imagemetainfodialog.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -111,7 +111,7 @@
struct ImageMetaInfoDialogPrivate
{
- std::auto_ptr<PreferredImageMetaInfoModel> mModel;
+ std::unique_ptr<PreferredImageMetaInfoModel> mModel;
QTreeView* mTreeView;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/kipiinterface.cpp new/gwenview-16.08.0/app/kipiinterface.cpp
--- old/gwenview-16.04.3/app/kipiinterface.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/kipiinterface.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -468,7 +468,7 @@
return NULL;
}
-#if Kipi_VERSION_MAJOR == 5 && Kipi_VERSION_MINOR == 0
+#ifdef GWENVIEW_KIPI_WITH_CREATE_RAW_PROCESSOR
KIPI::RawProcessor* KIPIInterface::createRawProcessor() const
{
return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/kipiinterface.h new/gwenview-16.08.0/app/kipiinterface.h
--- old/gwenview-16.04.3/app/kipiinterface.h 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/kipiinterface.h 2016-08-10 01:05:11.000000000 +0200
@@ -35,6 +35,9 @@
#endif
#if KIPI_VERSION_MAJOR >= 5
#define GWENVIEW_KIPI_WITH_CREATE_METHODS
+#if KIPI_VERSION_MINOR == 0
+# define GWENVIEW_KIPI_WITH_CREATE_RAW_PROCESSOR
+#endif
#endif
namespace Gwenview
@@ -71,7 +74,7 @@
#ifdef GWENVIEW_KIPI_WITH_CREATE_METHODS
virtual KIPI::FileReadWriteLock* createReadWriteLock(const QUrl& url) const;
virtual KIPI::MetadataProcessor* createMetadataProcessor() const;
-#if Kipi_VERSION_MAJOR == 5 && Kipi_VERSION_MINOR == 0
+#ifdef GWENVIEW_KIPI_WITH_CREATE_RAW_PROCESSOR
virtual KIPI::RawProcessor* createRawProcessor() const;
#endif
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/main.cpp new/gwenview-16.08.0/app/main.cpp
--- old/gwenview-16.04.3/app/main.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/main.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -112,8 +112,8 @@
QUrl mUrl;
bool mFullScreen;
bool mSlideShow;
- std::auto_ptr<QTemporaryDir> mMultipleUrlsDir;
- std::auto_ptr<Gwenview::MainWindow> mMainWindow;
+ std::unique_ptr<QTemporaryDir> mMultipleUrlsDir;
+ std::unique_ptr<Gwenview::MainWindow> mMainWindow;
};
int main(int argc, char *argv[])
@@ -127,11 +127,12 @@
aboutData->setShortDescription(i18n("An Image Viewer"));
QApplication app(argc, argv);
+ app.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
KAboutData::setApplicationData(*aboutData);
app.setApplicationName(aboutData.data()->componentName());
app.setApplicationDisplayName(aboutData.data()->displayName());
app.setOrganizationDomain(aboutData.data()->organizationDomain());
- QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("gwenview")));
+ QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("gwenview"), app.windowIcon()));
QCommandLineParser parser;
aboutData.data()->setupCommandLine(&parser);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/mainwindow.cpp new/gwenview-16.08.0/app/mainwindow.cpp
--- old/gwenview-16.04.3/app/mainwindow.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/mainwindow.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -32,6 +32,9 @@
#include <QVBoxLayout>
#include <QMenuBar>
#include <QUrl>
+#ifdef Q_OS_OSX
+#include <QFileOpenEvent>
+#endif
// KDE
#include <KIO/NetAccess>
@@ -794,6 +797,9 @@
d->mKIPIExportAction->setKIPIInterface(d->mKIPIInterface);
#endif
setAutoSaveSettings();
+#ifdef Q_OS_OSX
+ qApp->installEventFilter(this);
+#endif
}
MainWindow::~MainWindow()
@@ -1542,6 +1548,21 @@
}
}
+bool MainWindow::eventFilter(QObject *obj, QEvent *event)
+{
+#ifdef Q_OS_OSX
+ /**
+ * handle Mac OS X file open events (only exist on OS X)
+ */
+ if (event->type() == QEvent::FileOpen) {
+ QFileOpenEvent *fileOpenEvent = static_cast<QFileOpenEvent*>(event);
+ openUrl(fileOpenEvent->url());
+ return true;
+ }
+#endif
+ return false;
+}
+
void MainWindow::setDistractionFreeMode(bool value)
{
d->mFullScreenContent->setDistractionFreeMode(value);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/mainwindow.h new/gwenview-16.08.0/app/mainwindow.h
--- old/gwenview-16.04.3/app/mainwindow.h 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/mainwindow.h 2016-08-10 01:05:11.000000000 +0200
@@ -78,6 +78,7 @@
virtual void resizeEvent(QResizeEvent*) Q_DECL_OVERRIDE;
virtual void saveProperties(KConfigGroup&) Q_DECL_OVERRIDE;
virtual void readProperties(const KConfigGroup&) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *, QEvent *);
private Q_SLOTS:
void setActiveViewModeAction(QAction* action);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/org.kde.gwenview.desktop new/gwenview-16.08.0/app/org.kde.gwenview.desktop
--- old/gwenview-16.04.3/app/org.kde.gwenview.desktop 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/org.kde.gwenview.desktop 2016-08-10 01:05:11.000000000 +0200
@@ -84,6 +84,7 @@
GenericName[fr]=Afficheur d'images de KDE
GenericName[ga]=Amharcán Íomhánna KDE
GenericName[gl]=Visor de imaxes de KDE
+GenericName[he]=מציג תמונות של KDE
GenericName[hu]=KDE képnézegető
GenericName[ia]=Visor de imagine de KDE
GenericName[id]=Penampil Gambar KDE
@@ -137,6 +138,7 @@
Comment[fr]=Un afficheur simple d'images
Comment[ga]=Amharcán simplí íomhánna
Comment[gl]=Un visor de imaxes sinxelo
+Comment[he]=מציג תמונות פשוט
Comment[hi]=एक सरल चित्र प्रदर्शक
Comment[hne]=एक सरल फोटू प्रदर्सक
Comment[hr]=Jednostavni preglednik slika
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/app/semanticinfocontextmanageritem.cpp new/gwenview-16.08.0/app/semanticinfocontextmanageritem.cpp
--- old/gwenview-16.04.3/app/semanticinfocontextmanageritem.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/app/semanticinfocontextmanageritem.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -38,6 +38,7 @@
#include <KRatingPainter>
#include <KIconLoader>
#include <KSharedConfig>
+#include <KWindowConfig>
// Local
#include "viewmainpage.h"
@@ -71,13 +72,13 @@
mainWidget->layout()->setMargin(0);
setWindowTitle(mainWidget->windowTitle());
- restoreDialogSize(configGroup());
+ KWindowConfig::restoreWindowSize(windowHandle(), configGroup());
}
~SemanticInfoDialog()
{
KConfigGroup group = configGroup();
- saveDialogSize(group);
+ KWindowConfig::saveWindowSize(windowHandle(), group);
}
KConfigGroup configGroup() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/doc/index.docbook new/gwenview-16.08.0/doc/index.docbook
--- old/gwenview-16.04.3/doc/index.docbook 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/doc/index.docbook 2016-08-10 01:05:11.000000000 +0200
@@ -1,7 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
"dtd/kdedbx45.dtd" [
- <!ENTITY kappname "<application>Gwenview</application>">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE"><!-- change language only here -->
]>
@@ -40,7 +39,7 @@
<date>2015-08-04</date>
<releaseinfo>Applications 15.08</releaseinfo>
<abstract>
-<para>&kappname; is an image and video viewer.</para>
+<para>&gwenview; is an image and video viewer.</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
@@ -57,14 +56,14 @@
<title>Introduction</title>
<sect1 id="what-is-gwenview">
-<title>What is &kappname;</title>
+<title>What is &gwenview;</title>
<para>
-&kappname; is a fast and easy to use image and video viewer.
+&gwenview; is a fast and easy to use image and video viewer.
</para>
<para>
-Gwenview features two main modes: Browse and View. Both modes can be used
+&gwenview; features two main modes: Browse and View. Both modes can be used
in a normal application window and Full Screen. Browse Mode
lets you navigate through your computer showing thumbnails of your images, View
Mode lets you view images one at a time, and Full Screen lets you make quick
@@ -72,14 +71,14 @@
folders and &URL;s as well as your places and tags.
</para>
-<para>Image loading is handled by the Qt library, so &kappname; supports all
-image formats your Qt installation supports. &kappname; correctly displays images
+<para>Image loading is handled by the &Qt; library, so &gwenview; supports all
+image formats your &Qt; installation supports. &gwenview; correctly displays images
with an alpha channel (transparency) as well as animations.</para>
-<para>&kappname; supports the displaying and editing of EXIF comments in JPEG
+<para>&gwenview; supports the displaying and editing of EXIF comments in JPEG
images. Lossless JPEG transforms such as rotations and mirroring are also supported.</para>
-<para>&kappname; can read embedded color profiles from PNG and JPEG files.
+<para>&gwenview; can read embedded color profiles from PNG and JPEG files.
It can use the image color profile together with the display color profile
to output correct colors on the screen.</para>
</sect1>
@@ -104,8 +103,8 @@
</sect1>
<sect1 id='image_operations'><title>Image Operations</title>
-<para>&kappname; has a few features which are available in both Browse, View, and
-Full Screen view. &kappname; has the capability to do basic alteration of your
+<para>&gwenview; has a few features which are available in both Browse, View, and
+Full Screen view. &gwenview; has the capability to do basic alteration of your
images.</para>
<itemizedlist>
<listitem><para>Rotate: A rotate operation will rotate the image either to the left
@@ -177,7 +176,7 @@
<tip><para>If you have installed the Kipi Plugins, a <guimenu>Plugins</guimenu>
menu will be available that will allow you to perform many additional operations
on your images. For more information, see the
-<ulink url="help:kipi-plugins">Kipi Plugins documentation</ulink>.</para></tip>
+<ulink url="help:/kipi-plugins">Kipi Plugins documentation</ulink>.</para></tip>
</sect1>
<sect1 id='browse_mode'><title>Browse Mode</title>
@@ -271,7 +270,7 @@
the image using the mouse and the arrow keys. The bird-eye view automatically hides
itself after a short delay, showing back only while zooming or scrolling.</para>
-<para>You can define what happens when going to image B after having zoomed in on an area of image A using the options in the <guilabel>Zoom mode</guilabel> group on the <guimenuitem>Image View</guimenuitem> page of the &kappname; configuration window which can be reached using the <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure &kappname;...</guimenuitem></menuchoice>.</para>
+<para>You can define what happens when going to image B after having zoomed in on an area of image A using the options in the <guilabel>Zoom mode</guilabel> group on the <guimenuitem>Image View</guimenuitem> page of the &gwenview; configuration window which can be reached using the <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure &gwenview;...</guimenuitem></menuchoice>.</para>
<itemizedlist>
<listitem><para>If set to <guilabel>Autofit each image</guilabel>, image B is zoomed out to fit the screen.</para></listitem>
@@ -279,7 +278,7 @@
<listitem><para>If set to <guilabel>Per image zoom and position</guilabel>, all images remember their own zoom and position: image B is initially set to the same zoom parameters as image A, but will then remember its own zoom and position (if these are changed, image A will <emphasis>not</emphasis> be displayed with the updated zoom and position).</para></listitem>
</itemizedlist>
-<tip><para>You can start directly in View mode by starting &kappname; from a
+<tip><para>You can start directly in View mode by starting &gwenview; from a
context menu like <guimenuitem>Open With</guimenuitem> in another program or by
launching it from the command line with an image as an argument.</para> </tip>
@@ -375,7 +374,7 @@
mouse to the top of the screen. If the mouse cursor is over the top bar, it
will not autohide. Most of the buttons on the bar are the same as the ones on
the toolbar in Browse or View Modes, except for the <guiicon>Exit Full
-Screen Mode</guiicon> button which returns you to the &kappname; window, the
+Screen Mode</guiicon> button which returns you to the &gwenview; window, the
<guiicon>Start/Stop Slideshow</guiicon> button, and the
<guiicon>Configure Full Screen Mode</guiicon> button which shows a
small settings dialog that allows you to easily and quickly configure the
@@ -383,7 +382,7 @@
<itemizedlist>
<listitem><para>The <guilabel>Interval</guilabel> slider controls how long
- &kappname; will show an image before it move to the next one.</para></listitem>
+ &gwenview; will show an image before it move to the next one.</para></listitem>
<listitem><para>If the <guilabel>Loop</guilabel> check box is checked, when the
end of the slideshow is reached, it will continue from the beginning instead
of stopping. </para></listitem>
@@ -453,15 +452,15 @@
</chapter>
<!--FIXME no importer in kf5
<chapter id="importer">
-<title>&kappname; Importer</title>
+<title>&gwenview; Importer</title>
<sect1>
<title>Introduction</title>
-<para>The &kappname; Importer allows you to import images from a digital camera or
-removable media. To launch it, select <guilabel>Download Photos with &kappname;</guilabel>
+<para>The &gwenview; Importer allows you to import images from a digital camera or
+removable media. To launch it, select <guilabel>Download Photos with &gwenview;</guilabel>
in the &kde; Device Notifier after connecting a supported device.</para>
-<para>When you plug in a device the &kappname; importer recursively lists all images and videos.
+<para>When you plug in a device the &gwenview; importer recursively lists all images and videos.
</para>
<para>This is not always what you expect, ⪚ plugging a smartphone you do not want to list all medias
of the device; but only the pictures you took, which are usually in a special subfolder.
@@ -475,7 +474,7 @@
</imageobject>
</mediaobject>
</screenshot>
-<para>It is possible to select the root folder to list, and &kappname; Importer will remember the
+<para>It is possible to select the root folder to list, and &gwenview; Importer will remember the
last root folder for each device. This way, next time you plug a device in, only the relevant
pictures and videos should be listed.
</para>
@@ -484,7 +483,7 @@
<title>Importing Images</title>
<screenshot>
- <screeninfo>&kappname; Importer Screenshot</screeninfo>
+ <screeninfo>&gwenview; Importer Screenshot</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="importer.png" format="PNG" />
@@ -503,7 +502,7 @@
<sect2>
<title>Automatic Renaming</title>
-<para>&kappname; Importer can rename your files according to a specified pattern.
+<para>&gwenview; Importer can rename your files according to a specified pattern.
To configure this, select the <guibutton>Settings</guibutton> in the lower left
corner. You may turn this feature on or off using the check box at the top. The
<guilabel>Rename Format</guilabel> supports several special parameters, which will
@@ -549,9 +548,9 @@
shows that image.</para></listitem>
<listitem><para>When in Browse mode, scrolling the mouse wheel will scroll up
or down the thumbnail view area.</para></listitem>
- <listitem><para>If the <guilabel>Mouse Behavior</guilabel> option in
+ <listitem><para>If the <guilabel>Mouse wheel behavior</guilabel> option in
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
- &kappname;</guimenuitem></menuchoice>
+ &gwenview;</guimenuitem></menuchoice>
is set to Browse, scrolling the mouse wheel while in View Mode will
move you through the images in the folder.</para></listitem>
</itemizedlist>
@@ -560,7 +559,7 @@
<sect1 id="keybindings"> <title>Key bindings</title>
-<para>&kappname; comes with a range of keyboard shortcuts, all of which can be
+<para>&gwenview; comes with a range of keyboard shortcuts, all of which can be
viewed and remapped by selecting
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
Shortcuts...</guimenuitem></menuchoice>. Note that in the Files and Folders
@@ -687,13 +686,13 @@
<sect1 id="advanced-configuration">
<title>Advanced Configuration Options</title>
<para>
- Some notes on hidden &kappname; options can be found on
+ Some notes on hidden &gwenview; options can be found on
<ulink url="http://userbase.kde.org/Special:myLanguage/Gwenview/Hidden_Configuration_Op…">this page</ulink>.
</para>
<important>
<para>
The options described on the above-mentioned page may help you
- tune &kappname; for specific needs, but please keep in mind
+ tune &gwenview; for specific needs, but please keep in mind
there is no warranty they will continue working from one
version to another.
</para>
@@ -704,7 +703,7 @@
<chapter id="credits">
<title>Credits and Copyright</title>
-<para>&kappname; is currently maintained by Aurélien Gâteau</para>
+<para>&gwenview; is currently maintained by Aurélien Gâteau</para>
<para>This document was written by Christopher Martin</para>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/lib/cms/cmsprofile.h new/gwenview-16.08.0/lib/cms/cmsprofile.h
--- old/gwenview-16.04.3/lib/cms/cmsprofile.h 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/lib/cms/cmsprofile.h 2016-08-10 01:05:11.000000000 +0200
@@ -25,10 +25,8 @@
// Local
-// KDE
-#include <KSharedPtr>
-
// Qt
+#include <QExplicitlySharedDataPointer>
#include <QSharedData>
// Exiv2
@@ -52,7 +50,7 @@
class GWENVIEWLIB_EXPORT Profile : public QSharedData
{
public:
- typedef KSharedPtr<Profile> Ptr;
+ typedef QExplicitlySharedDataPointer<Profile> Ptr;
Profile();
~Profile();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/lib/document/loadingdocumentimpl.cpp new/gwenview-16.08.0/lib/document/loadingdocumentimpl.cpp
--- old/gwenview-16.04.3/lib/document/loadingdocumentimpl.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/lib/document/loadingdocumentimpl.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -101,7 +101,7 @@
QByteArray mFormat;
QSize mImageSize;
Exiv2::Image::AutoPtr mExiv2Image;
- std::auto_ptr<JpegContent> mJpegContent;
+ std::unique_ptr<JpegContent> mJpegContent;
QImage mImage;
Cms::Profile::Ptr mCmsProfile;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/lib/print/printhelper.cpp new/gwenview-16.08.0/lib/print/printhelper.cpp
--- old/gwenview-16.04.3/lib/print/printhelper.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/lib/print/printhelper.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -123,7 +123,7 @@
PrintOptionsPage* optionsPage = new PrintOptionsPage(doc->size());
optionsPage->loadConfig();
- std::auto_ptr<QPrintDialog> dialog(
+ std::unique_ptr<QPrintDialog> dialog(
KdePrint::createPrintDialog(&printer,
QList<QWidget*>() << optionsPage,
d->mParent)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/lib/thumbnailview/thumbnailbarview.cpp new/gwenview-16.08.0/lib/thumbnailview/thumbnailbarview.cpp
--- old/gwenview-16.04.3/lib/thumbnailview/thumbnailbarview.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/lib/thumbnailview/thumbnailbarview.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -123,7 +123,6 @@
void updateHoverUi(const QModelIndex& index)
{
- QModelIndex oldIndex = mIndexUnderCursor;
mIndexUnderCursor = index;
if (mIndexUnderCursor.isValid()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/lib/thumbnailview/thumbnailview.cpp new/gwenview-16.08.0/lib/thumbnailview/thumbnailview.cpp
--- old/gwenview-16.04.3/lib/thumbnailview/thumbnailview.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/lib/thumbnailview/thumbnailview.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -577,7 +577,6 @@
// Special case for videos because our kde install may come without
// support for video thumbnails so we show the mimetype icon instead of
// a broken image icon
- ThumbnailGroup::Enum group = ThumbnailGroup::fromPixelSize(d->mThumbnailSize.height());
QPixmap pix = KIconLoader::global()->loadMimeTypeIcon(item.iconName(), KIconLoader::Desktop, d->mThumbnailSize.height());
thumbnail.initAsIcon(pix);
} else if (kind == MimeTypeUtils::KIND_DIR) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/tests/CMakeLists.txt new/gwenview-16.08.0/tests/CMakeLists.txt
--- old/gwenview-16.04.3/tests/CMakeLists.txt 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/tests/CMakeLists.txt 2016-08-10 01:05:11.000000000 +0200
@@ -5,6 +5,8 @@
return()
endif()
+add_custom_target(buildtests)
+
add_subdirectory(auto)
add_subdirectory(manual)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/tests/auto/CMakeLists.txt new/gwenview-16.08.0/tests/auto/CMakeLists.txt
--- old/gwenview-16.04.3/tests/auto/CMakeLists.txt 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/tests/auto/CMakeLists.txt 2016-08-10 01:05:11.000000000 +0200
@@ -3,6 +3,7 @@
macro(gv_add_unit_test _test)
set(_src ${_test}.cpp ${ARGN})
add_executable(${_test} ${_src})
+ add_dependencies(buildtests ${_test})
add_test( ${_test} ${_test} )
ecm_mark_as_test(${_test})
target_link_libraries(${_test}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/tests/auto/cmsprofiletest.cpp new/gwenview-16.08.0/tests/auto/cmsprofiletest.cpp
--- old/gwenview-16.04.3/tests/auto/cmsprofiletest.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/tests/auto/cmsprofiletest.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -47,7 +47,7 @@
data = file.readAll();
}
Cms::Profile::Ptr ptr = Cms::Profile::loadFromImageData(data, format);
- QVERIFY(!ptr.isNull());
+ QVERIFY(ptr);
}
#define NEW_ROW(fileName, format) QTest::newRow(fileName) << fileName << QByteArray(format)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/tests/auto/testutils.cpp new/gwenview-16.08.0/tests/auto/testutils.cpp
--- old/gwenview-16.04.3/tests/auto/testutils.cpp 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/tests/auto/testutils.cpp 2016-08-10 01:05:11.000000000 +0200
@@ -38,9 +38,9 @@
return QUrl();
}
- QUrl baseUrl = QString::fromLocal8Bit(qgetenv("GV_REMOTE_TESTS_BASE_URL"));
+ QUrl baseUrl(QString::fromLocal8Bit(qgetenv("GV_REMOTE_TESTS_BASE_URL")));
baseUrl = baseUrl.adjusted(QUrl::StripTrailingSlash);
- baseUrl.setPath(baseUrl.path() + '/' + "gwenview-remote-tests");
+ baseUrl.setPath(baseUrl.path() + "/gwenview-remote-tests");
if (KIO::NetAccess::exists(baseUrl, KIO::NetAccess::DestinationSide, authWindow)) {
KIO::NetAccess::del(baseUrl, authWindow);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-16.04.3/tests/manual/CMakeLists.txt new/gwenview-16.08.0/tests/manual/CMakeLists.txt
--- old/gwenview-16.04.3/tests/manual/CMakeLists.txt 2016-07-02 17:59:48.000000000 +0200
+++ new/gwenview-16.08.0/tests/manual/CMakeLists.txt 2016-08-10 01:05:11.000000000 +0200
@@ -8,6 +8,7 @@
)
add_executable(slidecontainertest ${slidecontainertest_SRCS})
+add_dependencies(buildtests slidecontainertest)
ecm_mark_as_test(slidecontainertest)
target_link_libraries(slidecontainertest
@@ -21,6 +22,7 @@
)
add_executable(imageloadbench ${imageloadbench_SRCS})
+add_dependencies(buildtests imageloadbench)
ecm_mark_as_test(imageloadbench)
target_link_libraries(imageloadbench
@@ -35,6 +37,7 @@
)
add_executable(thumbnailgen ${thumbnailgen_SRCS})
+add_dependencies(buildtests thumbnailgen)
ecm_mark_as_test(thumbnailgen)
target_link_libraries(thumbnailgen
1
0
Hello community,
here is the log from the commit of package gpgmepp5 for openSUSE:Factory checked in at 2016-08-29 14:33:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpgmepp5 (Old)
and /work/SRC/openSUSE:Factory/.gpgmepp5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpgmepp5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gpgmepp5/gpgmepp5.changes 2016-07-21 07:42:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gpgmepp5.new/gpgmepp5.changes 2016-08-29 14:33:08.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:03:12 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:35:13 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
gpgmepp-16.04.3.tar.xz
New:
----
gpgmepp-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gpgmepp5.spec ++++++
--- /var/tmp/diff_new_pack.NsBeiD/_old 2016-08-29 14:33:10.000000000 +0200
+++ /var/tmp/diff_new_pack.NsBeiD/_new 2016-08-29 14:33:10.000000000 +0200
@@ -18,7 +18,7 @@
%define kf5_version 5.5.0
Name: gpgmepp5
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: C++ bindings/wrapper for gpgme
License: LGPL-2.1+
++++++ gpgmepp-16.04.3.tar.xz -> gpgmepp-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/CMakeLists.txt new/gpgmepp-16.08.0/CMakeLists.txt
--- old/gpgmepp-16.04.3/CMakeLists.txt 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/CMakeLists.txt 2016-08-09 16:54:18.000000000 +0200
@@ -3,7 +3,8 @@
project(Gpgmepp)
# ECM setup
-find_package(ECM 5.19.0 CONFIG REQUIRED)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${Gpgmepp_SOURCE_DIR}/cmake ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -16,9 +17,9 @@
include(KDECMakeSettings)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
+set(PIM_VERSION "5.3.0")
-set(KF5_VERSION "5.19.0")
-set(GPGMEPP_LIB_VERSION "5.2.3")
+set(GPGMEPP_LIB_VERSION ${PIM_VERSION})
set(QT_MIN_VERSION "5.2.0")
ecm_setup_version(${GPGMEPP_LIB_VERSION} VARIABLE_PREFIX GPGMEPP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/ConfigureChecks.cmake new/gpgmepp-16.08.0/src/ConfigureChecks.cmake
--- old/gpgmepp-16.04.3/src/ConfigureChecks.cmake 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/ConfigureChecks.cmake 2016-08-09 16:54:18.000000000 +0200
@@ -438,6 +438,30 @@
}
" HAVE_GPGME_CTX_OFFLINE )
+# check if gpgme has identify support (new in 1.4.3)
+check_cxx_source_compiles ("
+ #include <gpgme.h>
+ int main() {
+ gpgme_data_t data;
+ gpgme_data_identify( data, 0 );
+ return 0;
+ }
+" HAVE_GPGME_DATA_IDENTIFY )
+
+# check if gpgme has decent identify support (new in 1.7.0)
+# decent means that it supports binary data and has more fine
+# grained distinctions
+check_cxx_source_compiles ("
+ #include <gpgme.h>
+ int main() {
+ gpgme_data_t data;
+ gpgme_data_type_t ret = gpgme_data_identify( data, 0 );
+ if (ret == GPGME_DATA_TYPE_PGP_SIGNATURE)
+ return 0;
+ return 0;
+ }
+" HAVE_GPGME_DATA_IDENTIFY_GOOD )
+
# check if gpgme has pubkey_algo name mode support (new in 1.6.1)
check_function_exists ("gpgme_pubkey_algo_string" HAVE_GPGME_PUBKEY_ALGO_STRING )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/config-gpgme++.h.cmake new/gpgmepp-16.08.0/src/config-gpgme++.h.cmake
--- old/gpgmepp-16.04.3/src/config-gpgme++.h.cmake 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/config-gpgme++.h.cmake 2016-08-09 16:54:18.000000000 +0200
@@ -130,6 +130,12 @@
/* Define to 1 if gpgme supports the context offline mode* */
#cmakedefine HAVE_GPGME_CTX_OFFLINE 1
+/* Define to 1 if gpgme supports identify* */
+#cmakedefine HAVE_GPGME_DATA_IDENTIFY 1
+
+/* Define to 1 if gpgme supports a good version of identify* */
+#cmakedefine HAVE_GPGME_DATA_IDENTIFY_GOOD 1
+
#ifndef GPGMEPP_ERR_SOURCE_DEFAULT
#define GPGMEPP_ERR_SOURCE_DEFAULT 22
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/context.cpp new/gpgmepp-16.08.0/src/context.cpp
--- old/gpgmepp-16.04.3/src/context.cpp 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/context.cpp 2016-08-09 16:54:18.000000000 +0200
@@ -1232,7 +1232,8 @@
}
}
*keys_it++ = 0;
- d->lasterr = gpgme_op_encrypt(d->ctx, keys, encryptflags2encryptflags(flags),
+ d->lasterr = gpgme_op_encrypt(d->ctx, recipients.empty() ? Q_NULLPTR : keys,
+ encryptflags2encryptflags(flags),
pdp ? pdp->data : 0, cdp ? cdp->data : 0);
delete[] keys;
return EncryptionResult(d->ctx, Error(d->lasterr));
@@ -1684,6 +1685,9 @@
;
static const unsigned long supported_features2 = 0
+#ifdef HAVE_GPGME_DATA_IDENTIFY_GOOD
+ | GpgME::BinaryAndFineGrainedIdentify
+#endif
;
bool GpgME::hasFeature(unsigned long features)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/data.cpp new/gpgmepp-16.08.0/src/data.cpp
--- old/gpgmepp-16.04.3/src/data.cpp 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/data.cpp 2016-08-09 16:54:18.000000000 +0200
@@ -164,6 +164,32 @@
return Error(gpgme_data_set_encoding(d->data, ge));
}
+GpgME::Data::Type GpgME::Data::type() const
+{
+ if (isNull()) {
+ return Invalid;
+ }
+#ifdef HAVE_GPGME_DATA_IDENTIFY
+ switch (gpgme_data_identify(d->data, 0)) {
+ case GPGME_DATA_TYPE_INVALID: return Invalid;
+ case GPGME_DATA_TYPE_UNKNOWN: return Unknown;
+ case GPGME_DATA_TYPE_PGP_SIGNED: return PGPSigned;
+ case GPGME_DATA_TYPE_PGP_OTHER: return PGPOther;
+ case GPGME_DATA_TYPE_PGP_KEY: return PGPKey;
+ case GPGME_DATA_TYPE_CMS_SIGNED: return CMSSigned;
+ case GPGME_DATA_TYPE_CMS_ENCRYPTED: return CMSEncrypted;
+ case GPGME_DATA_TYPE_CMS_OTHER: return CMSOther;
+ case GPGME_DATA_TYPE_X509_CERT: return X509Cert;
+ case GPGME_DATA_TYPE_PKCS12: return PKCS12;
+# ifdef HAVE_GPGME_DATA_IDENTIFY_GOOD
+ case GPGME_DATA_TYPE_PGP_ENCRYPTED: return PGPEncrypted;
+ case GPGME_DATA_TYPE_PGP_SIGNATURE: return PGPSignature;
+# endif
+ }
+#endif
+ return Unknown;
+}
+
char *GpgME::Data::fileName() const
{
#ifdef HAVE_GPGME_DATA_SET_FILE_NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/data.h new/gpgmepp-16.08.0/src/data.h
--- old/gpgmepp-16.04.3/src/data.h 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/data.h 2016-08-09 16:54:18.000000000 +0200
@@ -83,6 +83,22 @@
Encoding encoding() const;
Error setEncoding(Encoding encoding);
+ enum Type {
+ Invalid,
+ Unknown,
+ PGPSigned,
+ PGPOther,
+ PGPKey,
+ CMSSigned,
+ CMSEncrypted,
+ CMSOther,
+ X509Cert,
+ PKCS12,
+ PGPEncrypted,
+ PGPSignature
+ };
+ Type type() const;
+
char *fileName() const;
Error setFileName(const char *name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/editinteractor.cpp new/gpgmepp-16.08.0/src/editinteractor.cpp
--- old/gpgmepp-16.04.3/src/editinteractor.cpp 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/editinteractor.cpp 2016-08-09 16:54:18.000000000 +0200
@@ -221,27 +221,19 @@
return d->error;
}
-#ifndef GPGME_STATUS_PINENTRY_LAUNCHED
-// New in gpgme 1.5.0
-#define GPGME_STATUS_PINENTRY_LAUNCHED 88
-#endif
-
bool EditInteractor::needsNoResponse(unsigned int status) const
{
switch (status) {
- case GPGME_STATUS_EOF:
- case GPGME_STATUS_GOT_IT:
- case GPGME_STATUS_NEED_PASSPHRASE:
+ case GPGME_STATUS_ALREADY_SIGNED:
+ case GPGME_STATUS_ERROR:
+ case GPGME_STATUS_GET_BOOL:
+ case GPGME_STATUS_GET_LINE:
+ case GPGME_STATUS_KEY_CREATED:
case GPGME_STATUS_NEED_PASSPHRASE_SYM:
- case GPGME_STATUS_GOOD_PASSPHRASE:
- case GPGME_STATUS_BAD_PASSPHRASE:
- case GPGME_STATUS_USERID_HINT:
- case GPGME_STATUS_SIGEXPIRED:
- case GPGME_STATUS_KEYEXPIRED:
- case GPGME_STATUS_PINENTRY_LAUNCHED:
- return true;
- default:
+ case GPGME_STATUS_SC_OP_FAILURE:
return false;
+ default:
+ return true;
}
}
@@ -253,8 +245,6 @@
return Error::fromCode(GPG_ERR_NO_PASSPHRASE);
case GPGME_STATUS_ALREADY_SIGNED:
return Error::fromCode(GPG_ERR_ALREADY_SIGNED);
- case GPGME_STATUS_KEYEXPIRED:
- return Error::fromCode(GPG_ERR_CERT_EXPIRED);
case GPGME_STATUS_SIGEXPIRED:
return Error::fromCode(GPG_ERR_SIG_EXPIRED);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/global.h new/gpgmepp-16.08.0/src/global.h
--- old/gpgmepp-16.04.3/src/global.h 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/global.h 2016-08-09 16:54:18.000000000 +0200
@@ -132,8 +132,10 @@
FeatureMaxValue = 0x80000000
};
enum Feature2 {
+ BinaryAndFineGrainedIdentify = 0x00000001, // gpgme >= 1.7.0
Feature2MaxValue = 0x80000000
};
+
// use hasFeature( unsigned long, unsigned long ) instead
GPGMEPP_DEPRECATED_EXPORT bool hasFeature(unsigned long feature);
GPGMEPP_EXPORT bool hasFeature(unsigned long feature, unsigned long feature2);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/key.cpp new/gpgmepp-16.08.0/src/key.cpp
--- old/gpgmepp-16.04.3/src/key.cpp 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/key.cpp 2016-08-09 16:54:18.000000000 +0200
@@ -383,9 +383,9 @@
return subkey ? subkey->fpr : 0 ;
}
-unsigned int Subkey::publicKeyAlgorithm() const
+Subkey::PubkeyAlgo Subkey::publicKeyAlgorithm() const
{
- return subkey ? subkey->pubkey_algo : 0 ;
+ return subkey ? static_cast<PubkeyAlgo>(subkey->pubkey_algo) : AlgoUnknown;
}
const char *Subkey::publicKeyAlgorithmAsString() const
@@ -393,6 +393,15 @@
return gpgme_pubkey_algo_name(subkey ? subkey->pubkey_algo : (gpgme_pubkey_algo_t)0);
}
+/* static */
+const char *Subkey::publicKeyAlgorithmAsString(PubkeyAlgo algo)
+{
+ if (algo == AlgoUnknown) {
+ return NULL;
+ }
+ return gpgme_pubkey_algo_name(static_cast<gpgme_pubkey_algo_t>(algo));
+}
+
std::string Subkey::algoName() const
{
#ifndef HAVE_GPGME_PUBKEY_ALGO_STRING
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/key.h new/gpgmepp-16.08.0/src/key.h
--- old/gpgmepp-16.04.3/src/key.h 2016-06-15 06:35:44.000000000 +0200
+++ new/gpgmepp-16.08.0/src/key.h 2016-08-09 16:54:18.000000000 +0200
@@ -207,7 +207,23 @@
bool isSecret() const;
- unsigned int publicKeyAlgorithm() const;
+ /** Same as gpgme_pubkey_algo_t */
+ enum PubkeyAlgo {
+ AlgoUnknown = 0,
+ AlgoRSA = 1,
+ AlgoRSA_E = 2,
+ AlgoRSA_S = 3,
+ AlgoELG_E = 16,
+ AlgoDSA = 17,
+ AlgoECC = 18,
+ AlgoELG = 20,
+ AlgoECDSA = 301,
+ AlgoECDH = 302,
+ AlgoEDDSA = 303,
+ AlgoMax = 1 << 31
+ };
+
+ PubkeyAlgo publicKeyAlgorithm() const;
/**
@brief Get the public key algorithm name.
@@ -219,11 +235,16 @@
*/
const char *publicKeyAlgorithmAsString() const;
+ /** @brief Same as publicKeyAlgorithmAsString but static. */
+ static const char *publicKeyAlgorithmAsString(PubkeyAlgo algo);
+
/**
@brief Get the key algo string like GnuPG 2.1 prints it.
This returns combinations of size and algorithm. Like
- bp512 or rsa2048
+ bp512 or rsa2048. Misnamed because publicKeyAlgorithmAsString
+ already used the older pubkey_algo_name.
+ Actually uses gpgme_pubkey_algo_string.
@returns the key algorithm as string. Empty string on error.
*/
1
0
Hello community,
here is the log from the commit of package dragonplayer for openSUSE:Factory checked in at 2016-08-29 14:32:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dragonplayer (Old)
and /work/SRC/openSUSE:Factory/.dragonplayer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dragonplayer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dragonplayer/dragonplayer.changes 2016-07-21 07:42:29.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dragonplayer.new/dragonplayer.changes 2016-08-29 14:32:53.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:02:47 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:34:04 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
dragon-16.04.3.tar.xz
New:
----
dragon-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dragonplayer.spec ++++++
--- /var/tmp/diff_new_pack.lbxxyC/_old 2016-08-29 14:32:55.000000000 +0200
+++ /var/tmp/diff_new_pack.lbxxyC/_new 2016-08-29 14:32:55.000000000 +0200
@@ -42,7 +42,7 @@
License: GPL-2.0+
Group: Productivity/Multimedia/Video/Players
Url: http://dragonplayer.org/
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Source0: dragon-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ dragon-16.04.3.tar.xz -> dragon-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/CMakeLists.txt new/dragon-16.08.0/CMakeLists.txt
--- old/dragon-16.04.3/CMakeLists.txt 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/CMakeLists.txt 2016-08-10 01:09:33.000000000 +0200
@@ -3,8 +3,8 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "16")
-set(KDE_APPLICATIONS_VERSION_MINOR "04")
-set(KDE_APPLICATIONS_VERSION_MICRO "3")
+set(KDE_APPLICATIONS_VERSION_MINOR "08")
+set(KDE_APPLICATIONS_VERSION_MICRO "0")
set(KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(PROJECT_VERSION ${KDE_APPLICATIONS_VERSION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/doc/index.docbook new/dragon-16.08.0/doc/index.docbook
--- old/dragon-16.04.3/doc/index.docbook 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/doc/index.docbook 2016-08-10 01:09:33.000000000 +0200
@@ -1,8 +1,5 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
- <!ENTITY kappname "&dragonplayer;">
- <!ENTITY dragonplayer "<application>Dragon Player</application>">
-
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE"><!-- change language only here -->
]>
@@ -10,7 +7,7 @@
<book id="dragon" lang="&language;">
<bookinfo>
-<title>The &dragonplayer; Handbook</title>
+<title>The &dragon; Handbook</title>
<authorgroup>
<author>
@@ -41,12 +38,12 @@
<legalnotice>&FDLNotice;</legalnotice>
-<date>2013-05-11</date>
-<releaseinfo>2.0 (&kde; 4.11)</releaseinfo>
+<date>2016-06-29</date>
+<releaseinfo>Applications 16.04</releaseinfo>
<abstract>
<para>
-&dragonplayer; is a simple video player for &kde;.
+&dragon; is a simple video player by &kde;.
</para>
</abstract>
@@ -67,7 +64,7 @@
<title>Introduction</title>
<screenshot>
-<screeninfo>&dragonplayer; Screenshot</screeninfo>
+<screeninfo>&dragon; Screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="main.png" format="PNG"/></imageobject>
<textobject><phrase>Screenshot</phrase></textobject>
@@ -76,7 +73,7 @@
<para>
-&dragonplayer; is a simple media player using &phonon; technology. &dragonplayer; is a no frills media player that excels at playing DVDs and movie files without getting in your way.
+&dragon; is a simple media player using &phonon; technology. &dragon; is a no frills media player that excels at playing DVDs and movie files without getting in your way.
</para>
</chapter>
@@ -84,7 +81,7 @@
<chapter id="select-media">
<title>Select a Media</title>
-<para>If you start &dragonplayer; from the application launcher or use <guibutton>Play Media</guibutton>
+<para>If you start &dragon; from the application launcher or use <guibutton>Play Media</guibutton>
(<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo>) from the toolbar or from the <guimenu>Play</guimenu>
menu this window is displayed:</para>
@@ -135,7 +132,7 @@
<term>
Navigation
</term>
-<listitem><para>The shortcut <keycap>PgUp</keycap> brings you 10% forward, <keycap>PgDown</keycap> 10% backward.
+<listitem><para>The shortcut <keycap>PgUp</keycap> brings you 10% forward / <keycap>+</keycap> 10 seconds forward and <keycap>PgDown</keycap> brings you 10% backward / <keycap>-</keycap> 10 seconds backward.
Use <menuchoice><guimenu>Settings</guimenu> <guimenuitem>Menu Toggle</guimenuitem></menuchoice> (<keycap>R</keycap>) to switch to the video menu and select another chapter to play.
<menuchoice><guimenu>Play</guimenu><guimenuitem>Play/Pause</guimenuitem></menuchoice> (<keysym>Space</keysym>) allows you to pause and resume playback if a movie is loaded. <menuchoice><guimenu>Play</guimenu><guimenuitem>Stop</guimenuitem></menuchoice> (<keycap>S</keycap>) stops playback.
Go to the previous or next chapter of a video with <guimenuitem>Previous Chapter</guimenuitem> (<keycap>,</keycap>) or <guimenuitem>Next Chapter</guimenuitem> (<keycap>.</keycap>) from the <guimenu>Play</guimenu> menu.
@@ -176,7 +173,7 @@
<title>Credits and License</title>
<para>
-&dragonplayer;
+&dragon;
</para>
<para>Program copyright 2004 Max B. Howell <email>max.howell(a)methylblue.com</email></para>
Files old/dragon-16.04.3/doc/main.png and new/dragon-16.08.0/doc/main.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/doc/man-dragon.1.docbook new/dragon-16.08.0/doc/man-dragon.1.docbook
--- old/dragon-16.04.3/doc/man-dragon.1.docbook 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/doc/man-dragon.1.docbook 2016-08-10 01:09:33.000000000 +0200
@@ -5,12 +5,13 @@
<refentry lang="&language;">
<refentryinfo>
-<title>KDE User's Manual</title>
+<title>Dragon Player User's Manual</title>
<author><firstname>Praveen</firstname><surname>Arimbrathodiyil</surname>
<contrib>Dragon Player man page.</contrib>
<email>pravi.a(a)gmail.com</email></author>
-<date>2012-03-16</date>
-<productname>K Desktop Environment</productname>
+<date>2016-06-29</date>
+<releaseinfo>Applications 16.04</releaseinfo>
+<productname>KDE Applications</productname>
</refentryinfo>
<refmeta>
@@ -25,9 +26,8 @@
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
- <command>dragon</command> <arg choice="opt"><replaceable>Qt-options</replaceable></arg>
- <arg choice="opt"><replaceable>KDE-options</replaceable></arg>
- <arg choice="opt"><replaceable>URL</replaceable></arg>
+ <command>dragon</command>
+ <arg choice="opt"><replaceable>URL</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -38,59 +38,6 @@
</refsect1>
-<refsect1 id="generic_options"><title>Generic Options</title>
-<variablelist>
- <varlistentry>
- <term><option>--help</option></term>
- <listitem>
-<para>Show help about options.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--help-qt</option></term>
- <listitem>
-<para>Show Qt specific options.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--help-kde</option></term>
- <listitem>
-<para>Show KDE specific options.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--help-all</option></term>
- <listitem>
-<para>Show all options.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--author</option></term>
- <listitem>
-<para>Show author information.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>-v, --version</option></term>
- <listitem>
-<para>Show version information.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--license</option></term>
- <listitem>
-<para>Show license information.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--</option></term>
- <listitem>
-<para>End of options.</para>
- </listitem>
- </varlistentry>
-</variablelist>
-</refsect1>
-
<refsect1 id="options"><title>Options</title>
<variablelist>
<varlistentry>
@@ -108,11 +55,15 @@
<refsect1>
<title>See Also</title>
-<para>More detailed user documentation is available from <ulink
+<simplelist>
+<member>More detailed user documentation is available from <ulink
url="help:/dragonplayer">help:/dragonplayer</ulink>
(either enter this <acronym>URL</acronym> into &konqueror;, or run
<userinput><command>khelpcenter</command>
-<parameter>help:/dragonplayer</parameter></userinput>).</para>
+<parameter>help:/dragonplayer</parameter></userinput>).</member>
+<member>kf5options(7)</member>
+<member>qt5options(7)</member>
+</simplelist>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
Files old/dragon-16.04.3/doc/playmedia.png and new/dragon-16.08.0/doc/playmedia.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/misc/dragonplayer-opendvd.desktop new/dragon-16.08.0/misc/dragonplayer-opendvd.desktop
--- old/dragon-16.04.3/misc/dragonplayer-opendvd.desktop 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/misc/dragonplayer-opendvd.desktop 2016-08-10 01:09:33.000000000 +0200
@@ -6,6 +6,7 @@
[Desktop Action open]
Name=Open with Video Player (Dragon Player)
Name[ar]=افتح بمشغّل الفيديوهات (مشغّل التّنّين)
+Name[ast]=Abrir col reproductor de videos (Dragon Player)
Name[bg]=Отваряне с програма за видео (Dragon Player)
Name[bs]=Otvori programom Dragon Player
Name[ca]=Obre amb el reproductor de vídeo (Dragon Player)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/misc/dragonplayer_part.desktop new/dragon-16.08.0/misc/dragonplayer_part.desktop
--- old/dragon-16.04.3/misc/dragonplayer_part.desktop 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/misc/dragonplayer_part.desktop 2016-08-10 01:09:33.000000000 +0200
@@ -3,6 +3,7 @@
Icon=dragonplayer
Name=Dragon Player Part
Name[ar]=جزء «مشغّل التّنّين»
+Name[ast]=Parte de Dragon Player
Name[bg]=Програма за видео Dragon
Name[bs]=Dio Dragon Player-a
Name[ca]=Part del Dragon Player
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/src/app/fullScreenToolBarHandler.cpp new/dragon-16.08.0/src/app/fullScreenToolBarHandler.cpp
--- old/dragon-16.04.3/src/app/fullScreenToolBarHandler.cpp 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/src/app/fullScreenToolBarHandler.cpp 2016-08-10 01:09:33.000000000 +0200
@@ -83,15 +83,12 @@
videoWindow()->move( 0, 0 );
videoWindow()->resize( ((QWidget*)parent())->size() );
videoWindow()->lower();
- } else if (e->type() == QEvent::Leave) {
- // reset the hide timer
- m_timer_id = startTimer( Dragon::VideoWindow::CURSOR_HIDE_TIMEOUT );
}
return false;
}
-void
+void
Dragon::FullScreenToolBarHandler::timerEvent( QTimerEvent*e )
{
killTimer( e->timerId() ); // timers are NOT single-shot!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/src/app/mainWindow.cpp new/dragon-16.08.0/src/app/mainWindow.cpp
--- old/dragon-16.04.3/src/app/mainWindow.cpp 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/src/app/mainWindow.cpp 2016-08-10 01:09:33.000000000 +0200
@@ -581,8 +581,7 @@
m_currentWidget = engine();
} else {
m_currentWidget = m_audioView;
- if( !isMaximized() )
- resize(m_currentWidget->minimumSize());
+ resize(m_currentWidget->minimumSize());
}
m_mainView->setCurrentWidget(m_currentWidget);
}
@@ -606,8 +605,7 @@
m_currentWidget = engine();
} else {
m_currentWidget = m_audioView;
- if( !isMaximized() )
- resize(m_currentWidget->minimumSize());
+ resize(m_currentWidget->minimumSize());
}
engine()->play();
m_mainView->setCurrentWidget(m_currentWidget);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/src/app/videoWindow.cpp new/dragon-16.08.0/src/app/videoWindow.cpp
--- old/dragon-16.04.3/src/app/videoWindow.cpp 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/src/app/videoWindow.cpp 2016-08-10 01:09:33.000000000 +0200
@@ -520,7 +520,7 @@
updateChannels();
if(m_adjustedSize==false) {
- if( mainWindow() && !mainWindow()->isMaximized() )
+ if( mainWindow() )
( (QWidget*) mainWindow() )->adjustSize();
m_adjustedSize=true;
qDebug() << "adjusting size to video resolution";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.04.3/src/mpris2/mediaplayer2.cpp new/dragon-16.08.0/src/mpris2/mediaplayer2.cpp
--- old/dragon-16.04.3/src/mpris2/mediaplayer2.cpp 2016-07-02 18:04:01.000000000 +0200
+++ new/dragon-16.08.0/src/mpris2/mediaplayer2.cpp 2016-08-10 01:09:33.000000000 +0200
@@ -94,7 +94,7 @@
QString MediaPlayer2::Identity() const
{
- return KAboutData::applicationData().displayName();
+ return APP_NAME;
}
QString MediaPlayer2::DesktopEntry() const
1
0
Hello community,
here is the log from the commit of package dolphin for openSUSE:Factory checked in at 2016-08-29 14:32:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dolphin (Old)
and /work/SRC/openSUSE:Factory/.dolphin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dolphin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dolphin/dolphin.changes 2016-07-21 07:42:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dolphin.new/dolphin.changes 2016-08-29 14:32:34.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:02:32 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:33:07 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
dolphin-16.04.3.tar.xz
New:
----
dolphin-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dolphin.spec ++++++
--- /var/tmp/diff_new_pack.C4jRCf/_old 2016-08-29 14:32:37.000000000 +0200
+++ /var/tmp/diff_new_pack.C4jRCf/_new 2016-08-29 14:32:37.000000000 +0200
@@ -17,7 +17,7 @@
Name: dolphin
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: KDE File Manager
License: GPL-2.0+
@@ -128,11 +128,11 @@
%{_kf5_bindir}/dolphin
%{_kf5_applicationsdir}/org.kde.dolphin.desktop
%{_kf5_applicationsdir}/org.kde.dolphinsu.desktop
-%dir %{_kf5_sharedir}/kxmlgui5
-%dir %{_kf5_sharedir}/kxmlgui5/dolphin
-%{_kf5_sharedir}/kxmlgui5/dolphin/dolphinui.rc
-%dir %{_kf5_sharedir}/appdata
-%{_kf5_sharedir}/appdata/org.kde.dolphin.appdata.xml
+%dir %{_kf5_kxmlguidir}
+%dir %{_kf5_kxmlguidir}/dolphin
+%{_kf5_kxmlguidir}/dolphin/dolphinui.rc
+%dir %{_kf5_appstreamdir}
+%{_kf5_appstreamdir}/org.kde.dolphin.appdata.xml
%{_kf5_bindir}/servicemenuinstallation
%{_kf5_bindir}/servicemenudeinstallation
%dir %{_kf5_htmldir}/en
@@ -147,9 +147,9 @@
%{_kf5_libdir}/libdolphinprivate.so.*
%dir %{_kf5_plugindir}
%{_kf5_plugindir}/dolphinpart.so
-%dir %{_kf5_sharedir}/kxmlgui5
-%dir %{_kf5_sharedir}/kxmlgui5/dolphinpart
-%{_kf5_sharedir}/kxmlgui5/dolphinpart/dolphinpart.rc
+%dir %{_kf5_kxmlguidir}
+%dir %{_kf5_kxmlguidir}/dolphinpart
+%{_kf5_kxmlguidir}/dolphinpart/dolphinpart.rc
%dir %{_kf5_servicesdir}
%{_kf5_servicesdir}/dolphinpart.desktop
%dir %{_kf5_servicetypesdir}
@@ -176,5 +176,6 @@
%{_kf5_libdir}/cmake/DolphinVcs/
%{_kf5_prefix}/include/Dolphin/
%{_kf5_prefix}/include/dolphin_export.h
+%{_includedir}/dolphinvcs_export.h
%changelog
++++++ dolphin-16.04.3.tar.xz -> dolphin-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/CMakeLists.txt new/dolphin-16.08.0/CMakeLists.txt
--- old/dolphin-16.04.3/CMakeLists.txt 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/CMakeLists.txt 2016-08-10 01:01:57.000000000 +0200
@@ -4,12 +4,12 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "16")
-set (KDE_APPLICATIONS_VERSION_MINOR "04")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
+set (KDE_APPLICATIONS_VERSION_MINOR "08")
+set (KDE_APPLICATIONS_VERSION_MICRO "0")
set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(QT_MIN_VERSION "5.4.0")
-set(KF5_MIN_VERSION "5.19.0")
+set(KF5_MIN_VERSION "5.21.0")
set(ECM_MIN_VERSION "1.6.0")
# ECM setup
@@ -102,6 +102,8 @@
)
endif()
+add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
+
add_subdirectory(src)
add_subdirectory(doc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/doc/index.docbook new/dolphin-16.08.0/doc/index.docbook
--- old/dolphin-16.04.3/doc/index.docbook 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/doc/index.docbook 2016-08-10 01:01:57.000000000 +0200
@@ -1,7 +1,5 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
- <!ENTITY dolphin "<application>Dolphin</application>">
- <!ENTITY kappname "&dolphin;">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE"><!-- change language only here -->
]>
@@ -72,12 +70,12 @@
<legalnotice>&FDLNotice;</legalnotice>
-<date>2015-08-02</date>
-<releaseinfo>Applications 15.08</releaseinfo>
+<date>2016-06-01</date>
+<releaseinfo>Applications 16.04</releaseinfo>
<abstract>
<para>
-&dolphin; is the default file manager for &kde;, designed with usability as a primary focus.
+&dolphin; is the default file manager by &kde;, designed with usability as a primary focus.
</para>
</abstract>
@@ -95,7 +93,7 @@
<title>Introduction</title>
<para>
-&dolphin; is &kde;'s default file manager. It aims to improve usability at the
+&dolphin; is &plasma;'s default file manager. It aims to improve usability at the
user interface level. &dolphin; focuses only on being a file manager whereas
&konqueror;, which was &kde;'s default file manager in &kde; 3 and can still be
used for file management, is a universal viewer for many file types.
@@ -357,12 +355,12 @@
the <guilabel>Name</guilabel> header, which is always the first column in this view.
</para>
<para>
-The details view allows you to view the current directory
+The details view allows you to view the current folder
in a tree-like fashion if <link linkend="preferences-dialog-viewmodes-details">
-<guilabel>Expandable folders</guilabel></link> are enabled:
+<guilabel>Expandable folders</guilabel></link> are enabled:
Each subfolder of the current folder can be
-<quote>expanded</quote> or <quote>collapsed</quote> by clicking on the <guiicon>></guiicon>
-or <guiicon>v</guiicon> icon next to it.</para></listitem>
+<quote>expanded</quote> or <quote>collapsed</quote> by clicking on the <guiicon>+</guiicon>
+or <guiicon>-</guiicon> icon next to it.</para></listitem>
</itemizedlist>
</para>
@@ -1146,16 +1144,9 @@
<itemizedlist>
<listitem><para>
-&dolphin; can be configured to open items with a single mouse click
-(<guilabel>Single-click to open files and folders</guilabel>) or a double mouse
-click (<guilabel>Double-click to open files and folders</guilabel>). In the
-latter case, a single mouse click will select the file or folder.
-</para>
-<note>
-<para>This is a system wide setting and can be changed in the &systemsettings; in the
-<menuchoice><guimenu>Input Devices</guimenu> <guimenuitem>Mouse</guimenuitem></menuchoice>
-module as well.</para>
-</note>
+The option to open items with a single or double mouse click is a system wide setting and can be
+changed in the &systemsettings; in the <menuchoice><guimenu>Input Devices</guimenu>
+<guimenuitem>Mouse</guimenuitem></menuchoice> module.</para>
</listitem>
<listitem><para>
@@ -1295,28 +1286,18 @@
<link linkend="view-properties"> view properties</link> are stored for each
folder or if common view properties are to be used for all folders.
</para></listitem>
-<listitem><para>
-When hovering over a file or folder with the mouse, a small window with relevant
-information is shown if <guilabel>Show tooltips</guilabel> is enabled.
-</para></listitem>
-
-<listitem><para>
-<guilabel>Show selection marker</guilabel> shows a small <guibutton>+</guibutton>
-or <guibutton>-</guibutton> button above an item's icon if the item is hovered over
-with the mouse. These can be used to select or deselect the item.
-</para></listitem>
<listitem><para>
-<guilabel>Natural sorting of items</guilabel> controls how items are sorted in
-the view. If this option is enabled, the sort order of three example files
+<guilabel>Sorting Mode</guilabel> controls how items are sorted in
+the view. If <guilabel>Natural sorting</guilabel> is enabled, the sort order of three example files
will be
<orderedlist>
<listitem><para>File1,</para></listitem>
<listitem><para>File2,</para></listitem>
<listitem><para>File10.</para></listitem>
</orderedlist>
-If this option is disabled, the normal alphabetical sorting will be used, which
-leads to the sort order
+If this option is disabled, the normal alphabetical sorting case sensitive or case insensitive
+will be used, which leads to the sort order
<orderedlist>
<listitem><para>File1,</para></listitem>
<listitem><para>File10,</para></listitem>
@@ -1325,7 +1306,18 @@
</para></listitem>
<listitem><para>
-Enable <guilabel>Rename inline</guilabel> to use this mode if only one item is currently selected.
+When hovering over a file or folder with the mouse, a small window with relevant
+information is shown if <guilabel>Show tooltips</guilabel> is enabled.
+</para></listitem>
+
+<listitem><para>
+<guilabel>Show selection marker</guilabel> shows a small <guibutton>+</guibutton>
+or <guibutton>-</guibutton> button above an item's icon if the item is hovered over
+with the mouse. These can be used to select or deselect the item.
+</para></listitem>
+
+<listitem><para>
+Enable <guilabel>Rename inline</guilabel> to use this mode if only one item is currently selected.
If this option is disabled or several items are selected, a dialog will be displayed for renaming.
</para></listitem>
@@ -1381,11 +1373,6 @@
</itemizedlist>
</para>
-<note><para>
-Since &dolphin; 4.9 the <guimenuitem>Delete</guimenuitem>,
-<guimenuitem>Copy To</guimenuitem>, and <guimenuitem>Move To</guimenuitem>
-commands of the context menu have to be enabled on the Services page.
-</para></note>
</sect3>
@@ -1539,6 +1526,17 @@
<varlistentry>
<term><menuchoice>
<shortcut>
+<keycombo action="simul">&Ctrl;&Shift;<keycap>T</keycap></keycombo>
+</shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Undo close tab</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Reopens the last closed tab.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut>
<keycombo action="simul"><keycap>F2</keycap></keycombo>
</shortcut>
<guimenu>File</guimenu>
@@ -2102,21 +2100,6 @@
</chapter>
-<appendix id="installation">
-<title>How to get &dolphin;</title>
-
-&install.intro.documentation;
-
-<para>For instructions on acquiring &kde; please see <ulink
-url="http://www.kde.org">http://www.kde.org</ulink> or read the chapter
-<ulink url="help:/fundamentals/install.html">Installing &kde;</ulink>
-in the &kde; Fundamentals.</para>
-
-<para>For further information about &dolphin; you might want to visit
-<ulink url="http://userbase.kde.org/Dolphin">http://userbase.kde.org/Dolphin</ulink>.</para>
-
-</appendix>
-
&documentation.index;
</book>
Files old/dolphin-16.04.3/doc/preferences-general-behavior.png and new/dolphin-16.08.0/doc/preferences-general-behavior.png differ
Files old/dolphin-16.04.3/doc/preferences-navigation.png and new/dolphin-16.08.0/doc/preferences-navigation.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/CMakeLists.txt new/dolphin-16.08.0/src/CMakeLists.txt
--- old/dolphin-16.04.3/src/CMakeLists.txt 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/CMakeLists.txt 2016-08-10 01:01:57.000000000 +0200
@@ -23,8 +23,7 @@
)
add_library(dolphinvcs ${dolphinvcs_LIB_SRCS})
-
-generate_export_header(dolphinvcs BASE_NAME dolphin)
+generate_export_header(dolphinvcs BASE_NAME dolphinvcs)
target_link_libraries(
dolphinvcs PUBLIC
@@ -48,7 +47,7 @@
install(TARGETS dolphinvcs EXPORT DolphinVcsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
install(FILES ${dolphinvcs_LIB_HEADERS} DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin" COMPONENT Devel)
########### next target ###############
@@ -131,6 +130,7 @@
)
add_library(dolphinprivate ${dolphinprivate_LIB_SRCS})
+generate_export_header(dolphinprivate BASE_NAME dolphin)
target_link_libraries(
dolphinprivate PUBLIC
@@ -170,6 +170,7 @@
)
install(TARGETS dolphinprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
##########################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/dolphincontextmenu.cpp new/dolphin-16.08.0/src/dolphincontextmenu.cpp
--- old/dolphin-16.04.3/src/dolphincontextmenu.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/dolphincontextmenu.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -37,6 +37,7 @@
#include <KJobWidgets>
#include <KMimeTypeTrader>
#include <KNewFileMenu>
+#include <KPluginMetaData>
#include <KService>
#include <KLocalizedString>
#include <KStandardAction>
@@ -503,6 +504,7 @@
const KConfig config(QStringLiteral("kservicemenurc"), KConfig::NoGlobals);
const KConfigGroup showGroup = config.group("Show");
+ QSet<QString> addedPlugins;
foreach (const KService::Ptr& service, pluginServices) {
if (!showGroup.readEntry(service->desktopEntryName(), true)) {
// The plugin has been disabled
@@ -513,6 +515,30 @@
if (abstractPlugin) {
abstractPlugin->setParent(this);
addActions(abstractPlugin->actions(props, m_mainWindow));
+ addedPlugins << service->desktopEntryName();
+ }
+ }
+
+ const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](const KPluginMetaData& metaData) {
+ return metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin"));
+ });
+
+ foreach (const auto& jsonMetadata, jsonPlugins) {
+ // The plugin has been disabled
+ if (!showGroup.readEntry(jsonMetadata.pluginId(), true)) {
+ continue;
+ }
+
+ // The plugin also has a .desktop file and has already been added.
+ if (addedPlugins.contains(jsonMetadata.pluginId())) {
+ continue;
+ }
+
+ KPluginFactory *factory = KPluginLoader(jsonMetadata.fileName()).factory();
+ KAbstractFileItemActionPlugin* abstractPlugin = factory->create<KAbstractFileItemActionPlugin>();
+ if (abstractPlugin) {
+ abstractPlugin->setParent(this);
+ addActions(abstractPlugin->actions(props, m_mainWindow));
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/dolphinmainwindow.cpp new/dolphin-16.08.0/src/dolphinmainwindow.cpp
--- old/dolphin-16.04.3/src/dolphinmainwindow.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/dolphinmainwindow.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -83,7 +83,7 @@
// Used for GeneralSettings::version() to determine whether
// an updated version of Dolphin is running.
const int CurrentDolphinVersion = 200;
-};
+}
DolphinMainWindow::DolphinMainWindow() :
KXmlGuiWindow(0),
@@ -1099,7 +1099,7 @@
compareFiles->setEnabled(false);
connect(compareFiles, &QAction::triggered, this, &DolphinMainWindow::compareFiles);
- if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+ if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
QAction* openTerminal = actionCollection()->addAction(QStringLiteral("open_terminal"));
openTerminal->setText(i18nc("@action:inmenu Tools", "Open Terminal"));
openTerminal->setIcon(QIcon::fromTheme(QStringLiteral("utilities-terminal")));
@@ -1208,7 +1208,7 @@
// Setup "Terminal"
#ifndef Q_OS_WIN
- if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+ if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal"));
terminalDock->setLocked(lock);
terminalDock->setObjectName(QStringLiteral("terminalDock"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/dolphinpart.cpp new/dolphin-16.08.0/src/dolphinpart.cpp
--- old/dolphin-16.04.3/src/dolphinpart.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/dolphinpart.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -222,7 +222,7 @@
m_findFileAction->setIcon(QIcon::fromTheme(QStringLiteral("edit-find")));
connect(m_findFileAction, &QAction::triggered, this, &DolphinPart::slotFindFile);
- if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+ if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
m_openTerminalAction = actionCollection()->addAction(QStringLiteral("open_terminal"));
m_openTerminalAction->setIcon(QIcon::fromTheme(QStringLiteral("utilities-terminal")));
m_openTerminalAction->setText(i18nc("@action:inmenu Tools", "Open &Terminal"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/dolphinviewcontainer.cpp new/dolphin-16.08.0/src/dolphinviewcontainer.cpp
--- old/dolphin-16.04.3/src/dolphinviewcontainer.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/dolphinviewcontainer.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -95,7 +95,7 @@
m_view = new DolphinView(url, this);
connect(m_view, &DolphinView::urlChanged,
- m_urlNavigator, &KUrlNavigator::setUrl);
+ m_urlNavigator, &KUrlNavigator::setLocationUrl);
connect(m_view, &DolphinView::urlChanged,
m_messageWidget, &KMessageWidget::hide);
connect(m_view, &DolphinView::directoryLoadingCompleted,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/kfileitemmodelrolesupdater.cpp new/dolphin-16.08.0/src/kitemviews/kfileitemmodelrolesupdater.cpp
--- old/dolphin-16.04.3/src/kitemviews/kfileitemmodelrolesupdater.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/kfileitemmodelrolesupdater.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -374,9 +374,9 @@
m_balooFileMonitor->clear();
} else {
QStringList newFileList;
- foreach (const QString& itemUrl, m_balooFileMonitor->files()) {
- if (m_model->index(itemUrl) >= 0) {
- newFileList.append(itemUrl);
+ foreach (const QString& file, m_balooFileMonitor->files()) {
+ if (m_model->index(QUrl::fromLocalFile(file)) >= 0) {
+ newFileList.append(file);
}
}
m_balooFileMonitor->setFiles(newFileList);
@@ -707,10 +707,10 @@
updateChangedItems();
}
-void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& itemUrl)
+void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& file)
{
#ifdef HAVE_BALOO
- const KFileItem item = m_model->fileItem(itemUrl);
+ const KFileItem item = m_model->fileItem(QUrl::fromLocalFile(file));
if (item.isNull()) {
// itemUrl is not in the model anymore, probably because
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/kitemlistcontainer.cpp new/dolphin-16.08.0/src/kitemviews/kitemlistcontainer.cpp
--- old/dolphin-16.04.3/src/kitemviews/kitemlistcontainer.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/kitemlistcontainer.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -185,27 +185,7 @@
KItemListSmoothScroller* smoothScroller = scrollHorizontally ?
m_horizontalSmoothScroller : m_verticalSmoothScroller;
- const QScrollBar* scrollBar = smoothScroller->scrollBar();
- if (!event->pixelDelta().isNull()) {
- const int numPixels = event->pixelDelta().y();
- if (event->modifiers().testFlag(Qt::ShiftModifier)) {
- const int scrollingDirection = numPixels > 0 ? 1 : -1;
- smoothScroller->scrollTo(scrollBar->value() - scrollBar->pageStep() * scrollingDirection);
- } else {
- smoothScroller->scrollTo(scrollBar->value() - numPixels);
- }
- } else {
- const int numDegrees = event->angleDelta().y() / 8;
- const int numSteps = qApp->wheelScrollLines() * numDegrees / 15;
- if (event->modifiers().testFlag(Qt::ShiftModifier)) {
- const int scrollingDirection = numSteps > 0 ? 1 : -1;
- smoothScroller->scrollTo(scrollBar->value() - scrollBar->pageStep() * scrollingDirection);
- } else {
- smoothScroller->scrollTo(scrollBar->value() - numSteps * scrollBar->pageStep() / 12);
- }
- }
-
- event->accept();
+ smoothScroller->handleWheelEvent(event);
}
void KItemListContainer::slotScrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/kitemset.h new/dolphin-16.08.0/src/kitemviews/kitemset.h
--- old/dolphin-16.04.3/src/kitemviews/kitemset.h 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/kitemset.h 2016-08-10 01:01:57.000000000 +0200
@@ -20,6 +20,8 @@
#ifndef KITEMSET_H
#define KITEMSET_H
+#include "dolphin_export.h"
+
#include <kitemviews/kitemrange.h>
/**
@@ -40,7 +42,7 @@
* The complexity of most operations depends on the number of ranges.
*/
-class KItemSet
+class DOLPHIN_EXPORT KItemSet
{
public:
KItemSet();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/kstandarditemlistwidget.cpp new/dolphin-16.08.0/src/kitemviews/kstandarditemlistwidget.cpp
--- old/dolphin-16.04.3/src/kitemviews/kstandarditemlistwidget.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/kstandarditemlistwidget.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -850,6 +850,15 @@
KItemListWidget::hideEvent(event);
}
+bool KStandardItemListWidget::event(QEvent *event)
+{
+ if (event->type() == QEvent::WindowDeactivate || event->type() == QEvent::WindowActivate) {
+ m_dirtyContent = true;
+ }
+
+ return KItemListWidget::event(event);
+}
+
void KStandardItemListWidget::slotCutItemsChanged()
{
const QUrl itemUrl = data().value("url").toUrl();
@@ -954,7 +963,7 @@
iconName = QStringLiteral("unknown");
}
const QStringList overlays = values["iconOverlays"].toStringList();
- m_pixmap = pixmapForIcon(iconName, overlays, maxIconHeight);
+ m_pixmap = pixmapForIcon(iconName, overlays, maxIconHeight, isSelected() && isActiveWindow() ? QIcon::Selected : QIcon::Normal);
} else if (m_pixmap.width() / m_pixmap.devicePixelRatio() != maxIconWidth || m_pixmap.height() / m_pixmap.devicePixelRatio() != maxIconHeight) {
// A custom pixmap has been applied. Assure that the pixmap
@@ -1438,11 +1447,11 @@
m_roleEditor = 0;
}
-QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStringList& overlays, int size)
+QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStringList& overlays, int size, QIcon::Mode mode)
{
static const QIcon fallbackIcon = QIcon::fromTheme(QStringLiteral("unknown"));
size *= qApp->devicePixelRatio();
- const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(QStringLiteral(":")) % ":" % QString::number(size);
+ const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(QStringLiteral(":")) % ":" % QString::number(size) % ":" % QString::number(mode);
QPixmap pixmap;
if (!QPixmapCache::find(key, pixmap)) {
@@ -1467,7 +1476,7 @@
requestedSize = size;
}
- pixmap = icon.pixmap(requestedSize / qApp->devicePixelRatio(), requestedSize / qApp->devicePixelRatio());
+ pixmap = icon.pixmap(requestedSize / qApp->devicePixelRatio(), requestedSize / qApp->devicePixelRatio(), mode);
if (requestedSize != size) {
KPixmapModifier::scale(pixmap, QSize(size, size));
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/kstandarditemlistwidget.h new/dolphin-16.08.0/src/kitemviews/kstandarditemlistwidget.h
--- old/dolphin-16.04.3/src/kitemviews/kstandarditemlistwidget.h 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/kstandarditemlistwidget.h 2016-08-10 01:01:57.000000000 +0200
@@ -183,6 +183,7 @@
virtual void resizeEvent(QGraphicsSceneResizeEvent* event) Q_DECL_OVERRIDE;
virtual void showEvent(QShowEvent* event) Q_DECL_OVERRIDE;
virtual void hideEvent(QHideEvent* event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private slots:
void slotCutItemsChanged();
@@ -212,7 +213,7 @@
*/
void closeRoleEditor();
- static QPixmap pixmapForIcon(const QString& name, const QStringList& overlays, int size);
+ static QPixmap pixmapForIcon(const QString& name, const QStringList& overlays, int size, QIcon::Mode mode);
/**
* @return Preferred size of the rating-image based on the given
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/private/kitemlistselectiontoggle.cpp new/dolphin-16.08.0/src/kitemviews/private/kitemlistselectiontoggle.cpp
--- old/dolphin-16.04.3/src/kitemviews/private/kitemlistselectiontoggle.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/private/kitemlistselectiontoggle.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -89,7 +89,7 @@
void KItemListSelectionToggle::updatePixmap()
{
- const QString icon = m_checked ? QStringLiteral("list-remove") : QStringLiteral("list-add");
+ const QString icon = m_checked ? QStringLiteral("emblem-remove") : QStringLiteral("emblem-added");
const KIconLoader::States state = m_hovered ? KIconLoader::ActiveState : KIconLoader::DisabledState;
m_pixmap = KIconLoader::global()->loadIcon(icon, KIconLoader::Desktop, iconSize(), state);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/private/kitemlistsmoothscroller.cpp new/dolphin-16.08.0/src/kitemviews/private/kitemlistsmoothscroller.cpp
--- old/dolphin-16.04.3/src/kitemviews/private/kitemlistsmoothscroller.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/private/kitemlistsmoothscroller.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -172,8 +172,7 @@
break;
case QEvent::Wheel:
- handleWheelEvent(static_cast<QWheelEvent*>(event));
- return true; // eat event so that QScrollBar does not scroll one step more by itself
+ return false; // we're the ones sending them
default:
break;
@@ -196,25 +195,11 @@
const bool previous = m_smoothScrolling;
m_smoothScrolling = true;
- int numPixels;
- if (!event->pixelDelta().isNull()) {
- numPixels = event->pixelDelta().y();
- } else {
- const int numDegrees = event->angleDelta().y() / 8;
- const int numSteps = qApp->wheelScrollLines() * numDegrees / 15;
- numPixels = numSteps * m_scrollBar->pageStep() / 12;
- }
- int value = m_scrollBar->value();
- if (event->modifiers().testFlag(Qt::ShiftModifier)) {
- const int scrollingDirection = numPixels > 0 ? 1 : -1;
- value -= m_scrollBar->pageStep() * scrollingDirection;
- } else {
- value -= numPixels;
- }
- m_scrollBar->setValue(value);
- m_smoothScrolling = previous;
+ QWheelEvent copy = *event;
+ QApplication::sendEvent(m_scrollBar, ©);
+ event->setAccepted(copy.isAccepted());
- event->accept();
+ m_smoothScrolling = previous;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/kitemviews/private/kitemlistsmoothscroller.h new/dolphin-16.08.0/src/kitemviews/private/kitemlistsmoothscroller.h
--- old/dolphin-16.04.3/src/kitemviews/private/kitemlistsmoothscroller.h 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/kitemviews/private/kitemlistsmoothscroller.h 2016-08-10 01:01:57.000000000 +0200
@@ -77,6 +77,11 @@
// stable.
bool requestScrollBarUpdate(int newMaximum);
+ /**
+ * Forwards wheel events to the scrollbar, ensuring smooth and proper scrolling
+ */
+ void handleWheelEvent(QWheelEvent* event);
+
protected:
virtual bool eventFilter(QObject* obj, QEvent* event);
@@ -85,13 +90,6 @@
QAbstractAnimation::State oldState);
private:
- /**
- * Results into a smooth-scrolling of the target dependent on the direction
- * of the wheel event.
- */
- void handleWheelEvent(QWheelEvent* event);
-
-private:
bool m_scrollBarPressed;
bool m_smoothScrolling;
QScrollBar* m_scrollBar;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/main.cpp new/dolphin-16.08.0/src/main.cpp
--- old/dolphin-16.04.3/src/main.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/main.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -100,7 +100,7 @@
aboutData.setupCommandLine(&parser);
// command line options
- parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("select"), i18nc("@info:shell", "The files and directories passed as arguments "
+ parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("select"), i18nc("@info:shell", "The files and folders passed as arguments "
"will be selected.")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("split"), i18nc("@info:shell", "Dolphin will get started with a split view.")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("daemon"), i18nc("@info:shell", "Start Dolphin Daemon (only required for DBus Interface)")));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/org.kde.dolphin.appdata.xml new/dolphin-16.08.0/src/org.kde.dolphin.appdata.xml
--- old/dolphin-16.04.3/src/org.kde.dolphin.appdata.xml 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/org.kde.dolphin.appdata.xml 2016-08-10 01:01:57.000000000 +0200
@@ -62,6 +62,7 @@
<summary xml:lang="fi">Tiedostonhallinta</summary>
<summary xml:lang="fr">Gestionnaire de fichier</summary>
<summary xml:lang="gl">Xestor de ficheiros</summary>
+ <summary xml:lang="he">מנהל קבצים</summary>
<summary xml:lang="hu">Fájlkezelő</summary>
<summary xml:lang="ia">Gerente de File</summary>
<summary xml:lang="it">Gestore file</summary>
@@ -105,6 +106,7 @@
<p xml:lang="fi">Dolphin on kevyt tiedostonhallinta. Se on suunniteltu helppokäyttöiseksi ja yksinkertaiseksi, mutta silti joustavaksi ja mukautettavaksi. Voit siis hallita tiedostojasi juuri niin kuin haluat.</p>
<p xml:lang="fr">Dolphin est un gestionnaire de fichier léger. Il a été conçu en gardant à l'esprit la simplicité et l'aisance à l'usage, tout en permettant flexibilité et personnalisation. Cela signifie que vous pouvez gérer vos fichiers de la manière exacte que vous voulez.</p>
<p xml:lang="gl">Dolphin é un xestor de ficheiros lixeiro. Deseñouse pensando na facilidade de uso e maila simplicidade, pero permitindo flexibilidade e personalización. Noutras palabras, permítelle xestionar os seus ficheiros do xeito que máis lle agrade.</p>
+ <p xml:lang="he">Dolphin הוא מנהל קבצים קל־משקל. הוא עוצב לקלות שימוש ופשטות, תוך כדי אפשור גמישות והתאמה אישית. זה אומר שתוכל לנהל את קבציך איך שאתה רוצה לעשות זאת.</p>
<p xml:lang="hu">A Dolphin egy pehelysúlyú fájlkezelő. Az egyszerű használatot és az egyszerűséget szem előtt tartva tervezték, miközben továbbra is lehetővé teszi a rugalmasságot és a testre szabhatóságot. Ez azt jelenti, hogy pontosan oly módon végezheti a fájlkezelést, ahogy csak akarja.</p>
<p xml:lang="ia">Dolphin es un gerente de file legier. Il ha essite designate con facilitate de uso e simplicitate in le mente, mentre il permitte ancora flexibilitate e personalisation. Isto significa que tu pote facer le gerente de file exactemente como tu lo vole.</p>
<p xml:lang="it">Dolphin è un gestore file leggero. È stato progettato per essere facile da utilizzare e pensando alla semplicità, garantendo al contempo flessibilità e personalizzazione. Ciò significa che puoi gestire i tuoi file come meglio desideri.</p>
@@ -145,6 +147,7 @@
<p xml:lang="fi">Ominaisuudet:</p>
<p xml:lang="fr">Fonctionnalités :</p>
<p xml:lang="gl">Funcionalidades:</p>
+ <p xml:lang="he">תכונות:</p>
<p xml:lang="hu">Szolgáltatások:</p>
<p xml:lang="ia">Characteristicas:</p>
<p xml:lang="it">Funzionalità:</p>
@@ -342,6 +345,7 @@
<li xml:lang="fi">Useiden välilehtien tuki</li>
<li xml:lang="fr">Prise en charge des onglets multiples</li>
<li xml:lang="gl">Permite abrir varias lapelas.</li>
+ <li xml:lang="he">תמיכה בכרטיסיות</li>
<li xml:lang="hu">Több lap támogatása</li>
<li xml:lang="ia">Supporto de scheda multiple</li>
<li xml:lang="it">Supporto di schede multiple</li>
@@ -421,6 +425,7 @@
<li xml:lang="fi">Tuki muutosten kumoamiselle ja tekemiselle uudelleen</li>
<li xml:lang="fr">Prise en charge d'annulation et recommencement</li>
<li xml:lang="gl">Permite desfacer e refacer.</li>
+ <li xml:lang="he">תמיכה בביטול וביצוע חוזר</li>
<li xml:lang="hu">Visszavonás/ismétlés támogatás</li>
<li xml:lang="ia">Supporto de annulla/reface</li>
<li xml:lang="it">Supporto di annulla/rifai</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/panels/folders/folderspanel.cpp new/dolphin-16.08.0/src/panels/folders/folderspanel.cpp
--- old/dolphin-16.04.3/src/panels/folders/folderspanel.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/panels/folders/folderspanel.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -240,7 +240,7 @@
event->buttons(),
event->modifiers());
- KIO::DropJob *job = DragAndDropHelper::dropUrls(destItem.url(), &dropEvent, this);
+ KIO::DropJob *job = DragAndDropHelper::dropUrls(destItem.mostLocalUrl(), &dropEvent, this);
if (job) {
connect(job, &KIO::DropJob::result, this, [this](KJob *job) { if (job->error()) emit errorMessage(job->errorString()); });
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/panels/information/informationpanelcontent.cpp new/dolphin-16.08.0/src/panels/information/informationpanelcontent.cpp
--- old/dolphin-16.04.3/src/panels/information/informationpanelcontent.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/panels/information/informationpanelcontent.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -314,14 +314,12 @@
m_preview->setVisible(isChecked);
InformationPanelSettings::setPreviewsShown(isChecked);
} else if (action == configureAction) {
- FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog();
+ FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog(this);
dialog->setDescription(i18nc("@label::textbox",
"Select which data should be shown in the information panel:"));
dialog->setItems(m_metaDataWidget->items());
dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->show();
- dialog->raise();
- dialog->activateWindow();
connect(dialog, &FileMetaDataConfigurationDialog::destroyed, this, &InformationPanelContent::refreshMetaData);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/panels/places/placesitem.cpp new/dolphin-16.08.0/src/panels/places/placesitem.cpp
--- old/dolphin-16.04.3/src/panels/places/placesitem.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/panels/places/placesitem.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -276,12 +276,12 @@
Solid::Block *block = m_device.as<Solid::Block>();
if (block) {
const QString device = block->device();
- setUrl(QStringLiteral("audiocd:/?device=%1").arg(device));
+ setUrl(QUrl(QStringLiteral("audiocd:/?device=%1").arg(device)));
} else {
- setUrl(QStringLiteral("audiocd:/"));
+ setUrl(QUrl(QStringLiteral("audiocd:/")));
}
} else if (m_mtp) {
- setUrl(QStringLiteral("mtp:udi=%1").arg(m_device.udi()));
+ setUrl(QUrl(QStringLiteral("mtp:udi=%1").arg(m_device.udi())));
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/panels/places/placesitemmodel.cpp new/dolphin-16.08.0/src/panels/places/placesitemmodel.cpp
--- old/dolphin-16.04.3/src/panels/places/placesitemmodel.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/panels/places/placesitemmodel.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -1099,17 +1099,17 @@
const int year = date.year();
const int month = date.month();
const int day = date.day();
- timelineUrl = "timeline:/" + timelineDateString(year, month) +
- '/' + timelineDateString(year, month, day);
+ timelineUrl = QUrl("timeline:/" + timelineDateString(year, month) +
+ '/' + timelineDateString(year, month, day));
} else if (path.endsWith(QLatin1String("thismonth"))) {
const QDate date = QDate::currentDate();
- timelineUrl = "timeline:/" + timelineDateString(date.year(), date.month());
+ timelineUrl = QUrl("timeline:/" + timelineDateString(date.year(), date.month()));
} else if (path.endsWith(QLatin1String("lastmonth"))) {
const QDate date = QDate::currentDate().addMonths(-1);
- timelineUrl = "timeline:/" + timelineDateString(date.year(), date.month());
+ timelineUrl = QUrl("timeline:/" + timelineDateString(date.year(), date.month()));
} else {
Q_ASSERT(path.endsWith(QLatin1String("today")));
- timelineUrl= url;
+ timelineUrl = url;
}
return timelineUrl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/settings/dolphin_generalsettings.kcfg new/dolphin-16.08.0/src/settings/dolphin_generalsettings.kcfg
--- old/dolphin-16.04.3/src/settings/dolphin_generalsettings.kcfg 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/settings/dolphin_generalsettings.kcfg 2016-08-10 01:01:57.000000000 +0200
@@ -43,7 +43,7 @@
<default>false</default>
</entry>
<entry name="GlobalViewProps" type="Bool">
- <label>Should the view properties be used for all directories</label>
+ <label>Should the view properties be used for all folders</label>
<default>false</default>
</entry>
<entry name="BrowseThroughArchives" type="Bool">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/settings/kcm/kcmdolphingeneral.cpp new/dolphin-16.08.0/src/settings/kcm/kcmdolphingeneral.cpp
--- old/dolphin-16.04.3/src/settings/kcm/kcmdolphingeneral.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/settings/kcm/kcmdolphingeneral.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -48,7 +48,7 @@
QTabWidget* tabWidget = new QTabWidget(this);
// initialize 'Behavior' tab
- BehaviorSettingsPage* behaviorPage = new BehaviorSettingsPage(QDir::homePath(), tabWidget);
+ BehaviorSettingsPage* behaviorPage = new BehaviorSettingsPage(QUrl::fromLocalFile(QDir::homePath()), tabWidget);
tabWidget->addTab(behaviorPage, i18nc("@title:tab Behavior settings", "Behavior"));
connect(behaviorPage, &BehaviorSettingsPage::changed, this, static_cast<void(DolphinGeneralConfigModule::*)()>(&DolphinGeneralConfigModule::changed));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/settings/kcm/kcmdolphingeneral.desktop new/dolphin-16.08.0/src/settings/kcm/kcmdolphingeneral.desktop
--- old/dolphin-16.04.3/src/settings/kcm/kcmdolphingeneral.desktop 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/settings/kcm/kcmdolphingeneral.desktop 2016-08-10 01:01:57.000000000 +0200
@@ -64,6 +64,7 @@
Comment[nb]=Med denne tjenesten kan du sette opp generelle innstillinger for Dolphin.
Comment[nl]=Met deze dienst kunt u algemene Dolphin-instellingen configureren.
Comment[nn]=Denne tenesta lèt deg setja opp generelle innstillingar for Dolphin.
+Comment[pa]=ਇਹ ਸਰਵਿਸ ਆਮ ਡਾਲਫਿਨ ਸੈਟਿੰਗ ਦੀ ਸੰਰਚਨਾ ਵਾਸਤੇ ਹੈ।
Comment[pl]=Ta usługa pozwala na ogólne ustawienie Dolphina.
Comment[pt]=Este serviço permite a configuração das definições gerais do Dolphin.
Comment[pt_BR]=Este serviço permite configurar as opções gerais do Dolphin.
@@ -157,6 +158,7 @@
Comment[nb]=Sett opp generelle innstillinger for filbehandleren
Comment[nl]=Algemene bestandsbeheerderinstellingen configureren
Comment[nn]=Set opp generelle innstillingar for filhandsamaren
+Comment[pa]=ਆਮ ਫਾਇਲ ਮੈਨੇਜਰ ਸੈਟਿੰਗ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia ogólne zarządzania plikami
Comment[pt]=Configurar as definições gerais do gestor de ficheiros
Comment[pt_BR]=Configura as opções gerais do gerenciador de arquivos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/settings/kcm/kcmdolphinnavigation.desktop new/dolphin-16.08.0/src/settings/kcm/kcmdolphinnavigation.desktop
--- old/dolphin-16.04.3/src/settings/kcm/kcmdolphinnavigation.desktop 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/settings/kcm/kcmdolphinnavigation.desktop 2016-08-10 01:01:57.000000000 +0200
@@ -64,6 +64,7 @@
Comment[nb]=Med denne tjenesten kan du sette opp navigasjon for Dolphin.
Comment[nl]=Met deze dienst kunt u Dolphin-navigatie configureren.
Comment[nn]=Denne tenesta lèt deg setja opp navigasjonen for Dolphin.
+Comment[pa]=ਇਹ ਸਰਵਿਸ ਡਾਲਫਿਨ ਨੇਵੀਗੇਸ਼ਨ ਦੀ ਸੰਰਚਨਾ ਵਾਸਤੇ ਹੈ।
Comment[pl]=Ta usługa umożliwia ustawienie nawigacji w Dolphinie.
Comment[pt]=Este serviço permite a configuração da navegação do Dolphin.
Comment[pt_BR]=Este serviço permite configurar a navegação do Dolphin.
@@ -157,6 +158,7 @@
Comment[nb]=Sett opp navigasjon i filbehandleren
Comment[nl]=Bestandsbeheerdernavigatie configureren
Comment[nn]=Set opp navigasjonen i filhandsamaren
+Comment[pa]=ਫਾਇਲ ਮੈਨੇਜਰ ਨੇਵੀਗੇਸ਼ਨ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia nawigacji w zarządzaniu plikami
Comment[pt]=Configurar a navegação do gestor de ficheiros
Comment[pt_BR]=Configura a navegação do gerenciador de arquivos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/settings/kcm/kcmdolphinservices.desktop new/dolphin-16.08.0/src/settings/kcm/kcmdolphinservices.desktop
--- old/dolphin-16.04.3/src/settings/kcm/kcmdolphinservices.desktop 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/settings/kcm/kcmdolphinservices.desktop 2016-08-10 01:01:57.000000000 +0200
@@ -115,6 +115,7 @@
Comment[nb]=Sett opp tjenester i filbehandleren
Comment[nl]=Bestandsbeheerderservices configureren
Comment[nn]=Set opp tenester i filhandsamaren
+Comment[pa]=ਫਾਇਲ ਮੈਨੇਜਰ ਦੀਆਂ ਸਰਵਿਸਾਂ ਦੀ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia usług zarządzania plikami
Comment[pt]=Configurar os serviços do gestor de ficheiros
Comment[pt_BR]=Configura os serviços do gerenciador de arquivos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/settings/kcm/kcmdolphinviewmodes.desktop new/dolphin-16.08.0/src/settings/kcm/kcmdolphinviewmodes.desktop
--- old/dolphin-16.04.3/src/settings/kcm/kcmdolphinviewmodes.desktop 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/settings/kcm/kcmdolphinviewmodes.desktop 2016-08-10 01:01:57.000000000 +0200
@@ -22,6 +22,7 @@
Name[nb]=Dolphin visningsmåter
Name[nl]=Dolphin-weergavemodussen
Name[nn]=Dolphin-visingar
+Name[pa]=ਡਾਲਫਿਨ ਝਲਕ ਢੰਗ
Name[pl]=Tryby widoku Dolphina
Name[pt]=Modos de Visualização do Dolphin
Name[pt_BR]=Modos de exibição do Dolphin
@@ -63,6 +64,7 @@
Comment[nb]=Med denne tjenesten kan du sette opp Dolphins visningsmåter.
Comment[nl]=Met deze dienst kunt u Dolphin-weergavemodussen configureren.
Comment[nn]=Denne tenesta lèt deg setja opp Dolphin-visingsmodusar.
+Comment[pa]=ਇਹ ਸਰਵਿਸ ਡਾਲਫਿਨ ਝਲਕ ਮੋਡ ਦੀ ਸੰਰਚਨਾ ਵਾਸਤੇ ਹੈ।
Comment[pl]=Ta usługa umożliwia ustawienie trybów widoku Dolphina.
Comment[pt]=Este serviço permite a configuração dos modos de visualização do Dolphin.
Comment[pt_BR]=Este serviço permite configurar os modos de exibição do Dolphin.
@@ -156,6 +158,7 @@
Comment[nb]=Tilpass filbehandlerens visningsmåter
Comment[nl]=Bestandsbeheerderweergavemodussen configureren
Comment[nn]=Set opp visingsmodusane i filhandsamaren
+Comment[pa]=ਫਾਇਲ ਮੈਨੇਜਰ ਝਲਕ ਮੋਡ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia trybów widoku zarządzania plikami
Comment[pt]=Configurar os modos de visualização do gestor de ficheiros
Comment[pt_BR]=Configura os modos de exibição do gerenciador de arquivos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/settings/services/servicessettingspage.cpp new/dolphin-16.08.0/src/settings/services/servicessettingspage.cpp
--- old/dolphin-16.04.3/src/settings/services/servicessettingspage.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/settings/services/servicessettingspage.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -30,6 +30,7 @@
#include <KLocalizedString>
#include <KMessageBox>
#include <KNS3/Button>
+#include <KPluginMetaData>
#include <KService>
#include <KServiceTypeTrader>
#include <QStandardPaths>
@@ -228,6 +229,19 @@
}
}
+ // Load JSON-based plugins that implement the KFileItemActionPlugin interface
+ const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](const KPluginMetaData& metaData) {
+ return metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin"));
+ });
+
+ foreach (const auto& jsonMetadata, jsonPlugins) {
+ const QString desktopEntryName = jsonMetadata.pluginId();
+ if (!isInServicesList(desktopEntryName)) {
+ const bool checked = showGroup.readEntry(desktopEntryName, true);
+ addRow(jsonMetadata.iconName(), jsonMetadata.name(), desktopEntryName, checked);
+ }
+ }
+
m_sortModel->sort(Qt::DisplayRole);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/statusbar/mountpointobservercache.cpp new/dolphin-16.08.0/src/statusbar/mountpointobservercache.cpp
--- old/dolphin-16.04.3/src/statusbar/mountpointobservercache.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/statusbar/mountpointobservercache.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -62,10 +62,10 @@
} else {
// Even if determining the mount point failed, the observer might still
// be able to retrieve information about the url.
- cachedObserverUrl = url.toLocalFile();
+ cachedObserverUrl = url;
}
} else {
- cachedObserverUrl = url.url();
+ cachedObserverUrl = url;
}
MountPointObserver* observer = m_observerForMountPoint.value(cachedObserverUrl);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/tests/CMakeLists.txt new/dolphin-16.08.0/src/tests/CMakeLists.txt
--- old/dolphin-16.04.3/src/tests/CMakeLists.txt 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/tests/CMakeLists.txt 2016-08-10 01:01:57.000000000 +0200
@@ -9,7 +9,6 @@
# KItemSetTest
set(kitemsettest_SRCS
kitemsettest.cpp
- ../kitemviews/kitemset.cpp
)
add_executable(kitemsettest ${kitemsettest_SRCS})
@@ -31,9 +30,6 @@
# KItemListSelectionManagerTest
set(kitemlistselectionmanagertest_SRCS
kitemlistselectionmanagertest.cpp
- ../kitemviews/kitemlistselectionmanager.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemset.cpp
)
add_executable(kitemlistselectionmanagertest ${kitemlistselectionmanagertest_SRCS})
@@ -45,17 +41,6 @@
set(kitemlistcontrollertest_SRCS
kitemlistcontrollertest.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kfileitemlistview.cpp
- ../kitemviews/kfileitemlistwidget.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemlistview.cpp
- ../kitemviews/kitemlistcontainer.cpp
- ../kitemviews/kitemlistwidget.cpp
- ../kitemviews/kitemlistviewaccessible.cpp
- ../kitemviews/kitemset.cpp
- ../kitemviews/kstandarditemlistview.cpp
- ../kitemviews/kstandarditemlistwidget.cpp
../dolphindebug.cpp
)
@@ -72,16 +57,6 @@
set(kfileitemlistviewtest_SRCS
kfileitemlistviewtest.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kfileitemlistview.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemlistview.cpp
- ../kitemviews/kitemlistviewaccessible.cpp
- ../kitemviews/kitemlistcontainer.cpp
- ../kitemviews/kitemlistwidget.cpp
- ../kitemviews/kitemset.cpp
- ../kitemviews/kstandarditemlistview.cpp
- ../kitemviews/kstandarditemlistwidget.cpp
../dolphindebug.cpp
)
@@ -98,9 +73,6 @@
set(kfileitemmodeltest_SRCS
kfileitemmodeltest.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemset.cpp
../dolphindebug.cpp
)
@@ -117,8 +89,6 @@
set(kfileitemmodelbenchmark_SRCS
kfileitemmodelbenchmark.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
../dolphindebug.cpp
)
@@ -133,7 +103,6 @@
# KItemListKeyboardSearchManagerTest
set(kitemlistkeyboardsearchmanagertest_SRCS
kitemlistkeyboardsearchmanagertest.cpp
- ../kitemviews/private/kitemlistkeyboardsearchmanager.cpp
)
add_executable(kitemlistkeyboardsearchmanagertest ${kitemlistkeyboardsearchmanagertest_SRCS})
@@ -161,9 +130,6 @@
# KStandardItemModelTest
set(kstandarditemmodeltest_SRCS
kstandarditemmodeltest.cpp
- ../kitemviews/kstandarditem.cpp
- ../kitemviews/kstandarditemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
../dolphindebug.cpp
)
@@ -176,7 +142,6 @@
set(viewpropertiestest_SRCS
viewpropertiestest.cpp
testdir.cpp
- ../views/viewproperties.cpp
../dolphindebug.cpp
)
kconfig_add_kcfg_files(viewpropertiestest_SRCS GENERATE_MOC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/views/dolphinview.cpp new/dolphin-16.08.0/src/views/dolphinview.cpp
--- old/dolphin-16.04.3/src/views/dolphinview.cpp 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/views/dolphinview.cpp 2016-08-10 01:01:57.000000000 +0200
@@ -1031,7 +1031,7 @@
destUrl = url();
} else {
// The item represents a directory or desktop-file
- destUrl = destItem.url();
+ destUrl = destItem.mostLocalUrl();
}
QDropEvent dropEvent(event->pos().toPoint(),
@@ -1278,7 +1278,7 @@
if (desktopFile.hasLinkType()) {
const QString linkUrl = desktopFile.readUrl();
if (!linkUrl.startsWith(QLatin1String("http"))) {
- return linkUrl;
+ return QUrl::fromUserInput(linkUrl);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/views/versioncontrol/fileviewversioncontrolplugin.desktop new/dolphin-16.08.0/src/views/versioncontrol/fileviewversioncontrolplugin.desktop
--- old/dolphin-16.04.3/src/views/versioncontrol/fileviewversioncontrolplugin.desktop 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/views/versioncontrol/fileviewversioncontrolplugin.desktop 2016-08-10 01:01:57.000000000 +0200
@@ -24,6 +24,7 @@
Comment[nb]=Versjonskontrollmodul for filvisninger
Comment[nl]=Plugin voor versiecontrole op bestandoverzichten
Comment[nn]=Versjonskontroll-tillegg for filvisingar
+Comment[pa]=ਫਾਇਲ ਝਲਕ ਲਈ ਵਰਜਨ ਕੰਟਰੋਲ ਪਲੱਗਇਨ
Comment[pl]=Wtyczka systemu zarządzania wersjami dla widoku plików
Comment[pt]='Plugin' de Controlo de Versões para as Áreas de Ficheiros
Comment[pt_BR]=Extensão de controle de versões para as visualizações de arquivos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dolphin-16.04.3/src/views/versioncontrol/kversioncontrolplugin.h new/dolphin-16.08.0/src/views/versioncontrol/kversioncontrolplugin.h
--- old/dolphin-16.04.3/src/views/versioncontrol/kversioncontrolplugin.h 2016-07-02 17:56:37.000000000 +0200
+++ new/dolphin-16.08.0/src/views/versioncontrol/kversioncontrolplugin.h 2016-08-10 01:01:57.000000000 +0200
@@ -20,7 +20,7 @@
#ifndef KVERSIONCONTROLPLUGIN_H
#define KVERSIONCONTROLPLUGIN_H
-#include <dolphin_export.h>
+#include <dolphinvcs_export.h>
#include <QObject>
#include <QAction>
@@ -81,7 +81,7 @@
*
* @since 4.8
*/
-class DOLPHIN_EXPORT KVersionControlPlugin : public QObject
+class DOLPHINVCS_EXPORT KVersionControlPlugin : public QObject
{
Q_OBJECT
@@ -165,16 +165,16 @@
/**
* Is invoked after the version control information has been
* received. It is assured that
- * KVersionControlPluginV2::beginInfoRetrieval() has been
+ * KVersionControlPlugin::beginRetrieval() has been
* invoked before.
*/
virtual void endRetrieval() = 0;
/**
* @return The version for the item \p item.
- * It is assured that KVersionControlPlugin::beginInfoRetrieval() has been
+ * It is assured that KVersionControlPlugin::beginRetrieval() has been
* invoked before and that the file is part of the directory specified
- * in beginInfoRetrieval().
+ * in beginRetrieval().
*/
virtual ItemVersion itemVersion(const KFileItem& item) const = 0;
1
0
Hello community,
here is the log from the commit of package baloo5-widgets for openSUSE:Factory checked in at 2016-08-29 14:32:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/baloo5-widgets (Old)
and /work/SRC/openSUSE:Factory/.baloo5-widgets.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "baloo5-widgets"
Changes:
--------
--- /work/SRC/openSUSE:Factory/baloo5-widgets/baloo5-widgets.changes 2016-07-21 07:42:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.baloo5-widgets.new/baloo5-widgets.changes 2016-08-29 14:32:18.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:01:36 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:30:42 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
baloo-widgets-16.04.3.tar.xz
New:
----
baloo-widgets-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ baloo5-widgets.spec ++++++
--- /var/tmp/diff_new_pack.JZj4Gh/_old 2016-08-29 14:32:19.000000000 +0200
+++ /var/tmp/diff_new_pack.JZj4Gh/_new 2016-08-29 14:32:19.000000000 +0200
@@ -17,7 +17,7 @@
Name: baloo5-widgets
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Framework for searching and managing metadata
License: GPL-2.0+ and LGPL-2.1+ and LGPL-3.0
++++++ baloo-widgets-16.04.3.tar.xz -> baloo-widgets-16.08.0.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package ark for openSUSE:Factory checked in at 2016-08-29 14:31:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ark (Old)
and /work/SRC/openSUSE:Factory/.ark.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ark"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ark/ark.changes 2016-07-21 07:42:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ark.new/ark.changes 2016-08-29 14:32:00.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:01:14 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:29:41 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
ark-16.04.3.tar.xz
New:
----
ark-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ark.spec ++++++
--- /var/tmp/diff_new_pack.MvYCmM/_old 2016-08-29 14:32:01.000000000 +0200
+++ /var/tmp/diff_new_pack.MvYCmM/_new 2016-08-29 14:32:01.000000000 +0200
@@ -17,7 +17,7 @@
Name: ark
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: KDE Archiver Tool
License: GPL-2.0+
@@ -81,7 +81,7 @@
%{_kf5_sharedir}/kxmlgui5/
%{_kf5_bindir}/ark
%{_kf5_configkcfgdir}/
-%{_kf5_sharedir}/appdata/
+%{_kf5_appstreamdir}/
%{_kf5_iconsdir}/hicolor/*/apps/*
%{_kf5_plugindir}/
%{_kf5_servicesdir}/
@@ -90,6 +90,8 @@
%dir %{_kf5_htmldir}
%doc %{_kf5_htmldir}/en/ark/
%doc %{_kf5_mandir}/man1/ark.*
+%dir %_datadir/mime
+%_datadir/mime/packages/
%files -n libkerfuffle16
%defattr(-,root,root)
++++++ ark-16.04.3.tar.xz -> ark-16.08.0.tar.xz ++++++
++++ 14501 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package akonadi-server for openSUSE:Factory checked in at 2016-08-29 14:30:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/akonadi-server (Old)
and /work/SRC/openSUSE:Factory/.akonadi-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "akonadi-server"
Changes:
--------
--- /work/SRC/openSUSE:Factory/akonadi-server/akonadi-server.changes 2016-08-08 13:49:32.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.akonadi-server.new/akonadi-server.changes 2016-08-29 14:30:41.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:00:36 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:22:41 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
akonadi-16.04.3.tar.xz
New:
----
akonadi-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ akonadi-server.spec ++++++
--- /var/tmp/diff_new_pack.JbQWkr/_old 2016-08-29 14:30:42.000000000 +0200
+++ /var/tmp/diff_new_pack.JbQWkr/_new 2016-08-29 14:30:42.000000000 +0200
@@ -17,7 +17,7 @@
Name: akonadi-server
-Version: 16.04.3
+Version: 16.08.0
Release: 0
%define rname akonadi
Summary: PIM Storage Service
@@ -55,6 +55,7 @@
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5Sql)
+BuildRequires: libQt5Sql-private-headers-devel
BuildRequires: pkgconfig(Qt5Test)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5Xml)
++++++ akonadi-16.04.3.tar.xz -> akonadi-16.08.0.tar.xz ++++++
++++ 10560 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package akonadi-search for openSUSE:Factory checked in at 2016-08-29 14:30:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/akonadi-search (Old)
and /work/SRC/openSUSE:Factory/.akonadi-search.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "akonadi-search"
Changes:
--------
--- /work/SRC/openSUSE:Factory/akonadi-search/akonadi-search.changes 2016-08-08 13:57:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.akonadi-search.new/akonadi-search.changes 2016-08-29 14:30:20.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Aug 12 10:00:27 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.08.0
+ * KDE Applications 16.08.0
+ * https://www.kde.org/announcements/announce-applications-16.08.0.php
+
+
+-------------------------------------------------------------------
+Mon Aug 8 14:20:08 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 16.07.90
+ * KDE Applications 16.07.90 (16.08-RC)
+ * https://www.kde.org/announcements/announce-applications-16.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
akonadi-search-16.04.3.tar.xz
New:
----
akonadi-search-16.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ akonadi-search.spec ++++++
--- /var/tmp/diff_new_pack.X6Mx8E/_old 2016-08-29 14:30:22.000000000 +0200
+++ /var/tmp/diff_new_pack.X6Mx8E/_new 2016-08-29 14:30:22.000000000 +0200
@@ -17,15 +17,15 @@
Name: akonadi-search
-Version: 16.04.3
+Version: 16.08.0
Release: 0
Summary: Framework for searching and managing PIM metadata
License: GPL-2.0+ and LGPL-2.1+ and LGPL-3.0
Group: System/GUI/KDE
Url: http://www.kde.org
Source0: %{name}-%{version}.tar.xz
-BuildRequires: akonadi-mime-devel
-BuildRequires: akonadi-server-devel
+BuildRequires: akonadi-mime-devel = %{version}
+BuildRequires: akonadi-server-devel = %{version}
BuildRequires: extra-cmake-modules >= 5.17.0
BuildRequires: kcalcore-devel
BuildRequires: kcmutils-devel >= 5.19.0
++++++ akonadi-search-16.04.3.tar.xz -> akonadi-search-16.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/.gitignore new/akonadi-search-16.08.0/.gitignore
--- old/akonadi-search-16.04.3/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/akonadi-search-16.08.0/.gitignore 2016-08-06 20:08:58.000000000 +0200
@@ -0,0 +1,3 @@
+# Ignore the following files
+/build/
+CMakeLists.txt.user*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/CMakeLists.txt new/akonadi-search-16.08.0/CMakeLists.txt
--- old/akonadi-search-16.04.3/CMakeLists.txt 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/CMakeLists.txt 2016-08-06 20:08:58.000000000 +0200
@@ -3,7 +3,8 @@
project(AkonadiSearch)
# ECM setup
-find_package(ECM 5.17.0 REQUIRED NO_MODULE)
+set(KF5_VERSION "5.23.0")
+find_package(ECM ${KF5_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(GenerateExportHeader)
@@ -19,14 +20,15 @@
include(ECMQtDeclareLoggingCategory)
-set(AKONADISEARCH_VERSION "5.2.3")
-set(KF5_VERSION "5.19.0")
+set(PIM_VERSION "5.3.0")
-set(AKONADI_VERSION "5.2.0")
-set(KDEPIMLIBS_LIB_VERSION "5.2.0")
-set(KCONTACTS_LIB_VERSION "5.2.0")
-set(KCALENDARCORE_LIB_VERSION "5.2.0")
-set(KMIME_LIB_VERSION "5.2.0")
+set(AKONADISEARCH_VERSION ${PIM_VERSION})
+
+set(AKONADI_VERSION "5.3.0")
+set(AKONADI_MIMELIB_VERSION "5.3.0")
+set(KCONTACTS_LIB_VERSION "5.3.0")
+set(KCALENDARCORE_LIB_VERSION "5.3.0")
+set(KMIME_LIB_VERSION "5.3.0")
find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Core Test)
@@ -43,7 +45,7 @@
find_package(KF5Akonadi ${AKONADI_VERSION} CONFIG REQUIRED)
find_package(KF5Contacts ${KCONTACTS_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED)
-find_package(KF5AkonadiMime ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED)
+find_package(KF5AkonadiMime ${AKONADI_MIMELIB_VERSION} CONFIG REQUIRED)
find_package(KF5CalendarCore ${KCALENDARCORE_LIB_VERSION} CONFIG REQUIRED)
ecm_setup_version(${AKONADISEARCH_VERSION}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/CMakeLists.txt new/akonadi-search-16.08.0/agent/CMakeLists.txt
--- old/akonadi-search-16.04.3/agent/CMakeLists.txt 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/CMakeLists.txt 2016-08-06 20:08:58.000000000 +0200
@@ -37,6 +37,7 @@
KF5::AkonadiAgentBase
KF5::CalendarCore
KF5::AkonadiSearchXapian
+ KF5::AkonadiSearchPIM
)
install(TARGETS akonadi_indexing_agent ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/agent.cpp new/akonadi-search-16.08.0/agent/agent.cpp
--- old/akonadi-search-16.04.3/agent/agent.cpp 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/agent.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -117,7 +117,7 @@
void AkonadiIndexingAgent::reindexAll()
{
- //qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Reindexing everything";
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Reindexing everything";
m_scheduler.abort();
m_index.removeDatabase();
m_index.createIndexers();
@@ -126,11 +126,18 @@
void AkonadiIndexingAgent::reindexCollection(const qlonglong id)
{
-
- //qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Reindexing collection " << id;
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Reindexing collection " << id;
m_scheduler.scheduleCollection(Akonadi::Collection(id), true);
}
+void AkonadiIndexingAgent::reindexCollections(const QList<qlonglong> &ids)
+{
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Reindexing collections " << ids;
+ Q_FOREACH(qlonglong id, ids) {
+ m_scheduler.scheduleCollection(Akonadi::Collection(id), true);
+ }
+}
+
qlonglong AkonadiIndexingAgent::indexedItems(const qlonglong id)
{
return m_index.indexedItems(id);
@@ -186,6 +193,7 @@
void AkonadiIndexingAgent::collectionAdded(const Akonadi::Collection &collection,
const Akonadi::Collection &parent)
{
+ Q_UNUSED(parent);
m_index.index(collection);
m_index.scheduleCommit();
}
@@ -222,6 +230,9 @@
const Akonadi::Collection &collectionSource,
const Akonadi::Collection &collectionDestination)
{
+ Q_UNUSED(collectionSource);
+ Q_UNUSED(collectionDestination);
+
m_index.remove(collection);
CollectionUpdateJob *job = new CollectionUpdateJob(m_index, collection, this);
job->start();
@@ -233,6 +244,11 @@
Akonadi::AgentBase::cleanup();
}
+int AkonadiIndexingAgent::numberOfCollectionQueued()
+{
+ return m_scheduler.numberOfCollectionQueued();
+}
+
void AkonadiIndexingAgent::onAbortRequested()
{
KConfig config(QStringLiteral("baloorc"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/agent.h new/akonadi-search-16.08.0/agent/agent.h
--- old/akonadi-search-16.04.3/agent/agent.h 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/agent.h 2016-08-06 20:08:58.000000000 +0200
@@ -51,7 +51,9 @@
void reindexAll();
void reindexCollection(const qlonglong id);
+ void reindexCollections(const QList<qlonglong> &ids);
qlonglong indexedItems(const qlonglong id);
+ int numberOfCollectionQueued();
void itemAdded(const Akonadi::Item &item, const Akonadi::Collection &collection) Q_DECL_OVERRIDE;
void itemChanged(const Akonadi::Item &item, const QSet<QByteArray> &partIdentifiers) Q_DECL_OVERRIDE;
@@ -72,6 +74,7 @@
// Remove the entire db
void cleanup() Q_DECL_OVERRIDE;
+
private Q_SLOTS:
void onAbortRequested();
void onOnlineChanged(bool online);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/autotests/unittestenv/xdgconfig/kdebugrc new/akonadi-search-16.08.0/agent/autotests/unittestenv/xdgconfig/kdebugrc
--- old/akonadi-search-16.04.3/agent/autotests/unittestenv/xdgconfig/kdebugrc 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/autotests/unittestenv/xdgconfig/kdebugrc 1970-01-01 01:00:00.000000000 +0100
@@ -1,80 +0,0 @@
-DisableAll=false
-
-[0]
-AbortFatal=true
-ErrorFilename[$e]=kdebug.dbg
-ErrorOutput=2
-FatalFilename[$e]=kdebug.dbg
-FatalOutput=2
-InfoFilename[$e]=kdebug.dbg
-InfoOutput=2
-WarnFilename[$e]=kdebug.dbg
-WarnOutput=2
-
-[264]
-AbortFatal=true
-ErrorFilename[$e]=kdebug.dbg
-ErrorOutput=4
-FatalFilename[$e]=kdebug.dbg
-FatalOutput=4
-InfoFilename[$e]=kdebug.dbg
-WarnFilename[$e]=kdebug.dbg
-WarnOutput=4
-
-[5250]
-InfoOutput=2
-
-[7009]
-AbortFatal=true
-ErrorFilename[$e]=kdebug.dbg
-ErrorOutput=4
-FatalFilename[$e]=kdebug.dbg
-FatalOutput=4
-InfoFilename[$e]=kdebug.dbg
-InfoOutput=4
-WarnFilename[$e]=kdebug.dbg
-WarnOutput=4
-
-[7011]
-AbortFatal=true
-ErrorFilename[$e]=kdebug.dbg
-ErrorOutput=4
-FatalFilename[$e]=kdebug.dbg
-FatalOutput=4
-InfoFilename[$e]=kdebug.dbg
-InfoOutput=4
-WarnFilename[$e]=kdebug.dbg
-WarnOutput=4
-
-[7012]
-AbortFatal=true
-ErrorFilename[$e]=kdebug.dbg
-ErrorOutput=4
-FatalFilename[$e]=kdebug.dbg
-FatalOutput=4
-InfoFilename[$e]=kdebug.dbg
-InfoOutput=4
-WarnFilename[$e]=kdebug.dbg
-WarnOutput=4
-
-[7014]
-AbortFatal=true
-ErrorFilename[$e]=kdebug.dbg
-ErrorOutput=0
-FatalFilename[$e]=kdebug.dbg
-FatalOutput=0
-InfoFilename[$e]=kdebug.dbg
-InfoOutput=0
-WarnFilename[$e]=kdebug.dbg
-WarnOutput=0
-
-[7021]
-AbortFatal=true
-ErrorFilename[$e]=kdebug.dbg
-ErrorOutput=4
-FatalFilename[$e]=kdebug.dbg
-FatalOutput=4
-InfoFilename[$e]=kdebug.dbg
-InfoOutput=4
-WarnFilename[$e]=kdebug.dbg
-WarnOutput=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/autotests/unittestenv/xdgconfig/kdedrc new/akonadi-search-16.08.0/agent/autotests/unittestenv/xdgconfig/kdedrc
--- old/akonadi-search-16.04.3/agent/autotests/unittestenv/xdgconfig/kdedrc 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/autotests/unittestenv/xdgconfig/kdedrc 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-[General]
-CheckSycoca=false
-CheckFileStamps=false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/calendarindexer.cpp new/akonadi-search-16.08.0/agent/calendarindexer.cpp
--- old/akonadi-search-16.04.3/agent/calendarindexer.cpp 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/calendarindexer.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -163,14 +163,19 @@
void CalendarIndexer::indexJournalItem(const Akonadi::Item &item, const KCalCore::Journal::Ptr &journal)
{
//TODO
+ Q_UNUSED(item);
+ Q_UNUSED(journal);
}
void CalendarIndexer::indexTodoItem(const Akonadi::Item &item, const KCalCore::Todo::Ptr &todo)
{
//TODO
+ Q_UNUSED(item);
+ Q_UNUSED(todo);
}
void CalendarIndexer::updateIncidenceItem(const KCalCore::Incidence::Ptr &calInc)
{
//TODO
+ Q_UNUSED(calInc);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/collectionindexer.cpp new/akonadi-search-16.08.0/agent/collectionindexer.cpp
--- old/akonadi-search-16.04.3/agent/collectionindexer.cpp 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/collectionindexer.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -23,10 +23,6 @@
#include <QString>
#include <QStringList>
#include <xapian.h>
-#include <xapian/database.h>
-#include <xapian/query.h>
-#include <xapian/enquire.h>
-#include <xapian/termgenerator.h>
#include <AkonadiCore/collectionidentificationattribute.h>
#include <AkonadiCore/AttributeFactory>
#include <xapiandocument.h>
@@ -159,6 +155,8 @@
const Akonadi::Collection &from,
const Akonadi::Collection &to)
{
+ Q_UNUSED(from);
+ Q_UNUSED(to);
index(collection);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/collectionindexingjob.cpp new/akonadi-search-16.08.0/agent/collectionindexingjob.cpp
--- old/akonadi-search-16.04.3/agent/collectionindexingjob.cpp 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/collectionindexingjob.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -94,6 +94,7 @@
void CollectionIndexingJob::indexItems(const QList<Akonadi::Item::Id> &itemIds)
{
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "collectionIndexingJob::indexItems(const QList<Akonadi::Item::Id> &itemIds) count " << itemIds.count();
Akonadi::Item::List items;
items.reserve(itemIds.size());
Q_FOREACH (const Akonadi::Item::Id id, itemIds) {
@@ -121,7 +122,9 @@
void CollectionIndexingJob::slotPendingItemsReceived(const Akonadi::Item::List &items)
{
+ qCDebug(AKONADI_INDEXER_AGENT_LOG)<<" CollectionIndexingJob::slotPendingItemsReceived " <<items.count();
Q_FOREACH (const Akonadi::Item &item, items) {
+ qCDebug(AKONADI_INDEXER_AGENT_LOG)<<" void CollectionIndexingJob::slotPendingItemsReceived(const Akonadi::Item::List &items)"<<item.id();
m_index.index(item);
}
m_progressCounter++;
@@ -130,6 +133,7 @@
void CollectionIndexingJob::slotPendingIndexed(KJob *job)
{
+ qCDebug(AKONADI_INDEXER_AGENT_LOG)<<" CollectionIndexingJob::slotPendingIndexed ";
if (job->error()) {
qCWarning(AKONADI_INDEXER_AGENT_LOG) << "Failed to fetch items: " << job->errorString();
setError(KJob::UserDefinedError);
@@ -152,11 +156,14 @@
const qlonglong indexedItemsCount = m_index.indexedItems(m_collection.id());
qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Indexed items count took (ms): " << m_time.elapsed() - start;
qCDebug(AKONADI_INDEXER_AGENT_LOG) << "In index: " << indexedItemsCount;
- qCDebug(AKONADI_INDEXER_AGENT_LOG) << "In collection: " << m_collection.statistics().count();
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Number of Items in collection: " << m_collection.statistics().count() << " In collection "<< m_collection.id();
+
if (m_collection.statistics().count() == indexedItemsCount) {
qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Index up to date";
emitResult();
return;
+ } else {
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Need to find unindexed items";
}
findUnindexed();
@@ -168,7 +175,7 @@
m_needsIndexing.clear();
const int start = m_time.elapsed();
m_index.findIndexed(m_indexedItems, m_collection.id());
- qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Found " << m_indexedItems.size() << " indexed items. Took (ms): " << m_time.elapsed() - start;
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Found " << m_indexedItems.size() << " indexed items. Took (ms): " << m_time.elapsed() - start << " collection id :"<<m_collection.id();
Akonadi::ItemFetchJob *job = new Akonadi::ItemFetchJob(m_collection, this);
job->fetchScope().fetchFullPayload(false);
@@ -187,6 +194,7 @@
void CollectionIndexingJob::slotUnindexedItemsReceived(const Akonadi::Item::List &items)
{
+ //qCDebug(AKONADI_INDEXER_AGENT_LOG) << "CollectionIndexingJob::slotUnindexedItemsReceived found number items :"<<items.count();
Q_FOREACH (const Akonadi::Item &item, items) {
if (!m_indexedItems.remove(item.id())) {
m_needsIndexing << item.id();
@@ -196,6 +204,7 @@
void CollectionIndexingJob::slotFoundUnindexed(KJob *job)
{
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "CollectionIndexingJob::slotFoundUnindexed :m_needsIndexing.isEmpty() : " << m_needsIndexing.isEmpty() << " count :"<< m_needsIndexing.count() << " m_reindexingLock :"<<m_reindexingLock << "m_collection.id() "<<m_collection.id();
if (job->error()) {
qCWarning(AKONADI_INDEXER_AGENT_LOG) << "Failed to fetch items: " << job->errorString();
setError(KJob::UserDefinedError);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/emailindexer.cpp new/akonadi-search-16.08.0/agent/emailindexer.cpp
--- old/akonadi-search-16.04.3/agent/emailindexer.cpp 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/emailindexer.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -74,6 +74,7 @@
void EmailIndexer::index(const Akonadi::Item &item)
{
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Indexing item" << item.id();
if (!m_db) {
return;
}
@@ -116,6 +117,7 @@
m_doc = 0;
m_termGen = 0;
+ qCDebug(AKONADI_INDEXER_AGENT_LOG) << "DONE Indexing item" << item.id();
}
void EmailIndexer::insert(const QByteArray &key, KMime::Headers::Base *unstructured)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/index.cpp new/akonadi-search-16.08.0/agent/index.cpp
--- old/akonadi-search-16.04.3/agent/index.cpp 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/index.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -24,18 +24,19 @@
#include "contactindexer.h"
#include "akonotesindexer.h"
#include "calendarindexer.h"
+
+#include "indexeditems.h"
#include <AkonadiCore/ServerManager>
#include <QDir>
#include <QStandardPaths>
-#include <xapian/error.h>
-#include <xapian/database.h>
-#include <xapian/query.h>
-#include <xapian/enquire.h>
+#include <xapian.h>
+using namespace Akonadi::Search::PIM;
Index::Index(QObject *parent)
: QObject(parent),
m_collectionIndexer(Q_NULLPTR)
{
+ m_indexedItems = new IndexedItems(this);
m_commitTimer.setInterval(1000);
m_commitTimer.setSingleShot(true);
connect(&m_commitTimer, &QTimer::timeout, this, &Index::commit);
@@ -72,12 +73,12 @@
m_indexer.clear();
qCDebug(AKONADI_INDEXER_AGENT_LOG) << "Removing database";
- removeDir(emailIndexingPath());
- removeDir(contactIndexingPath());
- removeDir(emailContactsIndexingPath());
- removeDir(akonotesIndexingPath());
- removeDir(calendarIndexingPath());
- removeDir(collectionIndexingPath());
+ removeDir(m_indexedItems->emailIndexingPath());
+ removeDir(m_indexedItems->contactIndexingPath());
+ removeDir(m_indexedItems->emailContactsIndexingPath());
+ removeDir(m_indexedItems->akonotesIndexingPath());
+ removeDir(m_indexedItems->calendarIndexingPath());
+ removeDir(m_indexedItems->collectionIndexingPath());
}
AbstractIndexer *Index::indexerForItem(const Akonadi::Item &item) const
@@ -106,6 +107,7 @@
{
AbstractIndexer *indexer = indexerForItem(item);
if (!indexer) {
+ qCWarning(AKONADI_INDEXER_AGENT_LOG) << " No indexer found for item";
return;
}
@@ -233,9 +235,9 @@
{
AbstractIndexer *indexer = Q_NULLPTR;
try {
- QDir().mkpath(emailIndexingPath());
- QDir().mkpath(emailContactsIndexingPath());
- indexer = new EmailIndexer(emailIndexingPath(), emailContactsIndexingPath());
+ QDir().mkpath(m_indexedItems->emailIndexingPath());
+ QDir().mkpath(m_indexedItems->emailContactsIndexingPath());
+ indexer = new EmailIndexer(m_indexedItems->emailIndexingPath(), m_indexedItems->emailContactsIndexingPath());
addIndexer(indexer);
} catch (const Xapian::DatabaseError &e) {
delete indexer;
@@ -246,8 +248,8 @@
}
try {
- QDir().mkpath(contactIndexingPath());
- indexer = new ContactIndexer(contactIndexingPath());
+ QDir().mkpath(m_indexedItems->contactIndexingPath());
+ indexer = new ContactIndexer(m_indexedItems->contactIndexingPath());
addIndexer(indexer);
} catch (const Xapian::DatabaseError &e) {
delete indexer;
@@ -258,8 +260,8 @@
}
try {
- QDir().mkpath(akonotesIndexingPath());
- indexer = new AkonotesIndexer(akonotesIndexingPath());
+ QDir().mkpath(m_indexedItems->akonotesIndexingPath());
+ indexer = new AkonotesIndexer(m_indexedItems->akonotesIndexingPath());
addIndexer(indexer);
} catch (const Xapian::DatabaseError &e) {
delete indexer;
@@ -270,8 +272,8 @@
}
try {
- QDir().mkpath(calendarIndexingPath());
- indexer = new CalendarIndexer(calendarIndexingPath());
+ QDir().mkpath(m_indexedItems->calendarIndexingPath());
+ indexer = new CalendarIndexer(m_indexedItems->calendarIndexingPath());
addIndexer(indexer);
} catch (const Xapian::DatabaseError &e) {
delete indexer;
@@ -282,8 +284,8 @@
}
try {
- QDir().mkpath(collectionIndexingPath());
- m_collectionIndexer = new CollectionIndexer(collectionIndexingPath());
+ QDir().mkpath(m_indexedItems->collectionIndexingPath());
+ m_collectionIndexer = new CollectionIndexer(m_indexedItems->collectionIndexingPath());
} catch (const Xapian::DatabaseError &e) {
delete m_collectionIndexer;
m_collectionIndexer = Q_NULLPTR;
@@ -316,118 +318,17 @@
}
}
-void Index::findIndexedInDatabase(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId, const QString &dbPath)
-{
- Xapian::Database db;
- try {
- db = Xapian::Database(QFile::encodeName(dbPath).constData());
- } catch (const Xapian::DatabaseError &e) {
- qCCritical(AKONADI_INDEXER_AGENT_LOG) << "Failed to open database" << dbPath << ":" << QString::fromStdString(e.get_msg());
- return;
- }
- const std::string term = QString::fromLatin1("C%1").arg(collectionId).toStdString();
- Xapian::Query query(term);
- Xapian::Enquire enquire(db);
- enquire.set_query(query);
-
- Xapian::MSet mset = enquire.get_mset(0, UINT_MAX);
- Xapian::MSetIterator it = mset.begin();
- for (; it != mset.end(); it++) {
- indexed << *it;
- }
-}
-
void Index::findIndexed(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId)
{
- findIndexedInDatabase(indexed, collectionId, emailIndexingPath());
- findIndexedInDatabase(indexed, collectionId, contactIndexingPath());
- findIndexedInDatabase(indexed, collectionId, akonotesIndexingPath());
- findIndexedInDatabase(indexed, collectionId, calendarIndexingPath());
+ m_indexedItems->findIndexed(indexed, collectionId);
}
qlonglong Index::indexedItems(const qlonglong id)
{
- const std::string term = QString::fromLatin1("C%1").arg(id).toStdString();
- return indexedItemsInDatabase(term, emailIndexingPath())
- + indexedItemsInDatabase(term, contactIndexingPath())
- + indexedItemsInDatabase(term, akonotesIndexingPath())
- + indexedItemsInDatabase(term, calendarIndexingPath());
-}
-
-qlonglong Index::indexedItemsInDatabase(const std::string &term, const QString &dbPath) const
-{
- Xapian::Database db;
- try {
- db = Xapian::Database(QFile::encodeName(dbPath).constData());
- } catch (const Xapian::DatabaseError &e) {
- qCCritical(AKONADI_INDEXER_AGENT_LOG) << "Failed to open database" << dbPath << ":" << QString::fromStdString(e.get_msg());
- return 0;
- }
- return db.get_termfreq(term);
+ return m_indexedItems->indexedItems(id);
}
void Index::setOverrideDbPrefixPath(const QString &path)
{
- m_overridePrefixPath = path;
-}
-
-QString Index::dbPath(const QString &dbName) const
-{
- if (!m_overridePrefixPath.isEmpty()) {
- return QString::fromLatin1("%1/%2/").arg(m_overridePrefixPath, dbName);
- }
-
- // First look into the old location from Baloo times in ~/.local/share/baloo,
- // because we don't migrate the database files automatically.
- QString basePath;
- if (Akonadi::ServerManager::hasInstanceIdentifier()) {
- basePath = QStringLiteral("baloo/instances/%1").arg(Akonadi::ServerManager::instanceIdentifier());
- } else {
- basePath = QStringLiteral("baloo");
- }
- QString dbPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/%1/%2/").arg(basePath, dbName);
- if (QDir(dbPath).exists()) {
- return dbPath;
- }
-
- // If the database does not exist in old Baloo folders, than use the new
- // location in Akonadi's datadir in ~/.local/share/akonadi/search_db.
- if (Akonadi::ServerManager::hasInstanceIdentifier()) {
- basePath = QStringLiteral("akonadi/instance/%1/search_db").arg(Akonadi::ServerManager::instanceIdentifier());
- } else {
- basePath = QStringLiteral("akonadi/search_db");
- }
- dbPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/%1/%2/").arg(basePath, dbName);
- QDir().mkpath(dbPath);
- return dbPath;
-}
-
-QString Index::emailIndexingPath() const
-{
- return dbPath(QStringLiteral("email"));
-}
-
-QString Index::contactIndexingPath() const
-{
- return dbPath(QStringLiteral("contacts"));
-}
-
-QString Index::emailContactsIndexingPath() const
-{
- return dbPath(QStringLiteral("emailContacts"));
-}
-
-QString Index::akonotesIndexingPath() const
-{
- return dbPath(QStringLiteral("notes"));
-}
-
-QString Index::calendarIndexingPath() const
-{
- return dbPath(QStringLiteral("calendars"));
-}
-
-QString Index::collectionIndexingPath() const
-{
- return dbPath(QStringLiteral("collections"));
+ m_indexedItems->setOverrideDbPrefixPath(path);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/index.h new/akonadi-search-16.08.0/agent/index.h
--- old/akonadi-search-16.04.3/agent/index.h 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/index.h 2016-08-06 20:08:58.000000000 +0200
@@ -28,7 +28,16 @@
#include <AkonadiCore/item.h>
#include "abstractindexer.h"
#include "collectionindexer.h"
-
+namespace Akonadi
+{
+namespace Search
+{
+namespace PIM
+{
+class IndexedItems;
+}
+}
+}
/**
* Maintains the variuous indexers and databases
*/
@@ -74,20 +83,10 @@
void addIndexer(AbstractIndexer *indexer);
AbstractIndexer *indexerForItem(const Akonadi::Item &item) const;
QList<AbstractIndexer *> indexersForMimetypes(const QStringList &mimeTypes) const;
- virtual qlonglong indexedItemsInDatabase(const std::string &term, const QString &dbPath) const;
- virtual void findIndexedInDatabase(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId, const QString &dbPath);
-
- QString dbPath(const QString &dbName) const;
- QString emailIndexingPath() const;
- QString contactIndexingPath() const;
- QString emailContactsIndexingPath() const;
- QString akonotesIndexingPath() const;
- QString calendarIndexingPath() const;
- QString collectionIndexingPath() const;
- QString m_overridePrefixPath;
QList<AbstractIndexer *> m_listIndexer;
QHash<QString, AbstractIndexer *> m_indexer;
+ Akonadi::Search::PIM::IndexedItems *m_indexedItems;
QTimer m_commitTimer;
CollectionIndexer *m_collectionIndexer;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/org.freedesktop.Akonadi.Indexer.xml new/akonadi-search-16.08.0/agent/org.freedesktop.Akonadi.Indexer.xml
--- old/akonadi-search-16.04.3/agent/org.freedesktop.Akonadi.Indexer.xml 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/org.freedesktop.Akonadi.Indexer.xml 2016-08-06 20:08:58.000000000 +0200
@@ -10,5 +10,13 @@
<arg name="item" type="x" direction="in"/>
<arg type="x" direction="out"/>
</method>
+ <method name="numberOfCollectionQueued" >
+ <arg type="i" direction="out"/>
+ </method>
+ <method name="reindexCollections">
+ <arg name="ids" type="ax" direction="in"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="const QList<qlonglong> &"/>
+ </method>
+
</interface>
</node>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/scheduler.cpp new/akonadi-search-16.08.0/agent/scheduler.cpp
--- old/akonadi-search-16.04.3/agent/scheduler.cpp 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/scheduler.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -87,13 +87,19 @@
m_busyTimeout = timeout;
}
+int Scheduler::numberOfCollectionQueued() const
+{
+ return m_collectionQueue.count();
+}
+
void Scheduler::collectDirtyCollections()
{
KConfig config(Akonadi::ServerManager::addNamespace(QStringLiteral("baloorc")));
KConfigGroup group = config.group("Akonadi");
//Store collections where we did not manage to index all, we'll need to do a full sync for them the next time
- QHash<Akonadi::Collection::Id, QQueue<Akonadi::Item::Id>>::iterator it = m_queues.begin();
- for (; it != m_queues.end(); it++) {
+ QHash<Akonadi::Collection::Id, QQueue<Akonadi::Item::Id>>::ConstIterator it = m_queues.constBegin();
+ QHash<Akonadi::Collection::Id, QQueue<Akonadi::Item::Id>>::ConstIterator end = m_queues.constEnd();
+ for (; it != end; ++it) {
if (!it.value().isEmpty()) {
m_dirtyCollections.insert(it.key());
}
@@ -236,7 +242,9 @@
if (job->error()) {
qCWarning(AKONADI_INDEXER_AGENT_LOG) << "Indexing failed: " << job->errorString();
} else {
- m_dirtyCollections.remove(job->property("collection").value<Akonadi::Collection::Id>());
+ const Akonadi::Collection::Id collectionId = job->property("collection").value<Akonadi::Collection::Id>();
+ m_dirtyCollections.remove(collectionId);
+ status(Akonadi::AgentBase::Idle, i18n("Collection \"%1\" indexed", collectionId));
}
m_currentJob = 0;
m_processTimer.start();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/agent/scheduler.h new/akonadi-search-16.08.0/agent/scheduler.h
--- old/akonadi-search-16.04.3/agent/scheduler.h 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/agent/scheduler.h 2016-08-06 20:08:58.000000000 +0200
@@ -63,6 +63,8 @@
*/
void setBusyTimeout(int);
+ int numberOfCollectionQueued() const;
+
Q_SIGNALS:
void status(int status, const QString &message = QString());
void percent(int);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/akonadi-search.categories new/akonadi-search-16.08.0/akonadi-search.categories
--- old/akonadi-search-16.04.3/akonadi-search.categories 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/akonadi-search.categories 2016-08-06 20:08:58.000000000 +0200
@@ -2,3 +2,4 @@
log_akonadiplugin_indexer (akonadi plugin indexer)
log_akonadi_search_xapian (akonadi indexer xapian)
log_akonadi_krunner_plugin (akonadi plugin krunner)
+log_akonadi_search_pim (akonadi pim lib)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/lib/CMakeLists.txt new/akonadi-search-16.08.0/lib/CMakeLists.txt
--- old/akonadi-search-16.04.3/lib/CMakeLists.txt 2016-06-15 06:34:51.000000000 +0200
+++ new/akonadi-search-16.08.0/lib/CMakeLists.txt 2016-08-06 20:08:58.000000000 +0200
@@ -11,10 +11,13 @@
notequery.cpp
contactcompleter.cpp
collectionquery.cpp
+ indexeditems.cpp
../search/email/agepostingsource.cpp
)
+ecm_qt_declare_logging_category(AKONADI_SEARCH_PIM_LIB_SRCS HEADER akonadi_search_pim_debug.h IDENTIFIER AKONADI_SEARCH_PIM_LOG CATEGORY_NAME log_akonadi_search_pim)
+
add_library(KF5AkonadiSearchPIM ${AKONADI_SEARCH_PIM_LIB_SRCS})
add_library(KF5::AkonadiSearchPIM ALIAS KF5AkonadiSearchPIM)
@@ -46,6 +49,7 @@
contactcompleter.h
notequery.h
collectionquery.h
+ indexeditems.h
resultiterator.h
${CMAKE_CURRENT_BINARY_DIR}/search_pim_export.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/lib/indexeditems.cpp new/akonadi-search-16.08.0/lib/indexeditems.cpp
--- old/akonadi-search-16.04.3/lib/indexeditems.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/akonadi-search-16.08.0/lib/indexeditems.cpp 2016-08-06 20:08:58.000000000 +0200
@@ -0,0 +1,237 @@
+/*
+ * This file is part of the KDE Akonadi Search Project
+ * Copyright (C) 2016 Laurent Montel <montel(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) version 3, or any
+ * later version accepted by the membership of KDE e.V. (or its
+ * successor approved by the membership of KDE e.V.), which shall
+ * act as a proxy defined in Section 6 of version 3 of the license.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#include "indexeditems.h"
+#include "akonadi_search_pim_debug.h"
+#include <QStandardPaths>
+#include <QHash>
+#include <QDir>
+#include <AkonadiCore/ServerManager>
+#include <xapian.h>
+
+
+using namespace Akonadi::Search::PIM;
+
+class Akonadi::Search::PIM::IndexedItemsPrivate
+{
+public:
+ IndexedItemsPrivate()
+ {
+
+ }
+ QString dbPath(const QString &dbName) const;
+ QString emailIndexingPath() const;
+ QString collectionIndexingPath() const;
+ QString calendarIndexingPath() const;
+ QString akonotesIndexingPath() const;
+ QString emailContactsIndexingPath() const;
+ QString contactIndexingPath() const;
+
+ mutable QHash<QString, QString> m_cachePath;
+ QString m_overridePrefixPath;
+ qlonglong indexedItems(const qlonglong id);
+ qlonglong indexedItemsInDatabase(const std::string &term, const QString &dbPath) const;
+ void findIndexedInDatabase(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId, const QString &dbPath);
+ void findIndexed(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId);
+};
+
+
+QString IndexedItemsPrivate::dbPath(const QString &dbName) const
+{
+ const QString cachedPath = m_cachePath.value(dbName);
+ if (!cachedPath.isEmpty()) {
+ return cachedPath;
+ }
+ if (!m_overridePrefixPath.isEmpty()) {
+ const QString path = QString::fromLatin1("%1/%2/").arg(m_overridePrefixPath, dbName);
+ m_cachePath.insert(dbName, path);
+ return path;
+ }
+
+ // First look into the old location from Baloo times in ~/.local/share/baloo,
+ // because we don't migrate the database files automatically.
+ QString basePath;
+ if (Akonadi::ServerManager::hasInstanceIdentifier()) {
+ basePath = QStringLiteral("baloo/instances/%1").arg(Akonadi::ServerManager::instanceIdentifier());
+ } else {
+ basePath = QStringLiteral("baloo");
+ }
+ QString dbPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/%1/%2/").arg(basePath, dbName);
+ if (QDir(dbPath).exists()) {
+ m_cachePath.insert(dbName, dbPath);
+ return dbPath;
+ }
+
+ // If the database does not exist in old Baloo folders, than use the new
+ // location in Akonadi's datadir in ~/.local/share/akonadi/search_db.
+ if (Akonadi::ServerManager::hasInstanceIdentifier()) {
+ basePath = QStringLiteral("akonadi/instance/%1/search_db").arg(Akonadi::ServerManager::instanceIdentifier());
+ } else {
+ basePath = QStringLiteral("akonadi/search_db");
+ }
+ dbPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/%1/%2/").arg(basePath, dbName);
+ QDir().mkpath(dbPath);
+ m_cachePath.insert(dbName, dbPath);
+ return dbPath;
+}
+
+QString IndexedItemsPrivate::emailIndexingPath() const
+{
+ return dbPath(QStringLiteral("email"));
+}
+
+QString IndexedItemsPrivate::contactIndexingPath() const
+{
+ return dbPath(QStringLiteral("contacts"));
+}
+
+QString IndexedItemsPrivate::emailContactsIndexingPath() const
+{
+ return dbPath(QStringLiteral("emailContacts"));
+}
+
+QString IndexedItemsPrivate::akonotesIndexingPath() const
+{
+ return dbPath(QStringLiteral("notes"));
+}
+
+QString IndexedItemsPrivate::calendarIndexingPath() const
+{
+ return dbPath(QStringLiteral("calendars"));
+}
+
+QString IndexedItemsPrivate::collectionIndexingPath() const
+{
+ return dbPath(QStringLiteral("collections"));
+}
+
+qlonglong IndexedItemsPrivate::indexedItemsInDatabase(const std::string &term, const QString &dbPath) const
+{
+ Xapian::Database db;
+ try {
+ db = Xapian::Database(QFile::encodeName(dbPath).constData());
+ } catch (const Xapian::DatabaseError &e) {
+ qCCritical(AKONADI_SEARCH_PIM_LOG) << "Failed to open database" << dbPath << ":" << QString::fromStdString(e.get_msg());
+ return 0;
+ }
+ return db.get_termfreq(term);
+}
+
+qlonglong IndexedItemsPrivate::indexedItems(const qlonglong id)
+{
+ const std::string term = QString::fromLatin1("C%1").arg(id).toStdString();
+ return indexedItemsInDatabase(term, emailIndexingPath())
+ + indexedItemsInDatabase(term, contactIndexingPath())
+ + indexedItemsInDatabase(term, akonotesIndexingPath())
+ + indexedItemsInDatabase(term, calendarIndexingPath());
+}
+
+void IndexedItemsPrivate::findIndexedInDatabase(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId, const QString &dbPath)
+{
+ Xapian::Database db;
+ try {
+ db = Xapian::Database(QFile::encodeName(dbPath).constData());
+ } catch (const Xapian::DatabaseError &e) {
+ qCCritical(AKONADI_SEARCH_PIM_LOG) << "Failed to open database" << dbPath << ":" << QString::fromStdString(e.get_msg());
+ return;
+ }
+ const std::string term = QString::fromLatin1("C%1").arg(collectionId).toStdString();
+ Xapian::Query query(term);
+ Xapian::Enquire enquire(db);
+ enquire.set_query(query);
+
+ Xapian::MSet mset = enquire.get_mset(0, UINT_MAX);
+ Xapian::MSetIterator it = mset.begin();
+ for (; it != mset.end(); it++) {
+ indexed << *it;
+ }
+}
+
+void IndexedItemsPrivate::findIndexed(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId)
+{
+ findIndexedInDatabase(indexed, collectionId, emailIndexingPath());
+ findIndexedInDatabase(indexed, collectionId, contactIndexingPath());
+ findIndexedInDatabase(indexed, collectionId, akonotesIndexingPath());
+ findIndexedInDatabase(indexed, collectionId, calendarIndexingPath());
+}
+
+IndexedItems::IndexedItems(QObject *parent)
+ : QObject(parent),
+ d(new Akonadi::Search::PIM::IndexedItemsPrivate())
+{
+
+}
+
+IndexedItems::~IndexedItems()
+{
+ delete d;
+}
+
+void IndexedItems::setOverrideDbPrefixPath(const QString &path)
+{
+ d->m_overridePrefixPath = path;
+ d->m_cachePath.clear();
+}
+
+qlonglong IndexedItems::indexedItems(const qlonglong id)
+{
+ return d->indexedItems(id);
+}
+
+void IndexedItems::findIndexedInDatabase(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId, const QString &dbPath)
+{
+ d->findIndexedInDatabase(indexed, collectionId, dbPath);
+}
+
+void IndexedItems::findIndexed(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId)
+{
+ d->findIndexed(indexed, collectionId);
+}
+
+QString IndexedItems::emailIndexingPath() const
+{
+ return d->emailIndexingPath();
+}
+
+QString IndexedItems::collectionIndexingPath() const
+{
+ return d->collectionIndexingPath();
+}
+
+QString IndexedItems::calendarIndexingPath() const
+{
+ return d->calendarIndexingPath();
+}
+
+QString IndexedItems::akonotesIndexingPath() const
+{
+ return d->akonotesIndexingPath();
+}
+
+QString IndexedItems::emailContactsIndexingPath() const
+{
+ return d->emailContactsIndexingPath();
+}
+
+QString IndexedItems::contactIndexingPath() const
+{
+ return d->contactIndexingPath();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-search-16.04.3/lib/indexeditems.h new/akonadi-search-16.08.0/lib/indexeditems.h
--- old/akonadi-search-16.04.3/lib/indexeditems.h 1970-01-01 01:00:00.000000000 +0100
+++ new/akonadi-search-16.08.0/lib/indexeditems.h 2016-08-06 20:08:58.000000000 +0200
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the KDE Akonadi Search Project
+ * Copyright (C) 2016 Laurent Montel <montel(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) version 3, or any
+ * later version accepted by the membership of KDE e.V. (or its
+ * successor approved by the membership of KDE e.V.), which shall
+ * act as a proxy defined in Section 6 of version 3 of the license.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#ifndef INDEXEDITEMS_H
+#define INDEXEDITEMS_H
+
+#include <QObject>
+#include "search_pim_export.h"
+#include <AkonadiCore/Item>
+
+namespace Akonadi
+{
+namespace Search
+{
+namespace PIM
+{
+class IndexedItemsPrivate;
+class AKONADI_SEARCH_PIM_EXPORT IndexedItems : public QObject
+{
+ Q_OBJECT
+public:
+ explicit IndexedItems(QObject *parent = Q_NULLPTR);
+ ~IndexedItems();
+
+ void setOverrideDbPrefixPath(const QString &path);
+
+ qlonglong indexedItems(const qlonglong id);
+
+ void findIndexedInDatabase(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId, const QString &dbPath);
+ void findIndexed(QSet<Akonadi::Item::Id> &indexed, Akonadi::Collection::Id collectionId);
+
+ QString emailIndexingPath() const;
+ QString collectionIndexingPath() const;
+ QString calendarIndexingPath() const;
+ QString akonotesIndexingPath() const;
+ QString emailContactsIndexingPath() const;
+ QString contactIndexingPath() const;
+
+private:
+ IndexedItemsPrivate *const d;
+};
+}
+}
+}
+#endif // INDEXEDITEMS_H
1
0
Hello community,
here is the log from the commit of package plasma5-pk-updates for openSUSE:Factory checked in at 2016-08-29 14:29:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-pk-updates (Old)
and /work/SRC/openSUSE:Factory/.plasma5-pk-updates.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-pk-updates"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-pk-updates/plasma5-pk-updates.changes 2016-02-22 08:56:07.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-pk-updates.new/plasma5-pk-updates.changes 2016-08-29 14:29:59.000000000 +0200
@@ -1,0 +2,11 @@
+Mon Aug 15 10:47:01 UTC 2016 - fabian(a)ritter-vogt.de
+
+- Add upstream commits fix-typo-in-icon-name.patch and
+ use-new-breeze-icons.patch
+
+-------------------------------------------------------------------
+Fri Aug 12 23:43:51 UTC 2016 - hrvoje.senjan(a)gmail.com
+
+- Adjust filelist for the plasmoid appdata, installed with KF > 5.25.0
+
+-------------------------------------------------------------------
New:
----
fix-typo-in-icon-name.patch
use-new-breeze-icons.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-pk-updates.spec ++++++
--- /var/tmp/diff_new_pack.yONsXW/_old 2016-08-29 14:30:03.000000000 +0200
+++ /var/tmp/diff_new_pack.yONsXW/_new 2016-08-29 14:30:03.000000000 +0200
@@ -30,15 +30,19 @@
Patch1: change-refresh-logic.patch
# PATCH-FIX-UPSTREAM use-native-plasma-components.patch boo#953669, kde#359308 -- fixes problems with dark Plasma themes
Patch2: use-native-plasma-components.patch
+# PATCH-FIX-UPSTREAM use-new-breeze-icons.patch -- use less misleading icons
+Patch3: use-new-breeze-icons.patch
+# PATCH-FIX-UPSTREAM fix-typo-in-icon-name.patch -- fix typo in above patch
+Patch4: fix-typo-in-icon-name.patch
BuildRequires: PackageKit-Qt5-devel
BuildRequires: cmake >= 3.0
BuildRequires: extra-cmake-modules >= 1.3.0
-BuildRequires: kcoreaddons-devel
-BuildRequires: kdelibs4support-devel
-BuildRequires: ki18n-devel
-BuildRequires: kiconthemes-devel
-BuildRequires: knotifications-devel
-BuildRequires: plasma-framework-devel
+BuildRequires: kcoreaddons-devel >= 5.25.0
+BuildRequires: kdelibs4support-devel >= 5.25.0
+BuildRequires: ki18n-devel >= 5.25.0
+BuildRequires: kiconthemes-devel >= 5.25.0
+BuildRequires: knotifications-devel >= 5.25.0
+BuildRequires: plasma-framework-devel >= 5.25.0
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Gui)
@@ -62,6 +66,8 @@
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
echo "ki18n_install(po)" >> CMakeLists.txt
%build
@@ -82,5 +88,6 @@
%{_kf5_qmldir}/
%{_kf5_plasmadir}/
%{_kf5_servicesdir}/
+%{_kf5_appstreamdir}/
%changelog
++++++ fix-typo-in-icon-name.patch ++++++
>From 9662b9c5d83ad0188803830d7cf9a96a2db0d114 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian(a)ritter-vogt.de>
Date: Mon, 15 Aug 2016 11:40:31 +0100
Subject: [PATCH 4/4] Fix typo in icon name
Introduced in commit 9e236ec5d4d28d7498dfcc830a95590dececcf02
REVIEW: 128682
---
src/declarative/pkupdates.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/declarative/pkupdates.cpp b/src/declarative/pkupdates.cpp
index 324387f..6083d22 100644
--- a/src/declarative/pkupdates.cpp
+++ b/src/declarative/pkupdates.cpp
@@ -98,7 +98,7 @@ bool PkUpdates::isSystemUpToDate() const
QString PkUpdates::iconName() const
{
if (securityCount() > 0) {
- return "update-hight";
+ return "update-high";
} else if (importantCount() > 0) {
return "update-medium";
} else if (count() > 0) {
--
2.9.2
++++++ use-new-breeze-icons.patch ++++++
>From 9e236ec5d4d28d7498dfcc830a95590dececcf02 Mon Sep 17 00:00:00 2001
From: Jan Grulich <jgrulich(a)redhat.com>
Date: Mon, 29 Feb 2016 14:34:06 +0100
Subject: [PATCH 1/4] Use new breeze icons
---
src/declarative/pkupdates.cpp | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/declarative/pkupdates.cpp b/src/declarative/pkupdates.cpp
index f1e013f..324387f 100644
--- a/src/declarative/pkupdates.cpp
+++ b/src/declarative/pkupdates.cpp
@@ -97,12 +97,15 @@ bool PkUpdates::isSystemUpToDate() const
QString PkUpdates::iconName() const
{
- if (securityCount() > 0)
- return "security-low";
- else if (importantCount() > 0)
- return "security-medium";
-
- return "security-high";
+ if (securityCount() > 0) {
+ return "update-hight";
+ } else if (importantCount() > 0) {
+ return "update-medium";
+ } else if (count() > 0) {
+ return "update-low";
+ } else {
+ return "update-none";
+ }
}
QString PkUpdates::message() const
--
2.9.2
1
0
Hello community,
here is the log from the commit of package accountsservice for openSUSE:Factory checked in at 2016-08-29 14:29:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/accountsservice (Old)
and /work/SRC/openSUSE:Factory/.accountsservice.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "accountsservice"
Changes:
--------
--- /work/SRC/openSUSE:Factory/accountsservice/accountsservice.changes 2016-08-17 12:00:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.accountsservice.new/accountsservice.changes 2016-08-29 14:29:13.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 24 08:14:06 UTC 2016 - fezhang(a)suse.com
+
+- Enable as-fate318433-prevent-same-account-multi-logins.patch for
+ Leap as requested by the Leap Release Manager (boo#994876).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ accountsservice.spec ++++++
--- /var/tmp/diff_new_pack.B3z5DJ/_old 2016-08-29 14:29:14.000000000 +0200
+++ /var/tmp/diff_new_pack.B3z5DJ/_new 2016-08-29 14:29:14.000000000 +0200
@@ -94,6 +94,8 @@
%patch1 -p1
%if ! 0%{?is_opensuse}
%patch2 -p1
+%endif
+%if 0%{suse_version} == 1315
%patch3 -p1
%endif
1
0
Hello community,
here is the log from the commit of package icewm for openSUSE:Factory checked in at 2016-08-29 14:28:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icewm (Old)
and /work/SRC/openSUSE:Factory/.icewm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icewm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/icewm/icewm.changes 2016-06-05 14:18:29.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.icewm.new/icewm.changes 2016-08-29 14:28:56.000000000 +0200
@@ -1,0 +2,11 @@
+Thu Aug 25 10:00:58 UTC 2016 - fvogt(a)suse.com
+
+- Add patch icewm-exit-fork.patch to avoid deadlock (bsc#977233)
+
+-------------------------------------------------------------------
+Wed Aug 24 07:55:56 UTC 2016 - tyang(a)suse.com
+
+- Modify: icewm-preferences.patch
+ bnc#977233 modify the command to correct one.
+
+-------------------------------------------------------------------
New:
----
icewm-exit-fork.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ icewm.spec ++++++
--- /var/tmp/diff_new_pack.Lp4TY8/_old 2016-08-29 14:28:58.000000000 +0200
+++ /var/tmp/diff_new_pack.Lp4TY8/_new 2016-08-29 14:28:58.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package icewm
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -32,6 +32,8 @@
Patch1: icewm-susemenu.patch
# PATCH-FIX-UPSTREAM tweak the desktop session files to work correctly
Patch2: icewm-session-desktop.patch
+# PATCH-FIX-OPENSUSE run shutdown and reboot in background
+Patch3: icewm-exit-fork.patch
Patch99: icewm-preferences.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -134,6 +136,7 @@
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
# Do not require needlessly new gettext.
sed -i 's/0.19.6/0.18.3/g' configure.ac
++++++ icewm-exit-fork.patch ++++++
Author: Fabian Vogt <fvogt(a)suse.com>
Subject: Start shutdown and reboot commands in background
When polkit is enabled, systemctl may in turn wait for the
graphical password prompt to return. The created window cannot
be handled by icewm as it is busy with systemctl.
This avoids this deadlock by starting systemctl in background.
---
src/wmmgr.cc | 23 +++++++++++++++++++----
src/wmmgr.h | 1 +
2 files changed, 20 insertions(+), 4 deletions(-)
Index: icewm-1.3.12/src/wmmgr.cc
===================================================================
--- icewm-1.3.12.orig/src/wmmgr.cc
+++ icewm-1.3.12/src/wmmgr.cc
@@ -3011,16 +3011,30 @@ void YWindowManager::updateUserTime(Time
}
}
+void YWindowManager::execAfterFork(const char *command) {
+ pid_t pid = fork();
+ switch(pid) {
+ case -1: /* Failed */
+ warn("fork failed (%d)", errno);
+ return;
+ case 0: /* Child */
+ execl("/bin/sh", "sh", "-c", command, (char *) 0);
+ return; /* Never reached */
+ default: /* Parent */
+ return;
+ }
+}
+
void YWindowManager::checkLogout() {
if (fShuttingDown && !haveClients()) {
+ fShuttingDown = false; /* Only run the command once */
+
if (rebootOrShutdown == 1 && rebootCommand && rebootCommand[0]) {
msg("reboot... (%s)", rebootCommand);
- if (system(rebootCommand) == -1)
- return;
+ execAfterFork(rebootCommand);
} else if (rebootOrShutdown == 2 && shutdownCommand && shutdownCommand[0]) {
msg("shutdown ... (%s)", shutdownCommand);
- if (system(shutdownCommand) == -1)
- return;
+ execAfterFork(shutdownCommand);
} else
app->exit(0);
}
Index: icewm-1.3.12/src/wmmgr.h
===================================================================
--- icewm-1.3.12.orig/src/wmmgr.h
+++ icewm-1.3.12/src/wmmgr.h
@@ -188,6 +188,7 @@ public:
void wmCloseSession();
void exitAfterLastClient(bool shuttingDown);
+ void execAfterFork(const char *command);
void checkLogout();
virtual void resetColormap(bool active);
++++++ icewm-preferences.patch ++++++
--- /var/tmp/diff_new_pack.Lp4TY8/_old 2016-08-29 14:28:58.000000000 +0200
+++ /var/tmp/diff_new_pack.Lp4TY8/_new 2016-08-29 14:28:58.000000000 +0200
@@ -44,11 +44,11 @@
# Command to shutdown the system
-# ShutdownCommand="/bin/sh -c "{ test -e /run/systemd/system && systemctl poweroff; } ||:""
-+ShutdownCommand="/bin/sh -c "systemctl poweroff ||:""
++ShutdownCommand="/bin/sh -c 'systemctl poweroff ||:'"
# Command to reboot the system
-# RebootCommand="/bin/sh -c "{ test -e /run/systemd/system && systemctl reboot; } ||:""
-+RebootCommand="/bin/sh -c "systemctl reboot ||:""
++RebootCommand="/bin/sh -c 'systemctl reboot ||:'"
# Command to run on CPU status
# CPUStatusCommand="xterm -name top -title Process\ Status -e top"
1
0
Hello community,
here is the log from the commit of package java-1_5_0-gcj-compat for openSUSE:Factory checked in at 2016-08-29 14:28:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-1_5_0-gcj-compat (Old)
and /work/SRC/openSUSE:Factory/.java-1_5_0-gcj-compat.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_5_0-gcj-compat"
Changes:
--------
--- /work/SRC/openSUSE:Factory/java-1_5_0-gcj-compat/java-1_5_0-gcj-compat.changes 2015-06-23 11:54:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.java-1_5_0-gcj-compat.new/java-1_5_0-gcj-compat.changes 2016-08-29 14:28:45.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 24 08:36:37 UTC 2016 - tchvatal(a)suse.com
+
+- Add correct alternatives listing bnc#994284
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-1_5_0-gcj-compat.spec ++++++
--- /var/tmp/diff_new_pack.RXs6iU/_old 2016-08-29 14:28:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RXs6iU/_new 2016-08-29 14:28:48.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package java-1_5_0-gcj-compat
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -37,7 +37,7 @@
%define jvmdir %{_jvmdir}/%{sdklnk}%{gccbinsuffix}-%{version}
%define sdkjardir %{_jvmdir}/%{sdkdir}/lib
# 32-bit versus 64-bit specific provides:
-%ifarch %ix86 ppc s390
+%ifarch %{ix86} ppc s390
%define bits 32
%endif
%ifarch x86_64 ia64 s390x ppc64
@@ -57,6 +57,7 @@
Patch1: python_prefix.patch
#!BuildIgnore: antlr
BuildRequires: antlr-bootstrap
+BuildRequires: ca-certificates-mozilla
BuildRequires: gcc-gij
BuildRequires: gcc-java
BuildRequires: python-devel
@@ -118,12 +119,6 @@
Obsoletes: classpath-jta <= 0.95
Provides: jta
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-# bnc#447342
-%if 0%{?suse_version} >= 1230
-BuildRequires: ca-certificates-mozilla
-%else
-BuildRequires: openssl-certs
-%endif
%description
This package contains shell scripts and symbolic links to simulate a
@@ -177,7 +172,7 @@
make %{?_smp_mflags}
%install
-make DESTDIR=%{buildroot} install %{?_smp_mflags}
+make %{?_smp_mflags} DESTDIR=%{buildroot} install
install -dm 755 %{buildroot}%{_jvmdir}/%{cname}-%{version}/jre/lib
# make a link to ecj.jar in the lib dir:
ln -sf %{_javadir}/libgcj%{gccbinsuffix}.jar %{buildroot}%{_jvmdir}/%{cname}-%{version}/jre/lib/jdtcore.jar
@@ -215,6 +210,46 @@
install -d -m 0755 %{buildroot}/%{_jvmdir}/%{jredir}/lib/security/
install -m 0644 cacerts %{buildroot}/%{_jvmdir}/%{jredir}/lib/security/
+# alternatives regular
+mkdir -p %{buildroot}%{_sysconfdir}/alternatives/
+touch "%{buildroot}%{_sysconfdir}/alternatives/java"
+ln -sf %{_sysconfdir}/alternatives/java %{buildroot}%{_bindir}/java
+touch "%{buildroot}%{_sysconfdir}/alternatives/jre"
+ln -sf %{_sysconfdir}/alternatives/jre %{buildroot}%{_jvmdir}/jre
+touch "%{buildroot}%{_sysconfdir}/alternatives/jre_exports"
+ln -sf %{_sysconfdir}/alternatives/jre_exports %{buildroot}%{_jvmjardir}/jre
+touch "%{buildroot}%{_sysconfdir}/alternatives/rmiregistry"
+ln -sf %{_sysconfdir}/alternatives/rmiregistry %{buildroot}%{_bindir}/rmiregistry
+touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{origin}"
+ln -sf %{_sysconfdir}/alternatives/jre_%{origin} %{buildroot}%{_jvmdir}/jre-%{origin}
+touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{origin}_exports"
+ln -sf %{_sysconfdir}/alternatives/jre_%{origin}_exports %{buildroot}%{_jvmjardir}/jre-%{origin}
+touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{javaver}"
+ln -sf %{_sysconfdir}/alternatives/jre_%{javaver} %{buildroot}%{_jvmdir}/jre-%{javaver}
+touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{javaver}_exports"
+ln -sf %{_sysconfdir}/alternatives/jre_%{javaver}_exports %{buildroot}%{_jvmjardir}/jre-%{javaver}
+# alternatives devel
+touch "%{buildroot}%{_sysconfdir}/alternatives/javac"
+ln -sf %{_sysconfdir}/alternatives/javac %{buildroot}%{_bindir}/javac
+touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk"
+ln -sf %{_sysconfdir}/alternatives/java_sdk %{buildroot}%{_jvmdir}/java
+touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_exports"
+ln -sf %{_sysconfdir}/alternatives/java_sdk_exports %{buildroot}%{_jvmjardir}/java
+touch "%{buildroot}%{_sysconfdir}/alternatives/javah"
+ln -sf %{_sysconfdir}/alternatives/javah %{buildroot}%{_bindir}/javah
+touch "%{buildroot}%{_sysconfdir}/alternatives/jar"
+ln -sf %{_sysconfdir}/alternatives/jar %{buildroot}%{_bindir}/jar
+touch "%{buildroot}%{_sysconfdir}/alternatives/rmic"
+ln -sf %{_sysconfdir}/alternatives/rmic %{buildroot}%{_bindir}/rmic
+touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{origin}"
+ln -sf %{_sysconfdir}/alternatives/java_sdk_%{origin} %{buildroot}%{_jvmdir}/java-%{origin}
+touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{origin}_exports"
+ln -sf %{_sysconfdir}/alternatives/java_sdk_%{origin}_exports %{buildroot}%{_jvmjardir}/java-%{origin}
+touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{javaver}"
+ln -sf %{_sysconfdir}/alternatives/java_sdk_%{javaver} %{buildroot}%{_jvmdir}/java-%{javaver}
+touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{javaver}_exports"
+ln -sf %{_sysconfdir}/alternatives/java_sdk_%{javaver}_exports %{buildroot}%{_jvmjardir}/java-%{javaver}
+
%post
%{_sbindir}/update-alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
@@ -231,10 +266,6 @@
jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \
--slave %{_jvmjardir}/jre-%{javaver} \
jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk}
-# now the gcj related stuff is only done via triggerin
-#ln -sf \
-# %{_javadir}/libgcj-`gcj%{gccsuffix} --version | head -n 1 | awk '{ print $3 }'`.jar \
-# %{_jvmdir}/%{cname}-%{version}/jre/lib/rt.jar
# little work-around if no version-less link to libgcj-x.y.z.jar does not exist
if [ ! -e %{_javadir}/libgcj.jar ] && ls %{_javadir}/libgcj-[0-9]*.jar 2>/dev/null >&2
then
@@ -313,48 +344,58 @@
%{_sbindir}/update-alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdklnk}
%{_sbindir}/update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
fi
-## gcc-java requires libgcj and provides the gcj we run for the version
-## string
-## now the gcj related stuff is only done via triggerin
-##% triggerin -- gcc% {gccsuffix}-java > % {gccver}
-#
-#% triggerin -- gcc% {gccsuffix}-java >= % {gccver}
-#{
-# ln -sf \
-# % {_javadir}/libgcj-`gcj% {gccsuffix} --version | head -n 1 | awk '{ print $3 }'`.jar \
-# % {_jvmdir}/% {cname}-% {version}/jre/lib/rt.jar
-#} || :
-## now the gcj related stuff is only done via triggerin
-## gcc-java requires libgcj-devel which provides jni.h
-## this requirement is no PreReq (i.e. libgcj-devel may be installed after gcc-java
-## so that jni.h may be not yet installed when this triggerin script runs)
-## nevertheless the symbolic link can be created (even if it is only a broken link
-## until libgcj-devel becomes actually installed)
-##% triggerin devel -- gcc% {gccsuffix}-java > % {gccver}
-#
-#% triggerin devel -- gcc% {gccsuffix}-java >= % {gccver}
-#{
-# ln -sf \
-# `gcj% {gccsuffix} -print-file-name=include/jni.h` \
-# % {_jvmdir}/% {cname}-% {version}/include/jni.h
-#} || :
%files -f %{name}-%{version}.files
%defattr(-,root,root,-)
-%doc
+%ghost %{_sysconfdir}/alternatives/java
+%ghost %{_sysconfdir}/alternatives/jre
+%ghost %{_sysconfdir}/alternatives/jre_exports
+%ghost %{_sysconfdir}/alternatives/rmiregistry
+%ghost %{_sysconfdir}/alternatives/jre_%{origin}
+%ghost %{_sysconfdir}/alternatives/jre_%{origin}_exports
+%ghost %{_sysconfdir}/alternatives/jre_%{javaver}
+%ghost %{_sysconfdir}/alternatives/jre_%{javaver}_exports
+%{_bindir}/java
+%{_jvmdir}/jre
+%{_jvmjardir}/jre
+%{_bindir}/rmiregistry
+%{_jvmdir}/jre-%{origin}
+%{_jvmjardir}/jre-%{origin}
+%{_jvmdir}/jre-%{javaver}
+%{_jvmjardir}/jre-%{javaver}
%dir %{_jvmdir}
%dir %{_jvmdir}/%{sdkdir}
-#%{jvmjardir}/*.jar
-%{_bindir}/*
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/
%exclude %{_jvmjardir}/%{sdklnk}
%{jvmjardir}
%{_jvmdir}/%{jredir}/lib/security
+%{_bindir}/aot-compile
+%{_bindir}/aot-compile-rpm
+%{_bindir}/rebuild-gcj-db
%files devel -f %{name}-%{version}-sdk-bin.files
%defattr(-,root,root)
-%doc
+%ghost %{_sysconfdir}/alternatives/javac
+%ghost %{_sysconfdir}/alternatives/java_sdk
+%ghost %{_sysconfdir}/alternatives/java_sdk_exports
+%ghost %{_sysconfdir}/alternatives/javah
+%ghost %{_sysconfdir}/alternatives/jar
+%ghost %{_sysconfdir}/alternatives/rmic
+%ghost %{_sysconfdir}/alternatives/java_sdk_%{origin}
+%ghost %{_sysconfdir}/alternatives/java_sdk_%{origin}_exports
+%ghost %{_sysconfdir}/alternatives/java_sdk_%{javaver}
+%ghost %{_sysconfdir}/alternatives/java_sdk_%{javaver}_exports
+%{_bindir}/javac
+%{_jvmdir}/java
+%{_jvmjardir}/java
+%{_bindir}/javah
+%{_bindir}/jar
+%{_bindir}/rmic
+%{_jvmdir}/java-%{origin}
+%{_jvmjardir}/java-%{origin}
+%{_jvmdir}/java-%{javaver}
+%{_jvmjardir}/java-%{javaver}
%{_jvmdir}/%{sdkdir}/include
%{_jvmdir}/%{sdklnk}
%{_jvmjardir}/%{sdklnk}
1
0
Hello community,
here is the log from the commit of package usb_modeswitch for openSUSE:Factory checked in at 2016-08-29 14:28:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/usb_modeswitch (Old)
and /work/SRC/openSUSE:Factory/.usb_modeswitch.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "usb_modeswitch"
Changes:
--------
--- /work/SRC/openSUSE:Factory/usb_modeswitch/usb_modeswitch.changes 2016-08-06 20:37:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.usb_modeswitch.new/usb_modeswitch.changes 2016-08-29 14:28:21.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Aug 20 17:25:12 UTC 2016 - stefan.bruens(a)rwth-aachen.de
+
+- Install required usb_modeswitch@.service, fixes boo#994763
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ usb_modeswitch.spec ++++++
--- /var/tmp/diff_new_pack.9WEMk0/_old 2016-08-29 14:28:23.000000000 +0200
+++ /var/tmp/diff_new_pack.9WEMk0/_new 2016-08-29 14:28:23.000000000 +0200
@@ -66,17 +66,31 @@
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags} UDEVDIR=%{buildroot}%{_udevdir}
+install --mode=444 -D -t %{buildroot}%{_unitdir} usb_modeswitch@.service
cd %{source_name}-data-%{date}
make DESTDIR=%{buildroot} install %{?_smp_mflags} RULESDIR=%{buildroot}%{_udevdir}/rules.d
%fdupes -s %{buildroot}
+%pre
+%service_add_pre usb_modeswitch@.service
+
+%post
+%service_add_post usb_modeswitch@.service
+
+%preun
+%service_del_preun usb_modeswitch@.service
+
+%postun
+%service_del_postun usb_modeswitch@.service
+
%files
%defattr(-,root,root,-)
%doc README COPYING device_reference.txt
%{_sbindir}/usb_modeswitch
%{_sbindir}/usb_modeswitch_dispatcher
%{_udevdir}/usb_modeswitch
+%{_unitdir}/usb_modeswitch@.service
%{_localstatedir}/lib/usb_modeswitch
%config %{_sysconfdir}/usb_modeswitch.conf
%{_mandir}/man1/usb_modeswitch.1.gz
1
0
Hello community,
here is the log from the commit of package cantarell-fonts for openSUSE:Factory checked in at 2016-08-29 14:28:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cantarell-fonts (Old)
and /work/SRC/openSUSE:Factory/.cantarell-fonts.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cantarell-fonts"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cantarell-fonts/cantarell-fonts.changes 2016-06-09 15:56:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cantarell-fonts.new/cantarell-fonts.changes 2016-08-29 14:28:06.000000000 +0200
@@ -1,0 +2,13 @@
+Fri Aug 19 12:29:13 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 0.0.25:
+ + Outline and spacing on C,G.
+ + Improved terminals on numerous glyphs.
+ + Weight/stem width fixes (k,G).
+ + Port imrpovements from regular to bold.
+ + Improved metrics.
+ + Fixes to f-ligatures.
+ + Shape fixes to some numerals.
+ + Fixes to anchors > composited glyphs.
+
+-------------------------------------------------------------------
Old:
----
cantarell-fonts-0.0.24.tar.xz
New:
----
cantarell-fonts-0.0.25.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cantarell-fonts.spec ++++++
--- /var/tmp/diff_new_pack.Wc9Uf5/_old 2016-08-29 14:28:07.000000000 +0200
+++ /var/tmp/diff_new_pack.Wc9Uf5/_new 2016-08-29 14:28:07.000000000 +0200
@@ -17,7 +17,7 @@
Name: cantarell-fonts
-Version: 0.0.24
+Version: 0.0.25
Release: 0
Summary: Contemporary Humanist Sans Serif Font
License: OFL-1.1
++++++ cantarell-fonts-0.0.24.tar.xz -> cantarell-fonts-0.0.25.tar.xz ++++++
++++ 23562 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package pangomm for openSUSE:Factory checked in at 2016-08-29 14:27:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pangomm (Old)
and /work/SRC/openSUSE:Factory/.pangomm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pangomm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pangomm/pangomm.changes 2016-06-03 16:32:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pangomm.new/pangomm.changes 2016-08-29 14:27:51.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Aug 19 21:39:28 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 2.40.1:
+ + C++11: Make all operator bool()s explicit.
+ + Build: Fix silent builds (bgo#768797).
+
+-------------------------------------------------------------------
Old:
----
pangomm-2.40.0.tar.xz
New:
----
pangomm-2.40.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pangomm.spec ++++++
--- /var/tmp/diff_new_pack.dUPlJm/_old 2016-08-29 14:27:52.000000000 +0200
+++ /var/tmp/diff_new_pack.dUPlJm/_new 2016-08-29 14:27:52.000000000 +0200
@@ -20,7 +20,7 @@
%define so_ver -1_4-1
Name: pangomm
-Version: 2.40.0
+Version: 2.40.1
Release: 0
Summary: C++ interface for pango
License: GPL-2.0+ and LGPL-2.0+
++++++ pangomm-2.40.0.tar.xz -> pangomm-2.40.1.tar.xz ++++++
++++ 31365 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libgsf for openSUSE:Factory checked in at 2016-08-29 14:27:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgsf (Old)
and /work/SRC/openSUSE:Factory/.libgsf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgsf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgsf/libgsf.changes 2016-07-01 09:54:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libgsf.new/libgsf.changes 2016-08-29 14:27:39.000000000 +0200
@@ -1,0 +2,8 @@
+Sat Aug 20 20:20:00 UTC 2016 - zaitor(a)opensuse.org
+
+- Updated to version 1.14.40:
+ + Avoid gnome-common dependency.
+- Conditionally apply translations-update-upstream BuildRequires
+ and macro for non-openSUSE only.
+
+-------------------------------------------------------------------
Old:
----
libgsf-1.14.39.tar.xz
New:
----
libgsf-1.14.40.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgsf.spec ++++++
--- /var/tmp/diff_new_pack.5Pqh1w/_old 2016-08-29 14:27:40.000000000 +0200
+++ /var/tmp/diff_new_pack.5Pqh1w/_new 2016-08-29 14:27:40.000000000 +0200
@@ -17,7 +17,7 @@
Name: libgsf
-Version: 1.14.39
+Version: 1.14.40
Release: 0
Summary: Extensible I/O abstraction library for dealing with structured file formats
License: GPL-2.0+ and LGPL-2.1+
@@ -28,7 +28,9 @@
BuildRequires: intltool
BuildRequires: libbz2-devel
BuildRequires: pkg-config
+%if !0%{?is_opensuse}
BuildRequires: translation-update-upstream
+%endif
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(gio-2.0) >= 2.26.0
@@ -111,7 +113,9 @@
%lang_package
%prep
%setup -q
+%if !0%{?is_opensuse}
translation-update-upstream
+%endif
%build
%configure --with-pic \
++++++ libgsf-1.14.39.tar.xz -> libgsf-1.14.40.tar.xz ++++++
++++ 39549 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gtk-vnc for openSUSE:Factory checked in at 2016-08-29 14:27:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk-vnc (Old)
and /work/SRC/openSUSE:Factory/.gtk-vnc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk-vnc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk-vnc/gtk-vnc.changes 2016-08-03 11:41:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gtk-vnc.new/gtk-vnc.changes 2016-08-29 14:27:23.000000000 +0200
@@ -1,0 +2,28 @@
+Thu Aug 18 17:43:07 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 0.6.0:
+ + Important changes:
+ - Default to build with GTK-3, use --with-gtk=2.0 to override.
+ + New features:
+ - Add --with-tls-priority configure flag to set default TLS
+ priority string.
+ - Add a 'vnc-error' signal to report reason for disconnect.
+ - Add support for fallback to GNUTLS system trust DB.
+ + Bug fixes:
+ - Fix crash on Windows with GTK3 checking realized state.
+ - Fix XKB detection of keyboard mapping with Xwayland.
+ - Switch back to XKB detection for Xwayland.
+ - Remove duplicate cert expiry check.
+ - Avoid misc compile warnings.
+ - Add missing API docs + GObject introspection annotations.
+ - Add missing GIO dep on gvnc library GObject introspection
+ build.
+ - Remove unused code.
+ - Fix redraw on Win10.
+ - Drop support for gnutls < 2.2.0.
+ - Fix path to h2def script.
+ - Update compiler warning detection to fix clang build.
+ - Ignore cast align warnings to fix clang build.
+ - Fix endianess inversion when setting pixel format.
+
+-------------------------------------------------------------------
gtk-vnc2.changes: same change
Old:
----
gtk-vnc-0.5.4.tar.xz
New:
----
gtk-vnc-0.6.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gtk-vnc.spec ++++++
--- /var/tmp/diff_new_pack.fgWhDy/_old 2016-08-29 14:27:27.000000000 +0200
+++ /var/tmp/diff_new_pack.fgWhDy/_new 2016-08-29 14:27:27.000000000 +0200
@@ -34,9 +34,9 @@
License: LGPL-2.1+
Group: Development/Libraries/X11
# FIXME: see if the browser plugin can be built (last try 0.4.2)
-Version: 0.5.4
+Version: 0.6.0
Release: 0
-Source: http://download.gnome.org/sources/gtk-vnc/0.5/%{_name}-%{version}.tar.xz
+Source: http://download.gnome.org/sources/gtk-vnc/0.6/%{_name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://gtk-vnc.sf.net/
BuildRequires: cyrus-sasl-devel
++++++ gtk-vnc2.spec ++++++
--- /var/tmp/diff_new_pack.fgWhDy/_old 2016-08-29 14:27:27.000000000 +0200
+++ /var/tmp/diff_new_pack.fgWhDy/_new 2016-08-29 14:27:27.000000000 +0200
@@ -34,9 +34,9 @@
License: LGPL-2.1+
Group: Development/Libraries/X11
# FIXME: see if the browser plugin can be built (last try 0.4.2)
-Version: 0.5.4
+Version: 0.6.0
Release: 0
-Source: http://download.gnome.org/sources/gtk-vnc/0.5/%{_name}-%{version}.tar.xz
+Source: http://download.gnome.org/sources/gtk-vnc/0.6/%{_name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://gtk-vnc.sf.net/
BuildRequires: cyrus-sasl-devel
++++++ gtk-vnc-0.5.4.tar.xz -> gtk-vnc-0.6.0.tar.xz ++++++
++++ 28384 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnome-settings-daemon for openSUSE:Factory checked in at 2016-08-29 14:27:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-settings-daemon (Old)
and /work/SRC/openSUSE:Factory/.gnome-settings-daemon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-settings-daemon"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-settings-daemon/gnome-settings-daemon.changes 2016-08-17 12:02:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-settings-daemon.new/gnome-settings-daemon.changes 2016-08-29 14:27:08.000000000 +0200
@@ -1,0 +2,8 @@
+Fri Aug 10 02:24:44 UTC 2016 - sckang(a)suse.com
+
+- Add gnome-settings-daemon-bring-back-updates-plugin.patch:
+ Revert upstream commits fc22a8100fa40533fddfb4338160a20188e46c6b
+ and e3e961c52419df5f2544b24957e71cf3a4c5ef85 to bring back the
+ updates plugin.(bsc#991024)
+
+-------------------------------------------------------------------
@@ -103,7 +110,0 @@
-Fri Mar 18 17:53:18 UTC 2016 - fezhang(a)suse.com
-
-- Add gnome-settings-daemon-bnc873545-hide-warnings.patch: Hide the
- warnings when failed to find a colord instance on SLES
- (bnc873545).
-
--------------------------------------------------------------------
@@ -681,4 +682,3 @@
-- Disable colord warnings in /var/log/messages (bnc#873545)
-
-- added patch:
- * gnome-settings-daemon-bnc873545-hide-warnings.patch
+- Add gnome-settings-daemon-bnc873545-hide-warnings.patch:
+ Hide the warnings when failed to find a colord instance
+ (bnc873545).
@@ -709,3 +708,0 @@
-- Update gnome-settings-daemon-upower-backport.patch; no longer
- try to listen to device-changed signal (bnc#873759).
-
@@ -725 +721,0 @@
-
@@ -727 +722,0 @@
-
@@ -741 +735,0 @@
-
@@ -744,7 +738,6 @@
- to apply this patch, for these
- tools use "--no-backup-if-mismatch" flag for "patch" and thus
- Patch 19 would not create a backup file. "rpmbuild" don't use
- this "--no-backup-if-mismatch" flag and thus didn't catch this
- error (maybe this is a good time to think whether this flag
- should be included.)
-
+ to apply this patch, for these tools use
+ "--no-backup-if-mismatch" flag for "patch" and thus Patch 19
+ would not create a backup file. "rpmbuild" don't use this
+ "--no-backup-if-mismatch" flag and thus didn't catch this error
+ (maybe this is a good time to think whether this flag should be
+ included.)
@@ -793 +785,0 @@
-
@@ -885,0 +878 @@
+-------------------------------------------------------------------
@@ -895,2 +888,3 @@
-- Add gnome-settings-daemon-upower-backport.patch: support UPower
- version 0.99.
+- Add gnome-settings-daemon-upower-backport.patch -- from upstream;
+ support upower 0.99.
+- Up upower-glib dependency.
New:
----
gnome-settings-daemon-bring-back-updates-plugin.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-settings-daemon.spec ++++++
--- /var/tmp/diff_new_pack.KD6aXX/_old 2016-08-29 14:27:11.000000000 +0200
+++ /var/tmp/diff_new_pack.KD6aXX/_new 2016-08-29 14:27:11.000000000 +0200
@@ -47,6 +47,8 @@
Patch24: sle-configure-timeout-blank.patch
# PATCH-FIX-SLE gnome-settings-daemon-initial-keyboard.patch bsc#979051 federico(a)suse.com -- Deal with the default keyboard being set from xkb instead of GNOME
Patch29: gnome-settings-daemon-initial-keyboard.patch
+# PATCH-FIX-OPENSUSE gnome-settings-daemon-bring-back-updates-plugin.patch bsc#991024 sckang(a)suse.com -- Add the updates plugin back
+Patch31: gnome-settings-daemon-bring-back-updates-plugin.patch
BuildRequires: cups-devel
BuildRequires: fdupes
BuildRequires: gnome-common
@@ -80,6 +82,9 @@
BuildRequires: pkgconfig(libpulse) >= 2.0
BuildRequires: pkgconfig(libpulse-mainloop-glib) >= 2.0
BuildRequires: pkgconfig(librsvg-2.0) >= 2.36.2
+%if 0%{?suse_version} == 1315
+BuildRequires: pkgconfig(packagekit-glib2)
+%endif
%if %{with wacom}
BuildRequires: pkgconfig(libwacom) >= 0.7
BuildRequires: pkgconfig(xorg-wacom)
@@ -146,9 +151,12 @@
%patch20 -p1
%patch21 -p1
%patch22 -p1
-%patch24
+%patch24 -p0
%patch29 -p1
%endif
+%if 0%{?suse_version} == 1315
+%patch31 -p1
+%endif
%build
%if !0%{?is_opensuse}
@@ -225,6 +233,9 @@
%{_libdir}/gnome-settings-daemon-3.0/libsmartcard.so
%endif
%{_libdir}/gnome-settings-daemon-3.0/libsound.so
+%if 0%{?suse_version} == 1315
+%{_libdir}/gnome-settings-daemon-3.0/libupdates.so
+%endif
%{_libdir}/gnome-settings-daemon-3.0/libxrandr.so
%{_libdir}/gnome-settings-daemon-3.0/libxsettings.so
%{_sysconfdir}/xdg/autostart/gnome-settings-daemon.desktop
@@ -243,6 +254,9 @@
# From patch2
#%%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.proxy.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.sharing.gschema.xml
+%if 0%{?suse_version} == 1315
+%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.xml
+%endif
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.xrandr.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.xsettings.gschema.xml
%{_datadir}/icons/hicolor/*/apps/gsd-xrandr.*
++++++ gnome-settings-daemon-bring-back-updates-plugin.patch ++++++
++++ 4561 lines (skipped)
1
0
Hello community,
here is the log from the commit of package lsof for openSUSE:Factory checked in at 2016-08-29 14:26:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lsof (Old)
and /work/SRC/openSUSE:Factory/.lsof.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lsof"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lsof/lsof.changes 2016-05-19 12:03:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.lsof.new/lsof.changes 2016-08-29 14:26:34.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Aug 26 12:33:49 UTC 2016 - kstreitova(a)suse.com
+
+- add lsof_4.89-nfs_hanging.patch to prevent 'lsof -b' from hanging
+ when NFS server is unavailable [bsc#995061]
+
+-------------------------------------------------------------------
New:
----
lsof_4.89-nfs_hanging.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lsof.spec ++++++
--- /var/tmp/diff_new_pack.hEZBBx/_old 2016-08-29 14:26:36.000000000 +0200
+++ /var/tmp/diff_new_pack.hEZBBx/_new 2016-08-29 14:26:36.000000000 +0200
@@ -30,6 +30,8 @@
Patch1: lsof_4.81-fmt.patch
Patch2: lsof-no-build-date-etc.patch
Patch3: lsof_4.81-perl.patch
+# PATCH-FIX-UPSTREAM bnc#995061 kstreitova(a)suse.com -- prevent 'lsof -b' from hanging when NFS server is unavailable
+Patch4: lsof_4.89-nfs_hanging.patch
BuildRequires: libselinux-devel
BuildRequires: xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -48,6 +50,7 @@
%patch1
%patch2
%patch3
+%patch4 -p1
%build
./Configure -n linux
++++++ lsof_4.89-nfs_hanging.patch ++++++
Index: lsof_4.89_src/dialects/linux/dmnt.c
===================================================================
--- lsof_4.89_src.orig/dialects/linux/dmnt.c
+++ lsof_4.89_src/dialects/linux/dmnt.c
@@ -535,6 +535,9 @@ readmnt()
if ((nfs = strcasecmp(fp[2], "nfs3")))
nfs = strcasecmp(fp[2], "nfs4");
}
+ if (! nfs)
+ HasNFS = 1;
+
if (mp) {
/*
1
0
Hello community,
here is the log from the commit of package sssd for openSUSE:Factory checked in at 2016-08-29 14:26:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sssd (Old)
and /work/SRC/openSUSE:Factory/.sssd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sssd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sssd/sssd.changes 2016-07-21 07:54:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.sssd.new/sssd.changes 2016-08-29 14:26:22.000000000 +0200
@@ -1,0 +2,44 @@
+Fri Aug 19 18:38:35 UTC 2016 - michael(a)stroeder.com
+
+- Update to new upstream release 1.14.1
+ * The IPA provider now supports logins with enterprise principals (also
+ known as additional UPN suffixes). This functionality also enabled Active
+ Directory users from trusted AD domains who use an additional UPN suffix
+ to log in. Please note that this feature requires a recent IPA server.
+ * When a user name is overriden in an IPA domain, resolving a group these
+ users are a member of now returns the overriden user names
+ * Users can be looked up by and log in with their e-mail address as an
+ identifier. In order to do so, an attribute that represents the user's
+ e-mail address is fetched by default. This attribute can by customized
+ by setting the ldap_user_email configuration option.
+ * A new ad_enabled_domains option was added. This option lets the
+ administrator select domains that SSSD should attempt to reach in the
+ AD forest SSSD is joined to. This option is useful for deployments where
+ not all domains are reachable on the network level, yet the administrator
+ needs to access some trusted domains and therefore disabling the subdomains
+ provider completely is not desirable.
+ * The sssctl tool has two new commands active-server and servers that
+ allow the administrator to observe the server that SSSD is bound to and
+ the servers that SSSD autodiscovered
+ * SSSD used to fail to start when an attribute name is present in both
+ the default SSSD attribute map and the custom ldap_user_extra_attrs map
+ * GPO policy procesing no longer fails if the gPCMachineExtensionNames
+ attribute only contains whitespaces
+ * Several commits fix regressions related to switching all user and group
+ names to fully qualified format, such as running initgroups for a user
+ who is only a member of a primary group
+ * Several patches fix regressions caused by splitting the database into
+ two ldb files, such as when user attributes change without increasing
+ the modifyTimestamp attribute value
+ * systemd unit files are now shipped for the sssd-secrets responder,
+ allowing the responder to be socket-activated. To do so, administrators
+ should enable the sssd-secrets.socket and sssd-secrets.service systemd
+ units.
+ * The sssd binary has a new switch --disable-netlink that lets sssd skip
+ messages from the kernel's netlink interface.
+ * A crash when entries with special characters such as '(' were requested
+ was fixed
+ * The ldap_rfc_2307_fallback_to_local_users option was broken in the
+ previous version. This release fixes the functionality.
+
+-------------------------------------------------------------------
Old:
----
sssd-1.14.0.tar.gz
sssd-1.14.0.tar.gz.asc
New:
----
sssd-1.14.1.tar.gz
sssd-1.14.1.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sssd.spec ++++++
--- /var/tmp/diff_new_pack.u2M416/_old 2016-08-29 14:26:23.000000000 +0200
+++ /var/tmp/diff_new_pack.u2M416/_new 2016-08-29 14:26:23.000000000 +0200
@@ -17,7 +17,7 @@
Name: sssd
-Version: 1.14.0
+Version: 1.14.1
Release: 0
Summary: System Security Services Daemon
License: GPL-3.0+ and LGPL-3.0+
++++++ sssd-1.14.0.tar.gz -> sssd-1.14.1.tar.gz ++++++
++++ 120481 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gpsd for openSUSE:Factory checked in at 2016-08-29 14:26:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpsd (Old)
and /work/SRC/openSUSE:Factory/.gpsd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpsd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gpsd/gpsd.changes 2016-08-18 09:15:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gpsd.new/gpsd.changes 2016-08-29 14:26:06.000000000 +0200
@@ -1,0 +2,28 @@
+Fri Aug 26 12:17:03 UTC 2016 - mardnh(a)gmx.de
+
+- Update gpsd.keyring (old key 8421F11C got superseeded by 8C6C738D)
+- Added "-std=gnu++98" to the compile-flags otherwise compilation will break
+ on systems with >= gcc6
+- ifdef "Requires: pps-tools-devel" since it's only available on recent
+ os-versions
+- Update to version 3.16
+ * Test rebuilds for mid-2015 leapsecond bump.
+ * Regression tests will run even if "python" in Python 3.
+ * Build correctly on systems where -ltinfo is split from -lncurses.
+ * Avoid some rare overflow conditions in PPS code.
+ * Fix bugs in JSON sat-view parsing due to the JSON parser stuffing
+ ints into shorts.
+ * Various small fixes to AIS interpretation.
+ * Prevent a memory leak in long-running gpsmon instances.
+ * Fix Savannah bug #45270: serial driver does not work properly on pipes.
+ * Fix Savannah bug #44648: GPSD won't build if CCFLAGS contains options
+ that are only compatible with the cros1s-compiler.
+ * Fix Savannah bug #45342: SConstruct generates wrong *.pc files.
+ * Fix Savannah bug #46495: gpsd_poll may crash due to unitialized pointer
+ (probably due to buggy FD_ISSET on host system).
+ * Fix Savannah bug #46648: gpsd crashes and buffer overflow is reported
+ when terminated.
+ * Fix Savannah bug #46802: AIVDM to CSV is broken in some weird cases.
+ * Fix Savannah bug #46804: JSON satellite view parsing is somewhat broken.
+
+-------------------------------------------------------------------
@@ -141 +169 @@
-
+1
Old:
----
gpsd-3.15.tar.gz
gpsd-3.15.tar.gz.sig
New:
----
gpsd-3.16.tar.gz
gpsd-3.16.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gpsd.spec ++++++
--- /var/tmp/diff_new_pack.jwQuRC/_old 2016-08-29 14:26:07.000000000 +0200
+++ /var/tmp/diff_new_pack.jwQuRC/_new 2016-08-29 14:26:07.000000000 +0200
@@ -20,7 +20,7 @@
%define libQgps libQgpsmm22
%define _udevdir %(pkg-config --variable udevdir udev)
Name: gpsd
-Version: 3.15
+Version: 3.16
Release: 0
Summary: Service daemon for mediating access to a GPS
License: BSD-3-Clause
@@ -45,7 +45,9 @@
BuildRequires: libqt4-devel >= 4.5.3
BuildRequires: libusb-1_0-devel
BuildRequires: ncurses-devel
+%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200
BuildRequires: pps-tools-devel
+%endif
BuildRequires: python-devel
BuildRequires: scons >= 2.0.1
BuildRequires: update-desktop-files
@@ -146,13 +148,13 @@
sed -i 's|env.Prepend.*RPATH.*|pass #\0|' SConstruct
%build
-export CFLAGS="%{optflags} -fvisibility-inlines-hidden"
-export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden"
+export CFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
+export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
scons prefix=%{_prefix} libdir=%{_libdir} strip=False
%install
-export CFLAGS="%{optflags} -fvisibility-inlines-hidden"
-export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden"
+export CFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
+export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
DESTDIR=%{buildroot} scons prefix=%{_prefix} libdir=%{_libdir} strip=False install
install -d -m 755 %{buildroot}%{_udevdir}
install -d -m 755 %{buildroot}%{_udevdir}/rules.d
++++++ gpsd-3.15.tar.gz -> gpsd-3.16.tar.gz ++++++
/work/SRC/openSUSE:Factory/gpsd/gpsd-3.15.tar.gz /work/SRC/openSUSE:Factory/.gpsd.new/gpsd-3.16.tar.gz differ: char 5, line 1
++++++ gpsd.keyring ++++++
--- /var/tmp/diff_new_pack.jwQuRC/_old 2016-08-29 14:26:08.000000000 +0200
+++ /var/tmp/diff_new_pack.jwQuRC/_new 2016-08-29 14:26:08.000000000 +0200
@@ -1,299 +1,77 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
-mQGiBDQ3/EsRBADCqXcufnvTFebaLFr2ZVr52JuakrIlu+oJISHBXzVr8hbEtdrw
-6hVoD/q6E4uFFYISAuxlPCQV1eyACx/gowjaO38kKT20u9xCfYBKYGwk8/ogkgPn
-rTHMgcPWErWYY4YZWLp7jFdCXqxa2yy6RFRqoJ1Ufucbu10NJOmNwEkXZwCg//JR
-ByKNQRL96lnB0xj4Y3BFJccD/RR4eXRCz/b/GDcu+Lqw9ygUqNK/QzDYEtp9xWdU
-2h7nPLvb7LibpiL0OPz8sozOAEo9FQ/aOrGFPxbmn3L+WDPyh0kaH54LNqH0nhyH
-wbXZx8GJPax7Dqj2789RDyoh2gbrCailDb5eugv+S7G02rUdOPbNbArxaRoTg+4A
-sZ3dBAClqLw9w6MvaKE9CEpMLPdzDiDl3Nit1aX05fsup7CSq/7Te5FShgwt3VJB
-L864MdvAw7/qFOFj0FXNoh5oWnYXtV0YJywi/oDBWSbI2Dj6oBcY/4vt80RHdKbd
-6hvCZHQj9qtPklsvVFtwe4dt17fqLCVPkSiTWx9E/4jo8Lxo4rQhRXJpYyBTLiBS
-YXltb25kIDxlc3JAdGh5cnN1cy5jb20+iD8DBRA17hHhjmvEe/+RidQRAocLAKDq
-AVMIwKGZA3p09nrzTEZjf/piMACeLVlxAq/f/Oaxs0QYCSdMSe0j9lWIPwMFEDZP
-mX8wY0LC+HdNiBECEtYAnjknIUxOAf86OIHE6gkQIq2GMoaqAJ0TZ9Ol3b4WiMsO
-X18cUahhEdFrxog/AwUQNnV28WSqZf2xzAOqEQLNSgCgystrDSU2rNHqkwaGc4na
-tdWY+/MAoL8DWDkew6mD9vUSVXfiYPdoW9+FiD8DBRA25fWEu8ZFlp7dsx8RAt/K
-AJ99yGdlh9LM0oBhuBzbgIr2GK6k5wCbBio1hXHxdRgqrzRdYIPIfc6APseIPwMF
-EDcgSHLQ5s+CUYfMuxECKOkAn1fasPYTgSaTqb4z2LnMGCrzs3nHAJ9mOAYNtlzY
-/9qY3nL6EJOKnKtAhIhGBBARAgAGBQI1oqrdAAoJELN5xKXkPF/D4fgAoKbcdn2g
-9B/8MuHzC5Ayv/578SaMAKD8XRx8qnj5YIVwdb0Fk1FPTysGaYhGBBARAgAGBQI1
-3bQ2AAoJEI2fKGN98YScPxcAoIE486ZIcBbz0y8XxBNtKcOSWyWKAKDtv0/uysU+
-p8nI3AoFmqA2BgEO9IhGBBARAgAGBQI2Eo94AAoJEFhNdDIP0UrN7uUAniJRvaOh
-gZU7aK3+aZGF+R85ztM0AJ4xwqzpnkhAtQVtxnRG5o7uWAhOfIhGBBARAgAGBQI2
-hr+kAAoJEFRWwXAIfNFRMcMAoMwVzpRUepM0TNzceh7YCD+/CQw4AJ0f5R2PpMXr
-fk2gZnZe7x9LfbK/AIhGBBARAgAGBQI25Y9FAAoJELCfKxy1r1hnK7YAnj5Ug0J2
-ziMlDkxbwmCzY8X0GjqzAJoDW456/URRDGYXzEaQ2xkkaHNA0YhGBBARAgAGBQI3
-k4gOAAoJEIj2+pWktZEoauMAnR/0cwSds4s/UPe4exLEAB03ONX2AKCJE/jmukc0
-/Skhd3JVUQAKhk/3NohGBBARAgAGBQI3m4UlAAoJEKu4Ttsz/L1iJ4sAn06e2F1g
-fy6ekjaEKVt4Q5cAqT7sAJ9He+xpjPLfiERndsNXUH9rcjDuYIhGBBARAgAGBQI3
-upvtAAoJEDL1HqjkoBGfnKAAoNnqJbFY4LFfuDhCeFoaNvMw0Gf8AKDdmMW09NkN
-08KcTnEBev8Q4LJDmohGBBARAgAGBQI3wEdTAAoJEFooW1laRIBsf98An31NdAfC
-b2ky9N/xxG3pdsoPwkKBAKCd/2UDb1pr0wmN6YYvkqWvQ0A8qohGBBARAgAGBQI3
-5a0WAAoJEBTmPezhaTrN2esAoN0PWVm3zs5o8Ahh3cd+utvrenvTAKCitNBrc/Xo
-QJWkaRHauDwYqSoNC4hGBBARAgAGBQI4C0S7AAoJEHFn7yBQSNPBBw8AoPrPgkGR
-Ug8WrS+EcjMAx7CBIARkAKClkqruBNPxyDXcKr9VZjCFE6K+NIhGBBARAgAGBQI4
-a7eyAAoJECPWGFTyF9pp6p0AoL1yw12A0k8hhZwSxg5n5Hm1dm66AKDlVRuaHPu3
-JoKIYBUDuVnykNlW4ohGBBARAgAGBQI4fVsPAAoJEMcs/GnrGjZiEVMAoLz2JEMc
-TSC4pgd62SZkKi3jtyeKAKC34ri1+IrfDMHRssQfegO8qiOgIIhGBBARAgAGBQI4
-xETbAAoJEP0FnM2p7FXr3gAAnibDPIlCazni+LA3cnJBpaoaKlxSAKCUIDUqG2Ys
-U08J+wMnsv3wXUGdF4hGBBARAgAGBQI5KktYAAoJENyserlqzaVTCFQAoLSYHweO
-AJ2OLfQZ0UmDVupAhyfuAJ4uxBvRniMChnePO3WESS3lbOJMZ4hGBBARAgAGBQI5
-ORrhAAoJEDkHB5JBmLb1ALsAn2Pbo+WN29gfBzdRmPndh9tA/BrgAKDRIkKU9MzC
-p21ZRpWuYk7a2WhxfohGBBARAgAGBQI5mV57AAoJEAzOq7QeAsYrD8cAoKZnpg6m
-KaqUUgpm1qRpSFRK5ojgAKDhX7ZbpRy30s03o/gE0Hnsv0VYuYhGBBARAgAGBQI5
-xkdEAAoJEPUxs3vO1ibAatQAoK2RR7M2AOQDQ/6/X8in/Us9N1IpAJ9o8+jI5yAM
-z25usEJObqfH5mjEA4hGBBARAgAGBQI6QAz7AAoJEJc4Oi+alDLPsIMAn35qnEze
-RVHp14MVl9NXSI0Elel6AKCkl9p7Nq+o/94ZOWtWLcnCINHSbohGBBARAgAGBQI6
-fG6wAAoJEJ7fge5GzXZ0aM0AoMYrMdDvMU2ZCTcr7xnx90NGwyEqAJ9Zbx0gTkPw
-CqgEMMbZS3feiSZP04hGBBARAgAGBQI7L1wQAAoJEFWW3Qzpv2U9C00AnA3CxaFJ
-qTlyrKGG9rT9m2B6DHwoAJwLucuCqDMI3/RTfoq0yW/iBtTuhIhGBBARAgAGBQI7
-L2hrAAoJEOPXfh+VFhmRqboAnROe2AK96tUAaTiC6ogNNChDKwKmAJ0Zyhf3Pjx6
-cKCMv9nNDd9XR3A6PYhGBBARAgAGBQI7QW2DAAoJEKu76T0uLatEWGsAoIYxtp/w
-uQn2L4kXO8wn23NKaX+/AKCFAGpLO8xMvCu5gph5PgWBobu68YhGBBARAgAGBQI7
-RzF/AAoJEBbfJd1x2vZl99AAn14BSYX9XghcUrdxlg6B9WRWvHjpAJ96DqGjHyja
-qNnWGO9Ca0xom20Ft4hGBBARAgAGBQI7SZMFAAoJEO773Tof4oHrwZoAnA/jdK7t
-qgB44OFC6UUF6Yh0e2txAJ4h28k7qZ2iZZ/XNi3on015ZkNCaIhGBBARAgAGBQI7
-VtBPAAoJEBT9Swfxrmu8ADkAn1lG82zTiPzybrECOPvXkHGBQ0MmAJ9SRJKJqwMq
-BcwDXi3B6ugzKGiiVYhGBBARAgAGBQI7W2wDAAoJELTXEKIORR99g5kAoIeMeDTi
-gM2YEEWZbQlTtWTkCVepAJ9XGxBgnVFvXf7jq0B9gD7WUxsjnIhGBBARAgAGBQI7
-boTeAAoJENWfbVhqzcQ/DJ0AoLeNbQ1OJTEATu9JhB6wfsax5z2uAJwNtHKnfuRN
-iJulAnCrTCcR2bIYkYhGBBARAgAGBQI7c/b6AAoJEOd14yTbQbOH8P0An31SvnQr
-HackfvulVFVzlekLI/ANAJ44FeyAzeU4h9tAz3u3C44uDW7CfohGBBARAgAGBQI7
-geb4AAoJEEQ0VrKnu+CcFwoAoPDwli1pJ2/M0r4uOLLURQt4sQwnAKDLMvQxR2RU
-Qm3N7rBzAYniAkV7uohGBBARAgAGBQI7vnS1AAoJED/OKBDjNrEGN0wAniWyQuqn
-HaVe5AevJK0W5f1KZswZAJ9p8RnRZVVMHAWz6xUvl2azs9aruIhGBBARAgAGBQI7
-yd75AAoJEGd3mYxdPGM6u3UAoKddQzQir1/5YFzMsAjCczgLAjCrAJ9+W2aUq1A1
-WcdF3LfTqz0Fz1cGeohGBBARAgAGBQI78BezAAoJEJ14HC2hHUs2sS0An0VxpSZJ
-C/SEYfQPfL7Dhk2tWw+TAJ48Rz+2ZykgqbNPFuuoh4uur/BHyohGBBARAgAGBQI7
-8YukAAoJELtKDTxHrcN8xoIAn0MfdRBQM5UQ6PbdoL31NtEt7y97AJ9DJPm8WzWI
-ae2A0kNopKz9H1oMzohGBBARAgAGBQI8OQMQAAoJEC27dr+t1MkzdiUAn30Xc2t0
-hgPSWnIm6FZt9Wz3AsxSAKC00yryKdd2QCAbwTvrH8nib1c2sYhGBBARAgAGBQI8
-SI+rAAoJECopZefBlHJhazoAmQHpS2ghB2/8ws8ENN6mdLadzMLFAJ44Yv1LN3+7
-jA+abq70OdUV4AyLtIhGBBARAgAGBQI8o85wAAoJELMRGAOvnE61+5kAoLN6Z2zI
-oKLodb/7NB3I1Hihk5NqAJ4kaXaTUQtzYkRsgmAJ/9VDmWNScYhGBBARAgAGBQI8
-83MwAAoJEHyu5vnGVXWN8K8AoKahVMKmTJ14awVKMr36Bz2Pz0cJAJ4tMvKnn1nc
-wcsMh5CSHWLWtJ/xfIhGBBARAgAGBQI9EVCKAAoJEDnbxBYevwxCr64AniSRaPPv
-yfYsjcP/3sUeiGDzCVYOAKCtDdvKTIukTItx7Ksgnwhu3sRgz4hGBBARAgAGBQI9
-VTikAAoJEOj6GxFCl1r3jIAAoNdzBm9cbeSCNRf38UZYZzM+SC+jAJ490b6zGhAF
-MpYFJX7dUYZwyV54rIhGBBARAgAGBQI9hq3PAAoJEO0qNHVZ16k6syQAnRomosfZ
-52Zxe0sKygC+UmvMni+UAJ9R5QmjODAvfHTHbcP3CzUFyXbdZohGBBARAgAGBQI+
-XOYqAAoJEOdbp2VnbwzKBEIAn2Q8V/9NVBzwRNetI19DxgPZkoF/AJ49GRqe/hPv
-PDPzX5CTRBXgnTmMtIhGBBARAgAGBQI/EwFLAAoJEKpG2YZNi7Se2JQAn0De5f6U
-rCiLHjeHv4bJMh5pDkkGAKCSfQ31H2LpzS49V6xqmvxT2xti/IhGBBARAgAGBQI/
-7uxkAAoJELszJSPznGA6kYAAoKm6jXsxl5i8nfjzU1FIO67z0/WfAJ9/M3O/FkVR
-y5/y+t6N+s5iN0AqnohGBBARAgAGBQJAg+IuAAoJELfqRmh+VoydkXgAn0sxPuUY
-uMImG9zUEupt9LVldA0nAKCm7b2Jddsas8luDOcFjiRestWoG4hGBBARAgAGBQJA
-uT6OAAoJEFppWR2+QaUgNF4AnRCmIZGq4Ylb5VUhHmhEU/+ZqhTWAJ4nhlND8y8N
-GDirjga/JKghofpn1ohGBBARAgAGBQJAyQXuAAoJEH6ll4UgLT4vhtQAoI3Oq62F
-xIscPcuNBhV/XdCm7z7pAJ4/UohmWYyF7qrFS8B7h7wNmNmGe4hGBBARAgAGBQJE
-Rjq2AAoJEATEWn2nvII2g3wAn3FkX3/PeYoGMfmqfK412dnSLmmDAJ0Q1xV1EFce
-uSnbUuC2XDYf2aq3TYhGBBARAgAGBQJE9hHpAAoJEF0kKXv8HO/BTuwAnidO8Vl8
-PIDcEUBQ7UmSTmvEjy0eAJ9HIkcnhXuUcSvGZ+knCkRGbU3rTYhGBBARAgAGBQJE
-95dcAAoJEO2NpiDXWPPv0IYAn35KE4QC4xGxDPp/cuOgWyKXgeUYAJ0YmV2y4OS3
-Pc0evCZHPsI82BNVN4hGBBARAgAGBQJGHrDSAAoJED71PvAKZllyiF4AnR10sh4B
-DTpafQiqSZrOzSR4LdniAJ0S+tcQ8IuG0gpXQ4N96c6DBc3NRIhGBBARAgAGBQJH
-gHJeAAoJELsF1rQQfQ3accwAn1uqEvSg52FzvWJlkVglyJC+NCR/AJ9nuNUUPPcH
-bAUKZT2l6SeBBmrPi4hGBBARAgAGBQJHtMN1AAoJEPFEGV2XVsrUmtAAni6Qbprp
-Ub9e8gI81R6QQIdffEMUAJ9Czh4yTyJAgWIbaCmj1H5JhsT4S4hGBBARAgAGBQJI
-B6nVAAoJEKhBNz21J+BGvOgAn32wTDWcbQp882tB+A1Ti2UNvNr9AJ9pwOzFhsXq
-qyr+fzgdyAJihitFjYhGBBARAgAGBQJJjbwMAAoJEPtAr6/rDx3g9ZMAoJloG9Mv
-GAVUaXju0yGiIXiVy+h3AJ0aBN/QySVJq2V48wmnT1JiBZqoq4hGBBARAgAGBQJK
-QURoAAoJELv5X2VVC8ogkyEAn1ekT3tD8i57DPtkwyg9s+qWt4HIAKDITXFhXuiA
-RjER8x+W/pBwmpLFeYhGBBARAgAGBQJRNgvUAAoJEEykdLNe6tNualcAniAeeLr9
-QT9Knlu8KL9ELGmSTuonAJ9ysagxW61blojOo1SHr9nW9pYTJYhGBBARAgAGBQJR
-UJnqAAoJEDLTp7UYubdN2q0AnimYy2ZQrFghq0S5UxbI5sZwU6F6AKCxOyEvWMpU
-u/kM9ENCpkTzBmD2o4hGBBERAgAGBQJBCK7JAAoJEH6k0/oNRcHlklIAn29hK5Z/
-JSZlBv4I00UTYLiHY9CwAJoD8qk8GRgdwtKf56McjziWukuKdohGBBERAgAGBQJB
-kauBAAoJEDxjyj+gs+iLk1kAnRw062oQB5E8+xbAKg5CsXpqxaNyAJ9azC3/Socb
-vTW4RIEzz8LLEjh1nYhGBBERAgAGBQJFa2i4AAoJEGxCIyMUQlJjyR8AoO7XN/iS
-/StuvSHpreVg+1xKRu2mAKDjYWxk6UdtZF+kaphvvYJHjI6SoIhGBBIRAgAGBQI/
-DiIPAAoJEMQaj9kZKdFNjU4AoJf5E8q0oYzZXnG/TmAV8TCNKjA9AJwLYl4pL6Z7
-IHis2yxD0AAoKZxmkIhGBBIRAgAGBQI/HlbTAAoJEPLsWlHt5IFR4uQAoJYy/U33
-HKZAkt9Ay2y7o2rSMdoqAJ49NM9eqx5lbDsjzmBdPKMcQ1eCu4hGBBIRAgAGBQJA
-1jThAAoJEB74SmAsJE62S9IAnA8A1gh3kjQxgJZHZEy0TnUprMVfAJ9qcL8pClO8
-7Dv1SM5avxX76LR4sohGBBIRAgAGBQJCz6QMAAoJEOAeW2jPIzxOcX8An0hjXIU1
-n0TnX89BPyzVI3DsVAb3AKCgVCFLmEWl7OZJtQndcMD/cohhuIhGBBIRAgAGBQJD
-w2ouAAoJEKjopOi518o4knIAn3syKUUOzO01RHNpZUoJlxA7SD5RAJ4yOxNs5G1m
-9v+/kChoFtIrdWVDJYhGBBIRAgAGBQJEcQuGAAoJEKyQ3fTcM7UNy8IAnROMZxHy
-I+abBGJN9l1vafwn/nW8AKCYWfujhXkbvE8+YhLtDvNMo4CIwohGBBIRAgAGBQJL
-FsYcAAoJEJpShLUlq249GUoAnRlBvahdY1vsdEXmcEScH4w2j53wAJkBsDZI1LSZ
-jidDMZOU7Ze/i9/LiIhGBBMRAgAGBQI9NK25AAoJELoWFZDMNQMyFRAAn2ZFrrxy
-sWKB1Co2EM7puQLSkF0hAJ0ba6VeIGzY4wFEeOt7U3Yzi9hr8YhGBBMRAgAGBQI9
-m7qdAAoJELBgjTLJwbMZxlEAn2Cd7R9t8WIBrxZq4laNlSstFebuAJ9PF+AzRNNK
-3NA+8WxDEHgk5HlpRYhGBBMRAgAGBQI+DVm3AAoJEIvYLm8wuUtcUU4AoJI/AGc5
-gqn2lMtCOf05m7g/OmY0AJsFU9T+TdXq5eFek7qSdc0fUoCZyYhGBBMRAgAGBQI+
-7IFxAAoJEIuNekmAQ0xIn8UAoITL+zVD7myEBaOwqRwVjTqWABQvAKDm8dhxZFvI
-iz4nmcvGWrmuHJzXEohGBBMRAgAGBQJBSGJkAAoJELd/84c8njt3diMAnjyPVNEh
-4WzlcMawDyWPNWzXmWPnAJ96J70EV8cAZMUKFd5ZmXf2n0NAyIhGBBMRAgAGBQJC
-fOgZAAoJEK0B5TpJHFlK0y0An01+tp247LYLG1YFfzGBztG7O38GAJ0dftNxezai
-SZClMcJbdCc45pW9O4hJBDARAgAJBQJCSOLKAh0AAAoJELd/84c8njt3/CMAn2CW
-V+BAuna2pYpOEw6/66cFe12tAJ9SdBc+gcNswt2Fb7FthNK6bVEuA4hJBDARAgAJ
-BQJEg1zjAh0AAAoJEATEWn2nvII2uLsAn2Iyt9LX2kxkobQRFUlxbYJ6ZoqmAJ9N
-cERmSqw7jB0kuuNCNilOs7nDtohKBBARAgAKBQI4yYu8AwZMAAAKCRA9ivGyCawK
-ahiuAKCoBsq7hVUJoklCIkBHm4L9VHJCHwCgk5cIGU7GIE2N/Dp4IYJIdTNloiqI
-SwQQEQIACwUCNDf8TAQLAwECAAoJEK31FtOEIfEcn90AoIW1kFD4Xnj2W68LZGvo
-nzswgv2eAKDu6pFah8u3JkRCaF/ayxa7CTLTAohMBBARAgAMBQI8TqPrBQMBF34A
-AAoJEIQP5zdCAWyqBgAAn1y8KoyYtP4vbz/KkvJH5zuLyX2YAJ9o5WPEQ+m8mNlF
-rHIcB4sOTOJE1YhMBBMRAgAMBQJMbv57BYMEr7UAAAoJELoo2K7eB9HPP0EAn3kE
-YY+zDzJV1Bsa9YIPRvBZGWl8AJ4pIsXa2iFGXMr2C4xUaAERSWE7tIhTBBARAgAL
-BQI0N/xMBAsDAQIAEgkQrfUW04Qh8RwHZUdQRwABAZ/dAKCFtZBQ+F549luvC2Rr
-6J87MIL9ngCg7uqRWofLtyZEQmhf2ssWuwky0wKIXQQQEQIAHQUCRPZHZAYLCQgH
-AwIEFQIIAwQWAgMBAh4BAheAAAoJEK31FtOEIfEctiwAoIjShEwEDB+SINWfKhP5
-0dE62l0FAJ9F/+UXI71faFg5Nj/bho2IKq/Lz4heBBARCAAGBQJMw1Y3AAoJEOot
-30i7rp6nutkBAMqr2PVoIrmmCvXuF+8cG7Sf73/rNABHvOo0jWPI5SadAP9KWUJN
-znhaQEx4yg21iUsugKAtWM5iJ/gXYLvzxHpTOokAlQMFEDZu6gZlaOIONCPqqQEB
-4PoEAIZOJXiKT58tgvkj60J0gX2Lqcqoh6Rix0BL/NvVQ/zLvNdooz5Zjd3PILZx
-IzgAyKqbqgw9Z1GgDf6E6vqd2A3WuNTZQ4j7+vJhhN2l562qs7+vubdtMFMnUn/f
-PnvRGG4cgabuawhSjSYk2WrJ9LqQjbszFvrqz7ccCevvKzSPiQCVAwUQNolZK2zs
-TBaYxlQrAQF++QQAz7b0LRLpphl0wO/XVfz1fU85SUcSGQNh1FxWMq+h0ndEJS+8
-snyuXQY00RzYAX+VLN00javNez2OwoDBked/VSHlBvOHODE63o5fSbAVoFmnHjNa
-Gnmk/EeJcjyLf8/ehk5StgzH74bDUs1Gy3Tdj3WZRsvm5SZivTSrioq1GzeInAQQ
-AQIABgUCUYUeHwAKCRAkfv3GxMs+5iiHBACNDzV5eZtAbdtEL7b+8hSKq9CsaKgv
-iKbH0/VBTzQTfE15gVKe27lQRv6cj1OEUL0/mDzgtbZhg4FcinK+bBYo2M4MFM64
-JFUoGXVDix/wXj3lAs2XD4rS623knGxhKmLVJ+Kic9mUwn4mYZqomwuJEJVcMxtN
-N14bgW8B+0hnlokBHAQQAQIABgUCUHJ/CAAKCRDIxGMjyaJFE12pB/4loGzBUk2u
-cVT2ZfNofDupTcFXXLGrNaEgqnlwMB1VS2KrCSoqLcC2p0SHO47MGVL9M1QPkv2T
-eD+IHPnr5yAik0lT43lBjnNwhcmbBysPTR2621asshsb0KlfHQEN0zHj2u4PV1V6
-67HnYeMjZyZycCSi85mj9u+007HT/gL5dvFRGpsu3ZhAZzrVbx/wiKmTvZ+tMXio
-DHDi2EHgK5GM6g7tDauEl7xM9tZ/4Poj6FJ5Ktzl6zUtcrRqhbBObvM55/8bjblK
-o2KgQ/N97lPtQF172SSccBrxuunUjQu7SjC0wGsmxVBbNEq53Q3uJ4Zbut0UgEfU
-1c2gLHt3A8KPiQEcBBABAgAGBQJRCuuxAAoJEJdpg3ShN7P9CEcH+wWPvMn98QAe
-ZHNdr3Yrg8hTg0YBMMzPnMf7JZ/REYsqRoJLVydyOfTVNprTuZIgLCbSqkPQPW//
-SP1KWgZ7yMw9cnMrrlx4VfJQWZXGwYiIRuXWP6+WxSJflqBdTLo+bJOH4Xzzf1gk
-IkPxtcVmr868qwiTm6ZqKxcgr5EBo3V/X+euKi/Bp728xxxE32Ct+2VekuzPK4aS
-zbUOgmJeVRtLz2lLTjeq6xlfHOqTv/+w2a2PEuW4awZnHZ3AhrmgZMMh1b0wmQ0c
-rYzOeMpqjfq846+NJcG3OiLV/ASO2j51ERYGvniDy2chHg5A/vDbWQOmW9BuqOtM
-QY6oRk/aguWJARwEEQECAAYFAk3eFhYACgkQk1P6sW+xHrqenwf+IHDfMVy+iCFo
-94VSW1YQc11R7q0xf9VCrxHzy18M7OI3OlMkaTatqaoFYhrRE3C62V6jc/gHVD4S
-I9mXOQiXjeuwWQS7F4MPnf0SdrXT0mpmFn7Gjig3zG3j5jI9WUlGyz6ty36oKFqK
-Lx7AuyFiwervSI4OTigkkcQBCYvioVofhza+8kML8hL58sNbwntVlQtFhD2DBuLl
-0BUFpbvY0JlnyhgFfND9AwBQK/jZx9eSLYd38cslVEry4zF9+ElBk0DhmbyLPrbi
-LVIYfGk34PIZg8V/1RWl1ogw/eoBrxRjNKmt8WWiwdHm7dwtM3Kjj+WgoK5gQsTV
-eKMfHSK9OokBIgQQAQIADAUCQc/BpgUDABJ1AAAKCRCXELibyletfPXEB/9LicaH
-p+QEzZ1wR4WuQTHwEptTo42XHsh6icJ6/muExNrjC+v3AD5hByv6WR5yOeuZBNCa
-SFPoTyNvtFk2ps6pzbTPNmO1Bogh/LZlzvVf+3ifO4bJ+xXUNXuppkdYHfKGXlce
-u3hM4Svdsm5GKGEjpzFhP61/Hfv2BXBTOp4OD+xAge+pR8T3sfd/PNg7glVs2+UY
-fUso/gZxHaKg1T7iRmkKl747StST61lVhcnzVEtlBxoyi4VWxqvsJuXhnoMtZz0H
-KClfZoVyZemgBIROv1flw5I3Xd2HyokvDTp1y8FxMRSOtgYrk8So/w93eEgr0Z1U
-6f4OE92LQW/3X1dAiQEiBBABAgAMBQJB4OVtBQMAEnUAAAoJEJcQuJvKV6186/AH
-/1ZjESG3Phy4zGRbzcROUOHi9WExjIsZ4eY4dNZ9V5bAAe5AkC/UKAYK9h3cGazo
-qMD2lsOmx2qIxVGdv3+CaKSUEHPSm3rvgPR6DedFY43+AE0f92PUzuXAlu1Yqs9r
-qfWOYKzp7oRFlVZQAVhO/0iCtoGmI4x5K9+0XmDiisigTH/eiUgY/ChCixhQFLoM
-7ueePNdAHXAbG0jXiMqTPLdQ8sKnCVZbz9CVSbGr9heOzFFmb08l0Dki2z6O0So8
-oz7PhgEBDcEcbkDPAuJGDhiBROZ2w/KBmLwmGiX6UZMZgn02PRZdQdAbHzb40TPG
-q1xZGIYpvX3GwRK2EhmDR5qJASIEEAECAAwFAkHysZwFAwASdQAACgkQlxC4m8pX
-rXwwlQgAhrz0a7ECGWwr6XWghq1z0xPcXSEMFg38sMOJ71Ms3QUWSfa61iq6O22C
-OGe9OfVS9BOaUCnsa2x1U4PsiRF0uPvSJYhdV86wgezkIBnT5Xhj149tdBh/DgE1
-Mp+E+BJqdPUsP++GYbKmiXmj7LgcvGYrw80rkDggGGuRhJA80cr7mUq4YI/yqSUs
-gaSV6qFqKrAWdVHTnpSHz2uRfGJ5g4sN7rL2Tqgd9Rtt3dJOQJlFBCN34TQgSOP8
-Mbr8kL15vc24nY9PqjXCMfntOU53x8h5idM1Dvgi1X/3RLWsoHH2xmCxCkwX/Zrc
-rTCpRzwIt0LdbrE5NuOtcDFx6hc2uYkBIgQQAQIADAUCQgPVTgUDABJ1AAAKCRCX
-ELibyletfN2JCACvndSZ6jfTegEKE0/PdmFofFZ+PXT8bvtZkKnwZ1DzncGGWRmI
-nsr5f9K4w9XHPmZQvrg5Pn4AyIhAsVppXrMWbif1Z66LRY3maHklYALfcrPN6PBe
-tTnNZawIpzf53F2OSPJvPeYItn/x/Y367nJJ1bBFZ002yfllZyys3LEeBu+m8OUV
-Bmy547cSU+3/mr1Ks924NfxLAn2d1F2bwEGXHooUvPbsv81xf4HIq4gHnnCdHPr8
-wbhfqTqoubxQbH3K6CctkVbrCTsPy336QgXumK94E6jBB+oq+NA4W1MdbRNguw7A
-aIfSPABNwsqrVF5pQnRmYuQn39gJijw+CYWFiQEiBBABAgAMBQJCE7iQBQMAEnUA
-AAoJEJcQuJvKV61874YIALDu2gQEDpmLZznfeecyiLHrN89Mr3wmZzevKm2apxrK
-w/5lxhEp7u8xpi6R0vYsAjnr3kzd2iIK26McvkWL2nygQLKcEdALjXxMUV2I64QW
-HklHXfPA0TPqI6CtRkWGVsprwk7XubYJXSy5spXbm1C8RVXVmxo+i/7AUgCKtsq+
-gCsP/t2j4R2+4yKfvQsjXytNfLOHJt10hz5xXFDC4V2wX5nasC+OxMfTRodBGA8K
-uh51q36BmDyzkgkLHK7BrS1z00NWQDpsznT7IsjnQhTZgVRuvhkddqBv9GwvXD65
-1tXtmOv4RxB9xw40xJ6KqF5nztgjOSasK3OzF3uWEOmJASIEEAECAAwFAkIWm7sF
-AwASdQAACgkQlxC4m8pXrXzphwf+Ki2wAV9m6465lqmQ8PHbCoj6kemNkvLfl2N9
-lbg7r5AwOScN0wPNP1wVthFpFxqfFCBQDgKhoDudKre+3DWumr8N3EOxAV1b3dEj
-ps51s7jsOeWhclTFKcnzPYiV20W2tFEOVReaTANBMlJN0Clnv+RiO8xK1thQC8ph
-+/geZf+UarQNDjtM1OfIgEIMO4wC2XJQSapV6Y7FQovytiaqtTXIPLCeGaeqdTM4
-RSF3Vi7SQjZY1imIXigwQb/kRgsuf51Bw/einwxuqkCQqrG3VC5eiyc/xMWzly+U
-ugcX6nRJweszmQNjppwUPJyy/IfqqD7bZPtv0yj3RC0FH0cPpIkBIgQQAQIADAUC
-QimBogUDABJ1AAAKCRCXELibyletfJ3aB/9ahynEHWa5JogyjieaTmfeUUeCNG3M
-A2Vl3YcAm0+bQ6lVjrsJCTL3n5ty6gEKrJUzflMjhv1ApNZqcVfMFWdNQ5L25skv
-Qc5A4INetLM8NxKtZ8sTNnEODTbalJsv55vLj0zCh4zxhNFY9hrGM1ZONRA9rUHy
-4AL2JsjmRBerP5LJy6OAHv8xidiWTnq4QfPyFU/7mC2ufqLQtZ93p1lLQWIC27pg
-5Xy4yDQNvBNRgFanuaxdx5fQyWdBHJIr1dcvi/W4159OsHMms3DZed25Zp7ryegE
-V4P69d7PWNXhBfHMeVrnMa+k3QsyxqNbnfxL2u03jJ5DAgDO/0eGnAaxiQEiBBAB
-AgAMBQJCPU1OBQMAEnUAAAoJEJcQuJvKV618QggH/3iApemO4a1lxtydfsbLKION
-00Afw6N/CTjN4D2UjOGU2VqJunDB72YZ7QuViA9O/Y60ZQFkTkvgbloEuI82uzlT
-IPc5OFJKNbyjMWUOgqr6NE+ms7uGcNITZWMFylfM5Fe5ISwcrrQW5F7gI0ZeUvNp
-Zfz5PkY7GU1JUIHzS0NoOHQPbqIcslMNHgy4+rxHwxMv1sjVS63vC0zNKlpncPX5
-68u9t2n6rp3dQAMFxxCctAUYPxPdbMAsBqBKfpDykMTjPoVk8pSp54WVe94DkI3M
-pwZ1j+lG9Q0AkhVHJ1009UawT/WMh9M9OX+1ukKYEHuMJXbbbVjQPKu6bYpgmWiJ
-ASIEEAECAAwFAkJPxG8FAwASdQAACgkQlxC4m8pXrXzDLAf/WOXQYXR4SHFehuvt
-9JXgCifMp5SPco+03KkKpA97KwgHG/kPdWq3Gj2iYfcNnq39S3IBy0EidMDwyaEg
-knLQg2YePipDvHlX/YJ3OiSOCkeAfSamUprA5y+x9wbnnLQsa9JNbqkTdrcZW4BR
-MrOA0oQbr8CujdkpGfzrIi2vkKZ7NA6VjsTNa//sImEdZ++FqPlI9ns7kMcgGw2I
-AxHiilvyCPW937Imrge9ysukvyZM2EG5iF7Z6o6oiHuKXgTOwYn7emzg6wFRuNLo
-qXFV0rfGEPUu1J/ufb6Ez13S53ps2Yayg+PHQCS/DUAV8e5Gpn7gTtC1S3CLk2b+
-mTqpD4kBIgQQAQIADAUCQmItMQUDABJ1AAAKCRCXELibyletfFiNCACOcz+xgs8R
-A/BWahXhI/Cb+WM8DbbvbNTBu9QX0hR3IC9slbtiPVebS8ZENqmjyRsndrT4h3+b
-FhorGAdaElSuhkko2D1BFf35ok930Qhm6QU/SkEx/Yrk8lJelynS2UwzUtBOxJ69
-jbWJ3wAUCtZ3mhGJgKrl2lFlnu3R2lJPARh+yjvexgcGiez6LAQFU5hrNsPTnCwf
-OusW1oAbORVcpwMD82u5Kclr1UcdTvb/72NlvSVImfkUf6UrY5zFefUQPGULe+n0
-n7GLVLH+LSntZVi+ojwrty8T0/o+7+ICeh31wDq+5ZbKpcNiZf7+h4hvrLr+Wa9J
-7p2CVH6QX5Q0iQEiBBABAgAMBQJCYtWlBQMAEnUAAAoJEJcQuJvKV618b/MH/joc
-W+3kjmwL7a2SJh3d8SHPlGBiAfGNl9HmNWOGlNexSilkb4mRz2mzOeIHvPnJgV/8
-4Cz0ugD8T0kyVI9vvnOX+0o7x6iSHatUL4TD1cFO7x05kbhFk/Td7JOIyr/HFuUk
-DigKup14kYLJe+sYaxVCUPR8Q1ispUbyILzgOILjFK9BN+vdwLj1RRFE11wPrgf8
-GI+qHOW0ZStNLNPkWGiX0Oih1rIOINYSroioKPmrTpGJn5p9YK513mzmyFFhrDZF
-b88oupNQGUXoi7tiiy26P1CDKBfUQA5pCfcmE028mXkykuoZ2akeIDatLVn4Lgr2
-tYHcvrS8VTk2B9rQZuyJASIEEAECAAwFAkJ1VmMFAwASdQAACgkQlxC4m8pXrXwG
-YQf/UoddkvXnbqLDiTGLrqlb7x2NeET90OSe9U7t88hB4cbAnCNe1qvnC0qjtpR9
-rorMJP+eXCeiD1ckpBmFr0eyu6PoTh1bE2qA1bvfazW96iON39IR+16rfojsFonP
-Ew5SCcgpmNNS3Tad3GdBmk/4SoPV88jZYwP5jPm6u2llzz0b7K9ou3ETdg7hVU21
-hSYTpI8YAD0qVbdU0zhEhlqkVL0ZbuYdDnhLa34IJJL8AQr49mDRG6an8nYxaNFl
-h+X/uyNqbIbSQaqMTXsP2MqkbgFfEwPOCc4U80rGSuULMJFWai8ut/rImwY4sb43
-t4Z+iG01Bs/P68qpSoz2uw1C3okBIgQQAQIADAUCQocnxAUDABJ1AAAKCRCXELib
-yletfI6rCACpIctLj8LdnvJ8lFDYxwaUivcvC4KozMrCyA08cP/aa8G8IPYOUnR3
-VffYAKdYWy/40xSqv+0CPIhD2NMnfwiaAbrHBNr3JIXmghkgccokKzXPeIjqUJtL
-tGlGzQ/avYBmu4MzZ9nXwhan6dNZLsIdM77MSRpNM33AgkGz5mJ7q74oHvkoti41
-vhQjC+8ggzhUJi+aKEGKF5UmNztrsojEMwVdS8x9DAPiYO00YFYHQ+j11RLXNvB+
-qkHmTJ8i9IbM6cxye83nrdxbx/XYThhTcQolbH8zI3l8mMHFs+vDQtHmgloUqjwG
-RW9vjxz2QJjIVL5Zd3tEoAQ/AkOA56ubiQEiBBABAgAMBQJCidEnBQMAEnUAAAoJ
-EJcQuJvKV6182/IIALxaoP1HUCnennd58VtDKftiVRRz6NHJ2Hlsl44tIFbzs3bJ
-3plRg2EVb6vhmtHZ30qoLKOYG6vuKG41GlnyxYS1k0pyYA43yw5CuGH49D/FcKxw
-Ggp3tcfrRuTcE+iV5aRqda06M2dyBGe0pU1aV4FxkPK6YS7G1WL5fzueFtUlAhVV
-7e2zw//PaMh7ZpAYet2OjO62+4fkrl7kxL/Bz2SgLu7JfH7GAaD5KHLXp5JCkhk2
-lXXbQLUYvNRbq2CiIy6FrHmmFZGqgnRWcPkEOrQBOZmIBhlO9w8PHSL2ERfvufne
-2BF5UV5uoOaXzMPLtJh2FsBbMR99Z0ddFrkItEuJAZwEEAECAAYFAlEtX2MACgkQ
-7qx1YVK3DgvLGQv+OeWjM1YfUgLhZb3m75O/qjqvtqIRQQlKkt1JmZ21+Q2RK9tq
-tRGdR58/YOkKvZwQ2IreJ5Xkro93xPsP+4ving4x8H+UjR+h+WkcwzvWiyuEeo/8
-rjSlLP/9xul9F3Vd854uiGqR1vbrSFR9/DjyutXxfkeaKnF+HKPG1loJd3CfJwYl
-J7mfhXXmz8yGxz0z0WPT7DGoXvC+tXouwY1rK9EuGHyvfGqyDczW2Ofw1m2WDYER
-F1J9kMIzdjdGZPDbH7MlVoW0AuafkAQT8MvWhNj1Rd8A6AhyEv+u9nMaaI1Ubjr0
-cFut6NKAfLvGHVPvw0IXW6RH3JRbtisbW/d8gZaPWSmKeLMQ+PqzNgLsHo8m4EuX
-QRLevhp69AvaDPrHmd2bDEZEHhTMDZkrjVuFXbzpKO+bIOERVyD86ZwAwopWdVY+
-qCB28VJ4HEB1a68w15k7iKzXCPDBm9GalJFlLq2wZAq9KZYwzpfm3aFvA5jG076p
-BPSYZISOnPVhqXNMiQGcBBABAgAGBQJRQ5SZAAoJEO6sdWFStw4LRMQL/3o9G7gK
-kYaBXDqnX3P8m/aEp+VFjjx3TE+5HYIVwlocz/zKx4rSN6Ju9UgWwPbDUkj4OStK
-FMdWDmkS29vRTl6NEaXOIegrf5fcy1sRdvS7VAIrvTqnaXxST7qWN4KBV3v7mG77
-+8bPqclwwR1jTsTg4RvoyCEkkXMQg/wIhzDxnuj21DK3PHEKgL2hwHdNBM4lkHDe
-PaFRxd2mSLcKMarEkeEPKv44WutxBDFMyjJRf3bY3LX6Kx5lirMQWCwVVRQeD0mR
-ibWCuCdMOXpOJaEZnrYC38BI+Y4iC0E5qp2Sh/KETMjfZzw0Y+55wyAJxaXFAaz4
-jCwPqxLBdSo3fODQ7snPh5iKDLjFAnwKm2XZQVrIVsLQOc6PWPm2YQwnWyJZJdId
-MpOFUEJitGbib1vR/7h3gx16LJOr/2sCMdhRMddTMMu7EDo7P5grz4M0iY7SH/IQ
-6lRIphAYSGXeEY1JDWZSnE+f7eWzIilM5CITXgvxcaq2F7XSoeyq8SdDhIkBnAQQ
-AQIABgUCUUOWJgAKCRCEup4wugkSssMODACfwCYedzvPARqLKMFxZka0eR4MqHJU
-X3wPox1ppnMuSYk+xrwtRpaOJBAvCeKyj8LaekKQDvPkF4VyCrLH/+ooSdjrTrmj
-NvRfc2qEC/dknD5JpAKrkfDBH7XYQMccah5hg1InxsQdIX5YyJ5AxSHrMx4sZqMA
-VqGc69IbeK31496UbDha68Aer6CW+jvF+FRwCOQx0T4lOmeBtls+zd2FAVOSDmf1
-7tVB8uPUC5mR3IBIQ7GtGDJH1v/jFj/hUc5hJelFoYNcpPJfmWOtqnvAFQaxJ7mj
-aYPeS2/gpqKNpxK9YCetT6mGBvcCc6Viznp44sYBmSAIsJXSN1IIOVTivDR/zRU0
-x1l1M0eotqyeePDGq/Ixt8AtDoaWcs2HZNh0NwDVygnkL6PAj/yo8dTk2hV//lKY
-c95WkYNKNHyeovGK8fLozDvxsktrHQFHaQBnLc/OprHfO/kZAwRL3pHjuNyx1RPc
-4V8kEtEV7AXAM3ywMpVhm9bG2cKoNOgpKaG5Ag0ENDf8TBAIAPZCV7cIfwgXcqK6
-1qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXp
-F9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2R
-XscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMc
-fFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGN
-fISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7D
-VekyCzsAAgIH/RhQlJaQLiydcBV8R5HViBIL5TQPGy1nNrx+Mi5mYhlrmZLOZFzo
-yi7gI5rDZE1OUSC/hlZTQL81zOwL6PzVft8MCXKRbUh6UWX9SYe3X0tCy5YmpAcN
-ZJFxTzgp/l6JwgyfEsIhvuFCRMXGKLFI7jGIJNFJbcd/AYqa3647JhmxSHs/vx+4
-GI+e+4ZlIjq0ySKdQXLY1glzApQZ9/sq/c2VfVS4D40EaYtDiyXDmBKONESf5Hwj
-7gmIfAXvtMlE1+oXnc3JTJ0ilx51/6FVdCe/ziW37FNf941ke3+uOu1lD52SkAsU
-EiKKq5zZfnQ7XFtPmVISwJVUCd9Gui9wbDOIPwMFGDQ3/Eyt9RbThCHxHBECqF4A
-n16bqdhfFMBqv4UhPDiE0JxO25k+AJ0dx4Qot202S12UcxIm9XX4Lxf43g==
-=9fWM
+mQINBFYVlrkBEACujjrO8Q18YEyyRmpd2DTSvxfl9VgsT4CDg+jVXF/nGvwAO6Xi
+kFQRVz+TGw7IwWVWzVnpAbICm9OTlMjzrHSREa1GgI8aW7zMB8RfLWBKn0FLJ3zA
+HOYT7YT3+UHbixfG+Fc0UKa5KCJTUDZMx2fe17yqVeorCEv/EJI9T0rISw7ZiesQ
+oDBK8iljg0HjOcTuI80w0k5P2jYe1OcreEXeRKZbWfjRpa1FJs2OzQnZfX9naNtS
+x0yihtkejMc1fSBQv3vVp6NwVc+nHEwi5DYejBSGLIHsX70h0hyMSdi5yEOKMl51
+hgyTRsPi7dfcMM2FLQK6yKWStmBXv8YpsMlq/vgwTclwcjCIjZXNU3l+c1YBIBNW
+wbPwbotawmsrG8vsLDcQvaCyV2po4NDCgllELeTI1AU50X0DtwbTCV4J/vSTI7fO
+zO9AANVNruao745z9Iir4SFpGnGpU1O0bmVmUY4ByomxzmPVERw7tdYpd+hqTjax
+wCJ4IarEkBPFO1yVhdVMkbKhjU17h/uZn2eU8dNIb4a4O2MBp7Dcin5Cf4JjfVmc
+OSadrjBexvKq7r5WdeRw1t7/rZ/RkrhpGN8SfTbTdRMbZWY7gd2e/2oHIFWrTNG+
+XkaVVIRxqVTy+NlRW2wdDJbRO3YH7Jdh2NeJKbP/Z67tscX+t8h30P2y6QARAQAB
+tDhFcmljIFMuIFJheW1vbmQgKEFsc28ga25vd24gYXMgJ0VTUicuKSA8ZXNyQHRo
+eXJzdXMuY29tPohGBBARAgAGBQJWFd8EAAoJEK31FtOEIfEcqPcAoMofZH7heY8h
+2pd8VXfJvsduP3qsAJ0aSH0k4oWojeJ+A8qxPNQG1/zusokCHAQTAQgABgUCVhWb
+bgAKCRDa9Y9VytWuOtAjD/4lgReKAvtBDn1Ol9K1c+EoVp7Ru68QUZe65B97eNX5
+B5ZmnHm7wc4+2JP3h2R+MuO0D25ZItVypdeuxGZy8PmYEWDTqG+F7MoP0ql1yoMg
+8l6T0ykU8WoO6UN4uFD9ZZDRSsgNwbciAAbmM18Jj+JlEfDolhXV/cRDWYouuxC0
+LvjskpnDKRlkc3anxJSG3h/kCsMqmu9vn2D0syCaqtIblTyt3aC5s0TgbPrChH2U
+baXuJ83FH+W1sqsByDtVqctgvCg45A8i5KSD+8VvpF0cNCDKsGE0Or3fH3SSXPxR
+rgdyvS4uSSTEm3ic13D4weFL/IiqKvEmpr36rTmm0Fml6mzk51nbEsqmbChtt/NO
+z3/kKmwYkcSpWyNbTujG8ExuogWIQu5E0lb/KVfT4yxZn+3GFEyDQXl2Y3Xx5Ij8
+c9tlvl+VMqyxQLcBekGbK1GBZPb+EPfeJIuTg90uW/4l+uzfFw+5vw8hUbPREf1s
+0VlPCNWuY/5QbJa9cRY2qbKr2dzMtKhb+VWxlKVdsxZY4nNE+3WVY+HXMndWLgJC
+6ZrzjnZZVfzDDJaX0yS0dwBbV9PTLWy+cIVaRw6Gk9B/O7DzENNl601OZHXdM11u
+MM1i0xQPunNhqBE6q2qvwPhkn1HN1G473TKvTMYUPxOBkAZtxuZhAaLPT0htMWlj
+HIkCPgQTAQIAKAUCVhWWuQIbAwUJCWYBgAYLCQgHAwIGFQgCCQoLBBYCAwECHgEC
+F4AACgkQ7Mggj4xsc43gIBAAqNaNe8J/aYjRxHKh76ZpuwSu+OlitC4nwX+tmiX9
+NvRiH05366XANctb9I/LJXW2tgCKHbe7dPYaepJ39ZW0ycXQ/iUZnsLotgY/JqZL
+9FMGo+fGm3OJFOu+1b/7TxciFAeblYZPvOJ+19oR4QcqALPfqImm6Ooiu0JqO2ah
+bptc5JPrE0lgmUT/cxkmDVXhk13qWetrGJibJiPDXUpjThDtEVLcNX8ELPr+XVS5
+h675tmEOe++FdMH0qS6892XKxPqaa7u8nG2uO18Wghm3yF+dKHwA3DTS+01Hf1WR
+0WFemFjS/9FhUYlZL9aqlJUUZ42O0YEUVIetHKwejFBTqaqvy9v6hit5YkNNVG7/
+oGcx6/ptboPpz9srSrjER1RvuPe9Sq0ZNX2EOhBmu5jrYZ0Na/cwTBbNJDlUjKwS
+DwQ5/I5EhDQPNhzLo2xTB65tBL8XYiFTOzB86KQEU/ILygKSJ/47Bab/h+muIjAa
+zoqPPE5Idf85FKK8L3RTFg+BgNGJUcT4tNo6tMUXFUCw16yKWQi89QhOwsJRLcnn
+Ue0Cry7ANe909uoNII786lvYdD5tGF6j1SuYgR7YH5xpekzu20hWmdNtbaHy7goy
+cTasGZSRDUdl89QLHzQsGSqg1yFIBdfE2Fco2bHag9I0kQH49La1k3iGFbY941mt
+juiJAkEEEwECACsCGwMFCQlmAYAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJW
+Fd+BAhkBAAoJEOzIII+MbHONDeYP/js3ZNF9IpxJ2d3XSRoJd7ED7ymujyxVCP/0
+JuFvpKUdxs3OBzdPnM+lojPpY51zrShwB+Z/ssGA8K/nlAzRFgLvN4qJSaGGxewj
+Oy0/3D3qKrz8iRTVnlPnLYX7069QfWYpAsKRXZifYyd8A2jCbtavuy2vgLe77VVj
+maCGsena2mWThSIJjahbYkFEBF6n5V8dVScxURl4m+UQ/THIPwjiJ6YtUGW6paYW
+mgN47okNMmOYhqBj3Jna54TVqSMD5JMiQ+AaUojnm15cCLXphyOaBwbSneqf5geU
+pDQOowEwHDWGyNgVyic26OS5Ze+MFQlfKawVdkn+aMwKWqdwj+QRdGzp/opqvEmG
+3F+7QL0P/E6MWT+1RgLjfA/0/K/yeb9X0ThsOqAQ467ZkjtrIy+mL2XjHZ3hNj9b
+Z5okmGAf1ZWR7ModX2QOA2v9VT6B6ip13NGv0+BDVZcd7G3Qm6nGUUNhwilOh1e7
+7l8YnfuAjWohWZbqhVWv23fiOnuiLkJeJ7LFFFUDLSou4Y4PqzAj1eD3bgvN8JEy
+RmgXv5dWsGw34Gcb7OXUrY5spoQnr0xj9V2ofzSRcRZlY9QKbLyk9OS7HNyws/+U
+8Ky/bsVUkGn90Drsgo+aRdWp9uWiFYIdP8itbRIL3YcdFwLboWOHTFDLxslR0+4G
+/bUCVitbuQINBFYVlrkBEADUsCqY/zTw166q80taEdNdZmiY0FCfcPaQFXqYjPbr
+uVpWa92n53wYxdM/54Hr73QD8p02VlpohPsis5+3U+Wg2cmwhW+0GDPrQsmDxRPP
+wxJxbpmCnT4qrwAiI9q/IrO0Bb9rufuiYrFpft2buJue777yodwESloFywxN9EAt
+M6CVuhiVJq3/mN/QgUpvjguO70nWqprge7tcpy0GpMduOR3QqY/RYEDsJUQ+EpyV
+JvnchbkqYIrYlqp+TNx3m0eXxZ2BMf8xVZjQ8zVXygDjYfuRSVnqammofSU5PAmt
+lbpYqnSHGL6k0QEMzIHkz5af4pvZ2bhdhK+kawQtVOWrE00uF+2g7gE4nlnF5J1+
+v6Mr1KG5F1Q/XUDOdLLhfbp92+kBElZtGu4pE8FoPYAI8ArFO1NXR5MqFS5vj4mp
+31N6iGvWlybGz/dkvoTV32FKqkoFhtpjJh9ty2HWKLjwISDU0jqj0pIf1W17oEti
+7sgRjyhrqIFWAa8D9hXmkoceWtWCwYayDLecL6TIq97p5TfIgp2dQbiiVb+uTdL6
+eIcpKnwsGT8/PtAJ3k0yKZLpwRtDgrLPbh15cPhbAJEucLHxxXL5fyeWeku0eXSH
+2I9t8HhK5UoUIt3Fa18bEmM5STSWl/Eb64YzWRQnEA8Wb/TV0uWpvqoD14wr/4js
+nQARAQABiQIlBBgBAgAPBQJWFZa5AhsMBQkJZgGAAAoJEOzIII+MbHONYMcQAJu1
+N7Fk13uzYFcqfPnfBl9Xj8C4pIQbYPE2gCnqLNJbXTxLw7KXKRUCxQEUsIp4pojY
+NcXKU+edIa+bHa8/4borETwNdi+aoxNKFMF3slYJGsQqNeQTG5TJUSJb+2QLxXSM
+07DnKztj1x5BVxRb01IzTyuPMVgv+rIvTf6vwD6c+hrCganHRdNsybVxHHh8eCOl
+G251uFjfCm0vFAzIi3YMReYzMSlHE6g7vsDAUhdLtVSPm3T67pmQmyuTTUkhHbgB
+AvShzpszqfPzevd9jxNrbawfh8kJBexshLtsdPLtBFOIb3kOekc5DYr8n9nerCRi
+OyzkuxQs+cnV5/ktdxJd1G5NIS+ss5+5UFsf0u31IM1DGuOG3BJLAenb9BNNQfaF
+dnjh7GSJVV8dgupmabtgvFTAmFSqdSBAHa3CMXpozOmAJaLNixHHmQ0UEXMUi1lK
+yeGk/rXdZxdX+vVA/M0YJT4MGIVFF1OMelxAfXAjcx1vqjyfcb6Uvm7Lz6Sxe3sn
+IZUFycqVyBv7rxOi+Ye+/RLC6ozlkivcfhLZGaUBPyXymqasuA5FLUs+Ey2gJVuN
+Lc5MKCDJYXP3y7gdnmIU3lNQWnQGJgU1N1uhPH80kZyLM6oh9pTwAw+ELc9RnQ0G
+Nw0nu4XFvwd6CHX8hTeAMa5gO1SYBr8vqVtBdYCC
+=e67Z
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package mozilla-nss for openSUSE:13.2:Update checked in at 2016-08-29 14:00:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/mozilla-nss (Old)
and /work/SRC/openSUSE:13.2:Update/.mozilla-nss.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozilla-nss"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.BBiElO/_old 2016-08-29 14:01:07.000000000 +0200
+++ /var/tmp/diff_new_pack.BBiElO/_new 2016-08-29 14:01:07.000000000 +0200
@@ -1 +1 @@
-<link package='mozilla-nss.5440' cicount='copy' />
+<link package='mozilla-nss.5531' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package MozillaFirefox for openSUSE:13.2:Update checked in at 2016-08-29 14:00:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/MozillaFirefox (Old)
and /work/SRC/openSUSE:13.2:Update/.MozillaFirefox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.eFv97j/_old 2016-08-29 14:00:54.000000000 +0200
+++ /var/tmp/diff_new_pack.eFv97j/_new 2016-08-29 14:00:54.000000000 +0200
@@ -1 +1 @@
-<link package='MozillaFirefox.5440' cicount='copy' />
+<link package='MozillaFirefox.5531' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package MozillaFirefox.5531 for openSUSE:13.2:Update checked in at 2016-08-29 14:00:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/MozillaFirefox.5531 (Old)
and /work/SRC/openSUSE:13.2:Update/.MozillaFirefox.5531.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox.5531"
Changes:
--------
New Changes file:
--- /dev/null 2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:13.2:Update/.MozillaFirefox.5531.new/MozillaFirefox.changes 2016-08-29 14:00:13.000000000 +0200
@@ -0,0 +1,4896 @@
+-------------------------------------------------------------------
+Sat Aug 20 10:58:26 UTC 2016 - astieger(a)suse.com
+
+- Mozilla Firefox 48.0.1:
+ * Fix an audio regression impacting some major websites
+ (bmo#1295296)
+ * Fix a top crash in the JavaScript engine (bmo#1290469)
+ * Fix a startup crash issue caused by Websense (bmo#1291738)
+ * Fix a different behavior with e10s / non-e10s on <select> and
+ mouse events (bmo#1291078)
+ * Fix a top crash caused by plugin issues (bmo#1264530)
+ * Fix a shutdown issue (bmo#1276920)
+ * Fix a crash in WebRTC
+
+-------------------------------------------------------------------
+Mon Aug 15 11:24:00 UTC 2016 - wr(a)rosenauer.org
+
+- added upstream patch so system plugins/extensions are correctly
+ loaded again on x86-64 (bmo#1282843)
+ (mozilla-old_configure-bmo1282843.patch)
+
+-------------------------------------------------------------------
+Fri Aug 5 13:47:12 UTC 2016 - pcerny(a)suse.com
+
+- Fix for possible buffer overrun (bsc#990856)
+ CVE-2016-6354 (bmo#1292534)
+ [mozilla-flex_buffer_overrun.patch]
+
+-------------------------------------------------------------------
+Wed Aug 3 03:38:47 UTC 2016 - badshah400(a)gmail.com
+
+- Update mozilla-gtk3_20.patch to latest version from Fedora.
+
+-------------------------------------------------------------------
+Mon Aug 1 12:37:05 UTC 2016 - wr(a)rosenauer.org
+
+- update to Firefox 48.0 (boo#991809)
+ * requires NSS 3.24
+ * Process separation (e10s) is enabled for some of you
+ * Add-ons that have not been verified and signed by Mozilla will not load
+ * WebRTC embetterments
+ * The media parser has been redeveloped using the Rust programming
+ language
+ * better Canvas performance with speedy Skia support
+ security fixes:
+ * MFSA 2016-62/CVE-2016-2835/CVE-2016-2836
+ Miscellaneous memory safety hazards
+ * MFSA 2016-63/CVE-2016-2830 (bmo#1255270)
+ Favicon network connection can persist when page is closed
+ * MFSA 2016-64/CVE-2016-2838 (bmo#1279814)
+ Buffer overflow rendering SVG with bidirectional content
+ * MFSA 2016-65/CVE-2016-2839 (bmo#1275339)
+ Cairo rendering crash due to memory allocation issue with FFmpeg 0.10
+ * MFSA 2016-66/CVE-2016-5251 (bmo#1255570)
+ Location bar spoofing via data URLs with malformed/invalid mediatypes
+ * MFSA 2016-67/CVE-2016-5252 (bmo#1268854)
+ Stack underflow during 2D graphics rendering
+ * MFSA 2016-68/CVE-2016-0718 (bmo#1236923)
+ Out-of-bounds read during XML parsing in Expat library
+ * MFSA 2016-69/CVE-2016-5253 (bmo#1246944)
+ Arbitrary file manipulation by local user through Mozilla updater
+ and callback application path parameter (Windows-only)
+ * MFSA 2016-70/CVE-2016-5254 (bmo#1266963)
+ Use-after-free when using alt key and toplevel menus
+ * MFSA 2016-71/CVE-2016-5255 (bmo#1212356)
+ Crash in incremental garbage collection in JavaScript
+ * MFSA 2016-72/CVE-2016-5258 (bmo#1279146)
+ Use-after-free in DTLS during WebRTC session shutdown
+ * MFSA 2016-73/CVE-2016-5259 (bmo#1282992)
+ Use-after-free in service workers with nested sync events
+ * MFSA 2016-74/CVE-2016-5260 (bmo#1280294)
+ Form input type change from password to text can store plain
+ text password in session restore file
+ * MFSA 2016-75/CVE-2016-5261 (bmo#1287266)
+ Integer overflow in WebSockets during data buffering
+ * MFSA 2016-76/CVE-2016-5262 (bmo#1277475)
+ Scripts on marquee tag can execute in sandboxed iframes
+ * MFSA 2016-77/CVE-2016-2837 (bmo#1274637)
+ Buffer overflow in ClearKey Content Decryption Module (CDM)
+ during video playback
+ * MFSA 2016-78/CVE-2016-5263 (bmo#1276897)
+ Type confusion in display transformation
+ * MFSA 2016-79/CVE-2016-5264 (bmo#1286183)
+ Use-after-free when applying SVG effects
+ * MFSA 2016-80/CVE-2016-5265 (bmo#1278013)
+ Same-origin policy violation using local HTML file and saved shortcut file
+ * MFSA 2016-81/CVE-2016-5266 (bmo#1226977)
+ Information disclosure and local file manipulation through drag and drop
+ * MFSA 2016-82/CVE-2016-5267 (bmo#1284372)
+ Addressbar spoofing with right-to-left characters on Firefox for Android
+ (Android only)
+ * MFSA 2016-83/CVE-2016-5268 (bmo#1253673)
+ Spoofing attack through text injection into internal error pages
+ * MFSA 2016-84/CVE-2016-5250 (bmo#1254688)
+ Information disclosure through Resource Timing API during page navigation
+- removed obsolete mozilla-gcc6.patch
+
+-------------------------------------------------------------------
+Fri Jul 29 01:26:13 UTC 2016 - badshah400(a)gmail.com
+
+- Update description and screenshots in appdata.xml file.
+
+-------------------------------------------------------------------
+Sat Jul 23 20:13:08 UTC 2016 - antoine.belvire(a)laposte.net
+
+- Fix Firefox crash on startup on i586 (boo#986541):
+ * Add -fno-delete-null-pointer-checks and
+ -fno-inline-small-functions to CFLAGS
+
+-------------------------------------------------------------------
+Tue Jul 19 20:12:11 UTC 2016 - mailaender(a)opensuse.org
+
+- Update the appdata.xml file (replace Windows XP screenshot)
+
+-------------------------------------------------------------------
+Wed Jun 29 09:25:41 UTC 2016 - astieger(a)suse.com
+
+- Mozilla Firefox 47.0.1:
+ * Selenium WebDriver may cause Firefox to crash at startup
+ (bmo#1280854)
+
+-------------------------------------------------------------------
+Wed Jun 15 07:52:18 UTC 2016 - wr(a)rosenauer.org
+
+- mozilla-binutils-visibility.patch to fix build issues with
+ gcc/binutils combination used in Leap 42.2 (boo#984637)
+
+-------------------------------------------------------------------
+Tue Jun 14 08:35:03 UTC 2016 - badshah400(a)gmail.com
+
+- Update mozilla-gtk3_20.patch to latest version from Fedora.
+
+-------------------------------------------------------------------
+Mon Jun 13 20:28:01 UTC 2016 - agraf(a)suse.com
+
+- Fix running on 48bit va aarch64 (bsc#984126)
+ * add patch mozilla-aarch64-48bit-va.patch
+
+-------------------------------------------------------------------
+Mon Jun 13 15:27:13 UTC 2016 - wr(a)rosenauer.org
+
+- fix XUL dialog button order under KDE session (boo#984403)
+
+-------------------------------------------------------------------
+Tue Jun 7 19:47:25 UTC 2016 - wr(a)rosenauer.org
+
+- update to Firefox 47.0 (boo#983549)
+ * Enable VP9 video codec for users with fast machines
+ * Embedded YouTube videos now play with HTML5 video if Flash is
+ not installed
+ * View and search open tabs from your smartphone or another
+ computer in a sidebar
+ * Allow no-cache on back/forward navigations for https resources
+ security fixes:
+ * MFSA 2016-49/CVE-2016-2815/CVE-2016-2818
+ (boo#983638)
+ (bmo#1241896, bmo#1242798, bmo#1243466, bmo#1245743,
+ bmo#1264300, bmo#1271037, bmo#1234147, bmo#1256493,
+ bmo#1256739, bmo#1256968, bmo#1261230, bmo#1261752,
+ bmo#1263384, bmo#1264575, bmo#1265577, bmo#1267130,
+ bmo#1269729, bmo#1273202, bmo#1273701)
+ Miscellaneous memory safety hazards (rv:47.0 / rv:45.2)
+ * MFSA 2016-50/CVE-2016-2819 (boo#983655) (bmo#1270381)
+ Buffer overflow parsing HTML5 fragments
+ * MFSA 2016-51/CVE-2016-2821 (bsc#983653) (bmo#1271460)
+ Use-after-free deleting tables from a contenteditable document
+ * MFSA 2016-52/CVE-2016-2822 (boo#983652) (bmo#1273129)
+ Addressbar spoofing though the SELECT element
+ * MFSA 2016-53/CVE-2016-2824 (boo#983651) (bmo#1248580)
+ Out-of-bounds write with WebGL shader
+ * MFSA 2016-54/CVE-2016-2825 (boo#983649) (bmo#1193093)
+ Partial same-origin-policy through setting location.host
+ through data URI
+ * MFSA 2016-56/CVE-2016-2828 (boo#983646) (bmo#1223810)
+ Use-after-free when textures are used in WebGL operations
+ after recycle pool destruction
+ * MFSA 2016-57/CVE-2016-2829 (boo#983644) (bmo#1248329)
+ Incorrect icon displayed on permissions notifications
+ * MFSA 2016-58/CVE-2016-2831 (boo#983643) (bmo#1261933)
+ Entering fullscreen and persistent pointerlock without user
+ permission
+ * MFSA 2016-59/CVE-2016-2832 (boo#983632) (bmo#1025267)
+ Information disclosure of disabled plugins through CSS
+ pseudo-classes
+ * MFSA 2016-60/CVE-2016-2833 (boo#983640) (bmo#908933)
+ Java applets bypass CSP protections
+ * MFSA 2016-62/CVE-2016-2834 (boo#983639) (bmo#1206283,
+ bmo#1221620, bmo#1241034, bmo#1241037)
+ Network Security Services (NSS) vulnerabilities
+ fixed by requiring NSS 3.23
+ packaging changes:
+ * cleanup configure options (boo#981695):
+ - notably remove GStreamer support which is gone from FF
+ * remove obsolete patches
+ - mozilla-libproxy.patch
+ - mozilla-repo.patch
+
++++ 4699 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:13.2:Update/.MozillaFirefox.5531.new/MozillaFirefox.changes
New:
----
MozillaFirefox-rpmlintrc
MozillaFirefox.changes
MozillaFirefox.desktop
MozillaFirefox.spec
_constraints
compare-locales.tar.xz
create-tar.sh
find-external-requires.sh
firefox-48.0.1-source.tar.xz
firefox-appdata.xml
firefox-branded-icons.patch
firefox-kde.patch
firefox-mimeinfo.xml
firefox-no-default-ualocale.patch
firefox.1
firefox.js
kde.js
l10n-48.0.1.tar.xz
l10n_changesets.txt
mozilla-aarch64-48bit-va.patch
mozilla-binutils-visibility.patch
mozilla-check_return.patch
mozilla-exclude-nametablecpp.patch
mozilla-flex_buffer_overrun.patch
mozilla-get-app-id
mozilla-gtk3_20.patch
mozilla-kde.patch
mozilla-language.patch
mozilla-no-stdcxx-check.patch
mozilla-nongnome-proxies.patch
mozilla-ntlm-full-path.patch
mozilla-old_configure-bmo1282843.patch
mozilla-openaes-decl.patch
mozilla-preferences.patch
mozilla-reduce-files-per-UnifiedBindings.patch
mozilla-shared-nss-db.patch
mozilla.sh.in
source-stamp.txt
spellcheck.js
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MozillaFirefox.spec ++++++
++++ 650 lines (skipped)
++++++ MozillaFirefox-rpmlintrc ++++++
addFilter("no-jar-manifest")
++++++ MozillaFirefox.desktop ++++++
[Desktop Entry]
Encoding=UTF-8
Name=%NAME
GenericName=Web Browser
Comment=Web Browser
TryExec=%EXEC
Exec=%EXEC %u
Icon=%ICON
Terminal=false
StartupNotify=true
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;application/x-xpinstall;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
Type=Application
Actions=PrivateBrowsing;
[Desktop Action PrivateBrowsing]
Name=New Private Browsing Window
Exec=%EXEC --private-window %u
++++++ create-tar.sh ++++++
#!/bin/bash
# TODO
# http://ftp.mozilla.org/pub/firefox/candidates/48.0-candidates/build2/linux-…
# "moz_source_stamp": "c1de04f39fa956cfce83f6065b0e709369215ed5"
# http://ftp.mozilla.org/pub/firefox/candidates/48.0-candidates/build2/l10n_c…
CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL"
RELEASE_TAG="f36f7ace6f48"
VERSION="48.0.1"
# mozilla
if [ -d mozilla ]; then
pushd mozilla
_repourl=$(hg paths)
case "$_repourl" in
*$BRANCH*)
echo "updating previous tree"
hg pull
popd
;;
* )
echo "removing obsolete tree"
popd
rm -rf mozilla
;;
esac
fi
if [ ! -d mozilla ]; then
echo "cloning new $BRANCH..."
hg clone http://hg.mozilla.org/$BRANCH mozilla
fi
pushd mozilla
hg update --check
[ "$RELEASE_TAG" == "default" ] || hg update -r $RELEASE_TAG
# get repo and source stamp
echo -n "REV=" > ../source-stamp.txt
hg -R . parent --template="{node|short}\n" >> ../source-stamp.txt
echo -n "REPO=" >> ../source-stamp.txt
hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" >> ../source-stamp.txt
popd
echo "creating archive..."
tar cJf firefox-$VERSION-source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS mozilla
# l10n
echo "fetching locales..."
test ! -d l10n && mkdir l10n
for locale in $(awk '{ print $1; }' mozilla/browser/locales/shipped-locales); do
case $locale in
ja-JP-mac|en-US)
;;
*)
echo "reading changeset information for $locale"
_changeset=$(grep ^$locale l10n_changesets.txt | awk '{ print $2; }')
echo "fetching $locale changeset $_changeset ..."
hg clone http://hg.mozilla.org/releases/l10n/mozilla-$CHANNEL/$locale l10n/$locale
[ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $_changeset
;;
esac
done
echo "creating l10n archive..."
tar cJf l10n-$VERSION.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg l10n
# compare-locales
echo "creating compare-locales"
hg clone http://hg.mozilla.org/build/compare-locales
tar cJf compare-locales.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg compare-locales
++++++ find-external-requires.sh ++++++
#!/bin/sh
# Finds requirements provided outside of the current file set
filelist=$( sed "s/[]['\"*?{}]/\\\\\&/g" )
provides=$( echo "$filelist" | /usr/lib/rpm/find-provides )
echo "$filelist" \
| /usr/lib/rpm/find-requires \
| grep -F -v "$provides" \
| sort -u
++++++ firefox-branded-icons.patch ++++++
# HG changeset patch
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
# Parent 2bffb52e07b587a6c755d67c6fc971fed6509783
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
--- a/browser/branding/branding-common.mozbuild
+++ b/browser/branding/branding-common.mozbuild
@@ -34,18 +34,24 @@ def FirefoxBranding():
'disk.icns',
'document.icns',
'dsstore',
'firefox.icns',
]
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
BRANDING_FILES += [
'default16.png',
+ 'default22.png',
+ 'default24.png',
+ 'default256.png',
'default32.png',
'default48.png',
'mozicon128.png',
]
FINAL_TARGET_FILES.icons += ['mozicon128.png']
FINAL_TARGET_FILES.chrome.icons.default += [
'default16.png',
+ 'default22.png',
+ 'default24.png',
+ 'default256.png',
'default32.png',
'default48.png',
]
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -650,18 +650,21 @@
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
@RESPATH@/chrome/toolkit@JAREXT@
@RESPATH@/chrome/toolkit.manifest
@RESPATH@/chrome/recording.manifest
@RESPATH@/chrome/recording/*
#ifdef MOZ_GTK
@RESPATH@/browser/chrome/icons/default/default16.png
+@RESPATH@/browser/chrome/icons/default/default22.png
+@RESPATH@/browser/chrome/icons/default/default24.png
@RESPATH@/browser/chrome/icons/default/default32.png
@RESPATH@/browser/chrome/icons/default/default48.png
+@RESPATH@/browser/chrome/icons/default/default256.png
#endif
@RESPATH@/browser/features/*
; [Webide Files]
@RESPATH@/browser/chrome/webide@JAREXT@
@RESPATH@/browser/chrome/webide.manifest
@RESPATH@/browser/@PREF_DIR@/webide-prefs.js
++++++ firefox-kde.patch ++++++
++++ 1651 lines (skipped)
++++++ firefox-no-default-ualocale.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <wr(a)rosenauer.org>
# Parent 099312626f5f7c9cb5573a61d0230574ee12a660
# Parent b692fb539e9d0641ff557cb4b984b5e211aec572
Do not overwrite the locale dynamic pref from xulrunner's all.js with a wrong default value
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -240,17 +240,17 @@ pref("browser.uitour.readerViewTrigger",
pref("browser.uitour.surveyDuration", 7200);
pref("browser.customizemode.tip0.shown", false);
pref("browser.customizemode.tip0.learnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/customize");
pref("keyword.enabled", true);
pref("browser.fixup.domainwhitelist.localhost", true);
-pref("general.useragent.locale", "@AB_CD@");
+pref("general.useragent.locale", "chrome://global/locale/intl.properties");
pref("general.skins.selectedSkin", "classic/1.0");
pref("general.smoothScroll", true);
#ifdef UNIX_BUT_NOT_MAC
pref("general.autoScroll", false);
#else
pref("general.autoScroll", true);
#endif
++++++ firefox.1 ++++++
.TH FIREFOX 1 "January 04, 2006" firefox "Linux User's Manual"
.SH NAME
firefox \- a Web browser for X11 derived from the Mozilla browser
.SH SYNOPSIS
.B firefox
[\fIOPTIONS\fR] [\fIURL\fR]
.SH DESCRIPTION
\fBMozilla Firefox\fR is an open-source web browser, designed for
standards compliance, performance and portability.
.SH USAGE
\fBfirefox\fR is a simple shell script that will set up the
environment for the actual executable.
.SH OPTIONS
A summary of the options supported by \fBfirefox\fR is included below.
.SS "GTK options"
\fB\-\-gdk-debug=\fR\fIFLAGS\fR
Gdk debugging flags to set
.TP
\fB\-\-gdk-no-debug=\fR\fIFLAGS\fR
Gdk debugging flags to unset
.TP
\fB\-\-gtk-debug=\fR\fIFLAGS\fR
Gtk+ debugging flags to set
.TP
\fB\-\-gtk-no-debug=\fR\fIFLAGS\fR
Gtk+ debugging flags to unset
.TP
\fB\-\-gtk-module=\fR\fIMODULE\fR
Load an additional Gtk module
.SS "X11 options"
.TP
.BI \-\-display= DISPLAY
X display to use
.TP
.B \--sync
Make X calls synchronous
.TP
.B \-\-no-xshm
Don't use X shared memory extension
.TP
.BI \-\-xim-preedit= STYLE
.TP
.BI \-\-xim-status= STYLE
.TP
.B \-\-g-fatal-warnings
Make all warnings fatal
.SS "Firefox options"
.TP
.B \-h, \-help
Show summary of options.
.TP
\fB\-height\fR \fIvalue\fR
Set height of startup window to \fIvalue\fR.
.TP
\fB\-width\fR \fIvalue\fR
Set width of startup window to \fIvalue\fR.
.TP
.B \-v, \-version
Print \fB/usr/bin/firefox-bin\fR version.
.TP
\fB\-CreateProfile\fR \fIprofile\fR
Create \fIprofile\fR.
.TP
\fB\-P\fR \fIprofile\fR
Start with \fIprofile\fR.
.TP
.B \-ProfileManager
Start with profile manager.
.TP
\fB\-UILocale\fR \fIlang-region\fR
Start with \fIlang-region\fR resources.
.TP
\fB\-contentLocale\fR \fIlang-region\fR
Start with \fIlang-region\fR resources.
.TP
\fB\-remote\fR \fIcommand\fR
Execute \fIcommand\fR in an already running Firefox process. For more info,
see: \fIhttp://www.mozilla.org/unix/remote.html\fR
.TP
.B \-no-remote
Don't try to control an already running instance.
.TP
.B \-jsconsole
Start with Javascript Console
.TP
\fB\-chrome\fR \fIurl\fR
Load the specified chrome.
.TP
\fB\-new-window\fR \fIurl\fR
Open URL in a new window if Firefox is already running.
.TP
\fB\-new-tab\fR \fIurl\fR
Open URL in a new tab if Firefox is already running.
.TP
\fB\-preferences\fR
Open Firefox preferences menu.
.TP
.B \-safe-mode
Disables extensions and themes for this session.
.TP
.SH FILES
\fI/usr/bin/firefox\fR - shell script wrapping
\fBfirefox\fR
.br
\fI/usr/lib/firefox/firefox\fR - \fBfirefox\fR
executable
.SH VERSION
3.0
.SH BUGS
To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR
.SH "SEE ALSO"
.BR mozilla(1)
.SH AUTHORS
.TP
.B The Mozilla Organization
.I http://www.mozilla.org/about.html
++++++ firefox.js ++++++
pref("browser.preferences.instantApply", true);
++++++ kde.js ++++++
pref("browser.preferences.instantApply", false);
++++++ l10n_changesets.txt ++++++
ach 9a0c8e338b70
af 9347b8c9ba47
an 1ecc480527e8
ar ac8018039f0f
as 39c28ddc51af
ast 719f95e0804a
az 58d1d9f5ebc6
be b72077740aac
bg 9f7507dd2b92
bn-BD 1dac94619464
bn-IN a2ea6b87d80d
br d36eef485e1f
bs cfee6f5b1e50
ca 55814ed0a2ee
cak 318aec440030
cs 76c75ca48864
cy 927c83f85620
da f1eafef10b33
de 3d5d819eedd7
dsb 91c722147298
el 22b959c9a739
en-GB 595e192dd7a4
en-ZA 52a936eeeea1
eo 1928e5a7ee7d
es-AR 4c9cfef714f5
es-CL c34f36c5864f
es-ES d069f54e79f2
es-MX 198b582408f2
et 0568132def4f
eu 4a534a844d9b
fa c64ea222eb3a
ff 8373353b43c4
fi 4133735f9efd
fr 94568a74633b
fy-NL c001da131ecd
ga-IE 1665e942f19f
gd b4f76dd70e9a
gl c869caff337a
gn 65b2894520b6
gu-IN 6245b4309461
he 1a14924e99aa
hi-IN bba2a926e4f8
hr 5e68406d5630
hsb a9ba140dbbf2
hu d78bc92a737a
hy-AM 723627d1c0a4
id d84757c01f40
is e45ec009a0fc
it f04290f688b9
ja 7546335099a5
ja-JP-mac 9ecf2e1d8ea0
kk 188c4eac0a48
km 339790840ac1
kn a7e2c93d27ad
ko cbaf8af7159e
lij e9113fac3a93
lt 70491a0f5ef0
lv 918ea0cd0aca
mai ce010a305377
mk ffdf2a789185
ml 1b85d75836cd
mr a6fa1813c5c9
ms 41bbf86ac0d9
nb-NO 5155fd334299
nl c6d2a72aec88
nn-NO 3569b6691b3b
or febd1b04dbfc
pa-IN 6c5ed1be55fb
pl 19563918fa48
pt-BR ba6e3510ab03
pt-PT 258b18a5c29b
rm 5c20929daf23
ro b1baa279bda4
ru 622cafa42a39
si 03a3b09a2203
sk 342049b6b66a
sl 6079300745a1
son d135d14fa4ea
sq bc47aefcea37
sr 2b6454805bc1
sv-SE 44ab4d9a6718
ta 17f88001ad3b
te 286ff9885ea2
th b7e1170de8c9
tr 13c52b19c0a1
uk c84dad1572cf
uz 1209fe62df1c
vi 68ce305343a3
xh 8466fb6c8797
zh-CN 693cfbea8412
zh-TW 380aaa88dbf5
++++++ mozilla-aarch64-48bit-va.patch ++++++
# HG changeset patch
# User Zheng Xu <zheng.xu(a)linaro.org>
# Date 1464657720 -7200
# Node ID dfaafbaaa2919a033c4c0abdd5830f4ea413bed6
# Parent 499f16ca85ec48d1896a1633730715f32bd62140
Bug 1143022 - Manually mmap on arm64 to ensure high 17 bits are clear. r=ehoogeveen
There might be 48-bit VA on arm64 depending on kernel configuration.
Manually mmap heap memory to align with the assumption made by JS engine.
diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
--- a/js/src/gc/Memory.cpp
+++ b/js/src/gc/Memory.cpp
@@ -430,17 +430,17 @@ InitMemorySubsystem()
if (pageSize == 0)
pageSize = allocGranularity = size_t(sysconf(_SC_PAGESIZE));
}
static inline void*
MapMemoryAt(void* desired, size_t length, int prot = PROT_READ | PROT_WRITE,
int flags = MAP_PRIVATE | MAP_ANON, int fd = -1, off_t offset = 0)
{
-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__)
MOZ_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0);
#endif
void* region = mmap(desired, length, prot, flags, fd, offset);
if (region == MAP_FAILED)
return nullptr;
/*
* mmap treats the given address as a hint unless the MAP_FIXED flag is
* used (which isn't usually what you want, as this overrides existing
@@ -480,16 +480,51 @@ MapMemory(size_t length, int prot = PROT
* as out of memory.
*/
if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
if (munmap(region, length))
MOZ_ASSERT(errno == ENOMEM);
return nullptr;
}
return region;
+#elif defined(__aarch64__)
+ /*
+ * There might be similar virtual address issue on arm64 which depends on
+ * hardware and kernel configurations. But the work around is slightly
+ * different due to the different mmap behavior.
+ *
+ * TODO: Merge with the above code block if this implementation works for
+ * ia64 and sparc64.
+ */
+ const uintptr_t start = UINT64_C(0x0000070000000000);
+ const uintptr_t end = UINT64_C(0x0000800000000000);
+ const uintptr_t step = ChunkSize;
+ /*
+ * Optimization options if there are too many retries in practice:
+ * 1. Examine /proc/self/maps to find an available address. This file is
+ * not always available, however. In addition, even if we examine
+ * /proc/self/maps, we may still need to retry several times due to
+ * racing with other threads.
+ * 2. Use a global/static variable with lock to track the addresses we have
+ * allocated or tried.
+ */
+ uintptr_t hint;
+ void* region = MAP_FAILED;
+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) {
+ region = mmap((void*)hint, length, prot, flags, fd, offset);
+ if (region != MAP_FAILED) {
+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
+ if (munmap(region, length)) {
+ MOZ_ASSERT(errno == ENOMEM);
+ }
+ region = MAP_FAILED;
+ }
+ }
+ }
+ return region == MAP_FAILED ? nullptr : region;
#else
void* region = MozTaggedAnonymousMmap(nullptr, length, prot, flags, fd, offset, "js-gc-heap");
if (region == MAP_FAILED)
return nullptr;
return region;
#endif
}
diff --git a/js/src/jsapi-tests/testGCAllocator.cpp b/js/src/jsapi-tests/testGCAllocator.cpp
--- a/js/src/jsapi-tests/testGCAllocator.cpp
+++ b/js/src/jsapi-tests/testGCAllocator.cpp
@@ -307,48 +307,72 @@ void* mapMemoryAt(void* desired, size_t
void* mapMemory(size_t length) { return nullptr; }
void unmapPages(void* p, size_t size) { }
#elif defined(XP_UNIX)
void*
mapMemoryAt(void* desired, size_t length)
{
-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__)
MOZ_RELEASE_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0);
#endif
void* region = mmap(desired, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
if (region == MAP_FAILED)
return nullptr;
if (region != desired) {
if (munmap(region, length))
MOZ_RELEASE_ASSERT(errno == ENOMEM);
return nullptr;
}
return region;
}
void*
mapMemory(size_t length)
{
- void* hint = nullptr;
+ int prot = PROT_READ | PROT_WRITE;
+ int flags = MAP_PRIVATE | MAP_ANON;
+ int fd = -1;
+ off_t offset = 0;
+ // The test code must be aligned with the implementation in gc/Memory.cpp.
#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
- hint = (void*)0x0000070000000000ULL;
-#endif
- void* region = mmap(hint, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
+ void* region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset);
if (region == MAP_FAILED)
return nullptr;
-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
- if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000ULL) {
+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
if (munmap(region, length))
MOZ_RELEASE_ASSERT(errno == ENOMEM);
return nullptr;
}
+ return region;
+#elif defined(__aarch64__)
+ const uintptr_t start = UINT64_C(0x0000070000000000);
+ const uintptr_t end = UINT64_C(0x0000800000000000);
+ const uintptr_t step = ChunkSize;
+ uintptr_t hint;
+ void* region = MAP_FAILED;
+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) {
+ region = mmap((void*)hint, length, prot, flags, fd, offset);
+ if (region != MAP_FAILED) {
+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
+ if (munmap(region, length)) {
+ MOZ_RELEASE_ASSERT(errno == ENOMEM);
+ }
+ region = MAP_FAILED;
+ }
+ }
+ }
+ return region == MAP_FAILED ? nullptr : region;
+#else
+ void* region = mmap(nullptr, length, prot, flags, fd, offset);
+ if (region == MAP_FAILED)
+ return nullptr;
+ return region;
#endif
- return region;
}
void
unmapPages(void* p, size_t size)
{
if (munmap(p, size))
MOZ_RELEASE_ASSERT(errno == ENOMEM);
}
++++++ mozilla-binutils-visibility.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <wr(a)rosenauer.org>
# Parent 83bc32d997c714b607db1ffa71f02b30e1484a75
From: NetBSD
Subject: Workaround for gcc/binutils combination in Leap 42.2
References:
https://bugzilla.opensuse.org/show_bug.cgi?id=984637
diff --git a/xpcom/components/Module.h b/xpcom/components/Module.h
--- a/xpcom/components/Module.h
+++ b/xpcom/components/Module.h
@@ -120,17 +120,17 @@ struct Module
#if defined(MOZILLA_INTERNAL_API)
# define NSMODULE_NAME(_name) _name##_NSModule
# if defined(_MSC_VER)
# pragma section(".kPStaticModules$M", read)
# pragma comment(linker, "/merge:.kPStaticModules=.rdata")
# define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$M"), dllexport)
# elif defined(__GNUC__)
# if defined(__ELF__)
-# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("protected")))
+# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("default")))
# elif defined(__MACH__)
# define NSMODULE_SECTION __attribute__((section("__DATA, .kPStaticModules"), visibility("default")))
# elif defined (_WIN32)
# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), dllexport))
# endif
# endif
# if !defined(NSMODULE_SECTION)
# error Do not know how to define sections.
++++++ mozilla-check_return.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <wr(a)rosenauer.org>
# Parent 5f8b5e8163ece92dc819896dd52b9dbf5f524fe3
diff --git a/media/libstagefright/binding/include/mp4_demuxer/ByteWriter.h b/media/libstagefright/binding/include/mp4_demuxer/ByteWriter.h
--- a/media/libstagefright/binding/include/mp4_demuxer/ByteWriter.h
+++ b/media/libstagefright/binding/include/mp4_demuxer/ByteWriter.h
@@ -19,57 +19,64 @@ public:
{
}
~ByteWriter()
{
}
void WriteU8(uint8_t aByte)
{
- mPtr.append(aByte);
+ bool rv;
+ rv = mPtr.append(aByte);
}
void WriteU16(uint16_t aShort)
{
uint8_t c[2];
+ bool rv;
mozilla::BigEndian::writeUint16(&c[0], aShort);
- mPtr.append(&c[0], 2);
+ rv = mPtr.append(&c[0], 2);
}
void WriteU32(uint32_t aLong)
{
uint8_t c[4];
+ bool rv;
mozilla::BigEndian::writeUint32(&c[0], aLong);
- mPtr.append(&c[0], 4);
+ rv = mPtr.append(&c[0], 4);
}
void Write32(int32_t aLong)
{
uint8_t c[4];
+ bool rv;
mozilla::BigEndian::writeInt32(&c[0], aLong);
- mPtr.append(&c[0], 4);
+ rv = mPtr.append(&c[0], 4);
}
void WriteU64(uint64_t aLongLong)
{
uint8_t c[8];
+ bool rv;
mozilla::BigEndian::writeUint64(&c[0], aLongLong);
- mPtr.append(&c[0], 8);
+ rv = mPtr.append(&c[0], 8);
}
void Write64(int64_t aLongLong)
{
uint8_t c[8];
+ bool rv;
mozilla::BigEndian::writeInt64(&c[0], aLongLong);
- mPtr.append(&c[0], 8);
+ rv = mPtr.append(&c[0], 8);
}
void Write(const uint8_t* aSrc, size_t aCount)
{
- mPtr.append(aSrc, aCount);
+ bool rv;
+ rv = mPtr.append(aSrc, aCount);
}
private:
mozilla::Vector<uint8_t>& mPtr;
};
}
#endif
++++++ mozilla-exclude-nametablecpp.patch ++++++
# HG changeset patch
# User Jonathan Kew <jkew(a)mozilla.com>
# Date 1463581374 -3600
# Node ID 9c57b7cacffc57ec3919a2cf3b5ce861e0cf3842
# Parent ea7843420fe518b772c7b259d8ff47193fc5b79e
Bug 1272647 - Exclude NameTable.cpp from unified compilation because #include <cmath> in other source files causes gcc6 compilation failure. r=bas
diff --git a/gfx/graphite2/src/moz.build b/gfx/graphite2/src/moz.build
--- a/gfx/graphite2/src/moz.build
+++ b/gfx/graphite2/src/moz.build
@@ -40,30 +40,35 @@ UNIFIED_SOURCES += [
'gr_features.cpp',
'gr_font.cpp',
'gr_logging.cpp',
'gr_segment.cpp',
'gr_slot.cpp',
'Intervals.cpp',
'json.cpp',
'Justifier.cpp',
- 'NameTable.cpp',
'Pass.cpp',
'Position.cpp',
'SegCache.cpp',
'SegCacheEntry.cpp',
'SegCacheStore.cpp',
'Segment.cpp',
'Silf.cpp',
'Slot.cpp',
'Sparse.cpp',
'TtfUtil.cpp',
'UtfCodec.cpp',
]
+# Excluded from UNIFIED_SOURCES because <cmath> from other files breaks it,
+# see bug 1272647.
+SOURCES += [
+ 'NameTable.cpp',
+]
+
# tell graphite2 not to export symbols, we'll be linking it directly with
# thebes
DEFINES['GRAPHITE2_STATIC'] = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True
FINAL_LIBRARY = 'gkmedias'
++++++ mozilla-flex_buffer_overrun.patch ++++++
# HG changeset patch
# Parent c8e8364b303892fdb5a574b96411d2d8f699a15e
Patch lexical parser files generated by flex which may be potentially
exploitable in a buffer overrun. These seem to come from an upstream projects
(CMU Sphinx and ANGLE) so it should be fixed there in the first place.
CVE-2016-6354
https://bugzilla.suse.com/show_bug.cgi?id=990856
diff --git a/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp b/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp
--- a/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp
+++ b/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp
@@ -1375,17 +1375,17 @@ static int yy_get_next_buffer (yyscan_t
if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
else
{
- yy_size_t num_to_read =
+ int num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
diff --git a/gfx/angle/src/compiler/translator/glslang_lex.cpp b/gfx/angle/src/compiler/translator/glslang_lex.cpp
--- a/gfx/angle/src/compiler/translator/glslang_lex.cpp
+++ b/gfx/angle/src/compiler/translator/glslang_lex.cpp
@@ -2269,17 +2269,17 @@ static int yy_get_next_buffer (yyscan_t
if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
else
{
- yy_size_t num_to_read =
+ int num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
diff --git a/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c b/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c
--- a/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c
+++ b/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c
@@ -1242,17 +1242,17 @@ static int yy_get_next_buffer (yyscan_t
if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
else
{
- yy_size_t num_to_read =
+ int num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
++++++ mozilla-get-app-id ++++++
#!/usr/bin/perl -w
use XML::Simple;
my $file = shift || die "Usage: $0 [install.rdf|somefile.xpi]\n";
my $xml;
if ($file =~ /\.xpi$/) {
use Archive::Zip qw/:ERROR_CODES :CONSTANTS/;
my $zip = Archive::Zip->new();
if ( $zip->read($file) != AZ_OK ) {
die "zip file read error\n";
}
my $data = $zip->contents("install.rdf");
die "missing install.rdf in $file\n" unless $data;
$xml = XMLin($data) || die "$!\n";
} elsif ($file =~ /install.rdf/) {
$xml = XMLin($file) || die "$!\n";
} else {
die "unsupported file format\n";
}
my $desc;
for my $tag (qw/RDF:Description Description/) {
if (exists $xml->{$tag}) {
if (ref $xml->{$tag} eq 'ARRAY') {
$desc = $xml->{$tag};
} else {
$desc = [ $xml->{$tag} ];
}
}
}
my $uuid;
my $id;
for my $x (@$desc) {
if ($x->{"em:id"} =~ /{[[:xdigit:]]+-/) {
print STDERR "Warning: multiple uuids!\n" if defined $uuid;
$uuid = $x->{"em:id"};
} elsif ($x->{"em:id"} =~ /@/) {
print STDERR "Warning: multiple ids!\n" if defined $id;
$id = $x->{"em:id"};
}
}
if (defined $id) {
print "$id\n";
} elsif (defined $uuid) {
print "$uuid\n";
} else {
exit 1;
}
++++++ mozilla-gtk3_20.patch ++++++
++++ 2334 lines (skipped)
++++++ mozilla-kde.patch ++++++
++++ 3791 lines (skipped)
++++++ mozilla-language.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <wr(a)rosenauer.org>
# Parent 5a29924228527f8882c83cf62d470963ea1ce62e
# Parent 55b6ae7fd3ebf28f960031801f1948dfc1bd80d2
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
--- a/intl/locale/nsLocaleService.cpp
+++ b/intl/locale/nsLocaleService.cpp
@@ -122,16 +122,17 @@ nsLocaleService::nsLocaleService(void)
RefPtr<nsLocale> resultLocale(new nsLocale());
NS_ENSURE_TRUE_VOID(resultLocale);
#ifdef MOZ_WIDGET_QT
const char* lang = QLocale::system().name().toUtf8();
#else
// Get system configuration
const char* lang = getenv("LANG");
+ const char* language = getenv("LANGUAGE");
#endif
nsAutoString xpLocale, platformLocale;
nsAutoString category, category_platform;
int i;
for( i = 0; i < LocaleListLength; i++ ) {
nsresult result;
@@ -158,16 +159,21 @@ nsLocaleService::nsLocaleService(void)
} else {
CopyASCIItoUTF16(lang, platformLocale);
result = nsPosixLocale::GetXPLocale(lang, xpLocale);
}
}
if (NS_FAILED(result)) {
return;
}
+ // LANGUAGE is overriding LC_MESSAGES
+ if (i == LC_MESSAGES && language && *language) {
+ CopyASCIItoUTF16(language, platformLocale);
+ result = nsPosixLocale::GetXPLocale(language, xpLocale);
+ }
resultLocale->AddCategory(category, xpLocale);
resultLocale->AddCategory(category_platform, platformLocale);
}
mSystemLocale = do_QueryInterface(resultLocale);
mApplicationLocale = do_QueryInterface(resultLocale);
#endif // XP_UNIX
++++++ mozilla-no-stdcxx-check.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <wr(a)rosenauer.org>
# Parent e96e9b3997ea31024687aaa1e9aa5ccf78bc0ee9
diff --git a/config/config.mk b/config/config.mk
--- a/config/config.mk
+++ b/config/config.mk
@@ -653,17 +653,16 @@ ifeq ($(MOZ_WIDGET_TOOLKIT),android)
# of the linker command line), if libmozglue.so ends up after libc.so, all
# hell breaks loose, so better safe than sorry, and check it's actually the
# case.
CHECK_MOZGLUE_ORDER = @$(TOOLCHAIN_PREFIX)readelf -d $(1) | grep NEEDED | awk '{ libs[$$NF] = ++n } END { if (libs["[libmozglue.so]"] && libs["[libc.so]"] < libs["[libmozglue.so]"]) { print "libmozglue.so must be linked before libc.so"; exit 1 } }'
endif
define CHECK_BINARY
$(call CHECK_GLIBC,$(1))
-$(call CHECK_STDCXX,$(1))
$(call CHECK_TEXTREL,$(1))
$(call LOCAL_CHECKS,$(1))
$(call CHECK_MOZGLUE_ORDER,$(1))
endef
# autoconf.mk sets OBJ_SUFFIX to an error to avoid use before including
# this file
OBJ_SUFFIX := $(_OBJ_SUFFIX)
++++++ mozilla-nongnome-proxies.patch ++++++
From: Wolfgang Rosenauer
Subject: Do not use gconf for proxy settings if not running within Gnome
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
===================================================================
RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
retrieving revision 1.1
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
@@ -53,23 +53,27 @@ nsUnixSystemProxySettings::GetMainThread
// dbus prevents us from being threadsafe, but this routine should not block anyhow
*aMainThreadOnly = true;
return NS_OK;
}
nsresult
nsUnixSystemProxySettings::Init()
{
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
- if (mGSettings) {
- mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
- getter_AddRefs(mProxySettings));
- }
- if (!mProxySettings) {
- mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+ // only use GSettings if that is a GNOME session
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
+ if (sessionType && !strcmp(sessionType, "gnome")) {
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+ if (mGSettings) {
+ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
+ getter_AddRefs(mProxySettings));
+ }
+ if (!mProxySettings) {
+ mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+ }
}
return NS_OK;
}
bool
nsUnixSystemProxySettings::IsProxyMode(const char* aMode)
{
++++++ mozilla-ntlm-full-path.patch ++++++
# HG changeset patch
# User Petr Cerny <pcerny(a)novell.com>
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
# Parent 03565086f1e230cf6f0f6c01bf9a792c732de50b
Bug 634334 - call to the ntlm_auth helper fails
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -169,17 +169,17 @@ static uint8_t* ExtractMessage(const nsA
nsresult
nsAuthSambaNTLM::SpawnNTLMAuthHelper()
{
const char* username = PR_GetEnv("USER");
if (!username)
return NS_ERROR_FAILURE;
const char* const args[] = {
- "ntlm_auth",
+ "/usr/bin/ntlm_auth",
"--helper-protocol", "ntlmssp-client-1",
"--use-cached-creds",
"--username", username,
nullptr
};
bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID, &mFromChildFD, &mToChildFD);
if (!isOK)
++++++ mozilla-old_configure-bmo1282843.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <wr(a)rosenauer.org>
# Parent 2a0e5188c796cb2addedd185aba6176405786854
Bug 1282843 - configure.py doesn't parse global autoconf options like --libdir
without assuming libdir during build we do not find plugins/extensions in the correct system directory
diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure
--- a/build/moz.configure/old.configure
+++ b/build/moz.configure/old.configure
@@ -149,16 +149,19 @@ def old_configure_options(*options):
def all_options(help):
return list(options)
return depends(prepare_configure, extra_old_configure_args, all_options,
*options)
@old_configure_options(
+ '--libdir',
+ '--includedir',
+ '--datadir',
'--cache-file',
'--enable-accessibility',
'--enable-address-sanitizer',
'--enable-alsa',
'--enable-android-omx',
'--enable-android-resource-constrained',
'--enable-approximate-location',
'--enable-b2g-bt',
++++++ mozilla-openaes-decl.patch ++++++
# HG changeset patch
# Parent 33024abb3c58dab7239e32388df58e14f99defd5
# User Wolfgang Rosenauer <wr(a)rosenauer.org>
# Parent 17196b2f3cd2bcba6a5b54f4496b5762a593c5b3
diff --git a/media/gmp-clearkey/0.1/openaes/oaes_lib.c b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
--- a/media/gmp-clearkey/0.1/openaes/oaes_lib.c
+++ b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
@@ -24,16 +24,17 @@
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* ---------------------------------------------------------------------------
*/
#include <stdlib.h>
+#include <stdio.h>
#include <stddef.h>
#include <time.h>
#include <string.h>
#include "mozilla/Snprintf.h"
#ifdef WIN32
#include <process.h>
++++++ mozilla-preferences.patch ++++++
From: Wolfgang Rosenauer <wr(a)rosenauer.org>
Subject: use system locale if available
This setting used to live in the branding-openSUSE package but this is causing too much
confusion and therefore is currently the only setting we switch in the unbranded
package unconditionally.
# HG changeset patch
# Parent 8c1bfc96b05ef1836aad6e9f2af323f63ed1b69c
# Parent 35b625807600ea4a5a3c49bd1cab22fac5188406
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -1790,17 +1790,17 @@ pref("converter.html2txt.always_include_
pref("intl.accept_languages", "chrome://global/locale/intl.properties");
pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties");
pref("intl.menuitems.insertseparatorbeforeaccesskeys","chrome://global/locale/intl.properties");
pref("intl.charset.detector", "chrome://global/locale/intl.properties");
pref("intl.charset.fallback.override", "");
pref("intl.charset.fallback.tld", true);
pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties");
-pref("intl.locale.matchOS", false);
+pref("intl.locale.matchOS", true);
// fallback charset list for Unicode conversion (converting from Unicode)
// currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
// for ISO-8859-1
pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252");
pref("font.language.group", "chrome://global/locale/intl.properties");
// Android-specific pref to use key-events-only mode for IME-unaware webapps.
#ifdef MOZ_WIDGET_ANDROID
++++++ mozilla-reduce-files-per-UnifiedBindings.patch ++++++
From: Andreas Stieger <astieger(a)suse.com>
Date: Fri, 26 Feb 2016 16:20:09 +0000
Subject: For UnifiedBindings*.cpp files, reduce number of files per unified file
Upstream: no
home/abuild/rpmbuild/BUILD/obj/dom/bindings/UnifiedBindings16.cpp
[ 1589s] UnifiedBindings17.o
[ 1612s] [ 1567.621989] Out of memory: Kill process 19849 (cc1plus) score 170 or sacrifice child
[ 1612s] [ 1567.625099] Killed process 19849 (cc1plus) total-vm:905704kB, anon-rss:102500kB, file-rss:156kB
[ 1616s] {standard input}: Assembler messages:
[ 1616s] {standard input}:316015: Warning: end of file not at end of a line; newline inserted
[ 1635s] {standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive
[ 1636s] c++: internal compiler error: Killed (program cc1plus)
[ 1636s] Please submit a full bug report,
Index: mozilla/python/mozbuild/mozbuild/backend/common.py
===================================================================
--- mozilla.orig/python/mozbuild/mozbuild/backend/common.py 2016-02-26 17:19:30.331667693 +0100
+++ mozilla/python/mozbuild/mozbuild/backend/common.py 2016-02-26 17:19:39.792569676 +0100
@@ -333,7 +333,7 @@ class CommonBackend(BuildBackend):
unified_source_mapping = list(group_unified_files(webidls.all_regular_cpp_basenames(),
unified_prefix='UnifiedBindings',
unified_suffix='cpp',
- files_per_unified_file=32))
+ files_per_unified_file=16))
self._write_unified_files(unified_source_mapping, bindings_dir,
poison_windows_h=True)
self._handle_webidl_build(bindings_dir, unified_source_mapping,
++++++ mozilla-shared-nss-db.patch ++++++
From: Hans Petter Jansson <hpj(a)copyleft.no>
Wolfgang Rosenauer <wr(a)rosenauer.org>
Subject: use libnsssharedhelper if available at compile time
(can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:
diff --git a/old-configure.in b/old-configure.in
--- a/old-configure.in
+++ b/old-configure.in
@@ -6495,16 +6495,31 @@ if test "$MOZ_ENABLE_SKIA"; then
AC_DEFINE(USE_SKIA_GPU)
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
fi
fi
AC_SUBST(MOZ_ENABLE_SKIA)
AC_SUBST_LIST(SKIA_INCLUDES)
dnl ========================================================
+dnl Check for nss-shared-helper
+dnl ========================================================
+
+ PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
+ [MOZ_ENABLE_NSSHELPER=1],
+ [MOZ_ENABLE_NSSHELPER=])
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+ AC_DEFINE(MOZ_ENABLE_NSSHELPER)
+fi
+AC_SUBST(MOZ_ENABLE_NSSHELPER)
+AC_SUBST_LIST(NSSHELPER_CFLAGS)
+AC_SUBST_LIST(NSSHELPER_LIBS)
+
+dnl ========================================================
dnl disable xul
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(xul,
[ --disable-xul Disable XUL],
MOZ_XUL= )
if test "$MOZ_XUL"; then
AC_DEFINE(MOZ_XUL)
else
diff --git a/security/manager/ssl/moz.build b/security/manager/ssl/moz.build
--- a/security/manager/ssl/moz.build
+++ b/security/manager/ssl/moz.build
@@ -159,16 +159,19 @@ if CONFIG['MOZ_XUL']:
]
UNIFIED_SOURCES += [
'md4.c',
]
FINAL_LIBRARY = 'xul'
+CXXFLAGS += sorted(CONFIG['NSSHELPER_CFLAGS'])
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
+
LOCAL_INCLUDES += [
'/dom/base',
'/dom/crypto',
'/security/certverifier',
'/security/pkix/include',
]
LOCAL_INCLUDES += [
diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
--- a/security/manager/ssl/nsNSSComponent.cpp
+++ b/security/manager/ssl/nsNSSComponent.cpp
@@ -1,14 +1,21 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifdef MOZ_ENABLE_NSSHELPER
+#pragma GCC visibility push(default)
+#include <nss-shared-helper.h>
+#pragma GCC visibility pop
+#include "prenv.h"
+#endif
+
#include "nsNSSComponent.h"
#include "ExtendedValidation.h"
#include "NSSCertDBTrustDomain.h"
#include "ScopedNSSTypes.h"
#include "SharedSSLState.h"
#include "cert.h"
#include "certdb.h"
@@ -1491,17 +1498,31 @@ nsNSSComponent::InitializeNSS()
return rv;
}
}
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("inSafeMode: %u\n", inSafeMode));
if (!nocertdb && !profileStr.IsEmpty()) {
// First try to initialize the NSS DB in read/write mode.
// Only load PKCS11 modules if we're not in safe mode.
+#ifdef MOZ_ENABLE_NSSHELPER
+ if (PR_GetEnv("MOZ_XRE_NO_NSSHELPER")) {
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
+ } else {
+ uint32_t flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE;
+ init_rv = ::nsshelp_open_db ("Firefox", profileStr.get(), flags);
+
+ if (init_rv != SECSuccess) {
+ MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
+ }
+ }
+#else
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
+#endif
// If that fails, attempt read-only mode.
if (init_rv != SECSuccess) {
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init NSS r/w in %s\n", profileStr.get()));
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), true, !inSafeMode);
}
if (init_rv != SECSuccess) {
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init in r/o either\n"));
}
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -209,16 +209,18 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
OS_LIBS += [
'rt',
]
OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
OS_LIBS += CONFIG['MOZ_SERVO_LIBS']
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
+
if CONFIG['MOZ_SYSTEM_JPEG']:
OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
if CONFIG['MOZ_SYSTEM_PNG']:
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
if CONFIG['MOZ_SYSTEM_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
++++++ mozilla.sh.in ++++++
#!/bin/sh
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org Code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Wolfgang Rosenauer <wolfgang.rosenauer(a)suse.de>
# <wr(a)rosenauer.org>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
##
## Usage:
##
## $ mozilla [args]
##
## This script is meant to run a mozilla program from the mozilla
## rpm installation.
##
## The script will setup all the environment voodoo needed to make
## mozilla work.
cmdname=`basename $0`
##
## Variables
##
MOZ_DIST_BIN="%PREFIX"
MOZ_DIST_LIB="%PROGDIR"
MOZ_APPNAME="%APPNAME"
MOZ_PROGRAM="$MOZ_DIST_LIB/$MOZ_APPNAME"
MOZ_APP_LAUNCHER="$MOZ_DIST_LIB/$MOZ_APPNAME.sh"
if [ "$0" = "$MOZ_APP_LAUNCHER" ]; then
[ -h "/usr/bin/$MOZ_APPNAME" ] && \
_link=$(readlink -f "/usr/bin/$MOZ_APPNAME")
if [ "$_link" = "$MOZ_APP_LAUNCHER" ]; then
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
fi
else
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
fi
mozilla_lib=`file $MOZ_PROGRAM`
LIB=lib
echo $mozilla_lib | grep -q -E 'ELF.64-bit.*(x86-64|S/390|PowerPC)' && LIB=lib64
BROWSER_PLUGIN_DIR=/usr/$LIB/browser-plugins
if [ ! -d $BROWSER_PLUGIN_DIR ]; then
BROWSER_PLUGIN_DIR=/opt/netscape/plugins
fi
MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
export MOZILLA_FIVE_HOME
LD_LIBRARY_PATH=$MOZ_DIST_LIB${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
# needed for SUN Java under Xorg >= 7.2
export LIBXCB_ALLOW_SLOPPY_LOCK=1
##
if [ -z "$MOZ_PLUGIN_PATH" ]; then
export MOZ_PLUGIN_PATH=$BROWSER_PLUGIN_DIR
else
# make sure that BROWSER_PLUGIN_DIR is in MOZ_PLUGIN_PATH
echo "$MOZ_PLUGIN_PATH" | grep "$BROWSER_PLUGIN_DIR" 2>&1 >/dev/null
_retval=$?
if [ ${_retval} -ne 0 ]; then
export MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$BROWSER_PLUGIN_DIR
fi
fi
# disable Gnome crash dialog (doesn't make sense anyway)
export GNOME_DISABLE_CRASH_DIALOG=1
moz_debug=0
script_args=""
pass_arg_count=0
while [ $# -gt $pass_arg_count ]
do
case "$1" in
-d | --debugger)
moz_debugger=$2;
if [ "${moz_debugger}" != "" ]; then
shift 2
moz_debug=1
else
echo "-d requires an argument"
exit 1
fi
;;
*)
# Move the unrecognized argument to the end of the list.
arg="$1"
shift
set -- "$@" "$arg"
pass_arg_count=`expr $pass_arg_count + 1`
;;
esac
done
if [ $moz_debug -eq 1 ]; then
tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; }
trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
echo "set args ${1+"$@"}" > $tmpfile
echo "run" >> $tmpfile
echo "$moz_debugger $MOZ_PROGRAM -x $tmpfile"
exec $moz_debugger "$MOZ_PROGRAM" -x $tmpfile
else
exec $MOZ_PROGRAM "$@"
fi
++++++ source-stamp.txt ++++++
REV=f36f7ace6f48
REPO=http://hg.mozilla.org/releases/mozilla-release
++++++ spellcheck.js ++++++
pref("spellchecker.dictionary_path", "/usr/share/myspell");
1
0
Hello community,
here is the log from the commit of package patchinfo.4662 for openSUSE:13.1:Update checked in at 2016-08-29 11:27:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/patchinfo.4662 (Old)
and /work/SRC/openSUSE:13.1:Update/.patchinfo.4662.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.4662"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo>
<category>security</category>
<rating>moderate</rating>
<packager>computersalat</packager>
<summary>security update for phpMyAdmin</summary>
<description>
This phpMyAdmin update to version 4.4.15.8 fixes the following issues:
Security issues fixed:
* Improve session cookie code for openid.php and signon.php example
files
* Full path disclosure in openid.php and signon.php example files
* Unsafe generation of BlowfishSecret (when not supplied by the user)
* Referrer leak when phpinfo is enabled
* Use HTTPS for wiki links
* Improve SSL certificate handling
* Fix full path disclosure in debugging code
* Administrators could trigger SQL injection attack against users
* Weaknesses with cookie encryption
see PMASA-2016-29 (CVE-2016-6606, CWE-661)
* Multiple XSS vulnerabilities
see PMASA-2016-30 (CVE-2016-6607, CWE-661)
* Multiple XSS vulnerabilities
see PMASA-2016-31 (CVE-2016-6608, CWE-661)
* PHP code injection
see PMASA-2016-32 (CVE-2016-6609, CWE-661)
* Full path disclosure
see PMASA-2016-33 (CVE-2016-6610, CWE-661)
* SQL injection attack
see PMASA-2016-34 (CVE-2016-6611, CWE-661)
* Local file exposure through LOAD DATA LOCAL INFILE
see PMASA-2016-35 (CVE-2016-6612, CWE-661)
* Local file exposure through symlinks with UploadDir
see PMASA-2016-36 (CVE-2016-6613, CWE-661)
* Path traversal with SaveDir and UploadDir
see PMASA-2016-37 (CVE-2016-6614, CWE-661)
* Multiple XSS vulnerabilities
see PMASA-2016-38 (CVE-2016-6615, CWE-661)
* SQL injection vulnerability as control user
see PMASA-2016-39 (CVE-2016-6616, CWE-661)
* SQL injection vulnerability
see PMASA-2016-40 (CVE-2016-6617, CWE-661)
* Denial-of-service attack through transformation feature
see PMASA-2016-41 (CVE-2016-6618, CWE-661)
* SQL injection vulnerability as control user
see PMASA-2016-42 (CVE-2016-6619, CWE-661)
* Verify data before unserializing
see PMASA-2016-43 (CVE-2016-6620, CWE-661)
* SSRF in setup script
see PMASA-2016-44 (CVE-2016-6621, CWE-661)
* Denial-of-service attack with
$cfg['AllowArbitraryServer'] = true and persistent connections
see PMASA-2016-45 (CVE-2016-6622, CWE-661)
* Denial-of-service attack by using for loops
see PMASA-2016-46 (CVE-2016-6623, CWE-661)
* Possible circumvention of IP-based allow/deny rules with IPv6 and
proxy server
see PMASA-2016-47 (CVE-2016-6624, CWE-661)
* Detect if user is logged in
see PMASA-2016-48 (CVE-2016-6625, CWE-661)
* Bypass URL redirection protection
see PMASA-2016-49 (CVE-2016-6626, CWE-661)
* Referrer leak
see PMASA-2016-50 (CVE-2016-6627, CWE-661)
* Reflected File Download
see PMASA-2016-51 (CVE-2016-6628, CWE-661)
* ArbitraryServerRegexp bypass
see PMASA-2016-52 (CVE-2016-6629, CWE-661)
* Denial-of-service attack by entering long password
see PMASA-2016-53 (CVE-2016-6630, CWE-661)
* Remote code execution vulnerability when running as CGI
see PMASA-2016-54 (CVE-2016-6631, CWE-661)
* Denial-of-service attack when PHP uses dbase extension
see PMASA-2016-55 (CVE-2016-6632, CWE-661)
* Remove tode execution vulnerability when PHP uses dbase extension
see PMASA-2016-56 (CVE-2016-6633, CWE-661)
</description>
<issue tracker="bnc" id="994313">VUL-0: phpMyAdmin 4.0.10.17, 4.4.15.8, and 4.6.4 releases </issue>
<issue tracker="cve" id="2016-6606">Weaknesses with cookie encryption</issue>
<issue tracker="cve" id="2016-6607">Multiple XSS vulnerabilities</issue>
<issue tracker="cve" id="2016-6608">Multiple XSS vulnerabilities</issue>
<issue tracker="cve" id="2016-6609">PHP code injection</issue>
<issue tracker="cve" id="2016-6610">Full path disclosure</issue>
<issue tracker="cve" id="2016-6611">SQL injection attack</issue>
<issue tracker="cve" id="2016-6612">Local file exposure through LOAD DATA LOCAL INFILE</issue>
<issue tracker="cve" id="2016-6613">Local file exposure through symlinks with UploadDir</issue>
<issue tracker="cve" id="2016-6614">Path traversal with SaveDir and UploadDir</issue>
<issue tracker="cve" id="2016-6615">Multiple XSS vulnerabilities</issue>
<issue tracker="cve" id="2016-6616">SQL injection vulnerability as control user</issue>
<issue tracker="cve" id="2016-6617">SQL injection vulnerability</issue>
<issue tracker="cve" id="2016-6618">Denial-of-service attack through transformation feature</issue>
<issue tracker="cve" id="2016-6619">SQL injection vulnerability as control user</issue>
<issue tracker="cve" id="2016-6620">Verify data before unserializing</issue>
<issue tracker="cve" id="2016-6621">SSRF in setup script</issue>
<issue tracker="cve" id="2016-6622">Denial-of-service attack with $cfg['AllowArbitraryServer'] = true and persistent connections</issue>
<issue tracker="cve" id="2016-6623">Denial-of-service attack by using for loops</issue>
<issue tracker="cve" id="2016-6624">Possible circumvention of IP-based allow/deny rules with IPv6 and proxy server</issue>
<issue tracker="cve" id="2016-6625">Detect if user is logged in</issue>
<issue tracker="cve" id="2016-6626">Bypass URL redirection protection</issue>
<issue tracker="cve" id="2016-6627">Referrer leak</issue>
<issue tracker="cve" id="2016-6628">Reflected File Download</issue>
<issue tracker="cve" id="2016-6629">ArbitraryServerRegexp bypass</issue>
<issue tracker="cve" id="2016-6630">Denial-of-service attack by entering long password</issue>
<issue tracker="cve" id="2016-6631">Remote code execution vulnerability when running as CGI</issue>
<issue tracker="cve" id="2016-6632">Denial-of-service attack when PHP uses dbase extension</issue>
<issue tracker="cve" id="2016-6633">Remove tode execution vulnerability when PHP uses dbase extension</issue>
</patchinfo>
1
0
Hello community,
here is the log from the commit of package phpMyAdmin for openSUSE:13.1:Update checked in at 2016-08-29 11:27:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/phpMyAdmin (Old)
and /work/SRC/openSUSE:13.1:Update/.phpMyAdmin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "phpMyAdmin"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.qWj5fK/_old 2016-08-29 11:27:11.000000000 +0200
+++ /var/tmp/diff_new_pack.qWj5fK/_new 2016-08-29 11:27:11.000000000 +0200
@@ -1 +1 @@
-<link package='phpMyAdmin.4647' cicount='copy' />
+<link package='phpMyAdmin.4662' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package patchinfo.5522 for openSUSE:13.2:Update checked in at 2016-08-29 10:02:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/patchinfo.5522 (Old)
and /work/SRC/openSUSE:13.2:Update/.patchinfo.5522.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.5522"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="5522">
<issue id="909683" tracker="bnc">plasma-nm ask for wireless password after every login</issue>
<category>recommended</category>
<rating>moderate</rating>
<packager>etamPL</packager>
<description>
This update for libNetworkManagerQt fixes the following issues:
- Added missing IPv6 support for OpenVPN connections
- Moved code for checking your current download/upload to QML code
- During import of VPN connections we copied your certificates automatically into your home directory,
now we are asking whether you want to copy them or keep the path as it is
- Fixed initialization of current download/upload speed for mobile broadband connections
- Many fixes in secret agent (KWallet) initialization, also added migration for your secrets from plain
text files, we dropped their support in the previous version, and store them into KWallet or directly
into NetworkManager. (boo#909683)
</description>
<summary>Recommended update for libNetworkManagerQt</summary>
</patchinfo>
1
0
Hello community,
here is the log from the commit of package patchinfo.5525 for openSUSE:13.2:Update checked in at 2016-08-29 07:55:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/patchinfo.5525 (Old)
and /work/SRC/openSUSE:13.2:Update/.patchinfo.5525.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.5525"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="5525">
<issue id="994313" tracker="bnc">VUL-0: phpMyAdmin 4.0.10.17, 4.4.15.8, and 4.6.4 releases</issue>
<issue id="2016-6606" tracker="cve" />
<issue id="2016-6630" tracker="cve" />
<issue id="2016-6631" tracker="cve" />
<issue id="2016-6618" tracker="cve" />
<issue id="2016-6619" tracker="cve" />
<issue id="2016-6616" tracker="cve" />
<issue id="2016-6617" tracker="cve" />
<issue id="2016-6614" tracker="cve" />
<issue id="2016-6615" tracker="cve" />
<issue id="2016-6612" tracker="cve" />
<issue id="2016-6613" tracker="cve" />
<issue id="2016-6610" tracker="cve" />
<issue id="2016-6611" tracker="cve" />
<issue id="2016-6626" tracker="cve" />
<issue id="2016-6609" tracker="cve" />
<issue id="2016-6608" tracker="cve" />
<issue id="2016-6623" tracker="cve" />
<issue id="2016-6622" tracker="cve" />
<issue id="2016-6621" tracker="cve" />
<issue id="2016-6620" tracker="cve" />
<issue id="2016-6627" tracker="cve" />
<issue id="2016-6632" tracker="cve" />
<issue id="2016-6625" tracker="cve" />
<issue id="2016-6624" tracker="cve" />
<issue id="2016-6607" tracker="cve" />
<issue id="2016-6633" tracker="cve" />
<issue id="2016-6628" tracker="cve" />
<issue id="2016-6629" tracker="cve" />
<category>security</category>
<rating>important</rating>
<packager>computersalat</packager>
<description>
phpMyAdmin was updated to version 4.4.15.8 (2016-08-16) to fix the following issues:
- Upstream changelog for 4.4.15.8:
* Improve session cookie code for openid.php and signon.php example
files
* Full path disclosure in openid.php and signon.php example files
* Unsafe generation of BlowfishSecret (when not supplied by the user)
* Referrer leak when phpinfo is enabled
* Use HTTPS for wiki links
* Improve SSL certificate handling
* Fix full path disclosure in debugging code
* Administrators could trigger SQL injection attack against users
- other fixes
* Remove Swekey support
- Security fixes:
https://www.phpmyadmin.net/security/
* Weaknesses with cookie encryption
see PMASA-2016-29 (CVE-2016-6606, CWE-661)
* Multiple XSS vulnerabilities
see PMASA-2016-30 (CVE-2016-6607, CWE-661)
* Multiple XSS vulnerabilities
see PMASA-2016-31 (CVE-2016-6608, CWE-661)
* PHP code injection
see PMASA-2016-32 (CVE-2016-6609, CWE-661)
* Full path disclosure
see PMASA-2016-33 (CVE-2016-6610, CWE-661)
* SQL injection attack
see PMASA-2016-34 (CVE-2016-6611, CWE-661)
* Local file exposure through LOAD DATA LOCAL INFILE
see PMASA-2016-35 (CVE-2016-6612, CWE-661)
* Local file exposure through symlinks with UploadDir
see PMASA-2016-36 (CVE-2016-6613, CWE-661)
* Path traversal with SaveDir and UploadDir
see PMASA-2016-37 (CVE-2016-6614, CWE-661)
* Multiple XSS vulnerabilities
see PMASA-2016-38 (CVE-2016-6615, CWE-661)
* SQL injection vulnerability as control user
see PMASA-2016-39 (CVE-2016-6616, CWE-661)
* SQL injection vulnerability
see PMASA-2016-40 (CVE-2016-6617, CWE-661)
* Denial-of-service attack through transformation feature
see PMASA-2016-41 (CVE-2016-6618, CWE-661)
* SQL injection vulnerability as control user
see PMASA-2016-42 (CVE-2016-6619, CWE-661)
* Verify data before unserializing
see PMASA-2016-43 (CVE-2016-6620, CWE-661)
* SSRF in setup script
see PMASA-2016-44 (CVE-2016-6621, CWE-661)
* Denial-of-service attack with
$cfg['AllowArbitraryServer'] = true and persistent connections
see PMASA-2016-45 (CVE-2016-6622, CWE-661)
* Denial-of-service attack by using for loops
see PMASA-2016-46 (CVE-2016-6623, CWE-661)
* Possible circumvention of IP-based allow/deny rules with IPv6 and
proxy server
see PMASA-2016-47 (CVE-2016-6624, CWE-661)
* Detect if user is logged in
see PMASA-2016-48 (CVE-2016-6625, CWE-661)
* Bypass URL redirection protection
see PMASA-2016-49 (CVE-2016-6626, CWE-661)
* Referrer leak
see PMASA-2016-50 (CVE-2016-6627, CWE-661)
* Reflected File Download
see PMASA-2016-51 (CVE-2016-6628, CWE-661)
* ArbitraryServerRegexp bypass
see PMASA-2016-52 (CVE-2016-6629, CWE-661)
* Denial-of-service attack by entering long password
see PMASA-2016-53 (CVE-2016-6630, CWE-661)
* Remote code execution vulnerability when running as CGI
see PMASA-2016-54 (CVE-2016-6631, CWE-661)
* Denial-of-service attack when PHP uses dbase extension
see PMASA-2016-55 (CVE-2016-6632, CWE-661)
* Remove tode execution vulnerability when PHP uses dbase extension
see PMASA-2016-56 (CVE-2016-6633, CWE-661)
</description>
<summary>Security update for phpMyAdmin</summary>
</patchinfo>
1
0
Hello community,
here is the log from the commit of package phpMyAdmin for openSUSE:13.2:Update checked in at 2016-08-29 07:55:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/phpMyAdmin (Old)
and /work/SRC/openSUSE:13.2:Update/.phpMyAdmin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "phpMyAdmin"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.BnnkC0/_old 2016-08-29 07:55:28.000000000 +0200
+++ /var/tmp/diff_new_pack.BnnkC0/_new 2016-08-29 07:55:28.000000000 +0200
@@ -1 +1 @@
-<link package='phpMyAdmin.5278' cicount='copy' />
+<link package='phpMyAdmin.5525' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package stress-ng for openSUSE:Factory checked in at 2016-08-28 12:18:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/stress-ng (Old)
and /work/SRC/openSUSE:Factory/.stress-ng.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "stress-ng"
Changes:
--------
--- /work/SRC/openSUSE:Factory/stress-ng/stress-ng.changes 2016-07-20 09:18:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.stress-ng.new/stress-ng.changes 2016-08-28 12:18:22.000000000 +0200
@@ -1,0 +2,20 @@
+Sat Aug 27 08:52:55 UTC 2016 - mpluskal(a)suse.com
+
+- Update to version 0.06.14:
+ * Makefile: bump version
+ * stress-mmapfork: add more feedback on segv faults (LP: #1614099)
+- Changes for 0.06.13:
+ * Makefile: bump version
+ * Makefile: add snapcraft into make dist
+ * ignite-cpu: ensure buffer is null terminated before calling strlen
+ * stress-affinity: only check CPU move if sched_getaffinity succeeds
+ * Add snapcraft packaging
+ * stress-seccomp: inject some random BPF op codes
+ * force indirect libc calls to enforce calls to libc wide str functions
+ * stress-str: fix incorrect order on args in call to stress funcs
+ * stress-str: force indirect libc calls to enforce calls to libc str
+ * functions
+ * ensure cache info is only printed once
+ * Manual: fix typo: build -> built
+
+-------------------------------------------------------------------
Old:
----
stress-ng-0.06.12.tar.gz
New:
----
stress-ng-0.06.14.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ stress-ng.spec ++++++
--- /var/tmp/diff_new_pack.mjBlY4/_old 2016-08-28 12:18:23.000000000 +0200
+++ /var/tmp/diff_new_pack.mjBlY4/_new 2016-08-28 12:18:23.000000000 +0200
@@ -18,7 +18,7 @@
Name: stress-ng
-Version: 0.06.12
+Version: 0.06.14
Release: 0
Summary: Tool to load and stress a computer
License: GPL-2.0
++++++ stress-ng-0.06.12.tar.gz -> stress-ng-0.06.14.tar.gz ++++++
++++ 1649 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package sysbench for openSUSE:Factory checked in at 2016-08-28 12:18:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sysbench (Old)
and /work/SRC/openSUSE:Factory/.sysbench.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sysbench"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sysbench/sysbench.changes 2016-08-03 11:43:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.sysbench.new/sysbench.changes 2016-08-28 12:18:18.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Aug 27 08:35:10 UTC 2016 - mpluskal(a)suse.com
+
+- Update to version 0.5.0+git.20160824:
+ * adjust event generation for a high volume
+ * Fixes #44: seqwr deleting test files
+ * Duplicate line
+ * added locking to get_request in lua scripting
+ * Don't lock thread mutex unnecessarily in script_lua.c and sb_cpu.c.
+ * Fix crash introduced by commit 9244fcf.
+ * Adding volatile modifier to tmp variable in memory test
+ * Fixes #57: Race condition in sb_timer_value()
+ * Fix --with-mysql-libs for MySQL 5.7.
+ * Create indexes after data load in parallel_prepare
+
+-------------------------------------------------------------------
Old:
----
sysbench-0.5.0+git.20160721.tar.xz
New:
----
sysbench-0.5.0+git.20160824.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sysbench.spec ++++++
--- /var/tmp/diff_new_pack.OQ584i/_old 2016-08-28 12:18:19.000000000 +0200
+++ /var/tmp/diff_new_pack.OQ584i/_new 2016-08-28 12:18:19.000000000 +0200
@@ -16,9 +16,9 @@
#
-%define version_unconverted 0.5.0+git.20160721
+%define version_unconverted 0.5.0+git.20160824
Name: sysbench
-Version: 0.5.0+git.20160721
+Version: 0.5.0+git.20160824
Release: 0
Summary: A MySQL benchmarking tool
License: GPL-2.0
++++++ sysbench-0.5.0+git.20160721.tar.xz -> sysbench-0.5.0+git.20160824.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-0.5.0+git.20160721/m4/ac_check_mysqlr.m4 new/sysbench-0.5.0+git.20160824/m4/ac_check_mysqlr.m4
--- old/sysbench-0.5.0+git.20160721/m4/ac_check_mysqlr.m4 2016-07-21 11:27:35.000000000 +0200
+++ new/sysbench-0.5.0+git.20160824/m4/ac_check_mysqlr.m4 2016-08-23 22:33:03.000000000 +0200
@@ -1,9 +1,9 @@
dnl ---------------------------------------------------------------------------
dnl Macro: AC_CHECK_MYSQLR
-dnl First check for custom MySQL paths in --with-mysql-* options.
-dnl If some paths are missing, check if mysql_config exists.
-dnl Then check for the libraries and replace -lmysqlclient with
-dnl -lmysqlclient_r, to enable threaded client library.
+dnl First check if the MySQL root directory is specified with --with-mysql.
+dnl Otherwise check for custom MySQL paths in --with-mysql-includes and
+dnl --with-mysql-libs. If some paths are not specified explicitly, try to get
+dnl them from mysql_config.
dnl ---------------------------------------------------------------------------
AC_DEFUN([AC_CHECK_MYSQLR],[
@@ -51,7 +51,20 @@
ac_cv_mysql_libs=`echo ${ac_cv_mysql_libs} | sed -e 's/.libs$//' \
-e 's+.libs/$++'`
AC_CACHE_CHECK([MySQL libraries], [ac_cv_mysql_libs], [ac_cv_mysql_libs=""])
- MYSQL_LIBS="-L$ac_cv_mysql_libs -lmysqlclient_r"
+ save_LDFLAGS="$LDFLAGS"
+ save_LIBS="$LIBS"
+ LDFLAGS="-L$ac_cv_mysql_libs"
+ LIBS=""
+
+ # libmysqlclient_r has been removed in MySQL 5.7
+ AC_SEARCH_LIBS([mysql_real_connect],
+ [mysqlclient_r mysqlclient],
+ [],
+ AC_MSG_ERROR([cannot find MySQL client libraries in $ac_cv_mysql_libs]))
+
+ MYSQL_LIBS="$LDFLAGS $LIBS"
+ LIBS="$save_LIBS"
+ LDFLAGS="$save_LDFLAGS"
fi
# If some path is missing, try to autodetermine with mysql_config
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-0.5.0+git.20160721/sysbench/tests/db/common.lua new/sysbench-0.5.0+git.20160824/sysbench/tests/db/common.lua
--- old/sysbench-0.5.0+git.20160721/sysbench/tests/db/common.lua 2016-07-21 11:27:35.000000000 +0200
+++ new/sysbench-0.5.0+git.20160824/sysbench/tests/db/common.lua 2016-08-23 22:33:03.000000000 +0200
@@ -59,8 +59,6 @@
db_query(query)
- db_query("CREATE INDEX k_" .. i .. " on sbtest" .. i .. "(k)")
-
print("Inserting " .. oltp_table_size .. " records into 'sbtest" .. i .. "'")
if (oltp_auto_inc) then
@@ -89,6 +87,8 @@
db_bulk_insert_done()
+ print("Creating secondary indexes on 'sbtest" .. i .. "'...")
+ db_query("CREATE INDEX k_" .. i .. " on sbtest" .. i .. "(k)")
end
1
0
Hello community,
here is the log from the commit of package trinity for openSUSE:Factory checked in at 2016-08-28 12:18:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/trinity (Old)
and /work/SRC/openSUSE:Factory/.trinity.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trinity"
Changes:
--------
--- /work/SRC/openSUSE:Factory/trinity/trinity.changes 2016-07-20 09:19:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.trinity.new/trinity.changes 2016-08-28 12:18:17.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Aug 27 08:16:34 UTC 2016 - mpluskal(a)suse.com
+
+- Update to version 1.6+git.20160826:
+ * overwrite the correct pointer with the sockaddr
+ * Replace ->generate with lists of valid socket triplets
+ * add support for privileged sockets to the socket generator.
+ * use correct loop boundary for privileged sockets
+ * add PF_CAIF valid triplets
+ * add PF_DECnet socket triplets
+ * dummy entry for (dead) econet
+ * add valid protos for PF_KCM
+ * add PF_X25 valid triplet
+ * remove ->socket
+
+-------------------------------------------------------------------
Old:
----
trinity-1.6+git.20160706.tar.xz
New:
----
trinity-1.6+git.20160826.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ trinity.spec ++++++
--- /var/tmp/diff_new_pack.pcnWtf/_old 2016-08-28 12:18:17.000000000 +0200
+++ /var/tmp/diff_new_pack.pcnWtf/_new 2016-08-28 12:18:17.000000000 +0200
@@ -16,9 +16,9 @@
#
-%define version_unconverted 1.6+git.20160706
+%define version_unconverted 1.6+git.20160826
Name: trinity
-Version: 1.6+git.20160706
+Version: 1.6+git.20160826
Release: 0
Summary: A Linux System call fuzz tester
License: GPL-2.0
++++++ trinity-1.6+git.20160706.tar.xz -> trinity-1.6+git.20160826.tar.xz ++++++
++++ 4579 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package qmmp for openSUSE:Factory checked in at 2016-08-28 12:18:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qmmp (Old)
and /work/SRC/openSUSE:Factory/.qmmp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qmmp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qmmp/qmmp.changes 2016-08-05 18:17:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qmmp.new/qmmp.changes 2016-08-28 12:18:13.000000000 +0200
@@ -1,0 +2,13 @@
+Fri Aug 26 21:24:30 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to version 1.1.3:
+ * Add a xesam:contentCreated field in the mpris plugin.
+ * Improve ape/tta detection.
+ * Fix random stop bug.
+ * Fix duration calculation in the mpeg plugin.
+ * Fix scrobbling of tracks with '&' symbol.
+ * Fix ADTS parser in the aac plugin.
+ * Fix librcc database path in the portable mode.
+ * Update Brazilian Portuguese and German translations.
+
+-------------------------------------------------------------------
Old:
----
qmmp-1.1.2.tar.bz2
New:
----
qmmp-1.1.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qmmp.spec ++++++
--- /var/tmp/diff_new_pack.55AAXW/_old 2016-08-28 12:18:14.000000000 +0200
+++ /var/tmp/diff_new_pack.55AAXW/_new 2016-08-28 12:18:14.000000000 +0200
@@ -17,11 +17,11 @@
%define sover 1
-%bcond_with restricted
%bcond_with faad
%bcond_with mad
+%bcond_with restricted
Name: qmmp
-Version: 1.1.2
+Version: 1.1.3
Release: 0
Summary: Qt-based Multimedia Player
License: GPL-2.0+
++++++ qmmp-1.1.2.tar.bz2 -> qmmp-1.1.3.tar.bz2 ++++++
++++ 20352 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package mpv for openSUSE:Factory checked in at 2016-08-28 12:18:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpv (Old)
and /work/SRC/openSUSE:Factory/.mpv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mpv"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mpv/mpv.changes 2016-08-17 12:05:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mpv.new/mpv.changes 2016-08-28 12:18:11.000000000 +0200
@@ -1,0 +2,36 @@
+Fri Aug 26 18:17:38 UTC 2016 - aloisio(a)gmx.com
+
+- Update to version 0.20.0
+ Added options and commands:
+ * aspect: add --video-unscaled=downscale-big
+ * player: add --image-display-duration option to control
+ duration of image display (#3425)
+ * vo_opengl: angle: new flag (dcomposition) to control
+ DirectComposition
+ Fixes and minor enhancements:
+ * af_lavrresample: fix error if resampler could not be
+ recreated
+ * audio: avoid missed wakeups with ab-loops
+ * audio: do not apply --audio-channels if spdif passthrough is
+ in use (#3445)
+ * cache: don't use a backbuffer if the cache is as large as
+ the file
+ * command: prevent O(n^2) behaviour for playlist property
+ * demux: close underlying stream if it's fully read anyway
+ (#3456)
+ * demux: fix undefined behavior with ogg metadata update
+ (#3451)
+ * player: make looping slightly more seamless
+ * player: refresh very low framerate video on filter changes
+ (#3435)
+ * stream_memory: disable stream cache
+ * vf_rotate: allow arbitrary rotation (#3434)
+ * vo: be more trusting to estimated display FPS (#3433)
+ * w32_common: use hooks to detect parent window resize
+ * x11: work around mutter fullscreen issue (#2072)
+ * This listing is not complete. Check
+ DOCS/client-api-changes.rst for a history
+ of changes to the client API, and DOCS/interface-changes.rst
+ for a history of changes to other user-visible interfaces.
+
+-------------------------------------------------------------------
@@ -87 +122,0 @@
-
Old:
----
mpv-0.19.0.tar.gz
New:
----
mpv-0.20.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mpv.spec ++++++
--- /var/tmp/diff_new_pack.N4P1Es/_old 2016-08-28 12:18:12.000000000 +0200
+++ /var/tmp/diff_new_pack.N4P1Es/_new 2016-08-28 12:18:12.000000000 +0200
@@ -22,7 +22,7 @@
%define _waf_ver 1.9.2
%define lname libmpv1
Name: mpv
-Version: 0.19.0
+Version: 0.20.0
Release: 0
Summary: Advanced general-purpose multimedia player
License: GPL-2.0+ and BSD-3-Clause
++++++ mpv-0.19.0.tar.gz -> mpv-0.20.0.tar.gz ++++++
++++ 2162 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package hpack for openSUSE:Factory checked in at 2016-08-28 12:18:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hpack (Old)
and /work/SRC/openSUSE:Factory/.hpack.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hpack"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hpack/hpack.changes 2016-07-20 09:22:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.hpack.new/hpack.changes 2016-08-28 12:18:08.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 17 18:26:28 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.14.1 revision 1 with cabal2obs.
+
+-------------------------------------------------------------------
New:
----
1.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hpack.spec ++++++
--- /var/tmp/diff_new_pack.x5U5x3/_old 2016-08-28 12:18:09.000000000 +0200
+++ /var/tmp/diff_new_pack.x5U5x3/_new 2016-08-28 12:18:09.000000000 +0200
@@ -26,7 +26,7 @@
Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{name}
Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.t…
-# Begin cabal-rpm deps:
+Source1: https://hackage.haskell.org/package/%{name}-%{version}/revision/1.cabal
BuildRequires: chrpath
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-Glob-devel
@@ -49,7 +49,6 @@
BuildRequires: ghc-mockery-devel
BuildRequires: ghc-temporary-devel
%endif
-# End cabal-rpm deps
%description
An alternative format for Haskell packages.
@@ -74,23 +73,17 @@
%prep
%setup -q
-
+cp -p %{SOURCE1} %{name}.cabal
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%ghc_fix_dynamic_rpath %{pkg_name}
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post -n ghc-%{name}-devel
%ghc_pkg_recache
++++++ 1.cabal ++++++
-- This file has been generated from package.yaml by hpack version 0.14.0.
--
-- see: https://github.com/sol/hpack
name: hpack
version: 0.14.1
x-revision: 1
synopsis: An alternative format for Haskell packages
category: Development
homepage: https://github.com/sol/hpack#readme
bug-reports: https://github.com/sol/hpack/issues
maintainer: Simon Hengel <sol(a)typeful.net>
license: MIT
license-file: LICENSE
build-type: Simple
cabal-version: >= 1.10
source-repository head
type: git
location: https://github.com/sol/hpack
library
hs-source-dirs:
src
ghc-options: -Wall
build-depends:
base >= 4.7 && < 5
, base-compat >= 0.8
, deepseq
, directory
, filepath
, Glob
, text
, containers
, unordered-containers
, yaml
, aeson >= 0.8 && < 1
exposed-modules:
Hpack
Hpack.Config
Hpack.Run
Hpack.Yaml
other-modules:
Hpack.FormattingHints
Hpack.GenericsUtil
Hpack.Haskell
Hpack.Render
Hpack.Util
Paths_hpack
default-language: Haskell2010
executable hpack
main-is: Main.hs
hs-source-dirs:
driver
ghc-options: -Wall
build-depends:
base >= 4.7 && < 5
, base-compat >= 0.8
, deepseq
, directory
, filepath
, Glob
, text
, containers
, unordered-containers
, yaml
, hpack
, aeson >= 0.8 && < 1
default-language: Haskell2010
test-suite spec
type: exitcode-stdio-1.0
main-is: Spec.hs
hs-source-dirs:
test
, src
ghc-options: -Wall
cpp-options: -DTEST
build-depends:
base >= 4.7 && < 5
, base-compat >= 0.8
, deepseq
, directory
, filepath
, Glob
, text
, containers
, unordered-containers
, yaml
, hspec == 2.*
, QuickCheck
, temporary
, mockery >= 0.3
, interpolate
, aeson-qq
, aeson >= 0.10
other-modules:
Helper
Hpack.ConfigSpec
Hpack.FormattingHintsSpec
Hpack.GenericsUtilSpec
Hpack.HaskellSpec
Hpack.RenderSpec
Hpack.RunSpec
Hpack.UtilSpec
HpackSpec
Hpack
Hpack.Config
Hpack.FormattingHints
Hpack.GenericsUtil
Hpack.Haskell
Hpack.Render
Hpack.Run
Hpack.Util
Hpack.Yaml
default-language: Haskell2010
1
0
Hello community,
here is the log from the commit of package nfacct for openSUSE:Factory checked in at 2016-08-28 12:18:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nfacct (Old)
and /work/SRC/openSUSE:Factory/.nfacct.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nfacct"
Changes:
--------
--- /work/SRC/openSUSE:Factory/nfacct/nfacct.changes 2014-09-26 11:21:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.nfacct.new/nfacct.changes 2016-08-28 12:18:04.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Aug 22 11:42:15 UTC 2016 - jengelh(a)inai.de
+
+- Update to new upstream release 1.0.2
+* Add JSON output formatting to nfacct utility
+* nfacct: adding quota capabilities
+
+-------------------------------------------------------------------
Old:
----
nfacct-1.0.1.tar.bz2
nfacct-1.0.1.tar.bz2.sig
New:
----
nfacct-1.0.2.tar.bz2
nfacct-1.0.2.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nfacct.spec ++++++
--- /var/tmp/diff_new_pack.6P3psT/_old 2016-08-28 12:18:06.000000000 +0200
+++ /var/tmp/diff_new_pack.6P3psT/_new 2016-08-28 12:18:06.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package nfacct
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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: nfacct
-Version: 1.0.1
+Version: 1.0.2
Release: 0
Summary: Netfilter Extended Accounting utility
License: GPL-2.0+
@@ -26,15 +26,14 @@
#Git-Web: http://git.netfilter.org/
#Git-Clone: git://git.netfilter.org/nfacct
-#DL-URL: http://netfilter.org/projects/nfacct/files/
-Source: http://netfilter.org/projects/nfacct/files/%name-%version.tar.bz2
-Source2: http://netfilter.org/projects/nfacct/files/%name-%version.tar.bz2.sig
+Source: ftp://ftp.netfilter.org/pub/nfacct/%name-%version.tar.bz2
+Source2: ftp://ftp.netfilter.org/pub/nfacct/%name-%version.tar.bz2.sig
Source3: %name.keyring
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#git#BuildRequires: autoconf, automake >= 1.6, libtool
BuildRequires: pkgconfig >= 0.21
BuildRequires: pkgconfig(libmnl) >= 1.0.0
-BuildRequires: pkgconfig(libnetfilter_acct) >= 1.0.2
+BuildRequires: pkgconfig(libnetfilter_acct) >= 1.0.3
%description
This utility allows you to manipulate the extended accounting
++++++ nfacct-1.0.1.tar.bz2 -> nfacct-1.0.2.tar.bz2 ++++++
++++ 6741 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/compile new/nfacct-1.0.2/compile
--- old/nfacct-1.0.1/compile 1970-01-01 01:00:00.000000000 +0100
+++ new/nfacct-1.0.2/compile 2016-08-22 13:28:29.000000000 +0200
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey(a)cygnus.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 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake(a)gnu.org> or send patches to
+# <automake-patches(a)gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake(a)gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/configure.ac new/nfacct-1.0.2/configure.ac
--- old/nfacct-1.0.1/configure.ac 2013-03-03 22:03:05.000000000 +0100
+++ new/nfacct-1.0.2/configure.ac 2016-08-22 13:25:41.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(nfacct, 1.0.1, pablo(a)netfilter.org)
+AC_INIT(nfacct, 1.0.2, pablo(a)netfilter.org)
AC_CANONICAL_HOST
@@ -15,12 +15,12 @@
AC_PROG_LN_S
case "$host" in
-*-*-linux*) ;;
+*-*-linux* | *-*-uclinux*) ;;
*) AC_MSG_ERROR([Linux only, dude!]);;
esac
PKG_CHECK_MODULES([LIBMNL], [libmnl >= 1.0.0])
-PKG_CHECK_MODULES([LIBNETFILTER_ACCT], [libnetfilter_acct >= 1.0.2])
+PKG_CHECK_MODULES([LIBNETFILTER_ACCT], [libnetfilter_acct >= 1.0.3])
AC_CONFIG_FILES([Makefile src/Makefile include/Makefile include/linux/Makefile include/linux/netfilter/Makefile])
AC_OUTPUT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/include/linux/netfilter/nfnetlink.h new/nfacct-1.0.2/include/linux/netfilter/nfnetlink.h
--- old/nfacct-1.0.1/include/linux/netfilter/nfnetlink.h 2011-12-30 21:04:45.000000000 +0100
+++ new/nfacct-1.0.2/include/linux/netfilter/nfnetlink.h 2015-05-29 00:52:44.000000000 +0200
@@ -18,6 +18,10 @@
#define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE
NFNLGRP_CONNTRACK_EXP_DESTROY,
#define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY
+ NFNLGRP_NFTABLES,
+#define NFNLGRP_NFTABLES NFNLGRP_NFTABLES
+ NFNLGRP_ACCT_QUOTA,
+#define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA
__NFNLGRP_MAX,
};
#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
@@ -49,46 +53,14 @@
#define NFNL_SUBSYS_OSF 5
#define NFNL_SUBSYS_IPSET 6
#define NFNL_SUBSYS_ACCT 7
-#define NFNL_SUBSYS_COUNT 8
+#define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
+#define NFNL_SUBSYS_CTHELPER 9
+#define NFNL_SUBSYS_NFTABLES 10
+#define NFNL_SUBSYS_NFT_COMPAT 11
+#define NFNL_SUBSYS_COUNT 12
+
+/* Reserved control nfnetlink messages */
+#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
+#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+1
-#ifdef __KERNEL__
-
-#include <linux/netlink.h>
-#include <linux/capability.h>
-#include <net/netlink.h>
-
-struct nfnl_callback {
- int (*call)(struct sock *nl, struct sk_buff *skb,
- const struct nlmsghdr *nlh,
- const struct nlattr * const cda[]);
- int (*call_rcu)(struct sock *nl, struct sk_buff *skb,
- const struct nlmsghdr *nlh,
- const struct nlattr * const cda[]);
- const struct nla_policy *policy; /* netlink attribute policy */
- const u_int16_t attr_count; /* number of nlattr's */
-};
-
-struct nfnetlink_subsystem {
- const char *name;
- __u8 subsys_id; /* nfnetlink subsystem ID */
- __u8 cb_count; /* number of callbacks */
- const struct nfnl_callback *cb; /* callback for individual types */
-};
-
-extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n);
-extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n);
-
-extern int nfnetlink_has_listeners(struct net *net, unsigned int group);
-extern int nfnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned group,
- int echo, gfp_t flags);
-extern int nfnetlink_set_err(struct net *net, u32 pid, u32 group, int error);
-extern int nfnetlink_unicast(struct sk_buff *skb, struct net *net, u_int32_t pid, int flags);
-
-extern void nfnl_lock(void);
-extern void nfnl_unlock(void);
-
-#define MODULE_ALIAS_NFNL_SUBSYS(subsys) \
- MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys))
-
-#endif /* __KERNEL__ */
-#endif /* _NFNETLINK_H */
+#endif /* _NFNETLINK_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/include/linux/netfilter/nfnetlink_acct.h new/nfacct-1.0.2/include/linux/netfilter/nfnetlink_acct.h
--- old/nfacct-1.0.1/include/linux/netfilter/nfnetlink_acct.h 2011-12-30 21:04:45.000000000 +0100
+++ new/nfacct-1.0.2/include/linux/netfilter/nfnetlink_acct.h 2015-05-29 00:54:05.000000000 +0200
@@ -10,27 +10,35 @@
NFNL_MSG_ACCT_GET,
NFNL_MSG_ACCT_GET_CTRZERO,
NFNL_MSG_ACCT_DEL,
+ NFNL_MSG_ACCT_OVERQUOTA,
NFNL_MSG_ACCT_MAX
};
+enum nfnl_acct_flags {
+ NFACCT_F_QUOTA_PKTS = (1 << 0),
+ NFACCT_F_QUOTA_BYTES = (1 << 1),
+ NFACCT_F_OVERQUOTA = (1 << 2), /* can't be set from userspace */
+};
+
enum nfnl_acct_type {
NFACCT_UNSPEC,
NFACCT_NAME,
NFACCT_PKTS,
NFACCT_BYTES,
NFACCT_USE,
+ NFACCT_FLAGS,
+ NFACCT_QUOTA,
+ NFACCT_FILTER,
__NFACCT_MAX
};
#define NFACCT_MAX (__NFACCT_MAX - 1)
-#ifdef __KERNEL__
-
-struct nf_acct;
-
-extern struct nf_acct *nfnl_acct_find_get(const char *filter_name);
-extern void nfnl_acct_put(struct nf_acct *acct);
-extern void nfnl_acct_update(const struct sk_buff *skb, struct nf_acct *nfacct);
-
-#endif /* __KERNEL__ */
+enum nfnl_attr_filter_type {
+ NFACCT_FILTER_UNSPEC,
+ NFACCT_FILTER_MASK,
+ NFACCT_FILTER_VALUE,
+ __NFACCT_FILTER_MAX
+};
+#define NFACCT_FILTER_MAX (__NFACCT_FILTER_MAX - 1)
-#endif /* _NFNL_ACCT_H */
+#endif /* _NFNL_ACCT_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/m4/libtool.m4 new/nfacct-1.0.2/m4/libtool.m4
--- old/nfacct-1.0.1/m4/libtool.m4 2013-03-03 22:07:12.000000000 +0100
+++ new/nfacct-1.0.2/m4/libtool.m4 2016-08-22 13:28:26.000000000 +0200
@@ -1312,7 +1312,7 @@
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
@@ -1324,9 +1324,19 @@
LD="${LD-ld} -m elf_i386_fbsd"
;;
x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -1345,7 +1355,10 @@
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
@@ -1688,7 +1701,8 @@
;;
*)
lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/missing new/nfacct-1.0.2/missing
--- old/nfacct-1.0.1/missing 2013-03-03 22:07:15.000000000 +0100
+++ new/nfacct-1.0.2/missing 2016-08-22 13:28:29.000000000 +0200
@@ -1,11 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,68 +25,40 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
Send bug reports to <bug-automake(a)gnu.org>."
exit $?
@@ -99,228 +70,141 @@
;;
-*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/nfacct.8 new/nfacct-1.0.2/nfacct.8
--- old/nfacct-1.0.1/nfacct.8 2013-03-03 22:02:50.000000000 +0100
+++ new/nfacct-1.0.2/nfacct.8 2016-02-29 12:44:34.000000000 +0100
@@ -31,7 +31,7 @@
Get existing accounting object.
.TP
.BI "flush "
-Flush the entire table.
+Delete all unused accounting objects.
.TP
.BI "version "
Displays the version information.
@@ -47,6 +47,8 @@
.TP
.BI "xml "
That displays the output in XML format.
+.BI "json "
+That displays the output in JSON format.
.PP
.SH SEE ALSO
.BR iptables (8)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfacct-1.0.1/src/nfacct.c new/nfacct-1.0.2/src/nfacct.c
--- old/nfacct-1.0.1/src/nfacct.c 2013-03-03 22:02:50.000000000 +0100
+++ new/nfacct-1.0.2/src/nfacct.c 2016-02-29 12:44:34.000000000 +0100
@@ -10,6 +10,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <inttypes.h>
#include <string.h>
#include <sys/types.h>
#include <dirent.h>
@@ -18,9 +19,12 @@
#include <unistd.h>
#include <time.h>
#include <errno.h>
+#include <arpa/inet.h>
#include <libmnl/libmnl.h>
#include <libnetfilter_acct/libnetfilter_acct.h>
+#include <linux/netfilter/nfnetlink_acct.h>
+#include <linux/netfilter/nfnetlink.h>
enum {
NFACCT_CMD_NONE = 0,
@@ -32,6 +36,7 @@
NFACCT_CMD_VERSION,
NFACCT_CMD_HELP,
NFACCT_CMD_RESTORE,
+ NFACCT_CMD_LISTEN,
};
static int nfacct_cmd_list(int argc, char *argv[]);
@@ -42,6 +47,7 @@
static int nfacct_cmd_version(int argc, char *argv[]);
static int nfacct_cmd_help(int argc, char *argv[]);
static int nfacct_cmd_restore(int argc, char *argv[]);
+static int nfacct_cmd_monitor(int argc, char *argv[]);
static void usage(char *argv[])
{
@@ -58,6 +64,13 @@
}
}
+static void duparg(const char *key)
+{
+ fprintf(stderr, "Error: duplicate \"%s\" or collision with another "
+ "option \n", key);
+ exit(EXIT_FAILURE);
+}
+
int main(int argc, char *argv[])
{
int cmd = NFACCT_CMD_NONE, ret = 0;
@@ -83,6 +96,8 @@
cmd = NFACCT_CMD_HELP;
else if (strncmp(argv[1], "restore", strlen(argv[1])) == 0)
cmd = NFACCT_CMD_RESTORE;
+ else if (strncmp(argv[1], "monitor", strlen(argv[1])) == 0)
+ cmd = NFACCT_CMD_LISTEN;
else {
fprintf(stderr, "nfacct v%s: Unknown command: %s\n",
VERSION, argv[1]);
@@ -115,17 +130,20 @@
case NFACCT_CMD_RESTORE:
ret = nfacct_cmd_restore(argc, argv);
break;
+ case NFACCT_CMD_LISTEN:
+ ret = nfacct_cmd_monitor(argc, argv);
+ break;
}
return ret < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}
-static bool xml_header = false;
+static bool fmt_header = false;
static int nfacct_cb(const struct nlmsghdr *nlh, void *data)
{
struct nfacct *nfacct;
char buf[4096];
- bool *xml = (bool *)data;
+ int *fmt = (int *)data;
nfacct = nfacct_alloc();
if (nfacct == NULL) {
@@ -138,17 +156,38 @@
goto err_free;
}
- if (*xml && !xml_header) {
- printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
- "<nfacct>\n");
- xml_header = true;
+ switch (*fmt) {
+ case NFACCT_SNPRINTF_T_XML:
+ if (!fmt_header) {
+ printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+ "<nfacct>\n");
+ fmt_header = true;
+ }
+ break;
+ case NFACCT_SNPRINTF_T_JSON:
+ if (!fmt_header) {
+ printf("{ \"timestamp\" : %lld, \n"
+ " \"nfacct_counters\" : [\n",
+ (long long) time(NULL));
+ fmt_header = true;
+ } else
+ printf(",\n");
+ break;
+ default:
+ break;
}
- nfacct_snprintf(buf, sizeof(buf), nfacct,
- *xml ? NFACCT_SNPRINTF_T_XML :
- NFACCT_SNPRINTF_T_PLAIN,
+ nfacct_snprintf(buf, sizeof(buf), nfacct, *fmt,
NFACCT_SNPRINTF_F_FULL);
- printf("%s\n", buf);
+ printf("%s", buf);
+ switch (*fmt) {
+ case NFACCT_SNPRINTF_T_JSON:
+ /* no newline in JSON case */
+ break;
+ default:
+ putchar('\n');
+ break;
+ }
err_free:
nfacct_free(nfacct);
@@ -156,20 +195,66 @@
return MNL_CB_OK;
}
+static void _print_footer(int fmt)
+{
+ if (fmt_header) {
+ switch (fmt) {
+ case NFACCT_SNPRINTF_T_XML:
+ printf("</nfacct>\n");
+ break;
+ case NFACCT_SNPRINTF_T_JSON:
+ printf("\n] }\n");
+ break;
+ default:
+ break;
+ }
+ }
+}
+
static int nfacct_cmd_list(int argc, char *argv[])
{
- bool zeroctr = false, xml = false;
+ bool zeroctr = false;
+ int fmt = NFACCT_SNPRINTF_T_PLAIN;
struct mnl_socket *nl;
char buf[MNL_SOCKET_BUFFER_SIZE];
struct nlmsghdr *nlh;
unsigned int seq, portid;
int ret, i;
+ uint32_t mask = 0, value = 0;
for (i=2; i<argc; i++) {
if (strncmp(argv[i], "reset", strlen(argv[i])) == 0) {
+ if (zeroctr)
+ duparg(argv[i]);
zeroctr = true;
} else if (strncmp(argv[i], "xml", strlen(argv[i])) == 0) {
- xml = true;
+ if (fmt)
+ duparg(argv[i]);
+ fmt = NFACCT_SNPRINTF_T_XML;
+ } else if (strncmp(argv[i], "json", strlen(argv[i])) == 0) {
+ if (fmt)
+ duparg(argv[i]);
+ fmt = NFACCT_SNPRINTF_T_JSON;
+ } else if (strncmp(argv[i], "counters", strlen(argv[i])) == 0) {
+ if (mask || value)
+ duparg(argv[i]);
+ mask = NFACCT_F_QUOTA_BYTES | NFACCT_F_QUOTA_PKTS;
+ value = 0;
+ } else if (strncmp(argv[i], "bytes-quota", strlen(argv[i])) == 0) {
+ if (mask || value)
+ duparg(argv[i]);
+ mask = NFACCT_F_QUOTA_BYTES;
+ value = NFACCT_F_QUOTA_BYTES;
+ } else if (strncmp(argv[i], "pkts-quota", strlen(argv[i])) == 0) {
+ if (mask || value)
+ duparg(argv[i]);
+ mask = NFACCT_F_QUOTA_PKTS;
+ value = NFACCT_F_QUOTA_PKTS;
+ } else if (strncmp(argv[i], "overquota", strlen(argv[i])) == 0) {
+ if (mask || value)
+ duparg(argv[i]);
+ mask = NFACCT_F_OVERQUOTA;
+ value = NFACCT_F_OVERQUOTA;
} else {
nfacct_perror("unknown argument");
return -1;
@@ -181,6 +266,13 @@
NFNL_MSG_ACCT_GET_CTRZERO :
NFNL_MSG_ACCT_GET,
NLM_F_DUMP, seq);
+ if (mask || value) {
+ struct nlattr *nest = mnl_attr_nest_start(nlh, NFACCT_FILTER);
+
+ mnl_attr_put_u32(nlh, NFACCT_FILTER_MASK, htonl(mask));
+ mnl_attr_put_u32(nlh, NFACCT_FILTER_VALUE, htonl(value));
+ mnl_attr_nest_end(nlh, nest);
+ }
nl = mnl_socket_open(NETLINK_NETFILTER);
if (nl == NULL) {
@@ -201,7 +293,7 @@
ret = mnl_socket_recvfrom(nl, buf, sizeof(buf));
while (ret > 0) {
- ret = mnl_cb_run(buf, ret, seq, portid, nfacct_cb, &xml);
+ ret = mnl_cb_run(buf, ret, seq, portid, nfacct_cb, &fmt);
if (ret <= 0)
break;
ret = mnl_socket_recvfrom(nl, buf, sizeof(buf));
@@ -212,13 +304,13 @@
}
mnl_socket_close(nl);
- if (xml_header)
- printf("</nfacct>\n");
+ _print_footer(fmt);
return 0;
}
-static int _nfacct_cmd_add(char *name, int pkts, int bytes)
+static int _nfacct_cmd_add(char *name, uint64_t pkts, uint64_t bytes,
+ uint32_t flags, uint64_t quota)
{
struct mnl_socket *nl;
char buf[MNL_SOCKET_BUFFER_SIZE];
@@ -237,6 +329,10 @@
nfacct_attr_set_u64(nfacct, NFACCT_ATTR_PKTS, pkts);
nfacct_attr_set_u64(nfacct, NFACCT_ATTR_BYTES, bytes);
+ if (flags) {
+ nfacct_attr_set(nfacct, NFACCT_ATTR_FLAGS, &flags);
+ nfacct_attr_set_u64(nfacct, NFACCT_ATTR_QUOTA, quota);
+ }
seq = time(NULL);
nlh = nfacct_nlmsg_build_hdr(buf, NFNL_MSG_ACCT_NEW,
@@ -278,19 +374,47 @@
return 0;
}
-
-
static int nfacct_cmd_add(int argc, char *argv[])
{
+ int mode, ret;
+ uint64_t quota;
+
if (argc < 3) {
nfacct_perror("missing object name");
return -1;
- } else if (argc > 3) {
+ }
+
+ if (argc == 3)
+ return _nfacct_cmd_add(argv[2], 0, 0, 0, 0);
+
+ if (argc == 4) {
+ nfacct_perror("missing quota value");
+ return -1;
+ }
+
+ if (argc == 5) {
+ if (strcmp(argv[3], "byte") && strcmp(argv[3], "packet")) {
+ nfacct_perror("argument must "
+ "\"byte\" or \"packet\"");
+ return -1;
+ }
+ }
+
+ if (argc > 5) {
nfacct_perror("too many arguments");
return -1;
}
- return _nfacct_cmd_add(argv[2], 0, 0);
+ mode = (strcmp(argv[3], "byte") == 0 ?
+ NFACCT_F_QUOTA_BYTES : NFACCT_F_QUOTA_PKTS);
+
+ ret = sscanf(argv[4], "%"PRIu64"", "a);
+ if (ret != 1) {
+ nfacct_perror("error reading quota");
+ return -1;
+ }
+
+ return _nfacct_cmd_add(argv[2], 0, 0, mode, quota);
}
static int nfacct_cmd_delete(int argc, char *argv[])
@@ -361,7 +485,8 @@
static int nfacct_cmd_get(int argc, char *argv[])
{
- bool zeroctr = false, xml = false;
+ bool zeroctr = false;
+ int fmt = NFACCT_SNPRINTF_T_PLAIN;
struct mnl_socket *nl;
char buf[MNL_SOCKET_BUFFER_SIZE];
struct nlmsghdr *nlh;
@@ -377,7 +502,9 @@
if (strncmp(argv[i], "reset", strlen(argv[i])) == 0) {
zeroctr = true;
} else if (strncmp(argv[i], "xml", strlen(argv[i])) == 0) {
- xml = true;
+ fmt = NFACCT_SNPRINTF_T_XML;
+ } else if (strncmp(argv[i], "json", strlen(argv[i])) == 0) {
+ fmt = NFACCT_SNPRINTF_T_JSON;
} else {
nfacct_perror("unknown argument");
return -1;
@@ -420,7 +547,7 @@
ret = mnl_socket_recvfrom(nl, buf, sizeof(buf));
while (ret > 0) {
- ret = mnl_cb_run(buf, ret, seq, portid, nfacct_cb, &xml);
+ ret = mnl_cb_run(buf, ret, seq, portid, nfacct_cb, &fmt);
if (ret <= 0)
break;
ret = mnl_socket_recvfrom(nl, buf, sizeof(buf));
@@ -431,8 +558,7 @@
}
mnl_socket_close(nl);
- if (xml_header)
- printf("</nfacct>\n");
+ _print_footer(fmt);
return 0;
}
@@ -514,6 +640,7 @@
" get object-name\tGet existing accounting object\n"
" flush\t\t\tFlush accounting object table\n"
" restore\t\tRestore accounting object table reading 'list' output from stdin\n"
+ " monitor\t\tListens for quota attainment notifications\n"
" version\t\tDisplay version and disclaimer\n"
" help\t\t\tDisplay this help message\n";
@@ -525,26 +652,88 @@
static int nfacct_cmd_restore(int argc, char *argv[])
{
- uint64_t pkts, bytes;
- char name[512];
- char buffer[512];
- int ret;
+ uint64_t pkts, bytes, quota;
+ char name[512], mode[512], buffer[512];
+ int ret, flags;
+
while (fgets(buffer, sizeof(buffer), stdin)) {
char *semicolon = strchr(buffer, ';');
+
if (semicolon == NULL) {
nfacct_perror("invalid line");
return -1;
}
+
*semicolon = 0;
- ret = sscanf(buffer, "{ pkts = %lu, bytes = %lu } = %s",
- &pkts, &bytes, name);
- if (ret != 3) {
- nfacct_perror("error reading input");
- return -1;
+ ret = flags = 0;
+ quota = 0;
+
+ if (!strstr(buffer, "quota")) {
+ ret = sscanf(buffer,
+ "{ pkts = %"PRIu64", "
+ "bytes = %"PRIu64" } = %s",
+ &pkts, &bytes, name);
+
+ if (ret != 3) {
+ nfacct_perror("error reading input");
+ return -1;
+ }
+ } else {
+ ret = sscanf(buffer, "{ pkts = %"PRIu64", "
+ "bytes = %"PRIu64", quota = %"PRIu64", "
+ "mode = %s } = %s",
+ &pkts, &bytes, "a, mode, name);
+
+ if (ret != 5) {
+ nfacct_perror("error reading input");
+ return -1;
+ }
+
+ flags = (strcmp(mode, "byte") == 0 ?
+ NFACCT_F_QUOTA_BYTES : NFACCT_F_QUOTA_PKTS);
}
- if ((ret = _nfacct_cmd_add(name, pkts, bytes)) != 0)
+
+ ret = _nfacct_cmd_add(name, pkts, bytes, flags, quota);
+ if (ret != 0)
return ret;
+ }
+ return 0;
+}
+
+static int nfacct_cmd_monitor(int argc, char *argv[])
+{
+ struct mnl_socket *nl;
+ int fmt = NFACCT_SNPRINTF_T_PLAIN;
+ char buf[MNL_SOCKET_BUFFER_SIZE];
+ int ret, option = NFNLGRP_ACCT_QUOTA;
+
+ nl = mnl_socket_open(NETLINK_NETFILTER);
+ if (nl == NULL) {
+ nfacct_perror("mnl_socket_open");
+ return -1;
+ }
+ if (mnl_socket_bind(nl, 0, MNL_SOCKET_AUTOPID) < 0) {
+ nfacct_perror("mnl_socket_bind");
+ return -1;
}
+
+ mnl_socket_setsockopt(nl, NETLINK_ADD_MEMBERSHIP,
+ &option, sizeof(int));
+
+ while (1) {
+ ret = mnl_socket_recvfrom(nl, buf, sizeof(buf));
+ if (ret == -1) {
+ perror("mnl_socket_recvfrom");
+ break;
+ }
+
+ ret = mnl_cb_run(buf, ret, 0, 0, nfacct_cb, &fmt);
+ if (ret <= 0)
+ break;
+ }
+
+ mnl_socket_close(nl);
+
return 0;
}
++++++ nfacct.keyring ++++++
--- /var/tmp/diff_new_pack.6P3psT/_old 2016-08-28 12:18:06.000000000 +0200
+++ /var/tmp/diff_new_pack.6P3psT/_new 2016-08-28 12:18:06.000000000 +0200
@@ -1,9 +1,14 @@
-pub 4096R/BB5F58CC 2010-10-21 [expires: 2015-10-20]
-uid Netfilter Core Team <coreteam(a)netfilter.org>
-sub 4096R/04B92F5C 2010-10-21 [expires: 2015-10-20]
+pub 4096R/0xA4111F89BB5F58CC 2010-10-21 [expires: 2015-10-20]
+ Key fingerprint = 57FF 5E9C 9AA6 7A86 0B55 7AF7 A411 1F89 BB5F 58CC
+uid [ expired] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0x0FD3A13A04B92F5C 2010-10-21 [expires: 2015-10-20]
+
+pub 4096R/0xAB4655A126D292E4 2015-10-19 [expires: 2020-10-17]
+ Key fingerprint = C09D B206 3F1D 7034 BA61 52AD AB46 55A1 26D2 92E4
+uid [ unknown] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0xE3B0B6BAE3AAA39E 2015-10-19 [expires: 2020-10-17]
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.19 (GNU/Linux)
mQINBEzAS5EBEADVlGm+KwODJcVmP33HTCbn/eP8obZbgu+3Z1CYRklF8V43vC6D
8Jfk7fjD4/gWbAKZxriOESXVAN7mp0Fho4+Ga+pxWeLIET9tVM5xbNFK1p9R3XCK
@@ -51,6 +56,52 @@
kMm3eGmDSqoMxsPmarb80nkoFQMOPhJWlyaUCt6HHRYuSkIcxY4H4Ni3Oq1s1R9/
EqUuIfxNv7Kp0mcsE2KvANc3JfB9wXwLWqDYRCifLkCD6pbpt9L/+xQ49VzcFxNO
9DqTyk4N7cz7OZrAi+ouVrdFuiwnZyn5YSQoof6Pos58b3bkFn14m9gofwTqGzPh
-R4Vot9rRu5zrWdoCM4cRThpJyrjqBMs=
-=mRxL
+R4Vot9rRu5zrWdoCM4cRThpJyrjqBMuZAg0EViV2IwEQALrfnP0L2QbpXPN1Yg7w
+ESbOMnp3B7nIyeVmo3mvYI/mH0GtEHcFbigsUt4nIXCxI/ppB5NQH/GR8EbTUbq2
+OycNaIRWSDYHX+LDijyZ9NO6m8wbQODdhjroK7q8rHzO8Vp+reNzPM2nY7Uh3w3s
+dPrOERGYeZld1nDyN20ko2Zg4fIJIwVJaHwv4L1j9GYAKp6ACnyG81+VA9adPNCi
+9YyIbET/3/bWkl86AS78rLY7fFo5s2BZn0gvFzCB/q9v/dKYs6e5aX7DUeF2q4OW
+/J7vJjITXGum7ydRC3Neov8PdeNAbBfciznWvnTyArExjgTiHwqQOIDnW4dEJtJw
+iNP50rVKb5DZI3/YokZ5AAQV70ZZemL/5vfGl6a77wvuUFcKFtiQq3JYvt3oWcBO
+zyWbd7L1McwAbOOeSXS9hGWuWHjzFuQl7igdJAXs4GRCgUbM83yTCtmDD11337De
+diSfrcgtmNpkvfRBkjUKYten6N1jsNBqCevLxw0uFYBeSVl96KJyybMd2Rd7P+tC
+jtfpPuEvw9AlPqHZKnKQ4c8vp07MCI9JavJ/nola7rCMk0LULC9tttyaOGNSD3vb
+/t26lXr6qOV60+0lw7xEbdAu8zdEqR/ixKbvn1jbSajTcH3geGL7YakliuctRWTB
+XYyd8abaKDUzrTES1JJ53xRNABEBAAG0LE5ldGZpbHRlciBDb3JlIFRlYW0gPGNv
+cmV0ZWFtQG5ldGZpbHRlci5vcmc+iQI+BBMBAgAoBQJWJXYjAhsDBQkJZgGABgsJ
+CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCrRlWhJtKS5NoHEAC6mgfbDygR+Mrb
+Hg3qbGkgonPjUnYBqkBDz8jgdvFXS3Qm/ANI92qqeLkG+eFusuioIpXg4SHNmyUB
+oR+B60tApBtzO88iAbCHkjvfz4fqAZpYJ3VzYXIa/ScSoQHj77quNkO9aauikTj4
+ro6gnMUI2ilN1dv9Fb9/3XYxfyvP7QhWyGRuu9MekaPNjATtw7tDnDBe0C5eHrwX
+l2ojGxldj2eecoLLYcGw8x4rVDAxlNldh6tNgwc3IQ+4FkIri5sudK4vxDkPbouf
+srT6xoUe+qAj+9mScUeRFSrrdCCRd2EsBq+jhWS/kOWa0OAi6TKSOXMIdJze84Og
+R+67m+PNivmZ5+XgSmM/AzN36Lynx8nx7WNThVCd9HViq9kyXI1tQazGU30++Wec
+ct+7VE2f4aP5ITjd7WlHlEULVjRMBg+mFdz+jfmEncmC41TjWykqvrZWsT98FhNR
+YiRVsniiNvc7BS8X1qBODovvKg44yF3xEy3uFScHMqwMjiEqtVfQpfZh9PjzX1eA
+uj9sMF16NnzVeT/n4gKbO8E4vebtIJgzMd19Y0KCxfMxu4rjSHw1T0bYzwOoa9y/
+ejKM/G/NEnFKzwjySEbG9zlciJXrhb7a2y+YzNvSjEuP8Hs2BLPgJkZtVoiE4UVE
+9Wb7jNhyUz4RC0FdjRyGItGglyc9IbkCDQRWJXYjARAArK1scDuvvWTEJv+y0Sr3
+hnM8mnHIK2XNcn4p/d5nO1myCtZWPRVDIQyyXJMntEqrLBMnjxBdQcQkt7o2mJFL
+yJYO+Xb/9JyH161MPybM60dDXOTTxnAp3dDH4tdL/5snVAyrC93W2PMahK4bdwpM
+10Cz/FxtcB2xJ7Zoqq3bveN4KSUabsRYJN29BwjKtg392MtJ68SAAWN21feQ/Js9
+KjDpNoX2Sl9ZoIR2bbIsaGNeti/ciTy43MS/V6KXNTcoYrgySyW/HCNw9KjtvH+g
+/W/ze0sCXJKLby6oRQfsR2zPBTs9YB92GepG+3j1v+tw4jtbvmLKSse+S5BG8Ue2
+j3Bxbz4/RECdrlxDe4gX1hi5K/W0159pB65fha+DM3YvKrNouKsqLsxm5DMjDjdE
+qVQWtPd4tYy4uL2RWcGvvede+tN5rYsBatfelMfTSFN+jxFntwok6YmulnzIDP4O
+tUjLOpH1ZyNTcXEyAQz51aXcjVuk/6MV64hSEnH1FB7v79Zo9afdmNSKdpXf8nvZ
+3IO7HnXhpwh3pjWplyalZR7nb7PlIDxHCK6S3EN3lutBX4w9oh03KfrWlfZb2TD/
+s85uNzbU7TSb8KFC90i9H/qsd1w3kzy4evRJlyFvIqwksYY76huTfpDdx8yabfFY
+IG2TXc2iMkA7R+oMo+B46kkAEQEAAYkCJQQYAQIADwUCViV2IwIbDAUJCWYBgAAK
+CRCrRlWhJtKS5IB2D/9eL6TJ82wCrh3Hx+R3YeWVObukEBq4Ho8KRFngvIi+2D14
+PljWtITPeplDtpXu3E1i7I74F1925xFs7pT6BD65e13/18y4RX5pwGfu0HTJpi3U
+B47WXlSnyRBLD+/qiKcSCkR1mcKJgyIY9KbA0rr1Drv/3DJR+wBt9Fuww/gxgv7v
+yIxxrDa2+GESxJc1iLyuKFiDtnUkmJpqtJV0szi38W1NQUwWWF3CWUpqfvn316CJ
+4cTyuurLn994ceJDherS9tFcYASdmbl6g6PwWgdFrpmb44J7gdBCsB9q2cpjhDbu
+bgTq7V32CVMBGKOThihJZHIz/LZyuHv9WNYXUNfpEOOUN97C+j6091TSh+5P6oJO
+E61VMBBL51nw3T0FFKtA9kubKLk08GH75vPLaBqLa5B88Z3nJWdlaJOdgGEz65PU
+Uh78iWJ3AFAOwhsDEfxFYC+gZWqt9qw3Wyp2eY2q+5ep4KRxuqq3M0V3zXE6z5ff
+F8CCqRe/yzGAh8RxEmT/Nl+yHEIVv7qpJk6GSvkXr5dN/jyZCiN2fHEhZOBtLvln
+E5UjMbYOGqk3F8OARHarJ/qARATzqNYdDRe9SKxlbog+k6WWxJ4ivSVmYY28vEWf
+79IZ79ZHJ0woRi+vr3Cwpc488Sjwi7a/O0HW6zXSaxXNeYR0VnwvcrZrtlCqIQ==
+=zI6p
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package libnetfilter_acct for openSUSE:Factory checked in at 2016-08-28 12:17:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libnetfilter_acct (Old)
and /work/SRC/openSUSE:Factory/.libnetfilter_acct.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libnetfilter_acct"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libnetfilter_acct/libnetfilter_acct.changes 2014-12-10 23:44:14.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libnetfilter_acct.new/libnetfilter_acct.changes 2016-08-28 12:18:01.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Aug 22 11:40:04 UTC 2016 - jengelh(a)inai.de
+
+- Update to new upstream release 1.0.3
+* add JSON output format
+* Extend accounting capabilities to support quotas
+
+-------------------------------------------------------------------
Old:
----
libnetfilter_acct-1.0.2.tar.bz2
libnetfilter_acct-1.0.2.tar.bz2.sig
New:
----
libnetfilter_acct-1.0.3.tar.bz2
libnetfilter_acct-1.0.3.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libnetfilter_acct.spec ++++++
--- /var/tmp/diff_new_pack.9DBuCk/_old 2016-08-28 12:18:03.000000000 +0200
+++ /var/tmp/diff_new_pack.9DBuCk/_new 2016-08-28 12:18:03.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libnetfilter_acct
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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,7 +18,7 @@
Name: libnetfilter_acct
%define lname %{name}1
-Version: 1.0.2
+Version: 1.0.3
Release: 0
Summary: Userspace library for the in-kernel Netfilter counters
License: LGPL-2.1+
@@ -26,13 +26,11 @@
Url: http://netfilter.org/projects/libnetfilter_acct/
#Git-Clone: git://git.netfilter.org/libnetfilter_acct
-#DL-URL: http://netfilter.org/projects/libnetfilter_acct/files/
-Source: http://netfilter.org/projects/libnetfilter_acct/files/%name-%version.tar.bz2
-Source2: http://netfilter.org/projects/libnetfilter_acct/files/%name-%version.tar.bz…
+Source: ftp://ftp.netfilter.org/pub/libnetfilter_acct/%name-%version.tar.bz2
+Source2: ftp://ftp.netfilter.org/pub/libnetfilter_acct/%name-%version.tar.bz2.sig
Source3: baselibs.conf
Source4: %name.keyring
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-#git#BuildRequires: autoconf, automake >= 1.6, libtool
BuildRequires: pkgconfig >= 0.21
BuildRequires: pkgconfig(libmnl) >= 1.0.0
++++++ libnetfilter_acct-1.0.2.tar.bz2 -> libnetfilter_acct-1.0.3.tar.bz2 ++++++
++++ 7221 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/build-aux/ar-lib new/libnetfilter_acct-1.0.3/build-aux/ar-lib
--- old/libnetfilter_acct-1.0.2/build-aux/ar-lib 2013-03-03 21:14:30.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/build-aux/ar-lib 2016-08-22 13:20:46.000000000 +0200
@@ -4,7 +4,7 @@
me=ar-lib
scriptversion=2012-03-01.08; # UTC
-# Copyright (C) 2010, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2010-2013 Free Software Foundation, Inc.
# Written by Peter Rosin <peda(a)lysator.liu.se>.
#
# This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/build-aux/compile new/libnetfilter_acct-1.0.3/build-aux/compile
--- old/libnetfilter_acct-1.0.2/build-aux/compile 2013-03-03 21:14:30.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/build-aux/compile 2016-08-22 13:20:46.000000000 +0200
@@ -1,10 +1,9 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2012-03-05.13; # UTC
+scriptversion=2012-10-14.11; # UTC
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey(a)cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -113,6 +112,11 @@
lib=$dir/$lib.lib
break
fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
done
IFS=$save_IFS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/build-aux/missing new/libnetfilter_acct-1.0.3/build-aux/missing
--- old/libnetfilter_acct-1.0.2/build-aux/missing 2013-03-03 21:14:30.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/build-aux/missing 2016-08-22 13:20:46.000000000 +0200
@@ -1,11 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,68 +25,40 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
Send bug reports to <bug-automake(a)gnu.org>."
exit $?
@@ -99,228 +70,141 @@
;;
-*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/config.h.in new/libnetfilter_acct-1.0.3/config.h.in
--- old/libnetfilter_acct-1.0.2/config.h.in 2013-03-03 21:14:28.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/config.h.in 2016-08-22 13:20:45.000000000 +0200
@@ -37,9 +37,6 @@
*/
#undef LT_OBJDIR
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
/* Name of package */
#undef PACKAGE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/configure.ac new/libnetfilter_acct-1.0.3/configure.ac
--- old/libnetfilter_acct-1.0.2/configure.ac 2013-03-03 21:09:06.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/configure.ac 2016-08-22 13:16:32.000000000 +0200
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to create configure.
-AC_INIT([libnetfilter_acct], [1.0.2])
+AC_INIT([libnetfilter_acct], [1.0.3])
AC_CONFIG_AUX_DIR([build-aux])
AC_CANONICAL_HOST
AC_CONFIG_MACRO_DIR([m4])
@@ -22,7 +22,7 @@
LT_INIT
CHECK_GCC_FVISIBILITY
case "$host" in
-*-*-linux*) ;;
+*-*-linux* | *-*-uclinux*) ;;
*) AC_MSG_ERROR([Linux only, dude!]);;
esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/include/libnetfilter_acct/libnetfilter_acct.h new/libnetfilter_acct-1.0.3/include/libnetfilter_acct/libnetfilter_acct.h
--- old/libnetfilter_acct-1.0.2/include/libnetfilter_acct/libnetfilter_acct.h 2013-03-03 21:06:14.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/include/libnetfilter_acct/libnetfilter_acct.h 2016-02-29 12:42:34.000000000 +0100
@@ -1,16 +1,21 @@
#ifndef _LIBNETFILTER_ACCT_H_
#define _LIBNETFILTER_ACCT_H_
-#include <sys/types.h>
#include <stdint.h>
#include <linux/netfilter/nfnetlink_acct.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct nfacct;
enum nfacct_attr_type {
NFACCT_ATTR_NAME = 0,
NFACCT_ATTR_PKTS,
NFACCT_ATTR_BYTES,
+ NFACCT_ATTR_FLAGS,
+ NFACCT_ATTR_QUOTA,
};
struct nfacct *nfacct_alloc(void);
@@ -36,7 +41,12 @@
#define NFACCT_SNPRINTF_T_PLAIN 0
#define NFACCT_SNPRINTF_T_XML 1
+#define NFACCT_SNPRINTF_T_JSON 2
int nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, uint16_t type, uint16_t flags);
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/include/linux/netfilter/nfnetlink.h new/libnetfilter_acct-1.0.3/include/linux/netfilter/nfnetlink.h
--- old/libnetfilter_acct-1.0.2/include/linux/netfilter/nfnetlink.h 2012-10-18 10:37:44.000000000 +0200
+++ new/libnetfilter_acct-1.0.3/include/linux/netfilter/nfnetlink.h 2015-05-21 15:04:48.000000000 +0200
@@ -1,5 +1,5 @@
-#ifndef _UAPI_NFNETLINK_H
-#define _UAPI_NFNETLINK_H
+#ifndef _NFNETLINK_H
+#define _NFNETLINK_H
#include <linux/types.h>
#include <linux/netfilter/nfnetlink_compat.h>
@@ -18,6 +18,10 @@
#define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE
NFNLGRP_CONNTRACK_EXP_DESTROY,
#define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY
+ NFNLGRP_NFTABLES,
+#define NFNLGRP_NFTABLES NFNLGRP_NFTABLES
+ NFNLGRP_ACCT_QUOTA,
+#define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA
__NFNLGRP_MAX,
};
#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
@@ -51,6 +55,12 @@
#define NFNL_SUBSYS_ACCT 7
#define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
#define NFNL_SUBSYS_CTHELPER 9
-#define NFNL_SUBSYS_COUNT 10
+#define NFNL_SUBSYS_NFTABLES 10
+#define NFNL_SUBSYS_NFT_COMPAT 11
+#define NFNL_SUBSYS_COUNT 12
+
+/* Reserved control nfnetlink messages */
+#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
+#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+1
-#endif /* _UAPI_NFNETLINK_H */
+#endif /* _NFNETLINK_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/include/linux/netfilter/nfnetlink_acct.h new/libnetfilter_acct-1.0.3/include/linux/netfilter/nfnetlink_acct.h
--- old/libnetfilter_acct-1.0.2/include/linux/netfilter/nfnetlink_acct.h 2012-10-18 10:37:44.000000000 +0200
+++ new/libnetfilter_acct-1.0.3/include/linux/netfilter/nfnetlink_acct.h 2015-05-21 15:04:48.000000000 +0200
@@ -1,5 +1,5 @@
-#ifndef _UAPI_NFNL_ACCT_H_
-#define _UAPI_NFNL_ACCT_H_
+#ifndef _NFNL_ACCT_H_
+#define _NFNL_ACCT_H_
#ifndef NFACCT_NAME_MAX
#define NFACCT_NAME_MAX 32
@@ -10,18 +10,35 @@
NFNL_MSG_ACCT_GET,
NFNL_MSG_ACCT_GET_CTRZERO,
NFNL_MSG_ACCT_DEL,
+ NFNL_MSG_ACCT_OVERQUOTA,
NFNL_MSG_ACCT_MAX
};
+enum nfnl_acct_flags {
+ NFACCT_F_QUOTA_PKTS = (1 << 0),
+ NFACCT_F_QUOTA_BYTES = (1 << 1),
+ NFACCT_F_OVERQUOTA = (1 << 2), /* can't be set from userspace */
+};
+
enum nfnl_acct_type {
NFACCT_UNSPEC,
NFACCT_NAME,
NFACCT_PKTS,
NFACCT_BYTES,
NFACCT_USE,
+ NFACCT_FLAGS,
+ NFACCT_QUOTA,
+ NFACCT_FILTER,
__NFACCT_MAX
};
#define NFACCT_MAX (__NFACCT_MAX - 1)
+enum nfnl_attr_filter_type {
+ NFACCT_FILTER_UNSPEC,
+ NFACCT_FILTER_MASK,
+ NFACCT_FILTER_VALUE,
+ __NFACCT_FILTER_MAX
+};
+#define NFACCT_FILTER_MAX (__NFACCT_FILTER_MAX - 1)
-#endif /* _UAPI_NFNL_ACCT_H_ */
+#endif /* _NFNL_ACCT_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/m4/libtool.m4 new/libnetfilter_acct-1.0.3/m4/libtool.m4
--- old/libnetfilter_acct-1.0.2/m4/libtool.m4 2013-03-03 21:14:25.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/m4/libtool.m4 2016-08-22 13:20:43.000000000 +0200
@@ -1312,7 +1312,7 @@
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
@@ -1324,9 +1324,19 @@
LD="${LD-ld} -m elf_i386_fbsd"
;;
x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -1345,7 +1355,10 @@
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
@@ -1688,7 +1701,8 @@
;;
*)
lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/src/internal.h new/libnetfilter_acct-1.0.3/src/internal.h
--- old/libnetfilter_acct-1.0.2/src/internal.h 2012-10-18 10:37:44.000000000 +0200
+++ new/libnetfilter_acct-1.0.3/src/internal.h 2014-04-28 12:59:00.000000000 +0200
@@ -21,4 +21,15 @@
# endif
#endif
+#define SNPRINTF_CHECK(ret, rem, offset, len) \
+do { \
+ if (ret < 0) \
+ return ret; \
+ len += ret; \
+ if (ret > rem) \
+ ret = rem; \
+ offset += ret; \
+ rem -= ret; \
+} while (0)
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libnetfilter_acct-1.0.2/src/libnetfilter_acct.c new/libnetfilter_acct-1.0.3/src/libnetfilter_acct.c
--- old/libnetfilter_acct-1.0.2/src/libnetfilter_acct.c 2013-03-03 21:06:14.000000000 +0100
+++ new/libnetfilter_acct-1.0.3/src/libnetfilter_acct.c 2016-02-29 12:42:34.000000000 +0100
@@ -13,6 +13,7 @@
#include <endian.h>
#include <stdlib.h>
#include <string.h>
+#include <inttypes.h>
#include <libmnl/libmnl.h>
#include <linux/netfilter/nfnetlink.h>
@@ -60,6 +61,8 @@
uint64_t pkts;
uint64_t bytes;
uint32_t bitset;
+ uint32_t flags;
+ uint64_t quota;
};
/**
@@ -113,6 +116,14 @@
nfacct->bytes = *((uint64_t *) data);
nfacct->bitset |= (1 << NFACCT_ATTR_BYTES);
break;
+ case NFACCT_ATTR_FLAGS:
+ nfacct->flags = *((uint32_t *) data);
+ nfacct->bitset |= (1 << NFACCT_ATTR_FLAGS);
+ break;
+ case NFACCT_ATTR_QUOTA:
+ nfacct->quota = *((uint64_t *) data);
+ nfacct->bitset |= (1 << NFACCT_ATTR_QUOTA);
+ break;
}
}
EXPORT_SYMBOL(nfacct_attr_set);
@@ -163,6 +174,12 @@
case NFACCT_ATTR_BYTES:
nfacct->bitset &= ~(1 << NFACCT_ATTR_BYTES);
break;
+ case NFACCT_ATTR_FLAGS:
+ nfacct->bitset &= ~(1 << NFACCT_ATTR_FLAGS);
+ break;
+ case NFACCT_ATTR_QUOTA:
+ nfacct->bitset &= ~(1 << NFACCT_ATTR_QUOTA);
+ break;
}
}
EXPORT_SYMBOL(nfacct_attr_unset);
@@ -192,6 +209,14 @@
if (nfacct->bitset & (1 << NFACCT_ATTR_BYTES))
ret = &nfacct->bytes;
break;
+ case NFACCT_ATTR_FLAGS:
+ if (nfacct->bitset & (1 << NFACCT_ATTR_FLAGS))
+ ret = &nfacct->flags;
+ break;
+ case NFACCT_ATTR_QUOTA:
+ if (nfacct->bitset & (1 << NFACCT_ATTR_QUOTA))
+ ret = &nfacct->quota;
+ break;
}
return ret;
}
@@ -231,22 +256,88 @@
nfacct_snprintf_plain(char *buf, size_t rem, struct nfacct *nfacct,
uint16_t flags)
{
- int ret;
+ int ret, offset = 0, len = 0;
if (flags & NFACCT_SNPRINTF_F_FULL) {
ret = snprintf(buf, rem,
- "{ pkts = %.20llu, bytes = %.20llu } = %s;",
- (unsigned long long)
+ "{ pkts = %.20"PRIu64", bytes = %.20"PRIu64"",
nfacct_attr_get_u64(nfacct, NFACCT_ATTR_PKTS),
- (unsigned long long)
- nfacct_attr_get_u64(nfacct, NFACCT_ATTR_BYTES),
+ nfacct_attr_get_u64(nfacct, NFACCT_ATTR_BYTES));
+ SNPRINTF_CHECK(ret, rem, offset, len);
+
+ if (nfacct->flags) {
+ uint32_t mode;
+ char *mode_name;
+
+ mode = nfacct_attr_get_u64(nfacct, NFACCT_ATTR_FLAGS);
+ if (mode & NFACCT_F_QUOTA_PKTS)
+ mode_name = "packet";
+ else if (mode & NFACCT_F_QUOTA_BYTES)
+ mode_name = "byte";
+ else
+ mode_name = "unknown";
+
+ ret = snprintf(buf + offset, rem,
+ ", quota = %.20"PRIu64", mode = %s"\
+ ", overquota = %s",
+ nfacct_attr_get_u64(nfacct, NFACCT_ATTR_QUOTA),
+ mode_name,
+ mode & NFACCT_F_OVERQUOTA ? "yes" : "no");
+ SNPRINTF_CHECK(ret, rem, offset, len);
+ }
+
+ ret = snprintf(buf + offset, rem, " } = %s;",
nfacct_attr_get_str(nfacct, NFACCT_ATTR_NAME));
} else {
ret = snprintf(buf, rem, "%s\n",
nfacct_attr_get_str(nfacct, NFACCT_ATTR_NAME));
}
+ SNPRINTF_CHECK(ret, rem, offset, len);
- return ret;
+ return len;
+}
+
+static int
+nfacct_snprintf_json(char *buf, size_t rem, struct nfacct *nfacct,
+ uint16_t flags)
+{
+ int ret = 0, offset = 0, len = 0;
+
+ if (flags & NFACCT_SNPRINTF_F_FULL) {
+ ret = snprintf(buf, rem,
+ " { \"pkts\" : %"PRIu64", \"bytes\" : %"PRIu64"",
+ nfacct_attr_get_u64(nfacct, NFACCT_ATTR_PKTS),
+ nfacct_attr_get_u64(nfacct, NFACCT_ATTR_BYTES));
+ SNPRINTF_CHECK(ret, rem, offset, len);
+
+ if (nfacct->flags) {
+ uint32_t mode;
+ char *mode_name;
+
+ mode = nfacct_attr_get_u64(nfacct, NFACCT_ATTR_FLAGS);
+ if (mode & NFACCT_F_QUOTA_PKTS)
+ mode_name = "packet";
+ else if (mode & NFACCT_F_QUOTA_BYTES)
+ mode_name = "byte";
+ else
+ mode_name = "unknown";
+
+ ret = snprintf(buf + offset, rem,
+ ", \"quota\" : %"PRIu64", \"mode\" = \"%s\""\
+ ", \"overquota\" = %u",
+ nfacct_attr_get_u64(nfacct, NFACCT_ATTR_QUOTA),
+ mode_name,
+ mode & NFACCT_F_OVERQUOTA ? 1 : 0);
+ SNPRINTF_CHECK(ret, rem, offset, len);
+ }
+
+ ret = snprintf(buf + offset, rem, ", \"name\" : \"%s\" }",
+ nfacct_attr_get_str(nfacct, NFACCT_ATTR_NAME));
+ }
+ /* non-F_FULL doesn't seem to make sense in JSON */
+ SNPRINTF_CHECK(ret, rem, offset, len);
+
+ return len;
}
#define BUFFER_SIZE(ret, size, rem, offset) \
@@ -296,13 +387,11 @@
ret = snprintf(buf, rem,
"<obj><name>%s</name>"
- "<pkts>%.20llu</pkts>"
- "<bytes>%.20llu</bytes>",
+ "<pkts>%.20"PRIu64"</pkts>"
+ "<bytes>%.20"PRIu64"</bytes>",
nfacct_attr_get_str(nfacct, NFACCT_ATTR_NAME),
- (unsigned long long)
- nfacct_attr_get_u64(nfacct, NFACCT_ATTR_BYTES),
- (unsigned long long)
- nfacct_attr_get_u64(nfacct, NFACCT_ATTR_PKTS));
+ nfacct_attr_get_u64(nfacct, NFACCT_ATTR_PKTS),
+ nfacct_attr_get_u64(nfacct, NFACCT_ATTR_BYTES));
BUFFER_SIZE(ret, size, rem, offset);
if (flags & NFACCT_SNPRINTF_F_TIME) {
@@ -347,6 +436,9 @@
case NFACCT_SNPRINTF_T_XML:
ret = nfacct_snprintf_xml(buf, size, nfacct, flags);
break;
+ case NFACCT_SNPRINTF_T_JSON:
+ ret = nfacct_snprintf_json(buf, size, nfacct, flags);
+ break;
default:
ret = -1;
break;
@@ -427,6 +519,12 @@
if (nfacct->bitset & (1 << NFACCT_ATTR_BYTES))
mnl_attr_put_u64(nlh, NFACCT_BYTES, htobe64(nfacct->bytes));
+
+ if (nfacct->bitset & (1 << NFACCT_ATTR_FLAGS))
+ mnl_attr_put_u32(nlh, NFACCT_FLAGS, htobe32(nfacct->flags));
+
+ if (nfacct->bitset & (1 << NFACCT_ATTR_QUOTA))
+ mnl_attr_put_u64(nlh, NFACCT_QUOTA, htobe64(nfacct->quota));
}
EXPORT_SYMBOL(nfacct_nlmsg_build_payload);
@@ -482,6 +580,13 @@
nfacct_attr_set_u64(nfacct, NFACCT_ATTR_BYTES,
be64toh(mnl_attr_get_u64(tb[NFACCT_BYTES])));
+ if (tb[NFACCT_FLAGS] && tb[NFACCT_QUOTA]) {
+ uint32_t flags = be32toh(mnl_attr_get_u32(tb[NFACCT_FLAGS]));
+ nfacct_attr_set(nfacct, NFACCT_ATTR_FLAGS, &flags);
+ nfacct_attr_set_u64(nfacct, NFACCT_ATTR_QUOTA,
+ be64toh(mnl_attr_get_u64(tb[NFACCT_QUOTA])));
+ }
+
return 0;
}
EXPORT_SYMBOL(nfacct_nlmsg_parse_payload);
++++++ libnetfilter_acct.keyring ++++++
--- /var/tmp/diff_new_pack.9DBuCk/_old 2016-08-28 12:18:03.000000000 +0200
+++ /var/tmp/diff_new_pack.9DBuCk/_new 2016-08-28 12:18:03.000000000 +0200
@@ -1,9 +1,14 @@
-pub 4096R/BB5F58CC 2010-10-21 [expires: 2015-10-20]
-uid Netfilter Core Team <coreteam(a)netfilter.org>
-sub 4096R/04B92F5C 2010-10-21 [expires: 2015-10-20]
+pub 4096R/0xA4111F89BB5F58CC 2010-10-21 [expires: 2015-10-20]
+ Key fingerprint = 57FF 5E9C 9AA6 7A86 0B55 7AF7 A411 1F89 BB5F 58CC
+uid [ expired] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0x0FD3A13A04B92F5C 2010-10-21 [expires: 2015-10-20]
+
+pub 4096R/0xAB4655A126D292E4 2015-10-19 [expires: 2020-10-17]
+ Key fingerprint = C09D B206 3F1D 7034 BA61 52AD AB46 55A1 26D2 92E4
+uid [ unknown] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0xE3B0B6BAE3AAA39E 2015-10-19 [expires: 2020-10-17]
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.19 (GNU/Linux)
mQINBEzAS5EBEADVlGm+KwODJcVmP33HTCbn/eP8obZbgu+3Z1CYRklF8V43vC6D
8Jfk7fjD4/gWbAKZxriOESXVAN7mp0Fho4+Ga+pxWeLIET9tVM5xbNFK1p9R3XCK
@@ -51,6 +56,52 @@
kMm3eGmDSqoMxsPmarb80nkoFQMOPhJWlyaUCt6HHRYuSkIcxY4H4Ni3Oq1s1R9/
EqUuIfxNv7Kp0mcsE2KvANc3JfB9wXwLWqDYRCifLkCD6pbpt9L/+xQ49VzcFxNO
9DqTyk4N7cz7OZrAi+ouVrdFuiwnZyn5YSQoof6Pos58b3bkFn14m9gofwTqGzPh
-R4Vot9rRu5zrWdoCM4cRThpJyrjqBMs=
-=mRxL
+R4Vot9rRu5zrWdoCM4cRThpJyrjqBMuZAg0EViV2IwEQALrfnP0L2QbpXPN1Yg7w
+ESbOMnp3B7nIyeVmo3mvYI/mH0GtEHcFbigsUt4nIXCxI/ppB5NQH/GR8EbTUbq2
+OycNaIRWSDYHX+LDijyZ9NO6m8wbQODdhjroK7q8rHzO8Vp+reNzPM2nY7Uh3w3s
+dPrOERGYeZld1nDyN20ko2Zg4fIJIwVJaHwv4L1j9GYAKp6ACnyG81+VA9adPNCi
+9YyIbET/3/bWkl86AS78rLY7fFo5s2BZn0gvFzCB/q9v/dKYs6e5aX7DUeF2q4OW
+/J7vJjITXGum7ydRC3Neov8PdeNAbBfciznWvnTyArExjgTiHwqQOIDnW4dEJtJw
+iNP50rVKb5DZI3/YokZ5AAQV70ZZemL/5vfGl6a77wvuUFcKFtiQq3JYvt3oWcBO
+zyWbd7L1McwAbOOeSXS9hGWuWHjzFuQl7igdJAXs4GRCgUbM83yTCtmDD11337De
+diSfrcgtmNpkvfRBkjUKYten6N1jsNBqCevLxw0uFYBeSVl96KJyybMd2Rd7P+tC
+jtfpPuEvw9AlPqHZKnKQ4c8vp07MCI9JavJ/nola7rCMk0LULC9tttyaOGNSD3vb
+/t26lXr6qOV60+0lw7xEbdAu8zdEqR/ixKbvn1jbSajTcH3geGL7YakliuctRWTB
+XYyd8abaKDUzrTES1JJ53xRNABEBAAG0LE5ldGZpbHRlciBDb3JlIFRlYW0gPGNv
+cmV0ZWFtQG5ldGZpbHRlci5vcmc+iQI+BBMBAgAoBQJWJXYjAhsDBQkJZgGABgsJ
+CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCrRlWhJtKS5NoHEAC6mgfbDygR+Mrb
+Hg3qbGkgonPjUnYBqkBDz8jgdvFXS3Qm/ANI92qqeLkG+eFusuioIpXg4SHNmyUB
+oR+B60tApBtzO88iAbCHkjvfz4fqAZpYJ3VzYXIa/ScSoQHj77quNkO9aauikTj4
+ro6gnMUI2ilN1dv9Fb9/3XYxfyvP7QhWyGRuu9MekaPNjATtw7tDnDBe0C5eHrwX
+l2ojGxldj2eecoLLYcGw8x4rVDAxlNldh6tNgwc3IQ+4FkIri5sudK4vxDkPbouf
+srT6xoUe+qAj+9mScUeRFSrrdCCRd2EsBq+jhWS/kOWa0OAi6TKSOXMIdJze84Og
+R+67m+PNivmZ5+XgSmM/AzN36Lynx8nx7WNThVCd9HViq9kyXI1tQazGU30++Wec
+ct+7VE2f4aP5ITjd7WlHlEULVjRMBg+mFdz+jfmEncmC41TjWykqvrZWsT98FhNR
+YiRVsniiNvc7BS8X1qBODovvKg44yF3xEy3uFScHMqwMjiEqtVfQpfZh9PjzX1eA
+uj9sMF16NnzVeT/n4gKbO8E4vebtIJgzMd19Y0KCxfMxu4rjSHw1T0bYzwOoa9y/
+ejKM/G/NEnFKzwjySEbG9zlciJXrhb7a2y+YzNvSjEuP8Hs2BLPgJkZtVoiE4UVE
+9Wb7jNhyUz4RC0FdjRyGItGglyc9IbkCDQRWJXYjARAArK1scDuvvWTEJv+y0Sr3
+hnM8mnHIK2XNcn4p/d5nO1myCtZWPRVDIQyyXJMntEqrLBMnjxBdQcQkt7o2mJFL
+yJYO+Xb/9JyH161MPybM60dDXOTTxnAp3dDH4tdL/5snVAyrC93W2PMahK4bdwpM
+10Cz/FxtcB2xJ7Zoqq3bveN4KSUabsRYJN29BwjKtg392MtJ68SAAWN21feQ/Js9
+KjDpNoX2Sl9ZoIR2bbIsaGNeti/ciTy43MS/V6KXNTcoYrgySyW/HCNw9KjtvH+g
+/W/ze0sCXJKLby6oRQfsR2zPBTs9YB92GepG+3j1v+tw4jtbvmLKSse+S5BG8Ue2
+j3Bxbz4/RECdrlxDe4gX1hi5K/W0159pB65fha+DM3YvKrNouKsqLsxm5DMjDjdE
+qVQWtPd4tYy4uL2RWcGvvede+tN5rYsBatfelMfTSFN+jxFntwok6YmulnzIDP4O
+tUjLOpH1ZyNTcXEyAQz51aXcjVuk/6MV64hSEnH1FB7v79Zo9afdmNSKdpXf8nvZ
+3IO7HnXhpwh3pjWplyalZR7nb7PlIDxHCK6S3EN3lutBX4w9oh03KfrWlfZb2TD/
+s85uNzbU7TSb8KFC90i9H/qsd1w3kzy4evRJlyFvIqwksYY76huTfpDdx8yabfFY
+IG2TXc2iMkA7R+oMo+B46kkAEQEAAYkCJQQYAQIADwUCViV2IwIbDAUJCWYBgAAK
+CRCrRlWhJtKS5IB2D/9eL6TJ82wCrh3Hx+R3YeWVObukEBq4Ho8KRFngvIi+2D14
+PljWtITPeplDtpXu3E1i7I74F1925xFs7pT6BD65e13/18y4RX5pwGfu0HTJpi3U
+B47WXlSnyRBLD+/qiKcSCkR1mcKJgyIY9KbA0rr1Drv/3DJR+wBt9Fuww/gxgv7v
+yIxxrDa2+GESxJc1iLyuKFiDtnUkmJpqtJV0szi38W1NQUwWWF3CWUpqfvn316CJ
+4cTyuurLn994ceJDherS9tFcYASdmbl6g6PwWgdFrpmb44J7gdBCsB9q2cpjhDbu
+bgTq7V32CVMBGKOThihJZHIz/LZyuHv9WNYXUNfpEOOUN97C+j6091TSh+5P6oJO
+E61VMBBL51nw3T0FFKtA9kubKLk08GH75vPLaBqLa5B88Z3nJWdlaJOdgGEz65PU
+Uh78iWJ3AFAOwhsDEfxFYC+gZWqt9qw3Wyp2eY2q+5ep4KRxuqq3M0V3zXE6z5ff
+F8CCqRe/yzGAh8RxEmT/Nl+yHEIVv7qpJk6GSvkXr5dN/jyZCiN2fHEhZOBtLvln
+E5UjMbYOGqk3F8OARHarJ/qARATzqNYdDRe9SKxlbog+k6WWxJ4ivSVmYY28vEWf
+79IZ79ZHJ0woRi+vr3Cwpc488Sjwi7a/O0HW6zXSaxXNeYR0VnwvcrZrtlCqIQ==
+=zI6p
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package conntrack-tools for openSUSE:Factory checked in at 2016-08-28 12:17:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/conntrack-tools (Old)
and /work/SRC/openSUSE:Factory/.conntrack-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "conntrack-tools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/conntrack-tools/conntrack-tools.changes 2015-09-11 09:04:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.conntrack-tools.new/conntrack-tools.changes 2016-08-28 12:17:57.000000000 +0200
@@ -1,0 +2,11 @@
+Mon Aug 22 11:33:28 UTC 2016 - jengelh(a)inai.de
+
+- Update to new upstream release 1.4.4
+* conntrackd: add systemd support
+* conntrack: support delete by label
+* conntrack: add support for netmask filtering
+* conntrack: add support for CIDR notation
+* conntrack: Add missing tables "dying" and "unconfirmed"
+ to usage output.
+
+-------------------------------------------------------------------
Old:
----
conntrack-tools-1.4.3.tar.bz2
conntrack-tools-1.4.3.tar.bz2.sig
New:
----
conntrack-tools-1.4.4.tar.bz2
conntrack-tools-1.4.4.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ conntrack-tools.spec ++++++
--- /var/tmp/diff_new_pack.uLSzpC/_old 2016-08-28 12:17:58.000000000 +0200
+++ /var/tmp/diff_new_pack.uLSzpC/_new 2016-08-28 12:17:58.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package conntrack-tools
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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: conntrack-tools
-Version: 1.4.3
+Version: 1.4.4
Release: 0
Url: http://conntrack-tools.netfilter.org/
Summary: Userspace tools for interacting with the Connection Tracking System
@@ -25,9 +25,8 @@
Group: Productivity/Networking/Security
#Git-Clone: git://git.netfilter.org/conntrack-tools
-#DL-URL: http://netfilter.org/projects/conntrack-tools/files/
-Source: http://netfilter.org/projects/conntrack-tools/files/%name-%version.tar.bz2
-Source2: http://netfilter.org/projects/conntrack-tools/files/%name-%version.tar.bz2.…
+Source: ftp://ftp.netfilter.org/pub/conntrack-tools/%name-%version.tar.bz2
+Source2: ftp://ftp.netfilter.org/pub/conntrack-tools/%name-%version.tar.bz2.sig
Source3: %name.keyring
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -37,12 +36,15 @@
BuildRequires: libtool
BuildRequires: pkg-config >= 0.21
BuildRequires: xz
-BuildRequires: pkgconfig(libmnl) >= 1.0.0
-BuildRequires: pkgconfig(libnetfilter_conntrack) >= 1.0.4
+BuildRequires: pkgconfig(libmnl) >= 1.0.3
+BuildRequires: pkgconfig(libnetfilter_conntrack) >= 1.0.6
BuildRequires: pkgconfig(libnetfilter_cthelper) >= 1.0.0
BuildRequires: pkgconfig(libnetfilter_cttimeout) >= 1.0.0
BuildRequires: pkgconfig(libnetfilter_queue) >= 1.0.2
BuildRequires: pkgconfig(libnfnetlink) >= 1.0.1
+%if 0%{?suse_version} >= 1330
+BuildRequires: pkgconfig(libsystemd) >= 227
+%endif
%description
The conntrack-tools are a set of tools targeted at system
@@ -60,16 +62,20 @@
find doc -type f -name '*.orig' -delete
%build
-%configure --disable-static
+%configure \
+%if 0%{?suse_version} >= 1330
+ --enable-systemd \
+%endif
+ --disable-static
# CC read_config_lex.o
#read_config_lex.l:24:28: fatal error: read_config_yy.h: No such file or
#directory
make %{?_smp_mflags} -j1
%install
-b="%buildroot";
-make install DESTDIR="$b";
-find "$b/%_libdir" -type f -name "*.la" -delete;
+b="%buildroot"
+make install DESTDIR="$b"
+find "$b/%_libdir" -type f -name "*.la" -delete
%files
%defattr(-,root,root)
@@ -78,6 +84,7 @@
%_sbindir/conntrackd
%_sbindir/nfct
%_libdir/%name
+%_mandir/man5/*
%_mandir/man8/*
%changelog
++++++ conntrack-tools-1.4.3.tar.bz2 -> conntrack-tools-1.4.4.tar.bz2 ++++++
++++ 118496 lines of diff (skipped)
++++++ conntrack-tools.keyring ++++++
--- /var/tmp/diff_new_pack.uLSzpC/_old 2016-08-28 12:17:59.000000000 +0200
+++ /var/tmp/diff_new_pack.uLSzpC/_new 2016-08-28 12:17:59.000000000 +0200
@@ -1,9 +1,14 @@
-pub 4096R/BB5F58CC 2010-10-21 [expires: 2015-10-20]
-uid Netfilter Core Team <coreteam(a)netfilter.org>
-sub 4096R/04B92F5C 2010-10-21 [expires: 2015-10-20]
+pub 4096R/0xA4111F89BB5F58CC 2010-10-21 [expires: 2015-10-20]
+ Key fingerprint = 57FF 5E9C 9AA6 7A86 0B55 7AF7 A411 1F89 BB5F 58CC
+uid [ expired] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0x0FD3A13A04B92F5C 2010-10-21 [expires: 2015-10-20]
+
+pub 4096R/0xAB4655A126D292E4 2015-10-19 [expires: 2020-10-17]
+ Key fingerprint = C09D B206 3F1D 7034 BA61 52AD AB46 55A1 26D2 92E4
+uid [ unknown] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0xE3B0B6BAE3AAA39E 2015-10-19 [expires: 2020-10-17]
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.19 (GNU/Linux)
mQINBEzAS5EBEADVlGm+KwODJcVmP33HTCbn/eP8obZbgu+3Z1CYRklF8V43vC6D
8Jfk7fjD4/gWbAKZxriOESXVAN7mp0Fho4+Ga+pxWeLIET9tVM5xbNFK1p9R3XCK
@@ -51,6 +56,52 @@
kMm3eGmDSqoMxsPmarb80nkoFQMOPhJWlyaUCt6HHRYuSkIcxY4H4Ni3Oq1s1R9/
EqUuIfxNv7Kp0mcsE2KvANc3JfB9wXwLWqDYRCifLkCD6pbpt9L/+xQ49VzcFxNO
9DqTyk4N7cz7OZrAi+ouVrdFuiwnZyn5YSQoof6Pos58b3bkFn14m9gofwTqGzPh
-R4Vot9rRu5zrWdoCM4cRThpJyrjqBMs=
-=mRxL
+R4Vot9rRu5zrWdoCM4cRThpJyrjqBMuZAg0EViV2IwEQALrfnP0L2QbpXPN1Yg7w
+ESbOMnp3B7nIyeVmo3mvYI/mH0GtEHcFbigsUt4nIXCxI/ppB5NQH/GR8EbTUbq2
+OycNaIRWSDYHX+LDijyZ9NO6m8wbQODdhjroK7q8rHzO8Vp+reNzPM2nY7Uh3w3s
+dPrOERGYeZld1nDyN20ko2Zg4fIJIwVJaHwv4L1j9GYAKp6ACnyG81+VA9adPNCi
+9YyIbET/3/bWkl86AS78rLY7fFo5s2BZn0gvFzCB/q9v/dKYs6e5aX7DUeF2q4OW
+/J7vJjITXGum7ydRC3Neov8PdeNAbBfciznWvnTyArExjgTiHwqQOIDnW4dEJtJw
+iNP50rVKb5DZI3/YokZ5AAQV70ZZemL/5vfGl6a77wvuUFcKFtiQq3JYvt3oWcBO
+zyWbd7L1McwAbOOeSXS9hGWuWHjzFuQl7igdJAXs4GRCgUbM83yTCtmDD11337De
+diSfrcgtmNpkvfRBkjUKYten6N1jsNBqCevLxw0uFYBeSVl96KJyybMd2Rd7P+tC
+jtfpPuEvw9AlPqHZKnKQ4c8vp07MCI9JavJ/nola7rCMk0LULC9tttyaOGNSD3vb
+/t26lXr6qOV60+0lw7xEbdAu8zdEqR/ixKbvn1jbSajTcH3geGL7YakliuctRWTB
+XYyd8abaKDUzrTES1JJ53xRNABEBAAG0LE5ldGZpbHRlciBDb3JlIFRlYW0gPGNv
+cmV0ZWFtQG5ldGZpbHRlci5vcmc+iQI+BBMBAgAoBQJWJXYjAhsDBQkJZgGABgsJ
+CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCrRlWhJtKS5NoHEAC6mgfbDygR+Mrb
+Hg3qbGkgonPjUnYBqkBDz8jgdvFXS3Qm/ANI92qqeLkG+eFusuioIpXg4SHNmyUB
+oR+B60tApBtzO88iAbCHkjvfz4fqAZpYJ3VzYXIa/ScSoQHj77quNkO9aauikTj4
+ro6gnMUI2ilN1dv9Fb9/3XYxfyvP7QhWyGRuu9MekaPNjATtw7tDnDBe0C5eHrwX
+l2ojGxldj2eecoLLYcGw8x4rVDAxlNldh6tNgwc3IQ+4FkIri5sudK4vxDkPbouf
+srT6xoUe+qAj+9mScUeRFSrrdCCRd2EsBq+jhWS/kOWa0OAi6TKSOXMIdJze84Og
+R+67m+PNivmZ5+XgSmM/AzN36Lynx8nx7WNThVCd9HViq9kyXI1tQazGU30++Wec
+ct+7VE2f4aP5ITjd7WlHlEULVjRMBg+mFdz+jfmEncmC41TjWykqvrZWsT98FhNR
+YiRVsniiNvc7BS8X1qBODovvKg44yF3xEy3uFScHMqwMjiEqtVfQpfZh9PjzX1eA
+uj9sMF16NnzVeT/n4gKbO8E4vebtIJgzMd19Y0KCxfMxu4rjSHw1T0bYzwOoa9y/
+ejKM/G/NEnFKzwjySEbG9zlciJXrhb7a2y+YzNvSjEuP8Hs2BLPgJkZtVoiE4UVE
+9Wb7jNhyUz4RC0FdjRyGItGglyc9IbkCDQRWJXYjARAArK1scDuvvWTEJv+y0Sr3
+hnM8mnHIK2XNcn4p/d5nO1myCtZWPRVDIQyyXJMntEqrLBMnjxBdQcQkt7o2mJFL
+yJYO+Xb/9JyH161MPybM60dDXOTTxnAp3dDH4tdL/5snVAyrC93W2PMahK4bdwpM
+10Cz/FxtcB2xJ7Zoqq3bveN4KSUabsRYJN29BwjKtg392MtJ68SAAWN21feQ/Js9
+KjDpNoX2Sl9ZoIR2bbIsaGNeti/ciTy43MS/V6KXNTcoYrgySyW/HCNw9KjtvH+g
+/W/ze0sCXJKLby6oRQfsR2zPBTs9YB92GepG+3j1v+tw4jtbvmLKSse+S5BG8Ue2
+j3Bxbz4/RECdrlxDe4gX1hi5K/W0159pB65fha+DM3YvKrNouKsqLsxm5DMjDjdE
+qVQWtPd4tYy4uL2RWcGvvede+tN5rYsBatfelMfTSFN+jxFntwok6YmulnzIDP4O
+tUjLOpH1ZyNTcXEyAQz51aXcjVuk/6MV64hSEnH1FB7v79Zo9afdmNSKdpXf8nvZ
+3IO7HnXhpwh3pjWplyalZR7nb7PlIDxHCK6S3EN3lutBX4w9oh03KfrWlfZb2TD/
+s85uNzbU7TSb8KFC90i9H/qsd1w3kzy4evRJlyFvIqwksYY76huTfpDdx8yabfFY
+IG2TXc2iMkA7R+oMo+B46kkAEQEAAYkCJQQYAQIADwUCViV2IwIbDAUJCWYBgAAK
+CRCrRlWhJtKS5IB2D/9eL6TJ82wCrh3Hx+R3YeWVObukEBq4Ho8KRFngvIi+2D14
+PljWtITPeplDtpXu3E1i7I74F1925xFs7pT6BD65e13/18y4RX5pwGfu0HTJpi3U
+B47WXlSnyRBLD+/qiKcSCkR1mcKJgyIY9KbA0rr1Drv/3DJR+wBt9Fuww/gxgv7v
+yIxxrDa2+GESxJc1iLyuKFiDtnUkmJpqtJV0szi38W1NQUwWWF3CWUpqfvn316CJ
+4cTyuurLn994ceJDherS9tFcYASdmbl6g6PwWgdFrpmb44J7gdBCsB9q2cpjhDbu
+bgTq7V32CVMBGKOThihJZHIz/LZyuHv9WNYXUNfpEOOUN97C+j6091TSh+5P6oJO
+E61VMBBL51nw3T0FFKtA9kubKLk08GH75vPLaBqLa5B88Z3nJWdlaJOdgGEz65PU
+Uh78iWJ3AFAOwhsDEfxFYC+gZWqt9qw3Wyp2eY2q+5ep4KRxuqq3M0V3zXE6z5ff
+F8CCqRe/yzGAh8RxEmT/Nl+yHEIVv7qpJk6GSvkXr5dN/jyZCiN2fHEhZOBtLvln
+E5UjMbYOGqk3F8OARHarJ/qARATzqNYdDRe9SKxlbog+k6WWxJ4ivSVmYY28vEWf
+79IZ79ZHJ0woRi+vr3Cwpc488Sjwi7a/O0HW6zXSaxXNeYR0VnwvcrZrtlCqIQ==
+=zI6p
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package kernel-firmware for openSUSE:Factory checked in at 2016-08-28 12:17:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-firmware (Old)
and /work/SRC/openSUSE:Factory/.kernel-firmware.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-firmware"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-firmware/kernel-firmware.changes 2016-08-18 09:16:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kernel-firmware.new/kernel-firmware.changes 2016-08-28 12:17:44.000000000 +0200
@@ -1,0 +2,17 @@
+Thu Aug 25 20:16:19 UTC 2016 - mpluskal(a)suse.com
+
+- Update to version 20160824:
+ * linux-firmware/i915: Restore DMC 1.23
+ * linux-firmware: intel: Update Kabylake audio firmware
+ * linux-firmware: intel: Update Broxton audio firmware
+ * linux-firmware: rockchip: update dptx firmware to v2.9
+ * usb: host: xhci-rcar: update firmware for R-Car H3 and M3-W
+ * qed: Add firmware 8.10.10.0
+ * ath10k: QCA4019 hw1.0: add firmware and board files
+ * ath10k: QCA9887 hw1.0: add firmware and board files
+ * ath10k: QCA9888 hw2.0: add firmware and board files
+ * ath10k: QCA9984 hw1.0: add firmware and board files
+ * ath10k: QCA988X hw2.0: update firmware to 10.2.4.70.54
+ * ath10k: QCA6174: update board files
+
+-------------------------------------------------------------------
Old:
----
kernel-firmware-20160804.tar.xz
New:
----
kernel-firmware-20160824.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-firmware.spec ++++++
--- /var/tmp/diff_new_pack.m2B0GG/_old 2016-08-28 12:17:46.000000000 +0200
+++ /var/tmp/diff_new_pack.m2B0GG/_new 2016-08-28 12:17:46.000000000 +0200
@@ -19,10 +19,10 @@
%define __find_supplements bash %{_sourcedir}/firmware.sh --find-supplements
%define __ksyms_supplements bash %{_sourcedir}/firmware.sh --cache %{_builddir}/%{?buildsubdir}/find_supplements.cache --find-supplements
%define __ksyms_path ^/lib/firmware
-%define version_unconverted 20160804
+%define version_unconverted 20160824
Name: kernel-firmware
-Version: 20160804
+Version: 20160824
Release: 0
Summary: Linux kernel firmware files
License: SUSE-Firmware and GPL-2.0 and GPL-2.0+ and MIT
++++++ kernel-firmware-20160804.tar.xz -> kernel-firmware-20160824.tar.xz ++++++
/work/SRC/openSUSE:Factory/kernel-firmware/kernel-firmware-20160804.tar.xz /work/SRC/openSUSE:Factory/.kernel-firmware.new/kernel-firmware-20160824.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package llvm for openSUSE:Factory checked in at 2016-08-28 12:17:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/llvm (Old)
and /work/SRC/openSUSE:Factory/.llvm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/llvm/lldb.changes 2016-06-29 15:03:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.llvm.new/lldb.changes 2016-08-28 12:17:35.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Aug 25 16:42:02 UTC 2016 - ronisbr(a)gmail.com
+
+- Add a symlink of liblldb file to %{python_sitearch}/_lldb.so.
+ Otherwise, `import lldb` will fail with the message:
+
+ ImportError: No module named _lldb
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lldb.spec ++++++
--- /var/tmp/diff_new_pack.DP8KWr/_old 2016-08-28 12:17:37.000000000 +0200
+++ /var/tmp/diff_new_pack.DP8KWr/_new 2016-08-28 12:17:37.000000000 +0200
@@ -111,6 +111,7 @@
rm %{buildroot}%{py_sitedir}/lldb/_lldb.so
liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so))
ln -vsf "../../../${liblldb}" %{buildroot}%{python_sitearch}/lldb/_lldb.so
+ln -vsf "../../${liblldb}" %{buildroot}%{python_sitearch}/_lldb.so
# Remove bundled six.py.
rm -f %{buildroot}%{py_sitedir}/six.*
@@ -127,6 +128,7 @@
%files
%defattr(-,root,root,-)
%{_bindir}/lldb*
+%{py_sitedir}/_lldb.so
%{py_sitedir}/lldb
%{py_sitedir}/readline.so
1
0
Hello community,
here is the log from the commit of package mutter for openSUSE:Factory checked in at 2016-08-28 12:17:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mutter (Old)
and /work/SRC/openSUSE:Factory/.mutter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mutter"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mutter/mutter.changes 2016-07-12 23:48:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mutter.new/mutter.changes 2016-08-28 12:17:30.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Jul 30 03:45:15 CEST 2016 - hpj(a)suse.com
+
+- Add mutter-bsc984738-grab-display.patch (bsc#984738, bgo#769387).
+
+-------------------------------------------------------------------
@@ -34,0 +40,6 @@
+Mon May 2 10:57:13 CEST 2016 - fcrozat(a)suse.com
+
+- Drop mutter-grab-display.patch, it has been fixed by upstream
+ differently.
+
+-------------------------------------------------------------------
@@ -45,0 +57,8 @@
+Wed Apr 13 06:46:07 UTC 2016 - idonmez(a)suse.com
+
+- Update to GNOME 3.20 Fate#318572
+- Remove upstream patches: mutter-bnc879109-no-monitors-crash.patch
+- Refresh mutter-grab-display.patch, mutter-bell.patch,
+ relax-some-constraints-on-CSD-windows-in-sle-classic.patch
+
+-------------------------------------------------------------------
@@ -599,0 +619,5 @@
+Thu Aug 14 08:35:16 UTC 2014 - idonmez(a)suse.com
+
+- Update mutter-bell.patch so it works on all cases (bnc#889218)
+
+-------------------------------------------------------------------
@@ -656,0 +681,21 @@
+Wed Jul 9 11:53:15 UTC 2014 - cxiong(a)suse.com
+
+- Add relax-some-constraints-on-CSD-windows-in-sle-classic.patch:
+ CSD (Client Side Decoration) windows have invisible box wrapping
+ around them, which leads to some positioning issues as in this
+ bug report. Relax some constraints on window positioning for CSD
+ windows s.t. they can be placed at the very top of the monitor.
+ This fix works nicely for "sle-classic" as there is no top bar
+ any more, and is NOT applied in other GNOME sessions for reasons
+ stated in bgo#719772 (bnc#883491).
+
+-------------------------------------------------------------------
+Sat May 31 13:05:37 CDT 2014 - federico(a)suse.com
+
+- Add mutter-bnc879109-no-monitors-crash.patch:
+ Fixes a crash in Mutter when there are no usable monitors, such
+ as when a laptop is booted with the lid closed while on a docking
+ station, with the intent of plugging an external monitor later
+ (bnc#879109).
+
+-------------------------------------------------------------------
@@ -666,0 +712,11 @@
+Wed May 7 18:54:54 CEST 2014 - sbrabec(a)suse.cz
+
+- Added support for gnome-patch-translation (2 strings).
+
+-------------------------------------------------------------------
+Sun Apr 27 23:49:47 UTC 2014 - dliang(a)suse.com
+
+- Update mutter-grab-display.patch to fix (bnc#873763)
+ remove the duplicated trap-pop.
+
+-------------------------------------------------------------------
@@ -681,0 +738,7 @@
+Fri Mar 28 08:40:54 UTC 2014 - dliang(a)suse.com
+
+- Add mutter-grab-display.patch (bnc#870285)
+ The oracle installer cannot display correctly.
+ The bug was introduced in 3.10.4 and is now fixed in upstream.
+
+-------------------------------------------------------------------
@@ -792,0 +856,12 @@
+Fri Feb 14 11:03:34 UTC 2014 - fcrozat(a)suse.com
+
+- Update mutter-bell.patch: correctly get gsetting from the right
+ schema [FATE#316042]
+
+-------------------------------------------------------------------
+Wed Feb 5 08:44:05 UTC 2014 - idonmez(a)suse.com
+
+- Add mutter-bell.patch to make audible bell work out of the box.
+ Implements FATE#316042
+
+-------------------------------------------------------------------
New:
----
mutter-bell.patch
mutter-bsc984738-grab-display.patch
relax-some-constraints-on-CSD-windows-in-sle-classic.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mutter.spec ++++++
--- /var/tmp/diff_new_pack.zWtUY3/_old 2016-08-28 12:17:30.000000000 +0200
+++ /var/tmp/diff_new_pack.zWtUY3/_new 2016-08-28 12:17:30.000000000 +0200
@@ -30,6 +30,12 @@
Group: System/GUI/GNOME
Url: http://www.gnome.org
Source: http://download.gnome.org/sources/mutter/3.20/%{name}-%{version}.tar.xz
+# PATCH-FEATURE-SLE mutter-bell.patch FATE#316042 bnc#889218 idonmez(a)suse.com -- make audible bell work out of the box.
+Patch1: mutter-bell.patch
+# PATCH-FIX-SLE relax-some-constraints-on-CSD-windows-in-sle-classic.patch bnc#883491 cxiong(a)suse.com -- Relax some constraints on window positioning for CSD windows s.t. they can be placed at the very top of the monitor.
+Patch2: relax-some-constraints-on-CSD-windows-in-sle-classic.patch
+# PATCH-FIX-UPSTREAM mutter-bsc984738-grab-display.patch bsc#984738 bgo#769387 hpj(a)suse.com -- Revert a upstream commit to avoid X11 race condition that results in wrong dialog sizes.
+Patch3: mutter-bsc984738-grab-display.patch
BuildRequires: fdupes
BuildRequires: gobject-introspection-devel >= 0.9.5
BuildRequires: intltool
@@ -140,7 +146,10 @@
%setup -q
%if !0%{?is_opensuse}
translation-update-upstream
+%patch1 -p1
+%patch2 -p1
%endif
+%patch3 -p1
%build
%configure \
++++++ mutter-bell.patch ++++++
Index: mutter-3.20.0/src/meta/prefs.h
===================================================================
--- mutter-3.20.0.orig/src/meta/prefs.h
+++ mutter-3.20.0/src/meta/prefs.h
@@ -89,6 +89,7 @@ typedef enum
META_PREF_WORKSPACE_NAMES,
META_PREF_VISUAL_BELL,
META_PREF_AUDIBLE_BELL,
+ META_PREF_AUDIBLE_BELL_FORCE_THROUGH_SERVER,
META_PREF_VISUAL_BELL_TYPE,
META_PREF_GNOME_ACCESSIBILITY,
META_PREF_GNOME_ANIMATIONS,
@@ -399,6 +400,7 @@ MetaKeyBindingAction meta_prefs_get_keyb
gboolean meta_prefs_get_visual_bell (void);
gboolean meta_prefs_bell_is_audible (void);
+gboolean meta_prefs_bell_force_through_server (void);
GDesktopVisualBellType meta_prefs_get_visual_bell_type (void);
#endif
Index: mutter-3.20.0/src/core/prefs.c
===================================================================
--- mutter-3.20.0.orig/src/core/prefs.c
+++ mutter-3.20.0/src/core/prefs.c
@@ -93,6 +93,7 @@ static gboolean auto_raise_delay = 500;
static gboolean focus_change_on_pointer_rest = FALSE;
static gboolean bell_is_visible = FALSE;
static gboolean bell_is_audible = TRUE;
+static gboolean bell_force_through_server = FALSE;
static gboolean gnome_accessibility = FALSE;
static gboolean gnome_animations = TRUE;
static char *cursor_theme = NULL;
@@ -353,6 +354,13 @@ static MetaBoolPreference preferences_bo
&bell_is_audible, /* FIXME: change the name: it's confusing */
},
{
+ { "audible-bell-force-through-server",
+ SCHEMA_MUTTER,
+ META_PREF_AUDIBLE_BELL_FORCE_THROUGH_SERVER,
+ },
+ &bell_force_through_server,
+ },
+ {
{ KEY_GNOME_ACCESSIBILITY,
SCHEMA_INTERFACE,
META_PREF_GNOME_ACCESSIBILITY,
@@ -1813,6 +1821,9 @@ meta_preference_to_string (MetaPreferenc
case META_PREF_AUDIBLE_BELL:
return "AUDIBLE_BELL";
+ case META_PREF_AUDIBLE_BELL_FORCE_THROUGH_SERVER:
+ return "AUDIBLE_BELL_FORCE_THROUGH_SERVER";
+
case META_PREF_VISUAL_BELL_TYPE:
return "VISUAL_BELL_TYPE";
@@ -2077,6 +2088,12 @@ meta_prefs_bell_is_audible (void)
return bell_is_audible;
}
+gboolean
+meta_prefs_bell_force_through_server (void)
+{
+ return bell_force_through_server;
+}
+
GDesktopVisualBellType
meta_prefs_get_visual_bell_type (void)
{
Index: mutter-3.20.0/src/core/bell.c
===================================================================
--- mutter-3.20.0.orig/src/core/bell.c
+++ mutter-3.20.0/src/core/bell.c
@@ -220,6 +220,12 @@ meta_bell_notify (MetaDisplay *display,
if (meta_prefs_get_visual_bell ())
bell_visual_notify (display, window);
+ if (meta_prefs_bell_force_through_server ())
+ {
+ XkbForceBell (display->xdisplay, 100);
+ return TRUE;
+ }
+
if (meta_prefs_bell_is_audible ())
return bell_audible_notify (display, window);
Index: mutter-3.20.0/data/org.gnome.mutter.gschema.xml.in
===================================================================
--- mutter-3.20.0.orig/data/org.gnome.mutter.gschema.xml.in
+++ mutter-3.20.0/data/org.gnome.mutter.gschema.xml.in
@@ -102,6 +102,16 @@
</_description>
</key>
+ <key name="audible-bell-force-through-server" type="b">
+ <default>false</default>
+ <_summary>Force the System Bell through the X server only.</_summary>
+ <_description>
+ Force the System Bell through the X server only for systems that
+ do not want to go through the sound card - for example that don't
+ have speakers.
+ </_description>
+ </key>
+
<child name="keybindings" schema="org.gnome.mutter.keybindings"/>
</schema>
++++++ mutter-bsc984738-grab-display.patch ++++++
diff --git a/src/core/display-private.h b/src/core/display-private.h
index 531c6f7..aaa90ec 100644
--- a/src/core/display-private.h
+++ b/src/core/display-private.h
@@ -174,6 +174,8 @@ struct _MetaDisplay
GHashTable *stamps;
GHashTable *wayland_windows;
+ int server_grab_count;
+
/* serials of leave/unmap events that may
* correspond to an enter event we should
* ignore
@@ -322,6 +324,8 @@ struct _MetaDisplayClass
gboolean meta_display_open (void);
void meta_display_close (MetaDisplay *display,
guint32 timestamp);
+void meta_display_grab (MetaDisplay *display);
+void meta_display_ungrab (MetaDisplay *display);
void meta_display_unmanage_windows_for_screen (MetaDisplay *display,
MetaScreen *screen,
diff --git a/src/core/display.c b/src/core/display.c
index 4c7a00e..87e3307 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -585,6 +585,7 @@ meta_display_open (void)
display->focus_serial = 0;
display->server_focus_window = None;
display->server_focus_serial = 0;
+ display->server_grab_count = 0;
display->mouse_mode = TRUE; /* Only relevant for mouse or sloppy focus */
display->allow_terminal_deactivation = TRUE; /* Only relevant for when a
@@ -1130,6 +1131,50 @@ meta_display_close (MetaDisplay *display,
meta_quit (META_EXIT_SUCCESS);
}
+/* Grab/ungrab routines taken from fvwm.
+ * Calling this function will cause X to ignore all other clients until
+ * you ungrab. This may not be quite as bad as it sounds, yet there is
+ * agreement that avoiding server grabs except when they are clearly needed
+ * is a good thing.
+ *
+ * If you do use such grabs, please clearly explain the necessity for their
+ * usage in a comment. Try to keep their scope extremely limited. In
+ * particular, try to avoid emitting any signals or notifications while
+ * a grab is active (if the signal receiver tries to block on an X request
+ * from another client at this point, you will have a deadlock).
+ */
+void
+meta_display_grab (MetaDisplay *display)
+{
+ if (display->server_grab_count == 0)
+ {
+ XGrabServer (display->xdisplay);
+ }
+ display->server_grab_count += 1;
+ meta_verbose ("Grabbing display, grab count now %d\n",
+ display->server_grab_count);
+}
+
+void
+meta_display_ungrab (MetaDisplay *display)
+{
+ if (display->server_grab_count == 0)
+ meta_bug ("Ungrabbed non-grabbed server\n");
+
+ display->server_grab_count -= 1;
+ if (display->server_grab_count == 0)
+ {
+ /* FIXME we want to purge all pending "queued" stuff
+ * at this point, such as window hide/show
+ */
+ XUngrabServer (display->xdisplay);
+ XFlush (display->xdisplay);
+ }
+
+ meta_verbose ("Ungrabbing display, grab count now %d\n",
+ display->server_grab_count);
+}
+
/**
* meta_display_for_x_display:
* @xdisplay: An X display
@@ -1516,7 +1561,7 @@ request_xserver_input_focus_change (MetaDisplay *display,
* we know which is which by making two requests that the server will
* process at the same time.
*/
- XGrabServer (display->xdisplay);
+ meta_display_grab (display);
serial = XNextRequest (display->xdisplay);
@@ -1529,8 +1574,7 @@ request_xserver_input_focus_change (MetaDisplay *display,
display->atom__MUTTER_FOCUS_SET,
XA_STRING, 8, PropModeAppend, NULL, 0);
- XUngrabServer (display->xdisplay);
- XFlush (display->xdisplay);
+ meta_display_ungrab (display);
meta_display_update_focus_window (display,
meta_window,
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index ed34aea..a989200 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -979,6 +979,9 @@ meta_display_grab_window_buttons (MetaDisplay *display,
{
MetaKeyBindingManager *keys = &display->key_binding_manager;
+ if (display->server_grab_count > 0)
+ return;
+
/* Grab Alt + button1 for moving window.
* Grab Alt + button2 for resizing window.
* Grab Alt + button3 for popping up window menu.
@@ -1015,6 +1018,9 @@ meta_display_ungrab_window_buttons (MetaDisplay *display,
{
MetaKeyBindingManager *keys = &display->key_binding_manager;
+ if (display->server_grab_count > 0)
+ return;
+
if (keys->window_grab_modifiers == 0)
return;
@@ -1041,6 +1047,9 @@ meta_display_grab_focus_window_button (MetaDisplay *display,
{
MetaKeyBindingManager *keys = &display->key_binding_manager;
+ if (display->server_grab_count > 0)
+ return;
+
/* Grab button 1 for activating unfocused windows */
meta_verbose ("Grabbing unfocused window buttons for %s\n", window->desc);
@@ -1080,6 +1089,9 @@ meta_display_ungrab_focus_window_button (MetaDisplay *display,
{
MetaKeyBindingManager *keys = &display->key_binding_manager;
+ if (display->server_grab_count > 0)
+ return;
+
meta_verbose ("Ungrabbing unfocused window buttons for %s\n", window->desc);
if (!window->have_focus_click_grab)
@@ -1309,6 +1321,9 @@ meta_window_grab_keys (MetaWindow *window)
MetaDisplay *display = window->display;
MetaKeyBindingManager *keys = &display->key_binding_manager;
+ if (display->server_grab_count > 0)
+ return;
+
if (window->all_keys_grabbed)
return;
@@ -1348,6 +1363,9 @@ meta_window_ungrab_keys (MetaWindow *window)
MetaDisplay *display = window->display;
MetaKeyBindingManager *keys = &display->key_binding_manager;
+ if (display->server_grab_count > 0)
+ return;
+
if (window->grab_on_frame &&
window->frame != NULL)
change_window_keygrabs (keys, window->frame->xwindow, FALSE);
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 3d47f0d..5ea1213 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -507,6 +507,8 @@ meta_window_x11_manage (MetaWindow *window)
meta_icon_cache_init (&priv->icon_cache);
+ meta_display_grab (display);
+
meta_display_register_x_window (display, &window->xwindow, window);
/* assign the window to its group, or create a new group if needed */
@@ -565,6 +567,13 @@ meta_window_x11_manage (MetaWindow *window)
meta_window_x11_update_shape_region (window);
meta_window_x11_update_input_region (window);
+
+ meta_display_ungrab (display);
+
+ /* Perform operations prevented by grab */
+ if (window->frame)
+ meta_display_grab_window_buttons (display, window->frame->xwindow);
+ meta_window_grab_keys (window);
}
static void
++++++ relax-some-constraints-on-CSD-windows-in-sle-classic.patch ++++++
Index: mutter-3.20.0/src/core/constraints.c
===================================================================
--- mutter-3.20.0.orig/src/core/constraints.c
+++ mutter-3.20.0/src/core/constraints.c
@@ -1241,6 +1241,12 @@ constrain_to_single_monitor (MetaWindow
}
static gboolean
+constraint_is_sle_classic(void){
+ char * session_mode = (char *) g_getenv ("GNOME_SHELL_SESSION_MODE");
+ return g_strcmp0("sle-classic", session_mode) == 0;
+}
+
+static gboolean
constrain_fully_onscreen (MetaWindow *window,
ConstraintInfo *info,
ConstraintPriority priority,
@@ -1256,6 +1262,11 @@ constrain_fully_onscreen (MetaWindow
if (window->type == META_WINDOW_DESKTOP ||
window->type == META_WINDOW_DOCK ||
window->fullscreen ||
+ /* in SLE Classic, there is no top bar and to avoid issues like
+ * bnc#883491, remove some constraints on CSD windows, which tends to have
+ * invisible wrapper box. Do the same for "constrain_titlebar_visible".
+ */
+ (constraint_is_sle_classic() && !window->decorated) ||
!window->require_fully_onscreen ||
info->is_user_action)
return TRUE;
@@ -1292,10 +1303,11 @@ constrain_titlebar_visible (MetaWindow
* is only meant for normal windows (e.g. we don't want docks to be shoved
* "onscreen" by their own strut).
*/
- if (window->type == META_WINDOW_DESKTOP ||
- window->type == META_WINDOW_DOCK ||
- window->fullscreen ||
- !window->require_titlebar_visible ||
+ if (window->type == META_WINDOW_DESKTOP ||
+ window->type == META_WINDOW_DOCK ||
+ window->fullscreen ||
+ (constraint_is_sle_classic() && !window->decorated) ||
+ !window->require_titlebar_visible ||
unconstrained_user_action)
return TRUE;
1
0
Hello community,
here is the log from the commit of package cryptsetup for openSUSE:Factory checked in at 2016-08-28 12:17:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cryptsetup (Old)
and /work/SRC/openSUSE:Factory/.cryptsetup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cryptsetup"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cryptsetup/cryptsetup.changes 2016-02-12 11:21:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cryptsetup.new/cryptsetup.changes 2016-08-28 12:17:21.000000000 +0200
@@ -1,0 +2,73 @@
+Thu Aug 25 15:15:15 UTC 2016 - alexander_naumov(a)opensuse.org
+
+- Update to version 1.7.2:
+
+ * Update LUKS documentation format.
+ Clarify fixed sector size and keyslots alignment.
+
+ * Support activation options for error handling modes in
+ Linux kernel dm-verity module:
+ --ignore-corruption - dm-verity just logs detected corruption
+
+ --restart-on-corruption - dm-verity restarts the kernel if
+ corruption is detected
+ If the options above are not specified, default behavior for
+ dm-verity remains. Default is that I/O operation fails with
+ I/O error if corrupted block is detected.
+
+ --ignore-zero-blocks - Instructs dm-verity to not verify
+ blocks that are expected to contain zeroes and always
+ return zeroes directly instead.
+ NOTE that these options could have security or functional
+ impacts, do not use them without assessing the risks!
+
+ * Fix help text for cipher benchmark specification
+ (mention --cipher option).
+
+ * Fix off-by-one error in maximum keyfile size.
+ Allow keyfiles up to compiled-in default and not that value
+ minus one.
+
+ * Support resume of interrupted decryption in cryptsetup-reencrypt
+ utility. To resume decryption, LUKS device UUID (--uuid option)
+ option must be used.
+
+ * Do not use direct-io for LUKS header with unaligned keyslots.
+ Such headers were used only by the first cryptsetup-luks-1.0.0
+ release (2005).
+ * Fix device block size detection to properly work on particular
+
+ file-based containers over underlying devices with 4k sectors.
+
+- Update to version 1.7.1:
+
+ * Code now uses kernel crypto API backend according to new
+ changes introduced in mainline kernel
+ While mainline kernel should contain backward compatible
+ changes, some stable series kernels do not contain fully
+ backported compatibility patches.
+ Without these patches most of cryptsetup operations
+ (like unlocking device) fail.
+ This change in cryptsetup ensures that all operations using
+ kernel crypto API works even on these kernels.
+
+ * The cryptsetup-reencrypt utility now properly detects removal
+ of underlying link to block device and does not remove
+ ongoing re-encryption log.
+ This allows proper recovery (resume) of reencrypt operation later.
+ NOTE: Never use /dev/disk/by-uuid/ path for reencryption utility,
+ this link disappears once the device metadata is temporarily
+ removed from device.
+
+ * Cryptsetup now allows special "-" (standard input) keyfile handling
+ even for TCRYPT (TrueCrypt and VeraCrypt compatible) devices.
+
+ * Cryptsetup now fails if there are more keyfiles specified
+ for non-TCRYPT device.
+
+ * The luksKillSlot command now does not suppress provided password
+ in batch mode (if password is wrong slot is not destroyed).
+ Note that not providing password in batch mode means that keyslot
+ is destroyed unconditionally.
+
+-------------------------------------------------------------------
Old:
----
cryptsetup-1.7.0.tar.sign
cryptsetup-1.7.0.tar.xz
New:
----
cryptsetup-1.7.2.tar.sign
cryptsetup-1.7.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cryptsetup.spec ++++++
--- /var/tmp/diff_new_pack.BXFQq6/_old 2016-08-28 12:17:22.000000000 +0200
+++ /var/tmp/diff_new_pack.BXFQq6/_new 2016-08-28 12:17:22.000000000 +0200
@@ -18,7 +18,7 @@
%define so_ver 4
Name: cryptsetup
-Version: 1.7.0
+Version: 1.7.2
Release: 0
Summary: Set Up dm-crypt Based Encrypted Block Devices
License: SUSE-GPL-2.0-with-openssl-exception and LGPL-2.0+
++++++ cryptsetup-1.7.0.tar.xz -> cryptsetup-1.7.2.tar.xz ++++++
++++ 52250 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnome-maps for openSUSE:Factory checked in at 2016-08-28 12:17:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-maps (Old)
and /work/SRC/openSUSE:Factory/.gnome-maps.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-maps"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-maps/gnome-maps.changes 2016-08-05 18:12:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-maps.new/gnome-maps.changes 2016-08-28 12:17:14.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Aug 25 11:18:53 UTC 2016 - badshah400(a)gmail.com
+
+- Update to version 3.20.3 (boo#995112):
+ + Download a service.json file to get tile server URI among
+ other things.
+ + Use GtkClutter for the attribution logo, to get transparency.
+
+-------------------------------------------------------------------
Old:
----
gnome-maps-3.20.2.tar.xz
New:
----
gnome-maps-3.20.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-maps.spec ++++++
--- /var/tmp/diff_new_pack.wi7xzB/_old 2016-08-28 12:17:15.000000000 +0200
+++ /var/tmp/diff_new_pack.wi7xzB/_new 2016-08-28 12:17:15.000000000 +0200
@@ -17,7 +17,7 @@
Name: gnome-maps
-Version: 3.20.2
+Version: 3.20.3
Release: 0
Summary: MAP Application for GNOME 3
License: GPL-2.0+
++++++ gnome-maps-3.20.2.tar.xz -> gnome-maps-3.20.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/NEWS new/gnome-maps-3.20.3/NEWS
--- old/gnome-maps-3.20.2/NEWS 2016-07-30 23:10:22.000000000 +0200
+++ new/gnome-maps-3.20.3/NEWS 2016-08-22 20:22:21.000000000 +0200
@@ -1,3 +1,23 @@
+3.20.3 - Aug 19, 2016
+=========================
+
+Hello there!
+
+So we will stop using a redirect from gis.gnome.org to Mapbox tile server.
+Instead we will attempt to download a service.json file from gis.gnome.org.
+This file will tell us where our third-party services are. Starting with
+tile services. This is for two reasons. 1) It is much faster and 2) Mapbox
+didn't like the redirect approach.
+
+Changes since 3.20.2
+
+- Download a service.json file to get tile server URI among other things.
+- Use GtkClutter for the attribution logo, to get transparency.
+
+All contributors to this release:
+Jonas Danielsson <jonas(a)threetimestwo.org>
+Mattias Bengtsson <mattias.jc.bengtsson(a)gmail.com>
+
3.20.2 - Jul 30, 2016
=========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/aclocal.m4 new/gnome-maps-3.20.3/aclocal.m4
--- old/gnome-maps-3.20.2/aclocal.m4 2016-07-30 23:11:00.000000000 +0200
+++ new/gnome-maps-3.20.3/aclocal.m4 2016-08-22 20:22:46.000000000 +0200
@@ -27,13 +27,13 @@
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
-dnl This file can can be used in projects which are not available under
+dnl This file can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
+dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Authors:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/configure new/gnome-maps-3.20.3/configure
--- old/gnome-maps-3.20.2/configure 2016-07-30 23:11:01.000000000 +0200
+++ new/gnome-maps-3.20.3/configure 2016-08-22 20:22:47.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gnome-maps 3.20.2.
+# Generated by GNU Autoconf 2.69 for gnome-maps 3.20.3.
#
# Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-maps>.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='gnome-maps'
PACKAGE_TARNAME='gnome-maps'
-PACKAGE_VERSION='3.20.2'
-PACKAGE_STRING='gnome-maps 3.20.2'
+PACKAGE_VERSION='3.20.3'
+PACKAGE_STRING='gnome-maps 3.20.3'
PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-maps'
PACKAGE_URL=''
@@ -1392,7 +1392,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gnome-maps 3.20.2 to adapt to many kinds of systems.
+\`configure' configures gnome-maps 3.20.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1463,7 +1463,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gnome-maps 3.20.2:";;
+ short | recursive ) echo "Configuration of gnome-maps 3.20.3:";;
esac
cat <<\_ACEOF
@@ -1594,7 +1594,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gnome-maps configure 3.20.2
+gnome-maps configure 3.20.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1872,7 +1872,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gnome-maps $as_me 3.20.2, which was
+It was created by gnome-maps $as_me 3.20.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2864,7 +2864,7 @@
# Define the identity of the package.
PACKAGE='gnome-maps'
- VERSION='3.20.2'
+ VERSION='3.20.3'
# Some tools Automake needs.
@@ -13905,7 +13905,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gnome-maps $as_me 3.20.2, which was
+This file was extended by gnome-maps $as_me 3.20.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -13971,7 +13971,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gnome-maps config.status 3.20.2
+gnome-maps config.status 3.20.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/configure.ac new/gnome-maps-3.20.3/configure.ac
--- old/gnome-maps-3.20.2/configure.ac 2016-07-30 23:10:22.000000000 +0200
+++ new/gnome-maps-3.20.3/configure.ac 2016-08-22 20:22:21.000000000 +0200
@@ -1,6 +1,6 @@
# This file is processed by autoconf to create a configure script
AC_INIT([gnome-maps],
- [3.20.2],
+ [3.20.3],
[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-maps]
[gnome-maps])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/data/Makefile.am new/gnome-maps-3.20.3/data/Makefile.am
--- old/gnome-maps-3.20.2/data/Makefile.am 2016-07-30 23:10:22.000000000 +0200
+++ new/gnome-maps-3.20.3/data/Makefile.am 2016-08-22 20:22:21.000000000 +0200
@@ -11,6 +11,9 @@
--target=$@ \
--sourcedir=$(srcdir) $<
+tileservicedir = $(pkgdatadir)
+tileservice_DATA = maps-service.json
+
resourcedir = $(pkgdatadir)
resource_DATA = org.gnome.Maps.data.gresource
@@ -46,6 +49,7 @@
org.gnome.Maps.appdata.xml.in \
osm-types.json \
$(app_resource_files) \
+ maps-service.json \
$(NULL)
CLEANFILES = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/data/Makefile.in new/gnome-maps-3.20.3/data/Makefile.in
--- old/gnome-maps-3.20.2/data/Makefile.in 2016-07-30 23:11:02.000000000 +0200
+++ new/gnome-maps-3.20.3/data/Makefile.in 2016-08-22 20:22:48.000000000 +0200
@@ -157,8 +157,10 @@
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(appsdir)" \
- "$(DESTDIR)$(resourcedir)" "$(DESTDIR)$(servicedir)"
-DATA = $(appdata_DATA) $(apps_DATA) $(resource_DATA) $(service_DATA)
+ "$(DESTDIR)$(resourcedir)" "$(DESTDIR)$(servicedir)" \
+ "$(DESTDIR)$(tileservicedir)"
+DATA = $(appdata_DATA) $(apps_DATA) $(resource_DATA) $(service_DATA) \
+ $(tileservice_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
@@ -380,6 +382,8 @@
$(srcdir)/org.gnome.Maps.data.gresource.xml \
)
+tileservicedir = $(pkgdatadir)
+tileservice_DATA = maps-service.json
resourcedir = $(pkgdatadir)
resource_DATA = org.gnome.Maps.data.gresource
appsdir = $(datadir)/applications
@@ -398,6 +402,7 @@
org.gnome.Maps.appdata.xml.in \
osm-types.json \
$(app_resource_files) \
+ maps-service.json \
$(NULL)
CLEANFILES = \
@@ -532,6 +537,27 @@
@list='$(service_DATA)'; test -n "$(servicedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(servicedir)'; $(am__uninstall_files_from_dir)
+install-tileserviceDATA: $(tileservice_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(tileservice_DATA)'; test -n "$(tileservicedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(tileservicedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(tileservicedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tileservicedir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(tileservicedir)" || exit $$?; \
+ done
+
+uninstall-tileserviceDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(tileservice_DATA)'; test -n "$(tileservicedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(tileservicedir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
@@ -692,7 +718,7 @@
all-am: Makefile $(DATA) all-local
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(appsdir)" "$(DESTDIR)$(resourcedir)" "$(DESTDIR)$(servicedir)"; do \
+ for dir in "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(appsdir)" "$(DESTDIR)$(resourcedir)" "$(DESTDIR)$(servicedir)" "$(DESTDIR)$(tileservicedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
@@ -747,7 +773,8 @@
info-am:
install-data-am: install-appdataDATA install-appsDATA \
- install-resourceDATA install-serviceDATA
+ install-resourceDATA install-serviceDATA \
+ install-tileserviceDATA
install-dvi: install-dvi-recursive
@@ -792,7 +819,8 @@
ps-am:
uninstall-am: uninstall-appdataDATA uninstall-appsDATA \
- uninstall-resourceDATA uninstall-serviceDATA
+ uninstall-resourceDATA uninstall-serviceDATA \
+ uninstall-tileserviceDATA
.MAKE: $(am__recursive_targets) install-am install-strip
@@ -805,12 +833,13 @@
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-resourceDATA \
- install-serviceDATA install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-appdataDATA uninstall-appsDATA \
- uninstall-resourceDATA uninstall-serviceDATA
+ install-serviceDATA install-strip install-tileserviceDATA \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-appdataDATA \
+ uninstall-appsDATA uninstall-resourceDATA \
+ uninstall-serviceDATA uninstall-tileserviceDATA
.PRECIOUS: Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/data/maps-service.json new/gnome-maps-3.20.3/data/maps-service.json
--- old/gnome-maps-3.20.2/data/maps-service.json 1970-01-01 01:00:00.000000000 +0100
+++ new/gnome-maps-3.20.3/data/maps-service.json 2016-08-22 20:22:21.000000000 +0200
@@ -0,0 +1,42 @@
+{
+ "tiles": {
+ "street": {
+ "id": "mapbox.streets-v4",
+ "name": "Mapbox street tiles",
+ "license": "© OpenStreetMap",
+ "license_uri": "http://www.openstreetmap.org/copyright",
+ "min_zoom_level": 0,
+ "max_zoom_level": 19,
+ "tile_size": 256,
+ "uri_format": "https://a.tiles.mapbox.com/v4/mapbox.streets/#Z#/#X#/#Y#.png?access_token=p…",
+ "attribution_logo": "PHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI2NSIgaGVpZ2h0PSIyMCI+PGRlZnMvPjxtZXRhZGF0YT48cmRmOlJERj48Y2M6V29yayByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPjxkYzp0aXRsZS8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNjEuODQ4MywtOTguNTAzOTUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjE3NDQxODM2LDAsMCwwLjE3NDQxODM2LDIyMC41MjI4MiwyOS4yMjkzNDIpIiBzdHlsZT0ib3BhY2l0eTowLjI1O2ZpbGw6I2ZmZmZmZjtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTcuMjAwMDIzNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiPjxwYXRoIGQ9Ik0gNS4yOCAxLjUgQyA0LjU0IDEuNTYgMy45IDIuMjUgMy45MSAzIGwgMCAxMS44OCBjIDAuMDIgMC43NyAwLjcyIDEuNDcgMS41IDEuNDcgbCAxLjc1IDAgYyAwLjc4IDAgMS40OCAtMC42OSAxLjUgLTEuNDcgbCAwIC00LjI4IDAuNzIgMS4xOSBjIDAuNTMgMC44NyAyLjAzIDAuODcgMi41NiAwIGwgMC43MiAtMS4xOSAwIDQuMjggYyAwLjAyIDAuNzYgMC43IDEuNDUgMS40NyAxLjQ3IGwgMS43NSAwIGMgMC43OCAwIDEuNDggLTAuNjkgMS41IC0xLjQ3IGwgMCAtMC4xNiBjIDEuMDIgMS4xMiAyLjQ2IDEuODEgNC4wOSAxLjgxIGwgNC4wOSAwIDAgMS40NyBjIC0wIDAuNzggMC42OSAxLjQ4IDEuNDcgMS41IGwgMS43NSAwIGMgMC43OSAtMCAxLjUgLTAuNzEgMS41IC0xLjUgbCAwLjAyIC0xLjQ3IGMgMS43MiAwIDMuMDggLTAuNjQgNC4xNCAtMS42OSBsIDAgMC4xOSBjIDAgMC4zOSAwLjE2IDAuNzkgMC40NCAxLjA2IDAuMjggMC4yOCAwLjY3IDAuNDQgMS4wNiAwLjQ0IGwgMy4zMSAwIGMgMi4wMyAwIDMuODUgLTEuMDYgNC45MSAtMi42OSAxLjA1IDEuNjEgMi44NCAyLjY5IDQuODggMi42OSAxLjAzIDAgMS45OCAtMC4yNyAyLjgxIC0wLjc1IDAuMjggMC4zNSAwLjczIDAuNTcgMS4xOSAwLjU2IGwgMi4xMiAwIGMgMC40OCAwLjAxIDAuOTcgLTAuMjMgMS4yNSAtMC42MiBsIDAuOTEgLTEuMjggMC45MSAxLjI4IGMgMC4yOCAwLjM5IDAuNzQgMC42MyAxLjIyIDAuNjIgbCAyLjE2IDAgQyA2Mi42NyAxNi4zMyA2My40MiAxNC44OSA2Mi44MSAxNCBMIDYwLjIyIDEwLjM4IDYyLjYyIDcgQyA2My4yNiA2LjExIDYyLjUgNC42MiA2MS40MSA0LjYyIGwgLTIuMTYgMCBDIDU4Ljc4IDQuNjIgNTguMzEgNC44NiA1OC4wMyA1LjI1IEwgNTcuMzEgNi4yOCA1Ni41NiA1LjI1IEMgNTYuMjkgNC44NiA1NS44MiA0LjYyIDU1LjM0IDQuNjIgbCAtMi4xNiAwIGMgLTAuNDkgLTAgLTAuOTcgMC4yNSAtMS4yNSAwLjY2IC0wLjg2IC0wLjUxIC0xLjg0IC0wLjgxIC0yLjkxIC0wLjgxIC0yLjAzIDAgLTMuODMgMS4wOCAtNC44OCAyLjY5IEMgNDMuMSA1LjUzIDQxLjI3IDQuNDcgMzkuMTkgNC40NyBMIDM5LjE5IDMgQyAzOS4xOSAyLjYxIDM5LjAzIDIuMjEgMzguNzUgMS45NCAzOC40NyAxLjY2IDM4LjA4IDEuNSAzNy42OSAxLjUgbCAtMS43NSAwIGMgLTAuNzEgMCAtMS41IDAuODMgLTEuNSAxLjUgbCAwIDMuMTYgQyAzMy4zOCA1LjEgMzEuOTYgNC40NyAzMC4zOCA0LjQ3IGwgLTMuMzQgMCBjIC0wLjc3IDAuMDIgLTEuNDcgMC43MiAtMS40NyAxLjUgbCAwIDAuMzEgYyAtMS4wMiAtMS4xMiAtMi40NiAtMS44MSAtNC4wOSAtMS44MSAtMS42MyAwIC0zLjA3IDAuNyAtNC4wOSAxLjgxIEwgMTcuMzggMyBjIC0wIC0wLjc5IC0wLjcxIC0xLjUgLTEuNSAtMS41IEwgMTQuNSAxLjUgQyAxMy41NSAxLjUgMTIuMjggMS44NyAxMS42NiAyLjk0IGwgLTEgMS42OSAtMSAtMS42OSBDIDkuMDMgMS44NyA3Ljc3IDEuNSA2LjgxIDEuNSBsIC0xLjQxIDAgQyA1LjM2IDEuNSA1LjMyIDEuNSA1LjI4IDEuNSB6IG0gMTYuMTkgNy43MiBjIDAuNTMgMCAwLjk0IDAuMzUgMC45NCAxLjI4IGwgMCAxLjI4IC0wLjk0IDAgYyAtMC41MiAwIC0wLjk0IC0wLjM4IC0wLjk0IC0xLjI4IC0wIC0wLjkgMC40MiAtMS4yOCAwLjk0IC0xLjI4IHogbSA4LjgxIDAgYyAwLjgzIDAgMS4xOCAwLjY4IDEuMTkgMS4yOCAwLjAxIDAuOTQgLTAuNjIgMS4yOCAtMS4xOSAxLjI4IHogbSA4LjcyIDAgYyAwLjcyIDAgMS4zNyAwLjYgMS4zNyAxLjI4IDAgMC43NyAtMC41MSAxLjI4IC0xLjM3IDEuMjggeiBtIDEwLjAzIDAgYyAwLjU4IDAgMS4wOSAwLjUgMS4wOSAxLjI4IDAgMC43OCAtMC41MSAxLjI4IC0xLjA5IDEuMjggLTAuNTggMCAtMS4xMiAtMC41IC0xLjEyIC0xLjI4IDAgLTAuNzggMC41NCAtMS4yOCAxLjEyIC0xLjI4IHoiIHRyYW5zZm9ybT0ibWF0cml4KDUuNzMzMzQxNCwwLDAsNS43MzMzNDE0LDIzNi45MzMwOCwzOTcuMTc0OTgpIiBzdHlsZT0iZm9udC1zaXplOm1lZGl1bTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtkaXJlY3Rpb246bHRyO2Jsb2NrLXByb2dyZXNzaW9uOnRiO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtjb2xvcjojMDAwMDAwO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTcuMjAwMDIzNjU7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZTtmb250LWZhbWlseTpTYW5zOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246U2FucyIvPjwvZz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjE3NDQxODM2LDAsMCwwLjE3NDQxODM2LDIyMC41MjI4MiwyOS4yMjkzNDIpIiBzdHlsZT0iZmlsbDojZmZmZmZmIj48cGF0aCBkPSJtIDUuNDEgMyAwIDEyIDEuNzUgMCAwIC05LjkxIDMuNSA1Ljk0IDMuNDcgLTUuOTQgMCA5LjkxIDEuNzUgMCAwIC0xMiBMIDE0LjUgMyBDIDEzLjggMyAxMy4yNSAzLjE2IDEyLjk0IDMuNjkgTCAxMC42NiA3LjU5IDguMzggMy42OSBDIDguMDcgMy4xNiA3LjUxIDMgNi44MSAzIHogTSAzNiAzIGwgMCAxMi4wMyAzLjI1IDAgYyAyLjQ0IDAgNC4zOCAtMS45MSA0LjM4IC00LjUzIDAgLTIuNjIgLTEuOTMgLTQuNDcgLTQuMzggLTQuNDcgQyAzOC43IDYuMDMgMzguMzIgNiAzNy43NSA2IGwgMCAtMyB6IE0gMjEuNDcgNS45NyBjIC0yLjQ0IDAgLTQuMTkgMS45MSAtNC4xOSA0LjUzIDAgMi42MiAxLjc1IDQuNTMgNC4xOSA0LjUzIGwgNC4xOSAwIDAgLTQuNTMgYyAwIC0yLjYyIC0xLjc1IC00LjUzIC00LjE5IC00LjUzIHogbSAyNy41NiAwIGMgLTIuNDEgMCAtNC4zOCAyLjAzIC00LjM4IDQuNTMgMCAyLjUgMS45NyA0LjUzIDQuMzggNC41MyAyLjQxIDAgNC4zNCAtMi4wMyA0LjM0IC00LjUzIDAgLTIuNSAtMS45NCAtNC41MyAtNC4zNCAtNC41MyB6IG0gLTIyIDAuMDMgMCAxMiAxLjc1IDAgMCAtMi45NyBjIDAuNTcgMCAxLjA0IC0wIDEuNTkgMCAyLjQ0IDAgNC4zNCAtMS45MSA0LjM0IC00LjUzIDAgLTIuNjIgLTEuOSAtNC41IC00LjM0IC00LjUgeiBtIDI2LjE2IDAgMy4wMyA0LjM4IC0zLjE5IDQuNjIgMi4xMiAwIEwgNTcuMzEgMTEuOTEgNTkuNDQgMTUgNjEuNTkgMTUgNTguMzggMTAuMzggNjEuNDEgNiA1OS4yNSA2IDU3LjMxIDguODEgNTUuMzQgNiB6IE0gMjEuNDcgNy43MiBjIDEuNCAwIDIuNDQgMS4xOSAyLjQ0IDIuNzggbCAwIDIuNzggLTIuNDQgMCBjIC0xLjQgMCAtMi40NCAtMS4yMSAtMi40NCAtMi43OCAtMCAtMS41NyAxLjA0IC0yLjc4IDIuNDQgLTIuNzggeiBtIDI3LjU2IDAgYyAxLjQ0IDAgMi41OSAxLjI0IDIuNTkgMi43OCAwIDEuNTQgLTEuMTUgMi43OCAtMi41OSAyLjc4IC0xLjQ0IDAgLTIuNjIgLTEuMjQgLTIuNjIgLTIuNzggMCAtMS41NCAxLjE4IC0yLjc4IDIuNjIgLTIuNzggeiBtIC0yMC4yNSAwLjAzIDEuNTkgMCBjIDEuNTkgMCAyLjU5IDEuMjggMi41OSAyLjc1IDAgMS40NyAtMS4xMyAyLjc4IC0yLjU5IDIuNzggbCAtMS41OSAwIHogbSA4Ljk3IDAgMS41IDAgYyAxLjQ3IDAgMi42MiAxLjI4IDIuNjIgMi43NSAwIDEuNDcgLTEuMDQgMi43OCAtMi42MiAyLjc4IGwgLTEuNSAwIHoiIHRyYW5zZm9ybT0ibWF0cml4KDUuNzMzMzQxNCwwLDAsNS43MzMzNDE0LDIzNi45MzMwOCwzOTcuMTc0OTgpIiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIi8+PC9nPjwvZz48L3N2Zz4=",
+ "max_connections": 12
+ },
+
+ "aerial": {
+ "id": "mapbox.satellite-v4",
+ "name": "Mapbox aerial tiles",
+ "license": "© OpenStreetMap © DigitalGlobe",
+ "license_uri": "http://www.openstreetmap.org/copyright",
+ "min_zoom_level": 0,
+ "max_zoom_level": 19,
+ "tile_size": 256,
+ "uri_format": "https://a.tiles.mapbox.com/v4/mapbox.satellite/#Z#/#X#/#Y#.png?access_token…",
+ "attribution_logo": "PHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI2NSIgaGVpZ2h0PSIyMCI+PGRlZnMvPjxtZXRhZGF0YT48cmRmOlJERj48Y2M6V29yayByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPjxkYzp0aXRsZS8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNjEuODQ4MywtOTguNTAzOTUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjE3NDQxODM2LDAsMCwwLjE3NDQxODM2LDIyMC41MjI4MiwyOS4yMjkzNDIpIiBzdHlsZT0ib3BhY2l0eTowLjI1O2ZpbGw6I2ZmZmZmZjtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTcuMjAwMDIzNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiPjxwYXRoIGQ9Ik0gNS4yOCAxLjUgQyA0LjU0IDEuNTYgMy45IDIuMjUgMy45MSAzIGwgMCAxMS44OCBjIDAuMDIgMC43NyAwLjcyIDEuNDcgMS41IDEuNDcgbCAxLjc1IDAgYyAwLjc4IDAgMS40OCAtMC42OSAxLjUgLTEuNDcgbCAwIC00LjI4IDAuNzIgMS4xOSBjIDAuNTMgMC44NyAyLjAzIDAuODcgMi41NiAwIGwgMC43MiAtMS4xOSAwIDQuMjggYyAwLjAyIDAuNzYgMC43IDEuNDUgMS40NyAxLjQ3IGwgMS43NSAwIGMgMC43OCAwIDEuNDggLTAuNjkgMS41IC0xLjQ3IGwgMCAtMC4xNiBjIDEuMDIgMS4xMiAyLjQ2IDEuODEgNC4wOSAxLjgxIGwgNC4wOSAwIDAgMS40NyBjIC0wIDAuNzggMC42OSAxLjQ4IDEuNDcgMS41IGwgMS43NSAwIGMgMC43OSAtMCAxLjUgLTAuNzEgMS41IC0xLjUgbCAwLjAyIC0xLjQ3IGMgMS43MiAwIDMuMDggLTAuNjQgNC4xNCAtMS42OSBsIDAgMC4xOSBjIDAgMC4zOSAwLjE2IDAuNzkgMC40NCAxLjA2IDAuMjggMC4yOCAwLjY3IDAuNDQgMS4wNiAwLjQ0IGwgMy4zMSAwIGMgMi4wMyAwIDMuODUgLTEuMDYgNC45MSAtMi42OSAxLjA1IDEuNjEgMi44NCAyLjY5IDQuODggMi42OSAxLjAzIDAgMS45OCAtMC4yNyAyLjgxIC0wLjc1IDAuMjggMC4zNSAwLjczIDAuNTcgMS4xOSAwLjU2IGwgMi4xMiAwIGMgMC40OCAwLjAxIDAuOTcgLTAuMjMgMS4yNSAtMC42MiBsIDAuOTEgLTEuMjggMC45MSAxLjI4IGMgMC4yOCAwLjM5IDAuNzQgMC42MyAxLjIyIDAuNjIgbCAyLjE2IDAgQyA2Mi42NyAxNi4zMyA2My40MiAxNC44OSA2Mi44MSAxNCBMIDYwLjIyIDEwLjM4IDYyLjYyIDcgQyA2My4yNiA2LjExIDYyLjUgNC42MiA2MS40MSA0LjYyIGwgLTIuMTYgMCBDIDU4Ljc4IDQuNjIgNTguMzEgNC44NiA1OC4wMyA1LjI1IEwgNTcuMzEgNi4yOCA1Ni41NiA1LjI1IEMgNTYuMjkgNC44NiA1NS44MiA0LjYyIDU1LjM0IDQuNjIgbCAtMi4xNiAwIGMgLTAuNDkgLTAgLTAuOTcgMC4yNSAtMS4yNSAwLjY2IC0wLjg2IC0wLjUxIC0xLjg0IC0wLjgxIC0yLjkxIC0wLjgxIC0yLjAzIDAgLTMuODMgMS4wOCAtNC44OCAyLjY5IEMgNDMuMSA1LjUzIDQxLjI3IDQuNDcgMzkuMTkgNC40NyBMIDM5LjE5IDMgQyAzOS4xOSAyLjYxIDM5LjAzIDIuMjEgMzguNzUgMS45NCAzOC40NyAxLjY2IDM4LjA4IDEuNSAzNy42OSAxLjUgbCAtMS43NSAwIGMgLTAuNzEgMCAtMS41IDAuODMgLTEuNSAxLjUgbCAwIDMuMTYgQyAzMy4zOCA1LjEgMzEuOTYgNC40NyAzMC4zOCA0LjQ3IGwgLTMuMzQgMCBjIC0wLjc3IDAuMDIgLTEuNDcgMC43MiAtMS40NyAxLjUgbCAwIDAuMzEgYyAtMS4wMiAtMS4xMiAtMi40NiAtMS44MSAtNC4wOSAtMS44MSAtMS42MyAwIC0zLjA3IDAuNyAtNC4wOSAxLjgxIEwgMTcuMzggMyBjIC0wIC0wLjc5IC0wLjcxIC0xLjUgLTEuNSAtMS41IEwgMTQuNSAxLjUgQyAxMy41NSAxLjUgMTIuMjggMS44NyAxMS42NiAyLjk0IGwgLTEgMS42OSAtMSAtMS42OSBDIDkuMDMgMS44NyA3Ljc3IDEuNSA2LjgxIDEuNSBsIC0xLjQxIDAgQyA1LjM2IDEuNSA1LjMyIDEuNSA1LjI4IDEuNSB6IG0gMTYuMTkgNy43MiBjIDAuNTMgMCAwLjk0IDAuMzUgMC45NCAxLjI4IGwgMCAxLjI4IC0wLjk0IDAgYyAtMC41MiAwIC0wLjk0IC0wLjM4IC0wLjk0IC0xLjI4IC0wIC0wLjkgMC40MiAtMS4yOCAwLjk0IC0xLjI4IHogbSA4LjgxIDAgYyAwLjgzIDAgMS4xOCAwLjY4IDEuMTkgMS4yOCAwLjAxIDAuOTQgLTAuNjIgMS4yOCAtMS4xOSAxLjI4IHogbSA4LjcyIDAgYyAwLjcyIDAgMS4zNyAwLjYgMS4zNyAxLjI4IDAgMC43NyAtMC41MSAxLjI4IC0xLjM3IDEuMjggeiBtIDEwLjAzIDAgYyAwLjU4IDAgMS4wOSAwLjUgMS4wOSAxLjI4IDAgMC43OCAtMC41MSAxLjI4IC0xLjA5IDEuMjggLTAuNTggMCAtMS4xMiAtMC41IC0xLjEyIC0xLjI4IDAgLTAuNzggMC41NCAtMS4yOCAxLjEyIC0xLjI4IHoiIHRyYW5zZm9ybT0ibWF0cml4KDUuNzMzMzQxNCwwLDAsNS43MzMzNDE0LDIzNi45MzMwOCwzOTcuMTc0OTgpIiBzdHlsZT0iZm9udC1zaXplOm1lZGl1bTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtkaXJlY3Rpb246bHRyO2Jsb2NrLXByb2dyZXNzaW9uOnRiO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtjb2xvcjojMDAwMDAwO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTcuMjAwMDIzNjU7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZTtmb250LWZhbWlseTpTYW5zOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246U2FucyIvPjwvZz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjE3NDQxODM2LDAsMCwwLjE3NDQxODM2LDIyMC41MjI4MiwyOS4yMjkzNDIpIiBzdHlsZT0iZmlsbDojZmZmZmZmIj48cGF0aCBkPSJtIDUuNDEgMyAwIDEyIDEuNzUgMCAwIC05LjkxIDMuNSA1Ljk0IDMuNDcgLTUuOTQgMCA5LjkxIDEuNzUgMCAwIC0xMiBMIDE0LjUgMyBDIDEzLjggMyAxMy4yNSAzLjE2IDEyLjk0IDMuNjkgTCAxMC42NiA3LjU5IDguMzggMy42OSBDIDguMDcgMy4xNiA3LjUxIDMgNi44MSAzIHogTSAzNiAzIGwgMCAxMi4wMyAzLjI1IDAgYyAyLjQ0IDAgNC4zOCAtMS45MSA0LjM4IC00LjUzIDAgLTIuNjIgLTEuOTMgLTQuNDcgLTQuMzggLTQuNDcgQyAzOC43IDYuMDMgMzguMzIgNiAzNy43NSA2IGwgMCAtMyB6IE0gMjEuNDcgNS45NyBjIC0yLjQ0IDAgLTQuMTkgMS45MSAtNC4xOSA0LjUzIDAgMi42MiAxLjc1IDQuNTMgNC4xOSA0LjUzIGwgNC4xOSAwIDAgLTQuNTMgYyAwIC0yLjYyIC0xLjc1IC00LjUzIC00LjE5IC00LjUzIHogbSAyNy41NiAwIGMgLTIuNDEgMCAtNC4zOCAyLjAzIC00LjM4IDQuNTMgMCAyLjUgMS45NyA0LjUzIDQuMzggNC41MyAyLjQxIDAgNC4zNCAtMi4wMyA0LjM0IC00LjUzIDAgLTIuNSAtMS45NCAtNC41MyAtNC4zNCAtNC41MyB6IG0gLTIyIDAuMDMgMCAxMiAxLjc1IDAgMCAtMi45NyBjIDAuNTcgMCAxLjA0IC0wIDEuNTkgMCAyLjQ0IDAgNC4zNCAtMS45MSA0LjM0IC00LjUzIDAgLTIuNjIgLTEuOSAtNC41IC00LjM0IC00LjUgeiBtIDI2LjE2IDAgMy4wMyA0LjM4IC0zLjE5IDQuNjIgMi4xMiAwIEwgNTcuMzEgMTEuOTEgNTkuNDQgMTUgNjEuNTkgMTUgNTguMzggMTAuMzggNjEuNDEgNiA1OS4yNSA2IDU3LjMxIDguODEgNTUuMzQgNiB6IE0gMjEuNDcgNy43MiBjIDEuNCAwIDIuNDQgMS4xOSAyLjQ0IDIuNzggbCAwIDIuNzggLTIuNDQgMCBjIC0xLjQgMCAtMi40NCAtMS4yMSAtMi40NCAtMi43OCAtMCAtMS41NyAxLjA0IC0yLjc4IDIuNDQgLTIuNzggeiBtIDI3LjU2IDAgYyAxLjQ0IDAgMi41OSAxLjI0IDIuNTkgMi43OCAwIDEuNTQgLTEuMTUgMi43OCAtMi41OSAyLjc4IC0xLjQ0IDAgLTIuNjIgLTEuMjQgLTIuNjIgLTIuNzggMCAtMS41NCAxLjE4IC0yLjc4IDIuNjIgLTIuNzggeiBtIC0yMC4yNSAwLjAzIDEuNTkgMCBjIDEuNTkgMCAyLjU5IDEuMjggMi41OSAyLjc1IDAgMS40NyAtMS4xMyAyLjc4IC0yLjU5IDIuNzggbCAtMS41OSAwIHogbSA4Ljk3IDAgMS41IDAgYyAxLjQ3IDAgMi42MiAxLjI4IDIuNjIgMi43NSAwIDEuNDcgLTEuMDQgMi43OCAtMi42MiAyLjc4IGwgLTEuNSAwIHoiIHRyYW5zZm9ybT0ibWF0cml4KDUuNzMzMzQxNCwwLDAsNS43MzMzNDE0LDIzNi45MzMwOCwzOTcuMTc0OTgpIiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIi8+PC9nPjwvZz48L3N2Zz4=",
+ "max_connections": 12
+ },
+
+ "print": {
+ "id": "mapbox.streets-v4",
+ "name": "Mapbox print tiles",
+ "license": "© OpenStreetMap",
+ "license_uri": "http://www.openstreetmap.org/copyright",
+ "min_zoom_level": 0,
+ "max_zoom_level": 19,
+ "tile_size": 256,
+ "uri_format": "https://a.tiles.mapbox.com/v4/mapbox.streets/#Z#/#X#/#Y#.png?access_token=p…",
+ "attribution_logo": "PHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI2NSIgaGVpZ2h0PSIyMCI+PGRlZnMvPjxtZXRhZGF0YT48cmRmOlJERj48Y2M6V29yayByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPjxkYzp0aXRsZS8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNjEuODQ4MywtOTguNTAzOTUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjE3NDQxODM2LDAsMCwwLjE3NDQxODM2LDIyMC41MjI4MiwyOS4yMjkzNDIpIiBzdHlsZT0ib3BhY2l0eTowLjI1O2ZpbGw6I2ZmZmZmZjtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTcuMjAwMDIzNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiPjxwYXRoIGQ9Ik0gNS4yOCAxLjUgQyA0LjU0IDEuNTYgMy45IDIuMjUgMy45MSAzIGwgMCAxMS44OCBjIDAuMDIgMC43NyAwLjcyIDEuNDcgMS41IDEuNDcgbCAxLjc1IDAgYyAwLjc4IDAgMS40OCAtMC42OSAxLjUgLTEuNDcgbCAwIC00LjI4IDAuNzIgMS4xOSBjIDAuNTMgMC44NyAyLjAzIDAuODcgMi41NiAwIGwgMC43MiAtMS4xOSAwIDQuMjggYyAwLjAyIDAuNzYgMC43IDEuNDUgMS40NyAxLjQ3IGwgMS43NSAwIGMgMC43OCAwIDEuNDggLTAuNjkgMS41IC0xLjQ3IGwgMCAtMC4xNiBjIDEuMDIgMS4xMiAyLjQ2IDEuODEgNC4wOSAxLjgxIGwgNC4wOSAwIDAgMS40NyBjIC0wIDAuNzggMC42OSAxLjQ4IDEuNDcgMS41IGwgMS43NSAwIGMgMC43OSAtMCAxLjUgLTAuNzEgMS41IC0xLjUgbCAwLjAyIC0xLjQ3IGMgMS43MiAwIDMuMDggLTAuNjQgNC4xNCAtMS42OSBsIDAgMC4xOSBjIDAgMC4zOSAwLjE2IDAuNzkgMC40NCAxLjA2IDAuMjggMC4yOCAwLjY3IDAuNDQgMS4wNiAwLjQ0IGwgMy4zMSAwIGMgMi4wMyAwIDMuODUgLTEuMDYgNC45MSAtMi42OSAxLjA1IDEuNjEgMi44NCAyLjY5IDQuODggMi42OSAxLjAzIDAgMS45OCAtMC4yNyAyLjgxIC0wLjc1IDAuMjggMC4zNSAwLjczIDAuNTcgMS4xOSAwLjU2IGwgMi4xMiAwIGMgMC40OCAwLjAxIDAuOTcgLTAuMjMgMS4yNSAtMC42MiBsIDAuOTEgLTEuMjggMC45MSAxLjI4IGMgMC4yOCAwLjM5IDAuNzQgMC42MyAxLjIyIDAuNjIgbCAyLjE2IDAgQyA2Mi42NyAxNi4zMyA2My40MiAxNC44OSA2Mi44MSAxNCBMIDYwLjIyIDEwLjM4IDYyLjYyIDcgQyA2My4yNiA2LjExIDYyLjUgNC42MiA2MS40MSA0LjYyIGwgLTIuMTYgMCBDIDU4Ljc4IDQuNjIgNTguMzEgNC44NiA1OC4wMyA1LjI1IEwgNTcuMzEgNi4yOCA1Ni41NiA1LjI1IEMgNTYuMjkgNC44NiA1NS44MiA0LjYyIDU1LjM0IDQuNjIgbCAtMi4xNiAwIGMgLTAuNDkgLTAgLTAuOTcgMC4yNSAtMS4yNSAwLjY2IC0wLjg2IC0wLjUxIC0xLjg0IC0wLjgxIC0yLjkxIC0wLjgxIC0yLjAzIDAgLTMuODMgMS4wOCAtNC44OCAyLjY5IEMgNDMuMSA1LjUzIDQxLjI3IDQuNDcgMzkuMTkgNC40NyBMIDM5LjE5IDMgQyAzOS4xOSAyLjYxIDM5LjAzIDIuMjEgMzguNzUgMS45NCAzOC40NyAxLjY2IDM4LjA4IDEuNSAzNy42OSAxLjUgbCAtMS43NSAwIGMgLTAuNzEgMCAtMS41IDAuODMgLTEuNSAxLjUgbCAwIDMuMTYgQyAzMy4zOCA1LjEgMzEuOTYgNC40NyAzMC4zOCA0LjQ3IGwgLTMuMzQgMCBjIC0wLjc3IDAuMDIgLTEuNDcgMC43MiAtMS40NyAxLjUgbCAwIDAuMzEgYyAtMS4wMiAtMS4xMiAtMi40NiAtMS44MSAtNC4wOSAtMS44MSAtMS42MyAwIC0zLjA3IDAuNyAtNC4wOSAxLjgxIEwgMTcuMzggMyBjIC0wIC0wLjc5IC0wLjcxIC0xLjUgLTEuNSAtMS41IEwgMTQuNSAxLjUgQyAxMy41NSAxLjUgMTIuMjggMS44NyAxMS42NiAyLjk0IGwgLTEgMS42OSAtMSAtMS42OSBDIDkuMDMgMS44NyA3Ljc3IDEuNSA2LjgxIDEuNSBsIC0xLjQxIDAgQyA1LjM2IDEuNSA1LjMyIDEuNSA1LjI4IDEuNSB6IG0gMTYuMTkgNy43MiBjIDAuNTMgMCAwLjk0IDAuMzUgMC45NCAxLjI4IGwgMCAxLjI4IC0wLjk0IDAgYyAtMC41MiAwIC0wLjk0IC0wLjM4IC0wLjk0IC0xLjI4IC0wIC0wLjkgMC40MiAtMS4yOCAwLjk0IC0xLjI4IHogbSA4LjgxIDAgYyAwLjgzIDAgMS4xOCAwLjY4IDEuMTkgMS4yOCAwLjAxIDAuOTQgLTAuNjIgMS4yOCAtMS4xOSAxLjI4IHogbSA4LjcyIDAgYyAwLjcyIDAgMS4zNyAwLjYgMS4zNyAxLjI4IDAgMC43NyAtMC41MSAxLjI4IC0xLjM3IDEuMjggeiBtIDEwLjAzIDAgYyAwLjU4IDAgMS4wOSAwLjUgMS4wOSAxLjI4IDAgMC43OCAtMC41MSAxLjI4IC0xLjA5IDEuMjggLTAuNTggMCAtMS4xMiAtMC41IC0xLjEyIC0xLjI4IDAgLTAuNzggMC41NCAtMS4yOCAxLjEyIC0xLjI4IHoiIHRyYW5zZm9ybT0ibWF0cml4KDUuNzMzMzQxNCwwLDAsNS43MzMzNDE0LDIzNi45MzMwOCwzOTcuMTc0OTgpIiBzdHlsZT0iZm9udC1zaXplOm1lZGl1bTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtkaXJlY3Rpb246bHRyO2Jsb2NrLXByb2dyZXNzaW9uOnRiO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtjb2xvcjojMDAwMDAwO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTcuMjAwMDIzNjU7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZTtmb250LWZhbWlseTpTYW5zOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246U2FucyIvPjwvZz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjE3NDQxODM2LDAsMCwwLjE3NDQxODM2LDIyMC41MjI4MiwyOS4yMjkzNDIpIiBzdHlsZT0iZmlsbDojZmZmZmZmIj48cGF0aCBkPSJtIDUuNDEgMyAwIDEyIDEuNzUgMCAwIC05LjkxIDMuNSA1Ljk0IDMuNDcgLTUuOTQgMCA5LjkxIDEuNzUgMCAwIC0xMiBMIDE0LjUgMyBDIDEzLjggMyAxMy4yNSAzLjE2IDEyLjk0IDMuNjkgTCAxMC42NiA3LjU5IDguMzggMy42OSBDIDguMDcgMy4xNiA3LjUxIDMgNi44MSAzIHogTSAzNiAzIGwgMCAxMi4wMyAzLjI1IDAgYyAyLjQ0IDAgNC4zOCAtMS45MSA0LjM4IC00LjUzIDAgLTIuNjIgLTEuOTMgLTQuNDcgLTQuMzggLTQuNDcgQyAzOC43IDYuMDMgMzguMzIgNiAzNy43NSA2IGwgMCAtMyB6IE0gMjEuNDcgNS45NyBjIC0yLjQ0IDAgLTQuMTkgMS45MSAtNC4xOSA0LjUzIDAgMi42MiAxLjc1IDQuNTMgNC4xOSA0LjUzIGwgNC4xOSAwIDAgLTQuNTMgYyAwIC0yLjYyIC0xLjc1IC00LjUzIC00LjE5IC00LjUzIHogbSAyNy41NiAwIGMgLTIuNDEgMCAtNC4zOCAyLjAzIC00LjM4IDQuNTMgMCAyLjUgMS45NyA0LjUzIDQuMzggNC41MyAyLjQxIDAgNC4zNCAtMi4wMyA0LjM0IC00LjUzIDAgLTIuNSAtMS45NCAtNC41MyAtNC4zNCAtNC41MyB6IG0gLTIyIDAuMDMgMCAxMiAxLjc1IDAgMCAtMi45NyBjIDAuNTcgMCAxLjA0IC0wIDEuNTkgMCAyLjQ0IDAgNC4zNCAtMS45MSA0LjM0IC00LjUzIDAgLTIuNjIgLTEuOSAtNC41IC00LjM0IC00LjUgeiBtIDI2LjE2IDAgMy4wMyA0LjM4IC0zLjE5IDQuNjIgMi4xMiAwIEwgNTcuMzEgMTEuOTEgNTkuNDQgMTUgNjEuNTkgMTUgNTguMzggMTAuMzggNjEuNDEgNiA1OS4yNSA2IDU3LjMxIDguODEgNTUuMzQgNiB6IE0gMjEuNDcgNy43MiBjIDEuNCAwIDIuNDQgMS4xOSAyLjQ0IDIuNzggbCAwIDIuNzggLTIuNDQgMCBjIC0xLjQgMCAtMi40NCAtMS4yMSAtMi40NCAtMi43OCAtMCAtMS41NyAxLjA0IC0yLjc4IDIuNDQgLTIuNzggeiBtIDI3LjU2IDAgYyAxLjQ0IDAgMi41OSAxLjI0IDIuNTkgMi43OCAwIDEuNTQgLTEuMTUgMi43OCAtMi41OSAyLjc4IC0xLjQ0IDAgLTIuNjIgLTEuMjQgLTIuNjIgLTIuNzggMCAtMS41NCAxLjE4IC0yLjc4IDIuNjIgLTIuNzggeiBtIC0yMC4yNSAwLjAzIDEuNTkgMCBjIDEuNTkgMCAyLjU5IDEuMjggMi41OSAyLjc1IDAgMS40NyAtMS4xMyAyLjc4IC0yLjU5IDIuNzggbCAtMS41OSAwIHogbSA4Ljk3IDAgMS41IDAgYyAxLjQ3IDAgMi42MiAxLjI4IDIuNjIgMi43NSAwIDEuNDcgLTEuMDQgMi43OCAtMi42MiAyLjc4IGwgLTEuNSAwIHoiIHRyYW5zZm9ybT0ibWF0cml4KDUuNzMzMzQxNCwwLDAsNS43MzMzNDE0LDIzNi45MzMwOCwzOTcuMTc0OTgpIiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIi8+PC9nPjwvZz48L3N2Zz4=",
+ "max_connections": 12
+ }
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/data/media/mapbox-attribution-logo.svg new/gnome-maps-3.20.3/data/media/mapbox-attribution-logo.svg
--- old/gnome-maps-3.20.2/data/media/mapbox-attribution-logo.svg 2016-07-30 23:08:55.000000000 +0200
+++ new/gnome-maps-3.20.3/data/media/mapbox-attribution-logo.svg 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" width="65" height="20"><defs/><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><g transform="translate(-261.8483,-98.50395)"><g transform="matrix(0.17441836,0,0,0.17441836,220.52282,29.229342)" style="opacity:0.25;fill:#ffffff;stroke:#000000;stroke-width:17.20002365;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"><path d="M 5.28 1.5 C 4.54 1.56 3.9 2.25 3.91 3 l 0 11.88 c 0.02 0.77 0.72 1.47 1.5 1.47 l 1.75 0 c 0.78 0 1.48 -0.69 1.5 -1.47 l 0 -4.28 0.72 1.19 c 0.53 0.87 2.03 0.87 2.56 0 l 0.72 -1.19 0 4.28 c 0.02 0.76 0.7 1.45 1.47 1.47 l 1.75 0 c 0.78 0 1.48 -0.69 1.5 -1.47 l 0 -0.16 c 1.02 1.12 2.46 1.81 4.09 1.81 l 4.09 0 0 1.47 c -0 0.78 0.69 1.48 1.47 1.5 l 1.75 0 c 0.79 -0 1.5 -0.71 1.5 -1.5 l 0.02 -1.47 c 1.72 0 3.08 -0.64 4.14 -1.69 l 0 0.19 c 0 0.39 0.16 0.79 0.44 1.06 0.28 0.28 0.67 0.44 1.06 0.44 l 3.31 0 c 2.03 0 3.85 -1.06 4.91 -2.69 1.05 1.61 2.84 2.69 4.88 2.69 1.03 0 1.98 -0.27 2.81 -0.75 0.28 0.35 0.73 0.57 1.19 0.56 l 2.12 0 c 0.48 0.01 0.97 -0.23 1.25 -0.62 l 0.91 -1.28 0.91 1.28 c 0.28 0.39 0.74 0.63 1.22 0.62 l 2.16 0 C 62.67 16.33 63.42 14.89 62.81 14 L 60.22 10.38 62.62 7 C 63.26 6.11 62.5 4.62 61.41 4.62 l -2.16 0 C 58.78 4.62 58.31 4.86 58.03 5.25 L 57.31 6.28 56.56 5.25 C 56.29 4.86 55.82 4.62 55.34 4.62 l -2.16 0 c -0.49 -0 -0.97 0.25 -1.25 0.66 -0.86 -0.51 -1.84 -0.81 -2.91 -0.81 -2.03 0 -3.83 1.08 -4.88 2.69 C 43.1 5.53 41.27 4.47 39.19 4.47 L 39.19 3 C 39.19 2.61 39.03 2.21 38.75 1.94 38.47 1.66 38.08 1.5 37.69 1.5 l -1.75 0 c -0.71 0 -1.5 0.83 -1.5 1.5 l 0 3.16 C 33.38 5.1 31.96 4.47 30.38 4.47 l -3.34 0 c -0.77 0.02 -1.47 0.72 -1.47 1.5 l 0 0.31 c -1.02 -1.12 -2.46 -1.81 -4.09 -1.81 -1.63 0 -3.07 0.7 -4.09 1.81 L 17.38 3 c -0 -0.79 -0.71 -1.5 -1.5 -1.5 L 14.5 1.5 C 13.55 1.5 12.28 1.87 11.66 2.94 l -1 1.69 -1 -1.69 C 9.03 1.87 7.77 1.5 6.81 1.5 l -1.41 0 C 5.36 1.5 5.32 1.5 5.28 1.5 z m 16.19 7.72 c 0.53 0 0.94 0.35 0.94 1.28 l 0 1.28 -0.94 0 c -0.52 0 -0.94 -0.38 -0.94 -1.28 -0 -0.9 0.42 -1.28 0.94 -1.28 z m 8.81 0 c 0.83 0 1.18 0.68 1.19 1.28 0.01 0.94 -0.62 1.28 -1.19 1.28 z m 8.72 0 c 0.72 0 1.37 0.6 1.37 1.28 0 0.77 -0.51 1.28 -1.37 1.28 z m 10.03 0 c 0.58 0 1.09 0.5 1.09 1.28 0 0.78 -0.51 1.28 -1.09 1.28 -0.58 0 -1.12 -0.5 -1.12 -1.28 0 -0.78 0.54 -1.28 1.12 -1.28 z" transform="matrix(5.7333414,0,0,5.7333414,236.93308,397.17498)" style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:17.20002365;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"/></g><g transform="matrix(0.17441836,0,0,0.17441836,220.52282,29.229342)" style="fill:#ffffff"><path d="m 5.41 3 0 12 1.75 0 0 -9.91 3.5 5.94 3.47 -5.94 0 9.91 1.75 0 0 -12 L 14.5 3 C 13.8 3 13.25 3.16 12.94 3.69 L 10.66 7.59 8.38 3.69 C 8.07 3.16 7.51 3 6.81 3 z M 36 3 l 0 12.03 3.25 0 c 2.44 0 4.38 -1.91 4.38 -4.53 0 -2.62 -1.93 -4.47 -4.38 -4.47 C 38.7 6.03 38.32 6 37.75 6 l 0 -3 z M 21.47 5.97 c -2.44 0 -4.19 1.91 -4.19 4.53 0 2.62 1.75 4.53 4.19 4.53 l 4.19 0 0 -4.53 c 0 -2.62 -1.75 -4.53 -4.19 -4.53 z m 27.56 0 c -2.41 0 -4.38 2.03 -4.38 4.53 0 2.5 1.97 4.53 4.38 4.53 2.41 0 4.34 -2.03 4.34 -4.53 0 -2.5 -1.94 -4.53 -4.34 -4.53 z m -22 0.03 0 12 1.75 0 0 -2.97 c 0.57 0 1.04 -0 1.59 0 2.44 0 4.34 -1.91 4.34 -4.53 0 -2.62 -1.9 -4.5 -4.34 -4.5 z m 26.16 0 3.03 4.38 -3.19 4.62 2.12 0 L 57.31 11.91 59.44 15 61.59 15 58.38 10.38 61.41 6 59.25 6 57.31 8.81 55.34 6 z M 21.47 7.72 c 1.4 0 2.44 1.19 2.44 2.78 l 0 2.78 -2.44 0 c -1.4 0 -2.44 -1.21 -2.44 -2.78 -0 -1.57 1.04 -2.78 2.44 -2.78 z m 27.56 0 c 1.44 0 2.59 1.24 2.59 2.78 0 1.54 -1.15 2.78 -2.59 2.78 -1.44 0 -2.62 -1.24 -2.62 -2.78 0 -1.54 1.18 -2.78 2.62 -2.78 z m -20.25 0.03 1.59 0 c 1.59 0 2.59 1.28 2.59 2.75 0 1.47 -1.13 2.78 -2.59 2.78 l -1.59 0 z m 8.97 0 1.5 0 c 1.47 0 2.62 1.28 2.62 2.75 0 1.47 -1.04 2.78 -2.62 2.78 l -1.5 0 z" transform="matrix(5.7333414,0,0,5.7333414,236.93308,397.17498)" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g></g></svg>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/data/org.gnome.Maps.data.gresource.xml new/gnome-maps-3.20.3/data/org.gnome.Maps.data.gresource.xml
--- old/gnome-maps-3.20.2/data/org.gnome.Maps.data.gresource.xml 2016-07-30 23:10:22.000000000 +0200
+++ new/gnome-maps-3.20.3/data/org.gnome.Maps.data.gresource.xml 2016-08-22 20:22:21.000000000 +0200
@@ -3,7 +3,6 @@
<gresource prefix="/org/gnome/Maps">
<file preprocess="xml-stripblanks">ui/account-row.ui</file>
<file preprocess="xml-stripblanks">ui/app-menu.ui</file>
- <file preprocess="xml-stripblanks">ui/attribution-logo.ui</file>
<file preprocess="xml-stripblanks">ui/busy-marker.ui</file>
<file preprocess="xml-stripblanks">ui/check-in-dialog.ui</file>
<file preprocess="xml-stripblanks">ui/context-menu.ui</file>
@@ -38,7 +37,6 @@
<file alias="application.css">gnome-maps.css</file>
<file alias="ui/maptype-aerial.png">media/maptype-aerial.png</file>
<file alias="ui/maptype-street.png">media/maptype-street.png</file>
- <file alias="ui/attribution.svg">media/mapbox-attribution-logo.svg</file>
<file alias="osm-types.json" compressed="true">osm-types.json</file>
</gresource>
<gresource prefix="/org/gnome/Maps/gtk">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/data/ui/attribution-logo.ui new/gnome-maps-3.20.3/data/ui/attribution-logo.ui
--- old/gnome-maps-3.20.2/data/ui/attribution-logo.ui 2016-07-30 23:08:55.000000000 +0200
+++ new/gnome-maps-3.20.3/data/ui/attribution-logo.ui 1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
- <!-- interface-requires gtk+ 3.10 -->
- <template class="Gjs_AttributionLogo" parent="GtkImage">
- <property name="halign">end</property>
- <property name="valign">end</property>
- <property name="margin_bottom">6</property>
- <property name="margin_end">6</property>
- <property name="visible">true</property>
- <property name="resource">/org/gnome/Maps/ui/attribution.svg</property>
- </template>
-</interface>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/src/mainWindow.js new/gnome-maps-3.20.3/src/mainWindow.js
--- old/gnome-maps-3.20.2/src/mainWindow.js 2016-07-30 23:10:22.000000000 +0200
+++ new/gnome-maps-3.20.3/src/mainWindow.js 2016-08-22 20:22:21.000000000 +0200
@@ -35,7 +35,6 @@
const Geoclue = imports.geoclue;
const LayersPopover = imports.layersPopover;
const LocationServiceNotification = imports.locationServiceNotification;
-const MapSource = imports.mapSource;
const MapView = imports.mapView;
const PlaceEntry = imports.placeEntry;
const PlaceStore = imports.placeStore;
@@ -80,10 +79,6 @@
this._overlay.add(this._mapView);
- if (!this.application.local_tile_path) {
- this._overlay.add_overlay(new MapSource.AttributionLogo());
- }
-
this._mapView.gotoUserLocation(false);
this._sidebar = this._createSidebar();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/src/mapSource.js new/gnome-maps-3.20.3/src/mapSource.js
--- old/gnome-maps-3.20.2/src/mapSource.js 2016-07-30 23:08:55.000000000 +0200
+++ new/gnome-maps-3.20.3/src/mapSource.js 2016-08-22 20:22:21.000000000 +0200
@@ -18,56 +18,138 @@
*/
const Champlain = imports.gi.Champlain;
+const Clutter = imports.gi.Clutter;
+const GdkPixbuf = imports.gi.GdkPixbuf;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
+const GtkClutter = imports.gi.GtkClutter;
const Lang = imports.lang;
+const Soup = imports.gi.Soup;
+const System = imports.system;
const Utils = imports.utils;
-/*
- * These URIs are used by the libchamplain network tile source.
- * The #X#, #Y#, #Z# coords will get replaced with actual tile numbers.
- */
-const _AERIAL_URI = "https://gis.gnome.org/tiles/satellite/v1/#Z#/#X#/#Y#";
-const _STREET_URI = "https://gis.gnome.org/tiles/street/v1/#Z#/#X#/#Y#";
+let _tileService = null;
+let _attributionImage = null;
-/* unique names are needed for file caching */
-const _AERIAL_NAME = "mapbox-satellite-v1";
-const _STREET_NAME = "mapbox-street-v1";
-
-const _TILE_SIZE = 256;
-const _MIN_ZOOM = 0;
-const _MAX_ZOOM = 19;
+const _TILE_SERVICE_URL = 'https://gis.gnome.org/services/v1/service.json';
+const _DEFAULT_SERVICE_FILE = 'maps-service.json';
const _FILE_CACHE_SIZE_LIMIT = (10 * 1024 * 1024); /* 10Mb */
const _MEMORY_CACHE_SIZE_LIMIT = 100; /* number of tiles */
-function _createTileSource(uri, name) {
- return new Champlain.NetworkTileSource(
- { id: name,
- name: name,
- license: null,
- license_uri: null,
- min_zoom_level: _MIN_ZOOM,
- max_zoom_level: _MAX_ZOOM,
- tile_size: _TILE_SIZE,
- projection: Champlain.MapProjection.MERCATOR,
- renderer: new Champlain.ImageRenderer(),
- uri_format: uri
- });
-}
+const _LOGO_PADDING_X = 10;
+const _LOGO_PADDING_Y = 25;
const AttributionLogo = new Lang.Class({
Name: 'AttributionLogo',
- Extends: Gtk.Image,
- Template: 'resource:///org/gnome/Maps/ui/attribution-logo.ui',
+ Extends: GtkClutter.Actor,
- _init: function() {
+ _init: function(view) {
this.parent();
- }
+
+ if (_attributionImage)
+ this.contents = _attributionImage;
+ else
+ return;
+
+ view.connect('notify::width', (function() {
+ this._updatePosition(view);
+ }).bind(this));
+
+ view.connect('notify::height', (function() {
+ this._updatePosition(view);
+ }).bind(this));
+
+ this._updatePosition(view);
+ },
+
+ _updatePosition: function(view) {
+ let width = _attributionImage.pixbuf.width;
+ let height = _attributionImage.pixbuf.height;
+
+ this.set_position(view.width - width - _LOGO_PADDING_X,
+ view.height - height - _LOGO_PADDING_Y);
+ },
});
-function _createCachedSource(uri, name) {
- let tileSource = _createTileSource(uri, name);
+function _updateAttributionImage(source) {
+ if (!source.attribution_logo || source.attribution_logo === "")
+ return;
+
+ if (!_attributionImage)
+ _attributionImage = new Gtk.Image();
+
+ let data = GLib.base64_decode(source.attribution_logo);
+ let stream = Gio.MemoryInputStream.new_from_bytes(GLib.Bytes.new(data));
+ _attributionImage.pixbuf = GdkPixbuf.Pixbuf.new_from_stream(stream, null);
+}
+
+function _getServiceFromFile(filename) {
+ let data = Utils.readFile(filename);
+ if (!data) {
+ log('Failed to open service file: ' + filename);
+ System.exit(1);
+ }
+ _tileService = JSON.parse(data).tiles;
+ return _tileService;
+}
+
+function _createDefaultService() {
+ let filename = GLib.build_filenamev([pkg.pkgdatadir,
+ _DEFAULT_SERVICE_FILE]);
+ return _getServiceFromFile(filename);
+}
+
+function _getTileService() {
+ if (_tileService)
+ return _tileService;
+
+ let serviceOverride = GLib.getenv('MAPS_SERVICE');
+ if (serviceOverride)
+ return _getServiceFromFile(serviceOverride);
+
+ let user_agent = 'gnome-maps/' + pkg.version;
+ let session = new Soup.Session({ user_agent : user_agent });
+ let msg = Soup.Message.new('GET', _TILE_SERVICE_URL);
+ try {
+ let stream = Gio.DataInputStream.new(session.send(msg, null));
+
+ let lines = "";
+ while(true) {
+ let [line, _] = stream.read_line_utf8(null);
+ if (line === null)
+ break;
+ lines += line;
+ }
+ _tileService = JSON.parse(lines).tiles;
+ return _tileService;
+ } catch(e) {
+ Utils.debug(e);
+ return _createDefaultService();
+ }
+}
+
+function _createTileSource(source) {
+ let tileSource = new Champlain.NetworkTileSource({
+ id: source.id,
+ name: source.name,
+ license: source.license,
+ license_uri: source.license_uri,
+ min_zoom_level: source.min_zoom_level,
+ max_zoom_level: source.max_zoom_level,
+ tile_size: source.tile_size,
+ renderer: new Champlain.ImageRenderer(),
+ uri_format: source.uri_format
+ });
+ tileSource.max_conns = source.max_connections;
+ return tileSource;
+}
+
+function _createCachedSource(source) {
+ let tileSource = _createTileSource(source);
+ _updateAttributionImage(source);
let fileCache = new Champlain.FileCache({
size_limit: _FILE_CACHE_SIZE_LIMIT,
@@ -98,9 +180,13 @@
}
function createAerialSource() {
- return _createCachedSource(_AERIAL_URI, _AERIAL_NAME);
-};
+ return _createCachedSource(_getTileService().aerial);
+}
function createStreetSource() {
- return _createCachedSource(_STREET_URI, _STREET_NAME);
-};
+ return _createCachedSource(_getTileService().street);
+}
+
+function createPrintSource() {
+ return _createCachedSource(_getTileService().print);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/src/mapView.js new/gnome-maps-3.20.3/src/mapView.js
--- old/gnome-maps-3.20.2/src/mapView.js 2016-07-30 23:10:22.000000000 +0200
+++ new/gnome-maps-3.20.3/src/mapView.js 2016-08-22 20:22:21.000000000 +0200
@@ -211,6 +211,11 @@
this.view.map_source = MapSource.createAerialSource();
else
this.view.map_source = MapSource.createStreetSource();
+
+ if (!this._attribution) {
+ this._attribution = new MapSource.AttributionLogo(this.view);
+ this.view.add_child(this._attribution);
+ }
} else {
let renderer = new Champlain.ImageRenderer();
let source = new Maps.FileTileSource({
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-maps-3.20.2/src/printLayout.js new/gnome-maps-3.20.3/src/printLayout.js
--- old/gnome-maps-3.20.2/src/printLayout.js 2016-07-30 23:10:22.000000000 +0200
+++ new/gnome-maps-3.20.3/src/printLayout.js 2016-08-22 20:22:21.000000000 +0200
@@ -29,6 +29,7 @@
const Application = imports.application;
const InstructionRow = imports.instructionRow;
const MapView = imports.mapView;
+const MapSource = imports.mapSource;
const TurnPointMarker = imports.turnPointMarker;
/* Following constant has unit as meters */
@@ -148,8 +149,7 @@
let pageNum = this.numPages - 1;
let x = this._cursorX;
let y = this._cursorY;
- let factory = Champlain.MapSourceFactory.dup_default();
- let mapSource = factory.create_cached_source(MapView.MapType.STREET);
+ let mapSource = MapSource.createPrintSource();
let locations = [];
let markerLayer = new Champlain.MarkerLayer();
let view = new Champlain.View({ width: width,
1
0
Hello community,
here is the log from the commit of package gvfs for openSUSE:Factory checked in at 2016-08-28 12:17:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gvfs (Old)
and /work/SRC/openSUSE:Factory/.gvfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gvfs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gvfs/gvfs.changes 2016-08-17 12:00:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gvfs.new/gvfs.changes 2016-08-28 12:17:08.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Aug 25 08:10:16 UTC 2016 - fezhang(a)suse.com
+
+- Drop gvfs-support-nop-ftruncate.patch (bnc#466794, bgo#573837),
+ gvfs-no-useless-x-flags.patch (bnc#538069),
+ gvfs-monitor-proxy-debug.patch (bnc#903858):
+ Fixed upstream.
+
+-------------------------------------------------------------------
@@ -60,0 +69,17 @@
+Thu Apr 14 08:53:06 UTC 2016 - tyang(a)suse.com
+
+- Update to GNOME 3.20 Fate#318572
+- Drop:
+ * 0001-afp-Don-t-crash-when-opening-the-root-directory.patch
+ * 0001-archive-fix-segfault-when-libarchive-fails.patch
+ * 0001-gphoto2-Don-t-release-the-device-multiple-times.patch
+ * 0001-gphoto2-Return-the-correct-offset-when-seeking.patch
+ * 0001-http-Allow-seek-past-end-of-file.patch
+ * 0001-http-Ensure-the-range-header-is-updated.patch
+ * 0001-http-Fix-segfault-when-seeking-on-read.patch
+ * 0001-http-Fix-the-SEEK_END-offset-calculation.patch
+ * 0001-MTP-Fail-fast-if-in-the-middle-of-an-unmount.patch
+ * gvfs-hal-volume-monitor-memory-leak.patch
+ * gvfs-obexftp-allow-push-cancel.patch
+
+-------------------------------------------------------------------
@@ -320,0 +346,12 @@
+Thu Apr 9 01:18:49 UTC 2015 - dliang(a)suse.com
+
+- Add gvfs-hal-volume-monitor-memory-leak.patch (bnc#924621)
+ gvfs-hal-volume-monitor memory issue
+
+-------------------------------------------------------------------
+Tue Mar 24 22:18:17 UTC 2015 - dliang(a)suse.com
+
+- Add gvfs-monitor-proxy-debug.patch:
+ Disable the monitor proxy debug by default (bnc#903858).
+
+-------------------------------------------------------------------
@@ -546,0 +584,15 @@
+Wed Apr 2 23:11:17 UTC 2014 - mgorse(a)suse.com
+
+- Add 0001-http-Ensure-the-range-header-is-updated.patch,
+ 0001-MTP-Fail-fast-if-in-the-middle-of-an-unmount.patch,
+ 0001-gphoto2-Return-the-correct-offset-when-seeking.patch,
+ 0001-gphoto2-Don-t-release-the-device-multiple-times.patch,
+ 0001-http-Fix-segfault-when-seeking-on-read.patch,
+ 0001-http-Fix-the-SEEK_END-offset-calculation.patch,
+ 0001-http-Allow-seek-past-end-of-file.patch,
+ 0001-http-Ensure-the-range-header-is-updated.patch,
+ 0001-archive-fix-segfault-when-libarchive-fails.patch,
+ 0001-afp-Don-t-crash-when-opening-the-root-directory.patch:
+ Fix several crashes, from upstream gnome-3-10 branch.
+
+-------------------------------------------------------------------
@@ -552,0 +605,10 @@
+Fri Mar 21 11:52:35 UTC 2014 - cxiong(a)novell.com
+
+- Port valid patches from SLE-11
+ see bnc#832386
+ patches and their related bugs:
+ gvfs-support-nop-ftruncate.patch: bnc#466794 bgo#573837
+ gvfs-no-useless-x-flags.patch: bnc#538069
+ gvfs-obexftp-allow-push-cancel.patch: bnc#656452
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Hello community,
here is the log from the commit of package PackageKit for openSUSE:Factory checked in at 2016-08-28 12:16:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/PackageKit (Old)
and /work/SRC/openSUSE:Factory/.PackageKit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "PackageKit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/PackageKit/PackageKit.changes 2016-08-22 10:48:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.PackageKit.new/PackageKit.changes 2016-08-28 12:17:00.000000000 +0200
@@ -1,0 +2,17 @@
+Thu Aug 25 11:17:18 UTC 2016 - dimstar(a)opensuse.org
+
+- Drop PackageKit-1.0.1-fix-bashisms.patch: this patch has been
+ submitted upstream for discussion (gh#hughsie/PackageKit#162). If
+ accepted, we'll inherit with a future update, if declined, it is
+ not important enough to carry around. The code it touches is only
+ used by the internal test suite.
+
+-------------------------------------------------------------------
+Thu Aug 25 10:30:17 UTC 2016 - dimstar(a)opensuse.org
+
+- Drop PackageKit-fix-offline-trigger.patch: in line with upstreams
+ expectation we package /var/cache/PackageKit. With this present
+ the symlink produced for offline update can correctly symlink
+ to an existing directory.
+
+-------------------------------------------------------------------
Old:
----
PackageKit-1.0.1-fix-bashisms.patch
PackageKit-fix-offline-trigger.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ PackageKit.spec ++++++
--- /var/tmp/diff_new_pack.ggePfs/_old 2016-08-28 12:17:01.000000000 +0200
+++ /var/tmp/diff_new_pack.ggePfs/_new 2016-08-28 12:17:01.000000000 +0200
@@ -34,9 +34,6 @@
Patch1: 0001-Change-the-configuration-of-the-cron-script-to-a-sys.patch
# PATCH-FIX-UPSTREAM PackageKit-dbus-location.patch bnc#829944 dimstar(a)opensuse.org -- Look for dbus socket in /run instead of /var/run. Sent to upstream.
Patch3: PackageKit-dbus-location.patch
-Patch4: PackageKit-1.0.1-fix-bashisms.patch
-# PATCH-FIX-UPSTREAM PackageKit-fix-offline-trigger.patch boo#954125 dimstar(a)opensuse.org -- Fix the PK trigger detection; if not done properly, PK might believe that something else triggered the system update and expects something else to handle the update
-Patch5: PackageKit-fix-offline-trigger.patch
# PATCH-FIX-UPSTREAM PackageKit-avoid-endless-loop-on-autoupdate.patch zaitor(a)opensuse.org -- Avoid a endless loop on autoupdates.
Patch6: PackageKit-avoid-endless-loop-on-autoupdate.patch
# PATCH-FIX-UPSTREAM PackageKit-annotate-dbus-interface.patch gh#hughsie/PackageKit#147 dimstar(a)opensuse.org -- Annotate new DBus interface, which is too complex for Qt
@@ -228,8 +225,6 @@
%setup -q
%patch1 -p1
%patch3 -p1
-%patch4 -p1
-%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
@@ -365,6 +360,7 @@
%{_datadir}/polkit-1/actions/org.freedesktop.packagekit.policy
%{_datadir}/polkit-1/rules.d/org.freedesktop.packagekit.rules
%{_datadir}/dbus-1/system-services/*
+%dir %{_localstatedir}/cache/%{name}
%{_unitdir}/packagekit.service
%{_sbindir}/rcpackagekit
%{_mandir}/man?/*.*
1
0
Hello community,
here is the log from the commit of package bundle-lang-common for openSUSE:Factory checked in at 2016-08-28 00:56:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bundle-lang-common (Old)
and /work/SRC/openSUSE:Factory/.bundle-lang-common.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bundle-lang-common"
Changes:
--------
--- /work/SRC/openSUSE:Factory/bundle-lang-common/bundle-lang-common.changes 2016-08-18 11:37:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.bundle-lang-common.new/bundle-lang-common.changes 2016-08-28 00:56:10.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Aug 27 22:48:29 UTC 2016 - dleuenberger(a)suse.com
+
+- Updated package list.
+
+-------------------------------------------------------------------
bundle-lang-gnome.changes: same change
bundle-lang-kde.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
bundle-lang-gnome.spec: same change
bundle-lang-kde.spec: same change
bundle-lang-other.spec: same change
++++++ packages.txt ++++++
--- /var/tmp/diff_new_pack.pBIc1a/_old 2016-08-28 00:56:12.000000000 +0200
+++ /var/tmp/diff_new_pack.pBIc1a/_new 2016-08-28 00:56:12.000000000 +0200
@@ -419,7 +419,6 @@
smuxi-message-buffer-lang gnome-extras
smuxi-server-lang gnome-extras
sound-juicer-lang gnome-extras
-specto-lang gnome-extras
spice-gtk-lang gnome-extras
sushi-lang gnome
swell-foop-lang gnome
1
0
Hello community,
here is the log from the commit of package patchinfo.4663 for openSUSE:13.1:Update checked in at 2016-08-27 15:44:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/patchinfo.4663 (Old)
and /work/SRC/openSUSE:13.1:Update/.patchinfo.4663.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.4663"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="4663">
<packager>wrosenauer</packager>
<issue tracker="cve" id="2016-6354"></issue>
<issue tracker="bmo" id="1264530"></issue>
<issue tracker="bmo" id="1276920"></issue>
<issue tracker="bmo" id="1282843"></issue>
<issue tracker="bmo" id="1290469"></issue>
<issue tracker="bmo" id="1291078"></issue>
<issue tracker="bmo" id="1291738"></issue>
<issue tracker="bmo" id="1292534"></issue>
<issue tracker="bmo" id="1295296"></issue>
<issue tracker="bnc" id="990856">VUL-1: CVE-2016-6354: flex,flex-old: buffer overflow in generated code (yy_get_next_buffer)</issue>
<issue tracker="bnc" id="992236">mozilla-nss 3.24 cannot be switched into FIPS mode</issue>
<category>security</category>
<rating>moderate</rating>
<summary>Security update for Firefox</summary>
<description>This update includes Firefox 48.0.1 to fix a few regressions and a security issue:
* Fix an audio regression impacting some major websites
* Fix a top crash in the JavaScript engine
* Fix a startup crash issue caused by Websense
* Fix a different behavior with e10s / non-e10s on select and mouse events
* Fix a top crash caused by plugin issues
* Fix a shutdown issue
* Fix a crash in WebRTC
- added upstream patch so system plugins/extensions are correctly
loaded again on x86-64
- Fix for possible buffer overrun</description>
</patchinfo>
1
0
Hello community,
here is the log from the commit of package mozilla-nss for openSUSE:13.1:Update checked in at 2016-08-27 15:44:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/mozilla-nss (Old)
and /work/SRC/openSUSE:13.1:Update/.mozilla-nss.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozilla-nss"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.vAX7Nd/_old 2016-08-27 15:44:38.000000000 +0200
+++ /var/tmp/diff_new_pack.vAX7Nd/_new 2016-08-27 15:44:38.000000000 +0200
@@ -1 +1 @@
-<link package='mozilla-nss.4659' cicount='copy' />
+<link package='mozilla-nss.4663' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package MozillaFirefox for openSUSE:13.1:Update checked in at 2016-08-27 15:44:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/MozillaFirefox (Old)
and /work/SRC/openSUSE:13.1:Update/.MozillaFirefox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.YAJzDZ/_old 2016-08-27 15:44:33.000000000 +0200
+++ /var/tmp/diff_new_pack.YAJzDZ/_new 2016-08-27 15:44:33.000000000 +0200
@@ -1 +1 @@
-<link package='MozillaFirefox.4659' cicount='copy' />
+<link package='MozillaFirefox.4663' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package patchinfo.4664 for openSUSE:13.1:Update checked in at 2016-08-27 15:43:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/patchinfo.4664 (Old)
and /work/SRC/openSUSE:13.1:Update/.patchinfo.4664.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.4664"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="rpm">
<packager>computersalat</packager>
<issue tracker="bnc" id="894107">update of phpmyadmin tries to execute deprecated /etc/init.d/apache2</issue>
<category>recommended</category>
<rating>moderate</rating>
<summary>bugfix for rpm package</summary>
<description>This rpm update fixes an issue related to the suse_macro "%restart_on_update".
issue fixed:
update of phpMyAdmin tries to execute deprecated /etc/init.d/apache2</description>
</patchinfo>
1
0
Hello community,
here is the log from the commit of package rpm for openSUSE:13.1:Update checked in at 2016-08-27 15:43:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/rpm (Old)
and /work/SRC/openSUSE:13.1:Update/.rpm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.LoBIrV/_old 2016-08-27 15:43:50.000000000 +0200
+++ /var/tmp/diff_new_pack.LoBIrV/_new 2016-08-27 15:43:50.000000000 +0200
@@ -1 +1 @@
-<link package='rpm.3409' cicount='copy' />
+<link package='rpm.4664' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package rpm.4664 for openSUSE:13.1:Update checked in at 2016-08-27 15:43:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/rpm.4664 (Old)
and /work/SRC/openSUSE:13.1:Update/.rpm.4664.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm.4664"
Changes:
--------
New Changes file:
--- /dev/null 2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:13.1:Update/.rpm.4664.new/python3-rpm.changes 2016-08-27 15:43:46.000000000 +0200
@@ -0,0 +1,33 @@
+-------------------------------------------------------------------
+Fri Jul 12 15:36:43 CEST 2013 - mls(a)suse.de
+
+- update to rpm-4.11.1
+
+-------------------------------------------------------------------
+Wed Jan 2 14:25:09 UTC 2013 - dmueller(a)suse.com
+
+- Update to 4.10.2
+
+-------------------------------------------------------------------
+Sun Nov 4 08:54:25 UTC 2012 - coolo(a)suse.com
+
+- fix build
+
+-------------------------------------------------------------------
+Sat Sep 22 13:24:30 UTC 2012 - idonmez(a)suse.com
+
+- Update for rpm 4.10.0
+
+-------------------------------------------------------------------
+Tue Jan 17 10:29:20 UTC 2012 - saschpe(a)suse.de
+
+- Spec file cleanup:
+ * Don't rm -rf %{buildroot}
+ * Removed %clean section
+ * Removed authors from description
+
+-------------------------------------------------------------------
+Mon Jan 9 17:12:41 CET 2012 - dmueller(a)suse.de
+
+- Initial package
+
New Changes file:
--- /dev/null 2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:13.1:Update/.rpm.4664.new/rpm-python.changes 2016-08-27 15:43:46.000000000 +0200
@@ -0,0 +1,123 @@
+-------------------------------------------------------------------
+Fri Jul 12 15:36:43 CEST 2013 - mls(a)suse.de
+
+- update to rpm-4.11.1
+
+-------------------------------------------------------------------
+Wed Jan 2 14:25:20 UTC 2013 - dmueller(a)suse.com
+
+- Update to 4.10.2
+
+-------------------------------------------------------------------
+Mon Apr 23 11:16:26 CEST 2012 - mls(a)suse.de
+
+- modified capsule api diff to match rpm upstream
+
+-------------------------------------------------------------------
+Wed Apr 11 16:54:02 UTC 2012 - klaussfreire(a)gmail.com
+
+- Fix usage of deprecated AsVoidPtr Python/C API,
+ replaced by Capsule API
+
+-------------------------------------------------------------------
+Tue Jan 17 10:28:42 UTC 2012 - saschpe(a)suse.de
+
+- Spec file cleanup:
+ * Don't rm -rf %{buildroot}
+ * Removed %clean section
+ * Removed authors from description
+
+-------------------------------------------------------------------
+Sun Dec 11 09:28:28 UTC 2011 - coolo(a)suse.com
+
+- add libtool as explicit buildrequire
+
+-------------------------------------------------------------------
+Wed Feb 23 14:01:41 CET 2011 - mls(a)suse.de
+
+- drop standard python directories from filelist [bnc#229189]
+
+-------------------------------------------------------------------
+Fri Oct 22 15:52:32 UTC 2010 - coolo(a)novell.com
+
+- adapt second spec file to changes done to rpm.spec
+
+-------------------------------------------------------------------
+Mon Oct 18 11:03:53 CEST 2010 - dmueller(a)suse.de
+
+- adapt buildrequires
+
+-------------------------------------------------------------------
+Thu Feb 12 16:52:26 CET 2009 - ro(a)suse.de
+
+- adapt buildrequires
+
+-------------------------------------------------------------------
+Wed Oct 8 11:24:22 CEST 2008 - cthiel(a)suse.de
+
+- added libelf-devel to BuildRequires to fix build
+
+-------------------------------------------------------------------
+Thu Sep 11 15:33:52 CEST 2008 - mls(a)suse.de
+
+- update to 4.4.2.3 to get rid of >50 patches
+
+-------------------------------------------------------------------
+Sat Aug 30 21:23:38 CEST 2008 - cthiel(a)suse.de
+
+- add libselinux-devel to BuildRequires
+
+-------------------------------------------------------------------
+Thu Aug 7 16:05:51 CEST 2008 - dmueller(a)suse.de
+
+- fix build against python 2.6
+
+-------------------------------------------------------------------
+Thu Mar 27 14:47:18 CET 2008 - coolo(a)suse.de
+
+- fix buildrequires
+
+-------------------------------------------------------------------
+Fri May 25 16:20:53 CEST 2007 - mls(a)suse.de
+
+- fix unicode queries
+
+-------------------------------------------------------------------
+Fri Mar 30 15:06:28 CEST 2007 - rguenther(a)suse.de
+
+- add ncurses-devel and zlib-devel BuildRequires.
+
+-------------------------------------------------------------------
+Wed Oct 18 22:59:02 CEST 2006 - mls(a)suse.de
+
+- use rpm.spec for building instead of duplication everything
+- delete superfluous .a and .la files [#202604]
+- create .pyc and .pyo files [#205711]
+
+-------------------------------------------------------------------
+Sun Oct 15 23:41:37 CEST 2006 - schwab(a)suse.de
+
+- Make sure config.rpath is present.
+
+-------------------------------------------------------------------
+Fri Sep 22 08:58:57 CEST 2006 - aj(a)suse.de
+
+- Fix for python2.5.
+
+-------------------------------------------------------------------
+Thu Sep 21 11:41:04 CEST 2006 - lnussel(a)suse.de
+
+- do not package beecrypt python bindings as libbeecrypt is not
+ packaged either
+- fix literal %{version} in Requires tag
+
+-------------------------------------------------------------------
+Thu Sep 21 10:58:42 CEST 2006 - lnussel(a)suse.de
+
+- fix build with python 2.5 by overriding autodetection
+
+-------------------------------------------------------------------
+Tue Sep 19 13:48:27 CEST 2006 - rguenther(a)suse.de
+
+- split from rpm package
+
New Changes file:
--- /dev/null 2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:13.1:Update/.rpm.4664.new/rpm.changes 2016-08-27 15:43:46.000000000 +0200
@@ -0,0 +1,3435 @@
+-------------------------------------------------------------------
+Fri Jun 17 20:10:52 UTC 2016 - chris(a)computersalat.de
+
+- fix suse_macros [boo#894107]
+
+-------------------------------------------------------------------
+Thu Jan 8 15:59:05 CET 2015 - mls(a)suse.de
+
+- fix noglob patch, it broke files with spaces [bnc#911228]
+
+-------------------------------------------------------------------
+Wed Dec 10 17:45:35 CET 2014 - mls(a)suse.de
+
+- honor --noglob in install mode [bnc#892431]
+ new patch: installnoglob.diff
+- check for bad invalid name sizes [bnc#908128] [CVE-2014-8118]
+ new patch: cpionamesize.diff
+- create files with mode 0 [bnc#906803] [CVE-2013-6435]
+ new patch: unpackmode0.diff
+
+-------------------------------------------------------------------
+Thu Dec 19 15:52:43 CET 2013 - mls(a)suse.de
+
+- bump suse_version to 1310 [bnc#851877]
+- backport prefix handling fix [bnc#852310]
+ patch: installprefix.diff
+
+-------------------------------------------------------------------
+Fri Sep 27 15:13:45 CEST 2013 - mls(a)suse.de
+
+- add selfconflicts.diff: fix self-conflicts and self-obsoletes
+ handling for verify operations [bnc#838133]
+
+-------------------------------------------------------------------
+Tue Sep 24 10:36:15 UTC 2013 - mail(a)bernhard-voelker.de
+
+- replace obsoleted "find -perm +NNN" syntax [bnc#842004]
+ to "-perm /NNN" in debugsource-package.diff and
+ finddebuginfo.diff.
+
+-------------------------------------------------------------------
+Wed Sep 11 18:28:39 CEST 2013 - mls(a)suse.de
+
+- fix two bugs in the rpmstrPoolRehash() function:
+ adding strpoolrehash.diff and ignore_poolstr_dummy_entries.diff
+
+-------------------------------------------------------------------
+Thu Sep 5 12:01:51 UTC 2013 - schwab(a)linux-m68k.org
+
+- brp-compress-no-img.patch: don't compress image files
+
+-------------------------------------------------------------------
+Thu Aug 29 17:49:27 CEST 2013 - mls(a)suse.de
+
+- add beedigest.diff to plug memory leaks and support DSA signatures
+ with hashes other than sha-1 (already upstream)
+
+-------------------------------------------------------------------
+Mon Aug 5 15:45:38 UTC 2013 - dmueller(a)suse.com
+
+- weakdeps.diff: readd support for recommends, suggests, enhances
+ supplements
+
+-------------------------------------------------------------------
+Thu Aug 1 15:34:49 CEST 2013 - mls(a)suse.de
+
+- fix typo in .debug_gdb_scripts name [bnc#818502]
+
+-------------------------------------------------------------------
+Mon Jul 15 16:17:45 CEST 2013 - mls(a)suse.de
+
+- backport noposttrans.diff from rpm master [bnc#773575]
+
+-------------------------------------------------------------------
+Fri Jul 12 15:36:43 CEST 2013 - mls(a)suse.de
+
+- update to rpm-4.11.1
+ * fix bogus file conflict on symlink permissions
+ * fix replaced files not getting reported at all during verification
+ * fix explicit file conflicts in installed packages being ignored
+ * fix multiple corner cases in config file handling
+ * fix disk-space accounting bugs
+ * report replacing directories with non-directories as file conflict
+- package rpmdb_* database tools
+- get rid of kernel symbol requires/provides, instead add simple
+ package provides/requires like in Fedora
+- delete files.diff patch, it caused more harm than good
+
+-------------------------------------------------------------------
+Tue Jul 2 09:53:02 UTC 2013 - dmueller(a)suse.com
+
+- extend the armv7hl hack also to armv6hl
+
+-------------------------------------------------------------------
+Thu Jun 27 22:03:51 UTC 2013 - dmueller(a)suse.com
+
+- add support for armv6hl target
+
+-------------------------------------------------------------------
+Sun Jun 23 19:03:27 UTC 2013 - schwab(a)linux-m68k.org
+
+- psm-errno.patch: avoid losing errno from failures to unpack archive
+
+-------------------------------------------------------------------
+Thu Jun 20 13:47:46 UTC 2013 - coolo(a)suse.com
+
+- use gettext-devel instead of real package name gettext-tools
+ to use the (for bootstrapping) preferred gettext-tools-mini
+
+-------------------------------------------------------------------
+Thu Jun 20 09:46:47 UTC 2013 - coolo(a)suse.com
+
+- add systemd-rpm-macros to essential list
+
+-------------------------------------------------------------------
+Sun May 19 14:05:14 UTC 2013 - schwab(a)suse.de
+
+- auto-config-update-aarch64.diff: increase level to 8
+
+-------------------------------------------------------------------
+Wed May 8 22:25:09 UTC 2013 - schwab(a)suse.de
+
+- Remove unused files
+
+-------------------------------------------------------------------
+Wed May 8 14:56:15 UTC 2013 - dmueller(a)suse.com
+
+- auto-config-update-aarch64.diff:
+ * search up to 5 levels for interesting files to patch
+
+-------------------------------------------------------------------
+Mon Apr 22 22:00:14 UTC 2013 - dmueller(a)suse.com
+
+- add auto-config-update-aarch64.diff:
+ * optionally automatically update config.guess/sub during build
+
+-------------------------------------------------------------------
+Fri Apr 5 18:47:53 UTC 2013 - dmueller(a)suse.com
+
+- update to 4.10.3.1:
+ * Fix install-regression introduced in RPM 4.10.0 which can
+ cause creation of real files and directories skipped when
+ the path is shared with a %ghost.
+ * translation updates
+
+-------------------------------------------------------------------
+Fri Apr 5 12:39:12 UTC 2013 - idonmez(a)suse.com
+
+- Add Source URL, see https://en.opensuse.org/SourceUrls
+
+-------------------------------------------------------------------
+Sat Mar 30 13:53:48 UTC 2013 - coolo(a)suse.com
+
+- which is essential for man packages
+
+-------------------------------------------------------------------
+Mon Mar 25 13:38:45 UTC 2013 - schwab(a)suse.de
+
+- debugedit-aarch64.diff: handle aarch64 relocation
+
+-------------------------------------------------------------------
+Fri Feb 15 15:29:25 UTC 2013 - dmueller(a)suse.com
+
+- add ignore-auxv.diff:
+ * avoid auxv parsing for any platform other than powerpc
+- add config-guess-sub-update.diff:
+ * update config.guess/sub for aarch64 support
+- update rpmrc.diff, build.diff:
+ * Support aarch64
+
+-------------------------------------------------------------------
+Thu Jan 10 12:04:15 UTC 2013 - coolo(a)suse.com
+
+- remove the macros that were documented to be removed january 2013:
+ %run_permissions, use %set_permissions instead
+ %run_suseconfig, SuSEconfig is gone
+ %suse_update_config
+
+-------------------------------------------------------------------
+Wed Jan 2 13:46:17 UTC 2013 - dmueller(a)suse.com
+
+- update to 4.10.2 (bnc#796375):
+ * Fix missing error code on unparseable signature in packages,
+ regression introduced in rpm 4.10.0. This could result in packages
+ with malformed signature falling through signature checking.
+ * Fix missing error code on --import on bogus key file (RhBug:869667)
+ * Fix installation of packages containing skipped hardlinks (RhBug:864622)
+ * Fix --setperms regression introduced in rpm 4.10.0 (RhBug:881835)
+ * Fix locale dependent behavior in rpm2cpio.sh (RhBug:878363)
+ * Add --undefine cli switch for undefining macros (related to RhBug:876308)
+ * Fix warnings when building with gcc >= 4.7
+ * Permit key imports on transactions where signature checking is
+ disabled, regression of sorts introduced in 4.10.0 (RhBug:856225)
+ * Fix RPMPROB_FILTER_FORCERELOCATE aka --badreloc, regression introduced in
+ 4.9.0 (RhBug:828784)
+ * Verify files from non-installed packages again, regression introduced
+ in 4.9.0 (RhBug:826589)
++++ 3238 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:13.1:Update/.rpm.4664.new/rpm.changes
New:
----
RPM-HOWTO.tar.bz2
RPM-Tips.html.tar.bz2
assumeexec.diff
auto-config-update-aarch64.diff
autodeps.diff
baselibs.conf
beecrypt-4.1.2.diff
beecrypt-4.1.2.tar.bz2
beedigest.diff
brp-compress-no-img.patch
brp.diff
brpcompress.diff
build.diff
buildidprov.diff
checkfilesnoinfodir.diff
convertdb1static.diff
cpionamesize.diff
db-4.8.30.tar.bz2
db.diff
dbfsync.diff
dbprivate.diff
dbrointerruptable.diff
debug_gdb_scripts.diff
debugedit-canon-fix.diff
debugedit-comp-dir.diff
debugedit.diff
debuginfo-mono.patch
debuglink.diff
debugsource-package.diff
debugsubpkg.diff
disttag-macro.diff
extcond.diff
fileattrs.diff
finddebuginfo-absolute-links.diff
finddebuginfo.diff
findksyms.diff
findlang.diff
findsupplements.diff
firmware.diff
fontprovides.diff
getauxval.diff
headeradddb.diff
headerchk2.diff
helperenv.diff
ignore-auxv.diff
ignore_poolstr_dummy_entries.diff
initscriptsprov.diff
installnoglob.diff
installprefix.diff
langnoc.diff
lazystatfs.diff
localetag.diff
macrosin.diff
modalias-encode.diff
modalias-kernel_module.diff
modalias.diff
mono-find-requires.diff
nameversioncompare.diff
nobuildcolor.diff
nomagiccheck.diff
noposttrans.diff
noprereqdeprec.diff
perlprov.diff
platformin.diff
psm-errno.diff
python3-abi-kind.diff
python3-rpm.changes
python3-rpm.spec
pythondeps.diff
refreshtestarch.diff
remove-brp-strips.diff
remove-translations.diff
repackage-nomd5.diff
requires-ge-macro.diff
rpm-4.11.1.tar.bz2
rpm-deptracking.patch
rpm-gst-provides.patch
rpm-python.changes
rpm-python.spec
rpm-shorten-changelog.diff
rpm-suse_macros
rpm.changes
rpm.spec
rpmconfigcheck
rpmpopt.diff
rpmqpack.diff
rpmrc.diff
rpmrctests.diff
rpmsort
safeugid.diff
selfconflicts.diff
specfilemacro.diff
strpoolrehash.diff
suspendlock.diff
symset-table
sysconfig.services-rpm
taggedfileindex.diff
unpackmode0.diff
waitlock.diff
weakdeps.diff
whatrequires-doc.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-rpm.spec ++++++
#
# spec file for package python3-rpm
#
# Copyright (c) 2016 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: python3-rpm
Version: 4.11.1
Release: 0
Summary: Python Bindings for Manipulating RPM Packages
License: GPL-2.0+
Group: System/Packages
Source99: rpm.spec
BuildRequires: file-devel
BuildRequires: libacl-devel
BuildRequires: libbz2-devel
BuildRequires: libcap-devel
BuildRequires: libelf-devel
BuildRequires: libselinux-devel
BuildRequires: libsemanage-devel
BuildRequires: libtool
BuildRequires: lua51-devel
BuildRequires: ncurses-devel
BuildRequires: popt-devel
BuildRequires: python3-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
Requires: rpm = %{version}
%{expand:%(sed -n -e '/^Source:/,/^BuildRoot:/p' <%_sourcedir/rpm.spec)}
%global with_python 3
%description
The python3-rpm package contains a module that permits applications
written in the Python programming language to use the interface
supplied by RPM Package Manager libraries.
This package should be installed if you want to develop Python programs
that will manipulate RPM packages and databases.
%prep
%{expand:%(sed -n -e '/^%%prep/,/^%%install/p' <%_sourcedir/rpm.spec | sed -e '1d' -e '$d')}
%install
mkdir -p %{buildroot}%{_prefix}/lib
# only installing in python/ does not work because rpm links against
# installed libs at install time
%make_install
find %{buildroot} -not -type d -and -not -path %{buildroot}%{_libdir}/python3*/site-packages/rpm/\* -print0 | xargs -0 rm
pushd %{buildroot}/%{_libdir}/python3*/site-packages/rpm
rm -f _rpmmodule.a _rpmmodule.la
python3 %{_libdir}/python3*/py_compile.py *.py
python3 -O %{_libdir}/python3*/py_compile.py *.py
popd
%files
%defattr(-,root,root)
%{_libdir}/python*/*/*
%changelog
++++++ rpm-python.spec ++++++
#
# spec file for package rpm-python
#
# Copyright (c) 2016 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: rpm-python
Version: 4.11.1
Release: 0
#!BuildIgnore: rpmlint-Factory
Summary: Python Bindings for Manipulating RPM Packages
License: GPL-2.0+
Group: System/Packages
Source99: rpm.spec
BuildRequires: file-devel
BuildRequires: libacl-devel
BuildRequires: libbz2-devel
BuildRequires: libcap-devel
BuildRequires: libelf-devel
BuildRequires: libselinux-devel
BuildRequires: libsemanage-devel
BuildRequires: libtool
BuildRequires: lua51-devel
BuildRequires: ncurses-devel
BuildRequires: popt-devel
BuildRequires: python-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
Requires: rpm = %{version}
%py_requires
%{expand:%(sed -n -e '/^Source:/,/^BuildRoot:/p' <%_sourcedir/rpm.spec)}
%global with_python 2
%description
The rpm-python package contains a module that permits applications
written in the Python programming language to use the interface
supplied by RPM Package Manager libraries.
This package should be installed if you want to develop Python programs
that will manipulate RPM packages and databases.
%prep
%{expand:%(sed -n -e '/^%%prep/,/^%%install/p' <%_sourcedir/rpm.spec | sed -e '1d' -e '$d')}
%install
mkdir -p %{buildroot}%{_prefix}/lib
# only installing in python/ does not work because rpm links against
# installed libs at install time
%make_install
find %{buildroot} -not -type d -and -not -path %{buildroot}%{_libdir}/python%{py_ver}/site-packages/rpm/\* -print0 | xargs -0 rm
pushd %{buildroot}/%py_sitedir/rpm
rm -f _rpmmodule.a _rpmmodule.la
python %py_libdir/py_compile.py *.py
python -O %py_libdir/py_compile.py *.py
popd
%files
%defattr(-,root,root)
%{_libdir}/python*/*/*
%changelog
++++++ rpm.spec ++++++
#
# spec file for package rpm
#
# Copyright (c) 2016 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: rpm
BuildRequires: binutils
BuildRequires: bzip2
BuildRequires: file-devel
BuildRequires: findutils
BuildRequires: gcc
BuildRequires: gettext-devel
BuildRequires: glibc-devel
BuildRequires: gzip
BuildRequires: libacl-devel
BuildRequires: libbz2-devel
BuildRequires: libcap-devel
BuildRequires: libelf-devel
BuildRequires: libselinux-devel
BuildRequires: libsemanage-devel
BuildRequires: libtool
BuildRequires: lua51-devel
BuildRequires: make
BuildRequires: ncurses-devel
BuildRequires: patch
BuildRequires: perl-base
BuildRequires: popt-devel
BuildRequires: rpm-build
BuildRequires: xz-devel
BuildRequires: zlib-devel
#!BuildIgnore: rpmlint-Factory
Provides: rpminst
PreReq: %fillup_prereq
Summary: The RPM Package Manager
License: GPL-2.0+
Group: System/Packages
Version: 4.11.1
Release: 0
Source: http://rpm.org/releases/rpm-4.11.x/rpm-%{version}.tar.bz2
Source1: RPM-HOWTO.tar.bz2
Source2: RPM-Tips.html.tar.bz2
Source4: rpm-suse_macros
Source5: rpmsort
Source6: symset-table
Source8: rpmconfigcheck
Source9: sysconfig.services-rpm
Source10: beecrypt-4.1.2.tar.bz2
Source11: db-4.8.30.tar.bz2
Source12: baselibs.conf
Patch1: beecrypt-4.1.2.diff
Patch2: db.diff
# quilt patches start here
Patch11: debugedit.diff
Patch13: ignore-auxv.diff
Patch12: localetag.diff
Patch14: nameversioncompare.diff
Patch15: dbfsync.diff
Patch16: dbrointerruptable.diff
Patch17: extcond.diff
Patch18: refreshtestarch.diff
Patch19: rpmrctests.diff
Patch20: waitlock.diff
Patch21: suspendlock.diff
Patch22: weakdeps.diff
Patch23: autodeps.diff
Patch24: brp.diff
Patch25: brpcompress.diff
Patch26: checkfilesnoinfodir.diff
Patch27: finddebuginfo.diff
Patch28: findksyms.diff
Patch29: findlang.diff
Patch30: macrosin.diff
Patch31: modalias.diff
Patch32: platformin.diff
Patch33: rpmpopt.diff
Patch34: rpmrc.diff
Patch35: taggedfileindex.diff
Patch36: rpmqpack.diff
Patch37: convertdb1static.diff
Patch38: build.diff
Patch39: modalias-kernel_module.diff
Patch41: debugedit-comp-dir.diff
Patch42: perlprov.diff
Patch43: rpm-shorten-changelog.diff
Patch44: debugsource-package.diff
Patch45: whatrequires-doc.diff
Patch46: remove-brp-strips.diff
Patch47: requires-ge-macro.diff
Patch48: debugedit-canon-fix.diff
Patch49: finddebuginfo-absolute-links.diff
Patch50: firmware.diff
Patch51: specfilemacro.diff
Patch52: modalias-encode.diff
Patch53: disttag-macro.diff
Patch54: buildidprov.diff
Patch55: debugsubpkg.diff
Patch56: debuglink.diff
Patch57: debuginfo-mono.patch
Patch58: lazystatfs.diff
Patch59: repackage-nomd5.diff
Patch60: safeugid.diff
Patch61: noprereqdeprec.diff
Patch62: pythondeps.diff
Patch63: fontprovides.diff
Patch64: rpm-gst-provides.patch
Patch65: initscriptsprov.diff
Patch66: remove-translations.diff
Patch67: headeradddb.diff
Patch68: dbprivate.diff
Patch69: nobuildcolor.diff
Patch70: fileattrs.diff
Patch71: nomagiccheck.diff
Patch72: findsupplements.diff
Patch73: assumeexec.diff
Patch74: mono-find-requires.diff
Patch75: rpm-deptracking.patch
Patch76: python3-abi-kind.diff
Patch77: langnoc.diff
Patch78: headerchk2.diff
Patch79: helperenv.diff
Patch80: psm-errno.diff
Patch81: getauxval.diff
Patch82: noposttrans.diff
Patch83: debug_gdb_scripts.diff
Patch84: beedigest.diff
Patch85: brp-compress-no-img.patch
Patch86: strpoolrehash.diff
Patch87: ignore_poolstr_dummy_entries.diff
Patch88: selfconflicts.diff
Patch89: installprefix.diff
Patch90: installnoglob.diff
Patch91: cpionamesize.diff
Patch92: unpackmode0.diff
Patch6464: auto-config-update-aarch64.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#
# avoid bootstrapping problem
%define _binary_payload w9.bzdio
%description
RPM Package Manager is the main tool for managing the software packages
of the SuSE Linux distribution.
RPM can be used to install and remove software packages. With rpm, it
is easy to update packages. RPM keeps track of all these manipulations
in a central database. This way it is possible to get an overview of
all installed packages. RPM also supports database queries.
%package devel
Summary: Include Files and Libraries mandatory for Development
Group: System/Packages
Requires: rpm = %{version}
# for people confusing the one with the other
Recommends: rpm-build = %{version}
Requires: popt-devel
%description devel
This package contains the RPM C library and header files. These
development files will simplify the process of writing programs which
manipulate RPM packages and databases and are intended to make it
easier to create graphical package managers or any other tools that
need an intimate knowledge of RPM packages in order to function.
%package build
Summary: Tools and Scripts to create rpm packages
Group: System/Packages
Requires: rpm = %{version}
Provides: rpm:%_bindir/rpmbuild
Provides: rpmbuild
# SUSE's build essentials
Requires: binutils
Requires: bzip2
Requires: coreutils
Requires: diffutils
Requires: file
Requires: findutils
Requires: gawk
Requires: gcc
Requires: gettext-tools
Requires: glibc-devel
Requires: glibc-locale
Requires: grep
Requires: gzip
Requires: make
Requires: net-tools
Requires: patch
Requires: perl-base
Requires: sed
Requires: systemd-rpm-macros
Requires: tar
Requires: util-linux
Requires: which
Requires: xz
# drop candidates
Requires: cpio
Requires: file
%description build
If you want to build a rpm, you need this package. It provides rpmbuild
and requires some packages that are usually required
%prep
%setup -q -n rpm-%{version}
rm -rf sqlite
rm -rf beecrypt
tar xjf %{SOURCE10}
tar xjf %{SOURCE11}
ln -s db-4.8.30 db
ln -s beecrypt-4.1.2 beecrypt
chmod -R u+w db/*
rm -f rpmdb/db.h
%patch -P 1 -P 2
%patch -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19
%patch -P 20 -P 21 -P 22 -P 23 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29
%patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39
%patch -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49
%patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59
%patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69
%patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
%patch -P 80 -P 81 -P 82 -P 83 -P 84 -P 85 -P 86 -P 87 -P 88 -P 89
%patch -P 90 -P 91 -P 92
%ifarch aarch64
%patch6464
%endif
cp config.guess config.sub db/dist/
cp config.guess config.sub beecrypt/
#chmod 755 scripts/find-supplements{,.ksyms}
#chmod 755 scripts/find-provides.ksyms scripts/find-requires.ksyms
#chmod 755 scripts/firmware.prov
#chmod 755 scripts/debuginfo.prov
tar -xjvf %{SOURCE1}
tar -xjvf %{SOURCE2}
if [ -s /etc/rpm/suse_macros ]; then
cp -a /etc/rpm/suse_macros %{SOURCE4}
fi
cp -a %{SOURCE4} suse_macros
rm -f m4/libtool.m4
rm -f m4/lt*.m4
%build
export CFLAGS="%{optflags} -ffunction-sections"
export LDFLAGS="-Wl,-Bsymbolic-functions -ffunction-sections"
%ifarch alpha
export CFLAGS="-g -O0 -fno-strict-aliasing -ffunction-sections"
%endif
%ifarch %arm
BUILDTARGET="--build=%{_target_cpu}-suse-linux-gnueabi"
%else
BUILDTARGET="--build=%{_target_cpu}-suse-linux"
%endif
#cp -p /usr/share/gettext/config.rpath .
cp autogen.sh beecrypt
pushd beecrypt
./autogen.sh --disable-dependency-tracking --with-pic --without-python $BUILDTARGET
make %{?_smp_mflags}
popd
export PYTHON=python%{with_python}
autoreconf -fi
sed -i -e 's,{PYTHON_VERSION}mu,{PYTHON_VERSION}mu python${PYTHON_VERSION}m,' configure
./configure --disable-dependency-tracking --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
--libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var --with-lua \
--with-vendor=suse \
--with-selinux --with-internal-beecrypt \
--with-acl --with-cap --enable-shared %{?with_python: --enable-python} $BUILDTARGET
rm po/de.gmo
make %{?_smp_mflags}
make convertdb1
%install
mkdir -p %{buildroot}/usr/lib
mkdir -p %{buildroot}/usr/share/locale
ln -s ../share/locale %{buildroot}/usr/lib/locale
%make_install
install -m 755 convertdb1 %{buildroot}/usr/lib/rpm
install -m 644 db3/db.h %{buildroot}/usr/include/rpm
# remove .la file and the static variant of libpopt
# have to remove the dependency from other .la files as well
for f in %{buildroot}/%{_libdir}/*.la; do
sed -i -e "s,/%_lib/libpopt.la,-lpopt,g" $f
done
mkdir -p %{buildroot}/etc/init.d
install -m 755 %{SOURCE8} %{buildroot}/etc/init.d
mkdir -p %{buildroot}/usr/sbin
ln -sf ../../etc/init.d/rpmconfigcheck %{buildroot}/usr/sbin/rcrpmconfigcheck
cp -a suse_macros %{buildroot}/usr/lib/rpm
mkdir -p %{buildroot}/usr/lib/rpm/suse
ln -s ../suse_macros %{buildroot}/usr/lib/rpm/suse/macros
for d in BUILD RPMS SOURCES SPECS SRPMS BUILDROOT ; do
mkdir -p %{buildroot}/usr/src/packages/$d
chmod 755 %{buildroot}/usr/src/packages/$d
done
for d in %{buildroot}/usr/lib/rpm/platform/*-linux/macros ; do
dd=${d%%-linux/macros}
dd=${dd##*/}
mkdir %{buildroot}/usr/src/packages/RPMS/$dd
chmod 755 %{buildroot}/usr/src/packages/RPMS/$dd
done
mkdir -p %{buildroot}/var/lib/rpm
gzip -9 %{buildroot}/%{_mandir}/man[18]/*.[18]
export RPM_BUILD_ROOT
%ifarch s390x
[ -f scripts/brp-%_arch-linux ] && sh scripts/brp-%_arch-linux
%endif
chmod 755 doc/manual
rm -rf doc/manual/Makefile*
rm -f %{buildroot}/usr/lib/rpmpopt
rm -rf %{buildroot}%{_mandir}/{fr,ja,ko,pl,ru,sk}
rm -f %{buildroot}%{_prefix}/share/locale/de/LC_MESSAGES/rpm.mo
mkdir -p %{buildroot}/var/adm/fillup-templates
install -c -m0644 %{SOURCE9} %{buildroot}/var/adm/fillup-templates/
rm -f %{buildroot}/usr/lib/rpm/cpanflute %{buildroot}/usr/lib/rpm/cpanflute2
install -m 755 %{SOURCE5} %{buildroot}/usr/lib/rpm
install -m 755 %{SOURCE6} %{buildroot}/usr/lib/rpm
install -m 755 scripts/find-supplements{,.ksyms} %{buildroot}/usr/lib/rpm
install -m 755 scripts/firmware.prov %{buildroot}/usr/lib/rpm
install -m 755 scripts/debuginfo.prov %{buildroot}/usr/lib/rpm
rm -f %{buildroot}/usr/lib/locale %{buildroot}/usr/lib/rpmrc
mkdir -p %{buildroot}/etc/rpm
chmod 755 %{buildroot}/etc/rpm
# remove some nonsense or non-working scripts
pushd %{buildroot}/usr/lib/rpm/
for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \
magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \
brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \
brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile
do
rm -f $f
done
for i in /usr/share/automake-*/*; do
if test -f "$i" && test -f "${i##*/}"; then
rm -f "${i##*/}"
fi
done
popd
%ifarch aarch64
install -m 755 config.guess %{buildroot}/usr/lib/rpm
install -m 755 config.sub %{buildroot}/usr/lib/rpm
%endif
gzip -9 CHANGES
rm -rf %{buildroot}/%{_libdir}/python%{py_ver}
rm -f %{buildroot}%{_libdir}/*.la
rm -f %{buildroot}%{_libdir}/rpm-plugins/*.la
sh %{buildroot}/usr/lib/rpm/find-lang.sh %{buildroot} rpm
# On arm the kernel architecture is ignored. Not the best idea, but lets stay compatible with other distros
%ifarch armv7hl armv6hl
# rpm is using the host_cpu as default for the platform, but armv6/7hl is not known by the kernel.
# so we need to enforce the platform here.
echo -n "%{_target_cpu}-suse-linux-gnueabi" > %{buildroot}/etc/rpm/platform
%endif
%post
%{fillup_only -an services}
test -f var/lib/rpm/Packages || rpmdb --initdb
if test -s var/lib/rpm/packages.rpm ; then
echo "converting rpm-3 database to rpm-4 format..."
usr/lib/rpm/convertdb1 var/lib/rpm/packages.rpm
mv -f var/lib/rpm/packages.rpm var/lib/rpm/packages.rpm3
rm -f var/lib/rpm/conflictsindex.rpm var/lib/rpm/fileindex.rpm var/lib/rpm/groupindex.rpm var/lib/rpm/nameindex.rpm var/lib/rpm/providesindex.rpm var/lib/rpm/requiredby.rpm var/lib/rpm/triggerindex.rpm
fi
# delete no longer maintained databases
rm -f var/lib/rpm/Filemd5s var/lib/rpm/Filedigests var/lib/rpm/Requireversion var/lib/rpm/Provideversion
%files -f rpm.lang
%defattr(-,root,root)
%doc CHANGES.gz COPYING GROUPS
%doc doc/manual
%doc RPM-HOWTO RPM-Tips
/etc/rpm
/bin/rpm
/usr/bin/*
%exclude /usr/bin/rpmbuild
/etc/init.d/rpmconfigcheck
/usr/sbin/rcrpmconfigcheck
/usr/lib/rpm
%{_libdir}/rpm-plugins
%{_libdir}/librpm.so.*
%{_libdir}/librpmbuild.so.*
%{_libdir}/librpmio.so.*
%{_libdir}/librpmsign.so.*
%doc %{_mandir}/man[18]/*.[18]*
%dir /var/lib/rpm
%dir %attr(755,root,root) /usr/src/packages/BUILD
%dir %attr(755,root,root) /usr/src/packages/SPECS
%dir %attr(755,root,root) /usr/src/packages/SOURCES
%dir %attr(755,root,root) /usr/src/packages/SRPMS
%dir %attr(755,root,root) /usr/src/packages/RPMS
%dir %attr(755,root,root) /usr/src/packages/BUILDROOT
%dir %attr(755,root,root) /usr/src/packages/RPMS/*
/var/adm/fillup-templates/sysconfig.services-rpm
%files build
%defattr(-,root,root)
/usr/bin/rpmbuild
%files devel
%defattr(644,root,root,755)
/usr/include/rpm
%{_libdir}/librpm.so
%{_libdir}/librpmbuild.so
%{_libdir}/librpmio.so
%{_libdir}/librpmsign.so
%{_libdir}/pkgconfig/rpm.pc
%changelog
++++++ assumeexec.diff ++++++
--- tools/elfdeps.c.orig 2013-01-30 15:33:12.000000000 +0000
+++ tools/elfdeps.c 2013-07-12 12:21:47.000000000 +0000
@@ -15,6 +15,7 @@
int filter_private = 0;
int soname_only = 0;
int fake_soname = 1;
+int assume_exec = 0;
typedef struct elfInfo_s {
Elf *elf;
@@ -235,7 +236,7 @@ static int processFile(const char *fn, i
if (ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC) {
ei->marker = mkmarker(ehdr);
ei->isDSO = (ehdr->e_type == ET_DYN);
- ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
+ ei->isExec = assume_exec || (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
processSections(ei);
}
@@ -292,6 +293,7 @@ int main(int argc, char *argv[])
{ "filter-private", 0, POPT_ARG_VAL, &filter_private, -1, NULL, NULL },
{ "soname-only", 0, POPT_ARG_VAL, &soname_only, -1, NULL, NULL },
{ "no-fake-soname", 0, POPT_ARG_VAL, &fake_soname, 0, NULL, NULL },
+ { "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL },
POPT_AUTOHELP
POPT_TABLEEND
};
++++++ auto-config-update-aarch64.diff ++++++
Index: build/parseBuildInstallClean.c
===================================================================
--- build/parseBuildInstallClean.c.orig
+++ build/parseBuildInstallClean.c
@@ -46,7 +46,21 @@ int parseBuildInstallClean(rpmSpec spec,
} else if (rc < 0) {
goto exit;
}
-
+
+ if (parsePart == PART_BUILD) {
+ char* buf = strdup(
+ "ref=/usr/lib/rpm\n"
+ "for s in guess sub; do\n"
+ " for c in $(find -maxdepth 8 -name \"config.$s\"); do\n"
+ " grep -q config-patches@ $c || continue\n"
+ " grep -q aarch64 $c || install -m 755 $ref/config.$s $c\n"
+ " done\n"
+ "done\n"
+ );
+ appendLineStringBuf(*sbp, buf);
+ free(buf);
+ }
+
while (! (nextPart = isPart(spec->line))) {
appendStringBuf(*sbp, spec->line);
if ((rc = readLine(spec, STRIP_NOTHING)) > 0) {
++++++ autodeps.diff ++++++
--- ./autodeps/linux.prov.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./autodeps/linux.prov 2011-07-18 16:47:39.000000000 +0000
@@ -2,60 +2,72 @@
# This script reads filenames from STDIN and outputs any relevant provides
# information that needs to be included in the package.
+IFS=$'\n'
+filelist=($(cat))
-filelist=`sed "s/['\"]/\\\&/g"`
-
-solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \
- xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1)
+solist=($(printf "%s\n" "${filelist[@]}" | grep "\\.so" | grep -v "^/lib/ld.so" | \
+ tr '\n' '\0' | xargs -0 -r file -L | grep "ELF.*shared object" | \
+ cut -d: -f1))
pythonlist=
tcllist=
+monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
#
# --- Alpha does not mark 64bit dependencies
case `uname -m` in
- alpha*) mark64="" ;;
- *) mark64="()(64bit)" ;;
+ alpha*) mark64=false ;;
+ *) mark64=true ;;
esac
#
# --- Library sonames and weak symbol versions (from glibc).
-for f in $solist; do
- soname=$(objdump -p $f | awk '/SONAME/ {print $2}')
+for f in "${solist[@]}"; do
+ soname=$(objdump -p "$f" | awk '/SONAME/ {print $2}')
+ [ -n "$soname" -a -L "$f" ] && continue
+ [ -z "$soname" ] && soname="${f##*/}"
- lib64=`if file -L $f 2>/dev/null | \
- grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
- if [ "$soname" != "" ]; then
- if [ ! -L $f ]; then
- echo $soname$lib64
- objdump -p $f | awk '
- BEGIN { START=0 ; }
- /Version definitions:/ { START=1; }
- /^[0-9]/ && (START==1) { print $4; }
- /^$/ { START=0; }
- ' | \
- grep -v $soname | \
- while read symbol ; do
- echo "$soname($symbol)`echo $lib64 | sed 's/()//'`"
- done
- fi
+ if $mark64 && file -L "$f" 2>/dev/null | grep "ELF 64-bit" >/dev/null; then
+ lib64="()(64bit)" slib64="(64bit)"
else
- echo ${f##*/}$lib64
+ lib64= slib64=
fi
+ echo "$soname$lib64"
+ objdump -p "$f" | awk '
+ BEGIN { START=0 ; }
+ /Version definitions:/ { START=1; }
+ /^[0-9]/ && (START==1) { print $4; }
+ /^$/ { START=0; }
+ ' | \
+ while read symbol ; do
+ echo "$soname($symbol)$slib64"
+ done
done | sort -u
#
# --- Perl modules.
[ -x /usr/lib/rpm/perl.prov ] &&
- echo $filelist | tr '[:blank:]' \\n | grep '\.pm$' | /usr/lib/rpm/perl.prov | sort -u
+ printf "%s\n" "${filelist[@]}" | grep '\.pm$' | /usr/lib/rpm/perl.prov | sort -u
#
# --- Python modules.
[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] &&
- echo $pythonlist | tr '[:blank:]' \\n | /usr/lib/rpm/python.prov | sort -u
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.prov | sort -u
#
# --- Tcl modules.
[ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] &&
- echo $tcllist | tr '[:blank:]' \\n | /usr/lib/rpm/tcl.prov | sort -u
+ printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.prov | sort -u
+
+#
+# --- Mono exes/dlls
+: ${MONO_PREFIX=/usr}
+if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
+ printf "%s\n" "${monolist[@]}" | MONO_PATH=$MONO_PREFIX/lib${MONO_PATH:+:$MONO_PATH} prefix=$MONO_PREFIX $MONO_PREFIX/bin/mono-find-provides || echo "WARNING: MONO RPM PROVIDES WERE NOT GENERATED FOR THIS BUILD!!" 1>&2
+fi
+
+#
+# --- Kernel module exported symbols
+[ -x /usr/lib/rpm/find-provides.ksyms ] &&
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
exit 0
--- ./autodeps/linux.req.orig 2011-07-15 09:32:41.000000000 +0000
+++ ./autodeps/linux.req 2011-07-18 16:51:24.000000000 +0000
@@ -18,20 +18,21 @@ fi
#
# --- Grab the file manifest and classify files.
-#filelist=`sed "s/['\"]/\\\&/g"`
-filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
-exelist=`echo $filelist | xargs -r file | \
+#filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
+filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
+exelist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
grep -Ev ":.* (commands|script)[, ]" | \
- grep ":.*executable" | cut -d: -f1`
-scriptlist=`echo $filelist | xargs -r file | \
- grep -E ":.* (commands|script)[, ]" | cut -d: -f1`
-liblist=`echo $filelist | xargs -r file | \
- grep ":.*shared object" | cut -d : -f1`
+ grep ":.*executable" | cut -d: -f1))
+scriptlist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
+ grep -E ":.* (commands|script)[, ]" | cut -d: -f1))
+liblist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
+ grep ":.*shared object" | cut -d : -f1))
-interplist=
-perllist=
-pythonlist=
-tcllist=
+interplist=()
+perllist=()
+pythonlist=()
+tcllist=()
+monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)(\\.config)?\$"))
#
# --- Alpha does not mark 64bit dependencies
@@ -43,12 +44,12 @@ esac
if [ "$needed" -eq 0 ]; then
#
# --- Executable dependency sonames.
- for f in $exelist; do
- [ -r $f -a -x $f ] || continue
- lib64=`if file -L $f 2>/dev/null | \
+ for f in "${exelist[@]}"; do
+ [ -r "$f" -a -x "$f" ] || continue
+ lib64=`if file -L "$f" 2>/dev/null | \
grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
- ldd $f | awk '/=>/ {
- if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) {
+ ldd "$f" | awk '/=>/ {
+ if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /linux-gate.so/) {
gsub(/'\''"/,"\\&",$1);
printf "%s'$lib64'\n", $1
}
@@ -57,12 +58,12 @@ if [ "$needed" -eq 0 ]; then
#
# --- Library dependency sonames.
- for f in $liblist; do
- [ -r $f ] || continue
- lib64=`if file -L $f 2>/dev/null | \
+ for f in "${liblist[@]}"; do
+ [ -r "$f" ] || continue
+ lib64=`if file -L "$f" 2>/dev/null | \
grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
- ldd $f | awk '/=>/ {
- if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) {
+ ldd "$f" | awk '/=>/ {
+ if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /linux-gate.so/) {
gsub(/'\''"/,"\\&",$1);
printf "%s'$lib64'\n", $1
}
@@ -72,30 +73,30 @@ fi
#
# --- Script interpreters.
-for f in $scriptlist; do
- [ -r $f -a -x $f ] || continue
- interp=`head -n 1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1`
- interplist="$interplist $interp"
+for f in "${scriptlist[@]}"; do
+ [ -r "$f" -a -x "$f" ] || continue
+ interp=`head -n 1 "$f" | sed -ne 's/^\#\![ ]*//p' | cut -d" " -f1`
+ interplist=("${interplist[@]}" "$interp")
case $interp in
- */perl) perllist="$perllist $f" ;;
+ */perl) perllist=("${perllist[@]}" "$f") ;;
esac
done
-[ -n "$interplist" ] && { echo "$interplist" | tr '[:blank:]' \\n | sort -u ; }
+[ -n "$interplist" ] && { printf "%s\n" "${interplist[@]}" | sort -u ; }
#
# --- Add perl module files to perllist.
-for f in $filelist; do
- [ -r $f -a "${f%.pm}" != "${f}" ] && perllist="$perllist $f"
+for f in "${filelist[@]}"; do
+ [ -r "$f" -a "${f%.pm}" != "${f}" ] && perllist=("${perllist[@]}" "$f")
done
#
# --- Weak symbol versions (from glibc).
[ -n "$mark64" ] && mark64="(64bit)"
-for f in $liblist $exelist ; do
- [ -r $f ] || continue
- lib64=`if file -L $f 2>/dev/null | \
+for f in "${liblist[@]}" "${exelist[@]}" ; do
+ [ -r "$f" ] || continue
+ lib64=`if file -L "$f" 2>/dev/null | \
grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
- objdump -p $f | awk 'BEGIN { START=0; LIBNAME=""; needed='$needed'; }
+ objdump -p "$f" | awk 'BEGIN { START=0; LIBNAME=""; needed='$needed'; }
/^$/ { START=0; }
/^Dynamic Section:$/ { START=1; }
(START==1) && /NEEDED/ {
@@ -112,7 +113,7 @@ for f in $liblist $exelist ; do
sub(/:/, "", $3);
LIBNAME=$3;
}
- (START==2) && (LIBNAME!="") && ($4!="") && (($4~/^GLIBC_*/) || ($4~/^GCC_*/)) {
+ (START==2) && (LIBNAME!="") && ($4!="") {
print LIBNAME "(" $4 ")'$lib64'";
}
'
@@ -120,17 +121,29 @@ done | sort -u
#
# --- Perl modules.
-[ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \
- echo $perllist | tr '[:blank:]' \\n | /usr/lib/rpm/perl.req | sort -u
+#[ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \
+# printf "%s\n" "${perllist[@]}" | /usr/lib/rpm/perl.req | sort -u
#
# --- Python modules.
[ -x /usr/lib/rpm/python.req -a -n "$pythonlist" ] && \
- echo $pythonlist | tr '[:blank:]' \\n | /usr/lib/rpm/python.req | sort -u
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.req | sort -u
#
# --- Tcl modules.
[ -x /usr/lib/rpm/tcl.req -a -n "$tcllist" ] && \
- echo $tcllist | tr '[:blank:]' \\n | /usr/lib/rpm/tcl.req | sort -u
+ printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.req | sort -u
+
+#
+# --- Mono exes/dlls
+: ${MONO_PREFIX=/usr}
+if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
+ printf "%s\n" "${monolist[@]}" | MONO_PATH=$MONO_PREFIX/lib${MONO_PATH:+:$MONO_PATH} prefix=$MONO_PREFIX $MONO_PREFIX/bin/mono-find-requires || echo "WARNING: MONO RPM REQUIRES WERE NOT GENERATED FOR THIS BUILD!!" 1>&2
+fi
+
+#
+# --- Kernel module imported symbols
+[ -x ${0%/*}/find-requires.ksyms ] &&
+ printf "%s\n" "${filelist[@]}" | ${0%/*}/find-requires.ksyms "$@"
exit 0
++++++ baselibs.conf ++++++
rpm
arch ppc package rpm-devel
arch sparcv9 package rpm-devel
++++++ beecrypt-4.1.2.diff ++++++
--- beecrypt-4.1.2/Makefile.am.orig 2004-12-22 07:06:31.000000000 +0000
+++ beecrypt-4.1.2/Makefile.am 2006-11-24 14:08:27.000000000 +0000
@@ -49,7 +49,7 @@ libaltdir=$(prefix)/lib@LIBALT@
libalt_LTLIBRARIES = libbeecrypt.la
-libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhaes.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha256.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c rsa.c rsakp.c rsapk.c sha1.c sha256.c sha384.c sha512.c sha_k.c timestamp.c cppglue.cxx
+libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhaes.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha256.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c rsa.c rsakp.c rsapk.c sha1.c sha256.c sha384.c sha512.c sha_k.c timestamp.c
libbeecrypt_la_DEPENDENCIES = $(BEECRYPT_OBJECTS)
libbeecrypt_la_LIBADD = aesopt.lo blowfishopt.lo mpopt.lo sha1opt.lo
libbeecrypt_la_LDFLAGS = -no-undefined -version-info $(LIBBEECRYPT_LT_CURRENT):$(LIBBEECRYPT_LT_REVISION):$(LIBBEECRYPT_LT_AGE)
@@ -62,5 +62,11 @@ EXTRA_DIST = BENCHMARKS BUGS CONTRIBUTOR
DISTCLEANFILES = mpopt.s aesopt.s blowfishopt.s sha1opt.s
+BUILT_SOURCES = listobjs
+
+.PHONY: listobjs
+listobjs:
+ @echo $(libbeecrypt_la_OBJECTS) $(libbeecrypt_la_LIBADD) > $@
+
bench:
(cd tests && $(MAKE) $(AM_MAKEFLAGS) bench)
--- beecrypt-4.1.2/base64.c.orig 2004-12-19 20:21:04.000000000 +0000
+++ beecrypt-4.1.2/base64.c 2006-11-24 14:08:27.000000000 +0000
@@ -253,7 +253,6 @@ char* b64encode(const void* data, size_t
unsigned c;
if (s == NULL) return NULL;
- if (*s == '\0') return calloc(1, sizeof(*t));
if (ns == 0) ns = strlen((const char*) s);
nt = ((ns + 2) / 3) * 4;
--- beecrypt-4.1.2/c++/io/DataOutputStream.cxx.orig 2004-11-04 12:38:15.000000000 +0000
+++ beecrypt-4.1.2/c++/io/DataOutputStream.cxx 2006-11-24 14:09:35.000000000 +0000
@@ -126,8 +126,8 @@ void DataOutputStream::writeLong(javalon
void DataOutputStream::writeChar(javaint v) throw (IOException)
{
_lock.lock();
- out.write((v >> 8) && 0xff);
- out.write((v ) && 0xff);
+ out.write((v >> 8) & 0xff);
+ out.write((v ) & 0xff);
written += 2;
_lock.unlock();
}
++++++ beedigest.diff ++++++
--- rpmio/digest.h.orig 2013-08-27 14:26:38.260872601 +0000
+++ rpmio/digest.h 2013-08-27 14:26:47.404872585 +0000
@@ -5,8 +5,7 @@
typedef struct pgpDigAlg_s * pgpDigAlg;
-typedef int (*setmpifunc)(pgpDigAlg digp,
- int num, const uint8_t *p, const uint8_t *pend);
+typedef int (*setmpifunc)(pgpDigAlg digp, int num, const uint8_t *p);
typedef int (*verifyfunc)(pgpDigAlg pgpkey, pgpDigAlg pgpsig,
uint8_t *hash, size_t hashlen, int hash_algo);
typedef void (*freefunc)(pgpDigAlg digp);
--- rpmio/digest_beecrypt.c.orig 2013-08-27 14:26:38.260872601 +0000
+++ rpmio/digest_beecrypt.c 2013-08-29 15:45:42.754558355 +0000
@@ -198,66 +198,6 @@ int rpmDigestFinal(DIGEST_CTX ctx, void
return 0;
}
-/**************************** helpers ************************************/
-
-static inline char * pgpHexCvt(char *t, const byte *s, int nbytes)
-{
- static char hex[] = "0123456789abcdef";
- while (nbytes-- > 0) {
- unsigned int i;
- i = *s++;
- *t++ = hex[ (i >> 4) & 0xf ];
- *t++ = hex[ (i ) & 0xf ];
- }
- *t = '\0';
- return t;
-}
-
-static const char * pgpMpiHex(const byte *p, const byte *pend)
-{
- static char prbuf[2048];
- char *t = prbuf;
- int nbytes = pgpMpiLen(p) - 2;
- if (nbytes > 1024 || nbytes > pend - (p + 2))
- return NULL;
- t = pgpHexCvt(t, p+2, nbytes);
- return prbuf;
-}
-
-static int pgpHexSet(int lbits, mpnumber * mpn, const byte * p, const byte * pend)
-{
- unsigned int mbits = pgpMpiBits(p);
- unsigned int nbits;
- unsigned int nbytes;
- char *t;
- unsigned int ix;
-
- nbits = (lbits > mbits ? lbits : mbits);
- nbytes = ((nbits + 7) >> 3);
- t = xmalloc(2*nbytes+1);
- ix = 2 * ((nbits - mbits) >> 3);
-
- if (ix > 0) memset(t, (int)'0', ix);
- strcpy(t+ix, pgpMpiHex(p, pend));
- (void) mpnsethex(mpn, t);
- t = _free(t);
- return 0;
-}
-
-static void pgpFreeSigRSADSA(pgpDigAlg sa)
-{
- if (sa->data)
- free(sa->data);
- sa->data = 0;
-}
-
-static void pgpFreeKeyRSADSA(pgpDigAlg sa)
-{
- if (sa->data)
- free(sa->data);
- sa->data = 0;
-}
-
/****************************** RSA **************************************/
@@ -267,45 +207,73 @@ struct pgpDigSigRSA_s {
struct pgpDigKeyRSA_s {
rsapk rsa_pk;
+ int nbytes;
};
-static int pgpSetSigMpiRSA(pgpDigAlg pgpsig, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetSigMpiRSA(pgpDigAlg pgpsig, int num, const uint8_t *p)
{
struct pgpDigSigRSA_s *sig = pgpsig->data;
+ int mlen = pgpMpiLen(p) - 2;
int rc = 1;
+ if (!sig)
+ sig = pgpsig->data = xcalloc(1, sizeof(*sig));
+
switch (num) {
case 0:
- sig = pgpsig->data = xcalloc(1, sizeof(*sig));
- (void) mpnsethex(&sig->c, pgpMpiHex(p, pend));
- rc = 0;
+ if (!mpnsetbin(&sig->c, p + 2, mlen))
+ rc = 0;
break;
}
return rc;
}
-static int pgpSetKeyMpiRSA(pgpDigAlg pgpkey, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetKeyMpiRSA(pgpDigAlg pgpkey, int num, const uint8_t *p)
{
struct pgpDigKeyRSA_s *key = pgpkey->data;
+ int mlen = pgpMpiLen(p) - 2;
int rc = 1;
if (!key)
key = pgpkey->data = xcalloc(1, sizeof(*key));
+
switch (num) {
case 0:
- (void) mpbsethex(&key->rsa_pk.n, pgpMpiHex(p, pend));
- rc = 0;
+ key->nbytes = mlen;
+ if (!mpbsetbin(&key->rsa_pk.n, p + 2, mlen))
+ rc = 0;
break;
case 1:
- (void) mpnsethex(&key->rsa_pk.e, pgpMpiHex(p, pend));
- rc = 0;
+ if (!mpnsetbin(&key->rsa_pk.e, p + 2, mlen))
+ rc = 0;
break;
}
return rc;
}
+static int pkcs1pad(mpnumber *rsahm, int nbytes, const char *prefix, uint8_t *hash, size_t hashlen)
+{
+ int datalen = strlen(prefix) / 2 + hashlen;
+ byte *buf, *bp;
+ int rc = 1;
+
+ if (nbytes < 4 + datalen)
+ return 1;
+ buf = xmalloc(nbytes);
+ memset(buf, 0xff, nbytes);
+ buf[0] = 0x00;
+ buf[1] = 0x01;
+ bp = buf + nbytes - datalen;
+ bp[-1] = 0;
+ for (; *prefix; prefix += 2)
+ *bp++ = (rnibble(prefix[0]) << 4) | rnibble(prefix[1]);
+ memcpy(bp, hash, hashlen);
+ if (!mpnsetbin(rsahm, buf, nbytes))
+ rc = 0;
+ buf = _free(buf);
+ return rc;
+}
+
static int pgpVerifySigRSA(pgpDigAlg pgpkey, pgpDigAlg pgpsig, uint8_t *hash, size_t hashlen, int hash_algo)
{
struct pgpDigKeyRSA_s *key = pgpkey->data;
@@ -340,28 +308,10 @@ static int pgpVerifySigRSA(pgpDigAlg pgp
return 1;
}
- /* Generate RSA modulus parameter. */
- { unsigned int nbits = MP_WORDS_TO_BITS(sig->c.size);
- unsigned int nb = (nbits + 7) >> 3;
- byte *buf, *bp;
+ memset(&rsahm, 0, sizeof(rsahm));
+ if (pkcs1pad(&rsahm, key->nbytes, prefix, hash, hashlen) != 0)
+ return 1;
- if (nb < 3)
- return 1;
- buf = xmalloc(nb);
- memset(buf, 0xff, nb);
- buf[0] = 0x00;
- buf[1] = 0x01;
- bp = buf + nb - strlen(prefix)/2 - hashlen - 1;
- if (bp < buf)
- return 1;
- *bp++ = 0;
- for (; *prefix; prefix += 2)
- *bp++ = (rnibble(prefix[0]) << 4) | rnibble(prefix[1]);
- memcpy(bp, hash, hashlen);
- mpnzero(&rsahm);
- (void) mpnsetbin(&rsahm, buf, nb);
- buf = _free(buf);
- }
#if HAVE_BEECRYPT_API_H
rc = rsavrfy(&key->rsa_pk.n, &key->rsa_pk.e, &sig->c, &rsahm) == 1 ? 0 : 1;
#else
@@ -371,6 +321,25 @@ static int pgpVerifySigRSA(pgpDigAlg pgp
return rc;
}
+static void pgpFreeSigRSA(pgpDigAlg pgpsig)
+{
+ struct pgpDigSigRSA_s *sig = pgpsig->data;
+ if (sig) {
+ mpnfree(&sig->c);
+ pgpsig->data = _free(sig);
+ }
+}
+
+static void pgpFreeKeyRSA(pgpDigAlg pgpkey)
+{
+ struct pgpDigKeyRSA_s *key = pgpkey->data;
+ if (key) {
+ mpbfree(&key->rsa_pk.n);
+ mpnfree(&key->rsa_pk.e);
+ pgpkey->data = _free(key);
+ }
+}
+
/****************************** DSA **************************************/
@@ -384,30 +353,35 @@ struct pgpDigKeyDSA_s {
mpbarrett q;
mpnumber g;
mpnumber y;
+ int qbytes;
};
-static int pgpSetSigMpiDSA(pgpDigAlg pgpsig, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetSigMpiDSA(pgpDigAlg pgpsig, int num, const uint8_t *p)
{
struct pgpDigSigDSA_s *sig = pgpsig->data;
+ int mlen = pgpMpiLen(p) - 2;
int rc = 1;
+ if (!sig)
+ sig = pgpsig->data = xcalloc(1, sizeof(*sig));
+
switch (num) {
case 0:
- sig = pgpsig->data = xcalloc(1, sizeof(*sig));
- rc = pgpHexSet(160, &sig->r, p, pend);
+ if (!mpnsetbin(&sig->r, p + 2, mlen))
+ rc = 0;
break;
case 1:
- rc = pgpHexSet(160, &sig->s, p, pend);
+ if (!mpnsetbin(&sig->s, p + 2, mlen))
+ rc = 0;
break;
}
return rc;
}
-static int pgpSetKeyMpiDSA(pgpDigAlg pgpkey, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetKeyMpiDSA(pgpDigAlg pgpkey, int num, const uint8_t *p)
{
struct pgpDigKeyDSA_s *key = pgpkey->data;
+ int mlen = pgpMpiLen(p) - 2;
int rc = 1;
if (!key)
@@ -415,20 +389,21 @@ static int pgpSetKeyMpiDSA(pgpDigAlg pgp
switch (num) {
case 0:
- mpbsethex(&key->p, pgpMpiHex(p, pend));
- rc = 0;
+ if (!mpbsetbin(&key->p, p + 2, mlen))
+ rc = 0;
break;
case 1:
- mpbsethex(&key->q, pgpMpiHex(p, pend));
- rc = 0;
+ key->qbytes = mlen;
+ if (!mpbsetbin(&key->q, p + 2, mlen))
+ rc = 0;
break;
case 2:
- mpnsethex(&key->g, pgpMpiHex(p, pend));
- rc = 0;
+ if (!mpnsetbin(&key->g, p + 2, mlen))
+ rc = 0;
break;
case 3:
- mpnsethex(&key->y, pgpMpiHex(p, pend));
- rc = 0;
+ if (!mpnsetbin(&key->y, p + 2, mlen))
+ rc = 0;
break;
}
return rc;
@@ -441,17 +416,41 @@ static int pgpVerifySigDSA(pgpDigAlg pgp
mpnumber hm;
int rc = 1;
- if (sig && key) {
+ if (sig && key && hashlen >= key->qbytes) {
mpnzero(&hm);
- mpnsetbin(&hm, hash, hashlen);
+ mpnsetbin(&hm, hash, key->qbytes);
rc = dsavrfy(&key->p, &key->q, &key->g, &hm, &key->y, &sig->r, &sig->s) == 1 ? 0 : 1;
mpnfree(&hm);
}
return rc;
}
-static int pgpSetMpiNULL(pgpDigAlg pgpkey, int num,
- const uint8_t *p, const uint8_t *pend)
+static void pgpFreeSigDSA(pgpDigAlg pgpsig)
+{
+ struct pgpDigSigDSA_s *sig = pgpsig->data;
+ if (sig) {
+ mpnfree(&sig->r);
+ mpnfree(&sig->s);
+ pgpsig->data = _free(sig);
+ }
+}
+
+static void pgpFreeKeyDSA(pgpDigAlg pgpkey)
+{
+ struct pgpDigKeyDSA_s *key = pgpkey->data;
+ if (key) {
+ mpbfree(&key->p);
+ mpbfree(&key->q);
+ mpnfree(&key->g);
+ mpnfree(&key->y);
+ pgpkey->data = _free(key);
+ }
+}
+
+
+/****************************** NULL **************************************/
+
+static int pgpSetMpiNULL(pgpDigAlg pgpkey, int num, const uint8_t *p)
{
return 1;
}
@@ -469,12 +468,12 @@ pgpDigAlg pgpPubkeyNew(int algo)
switch (algo) {
case PGPPUBKEYALGO_RSA:
ka->setmpi = pgpSetKeyMpiRSA;
- ka->free = pgpFreeKeyRSADSA;
+ ka->free = pgpFreeKeyRSA;
ka->mpis = 2;
break;
case PGPPUBKEYALGO_DSA:
ka->setmpi = pgpSetKeyMpiDSA;
- ka->free = pgpFreeKeyRSADSA;
+ ka->free = pgpFreeKeyDSA;
ka->mpis = 4;
break;
default:
@@ -495,13 +494,13 @@ pgpDigAlg pgpSignatureNew(int algo)
switch (algo) {
case PGPPUBKEYALGO_RSA:
sa->setmpi = pgpSetSigMpiRSA;
- sa->free = pgpFreeSigRSADSA;
+ sa->free = pgpFreeSigRSA;
sa->verify = pgpVerifySigRSA;
sa->mpis = 1;
break;
case PGPPUBKEYALGO_DSA:
sa->setmpi = pgpSetSigMpiDSA;
- sa->free = pgpFreeSigRSADSA;
+ sa->free = pgpFreeSigDSA;
sa->verify = pgpVerifySigDSA;
sa->mpis = 2;
break;
--- rpmio/digest_nss.c.orig 2013-08-27 14:26:38.260872601 +0000
+++ rpmio/digest_nss.c 2013-08-27 14:26:47.405872585 +0000
@@ -224,8 +224,7 @@ static SECOidTag getHashAlg(unsigned int
return SEC_OID_UNKNOWN;
}
-static int pgpMpiSet(unsigned int lbits, uint8_t *dest,
- const uint8_t * p, const uint8_t * pend)
+static int pgpMpiSet(unsigned int lbits, uint8_t *dest, const uint8_t * p)
{
unsigned int mbits = pgpMpiBits(p);
unsigned int nbits;
@@ -233,9 +232,6 @@ static int pgpMpiSet(unsigned int lbits,
uint8_t *t = dest;
unsigned int ix;
- if ((p + ((mbits+7) >> 3)) > pend)
- return 1;
-
if (mbits > lbits)
return 1;
@@ -250,14 +246,10 @@ static int pgpMpiSet(unsigned int lbits,
return 0;
}
-static SECItem *pgpMpiItem(PRArenaPool *arena, SECItem *item,
- const uint8_t *p, const uint8_t *pend)
+static SECItem *pgpMpiItem(PRArenaPool *arena, SECItem *item, const uint8_t *p)
{
size_t nbytes = pgpMpiLen(p)-2;
- if (p + nbytes + 2 > pend)
- return NULL;
-
if (item == NULL) {
if ((item=SECITEM_AllocItem(arena, item, nbytes)) == NULL)
return item;
@@ -313,8 +305,7 @@ static SECKEYPublicKey *pgpNewPublicKey(
#define DSA1_Q_BITS DSA_Q_BITS
#endif
-static int pgpSetSigMpiDSA(pgpDigAlg pgpsig, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetSigMpiDSA(pgpDigAlg pgpsig, int num, const uint8_t *p)
{
SECItem *sig = pgpsig->data;
int lbits = DSA1_Q_BITS;
@@ -325,11 +316,11 @@ static int pgpSetSigMpiDSA(pgpDigAlg pgp
sig = pgpsig->data = SECITEM_AllocItem(NULL, NULL, DSA1_SIGNATURE_LEN);
if (sig) {
memset(sig->data, 0, DSA1_SIGNATURE_LEN);
- rc = pgpMpiSet(lbits, sig->data, p, pend);
+ rc = pgpMpiSet(lbits, sig->data, p);
}
break;
case 1:
- if (sig && pgpMpiSet(lbits, sig->data+DSA1_SUBPRIME_LEN, p, pend) == 0) {
+ if (sig && pgpMpiSet(lbits, sig->data+DSA1_SUBPRIME_LEN, p) == 0) {
SECItem *signew = SECITEM_AllocItem(NULL, NULL, 0);
if (signew && DSAU_EncodeDerSig(signew, sig) == SECSuccess) {
SECITEM_FreeItem(sig, PR_TRUE);
@@ -343,8 +334,7 @@ static int pgpSetSigMpiDSA(pgpDigAlg pgp
return rc;
}
-static int pgpSetKeyMpiDSA(pgpDigAlg pgpkey, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetKeyMpiDSA(pgpDigAlg pgpkey, int num, const uint8_t *p)
{
SECItem *mpi = NULL;
SECKEYPublicKey *key = pgpkey->data;
@@ -355,16 +345,16 @@ static int pgpSetKeyMpiDSA(pgpDigAlg pgp
if (key) {
switch (num) {
case 0:
- mpi = pgpMpiItem(key->arena, &key->u.dsa.params.prime, p, pend);
+ mpi = pgpMpiItem(key->arena, &key->u.dsa.params.prime, p);
break;
case 1:
- mpi = pgpMpiItem(key->arena, &key->u.dsa.params.subPrime, p, pend);
+ mpi = pgpMpiItem(key->arena, &key->u.dsa.params.subPrime, p);
break;
case 2:
- mpi = pgpMpiItem(key->arena, &key->u.dsa.params.base, p, pend);
+ mpi = pgpMpiItem(key->arena, &key->u.dsa.params.base, p);
break;
case 3:
- mpi = pgpMpiItem(key->arena, &key->u.dsa.publicValue, p, pend);
+ mpi = pgpMpiItem(key->arena, &key->u.dsa.publicValue, p);
break;
}
}
@@ -389,21 +379,19 @@ static int pgpVerifySigDSA(pgpDigAlg pgp
return (rc != SECSuccess);
}
-static int pgpSetSigMpiRSA(pgpDigAlg pgpsig, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetSigMpiRSA(pgpDigAlg pgpsig, int num, const uint8_t *p)
{
SECItem *sigitem = NULL;
if (num == 0) {
- sigitem = pgpMpiItem(NULL, pgpsig->data, p, pend);
+ sigitem = pgpMpiItem(NULL, pgpsig->data, p);
if (sigitem)
pgpsig->data = sigitem;
}
return (sigitem == NULL);
}
-static int pgpSetKeyMpiRSA(pgpDigAlg pgpkey, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetKeyMpiRSA(pgpDigAlg pgpkey, int num, const uint8_t *p)
{
SECItem *kitem = NULL;
SECKEYPublicKey *key = pgpkey->data;
@@ -414,10 +402,10 @@ static int pgpSetKeyMpiRSA(pgpDigAlg pgp
if (key) {
switch (num) {
case 0:
- kitem = pgpMpiItem(key->arena, &key->u.rsa.modulus, p, pend);
+ kitem = pgpMpiItem(key->arena, &key->u.rsa.modulus, p);
break;
case 1:
- kitem = pgpMpiItem(key->arena, &key->u.rsa.publicExponent, p, pend);
+ kitem = pgpMpiItem(key->arena, &key->u.rsa.publicExponent, p);
break;
}
}
@@ -472,8 +460,7 @@ static void pgpFreeKeyRSADSA(pgpDigAlg k
ka->data = NULL;
}
-static int pgpSetMpiNULL(pgpDigAlg pgpkey, int num,
- const uint8_t *p, const uint8_t *pend)
+static int pgpSetMpiNULL(pgpDigAlg pgpkey, int num, const uint8_t *p)
{
return 1;
}
--- rpmio/rpmpgp.c.orig 2013-08-27 14:26:38.260872601 +0000
+++ rpmio/rpmpgp.c 2013-08-29 15:48:33.394558053 +0000
@@ -499,11 +499,15 @@ static int pgpPrtSigParams(pgpTag tag, u
int i;
pgpDigAlg sigalg = pgpSignatureNew(pubkey_algo);
- for (i = 0; p < pend && i < sigalg->mpis; i++, p += pgpMpiLen(p)) {
+ for (i = 0; i < sigalg->mpis && p + 2 <= pend; i++) {
+ int mpil = pgpMpiLen(p);
+ if (p + mpil > pend)
+ break;
if (sigtype == PGPSIGTYPE_BINARY || sigtype == PGPSIGTYPE_TEXT) {
- if (sigalg->setmpi(sigalg, i, p, pend))
+ if (sigalg->setmpi(sigalg, i, p))
break;
}
+ p += mpil;
}
/* Does the size and number of MPI's match our expectations? */
@@ -650,9 +654,13 @@ static int pgpPrtPubkeyParams(uint8_t pu
int i;
pgpDigAlg keyalg = pgpPubkeyNew(pubkey_algo);
- for (i = 0; p < pend && i < keyalg->mpis; i++, p += pgpMpiLen(p)) {
- if (keyalg->setmpi(keyalg, i, p, pend))
+ for (i = 0; i < keyalg->mpis && p + 2 <= pend; i++) {
+ int mpil = pgpMpiLen(p);
+ if (p + mpil > pend)
+ break;
+ if (keyalg->setmpi(keyalg, i, p))
break;
+ p += mpil;
}
/* Does the size and number of MPI's match our expectations? */
++++++ brp-compress-no-img.patch ++++++
--- scripts/brp-compress 2013-09-02 19:00:09.000000000 +0200
+++ scripts/brp-compress 2013-09-02 19:03:12.000000000 +0200
@@ -47,6 +47,7 @@ do
find $d -type f ! -name dir | while read f
do
[ -f "$f" ] || continue
+ case $(file "$f") in *"image data"*) continue;; esac
case "$f" in
*.gz|*.Z) gunzip "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;;
++++++ brp.diff ++++++
--- ./scripts/Makefile.am.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./scripts/Makefile.am 2012-06-01 11:39:13.000000000 +0000
@@ -25,6 +25,7 @@ EXTRA_DIST = \
rpmconfig_SCRIPTS = \
brp-compress brp-python-bytecompile brp-java-gcjcompile \
brp-strip brp-strip-comment-note brp-python-hardlink \
+ brp-suse \
brp-strip-shared brp-strip-static-archive \
check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \
--- ./scripts/brp-strip-comment-note.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./scripts/brp-strip-comment-note 2012-06-01 11:39:13.000000000 +0000
@@ -16,6 +16,8 @@ esac
# for already stripped elf files in the build root
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
+ grep -v ' shared object,' | \
+ grep -v '/lib/modules/' | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do
note="-R .note"
if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \
--- ./scripts/brp-strip.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./scripts/brp-strip 2012-06-01 11:39:13.000000000 +0000
@@ -15,6 +15,7 @@ esac
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
grep -v ' shared object,' | \
+ grep -v '/lib/modules/' | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
$STRIP -g "$f" || :
done
--- ./scripts/brp-suse.orig 2012-06-01 11:39:13.000000000 +0000
+++ ./scripts/brp-suse 2012-06-01 11:39:13.000000000 +0000
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+# If using normal root, avoid changing anything:
+if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
+ exit 0
+fi
+
+for script in /usr/lib/rpm/brp-suse.d/brp*; do
+ if test -x "$script"; then
+ echo "calling $script"
+ $script || exit 1
+ fi
+done
++++++ brpcompress.diff ++++++
--- ./scripts/brp-compress.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./scripts/brp-compress 2011-05-11 14:44:21.000000000 +0000
@@ -5,51 +5,78 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD
exit 0
fi
+LC_ALL=
+LANG=
+LC_TIME=POSIX
+
cd "$RPM_BUILD_ROOT"
# Compress man pages
COMPRESS="gzip -9 -n"
COMPRESS_EXT=.gz
+function check_for_hard_link
+{
+ dir=$1
+ b=$2
+
+ inode=`ls -i $b | awk '{ print $1 }'`
+ others=`find $dir -type f -inum $inode`
+ for afile in $others ; do
+ [ "$afile" != "$b" ] && rm -f "$afile"
+ done
+
+ case $b in
+ *.Z|*.gz) gunzip $b ;;
+ *.bz2) bunzip2 $b ;;
+ *.xz|*.lzma) unxz $b ;;
+ esac
+
+ type=${b##*.}
+ for afile in $others ; do
+ [ "${afile%.$type}" != "${b%.$type}" ] && ln ${b%.$type} ${afile%.$type}
+ done
+}
+
for d in ./usr/man/man* ./usr/man/*/man* ./usr/info \
./usr/share/man/man* ./usr/share/man/*/man* ./usr/share/info \
./usr/kerberos/man ./usr/X11R6/man/man* ./usr/lib/perl5/man/man* \
./usr/share/doc/*/man/man* ./usr/lib/*/man/man*
do
[ -d $d ] || continue
- for f in `find $d -type f ! -name dir`
+ find $d -type f ! -name dir | while read f
do
[ -f "$f" ] || continue
case "$f" in
- *.gz|*.Z) gunzip -f $f; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;;
- *.bz2) bunzip2 -f $f; b=`echo $f | sed -e 's/\.bz2$//'`;;
- *.xz|*.lzma) unxz -f $f; b=`echo $f | sed -e 's/\.\(xz\|lzma\)$//'`;;
- *) b=$f;;
+ *.gz|*.Z) gunzip "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;;
+ *.bz2) bunzip2 "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.bz2$//'`;;
+ *.xz|*.lzma) unxz "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.\(xz\|lzma\)$//'`;;
+ *) b="$f";;
esac
- $COMPRESS $b </dev/null 2>/dev/null || {
+ $COMPRESS "$b" </dev/null 2>/dev/null || {
inode=`ls -i $b | awk '{ print $1 }'`
others=`find $d -type f -inum $inode`
if [ -n "$others" ]; then
for afile in $others ; do
- [ "$afile" != "$b" ] && rm -f $afile
+ [ "$afile" != "$b" ] && rm -f "$afile"
done
- $COMPRESS -f $b
+ $COMPRESS -f "$b"
for afile in $others ; do
- [ "$afile" != "$b" ] && ln $b$COMPRESS_EXT $afile$COMPRESS_EXT
+ [ "$afile" != "$b" ] && ln "$b$COMPRESS_EXT" "$afile$COMPRESS_EXT"
done
else
- $COMPRESS -f $b
+ $COMPRESS -f "$b"
fi
}
done
- for f in `find $d -type l`
+ find $d -type l | while read f
do
- l=`ls -l $f | sed -e 's/.* -> //' -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\)$//'`
- rm -f $f
- b=`echo $f | sed -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\)$//'`
- ln -sf $l$COMPRESS_EXT $b$COMPRESS_EXT
+ l="`ls -l "$f" | sed -e 's/.* -> //' -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\)$//'`"
+ rm -f "$f"
+ b="`echo "$f" | sed -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\)$//'`"
+ ln -sf "$l$COMPRESS_EXT" "$b$COMPRESS_EXT"
done
done
++++++ build.diff ++++++
--- db3/configure
+++ db3/configure
@@ -10,9 +10,9 @@
# XXX edit CFLAGS= ... out of invocation args ???
ARGS="`echo $* | sed -e 's% [^ ]*CFLAGS=[^ ]*%%' -e 's% -[^-][^ ]*%%g' -e 's% --param=[^ ]*%%g' -e 's%--cache-file=.*$%%'`"
-CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure $ARGS \
+CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure \
--enable-shared --enable-static \
- --with-uniquename=_rpmdb --srcdir=$db_dist
+ --with-uniquename=_rpmdb --srcdir=$db_dist $ARGS
mv Makefile Makefile.orig
cat Makefile.orig | sed -e '/^install[:-]/c\
--- installplatform
+++ installplatform
@@ -118,6 +118,11 @@
PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}"
[ -d $PPD ] || mkdir -p $PPD
+ if [ "$VENDOR" = suse ] ; then
+ # suse doesn't do colors
+ CANONCOLOR=0
+ fi
+
cat $PLATFORM \
| sed -e "s,@RPMRC_OPTFLAGS@,$RPMRC_OPTFLAGS," \
-e "s,@RPMCANONARCH@,$CANONARCH,g" \
++++++ buildidprov.diff ++++++
From: Jan Blunck <jblunck(a)suse.de>
Subject: Let debuginfo packages provide the build-id
This patch lets debuginfo packages provide build-id like follows:
debuginfo(build-id) = c63cb23876c5fa85f36beaff58f8557e1bf22517
Users can therefore ask zypper to install the correct debuginfo package with:
zypper install -C "debuginfo(build-id) = c63cb23876c5fa85f36beaff58f8557e1bf22517"
--- ./autodeps/linux.prov.orig 2011-05-11 15:58:28.000000000 +0000
+++ ./autodeps/linux.prov 2011-05-11 15:59:31.000000000 +0000
@@ -5,6 +5,9 @@
IFS=$'\n'
filelist=($(cat))
+debuginfolist=($(printf "%s\n" "${filelist[@]}" | grep "/usr/lib/debug/"))
+filelist=($(printf "%s\n" "${filelist[@]}" | grep -v "/usr/lib/debug/"))
+
solist=($(printf "%s\n" "${filelist[@]}" | grep "\\.so" | grep -v "^/lib/ld.so" | \
tr '\n' '\0' | xargs -0 -r file -L | grep "ELF.*shared object" | \
cut -d: -f1))
@@ -71,6 +74,11 @@ done | sort -u
printf "%s\n" "${firmwarelist[@]}" | /usr/lib/rpm/firmware.prov | sort -u
#
+# --- debuginfo files
+[ -x /usr/lib/rpm/debuginfo.prov -a -n "$debuginfolist" ] &&
+ printf "%s\n" "${debuginfolist[@]}" | /usr/lib/rpm/debuginfo.prov | sort -u
+
+#
# --- Mono exes/dlls
: ${MONO_PREFIX=/usr}
if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
--- ./macros.in.orig 2011-05-11 15:59:08.000000000 +0000
+++ ./macros.in 2011-05-11 15:59:31.000000000 +0000
@@ -182,7 +182,8 @@
%package debuginfo\
Summary: Debug information for package %{name}\
Group: Development/Debug\
-AutoReqProv: 0\
+AutoReq: 0\
+AutoProv: 1\
#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\
%description debuginfo\
This package provides debug information for package %{name}.\
--- ./scripts/debuginfo.prov.orig 2011-05-11 15:59:31.000000000 +0000
+++ ./scripts/debuginfo.prov 2011-05-11 15:59:31.000000000 +0000
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+while read instfile ; do
+ case $instfile in
+ */usr/lib/debug/.build-id/*.debug)
+ if [ -f "$instfile" ] ; then
+ BUILDID=$(echo $instfile | sed -ne 's|.*/usr/lib/debug/.build-id/\([0-9a-f]*\)/\([0-9a-f]*\)\.debug|\1\2|p')
+ echo "debuginfo(build-id) = $BUILDID"
+ fi
+ ;;
+ esac
+done
++++++ checkfilesnoinfodir.diff ++++++
Exclude /usr/share/info/dir from check-files. Probably only
interesting for SUSE.
--- scripts/check-files.orig 2013-06-10 15:55:10.000000000 +0000
+++ scripts/check-files 2013-07-12 11:45:37.000000000 +0000
@@ -28,5 +28,5 @@ trap "rm -f \"${FILES_DISK}\"" 0 2 3 5 1
# Find non-directory files in the build root and compare to the manifest.
# TODO: regex chars in last sed(1) expression should be escaped
find "${RPM_BUILD_ROOT}" -type f -o -type l | LC_ALL=C sort > "${FILES_DISK}"
-LC_ALL=C sort | diff -d "${FILES_DISK}" - | sed -n 's|^< '"${RPM_BUILD_ROOT}"'\(.*\)$| \1|gp'
+LC_ALL=C sort | diff -d "${FILES_DISK}" - | sed -n -e 's|^< '"${RPM_BUILD_ROOT}"'/usr/share/info/dir$||' -e 's|^< '"${RPM_BUILD_ROOT}"'\(.*\)$| \1|gp'
++++++ convertdb1static.diff ++++++
Build convertdb1, too.
--- ./Makefile.am.orig 2011-05-11 15:15:27.000000000 +0000
+++ ./Makefile.am 2011-05-11 15:18:21.000000000 +0000
@@ -174,6 +174,10 @@ bin_PROGRAMS += rpmqpack
rpmqpack_SOURCES = rpmqpack.c
rpmqpack_LDADD = lib/librpm.la
+bin_PROGRAMS += convertdb1
+convertdb1_SOURCES = tools/convertdb1.c
+convertdb1_LDADD = lib/librpm.la
+
rpmconfig_DATA = rpmrc
rpmrc: $(top_srcdir)/rpmrc.in
@$(SED) \
--- tools/convertdb1.c.orig 2011-05-12 13:31:37.000000000 +0000
+++ tools/convertdb1.c 2011-05-12 13:31:28.000000000 +0000
@@ -0,0 +1,351 @@
+#if defined(HAVE_CONFIG_H)
+#include "system.h"
+const char *__progname;
+#else
+#include <sys/types.h>
+#include <fcntl.h>
+#include <string.h>
+#endif
+
+#include <rpmlib.h>
+#include <rpmts.h>
+#include <rpmdb.h>
+#include <rpmio.h>
+#include <rpmmacro.h>
+
+#define FA_MAGIC 0x02050920
+
+struct faFileHeader{
+ unsigned int magic;
+ unsigned int firstFree;
+};
+
+struct faHeader {
+ unsigned int size;
+ unsigned int freeNext; /* offset of the next free block, 0 if none */
+ unsigned int freePrev;
+ unsigned int isFree;
+
+ /* note that the u16's appear last for alignment/space reasons */
+};
+
+
+static int fadFileSize;
+
+static ssize_t Pread(FD_t fd, void * buf, size_t count, off_t offset) {
+ if (Fseek(fd, offset, SEEK_SET) < 0)
+ return -1;
+ return Fread(buf, sizeof(char), count, fd);
+}
+
+static FD_t fadOpen(const char * path)
+{
+ struct faFileHeader newHdr;
+ FD_t fd;
+ struct stat stb;
+
+ fd = Fopen(path, "r.fdio");
+ if (!fd || Ferror(fd))
+ return NULL;
+
+ if (fstat(Fileno(fd), &stb)) {
+ Fclose(fd);
+ return NULL;
+ }
+ fadFileSize = stb.st_size;
+
+ /* is this file brand new? */
+ if (fadFileSize == 0) {
+ Fclose(fd);
+ return NULL;
+ }
+ if (Pread(fd, &newHdr, sizeof(newHdr), 0) != sizeof(newHdr)) {
+ Fclose(fd);
+ return NULL;
+ }
+ if (newHdr.magic != FA_MAGIC) {
+ Fclose(fd);
+ return NULL;
+ }
+ /*@-refcounttrans@*/ return fd /*@=refcounttrans@*/ ;
+}
+
+static int fadNextOffset(FD_t fd, unsigned int lastOffset)
+{
+ struct faHeader header;
+ int offset;
+
+ offset = (lastOffset)
+ ? (lastOffset - sizeof(header))
+ : sizeof(struct faFileHeader);
+
+ if (offset >= fadFileSize)
+ return 0;
+
+ if (Pread(fd, &header, sizeof(header), offset) != sizeof(header))
+ return 0;
+
+ if (!lastOffset && !header.isFree)
+ return (offset + sizeof(header));
+
+ do {
+ offset += header.size;
+
+ if (Pread(fd, &header, sizeof(header), offset) != sizeof(header))
+ return 0;
+
+ if (!header.isFree) break;
+ } while (offset < fadFileSize && header.isFree);
+
+ if (offset < fadFileSize) {
+ /* Sanity check this to make sure we're not going in loops */
+ offset += sizeof(header);
+
+ if (offset <= lastOffset) return -1;
+
+ return offset;
+ } else
+ return 0;
+}
+
+static int fadFirstOffset(FD_t fd)
+{
+ return fadNextOffset(fd, 0);
+}
+
+/*@-boundsread@*/
+static int dncmp(const void * a, const void * b)
+ /*@*/
+{
+ const char *const * first = a;
+ const char *const * second = b;
+ return strcmp(*first, *second);
+}
+/*@=boundsread@*/
+
+static void compressFilelist(Header h)
+{
+ struct rpmtd_s fileNames;
+ char ** dirNames;
+ const char ** baseNames;
+ uint32_t * dirIndexes;
+ rpm_count_t count;
+ int xx, i;
+ int dirIndex = -1;
+
+ /*
+ * This assumes the file list is already sorted, and begins with a
+ * single '/'. That assumption isn't critical, but it makes things go
+ * a bit faster.
+ */
+
+ if (headerIsEntry(h, RPMTAG_DIRNAMES)) {
+ xx = headerDel(h, RPMTAG_OLDFILENAMES);
+ return; /* Already converted. */
+ }
+
+ if (!headerGet(h, RPMTAG_OLDFILENAMES, &fileNames, HEADERGET_MINMEM))
+ return;
+ count = rpmtdCount(&fileNames);
+ if (count < 1)
+ return;
+
+ dirNames = xmalloc(sizeof(*dirNames) * count); /* worst case */
+ baseNames = xmalloc(sizeof(*dirNames) * count);
+ dirIndexes = xmalloc(sizeof(*dirIndexes) * count);
+
+ /* HACK. Source RPM, so just do things differently */
+ { const char *fn = rpmtdGetString(&fileNames);
+ if (fn && *fn != '/') {
+ dirIndex = 0;
+ dirNames[dirIndex] = xstrdup("");
+ while ((i = rpmtdNext(&fileNames)) >= 0) {
+ dirIndexes[i] = dirIndex;
+ baseNames[i] = rpmtdGetString(&fileNames);
+ }
+ goto exit;
+ }
+ }
+
+ while ((i = rpmtdNext(&fileNames)) >= 0) {
+ char ** needle;
+ char savechar;
+ char * baseName;
+ size_t len;
+ const char *filename = rpmtdGetString(&fileNames);
+
+ if (filename == NULL) /* XXX can't happen */
+ continue;
+ baseName = strrchr(filename, '/') + 1;
+ len = baseName - filename;
+ needle = dirNames;
+ savechar = *baseName;
+ *baseName = '\0';
+ if (dirIndex < 0 ||
+ (needle = bsearch(&filename, dirNames, dirIndex + 1, sizeof(dirNames[0]), dncmp)) == NULL) {
+ char *s = xmalloc(len + 1);
+ rstrlcpy(s, filename, len + 1);
+ dirIndexes[i] = ++dirIndex;
+ dirNames[dirIndex] = s;
+ } else
+ dirIndexes[i] = needle - dirNames;
+
+ *baseName = savechar;
+ baseNames[i] = baseName;
+ }
+
+exit:
+ if (count > 0) {
+ headerPutUint32(h, RPMTAG_DIRINDEXES, dirIndexes, count);
+ headerPutStringArray(h, RPMTAG_BASENAMES, baseNames, count);
+ headerPutStringArray(h, RPMTAG_DIRNAMES,
+ (const char **) dirNames, dirIndex + 1);
+ }
+
+ rpmtdFreeData(&fileNames);
+ for (i = 0; i <= dirIndex; i++) {
+ free(dirNames[i]);
+ }
+ free(dirNames);
+ free(baseNames);
+ free(dirIndexes);
+
+ xx = headerDel(h, RPMTAG_OLDFILENAMES);
+}
+
+/*
+ * Up to rpm 3.0.4, packages implicitly provided their own name-version-release.
+ * Retrofit an explicit "Provides: name = epoch:version-release.
+ */
+static void providePackageNVR(Header h)
+{
+ const char *name;
+ char *pEVR;
+ rpmsenseFlags pFlags = RPMSENSE_EQUAL;
+ int bingo = 1;
+ struct rpmtd_s pnames;
+ rpmds hds, nvrds;
+
+ /* Generate provides for this package name-version-release. */
+ pEVR = headerGetEVR(h, &name);
+ if (!(name && pEVR))
+ return;
+
+ /*
+ * Rpm prior to 3.0.3 does not have versioned provides.
+ * If no provides at all are available, we can just add.
+ */
+ if (!headerGet(h, RPMTAG_PROVIDENAME, &pnames, HEADERGET_MINMEM)) {
+ goto exit;
+ }
+
+ /*
+ * Otherwise, fill in entries on legacy packages.
+ */
+ if (!headerIsEntry(h, RPMTAG_PROVIDEVERSION)) {
+ while (rpmtdNext(&pnames) >= 0) {
+ rpmsenseFlags fdummy = RPMSENSE_ANY;
+
+ headerPutString(h, RPMTAG_PROVIDEVERSION, "");
+ headerPutUint32(h, RPMTAG_PROVIDEFLAGS, &fdummy, 1);
+ }
+ goto exit;
+ }
+
+ /* see if we already have this provide */
+ hds = rpmdsNew(h, RPMTAG_PROVIDENAME, 0);
+ nvrds = rpmdsSingle(RPMTAG_PROVIDENAME, name, pEVR, pFlags);
+ if (rpmdsFind(hds, nvrds) >= 0) {
+ bingo = 0;
+ }
+ rpmdsFree(hds);
+ rpmdsFree(nvrds);
+
+exit:
+ if (bingo) {
+ const char *evr = pEVR;
+ headerPutString(h, RPMTAG_PROVIDENAME, name);
+ headerPutString(h, RPMTAG_PROVIDEVERSION, evr);
+ headerPutUint32(h, RPMTAG_PROVIDEFLAGS, &pFlags, 1);
+ }
+ rpmtdFreeData(&pnames);
+ free(pEVR);
+}
+/*@=bounds@*/
+
+static rpmdb db;
+
+int
+main(int argc, char ** argv)
+{
+ FD_t fd;
+ int offset;
+ Header h;
+ const char *name;
+ const char *version;
+ const char *release;
+ rpmts ts;
+
+ if (argc != 2)
+ {
+ fprintf(stderr, "usage: %s <packages.rpm>\n", argv[0]);
+ exit(1);
+ }
+ if ((fd = fadOpen(argv[1])) == 0)
+ {
+ fprintf(stderr, "could not open %s\n", argv[1]);
+ exit(1);
+ }
+ rpmInitMacros(NULL, "/usr/lib/rpm/macros");
+
+ /* speed things up */
+ (void) rpmDefineMacro(NULL, "_rpmdb_rebuild %{nil}", -1);
+
+ ts = rpmtsCreate();
+
+ if (rpmtsOpenDB(ts, O_RDWR)) {
+ fprintf(stderr, "could not open rpm database\n");
+ exit(1);
+ }
+
+ for (offset = fadFirstOffset(fd); offset; offset = fadNextOffset(fd, offset))
+ {
+ rpmdbMatchIterator mi;
+
+ /* have to use lseek instead of Fseek because headerRead
+ * uses low level IO
+ */
+ if (lseek(Fileno(fd), (off_t)offset, SEEK_SET) == -1)
+ {
+ perror("lseek");
+ continue;
+ }
+ h = headerRead(fd, HEADER_MAGIC_NO);
+ if (!h)
+ continue;
+ compressFilelist(h);
+ providePackageNVR(h);
+ headerNVR(h, &name, &version, &release);
+ mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0);
+ rpmdbSetIteratorRE(mi, RPMTAG_VERSION, RPMMIRE_DEFAULT, version);
+ rpmdbSetIteratorRE(mi, RPMTAG_RELEASE, RPMMIRE_DEFAULT, release);
+ if (rpmdbNextIterator(mi))
+ {
+ printf("%s-%s-%s is already in database\n", name, version, release);
+ rpmdbFreeIterator(mi);
+ headerFree(h);
+ continue;
+ }
+ rpmdbFreeIterator(mi);
+ if (rpmtsHeaderAddDB(ts, h))
+ {
+ fprintf(stderr, "could not add %s-%s-%s!\n", name, version, release);
+ }
+ headerFree(h);
+ }
+ Fclose(fd);
+ rpmtsCloseDB(ts);
+ rpmtsFree(ts);
+ return 0;
+}
+
++++++ cpionamesize.diff ++++++
--- ./lib/cpio.c.orig 2014-12-11 14:51:11.149327450 +0000
+++ ./lib/cpio.c 2014-12-11 14:53:21.493772955 +0000
@@ -296,6 +296,8 @@ int rpmcpioHeaderRead(rpmcpio_t cpio, ch
st->st_rdev = makedev(major, minor);
GET_NUM_FIELD(hdr.namesize, nameSize);
+ if (nameSize <= 0 || nameSize > 4096)
+ return CPIOERR_BAD_HEADER;
*path = xmalloc(nameSize + 1);
read = Fread(*path, nameSize, 1, cpio->fd);
++++++ db.diff ++++++
--- db/db/db.c.orig 2010-04-12 20:25:22.000000000 +0000
+++ db/db/db.c 2011-05-12 11:38:59.000000000 +0000
@@ -646,6 +646,8 @@ __env_mpool(dbp, fname, flags)
MAKE_INMEM(dbp);
return (ret);
}
+ if (LF_ISSET(DB_NOFSYNC) && mpf->mfp)
+ F_SET(mpf->mfp, MP_NOFSYNC);
/*
* Set the open flag. We use it to mean that the dbp has gone
--- db/db/db_iface.c.orig 2010-04-12 20:25:22.000000000 +0000
+++ db/db/db_iface.c 2011-05-12 11:21:32.000000000 +0000
@@ -1230,6 +1230,7 @@ __db_open_arg(dbp, txn, fname, dname, ty
#define OKFLAGS \
(DB_AUTO_COMMIT | DB_CREATE | DB_EXCL | DB_FCNTL_LOCKING | \
DB_MULTIVERSION | DB_NOMMAP | DB_NO_AUTO_COMMIT | DB_RDONLY | \
+ DB_NOFSYNC | \
DB_RDWRMASTER | DB_READ_UNCOMMITTED | DB_THREAD | DB_TRUNCATE)
if ((ret = __db_fchk(env, "DB->open", flags, OKFLAGS)) != 0)
return (ret);
--- db/dbinc/mp.h.orig 2010-04-12 20:25:22.000000000 +0000
+++ db/dbinc/mp.h 2011-05-12 12:01:32.000000000 +0000
@@ -467,6 +467,7 @@ struct __mpoolfile {
#define MP_FAKE_UOC 0x080 /* Unlink_on_close field: fake flag. */
#define MP_NOT_DURABLE 0x100 /* File is not durable. */
#define MP_TEMP 0x200 /* Backing file is a temporary. */
+#define MP_NOFSYNC 0x400 /* Don't fsync */
u_int32_t flags;
};
--- db/dbinc_auto/api_flags.in.orig 2011-05-12 11:40:57.000000000 +0000
+++ db/dbinc_auto/api_flags.in 2011-05-12 11:55:10.000000000 +0000
@@ -83,6 +83,7 @@
#define DB_NOORDERCHK 0x00000002
#define DB_NOPANIC 0x00000800
#define DB_NO_AUTO_COMMIT 0x00001000
+#define DB_NOFSYNC 0x00040000
#define DB_ODDFILESIZE 0x00000080
#define DB_ORDERCHKONLY 0x00000004
#define DB_OVERWRITE 0x00001000
--- db/dist/s_config.orig 2010-04-12 20:25:23.000000000 +0000
+++ db/dist/s_config 2011-05-12 12:00:34.000000000 +0000
@@ -8,7 +8,8 @@ trap 'rm -f aclocal.m4 ; exit 0' 0 1 2 3
. ./RELEASE
echo "autoconf: building aclocal.m4..."
-cat aclocal/*.m4 aclocal_java/*.m4 > aclocal.m4
+cat aclocal/*.m4 aclocal_java/*.m4 > acinclude.m4
+aclocal
echo "autoconf: running autoheader to build config.hin..."
rm -f config.hin
--- db/mp/mp_sync.c.orig 2010-04-12 20:25:34.000000000 +0000
+++ db/mp/mp_sync.c 2011-05-12 11:36:58.000000000 +0000
@@ -578,7 +578,7 @@ done: /*
if (ret == 0 && required_write) {
if (dbmfp == NULL)
ret = __memp_sync_files(env);
- else
+ else if (!F_ISSET(dbmfp->mfp, MP_NOFSYNC))
ret = __os_fsync(env, dbmfp->fhp);
}
@@ -665,7 +665,7 @@ __memp_sync_file(env, mfp, argp, countp,
"%s: unable to flush", (char *)
R_ADDR(dbmp->reginfo, mfp->path_off));
}
- } else
+ } else if (!F_ISSET(dbmfp->mfp, MP_NOFSYNC))
ret = __os_fsync(env, dbmfp->fhp);
/*
@@ -801,6 +801,8 @@ __memp_mf_sync(dbmp, mfp, locked)
COMPQUIET(hp, NULL);
env = dbmp->env;
+ if (F_ISSET(mfp, MP_NOFSYNC))
+ return 0;
/*
* We need to be holding the hash lock: we're using the path name
* and __memp_nameop might try and rename the file.
++++++ dbfsync.diff ++++++
Support a database-local fsync setting. Needs berkeley db patch.
--- ./lib/backend/dbconfig.c.orig 2011-01-03 13:57:41.000000000 +0000
+++ ./lib/backend/dbconfig.c 2011-05-10 17:00:29.000000000 +0000
@@ -58,8 +58,10 @@ static const struct poptOption rdbOption
{ "mp_size", 0,POPT_ARG_INT, &staticcfg.db_cachesize, 0,
NULL, NULL },
+#if 0
{ "nofsync", 0,POPT_ARG_NONE, &staticcfg.db_no_fsync, 0,
NULL, NULL },
+#endif
/* Per-dbi options */
{ "nommap", 0,POPT_BIT_SET, &staticdbi.dbi_oflags, DB_NOMMAP,
@@ -69,6 +71,8 @@ static const struct poptOption rdbOption
NULL, NULL },
{ "lockdbfd", 0,POPT_ARG_NONE, &staticdbi.dbi_lockdbfd, 0,
NULL, NULL },
+ { "nofsync", 0,POPT_BIT_SET, &staticdbi.dbi_oflags, DB_NOFSYNC,
+ NULL, NULL },
POPT_TABLEEND
};
++++++ dbprivate.diff ++++++
Always use DB_PRIVATE. Unfortunately no longer configurable
in the macros file.
--- ./lib/backend/db3.c.orig 2013-07-12 12:09:45.000000000 +0000
+++ ./lib/backend/db3.c 2013-07-12 12:11:07.000000000 +0000
@@ -164,7 +164,7 @@ static int db_init(rpmdb rdb, const char
int lockfd = -1;
struct dbConfig_s * cfg = &rdb->cfg;
/* This is our setup, thou shall not have other setups before us */
- uint32_t eflags = (DB_CREATE|DB_INIT_MPOOL|DB_INIT_CDB);
+ uint32_t eflags = (DB_CREATE|DB_INIT_MPOOL|DB_INIT_CDB|DB_PRIVATE);
if (rdb->db_dbenv != NULL) {
rdb->db_opens++;
++++++ dbrointerruptable.diff ++++++
--- ./lib/rpmdb.c.orig 2013-06-10 15:55:10.000000000 +0000
+++ ./lib/rpmdb.c 2013-07-12 11:28:22.000000000 +0000
@@ -730,10 +730,12 @@ int rpmdbClose(rpmdb db)
{
rpmdb * prev, next;
int rc = 0;
+ int dbmode;
if (db == NULL)
goto exit;
+ dbmode = db->db_mode;
(void) rpmdbUnlink(db);
if (db->nrefs > 0)
@@ -761,7 +763,7 @@ int rpmdbClose(rpmdb db)
db = _free(db);
- if (rpmdbRock == NULL) {
+ if (rpmdbRock == NULL && (dbmode & (O_RDWR|O_WRONLY)) != 0) {
(void) rpmsqEnable(-SIGHUP, NULL);
(void) rpmsqEnable(-SIGINT, NULL);
(void) rpmsqEnable(-SIGTERM, NULL);
@@ -830,7 +832,7 @@ static int openDatabase(const char * pre
/* Try to ensure db home exists, error out if we can't even create */
rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid());
if (rc == 0) {
- if (rpmdbRock == NULL) {
+ if (rpmdbRock == NULL && (db->db_mode & (O_RDWR|O_WRONLY)) != 0) {
(void) rpmsqEnable(SIGHUP, NULL);
(void) rpmsqEnable(SIGINT, NULL);
(void) rpmsqEnable(SIGTERM, NULL);
++++++ debug_gdb_scripts.diff ++++++
--- tools/debugedit.c.orig 2013-08-01 13:32:47.885854357 +0000
+++ tools/debugedit.c 2013-08-01 13:33:37.028854270 +0000
@@ -270,7 +270,7 @@ static struct
{ ".debug_ranges", NULL, NULL, 0, 0, 0 },
{ ".debug_types", NULL, NULL, 0, 0, 0 },
{ ".debug_macro", NULL, NULL, 0, 0, 0 },
- { ".debug_gdb_script", NULL, NULL, 0, 0, 0 },
+ { ".debug_gdb_scripts", NULL, NULL, 0, 0, 0 },
{ NULL, NULL, NULL, 0, 0, 0 }
};
++++++ debugedit-canon-fix.diff ++++++
--- ./tools/debugedit.c.orig 2011-07-18 16:53:12.000000000 +0000
+++ ./tools/debugedit.c 2011-07-18 17:15:27.000000000 +0000
@@ -162,7 +162,7 @@ strptr (DSO *dso, int sec, off_t offset)
{
if (data->d_buf
&& offset >= data->d_off
- && offset < data->d_off + data->d_size)
+ && offset < data->d_off + (off_t)data->d_size)
return (const char *) data->d_buf + (offset - data->d_off);
}
}
@@ -503,9 +503,10 @@ static int
edit_dwarf2_line (DSO *dso, uint32_t off, char *comp_dir, int phase)
{
unsigned char *ptr = debug_sections[DEBUG_LINE].data, *dir;
- unsigned char **dirt;
+ char **dirt;
unsigned char *endsec = ptr + debug_sections[DEBUG_LINE].size;
unsigned char *endcu, *endprol;
+ char line_base;
unsigned char opcode_base;
uint32_t value, dirt_cnt;
size_t comp_dir_len = strlen (comp_dir);
@@ -549,6 +550,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
return 1;
}
+ line_base = (char) (ptr[2 + (value >= 4)] & 0xff);
opcode_base = ptr[4 + (value >= 4)];
ptr = dir = ptr + 4 + (value >= 4) + opcode_base;
@@ -560,13 +562,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off
++value;
}
- dirt = (unsigned char **) alloca (value * sizeof (unsigned char *));
+ dirt = (char **) alloca (value * sizeof (unsigned char *));
dirt[0] = (unsigned char *) ".";
dirt_cnt = 1;
ptr = dir;
while (*ptr != 0)
{
- dirt[dirt_cnt++] = ptr;
+ dirt[dirt_cnt++] = (char *)ptr;
ptr = (unsigned char *) strchr ((char *)ptr, 0) + 1;
}
ptr++;
@@ -679,7 +681,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
if (dest_dir)
{
- unsigned char *srcptr, *buf = NULL;
+ char *srcptr, *buf = NULL;
size_t base_len = strlen (base_dir);
size_t dest_len = strlen (dest_dir);
size_t shrank = 0;
@@ -693,11 +695,14 @@ edit_dwarf2_line (DSO *dso, uint32_t off
ptr = dir;
}
else
- ptr = srcptr = dir;
+ {
+ ptr = dir;
+ srcptr = (char *)dir;
+ }
while (*srcptr != 0)
{
size_t len = strlen ((char *)srcptr) + 1;
- const unsigned char *readptr = srcptr;
+ const char *readptr = srcptr;
char *orig = strdup ((const char *) srcptr);
@@ -724,10 +729,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off
if (shrank > 0)
{
- if (--shrank == 0)
+ --shrank;
+#if 0
+ if (shrank == 0)
error (EXIT_FAILURE, 0,
"canonicalization unexpectedly shrank by one character");
else
+#endif
{
memset (ptr, 'X', shrank);
ptr += shrank;
@@ -763,21 +771,26 @@ edit_dwarf2_line (DSO *dso, uint32_t off
}
dirty_section (DEBUG_STR);
}
- else if (ptr != srcptr)
+ else if ((char *)ptr != srcptr)
memmove (ptr, srcptr, len);
srcptr += len;
ptr += len;
- dir = srcptr;
+ dir = (unsigned char *)srcptr;
read_uleb128 (srcptr);
read_uleb128 (srcptr);
read_uleb128 (srcptr);
if (ptr != dir)
- memmove (ptr, dir, srcptr - dir);
- ptr += srcptr - dir;
+ memmove (ptr, dir, (unsigned char *)srcptr - dir);
+ ptr += (unsigned char *)srcptr - dir;
}
*ptr = '\0';
free (buf);
}
+
+ ptr++;
+ /* fill the rest until the line number program starts with NOP opcode */
+ memset(ptr, opcode_base - line_base, endprol - ptr);
+ /* don't touch the line number program */
return 0;
}
++++++ debugedit-comp-dir.diff ++++++
Include compilation directory in source file list if used.
--- ./tools/debugedit.c.orig 2011-05-11 14:27:32.000000000 +0000
+++ ./tools/debugedit.c 2011-05-11 15:31:31.000000000 +0000
@@ -503,6 +503,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
uint32_t value, dirt_cnt;
size_t comp_dir_len = strlen (comp_dir);
size_t abs_file_cnt = 0, abs_dir_cnt = 0;
+ int comp_dir_used = 0;
if (phase != 0)
return 0;
@@ -611,6 +612,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
memcpy (p, dirt[value], dir_len);
p[dir_len] = '/';
memcpy (p + dir_len + 1, file, file_len + 1);
+ comp_dir_used = 1;
}
canonicalize_path (s, s);
if (list_file_fd != -1)
@@ -644,6 +646,30 @@ edit_dwarf2_line (DSO *dso, uint32_t off
}
++ptr;
+ if (comp_dir_used && list_file_fd != -1
+ && (base_dir == NULL || has_prefix (comp_dir, base_dir)))
+ {
+ char *p;
+ size_t size;
+ ssize_t ret;
+
+ size = comp_dir_len + 1;
+ p = comp_dir;
+ if (base_dir)
+ {
+ p += strlen (base_dir);
+ size -= strlen (base_dir);
+ }
+ while (size > 0)
+ {
+ ret = write (list_file_fd, p, size);
+ if (ret == -1)
+ break;
+ size -= ret;
+ p += ret;
+ }
+ }
+
if (dest_dir)
{
unsigned char *srcptr, *buf = NULL;
++++++ debugedit.diff ++++++
Make debugedit build without dwarf.h
--- ./Makefile.am.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./Makefile.am 2012-06-01 10:05:04.000000000 +0000
@@ -149,7 +149,6 @@ rpm2cpio_LDADD += @WITH_NSS_LIB@ @WITH_P
if LIBELF
-if LIBDWARF
rpmconfig_SCRIPTS += scripts/find-debuginfo.sh
rpmlibexec_PROGRAMS += debugedit
@@ -162,7 +161,6 @@ elfdeps_SOURCES = tools/elfdeps.c
elfdeps_LDADD = rpmio/librpmio.la
elfdeps_LDADD += @WITH_LIBELF_LIB@ @WITH_POPT_LIB@
endif
-endif
rpmlibexec_PROGRAMS += rpmdeps
rpmdeps_SOURCES = tools/rpmdeps.c
--- ./tools/debugedit.c.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./tools/debugedit.c 2012-06-01 10:05:04.000000000 +0000
@@ -37,7 +37,37 @@
#include <popt.h>
#include <gelf.h>
-#include <dwarf.h>
+
+
+/* some defines taken from the dwarf standard */
+
+#define DW_TAG_compile_unit 0x11
+
+#define DW_AT_name 0x03
+#define DW_AT_stmt_list 0x10
+#define DW_AT_comp_dir 0x1b
+
+#define DW_FORM_addr 0x01
+#define DW_FORM_block2 0x03
+#define DW_FORM_block4 0x04
+#define DW_FORM_data2 0x05
+#define DW_FORM_data4 0x06
+#define DW_FORM_data8 0x07
+#define DW_FORM_string 0x08
+#define DW_FORM_block 0x09
+#define DW_FORM_block1 0x0a
+#define DW_FORM_data1 0x0b
+#define DW_FORM_flag 0x0c
+#define DW_FORM_sdata 0x0d
+#define DW_FORM_strp 0x0e
+#define DW_FORM_udata 0x0f
+#define DW_FORM_ref_addr 0x10
+#define DW_FORM_ref1 0x11
+#define DW_FORM_ref2 0x12
+#define DW_FORM_ref4 0x13
+#define DW_FORM_ref8 0x14
+#define DW_FORM_ref_udata 0x15
+#define DW_FORM_indirect 0x16
#include <rpm/rpmio.h>
#include <rpm/rpmpgp.h>
++++++ debuginfo-mono.patch ++++++
--- ./scripts/find-debuginfo.sh.orig 2011-05-11 16:10:22.000000000 +0000
+++ ./scripts/find-debuginfo.sh 2011-05-11 16:10:48.000000000 +0000
@@ -211,6 +211,17 @@ while read nlinks inum f; do
;;
*) continue ;;
esac
+ # double check that we really have an ELF file,
+ # to handle monodevelop-debugger-gdb and monodevelop-debugger-mdb
+ ftype=`/usr/bin/file $f | cut -d: -f2-`
+ case $ftype in
+ *ELF*) ;;
+ *)
+ echo "$f is not an ELF file, skipping"
+ continue
+ ;;
+ esac
+
get_debugfn "$f"
[ -f "${debugfn}" ] && continue
++++++ debuglink.diff ++++++
--- ./scripts/find-debuginfo.sh.orig 2011-05-11 15:59:44.000000000 +0000
+++ ./scripts/find-debuginfo.sh 2011-05-11 16:10:22.000000000 +0000
@@ -186,7 +186,8 @@ make_id_link()
get_debugfn()
{
dn=$(dirname "${1#$RPM_BUILD_ROOT}")
- bn=$(basename "$1" .debug).debug
+# Do not strip existing .debug suffixes
+ bn=$(basename "$1").debug
debugdn=${debugdir}${dn}
debugfn=${debugdn}/${bn}
++++++ debugsource-package.diff ++++++
Subject: Split sources for debugging into separate -debugsource package
At the moment the -debuginfo package also include the sources where used to
build the binary. The patches moves them into a separate package -debugsource.
--- ./macros.in.orig 2011-05-11 15:01:39.000000000 +0000
+++ ./macros.in 2011-05-11 15:36:05.000000000 +0000
@@ -190,6 +190,18 @@ Debug information is useful when develop
package or when debugging this package.\
%files debuginfo -f debugfiles.list\
%defattr(-,root,root)\
+\
+%package debugsource\
+Summary: Debug sources for package %{name}\
+Group: Development/Debug\
+AutoReqProv: 0\
+Requires: %{name}-debuginfo = %{version}-%{release}\
+%description debugsource\
+This package provides debug sources for package %{name}.\
+Debug sources are useful when developing applications that use this\
+package or when debugging this package.\
+%files debugsource -f debugsources.list\
+%defattr(-,root,root)\
%{nil}
%_defaultdocdir %{_datadir}/doc/packages
--- ./scripts/find-debuginfo.sh.orig 2011-05-11 14:46:18.000000000 +0000
+++ ./scripts/find-debuginfo.sh 2011-05-11 15:36:05.000000000 +0000
@@ -187,8 +187,8 @@ set -o pipefail
strict_error=ERROR
$strict || strict_error=WARNING
-# Strip ELF binaries
-find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm /111 -or -name "*.so*" -or -name "*.ko" \) -print 0 | sort -z |
+# Strip ELF binaries (and no static libraries)
+find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm /111 -or -name "*.so*" -or -name "*.ko" \) ! -name "*.a" -print0 | sort -z |
xargs --no-run-if-empty -0 stat -c '%h %D_%i %n' |
while read nlinks inum f; do
case $(objdump -h $f 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') in
@@ -300,10 +300,16 @@ if [ -d "${RPM_BUILD_ROOT}/usr/lib" -o -
(cd "${RPM_BUILD_ROOT}/usr"
test ! -d lib/debug || find lib/debug ! -type d
- test ! -d src/debug || find src/debug -mindepth 1 -maxdepth 1
) | sed 's,^,/usr/,' >> "$LISTFILE"
fi
+: > "$SOURCEFILE"
+if [ -d "${RPM_BUILD_ROOT}/usr/src" ]; then
+ (cd "${RPM_BUILD_ROOT}/usr"
+ test ! -d src/debug || find src/debug -mindepth 1 -maxdepth 1
+ ) | sed 's,^,/usr/,' >> "$SOURCEFILE"
+fi
+
# Append to $1 only the lines from stdin not already in the file.
append_uniq()
{
++++++ debugsubpkg.diff ++++++
Create a debuginfo package for each subpackage.
Index: build/files.c
===================================================================
--- build/files.c.orig
+++ build/files.c
@@ -21,6 +21,10 @@
#include <rpm/rpmlog.h>
#include <rpm/rpmbase64.h>
+#if HAVE_GELF_H
+#include <gelf.h>
+#endif
+
#include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */
#include "misc/fts.h"
#include "lib/cpio.h"
@@ -2097,13 +2101,237 @@ exit:
return rc;
}
+#if HAVE_GELF_H && HAVE_LIBELF
+/* Query the build-id from the ELF file NAME and store it in the newly
+ allocated *build_id array of size *build_id_size. Returns -1 on
+ error. */
+
+int
+getELFBuildId (const char *name,
+ unsigned char **id, size_t *id_size)
+{
+ int fd, i;
+ Elf *elf;
+ GElf_Ehdr ehdr;
+ Elf_Data *build_id = NULL;
+ size_t build_id_offset = 0, build_id_size = 0;
+
+ /* Now query the build-id of the file and add the
+ corresponding links in the .build-id tree.
+ The following code is based on tools/debugedit.c. */
+ fd = open (name, O_RDONLY);
+ if (fd < 0)
+ return -1;
+ elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
+ if (elf == NULL)
+ {
+ fprintf (stderr, "cannot open ELF file: %s",
+ elf_errmsg (-1));
+ close (fd);
+ return -1;
+ }
+ if (elf_kind (elf) != ELF_K_ELF
+ || gelf_getehdr (elf, &ehdr) == NULL
+ || (ehdr.e_type != ET_DYN
+ && ehdr.e_type != ET_EXEC
+ && ehdr.e_type != ET_REL))
+ {
+ elf_end (elf);
+ close (fd);
+ return -1;
+ }
+ for (i = 0; i < ehdr.e_shnum; ++i)
+ {
+ Elf_Scn *s = elf_getscn (elf, i);
+ GElf_Shdr shdr;
+ Elf_Data *data;
+ Elf32_Nhdr nh;
+ Elf_Data dst =
+ {
+ .d_version = EV_CURRENT, .d_type = ELF_T_NHDR,
+ .d_buf = &nh, .d_size = sizeof nh
+ };
+ Elf_Data src = dst;
+
+ gelf_getshdr (s, &shdr);
+ if (shdr.sh_type != SHT_NOTE
+ || !(shdr.sh_flags & SHF_ALLOC))
+ continue;
+
+ /* Look for a build-ID note here. */
+ data = elf_rawdata (s, NULL);
+ src.d_buf = data->d_buf;
+ assert (sizeof (Elf32_Nhdr) == sizeof (Elf64_Nhdr));
+ while (data->d_buf + data->d_size - src.d_buf > (int) sizeof nh
+ && elf32_xlatetom (&dst, &src, ehdr.e_ident[EI_DATA]))
+ {
+ Elf32_Word len = sizeof nh + nh.n_namesz;
+ len = (len + 3) & ~3;
+
+ if (nh.n_namesz == sizeof "GNU" && nh.n_type == 3
+ && !memcmp (src.d_buf + sizeof nh, "GNU", sizeof "GNU"))
+ {
+ build_id = data;
+ build_id_offset = src.d_buf + len - data->d_buf;
+ build_id_size = nh.n_descsz;
+ break;
+ }
+
+ len += nh.n_descsz;
+ len = (len + 3) & ~3;
+ src.d_buf += len;
+ }
+
+ if (build_id != NULL)
+ break;
+ }
+
+ if (build_id == NULL)
+ return -1;
+
+ *id = malloc (build_id_size);
+ *id_size = build_id_size;
+ memcpy (*id, build_id->d_buf + build_id_offset, build_id_size);
+
+ elf_end (elf);
+ close (fd);
+
+ return 0;
+}
+
+
+static rpmTag copyTagsForDebug[] = {
+ RPMTAG_EPOCH,
+ RPMTAG_VERSION,
+ RPMTAG_RELEASE,
+ RPMTAG_LICENSE,
+ RPMTAG_PACKAGER,
+ RPMTAG_DISTRIBUTION,
+ RPMTAG_DISTURL,
+ RPMTAG_VENDOR,
+ RPMTAG_ICON,
+ RPMTAG_URL,
+ RPMTAG_CHANGELOGTIME,
+ RPMTAG_CHANGELOGNAME,
+ RPMTAG_CHANGELOGTEXT,
+ RPMTAG_PREFIXES,
+ RPMTAG_RHNPLATFORM,
+ RPMTAG_OS,
+ RPMTAG_DISTTAG,
+ RPMTAG_CVSID,
+ RPMTAG_ARCH,
+ 0
+};
+
+static void addDebuginfoPackage(rpmSpec spec, Package pkg, char *buildroot)
+{
+ const char *a;
+
+ elf_version(EV_CURRENT);
+ a = headerGetString(pkg->header, RPMTAG_ARCH);
+ if (strcmp(a, "noarch") != 0 && strcmp(a, "src") != 0 && strcmp(a, "nosrc") != 0)
+ {
+ Package dbg;
+ rpmfi fi = pkg->cpioList;
+ char tmp[1024];
+ const char *name;
+ ARGV_t files = NULL;
+ int seen_build_id = 0;
+
+ /* Check if the current package has files with debug info
+ and record them. */
+ fi = rpmfiInit (fi, 0);
+ while (rpmfiNext (fi) >= 0)
+ {
+ const char *base;
+ int i;
+ unsigned char *build_id;
+ size_t build_id_size = 0;
+ struct stat sbuf;
+
+ name = rpmfiFN (fi);
+ /* Skip leading buildroot. */
+ base = name + strlen (buildroot);
+ /* Pre-pend %buildroot/usr/lib/debug and append .debug. */
+ snprintf (tmp, 1024, "%s/usr/lib/debug%s.debug",
+ buildroot, base);
+ /* If that file exists we have debug information for it. */
+ if (access (tmp, F_OK) != 0)
+ continue;
+
+ /* Append the file list preamble. */
+ if (!files)
+ {
+ argvAdd(&files, "%defattr(-,root,root)");
+ argvAdd(&files, "%dir /usr/lib/debug");
+ }
+ /* Add the files main debug-info file. */
+ snprintf (tmp, 1024, "/usr/lib/debug/%s.debug", base);
+ argvAdd(&files, tmp);
+
+ /* Do not bother to check build-ids for symbolic links.
+ We'll handle them for the link target. */
+ if (lstat (name, &sbuf) == -1
+ || S_ISLNK (sbuf.st_mode))
+ continue;
+
+ /* Try to gather the build-id from the binary. */
+ if (getELFBuildId (name, &build_id, &build_id_size) == -1)
+ continue;
+
+ /* If we see build-id links for the first time add the
+ directory. */
+ if (!seen_build_id)
+ argvAdd(&files, "%dir /usr/lib/debug/.build-id");
+
+ /* From the build-id construct the two links pointing back
+ to the debug information file and the binary. */
+ snprintf (tmp, 1024, "/usr/lib/debug/.build-id/%02x/",
+ build_id[0]);
+ for (i = 1; i < build_id_size; ++i)
+ sprintf (tmp + strlen (tmp), "%02x", build_id[i]);
+ argvAdd(&files, tmp);
+ sprintf (tmp + strlen (tmp), ".debug");
+ argvAdd(&files, tmp);
+
+ free (build_id);
+ }
+
+ /* If there are debuginfo files for this package add a
+ new debuginfo package. */
+ if (files)
+ {
+ dbg = newPackage(NULL, spec->pool, &spec->packages);
+ headerNVR (pkg->header, &name, NULL, NULL);
+ /* Set name, summary and group. */
+ snprintf (tmp, 1024, "%s-debuginfo", name);
+ headerPutString(dbg->header, RPMTAG_NAME, tmp);
+ snprintf (tmp, 1024, "Debug information for package %s", name);
+ headerPutString(dbg->header, RPMTAG_SUMMARY, tmp);
+ snprintf (tmp, 1024, "This package provides debug information for package %s.\n"
+ "Debug information is useful when developing applications that use this\n"
+ "package or when debugging this package.", name);
+ headerPutString(dbg->header, RPMTAG_DESCRIPTION, tmp);
+ headerPutString(dbg->header, RPMTAG_GROUP, "Development/Debug");
+ /* Inherit other tags from parent. */
+ headerCopyTags (pkg->header, dbg->header, copyTagsForDebug);
+
+ /* Build up the files list. */
+ dbg->fileList = files;
+ }
+ }
+}
+#endif
+
rpmRC processBinaryFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags,
int installSpecialDoc, int test)
{
Package pkg;
rpmRC rc = RPMRC_OK;
+ char *buildroot;
check_fileList = newStringBuf();
+ buildroot = rpmGenPath(spec->rootDir, spec->buildRoot, NULL);
genSourceRpmName(spec);
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
@@ -2119,8 +2347,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r
rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr);
free(nvr);
- if ((rc = processPackageFiles(spec, pkgFlags, pkg, installSpecialDoc, test)) != RPMRC_OK ||
- (rc = rpmfcGenerateDepends(spec, pkg)) != RPMRC_OK)
+ if ((rc = processPackageFiles(spec, pkgFlags, pkg, installSpecialDoc, test)) != RPMRC_OK)
+ goto exit;
+#if HAVE_GELF_H && HAVE_LIBELF
+ addDebuginfoPackage(spec, pkg, buildroot);
+#endif
+ if ((rc = rpmfcGenerateDepends(spec, pkg)) != RPMRC_OK)
goto exit;
a = headerGetString(pkg->header, RPMTAG_ARCH);
Index: macros.in
===================================================================
--- macros.in.orig
+++ macros.in
@@ -182,24 +182,10 @@
# Template for debug information sub-package.
%debug_package \
%global __debug_package 1\
-%package debuginfo\
-Summary: Debug information for package %{name}\
-Group: Development/Debug\
-AutoReq: 0\
-AutoProv: 1\
-#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\
-%description debuginfo\
-This package provides debug information for package %{name}.\
-Debug information is useful when developing applications that use this\
-package or when debugging this package.\
-%files debuginfo -f debugfiles.list\
-%defattr(-,root,root)\
-\
%package debugsource\
Summary: Debug sources for package %{name}\
Group: Development/Debug\
AutoReqProv: 0\
-Requires: %{name}-debuginfo = %{version}-%{release}\
%description debugsource\
This package provides debug sources for package %{name}.\
Debug sources are useful when developing applications that use this\
Index: scripts/find-debuginfo.sh
===================================================================
--- scripts/find-debuginfo.sh.orig
+++ scripts/find-debuginfo.sh
@@ -149,6 +149,11 @@ debug_link()
# Provide .2, .3, ... symlinks to all filename instances of this build-id.
make_id_dup_link()
{
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=641377 for the reasoning,
+ # but it has seveal drawbacks as we would need to split the .1 suffixes into
+ # different subpackages and it's about impossible to predict the number
+ # -> perhaps later
+ return
local id="$1" file="$2" idfile
local n=1
@@ -311,19 +316,11 @@ while read nlinks inum f; do
fi
done || exit
-# For each symlink whose target has a .debug file,
-# make a .debug symlink to that file.
-find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*" -type l -print |
-while read f
-do
- t=$(readlink -m "$f").debug
- f=${f#$RPM_BUILD_ROOT}
- t=${t#$RPM_BUILD_ROOT}
- if [ -f "$debugdir$t" ]; then
- echo "symlinked /usr/lib/debug$t to /usr/lib/debug${f}.debug"
- debug_link "/usr/lib/debug$t" "${f}.debug"
- fi
-done
+# We used to make a .debug symlink for each symlink whose target
+# has a .debug file to that file. This is not necessary because
+# the debuglink section contains only the destination of those links.
+# Creating those links anyway results in debuginfo packages for
+# devel packages just because of the .so symlinks in them.
if [ -s "$SOURCEFILE" ]; then
mkdir -p "${RPM_BUILD_ROOT}/usr/src/debug"
++++++ disttag-macro.diff ++++++
Hmm, SUSE doesn't use it, so what's the purpose of this patch?
--- ./build/parsePreamble.c.orig 2011-05-11 14:27:32.000000000 +0000
+++ ./build/parsePreamble.c 2011-05-11 15:59:08.000000000 +0000
@@ -485,6 +485,7 @@ static struct optionalTag {
{ RPMTAG_PACKAGER, "%{packager}" },
{ RPMTAG_DISTRIBUTION, "%{distribution}" },
{ RPMTAG_DISTURL, "%{disturl}" },
+ { RPMTAG_DISTTAG, "%{disttag}" },
{ RPMTAG_BUGURL, "%{bugurl}" },
{ -1, NULL }
};
--- ./macros.in.orig 2011-05-11 15:38:44.000000000 +0000
+++ ./macros.in 2011-05-11 15:59:08.000000000 +0000
@@ -279,6 +279,16 @@ package or when debugging this package.\
#
#%bugurl
+# Configurable distribution tag, same as Disttag: tag in a specfile.
+# The tag will be used to supply reliable information to tools like
+# rpmfind.
+#
+# Note: You should not configure with disturl (or build packages with
+# the Disttag: tag) unless you are willing to supply content in a
+# yet-to-be-determined format at the tag specified.
+#
+#%disttag
+
# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
# marked as %doc should be installed.
#%_excludedocs
++++++ extcond.diff ++++++
This patch supports an extension in the condition evaluation.
If the condition is a format and returns an nonempty string, it is
assumed to be true.
This mechanism is used by the weakdeps patch to filter the
"RPMSENSE_STRONG" flag.
--- ./lib/headerfmt.c.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./lib/headerfmt.c 2011-05-10 17:06:49.000000000 +0000
@@ -568,8 +568,12 @@ static int parseExpression(headerSprintf
*endPtr = chptr;
+ token->u.cond.tag.type = NULL;
+ token->u.cond.tag.format = "";
token->type = PTOK_COND;
+ if ((token->u.cond.tag.type = strchr(str, ':')) != 0)
+ *token->u.cond.tag.type++ = 0;
(void) findTag(hsa, token, str);
return 0;
@@ -657,6 +661,7 @@ static char * singleSprintf(headerSprint
int i, j, found;
rpm_count_t count, numElements;
sprintfToken spft;
+ sprintfTag stag;
int condNumFormats;
size_t need;
@@ -687,6 +692,18 @@ static char * singleSprintf(headerSprint
headerIsEntry(hsa->h, token->u.cond.tag.tag)) {
spft = token->u.cond.ifFormat;
condNumFormats = token->u.cond.numIfTokens;
+ if (token->u.cond.tag.fmt) {
+ /* check if format creates output */
+ size_t vallen = hsa->vallen;
+ formatValue(hsa, &token->u.cond.tag, element);
+ if (hsa->vallen == vallen) {
+ spft = token->u.cond.elseFormat;
+ condNumFormats = token->u.cond.numElseTokens;
+ } else {
+ hsa->vallen = vallen;
+ hsa->val[hsa->vallen] = 0;
+ }
+ }
} else {
spft = token->u.cond.elseFormat;
condNumFormats = token->u.cond.numElseTokens;
@@ -710,10 +727,13 @@ static char * singleSprintf(headerSprint
for (i = 0; i < token->u.array.numTokens; i++, spft++)
{
rpmtd td = NULL;
- if (spft->type != PTOK_TAG ||
- spft->u.tag.justOne) continue;
+ if (spft->type != PTOK_TAG && spft->type != PTOK_COND)
+ continue;
+ stag = (spft->type == PTOK_COND ? &spft->u.cond.tag : &spft->u.tag);
+ if (stag->justOne)
+ continue;
- if (!(td = getData(hsa, spft->u.tag.tag))) {
+ if (!(td = getData(hsa, stag->tag))) {
continue;
}
++++++ fileattrs.diff ++++++
--- ./fileattrs/Makefile.am.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./fileattrs/Makefile.am 2012-06-01 13:39:16.000000000 +0000
@@ -6,6 +6,7 @@ fattrsdir = $(rpmconfigdir)/fileattrs
fattrs_DATA = \
desktop.attr elf.attr font.attr libtool.attr perl.attr perllib.attr \
- pkgconfig.attr python.attr ocaml.attr script.attr mono.attr
+ pkgconfig.attr python.attr ocaml.attr script.attr mono.attr \
+ debuginfo.attr elflib.attr firmware.attr ksyms.attr sysvinit.attr
EXTRA_DIST = $(fattrs_DATA)
--- ./fileattrs/debuginfo.attr.orig 2012-06-01 13:39:16.000000000 +0000
+++ ./fileattrs/debuginfo.attr 2012-06-01 13:39:16.000000000 +0000
@@ -0,0 +1,2 @@
+%__debuginfo_provides %{_rpmconfigdir}/debuginfo.prov
+%__debuginfo_path ^/usr/lib/debug/
--- ./fileattrs/elf.attr.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./fileattrs/elf.attr 2012-06-01 13:40:16.000000000 +0000
@@ -1,4 +1,5 @@
%__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
%__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
-%__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*$
+%__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*executable
%__elf_flags exeonly
+%__elf_exclude_path ^/usr/lib/debug/
--- ./fileattrs/elflib.attr.orig 2012-06-01 13:39:16.000000000 +0000
+++ ./fileattrs/elflib.attr 2012-06-01 13:39:16.000000000 +0000
@@ -0,0 +1,4 @@
+%__elflib_provides %{_rpmconfigdir}/elfdeps --assume-exec --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
+%__elflib_requires %{_rpmconfigdir}/elfdeps --assume-exec --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
+%__elflib_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*shared object
+%__elflib_exclude_path ^/usr/lib/debug/
--- ./fileattrs/firmware.attr.orig 2012-06-01 13:39:16.000000000 +0000
+++ ./fileattrs/firmware.attr 2012-06-01 13:39:16.000000000 +0000
@@ -0,0 +1,2 @@
+%__firmware_provides %{_rpmconfigdir}/firmware.prov
+%__firmware_path /lib/firmware/
--- ./fileattrs/ksyms.attr.orig 2012-06-01 13:39:16.000000000 +0000
+++ ./fileattrs/ksyms.attr 2012-06-01 13:39:16.000000000 +0000
@@ -0,0 +1,4 @@
+%__ksyms_provides %{_rpmconfigdir}/find-provides.ksyms %name
+%__ksyms_requires %{_rpmconfigdir}/find-requires.ksyms %name
+%__ksyms_supplements %{_rpmconfigdir}/find-supplements.ksyms %name
+%__ksyms_path (/lib/modules/.*\.ko(\.gz)?)|(/boot/vmlinu[xz].*)$
--- ./fileattrs/perl.attr.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./fileattrs/perl.attr 2012-06-01 13:39:16.000000000 +0000
@@ -1,3 +1,4 @@
-%__perl_requires %{_rpmconfigdir}/perl.req
+# disabled for now
+#%__perl_requires %{_rpmconfigdir}/perl.req
%__perl_magic ^.*[Pp]erl .*$
%__perl_flags exeonly
--- ./fileattrs/perllib.attr.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./fileattrs/perllib.attr 2012-06-01 13:39:16.000000000 +0000
@@ -1,3 +1,4 @@
%__perllib_provides %{_rpmconfigdir}/perl.prov
-%__perllib_requires %{_rpmconfigdir}/perl.req
+#disabled for now
+#%__perllib_requires %{_rpmconfigdir}/perl.req
%__perllib_magic ^Perl[[:digit:]] module source.*
--- ./fileattrs/sysvinit.attr.orig 2012-06-01 13:39:16.000000000 +0000
+++ ./fileattrs/sysvinit.attr 2012-06-01 13:39:16.000000000 +0000
@@ -0,0 +1,2 @@
+%__sysvinit_provides %{_rpmconfigdir}/sysvinitdeps.sh --provides
+%__sysvinit_path ^/etc/init\.d/
++++++ finddebuginfo-absolute-links.diff ++++++
From: Jan Blunck <jblunck(a)suse.de>
Subject: Do the symbolic links right in the first place
Since brp-symlink relinks symbolic links to enforce a certain policy we should
do it right in the first place. So this patch changes find-debuginfo.sh scripts
behavior to reflect that policy.
Signed-off-by: Jan Blunck <jblunck(a)suse.de>
--- ./scripts/find-debuginfo.sh.orig 2012-06-01 13:12:04.000000000 +0000
+++ ./scripts/find-debuginfo.sh 2012-06-01 13:12:17.000000000 +0000
@@ -133,7 +133,17 @@ debug_link()
local l="/usr/lib/debug$2"
local t="$1"
echo >> "$LINKSFILE" "$l $t"
- link_relative "$t" "$l" "$RPM_BUILD_ROOT"
+
+ # this should correspond to what brp-symlink is doing
+ case $t in
+ /usr*)
+ link_relative "$t" "$l" "$RPM_BUILD_ROOT"
+ ;;
+ *)
+ mkdir -p "$(dirname "$RPM_BUILD_ROOT$l")" && \
+ ln -snf "$t" "$RPM_BUILD_ROOT$l"
+ ;;
+ esac
}
# Provide .2, .3, ... symlinks to all filename instances of this build-id.
@@ -186,8 +196,8 @@ make_id_link()
local other=$(readlink -m "$root_idfile")
other=${other#$RPM_BUILD_ROOT}
- if cmp -s "$root_idfile" "$RPM_BUILD_ROOT$file" ||
- elfcmp "$root_idfile" "$RPM_BUILD_ROOT$file" ; then
+ if cmp -s "$RPM_BUILD_ROOT$other" "$RPM_BUILD_ROOT$file" ||
+ elfcmp "$RPM_BUILD_ROOT$other" "$RPM_BUILD_ROOT$file" ; then
# Two copies. Maybe one has to be setuid or something.
echo >&2 "*** WARNING: identical binaries are copied, not linked:"
echo >&2 " $file"
++++++ finddebuginfo.diff ++++++
--- ./scripts/find-debuginfo.sh.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./scripts/find-debuginfo.sh 2012-06-01 12:26:12.000000000 +0000
@@ -153,6 +153,20 @@ make_id_dup_link()
debug_link "$file" "/$idfile"
}
+# Compare two binaries but ignore the .note.gnu.build-id section
+elfcmp()
+{
+ local tmp1=$(mktemp -t ${1##*/}.XXXXXX)
+ local tmp2=$(mktemp -t ${2##*/}.XXXXXX)
+
+ objcopy -R .note.gnu.build-id -R .gnu_debuglink $1 $tmp1
+ objcopy -R .note.gnu.build-id -R .gnu_debuglink $2 $tmp2
+ cmp -s $tmp1 $tmp2
+ local res=$?
+ rm -f $tmp1 $tmp2
+ return $res
+}
+
# Make a build-id symlink for id $1 with suffix $3 to file $2.
make_id_link()
{
@@ -173,7 +187,7 @@ make_id_link()
local other=$(readlink -m "$root_idfile")
other=${other#$RPM_BUILD_ROOT}
if cmp -s "$root_idfile" "$RPM_BUILD_ROOT$file" ||
- eu-elfcmp -q "$root_idfile" "$RPM_BUILD_ROOT$file" 2> /dev/null; then
+ elfcmp "$root_idfile" "$RPM_BUILD_ROOT$file" ; then
# Two copies. Maybe one has to be setuid or something.
echo >&2 "*** WARNING: identical binaries are copied, not linked:"
echo >&2 " $file"
@@ -202,12 +216,18 @@ strict_error=ERROR
$strict || strict_error=WARNING
# Strip ELF binaries
-find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
- \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
- -print |
-file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' |
-xargs --no-run-if-empty stat -c '%h %D_%i %n' |
+find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm /111 -or -name "*.so*" -or -name "*.ko" \) -print 0 | sort -z |
+xargs --no-run-if-empty -0 stat -c '%h %D_%i %n' |
while read nlinks inum f; do
+ case $(objdump -h $f 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') in
+ *debuglink*) continue ;;
+ *debug*) ;;
+ *gnu.version*)
+ echo "WARNING: "`echo $f | sed -e "s,^$RPM_BUILD_ROOT/*,/,"`" is already stripped!"
+ continue
+ ;;
+ *) continue ;;
+ esac
get_debugfn "$f"
[ -f "${debugfn}" ] && continue
@@ -231,8 +251,11 @@ while read nlinks inum f; do
fi
echo "extracting debug info from $f"
- id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
- -i -l "$SOURCEFILE" "$f") || exit
+ mode=$(stat -c %a "$f")
+ chmod +w "$f"
+ id=$($(DEBUGEDIT=$(which debugedit 2>/dev/null); \
+ echo ${DEBUGEDIT:-/usr/lib/rpm/debugedit}) -b "$RPM_BUILD_DIR" \
+ -d /usr/src/debug -i -l "$SOURCEFILE" "$f") || exit
if [ $nlinks -gt 1 ]; then
eval linkedid_$inum=\$id
fi
@@ -252,13 +275,25 @@ while read nlinks inum f; do
esac
mkdir -p "${debugdn}"
- if test -w "$f"; then
- strip_to_debug "${debugfn}" "$f"
- else
- chmod u+w "$f"
- strip_to_debug "${debugfn}" "$f"
- chmod u-w "$f"
- fi
+ objcopy --only-keep-debug $f $debugfn || :
+ (
+ shopt -s extglob
+ strip_option="--strip-all"
+ case "$f" in
+ *.ko)
+ strip_option="--strip-debug" ;;
+ *$STRIP_KEEP_SYMTAB*)
+ if test -n "$STRIP_KEEP_SYMTAB"; then
+ strip_option="--strip-debug"
+ fi
+ ;;
+ esac
+ if test "$NO_DEBUGINFO_STRIP_DEBUG" = true ; then
+ strip_option=
+ fi
+ objcopy --add-gnu-debuglink=$debugfn -R .comment -R .GCC.command.line $strip_option $f
+ chmod $mode $f
+ ) || :
if [ -n "$id" ]; then
make_id_link "$id" "$dn/$(basename $f)"
@@ -287,12 +322,14 @@ if [ -s "$SOURCEFILE" ]; then
# stupid cpio creates new directories in mode 0700, fixup
find "${RPM_BUILD_ROOT}/usr/src/debug" -type d -print0 |
xargs --no-run-if-empty -0 chmod a+rx
+ find "${RPM_BUILD_ROOT}/usr/src/debug" -type f -print0 |
+ xargs --no-run-if-empty -0 chmod a+r
fi
if [ -d "${RPM_BUILD_ROOT}/usr/lib" -o -d "${RPM_BUILD_ROOT}/usr/src" ]; then
((nout > 0)) ||
test ! -d "${RPM_BUILD_ROOT}/usr/lib" ||
- (cd "${RPM_BUILD_ROOT}/usr/lib"; find debug -type d) |
+ (cd "${RPM_BUILD_ROOT}/usr/lib"; test ! -d debug || find debug -type d) |
sed 's,^,%dir /usr/lib/,' >> "$LISTFILE"
(cd "${RPM_BUILD_ROOT}/usr"
++++++ findksyms.diff ++++++
SUSE specific kernel provides/requires scripts
--- scripts/find-provides.ksyms.orig 2013-07-12 14:08:40.000000000 +0000
+++ scripts/find-provides.ksyms 2013-07-12 14:08:54.000000000 +0000
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+IFS=$'\n'
+
+while read f; do
+ test -e "$f" || continue
+ case "$f" in
+ *.debug)
+ ;;
+ */boot/vmlinu[xz]-*)
+ flavor=${f##*/vmlinu[xz]-}
+ flavor=${flavor%.gz}
+ echo "kernel-uname-r = $flavor"
+ ;;
+ esac
+done \
+| sort -u
--- scripts/find-requires.ksyms.orig 2013-07-12 14:08:45.000000000 +0000
+++ scripts/find-requires.ksyms 2013-07-12 14:08:33.000000000 +0000
@@ -0,0 +1,15 @@
+#! /bin/bash
+
+IFS=$'\n'
+
+while read f; do
+ test -e "$f" || continue
+ case "$f" in
+ */lib/modules/*/*.ko | */lib/modules/*/*.ko.gz)
+ flavor=${f#*/lib/modules/}
+ flavor=${flavor%%/*}
+ echo "kernel-uname-r = $flavor"
+ ;;
+ esac
+done \
+| sort -u
--- scripts/Makefile.am
+++ scripts/Makefile.am
@@ -15,6 +15,7 @@
rpmdb_loadcvt rpm.daily rpm.log rpm.supp rpm2cpio.sh \
tcl.req tgpg vpkg-provides.sh \
find-requires.php find-provides.php \
+ find-requires.ksyms find-provides.ksyms \
find-php-provides find-php-requires \
mono-find-requires mono-find-provides \
ocaml-find-requires.sh ocaml-find-provides.sh \
@@ -30,6 +31,7 @@
check-buildroot check-rpaths check-rpaths-worker \
find-lang.sh \
perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \
+ find-requires.ksyms find-provides.ksyms \
mono-find-requires mono-find-provides \
pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \
++++++ findlang.diff ++++++
--- ./scripts/find-lang.sh.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./scripts/find-lang.sh 2012-06-01 12:35:41.000000000 +0000
@@ -28,10 +28,10 @@ the top of the tree containing the files
PACKAGE_NAME is the %{name} of the package. This should also be
the basename of the .mo files. the output is written to
PACKAGE_NAME.lang unless \$3 is given in which case output is written
-to \$3.
+to \$3 (note that \$3 is appended to if given).
Additional options:
- --with-gnome find GNOME help files
- --with-kde find KDE help files
+ --without-gnome do not find GNOME help files
+ --without-kde do not find KDE help files
--with-qt find Qt translation files
--with-man find localized man pages
--all-name match all package/domain names
@@ -54,8 +54,8 @@ else NAME=$1
fi
shift
-GNOME=#
-KDE=#
+GNOME=
+KDE=
QT=#
MAN=#
MO=
@@ -73,6 +73,14 @@ while test $# -gt 0 ; do
KDE=
shift
;;
+ --without-gnome )
+ GNOME=#
+ shift
+ ;;
+ --without-kde )
+ KDE=#
+ shift
+ ;;
--with-qt )
QT=
shift
@@ -97,13 +105,19 @@ while test $# -gt 0 ; do
esac
done
+if ! test -s $MO_NAME ; then
+ echo "%defattr (644, root, root, 755)" > $MO_NAME
+fi
+MO_NAME_NEW=$MO_NAME.tmp.$$
+rm -f $MO_NAME_NEW
+
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' > $MO_NAME
+/^$/d' > $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
@@ -111,27 +125,27 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
-'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir \1:
+'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir %doc \1:
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\)::
-'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2:
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
+'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) %doc \1\2:
+'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%dir %doc \1:
'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\)::
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2:
+'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) %doc \1\2:
s:%lang(.*) .*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*::
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'$\):%dir \1:
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
s:^\([^%].*\)::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type f|sed '
s:'"$TOP_DIR"'::
@@ -139,7 +153,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
s:^[^%].*::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null`
if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then
@@ -151,7 +165,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
fi
KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null`
@@ -164,7 +178,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
fi
find "$TOP_DIR" -type f -o -type l|sed '
@@ -176,7 +190,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
s:^[^%].*::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
@@ -184,17 +198,22 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
-if ! grep -q / $MO_NAME; then
+if ! grep -q / $MO_NAME_NEW; then
echo "No translations found for ${NAME} in ${TOP_DIR}"
+ rm -f $MO_NAME_NEW
exit 1
fi
+
+sort -u $MO_NAME_NEW >> $MO_NAME
+rm -f $MO_NAME_NEW
+
exit 0
++++++ findsupplements.diff ++++++
Add support for supplements to the internal dependency generator.
--- ./build/rpmfc.c.orig 2013-07-12 12:18:29.000000000 +0000
+++ ./build/rpmfc.c 2013-07-12 12:18:48.000000000 +0000
@@ -58,6 +58,7 @@ struct rpmfc_s {
rpmds provides; /*!< (no. provides) package provides */
rpmds requires; /*!< (no. requires) package requires */
+ rpmds supplements; /*!< (no. supplements) package supplements */
};
struct rpmfcTokens_s {
@@ -546,6 +547,22 @@ static int rpmfcHelperRequires(rpmfc fc,
return 0;
}
+/**
+ * Run per-interpreter Supplements: dependency helper.
+ * @param fc file classifier
+ * @param nsdep class name for interpreter (e.g. "perl")
+ * @return 0
+ */
+static int rpmfcHelperSupplements(rpmfc fc, const char * nsdep)
+{
+ if (fc->skipReq)
+ return 0;
+
+ rpmfcHelper(fc, nsdep, "supplements", &fc->supplements, RPMSENSE_FIND_REQUIRES|RPMSENSE_STRONG|RPMSENSE_MISSINGOK, RPMTAG_ENHANCESNAME);
+
+ return 0;
+}
+
/* Only used for elf coloring and controlling RPMTAG_FILECLASS inclusion now */
static const struct rpmfcTokens_s rpmfcTokens[] = {
{ "directory", RPMFC_INCLUDE },
@@ -763,6 +780,7 @@ rpmfc rpmfcFree(rpmfc fc)
rpmdsFree(fc->provides);
rpmdsFree(fc->requires);
+ rpmdsFree(fc->supplements);
memset(fc, 0, sizeof(*fc)); /* trash and burn */
free(fc);
}
@@ -794,6 +812,11 @@ rpmds rpmfcRequires(rpmfc fc)
return (fc != NULL ? fc->requires : NULL);
}
+rpmds rpmfcSupplements(rpmfc fc)
+{
+ return (fc != NULL ? fc->supplements : NULL);
+}
+
rpmRC rpmfcApply(rpmfc fc)
{
const char * s;
@@ -814,6 +837,7 @@ rpmRC rpmfcApply(rpmfc fc)
for (ARGV_t fattr = fc->fattrs[fc->ix]; fattr && *fattr; fattr++) {
rpmfcHelperProvides(fc, *fattr);
rpmfcHelperRequires(fc, *fattr);
+ rpmfcHelperSupplements(fc, *fattr);
}
}
/* No more additions after this, freeze pool to minimize memory use */
@@ -858,6 +882,11 @@ rpmRC rpmfcApply(rpmfc fc)
dix = rpmdsFind(fc->requires, ds);
rpmdsFree(ds);
break;
+ case 'S':
+ ds = rpmdsSingle(RPMTAG_ENHANCESNAME, N, EVR, Flags);
+ dix = rpmdsFind(fc->supplements, ds);
+ ds = rpmdsFree(ds);
+ break;
}
if (dix < 0)
@@ -1341,6 +1370,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec
}
}
+ /* Add Supplements: */
+ if (!fc->skipReq) {
+ rpmds pi = rpmdsInit(fc->supplements);
+ while (rpmdsNext(pi) >= 0) {
+ rpmsenseFlags flags = rpmdsFlags(pi);
+
+ headerPutString(pkg->header, RPMTAG_ENHANCESNAME, rpmdsN(pi));
+ headerPutString(pkg->header, RPMTAG_ENHANCESVERSION, rpmdsEVR(pi));
+ headerPutUint32(pkg->header, RPMTAG_ENHANCESFLAGS, &flags, 1);
+ }
+ }
+
/* Add dependency dictionary(#dependencies) */
if (rpmtdFromArgi(&td, RPMTAG_DEPENDSDICT, fc->ddictx)) {
headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
--- ./build/rpmfc.h.orig 2012-11-18 08:21:06.000000000 +0000
+++ ./build/rpmfc.h 2013-07-12 12:18:48.000000000 +0000
@@ -106,6 +106,13 @@ rpmds rpmfcProvides(rpmfc fc);
*/
rpmds rpmfcRequires(rpmfc fc);
+/** \ingroup rpmfc
+ * Retrieve file classification supplements
+ * @param fc file classifier
+ * @return rpmds dependency set of fc requires
+ */
+rpmds rpmfcSupplements(rpmfc fc);
+
#ifdef __cplusplus
}
#endif
++++++ firmware.diff ++++++
Index: autodeps/linux.prov
===================================================================
--- autodeps/linux.prov.orig 2011-06-08 13:28:10.000000000 +0200
+++ autodeps/linux.prov 2011-06-08 13:28:51.755445342 +0200
@@ -11,6 +11,7 @@ solist=($(printf "%s\n" "${filelist[@]}"
pythonlist=
tcllist=
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
+firmwarelist=($(printf "%s\n" "${filelist[@]}" | grep "/lib/firmware/"))
#
# --- Alpha does not mark 64bit dependencies
@@ -59,6 +60,11 @@ done | sort -u
printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.prov | sort -u
#
+# --- firmware files
+[ -x /usr/lib/rpm/firmware.prov -a -n "$firmwarelist" ] &&
+ printf "%s\n" "${firmwarelist[@]}" | /usr/lib/rpm/firmware.prov | sort -u
+
+#
# --- Mono exes/dlls
: ${MONO_PREFIX=/usr}
if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
Index: scripts/firmware.prov
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ scripts/firmware.prov 2011-06-08 13:28:33.117204009 +0200
@@ -0,0 +1,8 @@
+#!/bin/sh
+# Add firmware files in /lib/firmware into RPM provides
+
+while read instfile ; do
+ case $instfile in
+ */lib/firmware/*) test -f "$instfile" && echo "firmware(${instfile##*/lib/firmware/})" ;;
+ esac
+done
++++++ fontprovides.diff ++++++
Index: autodeps/linux.prov
===================================================================
--- autodeps/linux.prov.orig 2011-06-08 13:37:46.951974468 +0200
+++ autodeps/linux.prov 2011-06-08 13:37:46.967972960 +0200
@@ -15,6 +15,8 @@ pythonlist=($(printf "%s\n" "${filelist[
tcllist=
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
firmwarelist=($(printf "%s\n" "${filelist[@]}" | grep "/lib/firmware/"))
+pkgconfiglist=($(printf "%s\n" "${filelist[@]}" | egrep '\.pc$'))
+fontlist=($(printf "%s\n" "${filelist[@]}" | egrep -i "/usr/share/fonts/.*\.(ttf|otf|pfa)$"))
#
# --- Alpha does not mark 64bit dependencies
@@ -80,6 +82,16 @@ if [ -x $MONO_PREFIX/bin/mono -a -n "$mo
fi
#
+# --- pkgconfig provides
+[ -x /usr/lib/rpm/pkgconfigdeps.sh -a -n "$pkgconfiglist" ] &&
+ printf "%s\n" "${pkgconfiglist[@]}" | /usr/lib/rpm/pkgconfigdeps.sh -P | sort -u
+
+#
+# --- font provides
+[ -x /usr/lib/rpm/fontconfig.prov -a -n "$fontlist" ] &&
+ printf "%s\n" "${fontlist[@]}" | /usr/lib/rpm/fontconfig.prov | sort -u
+
+#
# --- Kernel module exported symbols
[ -x /usr/lib/rpm/find-provides.ksyms ] &&
printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
Index: autodeps/linux.req
===================================================================
--- autodeps/linux.req.orig 2011-06-08 13:37:46.951974468 +0200
+++ autodeps/linux.req 2011-06-08 13:37:46.968972865 +0200
@@ -34,6 +34,7 @@ perllist=()
pythonlist=($(printf "%s\n" "${filelist[@]}" | egrep '/usr/lib[^/]*/python.\..'))
tcllist=()
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)(\\.config)?\$"))
+pkgconfiglist=($(printf "%s\n" "${filelist[@]}" | egrep '\.pc$'))
#
# --- Alpha does not mark 64bit dependencies
@@ -143,6 +144,11 @@ if [ -x $MONO_PREFIX/bin/mono -a -n "$mo
fi
#
+# --- pkgconfig requires
+[ -x /usr/lib/rpm/pkgconfigdeps.sh -a -n "$pkgconfiglist" ] &&
+ printf "%s\n" "${pkgconfiglist[@]}" | /usr/lib/rpm/pkgconfigdeps.sh -R | sort -u
+
+#
# --- Kernel module imported symbols
[ -x ${0%/*}/find-requires.ksyms ] &&
printf "%s\n" "${filelist[@]}" | ${0%/*}/find-requires.ksyms "$@"
++++++ getauxval.diff ++++++
commit 60835b20180c1be351ff95fa8c8d930afada0e4c
Author: Kirill A. Shutemov <kirill(a)shutemov.name>
Date: Mon Jul 1 03:25:32 2013 +0300
Use getauxval(3) to read auxv data
glibc >= 2.16 provides getauxval(): a reliable way to retrieve a value
from the auxiliary vector. It doesn't rely on /proc filesystem.
Let's switch to it and get rid of /proc dependency.
Signed-off-by: Kirill A. Shutemov <kirill(a)shutemov.name>
Signed-off-by: Panu Matilainen <pmatilai(a)redhat.com>
--- configure.ac.orig 2013-07-12 12:25:38.000000000 +0000
+++ configure.ac 2013-07-12 12:35:18.000000000 +0000
@@ -518,6 +518,7 @@ dnl Checks for library functions.
AC_CHECK_FUNCS(putenv)
AC_CHECK_FUNCS(mempcpy)
AC_CHECK_FUNCS(fdatasync)
+AC_CHECK_FUNCS(getauxval)
AC_REPLACE_FUNCS(stpcpy stpncpy)
--- lib/rpmrc.c.orig 2013-07-12 12:25:38.000000000 +0000
+++ lib/rpmrc.c 2013-07-12 12:34:34.000000000 +0000
@@ -20,6 +20,10 @@
#define __power_pc() 0
#endif
+#ifdef HAVE_GETAUXVAL
+#include <sys/auxv.h>
+#endif
+
#include <rpm/rpmlib.h> /* RPM_MACTABLE*, Rc-prototypes */
#include <rpm/rpmmacro.h>
#include <rpm/rpmfileutil.h>
@@ -922,13 +926,19 @@ static int is_geode(void)
#if defined(__linux__) && defined(__powerpc__)
/**
- * Populate rpmat structure with parsed info from /proc/self/auxv
+ * Populate rpmat structure with auxv values
*/
-static void parse_auxv(void)
+static void read_auxv(void)
{
static int oneshot = 1;
if (oneshot) {
+#ifdef HAVE_GETAUXVAL
+ rpmat.platform = (char *) getauxval(AT_PLATFORM);
+ if (!rpmat.platform)
+ rpmat.platform = "";
+ rpmat.hwcap = getauxval(AT_HWCAP);
+#else
rpmat.platform = "";
int fd = open("/proc/self/auxv", O_RDONLY);
@@ -953,6 +963,7 @@ static void parse_auxv(void)
}
close(fd);
}
+#endif
oneshot = 0; /* only try once even if it fails */
}
return;
@@ -972,7 +983,7 @@ static void defaultMachine(const char **
#if defined(__linux__) && defined(__powerpc__)
/* Populate rpmat struct with hw info */
- parse_auxv();
+ read_auxv();
#endif
while (!gotDefaults) {
++++++ headeradddb.diff ++++++
Add rpmtsHeaderAddDB and rpmtsHeaderRemoveDB so that
convertdb1 will build again.
--- lib/rpmts.c.orig 2011-05-12 13:21:03.000000000 +0000
+++ lib/rpmts.c 2011-05-12 13:26:25.000000000 +0000
@@ -159,6 +159,24 @@ int rpmtsVerifyDB(rpmts ts)
return rc;
}
+int rpmtsHeaderAddDB(rpmts ts, Header h)
+{
+ if (rpmtsOpenDB(ts, (O_RDWR|O_CREAT)))
+ return RPMRC_FAIL;
+ if (rpmdbAdd(rpmtsGetRdb(ts), h) != 0)
+ return RPMRC_FAIL;
+ return RPMRC_OK;
+}
+
+int rpmtsHeaderRemoveDB(rpmts ts, unsigned int hdrNum)
+{
+ if (rpmtsOpenDB(ts, (O_RDWR|O_CREAT)))
+ return RPMRC_FAIL;
+ if (rpmdbRemove(rpmtsGetRdb(ts), hdrNum) != 0)
+ return RPMRC_FAIL;
+ return RPMRC_OK;
+}
+
/* keyp might no be defined. */
rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag,
const void * keyp, size_t keylen)
--- lib/rpmts.h.orig 2011-05-12 13:21:11.000000000 +0000
+++ lib/rpmts.h 2011-05-12 13:28:32.000000000 +0000
@@ -264,6 +264,22 @@ int rpmtsRebuildDB(rpmts ts);
int rpmtsVerifyDB(rpmts ts);
/** \ingroup rpmts
+ * Add a header to the database used by the transaction.
+ * @param ts transaction set
+ * @param h header to add
+ * @return 0 on success
+ */
+int rpmtsHeaderAddDB(rpmts ts, Header h);
+
+/** \ingroup rpmts
+ * Remove a header from the database used by the transaction.
+ * @param ts transaction set
+ * @param hdrNum index of header to remove
+ * @return 0 on success
+ */
+int rpmtsHeaderRemoveDB(rpmts ts, unsigned int hdrNum);
+
+/** \ingroup rpmts
* Return transaction database iterator.
* @param ts transaction set
* @param rpmtag database index tag
++++++ headerchk2.diff ++++++
--- lib/header.c.orig 2012-04-03 13:29:24.000000000 +0000
+++ lib/header.c 2012-06-01 14:22:12.000000000 +0000
@@ -900,7 +900,8 @@ Header headerImport(void * blob, unsigne
rdlen += REGION_TAG_COUNT;
- if (rdlen != dl)
+ /* should be equality test, but can be off if entries are not perfectly aligned */
+ if (rdlen > dl)
goto errxit;
}
++++++ helperenv.diff ++++++
--- macros.in.orig 2012-04-18 13:48:07.000000000 +0000
+++ macros.in 2012-04-18 13:47:41.000000000 +0000
@@ -515,7 +515,7 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
# %__myattr_exclude_magic exclude by magic regex
# %__myattr_exclude_path exclude by path regex
#
-%_fileattrsdir %{_rpmconfigdir}/fileattrs
+%_fileattrsdir %{__set_helper_env}%{_rpmconfigdir}/fileattrs
#==============================================================================
# ---- Database configuration macros.
++++++ ignore-auxv.diff ++++++
--- lib/rpmrc.c
+++ lib/rpmrc.c
@@ -79,10 +79,12 @@
int localize;
};
+#if defined(__linux__) && defined(__powerpc__)
static struct rpmat_s {
const char *platform;
uint64_t hwcap;
} rpmat;
+#endif
typedef struct defaultEntry_s {
char * name;
@@ -907,7 +909,7 @@
#endif
-#if defined(__linux__)
+#if defined(__linux__) && defined(__powerpc__)
/**
* Populate rpmat structure with parsed info from /proc/self/auxv
*/
@@ -957,7 +959,7 @@
canonEntry canon;
int rc;
-#if defined(__linux__)
+#if defined(__linux__) && defined(__powerpc__)
/* Populate rpmat struct with hw info */
parse_auxv();
#endif
++++++ ignore_poolstr_dummy_entries.diff ++++++
--- build/rpmfc.c.orig 2013-09-11 17:13:39.165560997 +0000
+++ build/rpmfc.c 2013-09-11 17:13:52.171560974 +0000
@@ -848,6 +848,8 @@ rpmRC rpmfcApply(rpmfc fc)
previx = -1;
for (rpmsid id = 1; id <= nddict; id++) {
s = rpmstrPoolStr(fc->ddict, id);
+ if (!s || !*s)
+ continue;
/* Parse out (file#,deptype,N,EVR,Flags) */
ix = strtol(s, &se, 10);
++++++ initscriptsprov.diff ++++++
Index: autodeps/linux.prov
===================================================================
--- autodeps/linux.prov.orig 2011-12-09 15:13:23.686700264 +0100
+++ autodeps/linux.prov 2011-12-09 15:13:23.733698039 +0100
@@ -101,4 +101,9 @@ fi
[ -x /usr/lib/rpm/gstreamer-provides ] &&
printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/gstreamer-provides | sort -u
+#
+# --- Provides of sysvinit scripts
+[ -x /usr/lib/rpm/sysvinitdeps.sh ] &&
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/sysvinitdeps.sh -P | sort -u
+
exit 0
Index: scripts/Makefile.am
===================================================================
--- scripts/Makefile.am.orig 2011-12-09 15:13:22.917736665 +0100
+++ scripts/Makefile.am 2011-12-09 15:13:23.733698039 +0100
@@ -21,6 +21,7 @@ EXTRA_DIST = \
ocaml-find-requires.sh ocaml-find-provides.sh \
pkgconfigdeps.sh libtooldeps.sh \
fontconfig.prov desktop-file.prov script.req \
+ sysvinitdeps.sh \
macros.perl macros.php macros.python
rpmconfig_SCRIPTS = \
@@ -37,6 +38,7 @@ rpmconfig_SCRIPTS = \
pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \
fontconfig.prov desktop-file.prov script.req \
+ sysvinitdeps.sh \
rpmdb_loadcvt rpm2cpio.sh tcl.req tgpg
rpmconfig_DATA = \
Index: scripts/sysvinitdeps.sh
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ scripts/sysvinitdeps.sh 2011-12-09 15:13:23.733698039 +0100
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+[ "$1" = '-P' -o "$1" = '--provides' ] || {
+ cat > /dev/null
+ exit 0
+}
+
+while read file; do
+ case $file in
+ */etc/init.d/*)
+ provs=`grep '^# *Provides:' $file | sed 's,^.*:,,'`
+ for p in $provs; do
+ echo "sysvinit($p)"
+ done
+ ;;
+ esac
+done
++++++ installnoglob.diff ++++++
--- ./lib/rpminstall.c.orig 2012-11-18 08:21:06.000000000 +0000
+++ ./lib/rpminstall.c 2015-01-08 15:18:42.376496782 +0000
@@ -385,6 +385,19 @@ static int checkFreshenStatus(rpmts ts,
return (oldH != NULL);
}
+static int rpmNoGlob(const char *fn, int *argcPtr, ARGV_t * argvPtr)
+{
+ struct stat sb;
+ int rc = stat(fn, &sb);
+ if (rc == 0) {
+ argvAdd(argvPtr, fn);
+ *argcPtr = 1;
+ } else {
+ *argcPtr = 0;
+ }
+ return rc;
+}
+
/** @todo Generalize --freshen policies. */
int rpmInstall(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_t fileArgv)
{
@@ -417,13 +430,20 @@ int rpmInstall(rpmts ts, struct rpmInsta
for (eiu->fnp = fileArgv; *eiu->fnp != NULL; eiu->fnp++) {
ARGV_t av = NULL;
int ac = 0;
- char * fn;
- fn = rpmEscapeSpaces(*eiu->fnp);
- rc = rpmGlob(fn, &ac, &av);
- fn = _free(fn);
+ if (giFlags & RPMGI_NOGLOB) {
+ rc = rpmNoGlob(*eiu->fnp, &ac, &av);
+ } else {
+ char * fn = rpmEscapeSpaces(*eiu->fnp);
+ rc = rpmGlob(fn, &ac, &av);
+ fn = _free(fn);
+ }
if (rc || ac == 0) {
- rpmlog(RPMLOG_ERR, _("File not found by glob: %s\n"), *eiu->fnp);
+ if (giFlags & RPMGI_NOGLOB) {
+ rpmlog(RPMLOG_ERR, _("File not found: %s\n"), *eiu->fnp);
+ } else {
+ rpmlog(RPMLOG_ERR, _("File not found by glob: %s\n"), *eiu->fnp);
+ }
eiu->numFailed++;
continue;
}
++++++ installprefix.diff ++++++
commit 88d24b14a8e0e33e768cb74a3487acf0925b012a
Author: Panu Matilainen <pmatilai(a)redhat.com>
Date: Fri Jul 5 10:27:18 2013 +0300
Ensure relocatable packages always get install-prefix(es) set (RhBug:979443)
- Scriptlets from relocatable packages should always run with
$RPM_INSTALL_PREFIX* defined, whether actually being relocated or not.
- Fixes regression introduced by the optimization in commit
5d3018c4ed476b1b7ac18e2573af517f872cb303. We always need to call
addPrefixes() but return early from rpmRelocateFileList() when
no relocations are taking place, fixing the performance regression
introduced all the way back in cb8241dda783f7e8c143b08fecf57fe89a39c3a6
which is what 5d3018c4ed476b1b7ac18e2573af517f872cb303 was trying
to fix. Pooh :)
--- ./lib/rpmfi.c.orig 2013-06-10 15:55:10.000000000 +0000
+++ ./lib/rpmfi.c 2013-12-19 15:00:52.808435567 +0000
@@ -793,7 +793,8 @@ static int addPrefixes(Header h, rpmRelo
headerPutStringArray(h, RPMTAG_INSTPREFIXES, actualRelocations, numActual);
}
free(actualRelocations);
- return numActual;
+ /* When any relocations are present there'll be more work to do */
+ return 1;
}
static void saveRelocs(Header h, rpmtd bnames, rpmtd dnames, rpmtd dindexes)
@@ -835,7 +836,8 @@ void rpmRelocateFileList(rpmRelocation *
int i, j;
struct rpmtd_s bnames, dnames, dindexes, fmodes;
- addPrefixes(h, relocations, numRelocations);
+ if (!addPrefixes(h, relocations, numRelocations))
+ return;
if (!_printed) {
_printed = 1;
--- ./lib/rpmte.c.orig 2012-11-18 08:21:42.000000000 +0000
+++ ./lib/rpmte.c 2013-12-19 15:00:52.808435567 +0000
@@ -98,7 +98,7 @@ static rpmfi getFI(rpmte p, Header h)
(RPMFI_NOHEADER | RPMFI_FLAGS_ERASE);
/* relocate stuff in header if necessary */
- if (rpmteType(p) == TR_ADDED && rpmfsFC(p->fs) > 0 && p->nrelocs) {
+ if (rpmteType(p) == TR_ADDED && rpmfsFC(p->fs) > 0) {
if (!headerIsSource(h) && !headerIsEntry(h, RPMTAG_ORIGBASENAMES)) {
rpmRelocateFileList(p->relocs, p->nrelocs, p->fs, h);
}
++++++ langnoc.diff ++++++
--- ./macros.in.orig 2012-06-01 14:10:18.000000000 +0000
+++ ./macros.in 2012-06-01 14:10:29.000000000 +0000
@@ -1204,6 +1204,7 @@ EOF
# %files -f %{name}.lang
#
%find_lang %{_rpmconfigdir}/find-lang.sh %{buildroot}
+%no_lang_C --without-C
# Commands + opts to use for retrieving remote files
# Proxy opts can be set through --httpproxy/--httpport popt aliases,
--- ./scripts/find-lang.sh.orig 2012-06-01 14:10:18.000000000 +0000
+++ ./scripts/find-lang.sh 2012-06-01 14:14:47.000000000 +0000
@@ -62,6 +62,8 @@ MO=
MO_NAME=$NAME.lang
ALL_NAME=#
NO_ALL_NAME=
+ONLY_C=#
+NO_C=#
while test $# -gt 0 ; do
case "${1}" in
@@ -98,6 +100,14 @@ while test $# -gt 0 ; do
NO_ALL_NAME=#
shift
;;
+ --with-only-C )
+ ONLY_C=
+ shift
+ ;;
+ --without-C )
+ NO_C=
+ shift
+ ;;
* )
MO_NAME=${1}
shift
@@ -133,6 +143,8 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' > $MO_NAME_NEW
@@ -141,19 +153,23 @@ s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/'"$NAME"'\)$:%lang(\2) %doc \1\2\3\4/:
'"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/:
s:^\([^%].*\)::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
-'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir %doc \1:
+'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%lang(C) %dir %doc \1:
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\)::
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) %doc \1\2:
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%dir %doc \1:
+'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%lang(C) %dir %doc \1:
'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\)::
'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) %doc \1\2:
s:%lang(.*) .*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*::
s:^\([^%].*\)::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
@@ -169,6 +185,8 @@ s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1:
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
s:^[^%].*::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
@@ -181,6 +199,8 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
fi
@@ -194,6 +214,8 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
fi
@@ -206,6 +228,8 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1:
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
s:^[^%].*::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
@@ -214,6 +238,8 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\)::
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
s:^\([^%].*\)::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
@@ -221,6 +247,8 @@ find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*:
s:^\([^%].*\)::
+'"$ONLY_C"'/%lang(C)/!d
+'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
++++++ lazystatfs.diff ++++++
Prefer sys/vfs.h, as statvfs stats all filesystems again
--- ./configure.ac.orig 2011-05-12 12:36:32.000000000 +0000
+++ ./configure.ac 2011-05-12 12:36:42.000000000 +0000
@@ -402,25 +402,25 @@ dnl
found_struct_statfs=no
if test X$found_struct_statfs = Xno ; then
-dnl Solaris 2.6+ wants to use statvfs
+dnl first try including sys/vfs.h
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
-#include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in sys/statvfs.h)
- AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
- [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
+#include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/vfs.h)
+ AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux systems)])
found_struct_statfs=yes],[])
fi
if test X$found_struct_statfs = Xno ; then
-dnl first try including sys/vfs.h
+dnl Solaris 2.6+ wants to use statvfs
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
-#include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/vfs.h)
- AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux systems)])
+#include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in sys/statvfs.h)
+ AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
+ [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
found_struct_statfs=yes],[])
fi
--- ./lib/transaction.c.orig 2011-05-12 12:36:55.000000000 +0000
+++ ./lib/transaction.c 2011-05-12 12:38:03.000000000 +0000
@@ -114,7 +114,11 @@ static rpmDiskSpaceInfo rpmtsCreateDSI(c
dsi->bneeded = 0;
dsi->ineeded = 0;
#ifdef STATFS_HAS_F_BAVAIL
+# ifdef ST_RDONLY
dsi->bavail = (sfb.f_flag & ST_RDONLY) ? 0 : sfb.f_bavail;
+# else
+ dsi->bavail = sfb.f_bavail;
+# endif
#else
/* FIXME: the statfs struct doesn't have a member to tell how many blocks are
* available for non-superusers. f_blocks - f_bfree is probably too big, but
++++++ localetag.diff ++++++
Convert output to the current locale. Assumes utf8 input if the
decoding works, otherwise iso-8859-1.
--- ./lib/tagexts.c.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./lib/tagexts.c 2011-05-10 16:05:30.000000000 +0000
@@ -2,6 +2,7 @@
* \file lib/formats.c
*/
+#include <wchar.h>
#include "system.h"
#include <rpm/rpmtypes.h>
@@ -150,6 +151,114 @@ exit:
return rc;
}
+static char * strtolocale(char *str)
+{
+ wchar_t *wstr, *wp;
+ const unsigned char *cp;
+ char *cc;
+ int state = 0;
+ int c;
+ int ccl, cca, mb_cur_max;
+ size_t l;
+ mbstate_t ps;
+ int strisutf8 = 1;
+ int locisutf8 = 1;
+
+ if (!str)
+ return 0;
+ if (!*str)
+ return str;
+ wstr = (wchar_t *)xmalloc((strlen(str) + 1) * sizeof(*wstr));
+ wp = wstr;
+ cp = (const unsigned char *)str;
+ while ((c = *cp++) != 0) {
+ if (state) {
+ if ((c & 0xc0) != 0x80) {
+ /* encoding error */
+ break;
+ }
+ c = (c & 0x3f) | (state << 6);
+ if (!(state & 0x40000000)) {
+ /* check for overlong sequences */
+ if ((c & 0x820823e0) == 0x80000000)
+ c = 0xfdffffff;
+ else if ((c & 0x020821f0) == 0x02000000)
+ c = 0xfff7ffff;
+ else if ((c & 0x000820f8) == 0x00080000)
+ c = 0xffffd000;
+ else if ((c & 0x0000207c) == 0x00002000)
+ c = 0xffffff70;
+ }
+ } else {
+ /* new sequence */
+ if (c >= 0xfe)
+ c = 0xfffd;
+ else if (c >= 0xfc)
+ c = (c & 0x01) | 0xbffffffc; /* 5 bytes to follow */
+ else if (c >= 0xf8)
+ c = (c & 0x03) | 0xbfffff00; /* 4 */
+ else if (c >= 0xf0)
+ c = (c & 0x07) | 0xbfffc000; /* 3 */
+ else if (c >= 0xe0)
+ c = (c & 0x0f) | 0xbff00000; /* 2 */
+ else if (c >= 0xc2)
+ c = (c & 0x1f) | 0xfc000000; /* 1 */
+ else if (c >= 0xc0)
+ c = 0xfdffffff; /* overlong */
+ else if (c >= 0x80)
+ c = 0xfffd;
+ }
+ state = (c & 0x80000000) ? c : 0;
+ if (state)
+ continue;
+ *wp++ = (wchar_t)c;
+ }
+ if (state) {
+ /* encoding error, assume latin1 */
+ strisutf8 = 0;
+ cp = (const unsigned char *)str;
+ wp = wstr;
+ while ((c = *cp++) != 0) {
+ *wp++ = (wchar_t)c;
+ }
+ }
+ *wp = 0;
+ mb_cur_max = MB_CUR_MAX;
+ memset(&ps, 0, sizeof(ps));
+ cc = xmalloc(mb_cur_max);
+ /* test locale encoding */
+ if (wcrtomb(cc, 0x20ac, &ps) != 3 || memcmp(cc, "\342\202\254", 3))
+ locisutf8 = 0;
+ if (locisutf8 == strisutf8) {
+ wstr = _free(wstr);
+ return str;
+ }
+ str = _free((char *)str);
+ memset(&ps, 0, sizeof(ps));
+ ccl = cca = 0;
+ for (wp = wstr; ; wp++) {
+ l = wcrtomb(cc + ccl, *wp, &ps);
+ if (*wp == 0)
+ break;
+ if (l == (size_t)-1) {
+ if (*wp < (wchar_t)256 && mbsinit(&ps)) {
+ cc[ccl] = *wp;
+ l = 1;
+ } else
+ l = wcrtomb(cc + ccl, (wchar_t)'?', &ps);
+ }
+ if (l == 0 || l == (size_t)-1)
+ continue;
+ ccl += l;
+ if (ccl > cca) {
+ cca = ccl + 16;
+ cc = xrealloc(cc, cca + mb_cur_max);
+ }
+ }
+ wstr = _free(wstr);
+ return (char *)cc;
+}
+
/**
* Retrieve trigger info.
* @param h header
@@ -435,10 +544,41 @@ static int i18nTag(Header h, rpmTag tag,
#endif
rc = headerGet(h, tag, td, HEADERGET_ALLOC);
+ if (rc && td->data) {
+ td->data = strtolocale(td->data);
+ }
return rc;
}
/**
+ * Retrieve text and convert to locale.
+ */
+static int localeTag(Header h, rpmTag tag, rpmtd td)
+{
+ int rc;
+ rc = headerGet(h, tag, td, HEADERGET_ALLOC);
+ if (!rc)
+ return 0;
+ if (td->type == RPM_STRING_TYPE) {
+ td->data = strtolocale(td->data);
+ td->count = 1;
+ } else if (td->type == RPM_STRING_ARRAY_TYPE) {
+ char **arr;
+ int i;
+ arr = xmalloc(td->count * sizeof(*arr));
+ for (i = 0; i < td->count; i++) {
+ arr[i] = xstrdup(((char **)td->data)[i]);
+ arr[i] = strtolocale(arr[i]);
+ }
+ _free(td->data);
+ td->data = arr;
+ td->flags = RPMTD_ALLOCED | RPMTD_PTR_ALLOCED;
+ }
+ return rc;
+}
+
+
+/**
* Retrieve summary text.
* @param h header
* @retval td tag data container
@@ -460,6 +600,16 @@ static int descriptionTag(Header h, rpmt
return i18nTag(h, RPMTAG_DESCRIPTION, td, hgflags);
}
+static int changelognameTag(Header h, rpmtd td)
+{
+ return localeTag(h, RPMTAG_CHANGELOGNAME, td);
+}
+
+static int changelogtextTag(Header h, rpmtd td)
+{
+ return localeTag(h, RPMTAG_CHANGELOGTEXT, td);
+}
+
/**
* Retrieve group text.
* @param h header
@@ -677,6 +827,8 @@ static const struct headerTagFunc_s rpmH
{ RPMTAG_LONGARCHIVESIZE, longarchivesizeTag },
{ RPMTAG_LONGSIZE, longsizeTag },
{ RPMTAG_LONGSIGSIZE, longsigsizeTag },
+ { RPMTAG_CHANGELOGNAME, changelognameTag },
+ { RPMTAG_CHANGELOGTEXT, changelogtextTag },
{ RPMTAG_DBINSTANCE, dbinstanceTag },
{ RPMTAG_EVR, evrTag },
{ RPMTAG_NVR, nvrTag },
++++++ macrosin.diff ++++++
--- ./macros.in.orig 2013-06-10 15:55:10.000000000 +0000
+++ ./macros.in 2013-07-12 11:53:07.000000000 +0000
@@ -185,22 +185,22 @@
# Template for debug information sub-package.
%debug_package \
-%ifnarch noarch\
%global __debug_package 1\
%package debuginfo\
Summary: Debug information for package %{name}\
Group: Development/Debug\
AutoReqProv: 0\
+#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\
%description debuginfo\
This package provides debug information for package %{name}.\
Debug information is useful when developing applications that use this\
package or when debugging this package.\
%files debuginfo -f debugfiles.list\
%defattr(-,root,root)\
-%endif\
%{nil}
-%_defaultdocdir %{_datadir}/doc
+%_defaultdocdir %{_datadir}/doc/packages
+%_docdir_fmt %%{NAME}
%_defaultlicensedir %{_datadir}/licenses
# The path to the gzip executable (legacy, use %{__gzip} instead).
@@ -238,7 +238,8 @@ package or when debugging this package.\
%_tmppath %{_var}/tmp
# Path to top of build area.
-%_topdir %{getenv:HOME}/rpmbuild
+%_topdir %{expand:%%global _topdir %{lua:if posix.access(rpm.expand("%{_usrsrc}/packages"), "w") then print "%{_usrsrc}/packages" else print "%{getenv:HOME}/rpmbuild" end} \
+}%_topdir
# The path to the unzip executable (legacy, use %{__unzip} instead).
%_unzipbin %{__unzip}
@@ -341,7 +342,7 @@ package or when debugging this package.\
# "w7.lzdio" lzma-alone level 7, lzma's default
#
#%_source_payload w9.gzdio
-#%_binary_payload w9.gzdio
+%_binary_payload w5.lzdio
# Algorithm to use for generating file checksum digests on build.
# If not specified or 0, MD5 is used.
@@ -440,16 +441,22 @@ package or when debugging this package.\
# Directories whose contents should be considered as documentation.
%__docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man
+# maxnum,cuttime,minnum
+# 2009/03/01 (SLES11 GA)
+%_binarychangelogtrim 0,1235862000,10
+
#
# Path to scripts to autogenerate package dependencies,
#
# Note: Used iff _use_internal_dependency_generator is zero.
#%__find_provides %{_rpmconfigdir}/rpmdeps --provides
#%__find_requires %{_rpmconfigdir}/rpmdeps --requires
-%__find_provides %{_rpmconfigdir}/find-provides
-%__find_requires %{_rpmconfigdir}/find-requires
+%__find_provides %{_rpmconfigdir}/find-provides %name
+%__find_requires %{_rpmconfigdir}/find-requires %name
#%__find_conflicts ???
#%__find_obsoletes ???
+#%__find_supplements ???
+#%__find_enhances ???
#
# Path to file attribute classifications for automatic dependency
@@ -512,10 +519,10 @@ package or when debugging this package.\
# Misc BDB tuning options
%__dbi_other mp_mmapsize=128Mb mp_size=1Mb
-%_dbi_config %{?__dbi_other}
+%_dbi_config %{?__dbi_other} nofsync
# "Packages" should have shared/exclusive fcntl(2) lock using "lockdbfd".
-%_dbi_config_Packages %{?_dbi_config} lockdbfd
+%_dbi_config_Packages %{?__dbi_other} lockdbfd
#==============================================================================
# ---- GPG/PGP/PGP5 signature macros.
@@ -816,7 +823,7 @@ package or when debugging this package.\
%_build_vendor %{_host_vendor}
%_build_os %{_host_os}
%_host @host@
-%_host_alias @host_alias@%{nil}
+%_host_alias @host@%{nil}
%_host_cpu @host_cpu@
%_host_vendor @host_vendor@
%_host_os @host_os@
@@ -980,6 +987,183 @@ done \
%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")
%python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")
+# More useful perl macros (from Raul Dias <rsd(a)swi.com.br>)
+#
+%perl_version %(perl -V:version | sed "s!.*='!!;s!'.*!!")
+%perl_man1ext %(perl -V:man1ext | sed "s!.*='!!;s!'.*!!")
+%perl_man3ext %(perl -V:man3ext | sed "s!.*='!!;s!'.*!!")
+%perl_man1dir %(perl -V:man1dir | sed "s!.*='!!;s!'.*!!")
+%perl_man3dir %(perl -V:man3dir | sed "s!.*='!!;s!'.*!!")
+%perl_installman1dir %(perl -V:installman1dir | sed "s!.*='!!;s!'.*!!")
+%perl_installman3dir %(perl -V:installman3dir | sed "s!.*='!!;s!'.*!!")
+%perl_installarchlib %(perl -V:installarchlib | sed "s!.*='!!;s!'.*!!")
+%perl_prefix %{buildroot}
+
+#------------------------------------------------------------------------------
+# Python specific macro definitions (originally from PLD).
+#
+%py_ver %(python -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
+%py_prefix %(python -c "import sys; print sys.prefix" 2>/dev/null || echo PYTHON-NOT-FOUND)
+%py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
+%py_incdir %{py_prefix}/include/python%{py_ver}
+%py_sitedir %{py_libdir}/site-packages
+%py_compile(O) \
+find %1 -name '*.pyc' -exec rm -f {} \\; \
+python -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
+%{-O: \
+find %1 -name '*.pyo' -exec rm -f {} \\; \
+python -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
+}
+%py_requires(d) \
+%define minver %py_ver \
+%define maxver %(python -c "import sys; a,b=sys.version_info[:2]; print '%%d.%%d'%%(a,b+1)" 2>/dev/null || echo PYTHON-NOT-FOUND) \
+BuildRequires: python %{-d:python-devel} \
+PreReq: python >= %minver, python < %maxver
+
+#------------------------------------------------------------------------------
+#
+# RPM macros for Java applications.
+#
+# JPackage Project <http://www.jpackage.org/>
+# David Walluck <david(a)anti-microsoft.org>
+# Ville Skytt� <ville.skytta(a)iki.fi>
+# Nicolas Mailhot <Nicolas.Mailhot(a)laPoste.net>
+#
+# $Id: macros.jpackage,v 1.1.2.5 2003/08/30 13:24:58 scop Exp $
+#
+
+# ---- default Java directories
+
+#
+# Root directory where all Java VMs/SDK/JREs are installed.
+#
+%_jvmdir %{_libdir}/jvm
+
+#
+# Root directory where all Java VMs/SDK/JREs expose their jars
+#
+%_jvmjardir %{_libdir}/jvm-exports
+
+#
+# Root directory for all Java VM/SDK/JRE's private things.
+#
+%_jvmprivdir %{_libdir}/jvm-private
+
+#
+# Directory where arch and version independent jars are installed.
+# This has already been integrated in RH macros following our request.
+#
+# By extension:
+# %{_javadir}-ext:
+# - version dependent jars
+# %{_javadir}-x.y.z:
+# - jars for Java standard x.y.z (usually symlinks to %{_javadir}-ext)
+# %{_javadir}-utils:
+# - Java-related scripts
+#
+# To simplify things only %{_javadir} is defined.
+#
+%_javadir %{_datadir}/java
+
+#
+# Directory where arch-specific (JNI) version-independent jars are installed.
+#
+# By extension:
+# %{_jnidir}-ext:
+# - version dependent jars
+# %{_jnidir}-x.y.z:
+# - jars for Java standard x.y.z (usually symlinks to %{_jnidir}-ext)
+# To simplify things only %{_jnidir} is defined.
+#
+%_jnidir %{_libdir}/java
+
+#
+# Root directory where all javadoc is installed. Also already in RH macros.
+#
+%_javadocdir %{_datadir}/javadoc
+
+#
+# Current default JVM home.
+#
+%java_home %(. %{_javadir}-utils/java-functions; set_jvm; echo $JAVA_HOME)
+
+# ---- default Java commands
+
+%ant JAVA_HOME=%{java_home} ant
+%jar %{java_home}/bin/jar
+%java %(. %{_javadir}-utils/java-functions; set_javacmd; echo $JAVACMD)
+%javac %{java_home}/bin/javac
+%javadoc %{java_home}/bin/javadoc
+
+# ---- Java extension handling macros
+
+#
+# add_jvm_extension should be used in %install by extension packages to declare
+# what extension jars they provide.
+#
+# For example a package that provides foo.jar which is the bar extension
+# under java 1.2 and 1.3 should do a:
+#
+# %install
+# ... # create foo.jar in %{javadir}-ext
+# %add_jvm_extension foo bar 1.2 1.3
+#
+# %files
+# %{javadir}-ext/foo.jar
+# %{javadir}-*/bar.jar
+#
+%add_jvm_extension JAVA_LIBDIR=%{buildroot}/%{_javadir} %{_bindir}/jvmjar -l
+
+#
+# Standard JPackage script
+#
+# This is kind of tasteless and should be moved to an external template
+#
+# %1 main class
+# %2 flags
+# %3 options
+# %4 jars (separated by ':')
+# %5 the name of script you wish to create
+# %6 whether to prefer a jre over a sdk when finding a jvm
+#
+%jpackage_script() \
+install -d -m 755 $RPM_BUILD_ROOT%{_bindir}\
+cat > $RPM_BUILD_ROOT%{_bindir}/%5 << EOF \
+#!/bin/sh\
+#\
+# %{name} script\
+# JPackage Project <http://www.jpackage.org/>\
+\
+# Source functions library\
+_prefer_jre="%{?6}"\
+. %{_javadir}-utils/java-functions\
+\
+# Source system prefs\
+if [ -f %{_sysconfdir}/java/%{name}.conf ] ; then\
+ . %{_sysconfdir}/java/%{name}.conf\
+fi\
+\
+# Source user prefs\
+if [ -f \\$HOME/.%{name}rc ] ; then\
+ . \\$HOME/.%{name}rc\
+fi\
+\
+# Configuration\
+MAIN_CLASS=%1\
+BASE_FLAGS=%2\
+BASE_OPTIONS=%3\
+BASE_JARS="%(echo %4 | sed -e 's,:, ,g')"\
+\
+# Set parameters\
+set_jvm\
+set_classpath \\$BASE_JARS\
+set_flags \\$BASE_FLAGS\
+set_options \\$BASE_OPTIONS\
+\
+# Let's start\
+run "\\$@"\
+EOF
+
#------------------------------------------------------------------------------
# arch macro for all Intel i?86 compatibile processors
# (Note: This macro (and it's analogues) will probably be obsoleted when
@@ -990,7 +1174,9 @@ done \
#------------------------------------------------------------------------------
# arch macro for all supported ARM processors
-%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l
+%arm armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l armv6hl armv7l armv7hl
+%arml armv3l armv4l armv5l armv5tel armv6l armv7l armv7hl
+%armb armv4b armv5b armv5teb
#------------------------------------------------------------------------------
# arch macro for all supported Sparc processors
@@ -1110,3 +1296,26 @@ end}
# \endverbatim
#*/
+
+
+#------------------------------------------------------------------------
+# standard build service macros
+#
+%ext_info .gz
+%ext_man .gz
+
+%info_add() test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del() test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%service_add() %{fillup_and_insserv %{1}}
+%service_del_preun() %{stop_on_removal %{1}}
+%service_del_postun() %{restart_on_update %{1}}
+
+%user_group_add() \
+/usr/sbin/groupadd -r %{1} 2>/dev/null || :\
+/usr/sbin/useradd -r -g %{1} -d %{2} -s %{3} -c %{4} %{1} 2>/dev/null || :\
+%{nil}
+
++++++ modalias-encode.diff ++++++
Module aliases (modinfo -F alias <module>) may contain special characters
that rpm does not allow in dependencies, such as commas. Encode those as
%XX to avoid generating broken dependencies.
Signed-off-by: Andreas Gruenbacher <agruen(a)suse.de>
Index: rpm-4.4.2.3/scripts/find-supplements.ksyms
===================================================================
--- scripts/find-supplements.ksyms
+++ scripts/find-supplements.ksyms
@@ -48,6 +48,21 @@ combine_modaliases() {
print_modaliases "$class" "$variants" "$pos"
}
+# Encode all characters other than [*:a-zA-Z0-9] in stdin as %XX.
+# (This includes the % character itself, which becomes %25.)
+hexenc() {
+ local line hex
+
+ while read line; do
+ set -- "" "$line"
+ while [[ "$2" =~ ([*:a-zA-Z0-9]*)([^*:a-zA-Z0-9])(.*) ]]; do
+ hex=$(echo -n "${BASH_REMATCH[2]}" | hexdump -e '"%X"')
+ set -- "$1${BASH_REMATCH[1]}%$hex" "${BASH_REMATCH[3]}"
+ done
+ echo "$1$2"
+ done
+}
+
aliases_of_filelist() {
modlist=$(mktemp)
have_module=1
@@ -60,6 +75,7 @@ aliases_of_filelist() {
fi
have_module=0
/sbin/modinfo -F alias "$module" \
+ | hexenc \
| sed -nre "s,(.+:.+),modalias(kernel-${krel##*-}:\\1),p" | tee -a $modlist
done
if ! test -s "$modlist" && test $have_module = 0; then
++++++ modalias-kernel_module.diff ++++++
Index: scripts/find-supplements.ksyms
===================================================================
--- scripts/find-supplements.ksyms.orig
+++ scripts/find-supplements.ksyms
@@ -1,6 +1,8 @@
#! /bin/sh
+SPECFILE=${RPMBUILD_SPECFILE:-/usr/src/packages/SOURCES/$1.spec}
IFS=$'\n'
+PACKAGE=$1
case "$1" in
kernel-module-*) ;; # Fedora kernel module package names start with
@@ -46,11 +48,54 @@ combine_modaliases() {
print_modaliases "$class" "$variants" "$pos"
}
-for module in $(grep -E '/lib/modules/.+\.ko$'); do
- vermagic=$(/sbin/modinfo -F vermagic "$module")
- krel=${vermagic%% *}
- /sbin/modinfo -F alias "$module" \
- | sed -nre "s,(.+:.+),modalias(kernel-${krel##*-}:\\1),p"
-done \
+aliases_of_filelist() {
+ modlist=$(mktemp)
+ have_module=1
+ for module in $(grep -E '/lib/modules/.+\.ko$'); do
+ vermagic=$(/sbin/modinfo -F vermagic "$module")
+ krel=${vermagic%% *}
+ if ! test -x /sbin/modinfo; then
+ echo "ERROR: add module-init-tools to BuildRequires" >&2
+ exit 1
+ fi
+ have_module=0
+ /sbin/modinfo -F alias "$module" \
+ | sed -nre "s,(.+:.+),modalias(kernel-${krel##*-}:\\1),p" | tee -a $modlist
+ done
+ if ! test -s "$modlist" && test $have_module = 0; then
+ echo "packageand(kernel-${krel##*-}:$PACKAGE)"
+ fi
+ rm -f $modlist
+}
+
+aliases_of_specfile_macro() {
+ declare regex
+
+ regex=$(
+ set -o noglob
+ set -- $(sed -ne 's:^%supplements_kernel_module[ \t]::p' \
+ $SPECFILE)
+ while [ $# -ge 1 ]; do
+ regex=$(echo "$1" \
+ | sed -e 's:[.]:\\.:g' \
+ -e 's:?:.:g' \
+ -e 's:\*:.*:g' \
+ -e 's:\\:\\\\:g')
+ echo -n "^$regex\$"
+ [ $# -ge 2 ] && echo -n "|"
+ shift
+ done
+ )
+
+ if [ -n "$regex" ]; then
+ awk '
+ $1 == "alias" && $3 ~ regex { print $2 }
+ ' regex="$regex" /lib/modules/*/modules.alias
+ fi
+}
+
+( aliases_of_filelist
+ aliases_of_specfile_macro "$1"
+) \
| sort -u \
| combine_modaliases
++++++ modalias.diff ++++++
--- ./macros.in.orig 2011-05-11 14:57:08.000000000 +0000
+++ ./macros.in 2011-05-11 15:01:39.000000000 +0000
@@ -470,14 +470,18 @@ print (t)\
#
# Path to scripts to autogenerate package dependencies,
#
+%__set_helper_env %{lua:
+posix.setenv("RPMBUILD_SPECFILE",rpm.expand("%?_specfile"));
+posix.setenv("RPMBUILD_SOURCEDIR",rpm.expand("%?_sourcedir"));
+}
# Note: Used iff _use_internal_dependency_generator is zero.
#%__find_provides %{_rpmconfigdir}/rpmdeps --provides
#%__find_requires %{_rpmconfigdir}/rpmdeps --requires
-%__find_provides %{_rpmconfigdir}/find-provides %name
-%__find_requires %{_rpmconfigdir}/find-requires %name
+%__find_provides %{__set_helper_env}%{_rpmconfigdir}/find-provides %name
+%__find_requires %{__set_helper_env}%{_rpmconfigdir}/find-requires %name
#%__find_conflicts ???
#%__find_obsoletes ???
-#%__find_supplements ???
+%__find_supplements %{__set_helper_env}%{_rpmconfigdir}/find-supplements %name
#%__find_enhances ???
#
--- ./scripts/find-supplements.ksyms.orig 2011-05-11 15:01:39.000000000 +0000
+++ ./scripts/find-supplements.ksyms 2011-05-11 15:01:39.000000000 +0000
@@ -0,0 +1,56 @@
+#! /bin/sh
+
+IFS=$'\n'
+
+case "$1" in
+kernel-module-*) ;; # Fedora kernel module package names start with
+ # kernel-module.
+kernel*) is_kernel_package=1 ;;
+esac
+
+if ! [ -z "$is_kernel_package" ]; then
+ cat > /dev/null
+ exit 0
+fi
+
+print_modaliases() {
+ declare class=$1 variants=$2 pos=$3
+ if [ -n "$variants" ]; then
+ echo "${class:0:pos}[$variants]${class:pos+1}"
+ else
+ [ -z "$class" ] || echo "$class"
+ fi
+}
+
+combine_modaliases() {
+ declare tag class variants pos n
+ read class
+ while read tag; do
+ for ((n=0; n<${#class}; n++)); do
+ if [ "*" != "${class:n:1}" -a \
+ "${class:0:n}" = "${tag:0:n}" -a \
+ "${class:n+1}" = "${tag:n+1}" ] &&
+ ( [ -z "$pos" ] || [ $n = $pos ] ); then
+ variants="${variants:-${class:n:1}}${tag:n:1}"
+ pos=$n
+ break
+ fi
+ done
+ if [ $n -eq ${#class} ]; then
+ print_modaliases "$class" "$variants" "$pos"
+ variants=
+ pos=
+ class=$tag
+ fi
+ done
+ print_modaliases "$class" "$variants" "$pos"
+}
+
+for module in $(grep -E '/lib/modules/.+\.ko$'); do
+ vermagic=$(/sbin/modinfo -F vermagic "$module")
+ krel=${vermagic%% *}
+ /sbin/modinfo -F alias "$module" \
+ | sed -nre "s,(.+:.+),modalias(kernel-${krel##*-}:\\1),p"
+done \
+| sort -u \
+| combine_modaliases
--- ./scripts/find-supplements.orig 2011-05-11 15:01:39.000000000 +0000
+++ ./scripts/find-supplements 2011-05-11 15:01:39.000000000 +0000
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# This script reads filenames from STDIN and outputs any relevant provides
+# information that needs to be included in the package.
+IFS=$'\n'
+filelist=($(cat))
+
+#
+# --- Kernel module hardware identifiers
+# (e.g., modalias(pci:v0000109Ed00000878sv00000070sd0000FF01bc*sc*i*)
+[ -x /usr/lib/rpm/find-supplements.ksyms ] &&
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-supplements.ksyms "$@"
+
+exit 0
++++++ mono-find-requires.diff ++++++
--- scripts/mono-find-requires
+++ scripts/mono-find-requires
@@ -42,8 +42,12 @@
(START==1) && /^\tName=/ {
sub(/Name=/, "", $1);
LIBNAME=$1
-
- print "mono(" LIBNAME ") = " VERSION
+ # Allow rpm deps to be resolved for 1.0 profile version
+ if (VERSION=="1.0.3300.0")
+ OP=">="
+ else
+ OP="="
+ print "mono(" LIBNAME ") " OP " " VERSION
START=0
}
') 2> /dev/null
++++++ nameversioncompare.diff ++++++
Also compare the name and not only the version when checking if
two packages are the same. rh#104066
--- ./lib/depends.c.orig 2012-06-01 10:07:12.000000000 +0000
+++ ./lib/depends.c 2012-06-01 10:16:13.000000000 +0000
@@ -144,6 +144,24 @@ static int skipColor(rpm_color_t tscolor
return tscolor && color && ocolor && !(color & ocolor);
}
+static int rpmNameVersionCompare(Header first, Header second)
+{
+ const char * one, * two;
+ int rc;
+
+ one = headerGetString(first, RPMTAG_NAME);
+ two = headerGetString(second, RPMTAG_NAME);
+ rc = strcmp(one, two);
+ if (rc)
+ return rc;
+ one = headerGetString(first, RPMTAG_ARCH);
+ two = headerGetString(second, RPMTAG_ARCH);
+ rc = strcmp(one, two);
+ if (rc)
+ return rc;
+ return rpmVersionCompare(first, second);
+}
+
/* Add erase elements for older packages of same color (if any). */
static int addUpgradeErasures(rpmts ts, rpm_color_t tscolor,
rpmte p, rpm_color_t hcolor, Header h)
@@ -157,8 +175,8 @@ static int addUpgradeErasures(rpmts ts,
if (skipColor(tscolor, hcolor, headerGetNumber(oh, RPMTAG_HEADERCOLOR)))
continue;
- /* Skip packages that contain identical NEVR. */
- if (rpmVersionCompare(h, oh) == 0)
+ /* Skip packages that contain identical NEVRA. */
+ if (rpmNameVersionCompare(h, oh) == 0)
continue;
if (removePackage(ts, oh, p)) {
++++++ nobuildcolor.diff ++++++
Disable file coloring for SUSE systems
--- build/rpmfc.c.orig 2013-07-12 12:12:45.000000000 +0000
+++ build/rpmfc.c 2013-07-12 12:15:51.000000000 +0000
@@ -1305,7 +1305,8 @@ rpmRC rpmfcGenerateDepends(const rpmSpec
/* XXX Make sure only primary (i.e. Elf32/Elf64) colors are added. */
for (int i = 0; i < fc->nfiles; i++)
fc->fcolor[i] &= 0x0f;
- headerPutUint32(pkg->header, RPMTAG_FILECOLORS, fc->fcolor, fc->nfiles);
+ if (rpmExpandNumeric("%{?_transaction_color}") != 0)
+ headerPutUint32(pkg->header, RPMTAG_FILECOLORS, fc->fcolor, fc->nfiles);
/* Add classes(#classes) */
for (rpmsid id = 1; id <= rpmstrPoolNumStr(fc->cdict); id++) {
++++++ nomagiccheck.diff ++++++
Don't let rpm complain about a missing /etc/magic.mgc file
--- build/rpmfc.c.orig 2013-07-12 12:16:40.000000000 +0000
+++ build/rpmfc.c 2013-07-12 12:17:15.000000000 +0000
@@ -901,7 +901,7 @@ static int initAttrs(rpmfc fc)
rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
{
- int msflags = MAGIC_CHECK | MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
+ int msflags = MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
magic_t ms = NULL;
rpmRC rc = RPMRC_FAIL;
++++++ noposttrans.diff ++++++
Author: Panu Matilainen <pmatilai(a)redhat.com>
Date: Wed Apr 10 11:31:41 2013 +0300
Add scriptlet-specific disablers for %pretrans and %posttrans
- Previously %pretrans and %posttrans were tied to --nopre and --nopost
disablers (since commit 0b2d7775c5e828652e45829f551352b93890bbc8)
because back then, there was no room new disablers in rpmtransFlags
bitfield. This is no longer the case as of rpm >= 4.9.x where
a bunch of obsolete flags were axed, so we can now add specific
--nopretrans and --noposttrans switches + corresponding flags.
- This is obviously a behavior change as --nopre and --nopost no
longer affect %pretrans and %posttrans, but --noscripts behavior
remains the same.
--- doc/rpm.8
+++ doc/rpm.8
@@ -278,6 +278,10 @@ packages would normally be reordered to satisfy dependencies.
\fB--nopreun\fR
.TP
\fB--nopostun\fR
+.TP
+\fB--nopretrans\fR
+.TP
+\fB--noposttrans\fR
Don't execute the scriptlet of the same name.
The \fB--noscripts\fR option is equivalent to
@@ -285,12 +289,16 @@ The \fB--noscripts\fR option is equivalent to
\fB--nopost\fR
\fB--nopreun\fR
\fB--nopostun\fR
+\fB--nopretrans\fR
+\fB--noposttrans\fR
and turns off the execution of the corresponding
\fB%pre\fR,
\fB%post\fR,
-\fB%preun\fR, and
+\fB%preun\fR,
\fB%postun\fR
+\fB%pretrans\fR, and
+\fB%posttrans\fR
scriptlet(s).
.TP
\fB--notriggers\fR
--- lib/poptI.c
+++ lib/poptI.c
@@ -202,6 +202,12 @@ struct poptOption rpmInstallPoptTable[] = {
{ "nopostun", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
RPMTRANS_FLAG_NOPOSTUN,
N_("do not execute %%postun scriptlet (if any)"), NULL },
+ { "nopretrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
+ RPMTRANS_FLAG_NOPRETRANS,
+ N_("do not execute %%pretrans scriptlet (if any)"), NULL },
+ { "noposttrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
+ RPMTRANS_FLAG_NOPOSTTRANS,
+ N_("do not execute %%posttrans scriptlet (if any)"), NULL },
{ "notriggers", '\0', POPT_BIT_SET, &rpmIArgs.transFlags, _noTransTriggers,
N_("do not execute any scriptlet(s) triggered by this package"), NULL},
--- lib/rpmts.h
+++ lib/rpmts.h
@@ -45,7 +45,8 @@ enum rpmtransFlags_e {
RPMTRANS_FLAG_NOPREUN = (1 << 21), /*!< from --nopreun */
RPMTRANS_FLAG_NOPOSTUN = (1 << 22), /*!< from --nopostun */
RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), /*!< from --notriggerpostun */
- /* bits 24-25 unused */
+ RPMTRANS_FLAG_NOPRETRANS = (1 << 24), /*!< from --nopretrans */
+ RPMTRANS_FLAG_NOPOSTTRANS = (1 << 25), /*!< from --noposttrans */
RPMTRANS_FLAG_NOCOLLECTIONS = (1 << 26), /*!< from --nocollections */
RPMTRANS_FLAG_NOMD5 = (1 << 27), /*!< from --nomd5 */
RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27), /*!< from --nofiledigest (alias to --nomd5) */
@@ -60,7 +61,9 @@ typedef rpmFlags rpmtransFlags;
( RPMTRANS_FLAG_NOPRE | \
RPMTRANS_FLAG_NOPOST | \
RPMTRANS_FLAG_NOPREUN | \
- RPMTRANS_FLAG_NOPOSTUN \
+ RPMTRANS_FLAG_NOPOSTUN | \
+ RPMTRANS_FLAG_NOPRETRANS | \
+ RPMTRANS_FLAG_NOPOSTTRANS \
)
#define _noTransTriggers \
--- lib/transaction.c
+++ lib/transaction.c
@@ -1496,7 +1496,7 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
/* Run pre-transaction scripts, but only if there are no known
* problems up to this point and not disabled otherwise. */
- if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRE))
+ if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRETRANS))
|| (rpmpsNumProblems(tsprobs)))) {
rpmlog(RPMLOG_DEBUG, "running pre-transaction scripts\n");
runTransScripts(ts, PKG_PRETRANS);
@@ -1532,7 +1532,7 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
rc = rpmtsProcess(ts) ? -1 : 0;
/* Run post-transaction scripts unless disabled */
- if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOST))) {
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS))) {
rpmlog(RPMLOG_DEBUG, "running post-transaction scripts\n");
runTransScripts(ts, PKG_POSTTRANS);
}
--- python/rpmmodule.c
+++ python/rpmmodule.c
@@ -414,6 +414,8 @@ static int initModule(PyObject *m)
REGISTER_ENUM(RPMTRANS_FLAG_NOPREUN);
REGISTER_ENUM(RPMTRANS_FLAG_NOPOSTUN);
REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERPOSTUN);
+ REGISTER_ENUM(RPMTRANS_FLAG_NOPRETRANS);
+ REGISTER_ENUM(RPMTRANS_FLAG_NOPOSTTRANS);
REGISTER_ENUM(RPMTRANS_FLAG_NOMD5);
REGISTER_ENUM(RPMTRANS_FLAG_NOFILEDIGEST);
REGISTER_ENUM(RPMTRANS_FLAG_NOSUGGEST);
++++++ noprereqdeprec.diff ++++++
Not deprecated for SUSE builds.
--- ./build/parsePreamble.c.orig 2011-05-11 15:59:08.000000000 +0000
+++ ./build/parsePreamble.c 2011-05-11 16:35:47.000000000 +0000
@@ -891,7 +891,7 @@ static struct PreambleRec_s const preamb
{RPMTAG_ICON, 0, 0, LEN_AND_STR("icon")},
{RPMTAG_PROVIDEFLAGS, 0, 0, LEN_AND_STR("provides")},
{RPMTAG_REQUIREFLAGS, 2, 0, LEN_AND_STR("requires")},
- {RPMTAG_PREREQ, 2, 1, LEN_AND_STR("prereq")},
+ {RPMTAG_PREREQ, 2, 0, LEN_AND_STR("prereq")},
{RPMTAG_CONFLICTFLAGS, 0, 0, LEN_AND_STR("conflicts")},
{RPMTAG_OBSOLETEFLAGS, 0, 0, LEN_AND_STR("obsoletes")},
{RPMTAG_PREFIXES, 0, 0, LEN_AND_STR("prefixes")},
@@ -900,7 +900,7 @@ static struct PreambleRec_s const preamb
{RPMTAG_BUILDARCHS, 0, 0, LEN_AND_STR("buildarchitectures")},
{RPMTAG_BUILDARCHS, 0, 0, LEN_AND_STR("buildarch")},
{RPMTAG_BUILDCONFLICTS, 0, 0, LEN_AND_STR("buildconflicts")},
- {RPMTAG_BUILDPREREQ, 0, 1, LEN_AND_STR("buildprereq")},
+ {RPMTAG_BUILDPREREQ, 0, 0, LEN_AND_STR("buildprereq")},
{RPMTAG_BUILDREQUIRES, 0, 0, LEN_AND_STR("buildrequires")},
{RPMTAG_AUTOREQPROV, 0, 0, LEN_AND_STR("autoreqprov")},
{RPMTAG_AUTOREQ, 0, 0, LEN_AND_STR("autoreq")},
++++++ perlprov.diff ++++++
Support a "first version wins" semantics.
--- ./scripts/perl.prov.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./scripts/perl.prov 2011-05-11 15:32:39.000000000 +0000
@@ -170,7 +170,7 @@ sub process_file {
$version = $1;
}
- $require{$package} = $version;
+ $require{$package} ||= $version;
}
# Allow someone to have a variable that defines virtual packages
++++++ platformin.diff ++++++
SUSE specific platform changes.
--- ./platform.in.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./platform.in 2012-06-01 12:42:30.000000000 +0000
@@ -29,7 +29,7 @@
%_exec_prefix @exec_prefix@
%_bindir @bindir@
%_sbindir @sbindir@
-%_libexecdir @libexecdir@
+%_libexecdir %{_exec_prefix}/lib
%_datarootdir @datarootdir@
%_datadir @datadir@
%_sysconfdir @sysconfdir@
@@ -41,7 +41,7 @@
%_oldincludedir @oldincludedir@
%_infodir @infodir@
%_mandir @mandir@
-%_initddir %{_sysconfdir}/rc.d/init.d
+%_initddir %{_sysconfdir}/init.d
# Deprecated misspelling, present for backwards compatibility.
%_initrddir %{_initddir}
@@ -78,3 +78,21 @@
@apple@#
@apple@%_use_internal_dependency_generator 0
@apple@%__so dylib
+@suse@#---------------------------------------------------------------------
+@suse@# Expanded at end of %prep
+@suse@#
+@suse@%__id_u %{__id} -u
+@suse@%__chown_Rhf %{__chown} -Rhf
+@suse@%__chgrp_Rhf %{__chgrp} -Rhf
+@suse@%_fixowner [ `%{__id_u}` = '0' ] && %{__chown_Rhf} root
+@suse@%_fixgroup [ `%{__id_u}` = '0' ] && %{__chgrp_Rhf} root
+@suse@%_fixperms %{__chmod} -Rf @FIXPERMS@
+@suse@
+@suse@#---------------------------------------------------------------------
+@suse@# Expanded at start of %build
+@suse@#
+@suse@%__spec_build_pre %{___build_pre}\
+@suse@%{?buildroot: %__rm -rf "$RPM_BUILD_ROOT"\
+@suse@ %__mkdir_p `dirname "$RPM_BUILD_ROOT"`\
+@suse@ %__mkdir "$RPM_BUILD_ROOT"\
+@suse@}
++++++ psm-errno.diff ++++++
--- lib/psm.c.orig 2013-07-12 12:25:38.000000000 +0000
+++ lib/psm.c 2013-07-12 12:27:01.000000000 +0000
@@ -807,6 +807,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
case PSM_PROCESS:
if (psm->goal == PKG_INSTALL) {
int fsmrc = 0;
+ int saved_errno = 0;
rpmpsmNotify(psm, RPMCALLBACK_INST_START, 0);
/* make sure first progress call gets made */
@@ -826,6 +827,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
payload, psm, &psm->failedFile);
+ saved_errno = errno;
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_UNCOMPRESS),
fdOp(payload, FDSTAT_READ));
@@ -843,6 +845,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
rpmpsmNotify(psm, RPMCALLBACK_INST_STOP, psm->total);
if (fsmrc) {
+ errno = saved_errno;
rpmlog(RPMLOG_ERR,
_("unpacking of archive failed%s%s: %s\n"),
(psm->failedFile != NULL ? _(" on file ") : ""),
++++++ python3-abi-kind.diff ++++++
--- configure.ac
+++ configure.ac
@@ -537,7 +537,7 @@
])
CPPFLAGS="$save_CPPFLAGS"
save_LIBS="$LIBS"
- AC_SEARCH_LIBS([Py_Main],[python${PYTHON_VERSION} python],[
+ AC_SEARCH_LIBS([Py_Main],[python${PYTHON_VERSION}mu python${PYTHON_VERSION} python],[
WITH_PYTHON_LIB="$ac_res"
],[AC_MSG_ERROR([missing python library])
])
++++++ pythondeps.diff ++++++
Index: autodeps/linux.prov
===================================================================
--- autodeps/linux.prov.orig 2011-06-08 13:31:39.000000000 +0200
+++ autodeps/linux.prov 2011-06-08 13:31:39.191646314 +0200
@@ -11,7 +11,7 @@ filelist=($(printf "%s\n" "${filelist[@]
solist=($(printf "%s\n" "${filelist[@]}" | grep "\\.so" | grep -v "^/lib/ld.so" | \
tr '\n' '\0' | xargs -0 -r file -L | grep "ELF.*shared object" | \
cut -d: -f1))
-pythonlist=
+pythonlist=($(printf "%s\n" "${filelist[@]}" | egrep '/usr/bin/python.\..$'))
tcllist=
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
firmwarelist=($(printf "%s\n" "${filelist[@]}" | grep "/lib/firmware/"))
@@ -54,8 +54,8 @@ done | sort -u
#
# --- Python modules.
-[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] &&
- printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.prov | sort -u
+[ -x /usr/lib/rpm/pythondeps.sh -a -n "$pythonlist" ] &&
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/pythondeps.sh -P | sort -u
#
# --- Tcl modules.
Index: autodeps/linux.req
===================================================================
--- autodeps/linux.req.orig 2011-06-08 13:31:38.000000000 +0200
+++ autodeps/linux.req 2011-06-08 13:31:39.191646314 +0200
@@ -31,7 +31,7 @@ liblist=($(printf "%s\0" "${filelist[@]}
interplist=()
perllist=()
-pythonlist=()
+pythonlist=($(printf "%s\n" "${filelist[@]}" | egrep '/usr/lib[^/]*/python.\..'))
tcllist=()
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)(\\.config)?\$"))
@@ -127,8 +127,8 @@ done | sort -u
#
# --- Python modules.
-[ -x /usr/lib/rpm/python.req -a -n "$pythonlist" ] && \
- printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.req | sort -u
+[ -x /usr/lib/rpm/pythondeps.sh -a -n "$pythonlist" ] && \
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/pythondeps.sh -R | sort -u
#
# --- Tcl modules.
++++++ refreshtestarch.diff ++++++
Also test architecture in "refresh" test when not colored. This allows
updates to different architectures.
--- ./lib/psm.c.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./lib/psm.c 2012-06-01 10:22:24.000000000 +0000
@@ -680,13 +680,14 @@ void rpmpsmNotify(rpmpsm psm, int what,
*/
static void markReplacedInstance(rpmts ts, rpmte te)
{
+ /* this must match rpmNameVersionCompare in depends.c */
rpmdbMatchIterator mi = rpmtsInitIterator(ts, RPMDBI_NAME, rpmteN(te), 0);
rpmdbSetIteratorRE(mi, RPMTAG_EPOCH, RPMMIRE_STRCMP, rpmteE(te));
rpmdbSetIteratorRE(mi, RPMTAG_VERSION, RPMMIRE_STRCMP, rpmteV(te));
rpmdbSetIteratorRE(mi, RPMTAG_RELEASE, RPMMIRE_STRCMP, rpmteR(te));
+ rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_STRCMP, rpmteA(te));
/* XXX shouldn't we also do this on colorless transactions? */
if (rpmtsColor(ts)) {
- rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_STRCMP, rpmteA(te));
rpmdbSetIteratorRE(mi, RPMTAG_OS, RPMMIRE_STRCMP, rpmteO(te));
}
++++++ remove-brp-strips.diff ++++++
Subject: remove references to removed brp scripts
Some brp-scripts are not used in openSUSE, remove references
to it
--- ./platform.in.orig 2011-05-11 15:02:03.000000000 +0000
+++ ./platform.in 2011-05-11 15:38:05.000000000 +0000
@@ -55,8 +55,6 @@
%__os_install_post \
%{_rpmconfigdir}/brp-compress \
%{_rpmconfigdir}/brp-strip %{__strip} \
- %{_rpmconfigdir}/brp-strip-static-archive %{__strip} \
- %{_rpmconfigdir}/brp-strip-comment-note %{__strip} %{__objdump} \
%{nil}
%__spec_install_post\
++++++ remove-translations.diff ++++++
--- ./scripts/find-lang.sh.orig 2012-06-01 13:28:40.000000000 +0000
+++ ./scripts/find-lang.sh 2012-06-01 13:30:43.000000000 +0000
@@ -111,6 +111,23 @@ fi
MO_NAME_NEW=$MO_NAME.tmp.$$
rm -f $MO_NAME_NEW
+# remove languages we do not yet support - but give out statistics
+find "$TOP_DIR/usr/share/locale/" -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/locale/'::; /^$/d' | while read dir; do
+ if ! rpm -ql filesystem | egrep -q "/usr/share/locale/$dir"$; then
+ find $TOP_DIR/usr/share/locale/$dir -name *.mo | sed 's:'"$TOP_DIR"'::' | while read file; do
+ echo -n "removing translation $file: "
+ msgunfmt "$TOP_DIR/$file" | msgfmt --statistics -o /dev/null -
+ done
+ rm -rf $TOP_DIR/usr/share/locale/$dir
+ fi
+done
+find $TOP_DIR/usr/share/help/ -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/help/'::; /^$/d' | while read dir; do
+ if ! rpm -ql filesystem | egrep -q "/usr/share/help/$dir"$; then
+ echo "removing help translation /usr/share/help/$dir"
+ rm -rf $TOP_DIR/usr/share/help/$dir
+ fi
+done
+
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
++++++ repackage-nomd5.diff ++++++
Don't complain about a bad md5 sum for repackaged rpms.
--- ./lib/psm.c.orig 2013-07-12 12:05:15.000000000 +0000
+++ ./lib/psm.c 2013-07-12 12:07:59.000000000 +0000
@@ -813,12 +813,17 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
rpmpsmNotify(psm, RPMCALLBACK_INST_PROGRESS, 0);
if (rpmfiFC(fi) > 0 && !(rpmtsFlags(ts) & RPMTRANS_FLAG_JUSTDB)) {
+ rpmtransFlags oldtsflags;
FD_t payload = rpmtePayload(psm->te);
if (payload == NULL) {
rc = RPMRC_FAIL;
break;
}
+ oldtsflags = rpmtsFlags(ts);
+ if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
+ (void) rpmtsSetFlags(ts, oldtsflags | RPMTRANS_FLAG_NOMD5);
+
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
payload, psm, &psm->failedFile);
@@ -827,6 +832,9 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_DIGEST),
fdOp(payload, FDSTAT_DIGEST));
+ if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
+ (void) rpmtsSetFlags(ts, oldtsflags);
+
Fclose(payload);
}
++++++ requires-ge-macro.diff ++++++
--- ./macros.in.orig 2011-05-11 15:36:05.000000000 +0000
+++ ./macros.in 2011-05-11 15:38:44.000000000 +0000
@@ -1027,7 +1027,8 @@ done \
# %{perl_sitearch}/Image
# %dir %{perl_sitearch}/auto/Image
#
-%requires_eq() %(LC_ALL="C" echo '%*' | xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
+%requires_eq() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
+%requires_ge() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} >= %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
%perl_sitearch %(eval "`%{__perl} -V:installsitearch`"; echo $installsitearch)
%perl_sitelib %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
%perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)
++++++ rpm-deptracking.patch ++++++
Index: macros.in
===================================================================
--- macros.in.orig 2011-12-09 13:21:58.078688958 +0100
+++ macros.in 2011-12-09 13:21:58.502668839 +0100
@@ -920,7 +920,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
--localstatedir=%{_localstatedir} \\\
--sharedstatedir=%{_sharedstatedir} \\\
--mandir=%{_mandir} \\\
- --infodir=%{_infodir}
+ --infodir=%{_infodir} \\\
+ --disable-dependency-tracking
#------------------------------------------------------------------------------
# The make install analogue of %configure for modern autotools:
++++++ rpm-gst-provides.patch ++++++
Index: ./autodeps/linux.prov
===================================================================
--- ./autodeps/linux.prov
+++ ./autodeps/linux.prov
@@ -102,4 +102,9 @@ fi
[ -x /usr/lib/rpm/find-provides.ksyms ] &&
printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
+#
+# --- GStreamer provides, codecs
+[ -x /usr/lib/rpm/gstreamer-provides ] &&
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/gstreamer-provides | sort -u
+
exit 0
++++++ rpm-shorten-changelog.diff ++++++
--- ./build/pack.c.orig 2013-06-10 15:55:10.000000000 +0000
+++ ./build/pack.c 2013-07-12 11:59:37.000000000 +0000
@@ -540,6 +540,63 @@ static rpmRC checkPackages(char *pkgchec
return RPMRC_OK;
}
+static void trimChangelog(Header h)
+{
+ static int oneshot;
+ static int cuttime, minnum, maxnum;
+ int * times;
+ char ** names = 0, ** texts = 0;
+ int i, keep, count = 0;
+
+ if (!oneshot) {
+ char *binarychangelogtrim = rpmExpand("%{?_binarychangelogtrim}", NULL);
+ oneshot = 1;
+ if (binarychangelogtrim && *binarychangelogtrim) {
+ maxnum = atoi(binarychangelogtrim);
+ binarychangelogtrim = strchr(binarychangelogtrim, ',');
+ if (binarychangelogtrim)
+ binarychangelogtrim++;
+ }
+ if (binarychangelogtrim && *binarychangelogtrim) {
+ cuttime = atoi(binarychangelogtrim);
+ binarychangelogtrim = strchr(binarychangelogtrim, ',');
+ if (binarychangelogtrim)
+ binarychangelogtrim++;
+ }
+ if (binarychangelogtrim && *binarychangelogtrim) {
+ minnum = atoi(binarychangelogtrim);
+ binarychangelogtrim = strchr(binarychangelogtrim, ',');
+ }
+ }
+ if (!cuttime && !minnum && !maxnum) {
+ return;
+ }
+ if (!headerGetEntry(h, RPMTAG_CHANGELOGTIME, NULL, (void **) ×, &count))
+ return;
+ if ((!cuttime || count <= minnum) && (!maxnum || count <= maxnum)) {
+ return;
+ }
+ keep = count;
+ if (maxnum && keep > maxnum)
+ keep = maxnum;
+ if (cuttime) {
+ for (i = 0; i < keep; i++) {
+ if (i >= minnum && times[i] < cuttime)
+ break;
+ }
+ keep = i;
+ }
+ if (keep >= count)
+ return;
+ headerGetEntry(h, RPMTAG_CHANGELOGNAME, NULL, (void **) &names, &count);
+ headerGetEntry(h, RPMTAG_CHANGELOGTEXT, NULL, (void **) &texts, &count);
+ headerModifyEntry(h, RPMTAG_CHANGELOGTIME, RPM_INT32_TYPE, times, keep);
+ headerModifyEntry(h, RPMTAG_CHANGELOGNAME, RPM_STRING_ARRAY_TYPE, names, keep);
+ headerModifyEntry(h, RPMTAG_CHANGELOGTEXT, RPM_STRING_ARRAY_TYPE, texts, keep);
+ free(names);
+ free(texts);
+}
+
rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
{
rpmRC rc;
@@ -547,6 +604,7 @@ rpmRC packageBinaries(rpmSpec spec, cons
Package pkg;
char *pkglist = NULL;
+ trimChangelog(spec->packages->header);
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
char *fn;
--- ./build/parseChangelog.c.orig 2012-11-18 08:21:06.000000000 +0000
+++ ./build/parseChangelog.c 2013-07-12 11:59:37.000000000 +0000
@@ -183,6 +183,11 @@ static rpmRC addChangelog(Header h, ARGV
goto exit;
}
+ /* workaround old suse oddity */
+ if (*s == '-' && s[1] == ' ') {
+ s += 2;
+ }
+
/* name */
name = s;
while (*s != '\0') s++;
++++++ rpm-suse_macros ++++++
# need to keep this around for a while
%suse_check %{nil}
# directories
%_infodir %{_prefix}/share/info
%_mandir %{_prefix}/share/man
%_sysconfdir /etc
%_localstatedir /var
%_defaultdocdir %{_usr}/share/doc/packages
# package build macros
%make_install make install DESTDIR=%{?buildroot}
%makeinstall make DESTDIR=%{?buildroot:%{buildroot}} install
%insserv_prereq insserv sed
%fillup_prereq fillup coreutils grep diffutils
%install_info_prereq info
# this script calls all scripts in /usr/lib/rpm/brp-suse.d
%__os_install_post \
/usr/lib/rpm/brp-compress \
/usr/lib/rpm/brp-suse \
%{nil}
# macro: %restart_on_update()
# Used to restart a service in postun section, if we are
# not running from YaST2 in instsys on update.
%restart_on_update() \
test -n "$FIRST_ARG" || FIRST_ARG=$1 \
if test "$FIRST_ARG" -ge 1 ; then \
test -f /etc/sysconfig/services && . /etc/sysconfig/services \
if test "$YAST_IS_RUNNING" != "instsys" -a "$DISABLE_RESTART_ON_UPDATE" != yes ; then \
test -x /bin/systemctl && /bin/systemctl daemon-reload >/dev/null 2>&1 || : \
for service in %{?*} ; do \
test -x /etc/init.d/$service && /etc/init.d/$service try-restart > /dev/null 2>&1 || : \
test -x /bin/systemctl && /bin/systemctl try-restart $service >/dev/null 2>&1 || : \
done \
fi \
fi \
%nil
# macro: %stop_on_removal()
# Used to stop a service in preun section, if we are
# not running from YaST2 in instsys on removal of this package.
%stop_on_removal() \
test -n "$FIRST_ARG" || FIRST_ARG=$1 \
if test "$FIRST_ARG" = "0" ; then \
test -f /etc/sysconfig/services && . /etc/sysconfig/services \
if test "$YAST_IS_RUNNING" != "instsys" -a "$DISABLE_STOP_ON_REMOVAL" != yes ; then \
for service in %{?*} ; do \
test -x /etc/init.d/$service && /etc/init.d/$service stop > /dev/null 2>&1 || : \
test -x /bin/systemctl && /bin/systemctl stop $service >/dev/null 2>&1 || : \
done \
fi \
fi \
%nil
# macro: %configure_kernel_source
#
#
%configure_kernel_source() \
if test -d /usr/src/linux ; then \
pushd /usr/src/linux \
test -f .config || cp arch/%_arch/defconfig.default .config \
yes "" | make oldconfig \
make dep \
popd \
fi \
%nil
%is_plus %(if test -f /.buildenv ; then source /.buildenv ; if [[ "$BUILD_BASENAME" == *+kde ]] ; then echo 1 ; else echo 0 ; fi ; else echo 0 ; fi)
%set_permissions(f:) \
if [ -x /usr/bin/chkstat ]; then \
/usr/bin/chkstat -n --set --system %{**} \
fi \
%nil
%verify_permissions(e:f:) \
/usr/bin/chkstat -n --warn --system %{**} 1>&2 \
%nil
%suse_update_libdir() \
if [ %_lib != lib ]; then \
for file in %{?*} ; do \
[ ! -e $file ] && echo "Error: $file does not exist!" && exit -1 \
[ -e $file.nolib64 ] && echo "Error: $file.nolib64 already exists!" && exit -1 \
cp $file $file.nolib64 \
echo "patching $file" \
sed -e "s,/lib\\\>,/%_lib,g" $file.nolib64 | sed -e "s,/%_lib/cpp,/lib/cpp,; s,/usr/%_lib/perl,/usr/lib/perl, ; s,/%_lib\\([\$-]\\),/lib\\1,g" > $file \
diff -u $file.nolib64 $file \
rm -f $file.nolib64 \
done; \
fi ; \
# macro: fillup_and_insserv
# do the fillup and insserv calls for postinstall
# options:
# -n (use first argument as name for fillup template filenames
# instead of package name)
# -f (skip fillup parts)
# -i (skip insserv parts)
# -y (default start-variable value to yes)
# Used only if X-UnitedLinux-Default-Enabled is not specified
# in the init script
# -Y (force_yes: always activate, discard setting before update)
# arguments:
# [if "-n" first argument as package name]
# Pairs of:
# main script name
# and
# name of (old) START variable (unless -s is given)
#
# template for variables into /etc/sysconfig/package:
# /var/adm/fillup-templates/sysconfig.package
%fillup_and_insserv(finpsyY) \
%{-p:echo "-p option for fillup_and_insserv no longer supported (ever only used on SL8.0)"; exit 1;} \
%{-s:echo "STARTVAR for fillup_and_insserv no longer supported (rc.config is gone since SL8.0)"; exit 1;} \
test -n "$FIRST_ARG" || FIRST_ARG=$1 \
%{-Y:FORCE_YES=1}%{!-Y:FORCE_YES=0} \
set -- %{?*} \
%{-n:PNAME=$1 ; shift }%{!-n:PNAME=%{name}} \
INSSRV_ARRAY="" \
while [ ${#*} -gt 0 ] ; do \
SCRIPTNAME=$1 \
shift \
SV_B='^### BEGIN INIT INFO' \
SV_E='^### END INIT INFO' \
SV_KW=Default-Enabled \
SV_VALUE=`sed -n -e "/$SV_B/,/$SV_E/{/^# [^[:space:]]*$SV_KW:[[:space:]]*\\([^[:space:]]*\\).*/s//\\1/p;}" < /etc/init.d/$SCRIPTNAME` \
test "$FORCE_YES" = "1" && SV_VALUE="yes" \
test -n "$SV_VALUE" || SV_VALUE=%{-y:"yes"}%{!-y:"no"} \
INSSRV_ARRAY="$INSSRV_ARRAY $SCRIPTNAME $SV_VALUE" \
done \
%{!-f: %{do_real_fillup}} \
%{!-i: %{add_start_if_needed $INSSRV_ARRAY } } \
%nil
# do_real_fillup: internal macro
# this part really calls fillup for the appropriate files
#
%do_real_fillup() \
TEMPLATE_DIR=/var/adm/fillup-templates \
SYSC_TEMPLATE=$TEMPLATE_DIR/sysconfig.$PNAME \
SD_NAME="" \
%{sysc_fillup}
# add_start_if_needed: internally used by fillup_and_insserv
%add_start_if_needed() \
set -- %{?*} \
while [ ${#*} -gt 0 ] ; do \
SCRIPTNAME=$1 \
SV_VALUE=$2 \
shift 2 \
test -n "$SCRIPTNAME" -a -n "$SV_VALUE" || { echo "SCRIPTNAME or SV_VALUE unknown"; exit 1;} \
if test "$FIRST_ARG" = "1" -a "$SV_VALUE" = "no" ; then \
/sbin/insserv ${YAST_IS_RUNNING:+-f} -r /etc/init.d/$SCRIPTNAME \
elif test "$FIRST_ARG" = "1" -o "$FORCE_YES" = "1" ; then \
/sbin/insserv ${YAST_IS_RUNNING:+-f} /etc/init.d/$SCRIPTNAME \
fi \
done
# macro: insserv_cleanup
%insserv_cleanup() \
/sbin/insserv /etc/init.d
# macro: fillup_only
# do the fillup for sysconfig files
# template naming convention:
# .../fillup-templates/sysconfig.$NAME1[-$NAME2]
# NAME1: the name of the sysconfig-file
# NAME2: if needed (if more packages fill the
# same sysconfig file) the package name
# options:
# -n set sysconfig name manually
# -a use package name as $NAME2
# -s use second arg as package-name
# -d use a subdirectory of sysconfig
# (last arg as directory name)
%fillup_only(dans) \
%{-n:PNAME=%{1}}%{!-n:PNAME=%{name}} \
%{-s:SUBPNAME=-%{2}}%{!-s:SUBPNAME=%{-a:-%{name}}} \
TEMPLATE_DIR=/var/adm/fillup-templates \
SYSC_TEMPLATE=$TEMPLATE_DIR/sysconfig.$PNAME$SUBPNAME \
SD_NAME="" \
%{-d:%{-s:SD_NAME=%{3}/}%{!-s:SD_NAME=%{2}/}} \
%{sysc_fillup} \
%nil
# internal only: sysc_fillup
%sysc_fillup() \
if [ -x /bin/fillup ] ; then \
if [ -f $SYSC_TEMPLATE ] ; then \
echo "Updating /etc/sysconfig/$SD_NAME$PNAME..." \
mkdir -p /etc/sysconfig/$SD_NAME \
touch /etc/sysconfig/$SD_NAME$PNAME \
/bin/fillup -q /etc/sysconfig/$SD_NAME$PNAME $SYSC_TEMPLATE \
fi \
else \
echo "ERROR: fillup not found. This should not happen. Please compare" \
echo "/etc/sysconfig/$PNAME and $TEMPLATE_DIR/sysconfig.$PNAME and" \
echo "update by hand." \
fi
# macro: rename_sysconfig_variable
# as the name says, rename a variable in the file given with -f
%rename_sysconfig_variable(f:) \
%{!-f:echo "missing argument for rename_sysconfig_variable"; exit 1; }%{-f:FILE=%{-f*}} \
if [ -f $FILE ] ; then \
sed -i -e "s/^%{1}=/%{2}=/" $FILE \
fi
# macro: remove_and_set
# remove variables from sysconfig.$NAME
# (both if existant) and set them in the environment
# for further handling in postinstall
# options: -n set package name
# -y default to yes if not found (otherwise no)
%remove_and_set(n:y) \
%{-n:PNAME=%{-n*}}%{!-n:PNAME=%{name}} \
DEF_VAL=%{-y:"yes"}%{!-y:"no"} \
DEL_TEMPL=/var/adm/fillup-templates/$PNAME.del \
rm -f $DEL_TEMPL \
for var in %{?*} ; do \
echo -e "#\\n$var=$DEF_VAL\\n" >> $DEL_TEMPL \
done \
if [ -f /etc/sysconfig/$PNAME ] ; then \
/bin/fillup -q -t -r -i -d "=" /etc/sysconfig/$PNAME $DEL_TEMPL /etc/sysconfig/$PNAME.deleted.$$ \
test -f /etc/sysconfig/$PNAME.new && mv /etc/sysconfig/$PNAME.new /etc/sysconfig/$PNAME \
fi \
for i in $DEL_TEMPL /etc/sysconfig/$PNAME.deleted.$$ ; do \
if [ -f $i ] ; then \
. $i \
rm -f $i \
fi \
done
%insserv_force_if_yast() \
/sbin/insserv ${YAST_IS_RUNNING:+-f} %{?*}
%run_ldconfig /sbin/ldconfig
%install_info(:-:) \
ALL_ARGS=(%{**}) \
NUM_ARGS=${#ALL_ARGS[@]} \
if test -x /sbin/install-info ; then \
if test -e "${ALL_ARGS[$((NUM_ARGS-1))]}" ; then \
/sbin/install-info "${ALL_ARGS[@]}" \
fi \
fi ;
%install_info_delete(:-:) \
ALL_ARGS=(%{**}) \
NUM_ARGS=${#ALL_ARGS[@]} \
if test -x /sbin/install-info ; then \
if ! test -e "${ALL_ARGS[$((NUM_ARGS-1))]}" ; then \
/sbin/install-info --quiet --delete "${ALL_ARGS[@]}" \
fi ; \
fi ;
# find-supplements.ksyms parses this macro directly out of the spec file:
%supplements_kernel_module() \
%{expand:%(if ! rpm -q kernel-syms > /dev/null; then echo "%fail Please add the kernel-syms package to BuildRequires"; fi)}
%suse_version 1310
%sles_version 0
%ul_version 0
%do_profiling 1
%cflags_profile_generate -fprofile-generate
%cflags_profile_feedback -fprofile-use
%suse_install_update_message() \
install -D -m 644 %1 %buildroot/var/adm/update-messages/%{name}-%{version}-%{release}-%(basename %1).txt \
%nil
%suse_install_update_script() \
install -D -m 755 %1 %buildroot/var/adm/update-scripts/%{name}-%{version}-%{release}-%(basename %1).txt \
%nil
# Template for lang sub-package.
%lang_package(n:r:) \
%package %{-n:-n %{-n*}-}lang \
Summary: Languages for package %{name} \
Group: System/Localization \
Requires: %{-n:%{-n*}}%{!-n:%{name}} = %{version} \
%{-r:Requires: %{-r*}} \
Provides: %{-n:%{-n*}}%{!-n:%{name}}-lang-all = %{version} \
Supplements: packageand(bundle-lang-other:%{-n:%{-n*}}%{!-n:%{name}}) \
BuildArch: noarch \
%description %{-n:-n %{-n*}-}lang \
Provides translations to the package %{name}
++++++ rpmconfigcheck ++++++
#! /bin/bash
# Copyright (c) 2002 SuSE GmbH Nuernberg, Germany.
#
# Author: Michael Schroeder <feedback(a)suse.de>
#
# /etc/init.d/rpmconfigcheck
# /usr/sbin/rcrpmconfigcheck
#
# Script to scan for unresolved .rpmnew, .rpmorig, and .rpmsave files
#
### BEGIN INIT INFO
# Provides: rpmconfigcheck
# Required-Start: $remote_fs
# Required-Stop: $null
# Default-Start: 2 3 5
# Default-Stop:
# Description: rpm config file scan
### END INIT INFO
. /etc/rc.status
# First reset status of this service
rc_reset
configcheckfile=/var/adm/rpmconfigcheck
packages=/var/lib/rpm/Packages
test -z "$1" && set start
case "$1" in
start|restart|try-restart|reload|force-reload)
if test -s $packages -a \( ! -e $configcheckfile -o -s $configcheckfile -o ! $packages -ot $configcheckfile \) ; then
echo -n "Searching for unresolved configuration files"
if test ! -e $configcheckfile -o ! $packages -ot $configcheckfile ; then
test -e $configcheckfile && mv -f $configcheckfile $configcheckfile.old
rpm -qalc | sort | perl -lne '-e "$_.rpmnew" and print "$_.rpmnew"; -e "$_.rpmorig" and print "$_.rpmorig"; -e "$_.rpmsave" and print "$_.rpmsave"' > $configcheckfile
else
mv -f $configcheckfile $configcheckfile.old
while read l; do
test -e $l && echo $l
done < $configcheckfile.old > $configcheckfile
true
fi
rc_status -v
if test -s $configcheckfile; then
echo "Please check the following files (see /var/adm/rpmconfigcheck):"
sed -e 's/^/ /' < $configcheckfile
touch $configcheckfile.old
cat $configcheckfile $configcheckfile.old | sort | uniq -d > $configcheckfile.dup
cat $configcheckfile $configcheckfile.dup | sort | uniq -u > $configcheckfile.new
if test -s $configcheckfile.new ; then
(
echo "----------------------------------------------------------------------"
echo "----------------------------------------------------------------------"
echo "rpmconfigcheck"
date
echo "----------------------------------------"
echo "This is a warning message."
echo "rpmconfigcheck has found the following new unresolved config files"
echo "(all files are listed in /var/adm/rpmconfigcheck):"
cat $configcheckfile.new
echo "----------------------------------------"
) >> /var/log/update-messages
fi
fi
rm -f $configcheckfile.old $configcheckfile.dup $configcheckfile.new
fi
;;
stop)
;;
status)
rc_failed 4
rc_status -v
;;
*)
echo "Usage: $0 {start}"
exit 1
;;
esac
rc_exit
++++++ rpmpopt.diff ++++++
--- ./rpmpopt.in.orig 2011-05-11 14:27:32.000000000 +0000
+++ ./rpmpopt.in 2011-05-11 15:02:34.000000000 +0000
@@ -101,7 +101,8 @@ Relocations : %|PREFIXES?{[%{PREFIXES} ]
%|URL?{URL : %{URL}\n}|\
%|BUGURL?{Bug URL : %{BUGURL}\n}|\
Summary : %{SUMMARY}\n\
-Description :\n%{DESCRIPTION}\n' \
+Description :\n%{DESCRIPTION}\n\
+Distribution: %{DISTRIBUTION}\n' \
--POPTdesc=$"list descriptive information from package(s)"
rpm alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]' \
++++++ rpmqpack.diff ++++++
Provide rpmqpack, a fast way to list all installed packages are
check if some package is installed. This is a hack.
--- ./Makefile.am.orig 2011-05-11 14:27:32.000000000 +0000
+++ ./Makefile.am 2011-05-11 15:15:27.000000000 +0000
@@ -170,6 +170,10 @@ rpmgraph_LDADD = lib/librpm.la rpmio/lib
dist_bin_SCRIPTS = scripts/gendiff
+bin_PROGRAMS += rpmqpack
+rpmqpack_SOURCES = rpmqpack.c
+rpmqpack_LDADD = lib/librpm.la
+
rpmconfig_DATA = rpmrc
rpmrc: $(top_srcdir)/rpmrc.in
@$(SED) \
--- ./doc/Makefile.am.orig 2011-01-05 08:11:09.000000000 +0000
+++ ./doc/Makefile.am 2011-05-11 15:16:24.000000000 +0000
@@ -8,7 +8,7 @@ EXTRA_DIST += $(man_man1_DATA)
man_man8dir = $(mandir)/man8
man_man8_DATA = rpm.8 rpmbuild.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8
-man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8
+man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 rpmqpack.8
EXTRA_DIST += $(man_man8_DATA)
man_fr_man8dir = $(mandir)/fr/man8
--- ./doc/rpmqpack.8.orig 2011-05-11 15:15:27.000000000 +0000
+++ ./doc/rpmqpack.8 2011-05-11 15:15:27.000000000 +0000
@@ -0,0 +1,25 @@
+.TH RPMQPACK 8 "Mar 2002"
+.SH NAME
+rpmqpack \- check for installed rpm packages
+
+.SH SYNOPSIS
+.B rpmqpack
+.RI [ pack1 "] [" pack2 ]...
+
+.SH DESCRIPTION
+rpmqpack checks if packages given as arguments are installed in
+the system. It prints each installed package to stdout.
+If no arguments are given all installed packages are printed.
+
+.SH EXIT STATUS
+rpmqpack returns 0 if all given packages are installed, otherwise
+1.
+
+.SH SEE ALSO
+.BR rpm (1)
+
+.SH COPYRIGHT
+2002 SuSE Linux AG Nuernberg, Germany.
+
+.SH AUTHOR
+Michael Schroeder <mls(a)suse.de>
--- ./rpmqpack.c.orig 2011-05-11 15:15:27.000000000 +0000
+++ ./rpmqpack.c 2011-05-11 15:15:27.000000000 +0000
@@ -0,0 +1,59 @@
+#include <sys/types.h>
+#include <limits.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <db.h>
+
+DBT key;
+DBT data;
+
+int
+main(int argc, char **argv)
+{
+ DB *db = 0;
+ DBC *dbc = 0;
+ int ret = 0;
+
+ if (db_create(&db, 0, 0))
+ {
+ perror("db_create");
+ exit(1);
+ }
+ if (db->open(db, 0, "/var/lib/rpm/Name", 0, DB_UNKNOWN, DB_RDONLY, 0664))
+ {
+ perror("db->open");
+ exit(1);
+ }
+ if (argc == 1)
+ {
+ if (db->cursor(db, NULL, &dbc, 0))
+ {
+ perror("db->cursor");
+ exit(1);
+ }
+ while (dbc->c_get(dbc, &key, &data, DB_NEXT) == 0)
+ printf("%*.*s\n", (int)key.size, (int)key.size, (char *)key.data);
+ dbc->c_close(dbc);
+ }
+ else
+ {
+ argc--;
+ while (argc--)
+ {
+ argv++;
+ key.data = (void *)*argv;
+ key.size = strlen(*argv);
+ data.data = NULL;
+ data.size = 0;
+ if (db->get(db, 0, &key, &data, 0) == 0)
+ printf("%s\n", *argv);
+ else
+ ret = 1;
+ }
+ }
+ db->close(db, 0);
+ return ret;
+}
++++++ rpmrc.diff ++++++
--- ./rpmrc.in.orig 2013-06-10 15:55:10.000000000 +0000
+++ ./rpmrc.in 2013-07-12 11:56:53.000000000 +0000
@@ -12,16 +12,16 @@
# "fat" binary with both archs, for Darwin
optflags: fat -O2 -g -arch i386 -arch ppc
-optflags: i386 -O2 -g -march=i386 -mtune=i686
-optflags: i486 -O2 -g -march=i486
-optflags: i586 -O2 -g -march=i586
-optflags: i686 -O2 -g -march=i686
-optflags: pentium3 -O2 -g -march=pentium3
-optflags: pentium4 -O2 -g -march=pentium4
-optflags: athlon -O2 -g -march=athlon
+optflags: i386 -O2 -g -m32 -march=i486 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: i486 -O2 -g -m32 -march=i486 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: i586 -O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: i686 -O2 -g -m32 -march=i686 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: pentium3 -O2 -g -m32 -march=pentium3
+optflags: pentium4 -O2 -g -m32 -march=pentium4
+optflags: athlon -O2 -g -m32 -march=athlon
optflags: geode -Os -g -m32 -march=geode
-optflags: ia64 -O2 -g
-optflags: x86_64 -O2 -g
+optflags: ia64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: x86_64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: amd64 -O2 -g
optflags: ia32e -O2 -g
@@ -41,16 +41,17 @@ optflags: sparc64v -O2 -g -m64 -mtune=ni
optflags: m68k -O2 -g -fomit-frame-pointer
-optflags: ppc -O2 -g -fsigned-char
-optflags: ppc8260 -O2 -g -fsigned-char
-optflags: ppc8560 -O2 -g -fsigned-char
-optflags: ppc32dy4 -O2 -g -fsigned-char
-optflags: ppciseries -O2 -g -fsigned-char
-optflags: ppcpseries -O2 -g -fsigned-char
-optflags: ppc64 -O2 -g -fsigned-char
-optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g -fsigned-char
+optflags: ppc -O2 -g -m32 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: ppc8260 -O2 -g -m32
+optflags: ppc8560 -O2 -g -m32
+optflags: ppc32dy4 -O2 -g -m32
+optflags: ppciseries -O2 -g -m32
+optflags: ppcpseries -O2 -g -m32
+optflags: ppc64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: parisc -O2 -g -mpa-risc-1-0
+optflags: hppa -O2 -g -mpa-risc-1-0
optflags: hppa1.0 -O2 -g -mpa-risc-1-0
optflags: hppa1.1 -O2 -g -mpa-risc-1-0
optflags: hppa1.2 -O2 -g -mpa-risc-1-0
@@ -66,7 +67,9 @@ optflags: armv4tl -O2 -g -march=armv4t
optflags: armv5tel -O2 -g -march=armv5te
optflags: armv5tejl -O2 -g -march=armv5te
optflags: armv6l -O2 -g -march=armv6
+optflags: armv6hl -O2 -g -march=armv6 -mfloat-abi=hard -mabi=aapcs-linux
optflags: armv7l -O2 -g -march=armv7
+optflags: armv7hl -O2 -g -march=armv7-a -mfloat-abi=hard -mthumb -mabi=aapcs-linux
optflags: atarist -O2 -g -fomit-frame-pointer
optflags: atariste -O2 -g -fomit-frame-pointer
@@ -76,8 +79,8 @@ optflags: atariclone -O2 -g -fomit-frame
optflags: milan -O2 -g -fomit-frame-pointer
optflags: hades -O2 -g -fomit-frame-pointer
-optflags: s390 -O2 -g
-optflags: s390x -O2 -g
+optflags: s390 -O2 -g -m31 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: s390x -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: sh3 -O2 -g
optflags: sh4 -O2 -g -mieee
@@ -178,7 +181,9 @@ arch_canon: armv4l: armv4l 12
arch_canon: armv5tel: armv5tel 12
arch_canon: armv5tejl: armv5tejl 12
arch_canon: armv6l: armv6l 12
+arch_canon: armv6hl: armv6hl 12
arch_canon: armv7l: armv7l 12
+arch_canon: armv7hl: armv7hl 12
arch_canon: m68kmint: m68kmint 13
arch_canon: atarist: m68kmint 13
@@ -241,17 +246,17 @@ os_canon: MacOSX: macosx 21
#############################################################
# For a given uname().machine, the default build arch
-buildarchtranslate: osfmach3_i686: i386
-buildarchtranslate: osfmach3_i586: i386
+buildarchtranslate: osfmach3_i686: i586
+buildarchtranslate: osfmach3_i586: i586
buildarchtranslate: osfmach3_i486: i386
buildarchtranslate: osfmach3_i386: i386
-buildarchtranslate: athlon: i386
-buildarchtranslate: geode: i386
-buildarchtranslate: pentium4: i386
-buildarchtranslate: pentium3: i386
-buildarchtranslate: i686: i386
-buildarchtranslate: i586: i386
+buildarchtranslate: athlon: i586
+buildarchtranslate: geode: i586
+buildarchtranslate: pentium4: i586
+buildarchtranslate: pentium3: i586
+buildarchtranslate: i686: i586
+buildarchtranslate: i586: i586
buildarchtranslate: i486: i386
buildarchtranslate: i386: i386
@@ -281,6 +286,7 @@ buildarchtranslate: ppcpseries: ppc
buildarchtranslate: ppc64iseries: ppc64
buildarchtranslate: ppc64pseries: ppc64
buildarchtranslate: ppc64p7: ppc64
+buildarchtranslate: powerpc64: ppc64
buildarchtranslate: armv3l: armv3l
buildarchtranslate: armv4b: armv4b
@@ -289,7 +295,9 @@ buildarchtranslate: armv4tl: armv4tl
buildarchtranslate: armv5tel: armv5tel
buildarchtranslate: armv5tejl: armv5tejl
buildarchtranslate: armv6l: armv6l
+buildarchtranslate: armv6hl: armv6hl
buildarchtranslate: armv7l: armv7l
+buildarchtranslate: armv7hl: armv7hl
buildarchtranslate: atarist: m68kmint
buildarchtranslate: atariste: m68kmint
@@ -314,6 +322,15 @@ buildarchtranslate: sh4a: sh4
buildarchtranslate: aarch64: aarch64
+buildarchtranslate: parisc: hppa
+buildarchtranslate: hppa2.0: hppa
+buildarchtranslate: hppa64: hppa
+
+buildarchtranslate: armv5l: armv4l
+buildarchtranslate: armv5tel: armv4l
+buildarchtranslate: armv5b: armv4b
+buildarchtranslate: armv5teb: armv4b
+
#############################################################
# Architecture compatibility
@@ -370,14 +387,20 @@ arch_compat: mipsel: noarch
arch_compat: hppa2.0: hppa1.2
arch_compat: hppa1.2: hppa1.1
arch_compat: hppa1.1: hppa1.0
-arch_compat: hppa1.0: parisc
+arch_compat: hppa1.0: hppa
+arch_compat: hppa: parisc
arch_compat: parisc: noarch
+arch_compat: armv5teb: armv5b
+arch_compat: armv5b: armv4b
arch_compat: armv4b: noarch
+arch_compat: armv7hl: armv7l
arch_compat: armv7l: armv6l
arch_compat: armv6l: armv5tejl
+arch_compat: armv6hl: armv6l
arch_compat: armv5tejl: armv5tel
-arch_compat: armv5tel: armv4tl
+arch_compat: armv5tel: armv5l
+arch_compat: armv5l: armv4tl
arch_compat: armv4tl: armv4l
arch_compat: armv4l: armv3l
arch_compat: armv3l: noarch
@@ -394,7 +417,7 @@ arch_compat: i370: noarch
arch_compat: s390: noarch
arch_compat: s390x: s390 noarch
-arch_compat: ia64: noarch
+arch_compat: ia64: i686 noarch
arch_compat: x86_64: amd64 em64t athlon noarch
arch_compat: amd64: x86_64 em64t athlon noarch
@@ -483,7 +506,9 @@ buildarch_compat: mips: noarch
buildarch_compat: mipsel: noarch
buildarch_compat: armv4b: noarch
+buildarch_compat: armv7hl: armv7l
buildarch_compat: armv7l: armv6l
+buildarch_compat: armv6hl: armv6l
buildarch_compat: armv6l: armv5tejl
buildarch_compat: armv5tejl: armv5tel
buildarch_compat: armv5tel: armv4tl
@@ -494,7 +519,8 @@ buildarch_compat: armv3l: noarch
buildarch_compat: hppa2.0: hppa1.2
buildarch_compat: hppa1.2: hppa1.1
buildarch_compat: hppa1.1: hppa1.0
-buildarch_compat: hppa1.0: parisc
+buildarch_compat: hppa1.0: hppa
+buildarch_compat: hppa: parisc
buildarch_compat: parisc: noarch
buildarch_compat: atarist: m68kmint noarch
++++++ rpmrctests.diff ++++++
Patch machine detection code: detect transmeta, rename parisc to hppa. [#52713]
--- ./lib/rpmrc.c.orig 2012-06-01 10:38:24.000000000 +0000
+++ ./lib/rpmrc.c 2012-06-01 10:44:59.000000000 +0000
@@ -786,6 +786,14 @@ static inline int RPMClass(void)
cpu = (tfms>>8)&15;
+ if (cpu == 5
+ && cpuid_ecx(0) == '68xM'
+ && cpuid_edx(0) == 'Teni'
+ && (cpuid_edx(1) & ((1<<8)|(1<<15))) == ((1<<8)|(1<<15))) {
+ sigaction(SIGILL, &oldsa, NULL);
+ return 6; /* has CX8 and CMOV */
+ }
+
sigaction(SIGILL, &oldsa, NULL);
if (cpu < 6)
@@ -1023,6 +1031,12 @@ static void defaultMachine(const char **
strcpy(un.machine, "mips");
# endif
+#if defined(__linux__)
+ /* in linux, lets rename parisc to hppa */
+ if (rstreq(un.machine, "parisc"))
+ strcpy(un.machine, "hppa");
+#endif
+
# if defined(__hpux) && defined(_SC_CPU_VERSION)
{
# if !defined(CPU_PA_RISC1_2)
++++++ rpmsort ++++++
#! /usr/bin/perl -w
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
use Getopt::Long qw(:config gnu_getopt);
sub do_rpm_cmp_versions {
my ($evr1, $evr2) = @_;
sub _rpm_cmp {
my ($s1, $s2) = @_;
return defined $s1 <=> defined $s2
unless defined $s1 && defined $s2;
my ($r, $x1, $x2);
do {
$s1 =~ s/^[^a-zA-Z0-9]+//;
$s2 =~ s/^[^a-zA-Z0-9]+//;
if ($s1 =~ /^\d/ || $s2 =~ /^\d/) {
$s1 =~ s/^(0*(\d*))//; $x1 = $2;
return -1 if $1 eq '';
$s2 =~ s/^(0*(\d*))//; $x2 = $2;
return 1 if $1 eq '';
$r = length $x1 <=> length $x2 || $x1 cmp $x2;
} else {
$s1 =~ s/^([a-zA-Z]*)//; $x1 = $1;
$s2 =~ s/^([a-zA-Z]*)//; $x2 = $1;
return 0
if $x1 eq '' && $x2 eq '';
$r = $x1 cmp $x2;
}
} until $r;
return $r;
}
my ($e1, $v1, $r1) = $evr1 =~ /^(?:(\d*):)?(.*?)(?:-([^-]*))?$/;
my ($e2, $v2, $r2) = $evr2 =~ /^(?:(\d*):)?(.*?)(?:-([^-]*))?$/;
my $r = _rpm_cmp($e1 || 0, $e2 || 0);
$r = _rpm_cmp($v1, $v2)
unless $r;
$r = _rpm_cmp($r1, $r2)
unless $r;
return $r;
}
my $reorder = sub { return @_ };
my $key = 0;
my $test = 0;
sub rpm_cmp_versions {
my ($evr1, $evr2) = @_;
chomp($evr1, $evr2);
my $res1 = do_rpm_cmp_versions($evr1, $evr2);
if ($test) {
open(my $fd, '-|', 'zypper', '--terse', 'versioncmp',
$evr1, $evr2) or die "zypper: $!\n";
my $res2 = <$fd>;
close($fd) or die "zypper: $!\n";
chomp $res2;
if ($res1 != $res2) {
my @operators = qw(< == >);
my $op1 = $operators[$res1 + 1];
my $op2 = $operators[$res2 + 1];
print STDERR "BUG: $evr1 $op1 $evr2 vs. zypper: $evr1 $op2 $evr2\n";
}
}
return $res1;
}
GetOptions ("r|reverse" => sub { $reorder = sub { return reverse @_ } },
"k|key=i" => \$key,
"test" => \$test)
or do {
print STDERR "Usage $0 [-r, --reverse] [-k N, --key=N] [--test]\n";
exit 1;
};
if ($key == 0) {
# Sort by entire lines
map { print } &$reorder(sort { rpm_cmp_versions($a, $b) } <>);
} else {
# Sort by field $key
my @data = map { [(split)[$key-1], $_] } <>;
map { print } &$reorder(map { $_->[1] }
sort { rpm_cmp_versions($a->[0], $b->[0]) } @data);
}
++++++ safeugid.diff ++++++
Work around glibc/nscd caching problems when doing 'rpm --root'.
--- ./lib/rpmchroot.c.orig 2011-05-12 08:26:10.000000000 +0000
+++ ./lib/rpmchroot.c 2011-05-12 08:28:32.000000000 +0000
@@ -66,6 +66,7 @@ int rpmChrootIn(void)
} else if (rootState.chrootDone == 0) {
if (chdir("/") == 0 && chroot(rootState.rootDir) == 0) {
rootState.chrootDone = 1;
+ rpmugChroot(1);
} else {
rpmlog(RPMLOG_ERR, _("Unable to change root directory: %m\n"));
rc = -1;
@@ -91,6 +92,7 @@ int rpmChrootOut(void)
} else if (rootState.chrootDone == 1) {
if (chroot(".") == 0 && fchdir(rootState.cwd) == 0) {
rootState.chrootDone = 0;
+ rpmugChroot(0);
} else {
rpmlog(RPMLOG_ERR, _("Unable to restore root directory: %m\n"));
rc = -1;
--- ./lib/rpmug.c.orig 2011-05-12 08:13:52.000000000 +0000
+++ ./lib/rpmug.c 2011-05-12 08:33:28.000000000 +0000
@@ -35,6 +35,47 @@ const char * rpmugStashStr(const char *s
return ret;
}
+#if defined(__GLIBC__)
+
+static int inchroot;
+
+/*
+ * Unfortunatelly glibc caches nss/nscd data and there is no
+ * good way to flush those caches when we did a chroot(). Thus
+ * we need to parse /etc/passwd and /etc/group ourselfs.
+ */
+static int safe_lookup(const char * file, const char * name)
+{
+ FILE *fp;
+ int l;
+ char buf[4096], *p;
+
+ if (!name || !*name)
+ return -1;
+ l = strlen(name);
+ if ((fp = fopen(file, "r")) == 0)
+ return -1;
+ while ((p = fgets(buf, sizeof(buf), fp)) != 0) {
+ if (*p == '#')
+ continue;
+ while (*p && (*p == ' ' || *p == '\t'))
+ p++;
+ if (strncmp(p, name, l) != 0 || p[l] != ':')
+ continue;
+ p = strchr(p + l + 1, ':');
+ if (!p)
+ continue;
+ fclose(fp);
+ p++;
+ while (*p && (*p == ' ' || *p == '\t'))
+ p++;
+ return atoi(p);
+ }
+ fclose(fp);
+ return -1;
+}
+#endif
+
/*
* These really ought to use hash tables. I just made the
* guess that most files would be owned by root or the same person/group
@@ -68,17 +109,28 @@ int rpmugUid(const char * thisUname, uid
lastUnameAlloced = thisUnameLen + 10;
lastUname = xrealloc(lastUname, lastUnameAlloced); /* XXX memory leak */
}
- strcpy(lastUname, thisUname);
- pwent = getpwnam(thisUname);
- if (pwent == NULL) {
- /* FIX: shrug */
- endpwent();
+#if defined(__GLIBC__)
+ if (inchroot) {
+ int uid = safe_lookup("/etc/passwd", thisUname);
+ if (uid < 0)
+ return -1;
+ lastUid = uid;
+ } else
+#endif
+ {
pwent = getpwnam(thisUname);
- if (pwent == NULL) return -1;
+ if (pwent == NULL) {
+ /* FIX: shrug */
+ endpwent();
+ pwent = getpwnam(thisUname);
+ if (pwent == NULL) return -1;
+ }
+ lastUid = pwent->pw_uid;
}
- lastUid = pwent->pw_uid;
+ strcpy(lastUname, thisUname);
+ lastUnameLen = thisUnameLen;
}
*uid = lastUid;
@@ -111,18 +163,29 @@ int rpmugGid(const char * thisGname, gid
lastGnameAlloced = thisGnameLen + 10;
lastGname = xrealloc(lastGname, lastGnameAlloced); /* XXX memory leak */
}
- strcpy(lastGname, thisGname);
- grent = getgrnam(thisGname);
- if (grent == NULL) {
- /* FIX: shrug */
- endgrent();
+#if defined(__GLIBC__)
+ if (inchroot) {
+ int gid = safe_lookup("/etc/group", thisGname);
+ if (gid < 0)
+ return -1;
+ lastGid = gid;
+ } else
+#endif
+ {
grent = getgrnam(thisGname);
if (grent == NULL) {
- return -1;
+ /* FIX: shrug */
+ endgrent();
+ grent = getgrnam(thisGname);
+ if (grent == NULL) {
+ return -1;
+ }
}
+ lastGid = grent->gr_gid;
}
- lastGid = grent->gr_gid;
+ strcpy(lastGname, thisGname);
+ lastGnameLen = thisGnameLen;
}
*gid = lastGid;
@@ -134,7 +197,7 @@ const char * rpmugUname(uid_t uid)
{
static uid_t lastUid = (uid_t) -1;
static char * lastUname = NULL;
- static size_t lastUnameLen = 0;
+ static size_t lastUnameAlloced = 0;
if (uid == (uid_t) -1) {
lastUid = (uid_t) -1;
@@ -151,9 +214,9 @@ const char * rpmugUname(uid_t uid)
lastUid = uid;
len = strlen(pwent->pw_name);
- if (lastUnameLen < len + 1) {
- lastUnameLen = len + 20;
- lastUname = xrealloc(lastUname, lastUnameLen);
+ if (lastUnameAlloced < len + 1) {
+ lastUnameAlloced = len + 20;
+ lastUname = xrealloc(lastUname, lastUnameAlloced);
}
strcpy(lastUname, pwent->pw_name);
@@ -165,7 +228,7 @@ const char * rpmugGname(gid_t gid)
{
static gid_t lastGid = (gid_t) -1;
static char * lastGname = NULL;
- static size_t lastGnameLen = 0;
+ static size_t lastGnameAlloced = 0;
if (gid == (gid_t) -1) {
lastGid = (gid_t) -1;
@@ -182,9 +245,9 @@ const char * rpmugGname(gid_t gid)
lastGid = gid;
len = strlen(grent->gr_name);
- if (lastGnameLen < len + 1) {
- lastGnameLen = len + 20;
- lastGname = xrealloc(lastGname, lastGnameLen);
+ if (lastGnameAlloced < len + 1) {
+ lastGnameAlloced = len + 20;
+ lastGname = xrealloc(lastGname, lastGnameAlloced);
}
strcpy(lastGname, grent->gr_name);
@@ -200,3 +263,16 @@ void rpmugFree(void)
rpmugGname(-1);
strStash = strCacheFree(strStash);
}
+
+void rpmugChroot(int in)
+{
+ /* tell libc to drop caches / file descriptors */
+ endpwent();
+ endgrent();
+ /* drop our own caches */
+ rpmugUid(NULL, NULL);
+ rpmugGid(NULL, NULL);
+#if defined(__GLIBC__)
+ inchroot = in;
+#endif
+}
--- ./lib/rpmug.h.orig 2011-05-12 08:13:52.000000000 +0000
+++ ./lib/rpmug.h 2011-05-12 08:26:56.000000000 +0000
@@ -15,4 +15,6 @@ const char * rpmugGname(gid_t gid);
void rpmugFree(void);
+void rpmugChroot(int in);
+
#endif /* _RPMUG_H */
++++++ selfconflicts.diff ++++++
>From fae0eef24582dd9e071be8e884ff0851d4b57437 Mon Sep 17 00:00:00 2001
From: Michael Schroeder <mls(a)suse.de>
Date: Fri, 27 Sep 2013 15:09:20 +0200
Subject: [PATCH] Ignore self-obsoletes and self-conflicts in dependency check
code
We already ignored them when checking against the added package list,
but not when checking against installed packages. Thus, rpm -V reported
them as errors.
---
lib/depends.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git lib/depends.c lib/depends.c
index 3d70e68..3ef27bc 100644
--- lib/depends.c
+++ lib/depends.c
@@ -504,6 +504,12 @@ static int rpmdbProvides(rpmts ts, depCache dcache, rpmds dep)
if (deptag != RPMTAG_OBSOLETENAME && Name[0] == '/') {
mi = rpmtsPrunedIterator(ts, RPMDBI_INSTFILENAMES, Name, prune);
while ((h = rpmdbNextIterator(mi)) != NULL) {
+ /* Ignore self-conflicts */
+ if (deptag == RPMTAG_CONFLICTNAME) {
+ unsigned int instance = headerGetInstance(h);
+ if (instance && instance == rpmdsInstance(dep))
+ continue;
+ }
rpmdsNotify(dep, "(db files)", rc);
break;
}
@@ -527,6 +533,12 @@ static int rpmdbProvides(rpmts ts, depCache dcache, rpmds dep)
int prix = (selfevr) ? -1 : rpmdbGetIteratorFileNum(mi);
int match = rpmdsMatches(tspool, h, prix, dep, selfevr,
_rpmds_nopromote);
+ /* Ignore self-obsoletes and self-conflicts */
+ if (match && (deptag == RPMTAG_OBSOLETENAME || deptag == RPMTAG_CONFLICTNAME)) {
+ unsigned int instance = headerGetInstance(h);
+ if (instance && instance == rpmdsInstance(dep))
+ match = 0;
+ }
if (match) {
rpmdsNotify(dep, "(db provides)", rc);
break;
@@ -672,8 +684,18 @@ static void checkInstDeps(rpmts ts, depCache dcache, rpmte te,
rpmstrPool pool = rpmtsPool(ts);
while ((h = rpmdbNextIterator(mi)) != NULL) {
- char * pkgNEVRA = headerGetAsString(h, RPMTAG_NEVRA);
- rpmds ds = rpmdsNewPool(pool, h, depTag, 0);
+ char * pkgNEVRA;
+ rpmds ds;
+
+ /* Ignore self-obsoletes and self-conflicts */
+ if (depTag == RPMTAG_OBSOLETENAME || depTag == RPMTAG_CONFLICTNAME) {
+ unsigned int instance = headerGetInstance(h);
+ if (instance && instance == rpmteDBInstance(te))
+ continue;
+ }
+
+ pkgNEVRA = headerGetAsString(h, RPMTAG_NEVRA);
+ ds = rpmdsNewPool(pool, h, depTag, 0);
checkDS(ts, dcache, te, pkgNEVRA, ds, dep, 0);
--
1.8.1.4
++++++ specfilemacro.diff ++++++
--- ./build/parseSpec.c.orig 2013-06-10 15:55:10.000000000 +0000
+++ ./build/parseSpec.c 2013-07-12 12:04:11.000000000 +0000
@@ -561,6 +561,7 @@ static rpmSpec parseSpec(const char *spe
spec = newSpec();
spec->specFile = rpmGetPath(specFile, NULL);
+ addMacro(spec->macros, "_specfile", NULL, spec->specFile, RMIL_SPEC);
pushOFI(spec, spec->specFile);
/* If buildRoot not specified, use default %{buildroot} */
if (buildRoot) {
++++++ strpoolrehash.diff ++++++
--- rpmio/rpmstrpool.c.orig 2013-09-11 15:33:48.371571600 +0000
+++ rpmio/rpmstrpool.c 2013-09-11 16:20:56.106566595 +0000
@@ -219,8 +219,17 @@ static void rpmstrPoolRehash(rpmstrPool
pool->hash = poolHashFree(pool->hash);
pool->hash = poolHashCreate(sizehint);
- for (int i = 1; i < pool->offs_size; i++)
- poolHashAddEntry(pool, rpmstrPoolStr(pool, i), i);
+ for (int i = 1; i <= pool->offs_size; i++) {
+ /* this is a little bit tricky because we have to skip the dummy
+ * entries that are at the end of each chunk */
+ const char * str = rpmstrPoolStr(pool, i);
+ if (str[0] == 0 && i < pool->offs_size) {
+ /* looks like a dummy entry, check if next str is in a different chunk */
+ if (rpmstrPoolStr(pool, i + 1) != str + 1)
+ continue;
+ }
+ poolHashAddEntry(pool, str, i);
+ }
}
rpmstrPool rpmstrPoolCreate(void)
@@ -308,7 +317,8 @@ static rpmsid rpmstrPoolPut(rpmstrPool p
}
chunk_used = pool->offs[pool->offs_size] - pool->chunks[pool->chunks_size];
- if (ssize + 1 > pool->chunk_allocated - chunk_used) {
+ /* +2: extra trailing zero + extra byte */
+ if (ssize + 2 > pool->chunk_allocated - chunk_used) {
/* check size of ->chunks */
pool->chunks_size += 1;
if (pool->chunks_size >= pool->chunks_allocated) {
@@ -318,11 +328,12 @@ static rpmsid rpmstrPoolPut(rpmstrPool p
}
/* Check if string is bigger than chunks */
- if (ssize > pool->chunk_allocated) {
- pool->chunk_allocated = 2 * ssize;
+ if (ssize + 2 > pool->chunk_allocated) {
+ pool->chunk_allocated = 2 * ssize + 2;
}
/* Dummy entry for end of last string*/
+ pool->offs[pool->offs_size][0] = 0;
pool->offs_size += 1;
pool->offs[pool->offs_size] = xcalloc(1, pool->chunk_allocated);
++++++ suspendlock.diff ++++++
Suspend exclusive database lock when scriptlets get called, allowing
read access in scriptlets. Only needed for DB_PRIVATE (aka global)
locking.
--- ./lib/backend/db3.c.orig 2012-06-01 10:50:11.000000000 +0000
+++ ./lib/backend/db3.c 2012-06-01 10:50:19.000000000 +0000
@@ -628,3 +628,59 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt
return rc;
}
+
+int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags)
+{
+ struct flock l;
+ int rc = 0;
+ int fdno = -1;
+
+ if (!dbi->dbi_lockdbfd)
+ return 0;
+ if (!(dbi->dbi_rpmdb->db_mode & (O_RDWR|O_WRONLY)))
+ return 0;
+ if (_lockdbfd == 0)
+ return 0;
+ if (!(dbi->dbi_db->fd(dbi->dbi_db, &fdno) == 0 && fdno >= 0))
+ return 1;
+ memset(&l, 0, sizeof(l));
+ l.l_whence = 0;
+ l.l_start = 0;
+ l.l_len = 0;
+ l.l_type = F_RDLCK;
+ rc = fcntl(fdno, F_SETLK, (void *)&l);
+ if (rc)
+ rpmlog(RPMLOG_WARNING, _("could not suspend database lock\n"));
+ return rc;
+}
+
+int dbiResumeDBLock(dbiIndex dbi, unsigned int flags)
+{
+ struct flock l;
+ int rc = 0;
+ int tries;
+ int fdno = -1;
+
+ if (!dbi->dbi_lockdbfd)
+ return 0;
+ if (!(dbi->dbi_rpmdb->db_mode & (O_RDWR|O_WRONLY)))
+ return 0;
+ if (_lockdbfd == 0)
+ return 0;
+ if (!(dbi->dbi_db->fd(dbi->dbi_db, &fdno) == 0 && fdno >= 0))
+ return 1;
+ for (tries = 0; tries < 2; tries++) {
+ memset(&l, 0, sizeof(l));
+ l.l_whence = 0;
+ l.l_start = 0;
+ l.l_len = 0;
+ l.l_type = F_WRLCK;
+ rc = fcntl(fdno, tries ? F_SETLKW : F_SETLK, (void *)&l);
+ if (!rc)
+ break;
+ if (tries == 0)
+ rpmlog(RPMLOG_WARNING, _("waiting to reestablish exclusive database lock\n"));
+ }
+ return rc;
+}
+
--- ./lib/backend/dbi.h.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./lib/backend/dbi.h 2012-06-01 10:53:43.000000000 +0000
@@ -90,6 +90,24 @@ struct dbiIndex_s {
extern "C" {
#endif
+/** \ingroup dbi
+ * Suspend the exclusive lock on the dbi
+ * @param dbi index database handle
+ * @param flags (unused)
+ * @return 0 on success
+ */
+RPM_GNUC_INTERNAL
+int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags);
+
+/** \ingroup dbi
+ * Reacquire an exclusive lock on the dbi
+ * @param dbi index database handle
+ * @param flags (unused)
+ * @return 0 on success
+ */
+RPM_GNUC_INTERNAL
+int dbiResumeDBLock(dbiIndex dbi, unsigned int flags);
+
RPM_GNUC_INTERNAL
/* Globally enable/disable fsync in the backend */
--- ./lib/psm.c.orig 2012-06-01 10:50:11.000000000 +0000
+++ ./lib/psm.c 2012-06-01 10:51:34.000000000 +0000
@@ -419,10 +419,12 @@ static rpmRC runScript(rpmpsm psm, ARGV_
if (sfd == NULL)
sfd = rpmtsScriptFd(psm->ts);
+ rpmtsSuspendResumeDBLock(psm->ts, 0);
rpmswEnter(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0);
rc = rpmScriptRun(script, arg1, arg2, sfd,
prefixes, warn_only, selinux);
rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0);
+ rpmtsSuspendResumeDBLock(psm->ts, 1);
/* Map warn-only errors to "notfound" for script stop callback */
stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc;
--- ./lib/rpmdb.c.orig 2012-06-01 10:50:11.000000000 +0000
+++ ./lib/rpmdb.c 2012-06-01 10:50:19.000000000 +0000
@@ -769,6 +769,12 @@ int rpmdbSync(rpmdb db)
return dbiForeach(db->_dbi, dbiSync, 0);
}
+int rpmdbSuspendResumeDBLock(rpmdb db, int mode)
+{
+ if (db == NULL) return 0;
+ return dbiForeach(db->_dbi, mode ? dbiResumeDBLock : dbiSuspendDBLock, 0);
+}
+
static rpmdb newRpmdb(const char * root, const char * home,
int mode, int perms, int flags)
{
--- ./lib/rpmts.c.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./lib/rpmts.c 2012-06-01 10:50:19.000000000 +0000
@@ -95,6 +95,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode)
return rc;
}
+int rpmtsSuspendResumeDBLock(rpmts ts, int mode)
+{
+ return rpmdbSuspendResumeDBLock(ts->rdb, mode);
+}
+
int rpmtsInitDB(rpmts ts, int dbmode)
{
rpmlock lock = rpmtsAcquireLock(ts);
--- ./lib/rpmts.h.orig 2012-03-20 08:07:25.000000000 +0000
+++ ./lib/rpmts.h 2012-06-01 10:50:19.000000000 +0000
@@ -423,6 +423,8 @@ rpmdb rpmtsGetRdb(rpmts ts);
void * rpmtsNotify(rpmts ts, rpmte te,
rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
+int rpmtsSuspendResumeDBLock(rpmts ts, int mode);
+
/** \ingroup rpmts
* Return number of (ordered) transaction set elements.
* @param ts transaction set
++++++ symset-table ++++++
#! /bin/sh
# Create a table of all symbol sets defined in all /boot/symsets*.tar.gz
# files.
#
# Format:
# kernelrelease/modver/symbol <tab> symset <tab> symset_hash
#
# This table is needed for computing the appropriate Requires: tags for
# kernel module packages.
tmpdir=$(mktemp -t -d ${0##*/}.XXXXXX)
trap "cd / ; rm -rf $tmpdir" EXIT
cd $tmpdir
shopt -s nullglob
for symsets in /boot/symsets-*.tar.gz; do
zcat $symsets \
| tar xf -
done
for symsets in *; do
krel=${symsets#symsets-}
for symset in $symsets/*; do
class=${symset##*/} ; class=${class%.*}
hash=${symset##*.}
awk '
BEGIN { FS = "\t" ; OFS = "\t" }
{ sub(/0x0*/, "", $1)
print krel "/" $1 "/" $2, class, hash }
' krel="$krel" class="$class" hash="$hash" $symset
done
done
# vim:shiftwidth=4 softtabstop=4
++++++ sysconfig.services-rpm ++++++
## Path: System/Services
## Type: yesno
## Default: no
#
# Do you want to disable the automatic restart of services when
# a new version gets installed?
#
DISABLE_RESTART_ON_UPDATE="no"
## Type: yesno
## Default: no
#
# Do you want to disable the automatic shutdown of services when
# the corresponding package gets erased?
#
DISABLE_STOP_ON_REMOVAL="no"
++++++ taggedfileindex.diff ++++++
This used to be the taggedfileindex patch, but it's gone.
The remaining part just strips off the tag.
--- ./lib/rpmdb.c.orig 2011-05-11 14:27:32.000000000 +0000
+++ ./lib/rpmdb.c 2011-05-11 15:14:39.000000000 +0000
@@ -257,6 +257,9 @@ static int dbt2set(dbiIndex dbi, DBT * d
_DBSWAP(hdrNum);
_DBSWAP(tagNum);
}
+ /* remove tagged directory info */
+ if (tagNum.ui & 0x80000000)
+ tagNum.ui &= 0x0000ffff;
set->recs[i].hdrNum = hdrNum.ui;
set->recs[i].tagNum = tagNum.ui;
}
++++++ unpackmode0.diff ++++++
--- ./lib/fsm.c.orig 2013-06-10 15:55:10.000000000 +0000
+++ ./lib/fsm.c 2014-12-11 14:56:46.948898563 +0000
@@ -726,12 +726,18 @@ static int expandRegular(FSM_t fsm, rpmp
{
FD_t wfd = NULL;
const struct stat * st = &fsm->sb;
- rpm_loff_t left = st->st_size;
+ rpm_loff_t size = rpmfiFSizeIndex(fsmGetFi(fsm), fsm->ix);
+ rpm_loff_t left = size;
const unsigned char * fidigest = NULL;
pgpHashAlgo digestalgo = 0;
int rc = 0;
- wfd = Fopen(fsm->path, "w.ufdio");
+ /* Create the file with 000 permissions. */
+ {
+ mode_t old_umask = umask(0777);
+ wfd = Fopen(fsm->path, "w.ufdio");
+ umask(old_umask);
+ }
if (Ferror(wfd)) {
rc = CPIOERR_OPEN_FAILED;
goto exit;
@@ -743,7 +749,7 @@ static int expandRegular(FSM_t fsm, rpmp
fidigest = rpmfiFDigestIndex(fi, fsm->ix, NULL, NULL);
}
- if (st->st_size > 0 && fidigest)
+ if (size > 0 && fidigest)
fdInitDigest(wfd, digestalgo, 0);
while (left) {
@@ -765,7 +771,7 @@ static int expandRegular(FSM_t fsm, rpmp
rpmpsmNotify(psm, RPMCALLBACK_INST_PROGRESS, rpmcpioTell(archive));
}
- if (st->st_size > 0 && fidigest) {
+ if (size > 0 && fidigest) {
void * digest = NULL;
(void) Fflush(wfd);
++++++ waitlock.diff ++++++
Fix global (DB_PRIVATE) lock code: fix recursion counter, retry
failed lock operations for up to 3 minutes.
--- ./lib/backend/db3.c.orig 2012-05-04 09:47:17.000000000 +0000
+++ ./lib/backend/db3.c 2012-06-01 10:47:01.000000000 +0000
@@ -422,6 +422,8 @@ int dbiVerify(dbiIndex dbi, unsigned int
return rc;
}
+static int _lockdbfd = 0;
+
int dbiClose(dbiIndex dbi, unsigned int flags)
{
rpmdb rdb = dbi->dbi_rpmdb;
@@ -439,6 +441,8 @@ int dbiClose(dbiIndex dbi, unsigned int
rpmlog(RPMLOG_DEBUG, "closed db index %s/%s\n",
dbhome, dbi->dbi_file);
+ if (dbi->dbi_lockdbfd && _lockdbfd)
+ _lockdbfd--;
}
db_fini(rdb, dbhome ? dbhome : "");
@@ -478,6 +482,7 @@ static int dbiFlock(dbiIndex dbi, int mo
rc = 1;
} else {
const char *dbhome = rpmdbHome(dbi->dbi_rpmdb);
+ int tries;
struct flock l;
memset(&l, 0, sizeof(l));
l.l_whence = 0;
@@ -487,20 +492,38 @@ static int dbiFlock(dbiIndex dbi, int mo
? F_RDLCK : F_WRLCK;
l.l_pid = 0;
- rc = fcntl(fdno, F_SETLK, (void *) &l);
- if (rc) {
- uint32_t eflags = db_envflags(db);
- /* Warning iff using non-private CDB locking. */
- rc = (((eflags & DB_INIT_CDB) && !(eflags & DB_PRIVATE)) ? 0 : 1);
- rpmlog( (rc ? RPMLOG_ERR : RPMLOG_WARNING),
- _("cannot get %s lock on %s/%s\n"),
- ((mode & O_ACCMODE) == O_RDONLY)
- ? _("shared") : _("exclusive"),
- dbhome, dbi->dbi_file);
- } else {
- rpmlog(RPMLOG_DEBUG,
- "locked db index %s/%s\n",
- dbhome, dbi->dbi_file);
+ for (tries = 0; ; tries++) {
+ rc = fcntl(fdno, F_SETLK, (void *) &l);
+ if (rc) {
+ uint32_t eflags = db_envflags(db);
+ /* Warning iff using non-private CDB locking. */
+ rc = (((eflags & DB_INIT_CDB) && !(eflags & DB_PRIVATE)) ? 0 : 1);
+ if (errno == EAGAIN && rc) {
+ struct timespec ts;
+ if (tries == 0)
+ rpmlog(RPMLOG_WARNING,
+ _("waiting for %s lock on %s/%s\n"),
+ ((mode & O_ACCMODE) == O_RDONLY)
+ ? _("shared") : _("exclusive"),
+ dbhome, dbi->dbi_file);
+ ts.tv_sec = (time_t)0;
+ ts.tv_nsec = 100000000; /* .1 seconds */
+ if (tries < 10*60*3) { /* 3 minutes */
+ nanosleep(&ts, (struct timespec *)0);
+ continue;
+ }
+ }
+ rpmlog( (rc ? RPMLOG_ERR : RPMLOG_WARNING),
+ _("cannot get %s lock on %s/%s\n"),
+ ((mode & O_ACCMODE) == O_RDONLY)
+ ? _("shared") : _("exclusive"),
+ dbhome, dbi->dbi_file);
+ } else {
+ rpmlog(RPMLOG_DEBUG,
+ "locked db index %s/%s\n",
+ dbhome, dbi->dbi_file);
+ }
+ break;
}
}
return rc;
@@ -517,7 +540,6 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt
DB * db = NULL;
DBTYPE dbtype = DB_UNKNOWN;
uint32_t oflags;
- static int _lockdbfd = 0;
if (dbip)
*dbip = NULL;
@@ -591,7 +613,10 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt
dbi->dbi_db = db;
dbi->dbi_oflags = oflags;
- if (!verifyonly && rc == 0 && dbi->dbi_lockdbfd && _lockdbfd++ == 0) {
+ if (verifyonly)
+ dbi->dbi_lockdbfd = 0; /* disable locking in verify mode */
+
+ if (rc == 0 && dbi->dbi_lockdbfd && _lockdbfd++ == 0) {
rc = dbiFlock(dbi, rdb->db_mode);
}
++++++ weakdeps.diff ++++++
Add support for weak dependencies:
A) use RPMTAG_SUGGESTS and RPMTAG_ENHANCES to store them.
This is different to upstream, which uses RPMSENSE_MISSINGOK
and RPMTAG_REQUIRES/RPMTAG_PROVIDES instead. I chose different
tags because I wanted to be compatible. The point is that
applications that don't know about the new MISSINGOK semantics
will mis-interpret the provides/requires otherwise, which
I deemed too risky.
B) use RPMSENSE_STRONG to support a "strong" version, "Recommends"
instead of "Suggests" and "Supplements" instead of "Enhances".
Needs extcond.diff for query operations.
--- build/parsePreamble.c
+++ build/parsePreamble.c
@@ -341,6 +341,8 @@
{ "verify", RPMSENSE_SCRIPT_VERIFY },
{ "pretrans", RPMSENSE_PRETRANS },
{ "posttrans", RPMSENSE_POSTTRANS },
+ { "hint", RPMSENSE_MISSINGOK },
+ { "strong", RPMSENSE_STRONG },
{ NULL, 0 }
};
@@ -795,6 +797,18 @@
if (parseRCPOT(spec, spec->sourcePackage, field, tag, 0, tagflags))
goto exit;
break;
+ case RPMTAG_SUGGESTSFLAGS:
+ case RPMTAG_ENHANCESFLAGS:
+ case RPMTAG_BUILDSUGGESTS:
+ case RPMTAG_BUILDENHANCES:
+ tagflags = RPMSENSE_MISSINGOK;
+ if (macro && (!strcmp(macro, "recommends") || !strcmp(macro, "buildrecommends")))
+ tagflags |= RPMSENSE_STRONG;
+ if (macro && (!strcmp(macro, "supplements") || !strcmp(macro, "buildsupplements")))
+ tagflags |= RPMSENSE_STRONG;
+ if ((rc = parseRCPOT(spec, pkg, field, tag, 0, tagflags)))
+ return rc;
+ break;
case RPMTAG_EXCLUDEARCH:
case RPMTAG_EXCLUSIVEARCH:
case RPMTAG_EXCLUDEOS:
@@ -903,6 +917,14 @@
{RPMTAG_BUGURL, 0, 0, LEN_AND_STR("bugurl")},
{RPMTAG_COLLECTIONS, 0, 0, LEN_AND_STR("collections")},
{RPMTAG_ORDERFLAGS, 2, 0, LEN_AND_STR("orderwithrequires")},
+ {RPMTAG_SUGGESTSFLAGS, 0, 0, LEN_AND_STR("recommends")},
+ {RPMTAG_SUGGESTSFLAGS, 0, 0, LEN_AND_STR("suggests")},
+ {RPMTAG_ENHANCESFLAGS, 0, 0, LEN_AND_STR("supplements")},
+ {RPMTAG_ENHANCESFLAGS, 0, 0, LEN_AND_STR("enhances")},
+ {RPMTAG_BUILDSUGGESTS, 0, 0, LEN_AND_STR("buildrecommends")},
+ {RPMTAG_BUILDSUGGESTS, 0, 0, LEN_AND_STR("buildsuggests")},
+ {RPMTAG_BUILDENHANCES, 0, 0, LEN_AND_STR("buildsupplements")},
+ {RPMTAG_BUILDENHANCES, 0, 0, LEN_AND_STR("buildenhances")},
{0, 0, 0, 0}
};
--- build/parseReqs.c
+++ build/parseReqs.c
@@ -92,6 +92,18 @@
case RPMTAG_BUILDCONFLICTS:
nametag = RPMTAG_CONFLICTNAME;
break;
+ case RPMTAG_SUGGESTSFLAGS:
+ nametag = RPMTAG_SUGGESTSNAME;
+ break;
+ case RPMTAG_ENHANCESFLAGS:
+ nametag = RPMTAG_ENHANCESNAME;
+ break;
+ case RPMTAG_BUILDSUGGESTS:
+ nametag = RPMTAG_SUGGESTSNAME;
+ break;
+ case RPMTAG_BUILDENHANCES:
+ nametag = RPMTAG_ENHANCESNAME;
+ break;
}
for (r = field; *r != '\0'; r = re) {
--- build/reqprov.c
+++ build/reqprov.c
@@ -81,6 +81,18 @@
extra = Flags & RPMSENSE_TRIGGER;
dsp = &pkg->triggers;
break;
+ case RPMTAG_SUGGESTSNAME:
+ versiontag = RPMTAG_SUGGESTSVERSION;
+ flagtag = RPMTAG_SUGGESTSFLAGS;
+ extra = Flags & _ALL_REQUIRES_MASK;
+ dsp = &pkg->suggests;
+ break;
+ case RPMTAG_ENHANCESNAME:
+ versiontag = RPMTAG_ENHANCESVERSION;
+ flagtag = RPMTAG_ENHANCESFLAGS;
+ extra = Flags & _ALL_REQUIRES_MASK;
+ dsp = &pkg->enhances;
+ break;
case RPMTAG_REQUIRENAME:
default:
tagN = RPMTAG_REQUIRENAME;
--- build/rpmbuild_internal.h
+++ build/rpmbuild_internal.h
@@ -97,6 +97,8 @@
rpmds obsoletes;
rpmds triggers;
rpmds order;
+ rpmds suggests;
+ rpmds enhances;
rpmfi cpioList;
rpm_loff_t cpioArchiveSize;
--- build/rpmfc.c
+++ build/rpmfc.c
@@ -1087,6 +1087,12 @@
{ "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL },
RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS,
0, -1 },
+ { "Enhances", { "%{?__find_enhances}", NULL, NULL, NULL },
+ RPMTAG_ENHANCESNAME, RPMTAG_ENHANCESVERSION, RPMTAG_ENHANCESFLAGS,
+ RPMSENSE_STRONG, RPMSENSE_STRONG },
+ { "Supplements", { "%{?__find_supplements}", NULL, NULL, NULL },
+ RPMTAG_ENHANCESNAME, RPMTAG_ENHANCESVERSION, RPMTAG_ENHANCESFLAGS,
+ RPMSENSE_STRONG, 0 },
{ NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 }
};
@@ -1163,6 +1169,14 @@
continue;
tagflags = RPMSENSE_FIND_REQUIRES;
break;
+ case RPMTAG_ENHANCESFLAGS:
+ if (!pkg->autoProv)
+ continue;
+ failnonzero = 0;
+ tagflags = RPMSENSE_FIND_REQUIRES | RPMSENSE_MISSINGOK;
+ if (strcmp(dm->msg, "Supplements") == 0)
+ tagflags |= RPMSENSE_STRONG;
+ break;
default:
continue;
break;
--- build/spec.c
+++ build/spec.c
@@ -141,6 +141,8 @@
pkg->obsoletes = rpmdsFree(pkg->obsoletes);
pkg->triggers = rpmdsFree(pkg->triggers);
pkg->order = rpmdsFree(pkg->order);
+ pkg->suggests = rpmdsFree(pkg->suggests);
+ pkg->enhances = rpmdsFree(pkg->enhances);
pkg->fileList = argvFree(pkg->fileList);
pkg->fileFile = argvFree(pkg->fileFile);
pkg->policyList = argvFree(pkg->policyList);
--- lib/formats.c
+++ lib/formats.c
@@ -486,6 +486,19 @@
return val;
}
+static char * depflag_strongFormat(rpmtd td)
+{
+ char * val = NULL;
+
+ if (rpmtdClass(td) != RPM_NUMERIC_CLASS) {
+ val = xstrdup(_("(not a number)"));
+ } else {
+ uint64_t anint = rpmtdGetNumber(td);
+ val = xstrdup(anint & RPMSENSE_STRONG ? "strong" : "");
+ }
+ return val;
+}
+
/**
* Return tag container array size.
* @param td tag data container
@@ -591,6 +604,7 @@
{ RPMTD_FORMAT_VFLAGS, "vflags", vflagsFormat },
{ RPMTD_FORMAT_EXPAND, "expand", expandFormat },
{ RPMTD_FORMAT_FSTATUS, "fstatus", fstatusFormat },
+ { RPMTD_FORMAT_DEPFLAG_STRONG, "depflag_strong", depflag_strongFormat },
{ -1, NULL, NULL }
};
--- lib/rpmds.c
+++ lib/rpmds.c
@@ -70,6 +70,14 @@
t = "Trigger";
evr = RPMTAG_TRIGGERVERSION;
f = RPMTAG_TRIGGERFLAGS;
+ } else if (tag == RPMTAG_ENHANCESNAME) {
+ t = "Enhances";
+ evr = RPMTAG_ENHANCESVERSION;
+ f = RPMTAG_ENHANCESFLAGS;
+ } else if (tag == RPMTAG_SUGGESTSNAME) {
+ t = "Suggests";
+ evr = RPMTAG_SUGGESTSVERSION;
+ f = RPMTAG_SUGGESTSFLAGS;
} else {
rc = 1;
}
--- lib/rpmds.h
+++ lib/rpmds.h
@@ -48,7 +48,7 @@
RPMSENSE_RPMLIB = (1 << 24), /*!< rpmlib(feature) dependency. */
RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< %triggerprein dependency. */
RPMSENSE_KEYRING = (1 << 26),
- /* bit 27 unused */
+ RPMSENSE_STRONG = (1 << 27),
RPMSENSE_CONFIG = (1 << 28)
};
@@ -70,6 +70,7 @@
RPMSENSE_FIND_REQUIRES | \
RPMSENSE_RPMLIB | \
RPMSENSE_KEYRING | \
+ RPMSENSE_STRONG | \
RPMSENSE_PRETRANS | \
RPMSENSE_POSTTRANS | \
RPMSENSE_PREREQ | \
--- lib/rpmtag.h
+++ lib/rpmtag.h
@@ -217,14 +217,14 @@
RPMTAG_PRETRANSPROG = 1153, /* s[] */
RPMTAG_POSTTRANSPROG = 1154, /* s[] */
RPMTAG_DISTTAG = 1155, /* s */
- RPMTAG_SUGGESTSNAME = 1156, /* s[] extension (unimplemented) */
-#define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME /* s[] (unimplemented) */
- RPMTAG_SUGGESTSVERSION = 1157, /* s[] extension (unimplemented) */
- RPMTAG_SUGGESTSFLAGS = 1158, /* i[] extension (unimplemented) */
- RPMTAG_ENHANCESNAME = 1159, /* s[] extension placeholder (unimplemented) */
-#define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME /* s[] (unimplemented) */
- RPMTAG_ENHANCESVERSION = 1160, /* s[] extension placeholder (unimplemented) */
- RPMTAG_ENHANCESFLAGS = 1161, /* i[] extension placeholder (unimplemented) */
+ RPMTAG_SUGGESTSNAME = 1156, /* s[] extension */
+#define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME /* s[] */
+ RPMTAG_SUGGESTSVERSION = 1157, /* s[] extension */
+ RPMTAG_SUGGESTSFLAGS = 1158, /* i[] extension */
+ RPMTAG_ENHANCESNAME = 1159, /* s[] extension */
+#define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME /* s[] */
+ RPMTAG_ENHANCESVERSION = 1160, /* s[] extension */
+ RPMTAG_ENHANCESFLAGS = 1161, /* i[] extension */
RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
RPMTAG_CVSID = 1163, /* s (unimplemented) */
#define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
--- lib/rpmtd.h
+++ lib/rpmtd.h
@@ -228,6 +228,7 @@
RPMTD_FORMAT_VFLAGS = 17, /* file verify flags (int types) */
RPMTD_FORMAT_EXPAND = 18, /* macro expansion (string types) */
RPMTD_FORMAT_FSTATUS = 19, /* file verify status (int types) */
+ RPMTD_FORMAT_DEPFLAG_STRONG = 20, /* strong dependency (int types) */
} rpmtdFormats;
/** \ingroup rpmtd
--- python/rpmmodule.c
+++ python/rpmmodule.c
@@ -393,6 +393,7 @@
REGISTER_ENUM(RPMSENSE_RPMLIB);
REGISTER_ENUM(RPMSENSE_TRIGGERPREIN);
REGISTER_ENUM(RPMSENSE_KEYRING);
+ REGISTER_ENUM(RPMSENSE_STRONG);
REGISTER_ENUM(RPMSENSE_CONFIG);
REGISTER_ENUM(RPMTRANS_FLAG_TEST);
--- rpmpopt.in
+++ rpmpopt.in
@@ -67,6 +67,22 @@
--POPTdesc=$"list capabilities required by package(s)"
rpm alias -R --requires
+rpm alias --suggests --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{}:{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package suggests"
+
+rpm alias --recommends --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package recommends"
+
+rpm alias --enhances --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{}:{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package enhances"
+
+rpm alias --supplements --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package supplements"
+
rpm alias --info --qf '\
Name : %{NAME}\n\
%|EPOCH?{Epoch : %{EPOCH}\n}|\
--- tests/rpmgeneral.at
+++ tests/rpmgeneral.at
@@ -79,6 +79,10 @@
DISTURL
DSAHEADER
E
+ENHANCES
+ENHANCESFLAGS
+ENHANCESNAME
+ENHANCESVERSION
EPOCH
EPOCHNUM
EVR
@@ -219,6 +223,10 @@
SOURCEPACKAGE
SOURCEPKGID
SOURCERPM
+SUGGESTS
+SUGGESTSFLAGS
+SUGGESTSNAME
+SUGGESTSVERSION
SUMMARY
TRIGGERCONDS
TRIGGERFLAGS
++++++ whatrequires-doc.diff ++++++
--- ./doc/rpm.8.orig 2011-01-05 08:11:09.000000000 +0000
+++ ./doc/rpm.8 2011-05-11 15:36:18.000000000 +0000
@@ -564,6 +564,11 @@ Query all packages that provide the \fIC
.TP
\fB--whatrequires \fICAPABILITY\fB\fR
Query all packages that require \fICAPABILITY\fR for proper functioning.
+.br
+Note that this does not return what requires a given package.
+A package usually provides multiple capabilities and file-names on which
+other packages may depend. To see the complete dependencies
+for a package, use \fB-e --test \fIPACKAGE_NAME\fB\fR
.SS "PACKAGE QUERY OPTIONS:"
.PP
.TP
1
0
Hello community,
here is the log from the commit of package rpm-python for openSUSE:13.1:Update checked in at 2016-08-27 15:43:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/rpm-python (Old)
and /work/SRC/openSUSE:13.1:Update/.rpm-python.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm-python"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.75y0tF/_old 2016-08-27 15:43:42.000000000 +0200
+++ /var/tmp/diff_new_pack.75y0tF/_new 2016-08-27 15:43:42.000000000 +0200
@@ -1 +1 @@
-<link package='rpm-python.3409' cicount='copy' />
+<link package='rpm-python.4664' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package rpm-python.4664 for openSUSE:13.1:Update checked in at 2016-08-27 15:43:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/rpm-python.4664 (Old)
and /work/SRC/openSUSE:13.1:Update/.rpm-python.4664.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm-python.4664"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
<link package="rpm.4664" cicount="copy"/>
1
0
Hello community,
here is the log from the commit of package python3-rpm for openSUSE:13.1:Update checked in at 2016-08-27 15:43:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/python3-rpm (Old)
and /work/SRC/openSUSE:13.1:Update/.python3-rpm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-rpm"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.yMmJC7/_old 2016-08-27 15:43:38.000000000 +0200
+++ /var/tmp/diff_new_pack.yMmJC7/_new 2016-08-27 15:43:38.000000000 +0200
@@ -1 +1 @@
-<link package='python3-rpm.3409' cicount='copy' />
+<link package='python3-rpm.4664' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package ccache for openSUSE:Factory checked in at 2016-08-26 23:18:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ccache (Old)
and /work/SRC/openSUSE:Factory/.ccache.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ccache"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ccache/ccache.changes 2016-07-12 23:52:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ccache.new/ccache.changes 2016-08-26 23:18:19.000000000 +0200
@@ -1,0 +2,21 @@
+Fri Aug 26 13:27:20 UTC 2016 - tchvatal(a)suse.com
+
+- Version update to 3.2.7:
+ - Fixed build problem on QNX, which lacks ``SA_RESTART''.
+ - Bail out on compiler option `-fstack-usage` since it creates a `.su` file
+ which ccache currently doesn't handle.
+ - Fixed a bug where (due to ccache rewriting paths) the compiler could choose
+ incorrect include files if `CCACHE_BASEDIR` is used and the source file path
+ is absolute and is a symlink.
+ - Fixed a bug which could lead to false cache hits for compiler command lines
+ with a missing argument to an option that takes an argument.
+ - ccache now knows how to work around a glitch in the output of GCC 6's
+ preprocessor.
+
+-------------------------------------------------------------------
+Fri Aug 26 13:21:18 UTC 2016 - tchvatal(a)suse.com
+
+- Create basic symlinks for clang and regular cc calls for ccache
+ * this makes it easier to use ccache with osc build
+
+-------------------------------------------------------------------
Old:
----
ccache-3.2.5.tar.xz
ccache-3.2.5.tar.xz.asc
New:
----
ccache-3.2.7.tar.xz
ccache-3.2.7.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ccache.spec ++++++
--- /var/tmp/diff_new_pack.hMYD6z/_old 2016-08-26 23:18:20.000000000 +0200
+++ /var/tmp/diff_new_pack.hMYD6z/_new 2016-08-26 23:18:20.000000000 +0200
@@ -17,7 +17,7 @@
Name: ccache
-Version: 3.2.5
+Version: 3.2.7
Release: 0
Summary: A Fast C/C++ Compiler Cache
License: GPL-3.0+
@@ -51,6 +51,12 @@
cd %{buildroot}/%{_libdir}/%{name}
ln -sf ../../bin/%{name} gcc
ln -sf ../../bin/%{name} g++
+# do the same for clang
+ln -sf ../../bin/%{name} clang
+ln -sf ../../bin/%{name} clang++
+# and regular cc
+ln -sf ../../bin/%{name} cc
+ln -sf ../../bin/%{name} c++
%files
%defattr(-,root,root,-)
++++++ ccache-3.2.5.tar.xz -> ccache-3.2.7.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/AUTHORS.html new/ccache-3.2.7/AUTHORS.html
--- old/ccache-3.2.5/AUTHORS.html 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/AUTHORS.html 2016-07-20 18:01:54.000000000 +0200
@@ -734,7 +734,7 @@
<body class="article">
<div id="header">
<h1>ccache authors</h1>
-<span id="revnumber">version 3.2.5</span>
+<span id="revnumber">version 3.2.6</span>
<div id="toc">
<div id="toctitle">Table of Contents</div>
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -1020,9 +1020,9 @@
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Version 3.2.5<br />
+Version 3.2.6<br />
Last updated
- 2016-04-17 16:40:11 CEST
+ 2016-07-12 21:36:01 CEST
</div>
</div>
</body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/HACKING.txt new/ccache-3.2.7/HACKING.txt
--- old/ccache-3.2.5/HACKING.txt 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/HACKING.txt 2016-07-20 18:01:54.000000000 +0200
@@ -10,6 +10,8 @@
at the end of the same line.
* Put no space between function name and the following parenthesis.
* Put one space between if/switch/for/while/do and opening curly brace.
+* Always use curly braces around if/for/while/do bodies, even if they only
+ contain one statement.
* If possible, keep lines at most 80 character wide for a 2 character tab
width.
* Use only lowercase names for functions and variables.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/INSTALL.html new/ccache-3.2.7/INSTALL.html
--- old/ccache-3.2.5/INSTALL.html 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/INSTALL.html 2016-07-20 18:01:54.000000000 +0200
@@ -734,7 +734,7 @@
<body class="article">
<div id="header">
<h1>ccache installation</h1>
-<span id="revnumber">version 3.2.4+101_g4218b81</span>
+<span id="revnumber">version 3.2.7</span>
<div id="toc">
<div id="toctitle">Table of Contents</div>
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -848,9 +848,9 @@
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Version 3.2.4+101_g4218b81<br />
+Version 3.2.7<br />
Last updated
- 2016-02-06 17:21:49 CET
+ 2016-07-20 18:01:48 CEST
</div>
</div>
</body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/LICENSE.html new/ccache-3.2.7/LICENSE.html
--- old/ccache-3.2.5/LICENSE.html 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/LICENSE.html 2016-07-20 18:01:54.000000000 +0200
@@ -734,7 +734,7 @@
<body class="article">
<div id="header">
<h1>ccache copyright and license</h1>
-<span id="revnumber">version 3.2.5</span>
+<span id="revnumber">version 3.2.7</span>
<div id="toc">
<div id="toctitle">Table of Contents</div>
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -1205,9 +1205,9 @@
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Version 3.2.5<br />
+Version 3.2.7<br />
Last updated
- 2016-04-17 16:43:39 CEST
+ 2016-07-20 18:01:48 CEST
</div>
</div>
</body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/MANUAL.html new/ccache-3.2.7/MANUAL.html
--- old/ccache-3.2.5/MANUAL.html 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/MANUAL.html 2016-07-20 18:01:54.000000000 +0200
@@ -734,7 +734,7 @@
<body class="article">
<div id="header">
<h1>CCACHE(1)</h1>
-<span id="revnumber">version 3.2.5</span>
+<span id="revnumber">version 3.2.7</span>
<div id="toc">
<div id="toctitle">Table of Contents</div>
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -1292,7 +1292,7 @@
<p>
If true, ccache will include the current working directory in the hash that
is used to distinguish two compilations. This prevents a problem with the
- storage of the current working directory in the debug info of a object
+ storage of the current working directory in the debug info of an object
file, which can lead ccache to give a cached object file that has the
working directory in the debug info set incorrectly. This option is off by
default as the incorrect setting of this debug info rarely causes problems.
@@ -2167,9 +2167,9 @@
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Version 3.2.5<br />
+Version 3.2.7<br />
Last updated
- 2016-04-17 16:43:39 CEST
+ 2016-07-20 18:01:48 CEST
</div>
</div>
</body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/MANUAL.txt new/ccache-3.2.7/MANUAL.txt
--- old/ccache-3.2.5/MANUAL.txt 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/MANUAL.txt 2016-07-20 18:01:54.000000000 +0200
@@ -367,7 +367,7 @@
If true, ccache will include the current working directory in the hash that
is used to distinguish two compilations. This prevents a problem with the
- storage of the current working directory in the debug info of a object
+ storage of the current working directory in the debug info of an object
file, which can lead ccache to give a cached object file that has the
working directory in the debug info set incorrectly. This option is off by
default as the incorrect setting of this debug info rarely causes problems.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/NEWS.html new/ccache-3.2.7/NEWS.html
--- old/ccache-3.2.5/NEWS.html 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/NEWS.html 2016-07-20 18:01:54.000000000 +0200
@@ -734,7 +734,7 @@
<body class="article">
<div id="header">
<h1>ccache news</h1>
-<span id="revnumber">version 3.2.5</span>
+<span id="revnumber">version 3.2.7</span>
<div id="toc">
<div id="toctitle">Table of Contents</div>
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -742,6 +742,58 @@
</div>
<div id="content">
<div class="sect1">
+<h2 id="_ccache_3_2_7">ccache 3.2.7</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Release date: 2016-07-20</p></div>
+<div class="sect2">
+<h3 id="_bug_fixes">Bug fixes</h3>
+<div class="ulist"><ul>
+<li>
+<p>
+Fixed a bug which could lead to false cache hits for compiler command lines
+ with a missing argument to an option that takes an argument.
+</p>
+</li>
+<li>
+<p>
+ccache now knows how to work around a glitch in the output of GCC 6’s
+ preprocessor.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ccache_3_2_6">ccache 3.2.6</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Release date: 2016-07-12</p></div>
+<div class="sect2">
+<h3 id="_bug_fixes_2">Bug fixes</h3>
+<div class="ulist"><ul>
+<li>
+<p>
+Fixed build problem on QNX, which lacks “SA_RESTART”.
+</p>
+</li>
+<li>
+<p>
+Bail out on compiler option <code>-fstack-usage</code> since it creates a <code>.su</code> file
+ which ccache currently doesn’t handle.
+</p>
+</li>
+<li>
+<p>
+Fixed a bug where (due to ccache rewriting paths) the compiler could choose
+ incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path
+ is absolute and is a symlink.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_ccache_3_2_5">ccache 3.2.5</h2>
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2016-04-17</p></div>
@@ -767,7 +819,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes">Bug fixes</h3>
+<h3 id="_bug_fixes_3">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -827,7 +879,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2015-10-08</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_2">Bug fixes</h3>
+<h3 id="_bug_fixes_4">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -882,7 +934,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_3">Bug fixes</h3>
+<h3 id="_bug_fixes_5">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -936,7 +988,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_4">Bug fixes</h3>
+<h3 id="_bug_fixes_6">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1007,7 +1059,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2014-12-10</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_5">Bug fixes</h3>
+<h3 id="_bug_fixes_7">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1239,7 +1291,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_6">Bug fixes</h3>
+<h3 id="_bug_fixes_8">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1266,11 +1318,29 @@
</div>
</div>
<div class="sect1">
+<h2 id="_ccache_3_1_12">ccache 3.1.12</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Release date: 2016-07-12</p></div>
+<div class="sect2">
+<h3 id="_bug_fixes_9">Bug fixes</h3>
+<div class="ulist"><ul>
+<li>
+<p>
+Fixed a bug where (due to ccache rewriting paths) the compiler could choose
+ incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path
+ is absolute and is a symlink.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_ccache_3_1_11">ccache 3.1.11</h2>
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2015-03-07</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_7">Bug fixes</h3>
+<h3 id="_bug_fixes_10">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1353,7 +1423,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_8">Bug fixes</h3>
+<h3 id="_bug_fixes_11">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1393,7 +1463,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2013-01-06</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_9">Bug fixes</h3>
+<h3 id="_bug_fixes_12">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1464,7 +1534,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_10">Bug fixes</h3>
+<h3 id="_bug_fixes_13">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1512,7 +1582,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2012-01-08</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_11">Bug fixes</h3>
+<h3 id="_bug_fixes_14">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1595,7 +1665,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_12">Bug fixes</h3>
+<h3 id="_bug_fixes_15">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1648,7 +1718,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_13">Bug fixes</h3>
+<h3 id="_bug_fixes_16">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1681,7 +1751,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2011-01-09</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_14">Bug fixes</h3>
+<h3 id="_bug_fixes_17">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1714,7 +1784,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2010-11-28</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_15">Bug fixes</h3>
+<h3 id="_bug_fixes_18">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1741,7 +1811,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2010-11-21</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_16">Bug fixes</h3>
+<h3 id="_bug_fixes_19">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1789,7 +1859,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2010-11-07</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_17">Bug fixes</h3>
+<h3 id="_bug_fixes_20">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1911,7 +1981,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_18">Bug fixes</h3>
+<h3 id="_bug_fixes_21">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -1997,7 +2067,7 @@
<div class="sectionbody">
<div class="paragraph"><p>Release date: 2010-07-15</p></div>
<div class="sect2">
-<h3 id="_bug_fixes_19">Bug fixes</h3>
+<h3 id="_bug_fixes_22">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -2186,7 +2256,7 @@
</ul></div>
</div>
<div class="sect2">
-<h3 id="_bug_fixes_20">Bug fixes</h3>
+<h3 id="_bug_fixes_23">Bug fixes</h3>
<div class="ulist"><ul>
<li>
<p>
@@ -2331,9 +2401,9 @@
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Version 3.2.5<br />
+Version 3.2.7<br />
Last updated
- 2016-04-17 16:43:59 CEST
+ 2016-07-20 18:01:48 CEST
</div>
</div>
</body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/NEWS.txt new/ccache-3.2.7/NEWS.txt
--- old/ccache-3.2.5/NEWS.txt 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/NEWS.txt 2016-07-20 18:01:54.000000000 +0200
@@ -2,6 +2,37 @@
===========
+ccache 3.2.7
+------------
+Release date: 2016-07-20
+
+Bug fixes
+~~~~~~~~~
+
+- Fixed a bug which could lead to false cache hits for compiler command lines
+ with a missing argument to an option that takes an argument.
+
+- ccache now knows how to work around a glitch in the output of GCC 6's
+ preprocessor.
+
+
+ccache 3.2.6
+------------
+Release date: 2016-07-12
+
+Bug fixes
+~~~~~~~~~
+
+- Fixed build problem on QNX, which lacks ``SA_RESTART''.
+
+- Bail out on compiler option `-fstack-usage` since it creates a `.su` file
+ which ccache currently doesn't handle.
+
+- Fixed a bug where (due to ccache rewriting paths) the compiler could choose
+ incorrect include files if `CCACHE_BASEDIR` is used and the source file path
+ is absolute and is a symlink.
+
+
ccache 3.2.5
------------
Release date: 2016-04-17
@@ -275,6 +306,19 @@
- Fixed test suite failures when `CC` is a ccache-wrapped compiler.
+ccache 3.1.12
+-------------
+Release date: 2016-07-12
+
+
+Bug fixes
+~~~~~~~~~
+
+- Fixed a bug where (due to ccache rewriting paths) the compiler could choose
+ incorrect include files if `CCACHE_BASEDIR` is used and the source file path
+ is absolute and is a symlink.
+
+
ccache 3.1.11
-------------
Release date: 2015-03-07
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/README.html new/ccache-3.2.7/README.html
--- old/ccache-3.2.5/README.html 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/README.html 2016-07-20 18:01:54.000000000 +0200
@@ -734,7 +734,7 @@
<body class="article">
<div id="header">
<h1>ccache README</h1>
-<span id="revnumber">version 3.2.5</span>
+<span id="revnumber">version 3.2.7</span>
<div id="toc">
<div id="toctitle">Table of Contents</div>
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -802,12 +802,12 @@
repository, use git:</p></div>
<div class="literalblock">
<div class="content">
-<pre><code>git clone git://git.samba.org/ccache.git</code></pre>
+<pre><code>git clone https://github.com/ccache/ccache.git</code></pre>
</div></div>
<div class="paragraph"><p>You can also browse the repository:</p></div>
<div class="literalblock">
<div class="content">
-<pre><code>http://gitweb.samba.org/?p=ccache.git</code></pre>
+<pre><code>https://github.com/ccache/ccache</code></pre>
</div></div>
</div>
</div>
@@ -830,9 +830,9 @@
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Version 3.2.5<br />
+Version 3.2.7<br />
Last updated
- 2016-04-17 16:43:39 CEST
+ 2016-07-20 18:01:48 CEST
</div>
</div>
</body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/README.txt new/ccache-3.2.7/README.txt
--- old/ccache-3.2.5/README.txt 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/README.txt 2016-07-20 18:01:54.000000000 +0200
@@ -58,11 +58,11 @@
To get the very latest version of ccache directly from the source code
repository, use git:
- git clone git://git.samba.org/ccache.git
+ git clone https://github.com/ccache/ccache.git
You can also browse the repository:
- http://gitweb.samba.org/?p=ccache.git
+ https://github.com/ccache/ccache
History
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/ccache.1 new/ccache-3.2.7/ccache.1
--- old/ccache-3.2.5/ccache.1 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/ccache.1 2016-07-20 18:01:54.000000000 +0200
@@ -2,12 +2,12 @@
.\" Title: ccache
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 04/17/2016
+.\" Date: 07/20/2016
.\" Manual: ccache Manual
-.\" Source: ccache 3.2.5
+.\" Source: ccache 3.2.7
.\" Language: English
.\"
-.TH "CCACHE" "1" "04/17/2016" "ccache 3\&.2\&.5" "ccache Manual"
+.TH "CCACHE" "1" "07/20/2016" "ccache 3\&.2\&.7" "ccache Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -489,7 +489,7 @@
.PP
\fBhash_dir\fR (\fBCCACHE_HASHDIR\fR or \fBCCACHE_NOHASHDIR\fR, see Boolean values above)
.RS 4
-If true, ccache will include the current working directory in the hash that is used to distinguish two compilations\&. This prevents a problem with the storage of the current working directory in the debug info of a object file, which can lead ccache to give a cached object file that has the working directory in the debug info set incorrectly\&. This option is off by default as the incorrect setting of this debug info rarely causes problems\&. If you strike problems with GDB not using the correct directory then enable this option\&.
+If true, ccache will include the current working directory in the hash that is used to distinguish two compilations\&. This prevents a problem with the storage of the current working directory in the debug info of an object file, which can lead ccache to give a cached object file that has the working directory in the debug info set incorrectly\&. This option is off by default as the incorrect setting of this debug info rarely causes problems\&. If you strike problems with GDB not using the correct directory then enable this option\&.
.RE
.PP
\fBlog_file\fR (\fBCCACHE_LOGFILE\fR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/ccache.c new/ccache-3.2.7/ccache.c
--- old/ccache-3.2.5/ccache.c 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/ccache.c 2016-07-20 18:01:54.000000000 +0200
@@ -402,7 +402,9 @@
memset(&act, 0, sizeof(act));
act.sa_handler = signal_handler;
act.sa_mask = fatal_signal_set;
+#ifdef SA_RESTART
act.sa_flags = SA_RESTART;
+#endif
sigaction(signum, &act, NULL);
}
@@ -748,6 +750,30 @@
&& (q == data || q[-1] == '\n')) {
char *path;
+ /* Workarounds for preprocessor linemarker bugs in GCC version 6 */
+ if (q[2] == '3') {
+ if (str_startswith(q, "# 31 \"<command-line>\"\n")) {
+ /* Bogus extra line with #31, after the regular #1:
+ Ignore the whole line, and continue parsing */
+ hash_buffer(hash, p, q - p);
+ while (q < end && *q != '\n') {
+ q++;
+ }
+ q++;
+ p = q;
+ continue;
+ } else if (str_startswith(q, "# 32 \"<command-line>\" 2\n")) {
+ /* Bogus wrong line with #32, instead of regular #1:
+ Replace the line number with the usual one */
+ hash_buffer(hash, p, q - p);
+ q += 1;
+ q[0] = '#';
+ q[1] = ' ';
+ q[2] = '1';
+ p = q;
+ }
+ }
+
while (q < end && *q != '"' && *q != '\n') {
q++;
}
@@ -1098,7 +1124,7 @@
cc_log("Stored in cache: %s", cached_stderr);
if (!conf->compression
/* If the file was compressed, obtain the size again: */
- || (conf->compression && x_stat(cached_stderr, &st) == 0)) {
+ || x_stat(cached_stderr, &st) == 0) {
stats_update_size(file_size(&st), 1);
}
} else {
@@ -1599,6 +1625,11 @@
/* All other arguments are included in the hash. */
hash_delimiter(hash, "arg");
hash_string(hash, args->argv[i]);
+ if (i + 1 < args->argc && compopt_takes_arg(args->argv[i])) {
+ i++;
+ hash_delimiter(hash, "arg");
+ hash_string(hash, args->argv[i]);
+ }
}
/*
@@ -1841,7 +1872,7 @@
x_exit(0);
}
-/* find the real compiler. We just search the PATH to find a executable of the
+/* find the real compiler. We just search the PATH to find an executable of the
* same name that isn't a link to ourselves */
static void
find_compiler(char **argv)
@@ -2490,8 +2521,17 @@
continue;
}
- /* Rewrite to relative to increase hit rate. */
- input_file = make_relative_path(x_strdup(argv[i]));
+ lstat(argv[i], &st);
+ if (S_ISLNK(st.st_mode)) {
+ /* Don't rewrite source file path if it's a symlink since
+ make_relative_path resolves symlinks using realpath(3) and this leads
+ to potentially choosing incorrect relative header files. See the
+ "symlink to source file" test. */
+ input_file = x_strdup(argv[i]);
+ } else {
+ /* Rewrite to relative to increase hit rate. */
+ input_file = make_relative_path(x_strdup(argv[i]));
+ }
} /* for */
if (found_S_opt) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/compopt.c new/ccache-3.2.7/compopt.c
--- old/ccache-3.2.5/compopt.c 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/compopt.c 2016-07-20 18:01:54.000000000 +0200
@@ -36,6 +36,7 @@
{"--save-temps", TOO_HARD},
{"--serialize-diagnostics", TAKES_ARG | TAKES_PATH},
{"-A", TAKES_ARG},
+ {"-B", TAKES_ARG | TAKES_CONCAT_ARG},
{"-D", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG},
{"-E", TOO_HARD},
{"-F", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG | TAKES_PATH},
@@ -60,6 +61,7 @@
{"-fno-working-directory", AFFECTS_CPP},
{"-fplugin=libcc1plugin", TOO_HARD}, /* interaction with GDB */
{"-frepo", TOO_HARD},
+ {"-fstack-usage", TOO_HARD},
{"-fworking-directory", AFFECTS_CPP},
{"-idirafter", AFFECTS_CPP | TAKES_ARG | TAKES_PATH},
{"-iframework", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG | TAKES_PATH},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/hashtable.c new/ccache-3.2.7/hashtable.c
--- old/ccache-3.2.5/hashtable.c 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/hashtable.c 2016-07-20 18:01:54.000000000 +0200
@@ -102,7 +102,6 @@
/* Double the size of the table to accommodate more entries */
struct entry **newtable;
struct entry *e;
- struct entry **pE;
unsigned int newsize, i, index;
/* Check we're not hitting max capacity */
if (h->primeindex == (prime_table_length - 1)) return 0;
@@ -128,6 +127,7 @@
/* Plan B: realloc instead */
else
{
+ struct entry **pE;
newtable = (struct entry **)
realloc(h->table, newsize * sizeof(struct entry *));
if (NULL == newtable) { (h->primeindex)--; return 0; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/test.sh new/ccache-3.2.7/test.sh
--- old/ccache-3.2.5/test.sh 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/test.sh 2016-07-20 18:01:54.000000000 +0200
@@ -3,7 +3,7 @@
# A simple test suite for ccache.
#
# Copyright (C) 2002-2007 Andrew Tridgell
-# Copyright (C) 2009-2015 Joel Rosdahl
+# Copyright (C) 2009-2016 Joel Rosdahl
#
# 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
@@ -1477,6 +1477,27 @@
else
test_failed "unexpected output of --dump-manifest"
fi
+
+ ##################################################################
+ testname="argument-less -B and -L"
+ $CCACHE -Cz > /dev/null
+ cat <<EOF >test.c
+#include <stdio.h>
+int main(void)
+{
+#ifdef FOO
+ puts("FOO");
+#endif
+ return 0;
+}
+EOF
+
+ $CCACHE $COMPILER -A -L -DFOO -c test.c
+ checkstat 'cache hit (direct)' 0
+ checkstat 'cache miss' 1
+ $CCACHE $COMPILER -A -L -DBAR -c test.c
+ checkstat 'cache hit (direct)' 0
+ checkstat 'cache miss' 2
}
basedir_suite() {
@@ -2411,6 +2432,91 @@
b"
}
+buggy_cpp_suite() {
+ testname="buggy_cpp"
+ $CCACHE -Cz >/dev/null
+ cat >buggy-cpp <<EOF
+#!/bin/sh
+CCACHE_DISABLE=1 # If $COMPILER happens to be a ccache symlink...
+export CCACHE_DISABLE
+if echo "\$*" | grep -- -D >/dev/null; then
+ $COMPILER "\$@"
+else
+ # mistreat the preprocessor output in the same way as gcc6 does
+ $COMPILER "\$@" |
+ sed -e '/^# 1 "<command-line>"$/ a # 31 "<command-line>"' \\
+ -e 's/^# 1 "<command-line>" 2$/# 32 "<command-line>" 2/'
+fi
+exit 0
+EOF
+ cat <<'EOF' >file.c
+int foo;
+EOF
+ chmod +x buggy-cpp
+ backdate buggy-cpp
+ $CCACHE ./buggy-cpp -c file.c
+ checkstat 'cache hit (direct)' 0
+ checkstat 'cache hit (preprocessed)' 0
+ checkstat 'cache miss' 1
+ $CCACHE ./buggy-cpp -DNOT_AFFECTING=1 -c file.c
+ checkstat 'cache hit (direct)' 0
+ checkstat 'cache hit (preprocessed)' 1
+ checkstat 'cache miss' 1
+}
+
+symlinks_suite() {
+ ##################################################################
+ testname="symlink to source directory"
+
+ mkdir dir
+ cd dir
+ mkdir -p d1/d2
+ echo '#define A "OK"' >d1/h.h
+ cat <<EOF >d1/d2/c.c
+#include <stdio.h>
+#include "../h.h"
+int main() { printf("%s\n", A); }
+EOF
+ echo '#define A "BUG"' >h.h
+ ln -s d1/d2 d3
+
+ CCACHE_BASEDIR=/ $CCACHE $COMPILER -c $PWD/d3/c.c
+ $COMPILER -c $PWD/d3/c.c
+ $COMPILER c.o -o c
+ result=$(./c)
+ if [ "$result" != OK ]; then
+ test_failed "Incorrect header file used"
+ fi
+
+ cd ..
+ rm -rf dir
+
+ ##################################################################
+ testname="symlink to source file"
+
+ mkdir dir
+ cd dir
+ mkdir d
+ echo '#define A "BUG"' >d/h.h
+ cat <<EOF >d/c.c
+#include <stdio.h>
+#include "h.h"
+int main() { printf("%s\n", A); }
+EOF
+ echo '#define A "OK"' >h.h
+ ln -s d/c.c c.c
+
+ CCACHE_BASEDIR=/ $CCACHE $COMPILER -c $PWD/c.c
+ $COMPILER c.o -o c
+ result=$(./c)
+ if [ "$result" != OK ]; then
+ test_failed "Incorrect header file used"
+ fi
+
+ cd ..
+ rm -rf dir
+}
+
######################################################################
# main program
@@ -2521,8 +2627,10 @@
extrafiles
cleanup
pch
+symlinks
upgrade
prefix
+buggy_cpp
"
case $host_os in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/version.c new/ccache-3.2.7/version.c
--- old/ccache-3.2.5/version.c 2016-04-17 16:44:45.000000000 +0200
+++ new/ccache-3.2.7/version.c 2016-07-20 18:01:54.000000000 +0200
@@ -1 +1 @@
-const char CCACHE_VERSION[] = "3.2.5";
+const char CCACHE_VERSION[] = "3.2.7";
1
0
Hello community,
here is the log from the commit of package libvterm for openSUSE:Factory checked in at 2016-08-26 23:18:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvterm (Old)
and /work/SRC/openSUSE:Factory/.libvterm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvterm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvterm/libvterm.changes 2016-04-14 13:08:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libvterm.new/libvterm.changes 2016-08-26 23:18:17.000000000 +0200
@@ -1,0 +2,10 @@
+Thu Aug 25 15:53:26 UTC 2016 - ronisbr(a)gmail.com
+
+- Version bump to 0~bzr684.
+ Changelog:
+ * Avoid "\e" because some C compilers don't like it
+ * Don't use wchar_t in unicode.c as it might not be big enough
+ * Remember to pass unicode codepoints in uint32_t rather than
+ int
+
+-------------------------------------------------------------------
Old:
----
libvterm-0~bzr681.tar.xz
New:
----
libvterm-0~bzr684.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvterm.spec ++++++
--- /var/tmp/diff_new_pack.n6Wwbz/_old 2016-08-26 23:18:18.000000000 +0200
+++ /var/tmp/diff_new_pack.n6Wwbz/_new 2016-08-26 23:18:18.000000000 +0200
@@ -18,7 +18,7 @@
%define sover 0
Name: libvterm
-Version: 0~bzr681
+Version: 0~bzr684
Release: 0
Summary: An abstract library implementation of a VT220/xterm/ECMA-48 terminal emulator
License: MIT
++++++ libvterm-0~bzr681.tar.xz -> libvterm-0~bzr684.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvterm-0~bzr681/src/keyboard.c new/libvterm-0~bzr684/src/keyboard.c
--- old/libvterm-0~bzr681/src/keyboard.c 2016-04-10 00:17:10.000000000 +0200
+++ new/libvterm-0~bzr684/src/keyboard.c 2016-08-15 22:22:52.000000000 +0200
@@ -48,7 +48,7 @@
if(mod & VTERM_MOD_CTRL)
c &= 0x1f;
- vterm_push_output_sprintf(vt, "%s%c", mod & VTERM_MOD_ALT ? "\e" : "", c);
+ vterm_push_output_sprintf(vt, "%s%c", mod & VTERM_MOD_ALT ? ESC_S : "", c);
}
typedef struct {
@@ -73,7 +73,7 @@
{ KEYCODE_ENTER, '\r' }, // ENTER
{ KEYCODE_TAB, '\t' }, // TAB
{ KEYCODE_LITERAL, '\x7f' }, // BACKSPACE == ASCII DEL
- { KEYCODE_LITERAL, '\e' }, // ESCAPE
+ { KEYCODE_LITERAL, '\x1b' }, // ESCAPE
{ KEYCODE_CSI_CURSOR, 'A' }, // UP
{ KEYCODE_CSI_CURSOR, 'B' }, // DOWN
@@ -173,7 +173,7 @@
if(mod & (VTERM_MOD_SHIFT|VTERM_MOD_CTRL))
vterm_push_output_sprintf_ctrl(vt, C1_CSI, "%d;%du", k.literal, mod+1);
else
- vterm_push_output_sprintf(vt, mod & VTERM_MOD_ALT ? "\e%c" : "%c", k.literal);
+ vterm_push_output_sprintf(vt, mod & VTERM_MOD_ALT ? ESC_S "%c" : "%c", k.literal);
break;
case KEYCODE_SS3: case_SS3:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvterm-0~bzr681/src/unicode.c new/libvterm-0~bzr684/src/unicode.c
--- old/libvterm-0~bzr681/src/unicode.c 2016-04-10 00:17:10.000000000 +0200
+++ new/libvterm-0~bzr684/src/unicode.c 2016-08-15 22:22:52.000000000 +0200
@@ -67,8 +67,6 @@
* Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
*/
-#include <wchar.h>
-
struct interval {
int first;
int last;
@@ -129,7 +127,7 @@
/* auxiliary function for binary search in interval table */
-static int bisearch(wchar_t ucs, const struct interval *table, int max) {
+static int bisearch(uint32_t ucs, const struct interval *table, int max) {
int min = 0;
int mid;
@@ -177,12 +175,12 @@
* ISO 8859-1 and WGL4 characters, Unicode control characters,
* etc.) have a column width of 1.
*
- * This implementation assumes that wchar_t characters are encoded
+ * This implementation assumes that uint32_t characters are encoded
* in ISO 10646.
*/
-static int mk_wcwidth(wchar_t ucs)
+static int mk_wcwidth(uint32_t ucs)
{
/* test for 8-bit control characters */
if (ucs == 0)
@@ -214,7 +212,7 @@
}
-static int mk_wcswidth(const wchar_t *pwcs, size_t n)
+static int mk_wcswidth(const uint32_t *pwcs, size_t n)
{
int w, width = 0;
@@ -237,7 +235,7 @@
* the traditional terminal character-width behaviour. It is not
* otherwise recommended for general use.
*/
-static int mk_wcwidth_cjk(wchar_t ucs)
+static int mk_wcwidth_cjk(uint32_t ucs)
{
/* sorted list of non-overlapping intervals of East Asian Ambiguous
* characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */
@@ -305,7 +303,7 @@
}
-static int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n)
+static int mk_wcswidth_cjk(const uint32_t *pwcs, size_t n)
{
int w, width = 0;
@@ -321,12 +319,12 @@
// ################################
// ### The rest added by Paul Evans
-INTERNAL int vterm_unicode_width(int codepoint)
+INTERNAL int vterm_unicode_width(uint32_t codepoint)
{
return mk_wcwidth(codepoint);
}
-INTERNAL int vterm_unicode_is_combining(int codepoint)
+INTERNAL int vterm_unicode_is_combining(uint32_t codepoint)
{
return bisearch(codepoint, combining, sizeof(combining) / sizeof(struct interval) - 1);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvterm-0~bzr681/src/vterm.c new/libvterm-0~bzr684/src/vterm.c
--- old/libvterm-0~bzr681/src/vterm.c 2016-04-10 00:17:10.000000000 +0200
+++ new/libvterm-0~bzr684/src/vterm.c 2016-08-15 22:22:52.000000000 +0200
@@ -158,7 +158,7 @@
size_t orig_cur = vt->outbuffer_cur;
if(ctrl >= 0x80 && !vt->mode.ctrl8bit)
- vterm_push_output_sprintf(vt, "\e%c", ctrl - 0x40);
+ vterm_push_output_sprintf(vt, ESC_S "%c", ctrl - 0x40);
else
vterm_push_output_sprintf(vt, "%c", ctrl);
@@ -176,7 +176,7 @@
size_t orig_cur = vt->outbuffer_cur;
if(!vt->mode.ctrl8bit)
- vterm_push_output_sprintf(vt, "\e%c", C1_DCS - 0x40);
+ vterm_push_output_sprintf(vt, ESC_S "%c", C1_DCS - 0x40);
else
vterm_push_output_sprintf(vt, "%c", C1_DCS);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvterm-0~bzr681/src/vterm_internal.h new/libvterm-0~bzr684/src/vterm_internal.h
--- old/libvterm-0~bzr681/src/vterm_internal.h 2016-04-10 00:17:10.000000000 +0200
+++ new/libvterm-0~bzr684/src/vterm_internal.h 2016-08-15 22:22:52.000000000 +0200
@@ -17,6 +17,8 @@
# define DEBUG_LOG(...)
#endif
+#define ESC_S "\x1b"
+
typedef struct VTermEncoding VTermEncoding;
typedef struct {
@@ -217,7 +219,7 @@
VTermEncoding *vterm_lookup_encoding(VTermEncodingType type, char designation);
-int vterm_unicode_width(int codepoint);
-int vterm_unicode_is_combining(int codepoint);
+int vterm_unicode_width(uint32_t codepoint);
+int vterm_unicode_is_combining(uint32_t codepoint);
#endif
1
0
Hello community,
here is the log from the commit of package yast2-schema for openSUSE:Factory checked in at 2016-08-26 23:18:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-schema (Old)
and /work/SRC/openSUSE:Factory/.yast2-schema.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-schema"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-schema/yast2-schema.changes 2016-07-26 13:13:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-schema.new/yast2-schema.changes 2016-08-26 23:18:14.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Aug 25 14:51:31 UTC 2016 - igonzalezsosa(a)suse.com
+
+- Exclude i586 and s390 architectures as SLE 12 does not build
+ a runnable kernel for such architectures (bsc#933411).
+- 3.1.8
+
+-------------------------------------------------------------------
Old:
----
yast2-schema-3.1.7.tar.bz2
New:
----
yast2-schema-3.1.8.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-schema.spec ++++++
--- /var/tmp/diff_new_pack.FZ0sE3/_old 2016-08-26 23:18:16.000000000 +0200
+++ /var/tmp/diff_new_pack.FZ0sE3/_new 2016-08-26 23:18:16.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-schema
-Version: 3.1.7
+Version: 3.1.8
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -25,6 +25,12 @@
Url: https://github.com/yast/yast-schema
+# XXX: SLE-12 build packages for x86 and s390, but no runnable kernel, so
+# this package cannot be build here. Remove when SLE stop doing it
+%if !0%{?is_opensuse}
+ExcludeArch: %ix86 s390
+%endif
+
# Dependencies needed to build the package
BuildRequires: trang
BuildRequires: yast2-devtools
++++++ yast2-schema-3.1.7.tar.bz2 -> yast2-schema-3.1.8.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-schema-3.1.7/CONTRIBUTING.md new/yast2-schema-3.1.8/CONTRIBUTING.md
--- old/yast2-schema-3.1.7/CONTRIBUTING.md 2016-07-21 13:03:48.000000000 +0200
+++ new/yast2-schema-3.1.8/CONTRIBUTING.md 2016-08-25 17:43:37.000000000 +0200
@@ -3,7 +3,7 @@
YaST is an open source project and as such it welcomes all kinds of
contributions. If you decide to contribute, please follow these guidelines to
-ensure the process is effective and pleasant both for you and YaST maintainers.
+ensure the process is effective and pleasant both for you and the YaST maintainers.
There are two main forms of contribution: reporting bugs and performing code
changes.
@@ -17,13 +17,11 @@
registration](https://secure-www.novell.com/selfreg/jsp/createSimpleAccount…
if you don't have an account yet.)
-If you find a problem, please report it either using
-[Bugzilla](https://bugzilla.suse.com/) or GitHub issues. We can't guarantee
-that every bug will be fixed, but we'll try.
-
When creating a bug report, please follow our [bug reporting
guidelines](http://en.opensuse.org/openSUSE:Report_a_YaST_bug).
+We can't guarantee that every bug will be fixed, but we'll try.
+
Code Changes
------------
@@ -44,15 +42,22 @@
to the [Ruby style
guide](https://github.com/SUSE/style-guides/blob/master/Ruby.md).
- 4. Make sure your change didn't break anything by building the RPM package
+ 4. Update the package version (in `packages/*.spec`, usually by
+ `rake version:bump`) and add a new entry to the `package/*.changes` file
+ (by `osc vc package`).
+ For bigger changes or changes which need longer discussion it is advised to
+ add this as a separate last commit so it can be easily updated when another
+ change is merged in the meantime.
+
+ 5. Make sure your change didn't break anything by building the RPM package
(`rake osc:build`). The build process includes running the full testsuite.
- 5. Publish the branch and create a pull request.
+ 6. Publish the branch and create a pull request.
- 6. YaST developers will review your change and possibly point out issues.
+ 7. YaST developers will review your change and possibly point out issues.
Adapt the code under their guidance until they are all resolved.
- 7. Finally, the pull request will get merged or rejected.
+ 8. Finally, the pull request will get merged or rejected.
See also [GitHub's guide on
contributing](https://help.github.com/articles/fork-a-repo).
@@ -60,9 +65,6 @@
If you want to do multiple unrelated changes, use separate branches and pull
requests.
-Do not change the `VERSION` and `*.changes` files as this could lead to
-conflicts.
-
### Commits
Each commit in the pull request should do only one thing, which is clearly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-schema-3.1.7/package/yast2-schema.changes new/yast2-schema-3.1.8/package/yast2-schema.changes
--- old/yast2-schema-3.1.7/package/yast2-schema.changes 2016-07-21 13:03:48.000000000 +0200
+++ new/yast2-schema-3.1.8/package/yast2-schema.changes 2016-08-25 17:43:37.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Thu Aug 25 14:51:31 UTC 2016 - igonzalezsosa(a)suse.com
+
+- Exclude i586 and s390 architectures as SLE 12 does not build
+ a runnable kernel for such architectures (bsc#933411).
+- 3.1.8
+
+-------------------------------------------------------------------
Mon Jun 6 11:08:20 UTC 2016 - igonzalezsosa(a)suse.com
- Add ssh_import section (fate#319624)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-schema-3.1.7/package/yast2-schema.spec new/yast2-schema-3.1.8/package/yast2-schema.spec
--- old/yast2-schema-3.1.7/package/yast2-schema.spec 2016-07-21 13:03:48.000000000 +0200
+++ new/yast2-schema-3.1.8/package/yast2-schema.spec 2016-08-26 09:30:23.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-schema
-Version: 3.1.7
+Version: 3.1.8
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -28,6 +28,12 @@
Url: https://github.com/yast/yast-schema
+# XXX: SLE-12 build packages for x86 and s390, but no runnable kernel, so
+# this package cannot be build here. Remove when SLE stop doing it
+%if !0%{?is_opensuse}
+ExcludeArch: %ix86 s390
+%endif
+
# Dependencies needed to build the package
BuildRequires: trang yast2-devtools yast2-testsuite
1
0
Hello community,
here is the log from the commit of package php5-phalcon for openSUSE:Factory checked in at 2016-08-26 23:18:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/php5-phalcon (Old)
and /work/SRC/openSUSE:Factory/.php5-phalcon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php5-phalcon"
Changes:
--------
--- /work/SRC/openSUSE:Factory/php5-phalcon/php5-phalcon.changes 2016-06-19 10:49:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.php5-phalcon.new/php5-phalcon.changes 2016-08-26 23:18:11.000000000 +0200
@@ -1,0 +2,18 @@
+Thu Aug 25 07:34:57 UTC 2016 - t1loc(a)opensuse.org
+
+- Phalcon 3.0.1
+ * Fixed Phalcon\Cache\Backend\Redis::flush in order to flush cache correctly
+ * Fixed Phalcon\Mvc\Model\Manager::getRelationRecords to correct using multi relation column #12035
+ * Fixed Phalcon\Acl\Resource. Now it implements Phalcon\Acl\ResourceInterface #11959
+ * Fixed save method for all cache backends. Now it updates the _lastKey property correctly #12050
+ * Fixed virtual foreign key check when having multiple keys #12071
+ * Phalcon\Config\Adapter\Ini constructor can now specify parse_ini_file() scanner mode #12079
+ * Fixed Phalcon\Cache\Backend\Apc::save due to which the Apc::increment/Apc::decrement could not be used properly #12109
+ * Fixed Phalcon\Mvc\Model\Criteria::inWhere so that now the second parameter can be an empty array #10676
+ * Fixed ORM related memory leak #12115, #11995, #12116
+ * Fixed incorrect Phalcon\Mvc\View::getActiveRenderPath behavior #12139
+ * Fixed Phalcon\Security\Random::base64Safe so that now the method returns correct safe string #12141
+ * Fixed the Phalcon\Translate\Adapter\Gettext::getOptionsDefault visibility #12157
+ * Enabled PHQL cache for PHP7 to improve performance and reuse plannings
+
+-------------------------------------------------------------------
Old:
----
phalcon-v2.0.13.tar.gz
New:
----
v3.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ php5-phalcon.spec ++++++
--- /var/tmp/diff_new_pack.kZR8GI/_old 2016-08-26 23:18:12.000000000 +0200
+++ /var/tmp/diff_new_pack.kZR8GI/_new 2016-08-26 23:18:12.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package php5-phalcon
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -15,31 +15,31 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
# See also http://en.opensuse.org/openSUSE:Shared_library_packaging_policy
%define _php php5
%define _name phalcon
Name: %{_php}-%{_name}
-Version: 2.0.13
+Version: 3.0.1
Release: 0
Summary: PHP5 Extension Module
License: BSD-3-Clause
Group: Development/Libraries/PHP
Url: http://phalconphp.com/
-
-Source0: https://github.com/phalcon/cphalcon/archive/phalcon-v%{version}.tar.gz
+Source0: https://github.com/phalcon/cphalcon/archive/v%{version}.tar.gz
Source1: https://github.com/phalcon/zephir/archive/master.tar.gz#/zephir-master.tar.…
-BuildRoot: %_tmppath/%name-%version-build
-BuildRequires: gcc
-BuildRequires: re2c
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: %{_php}-ctype
BuildRequires: %{_php}-devel
BuildRequires: %{_php}-json
-BuildRequires: %{_php}-ctype
BuildRequires: %{_php}-pdo
+BuildRequires: gcc
+BuildRequires: re2c
-Requires: %{_php}-pear
Requires: %{_php}-mysql
+Requires: %{_php}-pear
%description
Phalcon is an open source, full stack framework for PHP 5
@@ -51,7 +51,7 @@
a project like Phalcon.
%prep
-%setup -n cphalcon-phalcon-v%version -a 1
+%setup -n cphalcon-%version -a 1
%build
export CC="gcc"
++++++ zephir-master.tar.gz ++++++
++++ 21097 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package icewm-theme-branding for openSUSE:Factory checked in at 2016-08-26 23:18:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icewm-theme-branding (Old)
and /work/SRC/openSUSE:Factory/.icewm-theme-branding.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icewm-theme-branding"
Changes:
--------
--- /work/SRC/openSUSE:Factory/icewm-theme-branding/icewm-theme-branding.changes 2016-06-03 16:39:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.icewm-theme-branding.new/icewm-theme-branding.changes 2016-08-26 23:18:08.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Aug 26 02:36:39 UTC 2016 - yfjiang(a)suse.com
+
+- Version update to 1.2.2
+ Add new startup script for icewm-session (bsc#977233)
+ Fix quotation in commands in preferences (bsc#977233)
+
+-------------------------------------------------------------------
Old:
----
icewm-config-openSUSE-1.2.1.tar.gz
New:
----
icewm-config-openSUSE-1.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ icewm-theme-branding.spec ++++++
--- /var/tmp/diff_new_pack.OClaFp/_old 2016-08-26 23:18:09.000000000 +0200
+++ /var/tmp/diff_new_pack.OClaFp/_new 2016-08-26 23:18:09.000000000 +0200
@@ -18,7 +18,7 @@
%define _name icewm-config-openSUSE
Name: icewm-theme-branding
-Version: 1.2.1
+Version: 1.2.2
Release: 0
Summary: Icewm theme branding for SLES or openSUSE
License: LGPL-2.1+ and GPL-3.0+
@@ -54,6 +54,7 @@
%config %{_sysconfdir}/icewm/keys
%config %{_sysconfdir}/icewm/menu
%config %{_sysconfdir}/icewm/preferences
+%config %{_sysconfdir}/icewm/startup
%config %{_sysconfdir}/icewm/theme
%config %{_sysconfdir}/icewm/toolbar
%config %{_sysconfdir}/icewm/winoptions
++++++ icewm-config-openSUSE-1.2.1.tar.gz -> icewm-config-openSUSE-1.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icewm-config-openSUSE-icewm-config-openSUSE-1.2.1/Makefile new/icewm-config-openSUSE-icewm-config-openSUSE-1.2.2/Makefile
--- old/icewm-config-openSUSE-icewm-config-openSUSE-1.2.1/Makefile 2016-06-02 15:56:27.000000000 +0200
+++ new/icewm-config-openSUSE-icewm-config-openSUSE-1.2.2/Makefile 2016-08-26 04:02:31.000000000 +0200
@@ -5,6 +5,7 @@
install -m 0644 keys $(DESTDIR)/etc/icewm/
install -m 0644 menu $(DESTDIR)/etc/icewm/
install -m 0644 preferences $(DESTDIR)/etc/icewm/
+ install -m 0755 startup $(DESTDIR)/etc/icewm/
install -m 0644 theme $(DESTDIR)/etc/icewm/
install -m 0644 toolbar $(DESTDIR)/etc/icewm/
install -m 0644 winoptions $(DESTDIR)/etc/icewm/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icewm-config-openSUSE-icewm-config-openSUSE-1.2.1/preferences new/icewm-config-openSUSE-icewm-config-openSUSE-1.2.2/preferences
--- old/icewm-config-openSUSE-icewm-config-openSUSE-1.2.1/preferences 2016-06-02 15:56:27.000000000 +0200
+++ new/icewm-config-openSUSE-icewm-config-openSUSE-1.2.2/preferences 2016-08-26 04:02:31.000000000 +0200
@@ -578,10 +578,10 @@
# LogoutCancelCommand=""
# Command to shutdown the system
-ShutdownCommand="/bin/sh -c "systemctl poweroff ||:""
+ShutdownCommand="/bin/sh -c 'systemctl poweroff ||:'"
# Command to reboot the system
-RebootCommand="/bin/sh -c "systemctl reboot ||:""
+RebootCommand="/bin/sh -c 'systemctl reboot ||:'"
# Command to run on CPU status
# CPUStatusCommand="xterm -name top -title Process\ Status -e top"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icewm-config-openSUSE-icewm-config-openSUSE-1.2.1/startup new/icewm-config-openSUSE-icewm-config-openSUSE-1.2.2/startup
--- old/icewm-config-openSUSE-icewm-config-openSUSE-1.2.1/startup 1970-01-01 01:00:00.000000000 +0100
+++ new/icewm-config-openSUSE-icewm-config-openSUSE-1.2.2/startup 2016-08-26 04:02:31.000000000 +0200
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Start the first polkit agent that exists
+for i in /usr/lib/polkit-gnome-authentication-agent-1 \
+ /usr/lib64/libexec/polkit-kde-authentication-agent-1 \
+ /usr/lib/polkit-mate/polkit-mate-authentication-agent-1 \
+ /usr/lib64/kde4/libexec/polkit-kde-authentication-agent-1; do
+ if [ -x $i ]; then
+ $i &
+ break # One is enough
+ fi
+done;
1
0
Hello community,
here is the log from the commit of package notmuch for openSUSE:Factory checked in at 2016-08-26 23:17:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/notmuch (Old)
and /work/SRC/openSUSE:Factory/.notmuch.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "notmuch"
Changes:
--------
--- /work/SRC/openSUSE:Factory/notmuch/notmuch.changes 2016-06-19 10:50:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.notmuch.new/notmuch.changes 2016-08-26 23:18:04.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Aug 25 15:02:19 UTC 2016 - mimi.vx(a)gmail.com
+
+- version 0.22.1
+ - Correct the definition of LIBNOTMUCH_CHECK_VERSION.
+ - Document the (lack of) operations permitted on a closed database.
+ - Fix race condition in dump / restore tests.
+ - Notmuch-mutt: Use env to locate perl.
+ - Emacs: Tell message-mode mode that outgoing messages are mail
+ - Emacs: This makes message-mode configuration behave more predictably.
+ - Respect charset of MIME parts when reading them
+ - Fix previous assumption that everyone uses UTF-8.
+
+-------------------------------------------------------------------
Old:
----
notmuch-0.22.tar.gz
notmuch-0.22.tar.gz.sha1
notmuch-0.22.tar.gz.sha1.asc
New:
----
notmuch-0.22.1.tar.gz
notmuch-0.22.1.tar.gz.sha1
notmuch-0.22.1.tar.gz.sha1.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ notmuch.spec ++++++
--- /var/tmp/diff_new_pack.83cg0G/_old 2016-08-26 23:18:05.000000000 +0200
+++ /var/tmp/diff_new_pack.83cg0G/_new 2016-08-26 23:18:05.000000000 +0200
@@ -17,7 +17,7 @@
Name: notmuch
-Version: 0.22
+Version: 0.22.1
Release: 0
Summary: The mail indexer
License: GPL-3.0+
++++++ notmuch-0.22.tar.gz -> notmuch-0.22.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/NEWS new/notmuch-0.22.1/NEWS
--- old/notmuch-0.22/NEWS 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/NEWS 2016-07-19 11:43:20.000000000 +0200
@@ -1,3 +1,34 @@
+Notmuch 0.22.1 (2016-07-19)
+===========================
+
+Library
+-------
+
+Correct the definition of `LIBNOTMUCH_CHECK_VERSION`.
+
+Document the (lack of) operations permitted on a closed database.
+
+Test Suite
+----------
+
+Fix race condition in dump / restore tests.
+
+Notmuch-Mutt
+------------
+
+Use `env` to locate perl.
+
+Emacs
+-----
+
+Tell `message-mode` mode that outgoing messages are mail
+
+ This makes message-mode configuration behave more predictably.
+
+Respect charset of MIME parts when reading them
+
+ Fix previous assumption that everyone uses UTF-8.
+
Notmuch 0.22 (2016-04-26)
=========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/bindings/python/notmuch/version.py new/notmuch-0.22.1/bindings/python/notmuch/version.py
--- old/notmuch-0.22/bindings/python/notmuch/version.py 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/bindings/python/notmuch/version.py 2016-07-19 11:43:20.000000000 +0200
@@ -1,3 +1,3 @@
# this file should be kept in sync with ../../../version
-__VERSION__ = '0.22'
+__VERSION__ = '0.22.1'
SOVERSION = '4'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/contrib/notmuch-mutt/notmuch-mutt new/notmuch-0.22.1/contrib/notmuch-mutt/notmuch-mutt
--- old/notmuch-0.22/contrib/notmuch-mutt/notmuch-mutt 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/contrib/notmuch-mutt/notmuch-mutt 2016-07-19 11:43:20.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
#
# notmuch-mutt - notmuch (of a) helper for Mutt
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/debian/changelog new/notmuch-0.22.1/debian/changelog
--- old/notmuch-0.22/debian/changelog 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/debian/changelog 2016-07-19 11:43:20.000000000 +0200
@@ -1,3 +1,20 @@
+notmuch (0.22.1-1) unstable; urgency=medium
+
+ * Correct the definition of `LIBNOTMUCH_CHECK_VERSION`.
+ * Document the (lack of) operations permitted on a closed database
+ (Closes: #826843).
+ * Fix race condition in dump / restore tests.
+ * [notmuch-emacs] Tell `message-mode` mode that outgoing messages are mail
+ * [notmuch-emacs] Respect charset of MIME parts when reading them
+
+ -- David Bremner <bremner(a)debian.org> Tue, 19 Jul 2016 06:42:09 -0300
+
+notmuch (0.22.1~rc0-1) experimental; urgency=medium
+
+ * release candidate for bugfix release
+
+ -- David Bremner <bremner(a)debian.org> Thu, 30 Jun 2016 21:28:13 +0200
+
notmuch (0.22-1) unstable; urgency=medium
* New upstream release. See /usr/share/doc/notmuch/NEWS for new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/emacs/notmuch-lib.el new/notmuch-0.22.1/emacs/notmuch-lib.el
--- old/notmuch-0.22/emacs/notmuch-lib.el 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/emacs/notmuch-lib.el 2016-07-19 11:43:20.000000000 +0200
@@ -23,6 +23,7 @@
;;; Code:
+(require 'mm-util)
(require 'mm-view)
(require 'mm-decode)
(require 'cl)
@@ -572,7 +573,20 @@
,@(when process-crypto '("--decrypt"))
,(notmuch-id-to-query (plist-get msg :id))))
(coding-system-for-read
- (if binaryp 'no-conversion 'utf-8)))
+ (if binaryp 'no-conversion
+ (let ((coding-system (mm-charset-to-coding-system
+ (plist-get part :content-charset))))
+ ;; Sadly,
+ ;; `mm-charset-to-coding-system' seems
+ ;; to return things that are not
+ ;; considered acceptable values for
+ ;; `coding-system-for-read'.
+ (if (coding-system-p coding-system)
+ coding-system
+ ;; RFC 2047 says that the default
+ ;; charset is US-ASCII. RFC6657
+ ;; complicates this somewhat.
+ 'us-ascii)))))
(apply #'call-process notmuch-command nil '(t nil) nil args)
(buffer-string))))))
(when (and cache data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/emacs/notmuch-mua.el new/notmuch-0.22.1/emacs/notmuch-mua.el
--- old/notmuch-0.22/emacs/notmuch-mua.el 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/emacs/notmuch-mua.el 2016-07-19 11:43:20.000000000 +0200
@@ -338,7 +338,10 @@
;; We need to convert any string input, eg from rmail-start-mail.
(dolist (h other-headers other-headers)
(if (stringp (car h)) (setcar h (intern (capitalize (car h))))))))
- (args (list yank-action send-actions)))
+ (args (list yank-action send-actions))
+ ;; Cause `message-setup-1' to do things relevant for mail,
+ ;; such as observe `message-default-mail-headers'.
+ (message-this-is-mail t))
;; message-setup-1 in Emacs 23 does not accept return-action
;; argument. Pass it only if it is supplied by the caller. This
;; will never be the case when we're called by `compose-mail' in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/lib/notmuch.h new/notmuch-0.22.1/lib/notmuch.h
--- old/notmuch-0.22/lib/notmuch.h 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/lib/notmuch.h 2016-07-19 11:43:20.000000000 +0200
@@ -93,7 +93,7 @@
* #endif
* @endcode
*/
-#define LIBNOTMUCH_CHECK_VERSION (major, minor, micro) \
+#define LIBNOTMUCH_CHECK_VERSION(major, minor, micro) \
(LIBNOTMUCH_MAJOR_VERSION > (major) || \
(LIBNOTMUCH_MAJOR_VERSION == (major) && LIBNOTMUCH_MINOR_VERSION > (minor)) || \
(LIBNOTMUCH_MAJOR_VERSION == (major) && LIBNOTMUCH_MINOR_VERSION == (minor) && \
@@ -331,7 +331,9 @@
* functions on objects derived from this database may either behave
* as if the database had not been closed (e.g., if the required data
* has been cached) or may fail with a
- * NOTMUCH_STATUS_XAPIAN_EXCEPTION.
+ * NOTMUCH_STATUS_XAPIAN_EXCEPTION. The only further operation
+ * permitted on the database itself is to call
+ * notmuch_database_destroy.
*
* notmuch_database_close can be called multiple times. Later calls
* have no effect.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/test/T240-dump-restore.sh new/notmuch-0.22.1/test/T240-dump-restore.sh
--- old/notmuch-0.22/test/T240-dump-restore.sh 2016-04-27 02:40:40.000000000 +0200
+++ new/notmuch-0.22.1/test/T240-dump-restore.sh 2016-07-19 11:43:20.000000000 +0200
@@ -135,7 +135,8 @@
test_begin_subtest "format=batch-tag, # round-trip"
notmuch dump --format=sup | sort > EXPECTED.$test_count
-notmuch dump --format=batch-tag | notmuch restore --format=batch-tag
+notmuch dump --format=batch-tag > DUMPFILE
+notmuch restore --format=batch-tag < DUMPFILE
notmuch dump --format=sup | sort > OUTPUT.$test_count
test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
@@ -212,7 +213,8 @@
test_begin_subtest 'format=batch-tag, round trip with strange tags'
notmuch dump --format=batch-tag > EXPECTED.$test_count
-notmuch dump --format=batch-tag | notmuch restore --format=batch-tag
+notmuch dump --format=batch-tag > DUMPFILE
+notmuch restore --format=batch-tag < DUMPFILE
notmuch dump --format=batch-tag > OUTPUT.$test_count
test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notmuch-0.22/version new/notmuch-0.22.1/version
--- old/notmuch-0.22/version 2016-04-27 02:59:05.000000000 +0200
+++ new/notmuch-0.22.1/version 2016-07-19 11:48:05.000000000 +0200
@@ -1 +1 @@
-0.22
+0.22.1
++++++ notmuch-0.22.tar.gz.sha1 -> notmuch-0.22.1.tar.gz.sha1 ++++++
--- /work/SRC/openSUSE:Factory/notmuch/notmuch-0.22.tar.gz.sha1 2016-06-19 10:50:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.notmuch.new/notmuch-0.22.1.tar.gz.sha1 2016-08-26 23:18:04.000000000 +0200
@@ -1 +1 @@
-c3c3c805cd821aca0966e46dffd56d37d42f2616 notmuch-0.22.tar.gz
+216615e10d17a4917089c491361bc5844c0a86b9 notmuch-0.22.1.tar.gz
1
0
Hello community,
here is the log from the commit of package python-reno for openSUSE:Factory checked in at 2016-08-26 23:17:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-reno (Old)
and /work/SRC/openSUSE:Factory/.python-reno.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-reno"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-reno/python-reno.changes 2016-06-07 23:49:31.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-reno.new/python-reno.changes 2016-08-26 23:17:59.000000000 +0200
@@ -1,0 +2,17 @@
+Thu Aug 25 12:54:11 UTC 2016 - tbechtold(a)suse.com
+
+- Use pypi.io as Source url
+
+-------------------------------------------------------------------
+Thu Aug 25 12:09:26 UTC 2016 - tbechtold(a)suse.com
+
+- update to 1.8.0:
+ * ignore all coverage output files
+ * add warnings for malformated input
+ * add API for writing the cache file
+ * report extra files with warnings
+ * Ignore empty sections in notes
+ * Clean up oslo-incubator stuff
+ * [Trivial] Remove executable privilege of doc/source/conf.py
+
+-------------------------------------------------------------------
Old:
----
reno-1.6.2.tar.gz
New:
----
reno-1.8.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-reno.spec ++++++
--- /var/tmp/diff_new_pack.hvjvpl/_old 2016-08-26 23:18:02.000000000 +0200
+++ /var/tmp/diff_new_pack.hvjvpl/_new 2016-08-26 23:18:02.000000000 +0200
@@ -17,13 +17,13 @@
Name: python-reno
-Version: 1.6.2
+Version: 1.8.0
Release: 0
Summary: RElease NOtes manager
License: Apache-2.0
Group: Development/Languages/Python
Url: http://www.openstack.org/
-Source: https://pypi.python.org/packages/source/r/reno/reno-%{version}.tar.gz
+Source: https://pypi.io/packages/source/r/reno/reno-%{version}.tar.gz
BuildRequires: python-Babel
BuildRequires: python-PyYAML
BuildRequires: python-devel
++++++ reno-1.6.2.tar.gz -> reno-1.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/AUTHORS new/reno-1.8.0/AUTHORS
--- old/reno-1.6.2/AUTHORS 2016-04-07 10:37:22.000000000 +0200
+++ new/reno-1.8.0/AUTHORS 2016-06-23 20:25:20.000000000 +0200
@@ -1,7 +1,10 @@
Brant Knudson <bknudson(a)us.ibm.com>
+ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
+Clint Byrum <clint(a)fewbar.com>
Doug Hellmann <doug(a)doughellmann.com>
Graham Hayes <graham.hayes(a)hpe.com>
Ian Cordasco <graffatcolmingov(a)gmail.com>
Louis Taylor <louis(a)kragniz.eu>
Mike Perez <thingee(a)gmail.com>
Monty Taylor <mordred(a)inaugust.com>
+ZhiQiang Fan <aji.zqfan(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/ChangeLog new/reno-1.8.0/ChangeLog
--- old/reno-1.6.2/ChangeLog 2016-04-07 10:37:22.000000000 +0200
+++ new/reno-1.8.0/ChangeLog 2016-06-23 20:25:20.000000000 +0200
@@ -1,6 +1,21 @@
CHANGES
=======
+1.8.0
+-----
+
+* ignore all coverage output files
+* add warnings for malformated input
+* add API for writing the cache file
+* report extra files with warnings
+
+1.7.0
+-----
+
+* Ignore empty sections in notes
+* Clean up oslo-incubator stuff
+* [Trivial] Remove executable privilege of doc/source/conf.py
+
1.6.2
-----
@@ -10,6 +25,9 @@
-----
* handle deleted notes properly
+* make the cache command write to a file by default
+* use the cache file instead of scanner when possible
+* add 'cache' command to write a cache file
* refactor argument buildup to make it more reusable
* improve test coverage
* always show coverage report for test runs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/PKG-INFO new/reno-1.8.0/PKG-INFO
--- old/reno-1.6.2/PKG-INFO 2016-04-07 10:37:23.000000000 +0200
+++ new/reno-1.8.0/PKG-INFO 2016-06-23 20:25:20.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: reno
-Version: 1.6.2
+Version: 1.8.0
Summary: RElease NOtes manager
Home-page: http://www.openstack.org/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/openstack-common.conf new/reno-1.8.0/openstack-common.conf
--- old/reno-1.6.2/openstack-common.conf 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/openstack-common.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-[DEFAULT]
-
-# The list of modules to copy from oslo-incubator.git
-
-# The base module to hold the copy of openstack.common
-base=reno
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/cache.py new/reno-1.8.0/reno/cache.py
--- old/reno-1.6.2/reno/cache.py 1970-01-01 01:00:00.000000000 +0100
+++ new/reno-1.8.0/reno/cache.py 2016-06-23 20:23:20.000000000 +0200
@@ -0,0 +1,124 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import os
+import sys
+
+from reno import loader
+from reno import scanner
+from reno import utils
+
+import yaml
+
+
+def build_cache_db(reporoot, notesdir, branch, collapse_pre_releases,
+ versions_to_include, earliest_version):
+ notes = scanner.get_notes_by_version(
+ reporoot, notesdir, branch,
+ collapse_pre_releases=collapse_pre_releases,
+ earliest_version=earliest_version,
+ )
+
+ # Default to including all versions returned by the scanner.
+ if not versions_to_include:
+ versions_to_include = list(notes.keys())
+
+ # Build a cache data structure including the file contents as well
+ # as the basic data returned by the scanner.
+ file_contents = {}
+ for version in versions_to_include:
+ for filename, sha in notes[version]:
+ body = scanner.get_file_at_commit(
+ reporoot,
+ filename,
+ sha,
+ )
+ # We want to save the contents of the file, which is YAML,
+ # inside another YAML file. That looks terribly ugly with
+ # all of the escapes needed to format it properly as
+ # embedded YAML, so parse the input and convert it to a
+ # data structure that can be serialized cleanly.
+ y = yaml.safe_load(body)
+ file_contents[filename] = y
+
+ cache = {
+ 'notes': [
+ {'version': k, 'files': v}
+ for k, v in notes.items()
+ ],
+ 'file-contents': file_contents,
+ }
+ return cache
+
+
+def write_cache_db(reporoot, notesdir, branch, collapse_pre_releases,
+ versions_to_include, earliest_version,
+ outfilename=None):
+ """Create a cache database file for the release notes data.
+
+ Build the cache database from scanning the project history and
+ write it to a file within the project.
+
+ By default, the data is written to the same file the scanner will
+ try to read when it cannot look at the git history. If outfilename
+ is given and is '-' the data is written to stdout
+ instead. Otherwise, if outfilename is given, the data overwrites
+ the named file.
+
+ """
+ if outfilename == '-':
+ stream = sys.stdout
+ close_stream = False
+ elif outfilename:
+ stream = open(outfilename, 'w')
+ close_stream = True
+ else:
+ outfilename = loader.get_cache_filename(reporoot, notesdir)
+ if not os.path.exists(os.path.dirname(outfilename)):
+ os.makedirs(os.path.dirname(outfilename))
+ stream = open(outfilename, 'w')
+ close_stream = True
+ try:
+ cache = build_cache_db(
+ reporoot=reporoot,
+ notesdir=notesdir,
+ branch=branch,
+ collapse_pre_releases=collapse_pre_releases,
+ versions_to_include=versions_to_include,
+ earliest_version=earliest_version,
+ )
+ yaml.safe_dump(
+ cache,
+ stream,
+ allow_unicode=True,
+ explicit_start=True,
+ encoding='utf-8',
+ )
+ finally:
+ if close_stream:
+ stream.close()
+
+
+def cache_cmd(args):
+ "Generates a release notes cache"
+ reporoot = args.reporoot.rstrip('/') + '/'
+ notesdir = utils.get_notes_dir(args)
+ write_cache_db(
+ reporoot=reporoot,
+ notesdir=notesdir,
+ branch=args.branch,
+ collapse_pre_releases=args.collapse_pre_releases,
+ versions_to_include=args.version,
+ earliest_version=args.earliest_version,
+ outfilename=args.output,
+ )
+ return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/formatter.py new/reno-1.8.0/reno/formatter.py
--- old/reno-1.6.2/reno/formatter.py 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/reno/formatter.py 2016-06-23 20:23:19.000000000 +0200
@@ -12,10 +12,6 @@
from __future__ import print_function
-from reno import scanner
-
-import yaml
-
_SECTION_ORDER = [
('features', 'New Features'),
@@ -41,7 +37,7 @@
]) + '\n'
-def format_report(reporoot, scanner_output, versions_to_include, title=None):
+def format_report(loader, versions_to_include, title=None):
report = []
if title:
report.append('=' * len(title))
@@ -52,14 +48,9 @@
# Read all of the notes files.
file_contents = {}
for version in versions_to_include:
- for filename, sha in scanner_output[version]:
- body = scanner.get_file_at_commit(
- reporoot,
- filename,
- sha,
- )
- y = yaml.safe_load(body)
- file_contents[filename] = y
+ for filename, sha in loader[version]:
+ body = loader.parse_note_file(filename, sha)
+ file_contents[filename] = body
for version in versions_to_include:
report.append(version)
@@ -67,7 +58,7 @@
report.append('')
# Add the preludes.
- notefiles = scanner_output[version]
+ notefiles = loader[version]
for n, sha in notefiles:
if 'prelude' in file_contents[n]:
report.append(file_contents[n]['prelude'])
@@ -77,6 +68,7 @@
notes = [
n
for fn, sha in notefiles
+ if file_contents[fn].get(section_name)
for n in file_contents[fn].get(section_name, [])
]
if notes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/lister.py new/reno-1.8.0/reno/lister.py
--- old/reno-1.6.2/reno/lister.py 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/reno/lister.py 2016-06-23 20:23:19.000000000 +0200
@@ -14,7 +14,7 @@
import logging
-from reno import scanner
+from reno import loader
from reno import utils
LOG = logging.getLogger(__name__)
@@ -26,17 +26,19 @@
reporoot = args.reporoot.rstrip('/') + '/'
notesdir = utils.get_notes_dir(args)
collapse = args.collapse_pre_releases
- notes = scanner.get_notes_by_version(
- reporoot, notesdir, args.branch,
+ ldr = loader.Loader(
+ reporoot=reporoot,
+ notesdir=notesdir,
+ branch=args.branch,
collapse_pre_releases=collapse,
earliest_version=args.earliest_version,
)
if args.version:
versions = args.version
else:
- versions = notes.keys()
+ versions = ldr.versions
for version in versions:
- notefiles = notes[version]
+ notefiles = ldr[version]
print(version)
for n, sha in notefiles:
if n.startswith(reporoot):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/loader.py new/reno-1.8.0/reno/loader.py
--- old/reno-1.6.2/reno/loader.py 1970-01-01 01:00:00.000000000 +0100
+++ new/reno-1.8.0/reno/loader.py 2016-06-23 20:23:20.000000000 +0200
@@ -0,0 +1,145 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import logging
+import os.path
+
+from reno import scanner
+
+import six
+import yaml
+
+LOG = logging.getLogger(__name__)
+
+
+def get_cache_filename(reporoot, notesdir):
+ return os.path.join(reporoot, notesdir, 'reno.cache')
+
+
+class Loader(object):
+ "Load the release notes for a given repository."
+
+ def __init__(self, reporoot, notesdir, branch=None,
+ collapse_pre_releases=True,
+ earliest_version=None,
+ ignore_cache=False):
+ """Initialize a Loader.
+
+ The versions are presented in reverse chronological order.
+
+ Notes files are associated with the earliest version for which
+ they were available, regardless of whether they changed later.
+
+ :param reporoot: Path to the root of the git repository.
+ :type reporoot: str
+ :param notesdir: The directory under *reporoot* with the release notes.
+ :type notesdir: str
+ :param branch: The name of the branch to scan. Defaults to current.
+ :type branch: str
+ :param collapse_pre_releases: When true, merge pre-release versions
+ into the final release, if it is present.
+ :type collapse_pre_releases: bool
+ :param earliest_version: The oldest version to include.
+ :type earliest_version: str
+ :param ignore_cache: Do not load a cache file if it is present.
+ :type ignore_cache: bool
+
+ """
+ self._reporoot = reporoot
+ self._notesdir = notesdir
+ self._branch = branch
+ self._collapse_pre_releases = collapse_pre_releases
+ self._earliest_version = earliest_version
+ self._ignore_cache = ignore_cache
+
+ self._cache = None
+ self._scanner_output = None
+ self._cache_filename = get_cache_filename(reporoot, notesdir)
+
+ self._load_data()
+
+ def _load_data(self):
+ cache_file_exists = os.path.exists(self._cache_filename)
+
+ if self._ignore_cache and cache_file_exists:
+ LOG.debug('ignoring cache file %s', self._cache_filename)
+
+ if (not self._ignore_cache) and cache_file_exists:
+ with open(self._cache_filename, 'r') as f:
+ self._cache = yaml.safe_load(f.read())
+ # Save the cached scanner output to the same attribute
+ # it would be in if we had loaded it "live". This
+ # simplifies some of the logic in the other methods.
+ self._scanner_output = {
+ n['version']: n['files']
+ for n in self._cache['notes']
+ }
+ else:
+ self._scanner_output = scanner.get_notes_by_version(
+ reporoot=self._reporoot,
+ notesdir=self._notesdir,
+ branch=self._branch,
+ collapse_pre_releases=self._collapse_pre_releases,
+ earliest_version=self._earliest_version,
+ )
+
+ @property
+ def versions(self):
+ "A list of all of the versions found."
+ return list(self._scanner_output.keys())
+
+ def __getitem__(self, version):
+ "Return data about the files that should go into a given version."
+ return self._scanner_output[version]
+
+ def parse_note_file(self, filename, sha):
+ """Return the data structure encoded in the note file.
+
+ Emit warnings for content that does not look valid in some
+ way, but return it anway for backwards-compatibility.
+
+ """
+ if self._cache:
+ content = self._cache['file-contents'][filename]
+ else:
+ body = scanner.get_file_at_commit(self._reporoot, filename, sha)
+ content = yaml.safe_load(body)
+
+ for section_name, section_content in content.items():
+ if section_name == 'prelude':
+ if not isinstance(section_content, six.string_types):
+ LOG.warning(
+ ('The prelude section of %s '
+ 'does not parse as a single string. '
+ 'Is the YAML input escaped properly?') %
+ filename,
+ )
+ else:
+ if not isinstance(section_content, list):
+ LOG.warning(
+ ('The %s section of %s '
+ 'does not parse as a list of strings. '
+ 'Is the YAML input escaped properly?') % (
+ section_name, filename),
+ )
+ else:
+ for item in section_content:
+ if not isinstance(item, six.string_types):
+ LOG.warning(
+ ('The item %r in the %s section of %s '
+ 'parses as a %s instead of a string. '
+ 'Is the YAML input escaped properly?'
+ ) % (item, section_name,
+ filename, type(item)),
+ )
+
+ return content
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/main.py new/reno-1.8.0/reno/main.py
--- old/reno-1.6.2/reno/main.py 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/reno/main.py 2016-06-23 20:23:19.000000000 +0200
@@ -14,6 +14,7 @@
import logging
import sys
+from reno import cache
from reno import create
from reno import defaults
from reno import lister
@@ -38,6 +39,10 @@
(('--earliest-version',),
dict(default=None,
help='stop when this version is reached in the history')),
+ (('--ignore-cache',),
+ dict(default=False,
+ action='store_true',
+ help='if there is a cache file present, do not use it')),
]
@@ -111,6 +116,24 @@
_build_query_arg_group(do_report)
do_report.set_defaults(func=report.report_cmd)
+ do_cache = subparsers.add_parser(
+ 'cache',
+ help='generate release notes cache',
+ )
+ do_cache.add_argument(
+ 'reporoot',
+ help='root of the git repository',
+ )
+ do_cache.add_argument(
+ '--output', '-o',
+ default=None,
+ help=('output filename, '
+ 'defaults to the cache file within the notesdir, '
+ 'use "-" for stdout'),
+ )
+ _build_query_arg_group(do_cache)
+ do_cache.set_defaults(func=cache.cache_cmd)
+
args = parser.parse_args()
logging.basicConfig(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/report.py new/reno-1.8.0/reno/report.py
--- old/reno-1.6.2/reno/report.py 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/reno/report.py 2016-06-23 20:23:19.000000000 +0200
@@ -13,7 +13,7 @@
from __future__ import print_function
from reno import formatter
-from reno import scanner
+from reno import loader
from reno import utils
@@ -22,18 +22,19 @@
reporoot = args.reporoot.rstrip('/') + '/'
notesdir = utils.get_notes_dir(args)
collapse = args.collapse_pre_releases
- notes = scanner.get_notes_by_version(
- reporoot, notesdir, args.branch,
+ ldr = loader.Loader(
+ reporoot=reporoot,
+ notesdir=notesdir,
+ branch=args.branch,
collapse_pre_releases=collapse,
earliest_version=args.earliest_version,
)
if args.version:
versions = args.version
else:
- versions = notes.keys()
+ versions = ldr.versions
text = formatter.format_report(
- reporoot,
- notes,
+ ldr,
versions,
title='Release Notes',
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/scanner.py new/reno-1.8.0/reno/scanner.py
--- old/reno-1.6.2/reno/scanner.py 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/reno/scanner.py 2016-06-23 20:23:19.000000000 +0200
@@ -233,11 +233,12 @@
# files. Even if this list ends up empty, we continue doing
# the other processing so that we record all of the known
# versions.
- filenames = [
- f
- for f in hlines[2:]
- if fnmatch.fnmatch(f, notesdir + '/*.yaml')
- ]
+ filenames = []
+ for f in hlines[2:]:
+ if fnmatch.fnmatch(f, notesdir + '/*.yaml'):
+ filenames.append(f)
+ elif fnmatch.fnmatch(f, notesdir + '/*'):
+ LOG.warn('found and ignored extra file %s', f)
# If there are no tags in this block, assume the most recently
# seen version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/sphinxext.py new/reno-1.8.0/reno/sphinxext.py
--- old/reno-1.6.2/reno/sphinxext.py 2016-04-07 10:35:18.000000000 +0200
+++ new/reno-1.8.0/reno/sphinxext.py 2016-06-23 20:23:19.000000000 +0200
@@ -14,7 +14,7 @@
from reno import defaults
from reno import formatter
-from reno import scanner
+from reno import loader
from docutils import nodes
from docutils.parsers import rst
@@ -61,8 +61,10 @@
info('scanning %s for %s release notes' %
(os.path.join(reporoot, notesdir), branch or 'current branch'))
- notes = scanner.get_notes_by_version(
- reporoot, notesdir, branch,
+ ldr = loader.Loader(
+ reporoot=reporoot,
+ notesdir=notesdir,
+ branch=branch,
collapse_pre_releases=collapse,
earliest_version=earliest_version,
)
@@ -72,10 +74,9 @@
for v in version_opt.split(',')
]
else:
- versions = notes.keys()
+ versions = ldr.versions
text = formatter.format_report(
- reporoot,
- notes,
+ ldr,
versions,
title=title,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/tests/base.py new/reno-1.8.0/reno/tests/base.py
--- old/reno-1.6.2/reno/tests/base.py 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/reno/tests/base.py 2016-06-23 20:23:20.000000000 +0200
@@ -15,9 +15,19 @@
# License for the specific language governing permissions and limitations
# under the License.
-from oslotest import base
+import fixtures
+import testtools
-class TestCase(base.BaseTestCase):
+class TestCase(testtools.TestCase):
"""Test case base class for all unit tests."""
+
+ def setUp(self):
+ super(TestCase, self).setUp()
+ self._stdout_fixture = fixtures.StringStream('stdout')
+ self.stdout = self.useFixture(self._stdout_fixture).stream
+ self.useFixture(fixtures.MonkeyPatch('sys.stdout', self.stdout))
+ self._stderr_fixture = fixtures.StringStream('stderr')
+ self.stderr = self.useFixture(self._stderr_fixture).stream
+ self.useFixture(fixtures.MonkeyPatch('sys.stderr', self.stderr))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/tests/test_cache.py new/reno-1.8.0/reno/tests/test_cache.py
--- old/reno-1.6.2/reno/tests/test_cache.py 1970-01-01 01:00:00.000000000 +0100
+++ new/reno-1.8.0/reno/tests/test_cache.py 2016-06-23 20:23:19.000000000 +0200
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import textwrap
+
+from reno import cache
+from reno.tests import base
+
+from oslotest import mockpatch
+
+import mock
+
+
+class TestCache(base.TestCase):
+
+ scanner_output = {
+ '0.0.0': [('note1', 'shaA')],
+ '1.0.0': [('note2', 'shaB'), ('note3', 'shaC')],
+ }
+
+ note_bodies = {
+ 'note1': textwrap.dedent("""
+ prelude: >
+ This is the prelude.
+ """),
+ 'note2': textwrap.dedent("""
+ issues:
+ - This is the first issue.
+ - This is the second issue.
+ """),
+ 'note3': textwrap.dedent("""
+ features:
+ - We added a feature!
+ """)
+ }
+
+ def _get_note_body(self, reporoot, filename, sha):
+ return self.note_bodies.get(filename, '')
+
+ def setUp(self):
+ super(TestCache, self).setUp()
+ self.useFixture(
+ mockpatch.Patch('reno.scanner.get_file_at_commit',
+ new=self._get_note_body)
+ )
+
+ def test_build_cache_db(self):
+ with mock.patch('reno.scanner.get_notes_by_version') as gnbv:
+ gnbv.return_value = self.scanner_output
+ db = cache.build_cache_db(
+ reporoot=None,
+ notesdir=None,
+ branch=None,
+ collapse_pre_releases=True,
+ versions_to_include=[],
+ earliest_version=None,
+ )
+ expected = {
+ 'notes': [
+ {'version': k, 'files': v}
+ for k, v in self.scanner_output.items()
+ ],
+ 'file-contents': {
+ 'note1': {
+ 'prelude': 'This is the prelude.\n',
+ },
+ 'note2': {
+ 'issues': [
+ 'This is the first issue.',
+ 'This is the second issue.',
+ ],
+ },
+ 'note3': {
+ 'features': ['We added a feature!'],
+ },
+ },
+ }
+ self.assertEqual(expected, db)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/tests/test_formatter.py new/reno-1.8.0/reno/tests/test_formatter.py
--- old/reno-1.6.2/reno/tests/test_formatter.py 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/reno/tests/test_formatter.py 2016-06-23 20:23:19.000000000 +0200
@@ -12,12 +12,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-import textwrap
-
from reno import formatter
+from reno import loader
from reno.tests import base
-from oslotest import mockpatch
+import mock
class TestFormatter(base.TestCase):
@@ -30,19 +29,21 @@
versions = ['0.0.0', '1.0.0']
note_bodies = {
- 'note1': textwrap.dedent("""
- prelude: >
- This is the prelude.
- """),
- 'note2': textwrap.dedent("""
- issues:
- - This is the first issue.
- - This is the second issue.
- """),
- 'note3': textwrap.dedent("""
- features:
- - We added a feature!
- """)
+ 'note1': {
+ 'prelude': 'This is the prelude.',
+ },
+ 'note2': {
+ 'issues': [
+ 'This is the first issue.',
+ 'This is the second issue.',
+ ],
+ },
+ 'note3': {
+ 'features': [
+ 'We added a feature!',
+ ],
+ 'upgrade': None,
+ },
}
def _get_note_body(self, reporoot, filename, sha):
@@ -50,15 +51,26 @@
def setUp(self):
super(TestFormatter, self).setUp()
- self.useFixture(
- mockpatch.Patch('reno.scanner.get_file_at_commit',
- new=self._get_note_body)
- )
+
+ def _load(ldr):
+ ldr._scanner_output = self.scanner_output
+ ldr._cache = {
+ 'file-contents': self.note_bodies
+ }
+
+ with mock.patch('reno.loader.Loader._load_data', _load):
+ self.ldr = loader.Loader(
+ reporoot='reporoot',
+ notesdir='notesdir',
+ branch=None,
+ collapse_pre_releases=None,
+ earliest_version=None,
+ ignore_cache=False,
+ )
def test_with_title(self):
result = formatter.format_report(
- reporoot=None,
- scanner_output=self.scanner_output,
+ loader=self.ldr,
versions_to_include=self.versions,
title='This is the title',
)
@@ -66,8 +78,7 @@
def test_versions(self):
result = formatter.format_report(
- reporoot=None,
- scanner_output=self.scanner_output,
+ loader=self.ldr,
versions_to_include=self.versions,
title='This is the title',
)
@@ -76,8 +87,7 @@
def test_without_title(self):
result = formatter.format_report(
- reporoot=None,
- scanner_output=self.scanner_output,
+ loader=self.ldr,
versions_to_include=self.versions,
title=None,
)
@@ -85,8 +95,7 @@
def test_section_order(self):
result = formatter.format_report(
- reporoot=None,
- scanner_output=self.scanner_output,
+ loader=self.ldr,
versions_to_include=self.versions,
title=None,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno/tests/test_loader.py new/reno-1.8.0/reno/tests/test_loader.py
--- old/reno-1.6.2/reno/tests/test_loader.py 1970-01-01 01:00:00.000000000 +0100
+++ new/reno-1.8.0/reno/tests/test_loader.py 2016-06-23 20:23:20.000000000 +0200
@@ -0,0 +1,92 @@
+# -*- coding: utf-8 -*-
+
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import logging
+import textwrap
+
+from reno import loader
+from reno.tests import base
+
+import fixtures
+import mock
+import six
+import yaml
+
+
+class TestValidate(base.TestCase):
+
+ scanner_output = {
+ '0.0.0': [('note', 'shaA')],
+ }
+
+ versions = ['0.0.0']
+
+ def setUp(self):
+ super(TestValidate, self).setUp()
+ self.logger = self.useFixture(
+ fixtures.FakeLogger(
+ format='%(message)s',
+ level=logging.WARNING,
+ )
+ )
+
+ def _make_loader(self, note_bodies):
+ def _load(ldr):
+ ldr._scanner_output = self.scanner_output
+ ldr._cache = {
+ 'file-contents': {'note1': note_bodies},
+ }
+
+ with mock.patch('reno.loader.Loader._load_data', _load):
+ return loader.Loader(
+ reporoot='reporoot',
+ notesdir='notesdir',
+ branch=None,
+ collapse_pre_releases=None,
+ earliest_version=None,
+ ignore_cache=False,
+ )
+
+ def test_prelude_list(self):
+ note_bodies = yaml.safe_load(textwrap.dedent('''
+ prelude:
+ - This is the first comment.
+ - This is a second.
+ '''))
+ self.assertIsInstance(note_bodies['prelude'], list)
+ ldr = self._make_loader(note_bodies)
+ ldr.parse_note_file('note1', None)
+ self.assertIn('prelude', self.logger.output)
+
+ def test_non_prelude_single_string(self):
+ note_bodies = yaml.safe_load(textwrap.dedent('''
+ issues: |
+ This is a single string.
+ '''))
+ print(type(note_bodies['issues']))
+ self.assertIsInstance(note_bodies['issues'], six.string_types)
+ ldr = self._make_loader(note_bodies)
+ ldr.parse_note_file('note1', None)
+ self.assertIn('list of strings', self.logger.output)
+
+ def test_note_with_colon_as_dict(self):
+ note_bodies = yaml.safe_load(textwrap.dedent('''
+ issues:
+ - This is the first issue.
+ - dict: This is parsed as a dictionary.
+ '''))
+ self.assertIsInstance(note_bodies['issues'][-1], dict)
+ ldr = self._make_loader(note_bodies)
+ ldr.parse_note_file('note1', None)
+ self.assertIn('dict', self.logger.output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno.egg-info/PKG-INFO new/reno-1.8.0/reno.egg-info/PKG-INFO
--- old/reno-1.6.2/reno.egg-info/PKG-INFO 2016-04-07 10:37:22.000000000 +0200
+++ new/reno-1.8.0/reno.egg-info/PKG-INFO 2016-06-23 20:25:20.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: reno
-Version: 1.6.2
+Version: 1.8.0
Summary: RElease NOtes manager
Home-page: http://www.openstack.org/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno.egg-info/SOURCES.txt new/reno-1.8.0/reno.egg-info/SOURCES.txt
--- old/reno-1.6.2/reno.egg-info/SOURCES.txt 2016-04-07 10:37:23.000000000 +0200
+++ new/reno-1.8.0/reno.egg-info/SOURCES.txt 2016-06-23 20:25:20.000000000 +0200
@@ -9,7 +9,6 @@
MANIFEST.in
README.rst
babel.cfg
-openstack-common.conf
requirements.txt
setup.cfg
setup.py
@@ -39,10 +38,12 @@
releasenotes/notes/sphinx-extension-4a092b4102370246.yaml
releasenotes/notes/support-multi-line-notes-328853d8d596fd64.yaml
reno/__init__.py
+reno/cache.py
reno/create.py
reno/defaults.py
reno/formatter.py
reno/lister.py
+reno/loader.py
reno/main.py
reno/report.py
reno/scanner.py
@@ -58,7 +59,9 @@
reno.egg-info/top_level.txt
reno/tests/__init__.py
reno/tests/base.py
+reno/tests/test_cache.py
reno/tests/test_create.py
reno/tests/test_formatter.py
+reno/tests/test_loader.py
reno/tests/test_scanner.py
reno/tests/test_utils.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/reno.egg-info/pbr.json new/reno-1.8.0/reno.egg-info/pbr.json
--- old/reno-1.6.2/reno.egg-info/pbr.json 2016-04-07 10:37:22.000000000 +0200
+++ new/reno-1.8.0/reno.egg-info/pbr.json 2016-06-23 20:25:20.000000000 +0200
@@ -1 +1 @@
-{"git_version": "11a2b7a", "is_release": true}
\ No newline at end of file
+{"git_version": "50c6ed3", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/setup.cfg new/reno-1.8.0/setup.cfg
--- old/reno-1.6.2/setup.cfg 2016-04-07 10:37:23.000000000 +0200
+++ new/reno-1.8.0/setup.cfg 2016-06-23 20:25:20.000000000 +0200
@@ -54,7 +54,7 @@
output_file = reno/locale/reno.pot
[egg_info]
-tag_date = 0
tag_build =
+tag_date = 0
tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.6.2/tox.ini new/reno-1.8.0/tox.ini
--- old/reno-1.6.2/tox.ini 2016-04-07 10:35:17.000000000 +0200
+++ new/reno-1.8.0/tox.ini 2016-06-23 20:23:19.000000000 +0200
@@ -36,4 +36,4 @@
show-source = True
ignore = E123,E125
builtins = _
-exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build
+exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
1
0
Hello community,
here is the log from the commit of package filezilla for openSUSE:Factory checked in at 2016-08-26 23:17:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/filezilla (Old)
and /work/SRC/openSUSE:Factory/.filezilla.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "filezilla"
Changes:
--------
--- /work/SRC/openSUSE:Factory/filezilla/filezilla.changes 2016-08-06 20:38:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.filezilla.new/filezilla.changes 2016-08-26 23:17:51.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Aug 25 10:11:27 UTC 2016 - ecsos(a)opensuse.org
+
+- update to 3.21.0
+ * Fixed vulnerabilities:
+ - Fixed a string format vulnerability introduced in 3.20.0-rc1
+ when listing directories using SFTP
+ * New features:
+ - SFTP: Added support for AES-GCM ciphers as implemented in
+ OpenSSH
+ - OS X: Ctrl+Tab and Ctrl+Shift+Tab can now be used to switch
+ forward and backward between opened tabs
+
+-------------------------------------------------------------------
Old:
----
FileZilla_3.20.1_src.tar.bz2
New:
----
FileZilla_3.21.0_src.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ filezilla.spec ++++++
--- /var/tmp/diff_new_pack.SN96kU/_old 2016-08-26 23:17:53.000000000 +0200
+++ /var/tmp/diff_new_pack.SN96kU/_new 2016-08-26 23:17:53.000000000 +0200
@@ -17,7 +17,7 @@
Name: filezilla
-Version: 3.20.1
+Version: 3.21.0
Release: 0
Summary: A GUI FTP and SFTP Client
License: GPL-2.0+
++++++ FileZilla_3.20.1_src.tar.bz2 -> FileZilla_3.21.0_src.tar.bz2 ++++++
++++ 17997 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libevtlog for openSUSE:Factory checked in at 2016-08-26 23:17:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libevtlog (Old)
and /work/SRC/openSUSE:Factory/.libevtlog.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libevtlog"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libevtlog/libevtlog.changes 2015-02-10 20:23:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libevtlog.new/libevtlog.changes 2016-08-26 23:17:45.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 24 13:12:56 UTC 2016 - jengelh(a)inai.de
+
+- BuildRequire pkgconfig for pkgconfig() symbols to be generated
+- Remove useless with-pic (it's only for static libs)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libevtlog.spec ++++++
--- /var/tmp/diff_new_pack.44aIaB/_old 2016-08-26 23:17:45.000000000 +0200
+++ /var/tmp/diff_new_pack.44aIaB/_new 2016-08-26 23:17:45.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libevtlog
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -28,6 +28,7 @@
BuildRequires: bison
BuildRequires: flex
BuildRequires: gcc-c++
+BuildRequires: pkg-config
%description
The EventLog library aims to be a replacement of the simple syslog()
@@ -52,7 +53,7 @@
%package -n libevtlog0
Summary: Syslog-ng event logger library runtime
-Group: Development/Libraries/C and C++
+Group: System/Libraries
%description -n libevtlog0
The EventLog library aims to be a replacement of the simple syslog()
@@ -99,7 +100,7 @@
%setup -q -n eventlog-%{version}
%build
-%configure --disable-static --with-pic
+%configure --disable-static
%{__make} %{?_smp_mflags}
%check
1
0
Hello community,
here is the log from the commit of package mozo for openSUSE:Factory checked in at 2016-08-26 23:17:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mozo (Old)
and /work/SRC/openSUSE:Factory/.mozo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mozo/mozo.changes 2016-05-17 17:14:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mozo.new/mozo.changes 2016-08-26 23:17:41.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Aug 24 22:50:28 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to version 1.14.1:
+ * Fix a crash and erasing of the menu file when processing
+ non-ASCII characters.
+ * Fix a crash on invalid XML file.
+ * Always encode with UTF-8 before writing the XML file.
+ * Update translations.
+
+-------------------------------------------------------------------
Old:
----
mozo-1.14.0.tar.xz
New:
----
mozo-1.14.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mozo.spec ++++++
--- /var/tmp/diff_new_pack.02qQJZ/_old 2016-08-26 23:17:43.000000000 +0200
+++ /var/tmp/diff_new_pack.02qQJZ/_new 2016-08-26 23:17:43.000000000 +0200
@@ -18,7 +18,7 @@
%define _version 1.14
Name: mozo
-Version: 1.14.0
+Version: 1.14.1
Release: 0
Summary: MATE Desktop menu editor
License: LGPL-2.1+
@@ -31,7 +31,7 @@
BuildRequires: gobject-introspection-devel
BuildRequires: hicolor-icon-theme
BuildRequires: mate-common >= %{_version}
-BuildRequires: pkg-config
+BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(libmate-menu) >= %{_version}
BuildRequires: pkgconfig(pygobject-3.0)
++++++ mozo-1.14.0.tar.xz -> mozo-1.14.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/ChangeLog new/mozo-1.14.1/ChangeLog
--- old/mozo-1.14.0/ChangeLog 2016-04-07 22:14:31.000000000 +0200
+++ new/mozo-1.14.1/ChangeLog 2016-08-24 23:29:30.000000000 +0200
@@ -1,3 +1,96 @@
+commit b76530c1c2cd566cbdb838d075e2e1fa72205d9c
+Author: monsta <monsta(a)inbox.ru>
+Date: Thu Aug 25 00:28:20 2016 +0300
+
+ release 1.14.1
+
+ NEWS | 8 ++++++++
+ configure.ac | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+commit ad4ed20050df63c291867d47cf98b622e2b42c2b
+Author: monsta <monsta(a)inbox.ru>
+Date: Thu Jul 7 14:51:33 2016 +0300
+
+ po: drop languages not present on Transifex
+
+ po/LINGUAS | 5 ----
+ po/be(a)latin.po | 82 ------------------------------------------------------
+ po/bem.po | 80 -----------------------------------------------------
+ po/en(a)shaw.po | 82 ------------------------------------------------------
+ po/io.po | 83 -------------------------------------------------------
+ po/uz(a)cyrillic.po | 81 -----------------------------------------------------
+ 6 files changed, 413 deletions(-)
+
+commit 53abf27d2d992222727ae463cd3a3f09d89b5e9b
+Author: monsta <monsta(a)inbox.ru>
+Date: Tue Jun 21 17:55:01 2016 +0300
+
+ po: actually add a new language from Transifex
+
+ po/LINGUAS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 1b5584aab80264db3540ccf00242a4c301fa2323
+Author: Stefano Facchini <stefano.facchini(a)gmail.com>
+Date: Mon Aug 26 18:34:35 2013 +0200
+
+ quit on delete event
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=706821
+
+ Mozo/MainWindow.py | 3 +++
+ data/mozo.ui | 1 +
+ 2 files changed, 4 insertions(+)
+
+commit 5f116eb7aac88f1c308c12e57bfcc203ab44f309
+Author: Alexei Sorokin <sor.alexei(a)meowr.ru>
+Date: Mon Aug 22 23:57:21 2016 +0300
+
+ fix minidom related crashes (#29)
+
+ Mozo/MenuEditor.py | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit 1c253ed41ff1f6f36173707d89070d36054db9f0
+Author: Alexei Sorokin <sor.alexei(a)meowr.ru>
+Date: Mon Aug 22 23:56:13 2016 +0300
+
+ encode with utf-8 before writing XML
+
+ based on:
+ https://github.com/GNOME/alacarte/commit/f7835d7
+ https://github.com/GNOME/alacarte/commit/0d7f351
+ https://github.com/GNOME/alacarte/commit/23f0318
+
+ Mozo/MainWindow.py | 7 ++++---
+ Mozo/MenuEditor.py | 47 +++++++++++++++++++++++++++++++++--------------
+ 2 files changed, 37 insertions(+), 17 deletions(-)
+
+commit cc776e061996e9b803cb08638d615e05df1efcb8
+Author: Jasper St. Pierre <jstpierre(a)mecheye.net>
+Date: Fri Jun 1 01:30:55 2012 -0400
+
+ MenuEditor: be resilient to bad XML
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=654167
+
+ Mozo/MenuEditor.py | 36 ++++++++++++++++++++----------------
+ 1 file changed, 20 insertions(+), 16 deletions(-)
+
+commit 6c6595ddd7460a47771ac68ebb45a5c60022001b
+Author: raveit65 <chat-to-me(a)raveit.de>
+Date: Tue Jun 7 23:21:17 2016 +0200
+
+ sync with Transiflex
+
+ po/es.po | 2 +-
+ po/es_CL.po | 2 +-
+ po/hi.po | 2 +-
+ po/pms.po | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/uz.po | 35 +++++++++++++-------------
+ 5 files changed, 104 insertions(+), 20 deletions(-)
+
commit e814c9e7482e1f616cae42d9b145c5796608e871
Author: monsta <monsta(a)inbox.ru>
Date: Thu Apr 7 17:12:15 2016 +0300
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/Makefile.in new/mozo-1.14.1/Makefile.in
--- old/mozo-1.14.0/Makefile.in 2016-04-07 22:14:19.000000000 +0200
+++ new/mozo-1.14.1/Makefile.in 2016-08-24 23:29:27.000000000 +0200
@@ -188,7 +188,7 @@
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \
COPYING ChangeLog INSTALL NEWS README compile install-sh \
- missing
+ missing py-compile
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -356,6 +356,7 @@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/Mozo/MainWindow.py new/mozo-1.14.1/Mozo/MainWindow.py
--- old/mozo-1.14.0/Mozo/MainWindow.py 2016-03-23 22:28:53.000000000 +0100
+++ new/mozo-1.14.1/Mozo/MainWindow.py 2016-08-24 23:15:48.000000000 +0200
@@ -22,9 +22,11 @@
gi.require_version('Gdk', '3.0')
from gi.repository import GLib, Gio
from gi.repository import Gtk, Gdk, GdkPixbuf
-import cgi, os
+import cgi
+import os
import gettext
import subprocess
+import shutil
import urllib
try:
from Mozo import config
@@ -295,6 +297,9 @@
return False
return True
+ def on_delete_event(self, widget, event):
+ self.quit()
+
def on_new_menu_button_clicked(self, button):
menu_tree = self.tree.get_object('menu_tree')
menus, iter = menu_tree.get_selection().get_selected()
@@ -382,8 +387,7 @@
file_type = 'Menu'
if not os.path.isfile(file_path):
- data = open(item.get_desktop_file_path()).read()
- open(file_path, 'w').write(data)
+ shutil.copy(item.get_desktop_file_path(), file_path)
self.editor._MenuEditor__addUndo([(file_type, os.path.split(file_path)[1]),])
else:
self.editor._MenuEditor__addUndo([item,])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/Mozo/Makefile.in new/mozo-1.14.1/Mozo/Makefile.in
--- old/mozo-1.14.0/Mozo/Makefile.in 2016-04-07 22:14:19.000000000 +0200
+++ new/mozo-1.14.1/Mozo/Makefile.in 2016-08-24 23:29:27.000000000 +0200
@@ -275,6 +275,7 @@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/Mozo/MenuEditor.py new/mozo-1.14.1/Mozo/MenuEditor.py
--- old/mozo-1.14.0/Mozo/MenuEditor.py 2016-03-05 13:57:48.000000000 +0100
+++ new/mozo-1.14.1/Mozo/MenuEditor.py 2016-08-24 23:15:48.000000000 +0200
@@ -16,7 +16,12 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import os, re, xml.dom.minidom, locale
+import codecs
+import os
+import re
+import xml.dom.minidom
+import xml.parsers.expat
+import locale
import matemenu
from Mozo import util
@@ -42,10 +47,10 @@
self.applications.tree.sort_key = matemenu.SORT_DISPLAY_NAME
self.applications.visible_tree.sort_key = matemenu.SORT_DISPLAY_NAME
self.applications.path = os.path.join(util.getUserMenuPath(), self.applications.tree.get_menu_file())
- if not os.path.isfile(self.applications.path):
- self.applications.dom = xml.dom.minidom.parseString(util.getUserMenuXml(self.applications.tree))
- else:
+ try:
self.applications.dom = xml.dom.minidom.parse(self.applications.path)
+ except (IOError, xml.parsers.expat.ExpatError):
+ self.applications.dom = xml.dom.minidom.parseString(util.getUserMenuXml(self.applications.tree))
self.__remove_whilespace_nodes(self.applications.dom)
self.settings = Menu()
@@ -54,19 +59,19 @@
self.settings.tree.sort_key = matemenu.SORT_DISPLAY_NAME
self.settings.visible_tree.sort_key = matemenu.SORT_DISPLAY_NAME
self.settings.path = os.path.join(util.getUserMenuPath(), self.settings.tree.get_menu_file())
- if not os.path.isfile(self.settings.path):
- self.settings.dom = xml.dom.minidom.parseString(util.getUserMenuXml(self.settings.tree))
- else:
+ try:
self.settings.dom = xml.dom.minidom.parse(self.settings.path)
+ except (IOError, xml.parsers.expat.ExpatError):
+ self.settings.dom = xml.dom.minidom.parseString(util.getUserMenuXml(self.settings.tree))
self.__remove_whilespace_nodes(self.settings.dom)
self.save(True)
def save(self, from_loading=False):
for menu in ('applications', 'settings'):
- fd = open(getattr(self, menu).path, 'w')
- fd.write(re.sub("\n[\s]*([^\n<]*)\n[\s]*</", "\\1</", getattr(self, menu).dom.toprettyxml().replace('<?xml version="1.0" ?>\n', '')))
- fd.close()
+ xml = getattr(self, menu).dom.toprettyxml().replace('<?xml version="1.0" ?>\n', '')
+ with codecs.open(getattr(self, menu).path, 'w', 'utf-8') as f:
+ f.write(re.sub("\n[\s]*([^\n<]*)\n[\s]*</", "\\1</", xml))
if not from_loading:
self.__loadMenus()
@@ -94,10 +99,10 @@
except OSError:
pass
#reload DOM for each menu
- if not os.path.isfile(menu.path):
- menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
- else:
+ try:
menu.dom = xml.dom.minidom.parse(menu.path)
+ except (IOError, xml.parsers.expat.ExpatError):
+ menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
self.__remove_whilespace_nodes(menu.dom)
#reset undo/redo, no way to recover from this
self.__undo, self.__redo = [], []
@@ -119,19 +124,29 @@
for file_path in files:
new_path = file_path.rsplit('.', 1)[0]
redo_path = util.getUniqueRedoFile(new_path)
- data = open(new_path).read()
- open(redo_path, 'w').write(data)
- data = open(file_path).read()
- open(new_path, 'w').write(data)
+
+ f_file_path = codecs.open(new_path, 'r', 'utf-8')
+ f_new_path = codecs.open(new_path, 'rw', 'utf-8')
+ f_redo_path = codecs.open(redo_path, 'rw', 'utf-8')
+
+ data = f_new_path.read()
+ f_redo_path.write(data)
+ data = f_file_path.read()
+ f_new_path.write(data)
+
+ f_file_path.close()
+ f_new_path.close()
+ f_redo_path.close()
+
os.unlink(file_path)
redo.append(redo_path)
- #reload DOM to make changes stick
+ # reload DOM to make changes stick
for name in ('applications', 'settings'):
menu = getattr(self, name)
- if not os.path.isfile(menu.path):
- menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
- else:
+ try:
menu.dom = xml.dom.minidom.parse(menu.path)
+ except (IOError, xml.parsers.expat.ExpatError):
+ menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
self.__remove_whilespace_nodes(menu.dom)
self.__redo.append(redo)
@@ -143,19 +158,25 @@
for file_path in files:
new_path = file_path.rsplit('.', 1)[0]
undo_path = util.getUniqueUndoFile(new_path)
- data = open(new_path).read()
- open(undo_path, 'w').write(data)
- data = open(file_path).read()
- open(new_path, 'w').write(data)
+ f_file_path = codecs.open(new_path, 'r', 'utf-8')
+ f_new_path = codecs.open(new_path, 'rw', 'utf-8')
+ f_undo_path = codecs.open(undo_path, 'rw', 'utf-8')
+ data = f_new_path.read()
+ f_undo_path.write(data)
+ data = f_file_path.read()
+ f_new_path.write(data)
os.unlink(file_path)
undo.append(undo_path)
+ f_file_path.close()
+ f_new_path.close()
+ f_undo_path.close()
#reload DOM to make changes stick
for name in ('applications', 'settings'):
menu = getattr(self, name)
- if not os.path.isfile(menu.path):
- menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
- else:
+ try:
menu.dom = xml.dom.minidom.parse(menu.path)
+ except (IOError, xml.parsers.expat.ExpatError):
+ menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
self.__remove_whilespace_nodes(menu.dom)
self.__undo.append(undo)
@@ -424,9 +445,11 @@
file_path = item.get_desktop_file_path()
else:
continue
- data = open(file_path).read()
+ with codecs.open(file_path, 'r', 'utf-8') as f:
+ data = f.read()
undo_path = util.getUniqueUndoFile(file_path)
- open(undo_path, 'w').write(data)
+ with codecs.open(undo_path, 'w', 'utf-8') as f:
+ f.write(data)
self.__undo[-1].append(undo_path)
def __getMenu(self, item):
@@ -513,11 +536,19 @@
return found
def __addXmlMenuElement(self, element, name, dom):
+ if isinstance(name, bytes):
+ name = name.decode('utf-8')
+
node = dom.createElement('Menu')
self.__addXmlTextElement(node, 'Name', name, dom)
return element.appendChild(node)
def __addXmlTextElement(self, element, name, text, dom):
+ if isinstance(name, bytes):
+ name = name.decode('utf-8')
+ if isinstance(text, bytes):
+ text = text.decode('utf-8')
+
for temp in element.childNodes:
if temp.nodeName == name:
if temp.childNodes[0].nodeValue == text:
@@ -528,6 +559,9 @@
return element.appendChild(node)
def __addXmlFilename(self, element, dom, filename, type = 'Include'):
+ if isinstance(filename, bytes):
+ filename = filename.decode('utf-8')
+
# remove old filenames
for node in self.__getXmlNodesByName(['Include', 'Exclude'], element):
if node.childNodes[0].nodeName == 'Filename' and node.childNodes[0].childNodes[0].nodeValue == filename:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/NEWS new/mozo-1.14.1/NEWS
--- old/mozo-1.14.0/NEWS 2016-04-07 13:49:51.000000000 +0200
+++ new/mozo-1.14.1/NEWS 2016-08-24 23:23:34.000000000 +0200
@@ -1,3 +1,11 @@
+1.14.1
+
+ * Fix crash and erasing of menu file when processing
+ non-ASCII character
+ * Fix crash on invalid XML file
+ * Always encode with UTF-8 before writing XML file
+ * Translations update
+
1.14.0
* Move to GTK+3 and GObject Introspection, drop old
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/aclocal.m4 new/mozo-1.14.1/aclocal.m4
--- old/mozo-1.14.0/aclocal.m4 2016-04-07 22:14:17.000000000 +0200
+++ new/mozo-1.14.1/aclocal.m4 2016-08-24 23:29:25.000000000 +0200
@@ -681,7 +681,7 @@
])
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
-dnl serial 11 (pkg-config-0.29)
+dnl serial 11 (pkg-config-0.29.1)
dnl
dnl Copyright © 2004 Scott James Remnant <scott(a)netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists(a)gmail.com>
@@ -723,7 +723,7 @@
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
-[m4_define([PKG_MACROS_VERSION], [0.29])
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/configure new/mozo-1.14.1/configure
--- old/mozo-1.14.0/configure 2016-04-07 22:14:18.000000000 +0200
+++ new/mozo-1.14.1/configure 2016-08-24 23:29:26.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mozo 1.14.0.
+# Generated by GNU Autoconf 2.69 for mozo 1.14.1.
#
# Report bugs to <http://www.mate-desktop.org>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='mozo'
PACKAGE_TARNAME='mozo'
-PACKAGE_VERSION='1.14.0'
-PACKAGE_STRING='mozo 1.14.0'
+PACKAGE_VERSION='1.14.1'
+PACKAGE_STRING='mozo 1.14.1'
PACKAGE_BUGREPORT='http://www.mate-desktop.org'
PACKAGE_URL=''
@@ -761,6 +761,7 @@
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -841,6 +842,7 @@
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1093,6 +1095,15 @@
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1230,7 +1241,7 @@
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1343,7 +1354,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mozo 1.14.0 to adapt to many kinds of systems.
+\`configure' configures mozo 1.14.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1383,6 +1394,7 @@
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1409,7 +1421,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mozo 1.14.0:";;
+ short | recursive ) echo "Configuration of mozo 1.14.1:";;
esac
cat <<\_ACEOF
@@ -1512,7 +1524,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-mozo configure 1.14.0
+mozo configure 1.14.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1881,7 +1893,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mozo $as_me 1.14.0, which was
+It was created by mozo $as_me 1.14.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2747,7 +2759,7 @@
# Define the identity of the package.
PACKAGE='mozo'
- VERSION='1.14.0'
+ VERSION='1.14.1'
cat >>confdefs.h <<_ACEOF
@@ -6536,7 +6548,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mozo $as_me 1.14.0, which was
+This file was extended by mozo $as_me 1.14.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6602,7 +6614,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mozo config.status 1.14.0
+mozo config.status 1.14.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/configure.ac new/mozo-1.14.1/configure.ac
--- old/mozo-1.14.0/configure.ac 2016-04-07 13:49:13.000000000 +0200
+++ new/mozo-1.14.1/configure.ac 2016-08-24 23:18:44.000000000 +0200
@@ -1,7 +1,7 @@
dnl -*- Mode: autoconf -*-
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.53)
-AC_INIT(mozo, 1.14.0, http://www.mate-desktop.org)
+AC_INIT(mozo, 1.14.1, http://www.mate-desktop.org)
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
AC_CONFIG_SRCDIR(mozo.in)
AC_CONFIG_HEADERS([config.h])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/data/Makefile.in new/mozo-1.14.1/data/Makefile.in
--- old/mozo-1.14.0/data/Makefile.in 2016-04-07 22:14:19.000000000 +0200
+++ new/mozo-1.14.1/data/Makefile.in 2016-08-24 23:29:27.000000000 +0200
@@ -337,6 +337,7 @@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/data/icons/Makefile.in new/mozo-1.14.1/data/icons/Makefile.in
--- old/mozo-1.14.0/data/icons/Makefile.in 2016-04-07 22:14:19.000000000 +0200
+++ new/mozo-1.14.1/data/icons/Makefile.in 2016-08-24 23:29:27.000000000 +0200
@@ -245,6 +245,7 @@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/data/mozo.ui new/mozo-1.14.1/data/mozo.ui
--- old/mozo-1.14.0/data/mozo.ui 2016-04-07 13:41:32.000000000 +0200
+++ new/mozo-1.14.1/data/mozo.ui 2016-08-24 23:15:48.000000000 +0200
@@ -51,6 +51,7 @@
<property name="window_position">center</property>
<property name="type_hint">normal</property>
<signal name="close" handler="on_close_button_clicked" swapped="no"/>
+ <signal name="delete-event" handler="on_delete_event" swapped="no"/>
<signal name="destroy" handler="on_close_button_clicked" swapped="no"/>
<signal name="style-updated" handler="on_style_updated" swapped="no"/>
<child internal-child="vbox">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/install-sh new/mozo-1.14.1/install-sh
--- old/mozo-1.14.0/install-sh 2016-04-07 22:14:19.000000000 +0200
+++ new/mozo-1.14.1/install-sh 2016-08-24 23:29:27.000000000 +0200
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2013-12-25.23; # UTC
+scriptversion=2014-09-12.12; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -324,34 +324,41 @@
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
+ # $RANDOM is not portable (e.g. dash); use it when possible to
+ # lower collision chance
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+ # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
+ # create the $tmpdir first (and fail if unsuccessful) to make sure
+ # that nobody tries to guess the $tmpdir name.
if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
- rmdir "$tmpdir/d" "$tmpdir"
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/LINGUAS new/mozo-1.14.1/po/LINGUAS
--- old/mozo-1.14.0/po/LINGUAS 2016-04-07 22:13:43.000000000 +0200
+++ new/mozo-1.14.1/po/LINGUAS 2016-08-24 23:16:30.000000000 +0200
@@ -7,8 +7,6 @@
as
ast
be
-be@latin
-bem
bg
bn
bn_IN
@@ -26,7 +24,6 @@
en_AU
en_CA
en_GB
-en@shaw
eo
es
es_AR
@@ -51,7 +48,6 @@
hu
hy
id
-io
is
it
ja
@@ -79,6 +75,7 @@
or
pa
pl
+pms
ps
pt
pt_BR
@@ -97,7 +94,6 @@
tr
ug
uk
-uz@cyrillic
uz
vi
zh_CN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/be(a)latin.po new/mozo-1.14.1/po/be(a)latin.po
--- old/mozo-1.14.0/po/be(a)latin.po 2016-03-04 17:09:05.000000000 +0100
+++ new/mozo-1.14.1/po/be(a)latin.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,82 +0,0 @@
-# Biełaruski pierakład Mozo.
-# Copyright (C) 2007 Free Software Foundation.
-# This file is distributed under the same license as the Mozo package.
-# Ihar Hračyška <ihar.hrachyshka(a)gmail.com>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Mozo\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-03-10 02:26+0200\n"
-"PO-Revision-Date: 2007-03-09 18:58+0100\n"
-"Last-Translator: Alaksandar Navicki <zolak(a)lacinka.org>\n"
-"Language-Team: Belarusian Latin <i18n(a)mova.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-
-#: ../Mozo/MainWindow.py:167
-msgid "Name"
-msgstr "Nazva"
-
-#: ../Mozo/MainWindow.py:183
-msgid "Show"
-msgstr "Pakažy"
-
-#: ../Mozo/MainWindow.py:191
-msgid "Item"
-msgstr "Element"
-
-#: ../mozo.desktop.in.in.h:1
-msgid "Change which applications are shown on the main menu"
-msgstr "Źmiani śpis aplikacyj, pakazanych u hałoŭnym menu"
-
-#: ../mozo.desktop.in.in.h:2 ../mozo.glade.h:2
-msgid "Main Menu"
-msgstr "Hałoŭnaje menu"
-
-#: ../mozo.glade.h:1
-msgid "It_ems:"
-msgstr "_Elementy:"
-
-#: ../mozo.glade.h:3
-msgid "Move Down"
-msgstr "Pasuń nižej"
-
-#: ../mozo.glade.h:4
-msgid "Move Up"
-msgstr "Pasuń vyšej"
-
-#: ../mozo.glade.h:5
-msgid "Ne_w Item"
-msgstr "_Novy element"
-
-#: ../mozo.glade.h:6
-msgid "New _Separator"
-msgstr "Novy _separatar"
-
-#: ../mozo.glade.h:7
-msgid "Restore the default menu layout"
-msgstr "Viarni zmoŭčany vyhlad menu"
-
-#: ../mozo.glade.h:8
-msgid "Revert Changes?"
-msgstr "Anulavać źmieny?"
-
-#: ../mozo.glade.h:9
-msgid "Revert all menus to original settings?"
-msgstr "Viarnuć zmoŭčanyja nałady dla ŭsich menu?"
-
-#: ../mozo.glade.h:10
-msgid "_Menus:"
-msgstr "_Menu:"
-
-#: ../mozo.glade.h:11
-msgid "_New Menu"
-msgstr "_Novaje menu"
-
-#: ../mozo.glade.h:12
-msgid "_Revert to Original"
-msgstr "_Viarni zmoŭčanyja nałady"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/bem.po new/mozo-1.14.1/po/bem.po
--- old/mozo-1.14.0/po/bem.po 2016-03-04 17:09:05.000000000 +0100
+++ new/mozo-1.14.1/po/bem.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,80 +0,0 @@
-# Bemba translation of mozo.
-# Copyright (C) 2009, listed translators
-# This file is distributed under the same license as the mozo package.
-# Katongo Musaluke <goof(a)coppernet.zm>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: mozo HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-04 12:17+0200\n"
-"PO-Revision-Date: 2009-03-18 16:10+0100\n"
-"Last-Translator: Katongo Musaluke <goof(a)coppernet.zm>\n"
-"Language-Team: Bemba Team <bem(a)li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../Mozo/MainWindow.py:168
-msgid "Name"
-msgstr "Ishina"
-
-#: ../Mozo/MainWindow.py:184
-msgid "Show"
-msgstr "Ukulanga"
-
-#: ../Mozo/MainWindow.py:192
-msgid "Item"
-msgstr "Ichintu"
-
-#: ../data/mozo.desktop.in.in.h:1
-msgid "Change which applications are shown on the main menu"
-msgstr "Ukuchinja ama applications ya kulanga mu menu ikalamba"
-
-#: ../data/mozo.desktop.in.in.h:2 ../data/mozo.glade.h:2
-msgid "Main Menu"
-msgstr "Menu Ikalamba"
-
-#: ../data/mozo.glade.h:1
-msgid "It_ems:"
-msgstr "If_intu"
-
-#: ../data/mozo.glade.h:3
-msgid "Move Down"
-msgstr "Ukuya Panshi"
-
-#: ../data/mozo.glade.h:4
-msgid "Move Up"
-msgstr "Ukuya Pamulu"
-
-#: ../data/mozo.glade.h:5
-msgid "Ne_w Item"
-msgstr "Ichintu Cha Ne_w"
-
-#: ../data/mozo.glade.h:6
-msgid "New _Separator"
-msgstr "_Separator Ya New"
-
-#: ../data/mozo.glade.h:7
-msgid "Restore the default menu layout"
-msgstr "Bushe tubwekeshemo menu kuli filya yalemoneka pakwamba"
-
-#: ../data/mozo.glade.h:8
-msgid "Revert Changes?"
-msgstr "Bushe Tukanse ifya Chinja?"
-
-#: ../data/mozo.glade.h:9
-msgid "Revert all menus to original settings?"
-msgstr "Bushe Tubwekeshemo ama menu yonse kufyo yali pakwamba?"
-
-#: ../data/mozo.glade.h:10
-msgid "_Menus:"
-msgstr "Ama _Menu"
-
-#: ../data/mozo.glade.h:11
-msgid "_New Menu"
-msgstr "Menu ya _New"
-
-#: ../data/mozo.glade.h:12
-msgid "_Revert to Original"
-msgstr "_Ukubwekesha kufyo yali pakwamba"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/en(a)shaw.po new/mozo-1.14.1/po/en(a)shaw.po
--- old/mozo-1.14.0/po/en(a)shaw.po 2016-03-04 17:09:05.000000000 +0100
+++ new/mozo-1.14.1/po/en(a)shaw.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,82 +0,0 @@
-# Shavian translation..
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Thomas Thurman <tthurman(a)mate.org>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: mozo\n"
-"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=mozo&component=general\n"
-"POT-Creation-Date: 2009-09-23 18:39+0000\n"
-"PO-Revision-Date: 2010-05-12 18:35 -0400\n"
-"Last-Translator: Thomas Thurman <tthurman(a)mate.org>\n"
-"Language-Team: Shavian <ubuntu-l10n-en-shaw(a)launchpad.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n!=1;\n"
-
-#: ../Mozo/MainWindow.py:164
-msgid "Name"
-msgstr "𐑯𐑱𐑥"
-
-#: ../Mozo/MainWindow.py:180
-msgid "Show"
-msgstr "𐑖𐑴"
-
-#: ../Mozo/MainWindow.py:188
-msgid "Item"
-msgstr "𐑲𐑑𐑩𐑥"
-
-#: ../data/mozo.desktop.in.in.h:1
-msgid "Change which applications are shown on the main menu"
-msgstr "𐑗𐑱𐑯𐑡 𐑢𐑦𐑗 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟 𐑸 𐑖𐑴𐑯 𐑪𐑯 𐑞 𐑥𐑱𐑯 𐑥𐑧𐑯𐑿"
-
-#: ../data/mozo.desktop.in.in.h:2 ../data/mozo.ui.h:2
-msgid "Main Menu"
-msgstr "𐑥𐑱𐑯 𐑥𐑧𐑯𐑿"
-
-#: ../data/mozo.ui.h:1
-msgid "It_ems:"
-msgstr "𐑲𐑑_𐑩𐑥𐑟:"
-
-#: ../data/mozo.ui.h:3
-msgid "Move Down"
-msgstr "𐑥𐑵𐑝 𐑛𐑬𐑯"
-
-#: ../data/mozo.ui.h:4
-msgid "Move Up"
-msgstr "𐑥𐑵𐑝 𐑳𐑐"
-
-#: ../data/mozo.ui.h:5
-msgid "Ne_w Item"
-msgstr "𐑯_𐑿 𐑲𐑑𐑩𐑥"
-
-#: ../data/mozo.ui.h:6
-msgid "New _Separator"
-msgstr "𐑯𐑿 _𐑕𐑧𐑐𐑼𐑱𐑑𐑼"
-
-#: ../data/mozo.ui.h:7
-msgid "Restore the default menu layout"
-msgstr "𐑮𐑩𐑕𐑑𐑹 𐑞 𐑛𐑦𐑓𐑷𐑤𐑑 𐑥𐑧𐑯𐑿 𐑤𐑱𐑬𐑑"
-
-#: ../data/mozo.ui.h:8
-msgid "Revert Changes?"
-msgstr "𐑮𐑦𐑝𐑻𐑑 𐑗𐑱𐑯𐑡𐑩𐑟?"
-
-#: ../data/mozo.ui.h:9
-msgid "Revert all menus to original settings?"
-msgstr "𐑮𐑦𐑝𐑻𐑑 𐑷𐑤 𐑥𐑧𐑯𐑿𐑟 𐑑 𐑩𐑮𐑦𐑡𐑩𐑯𐑩𐑤 𐑕𐑧𐑑𐑦𐑙𐑟?"
-
-#: ../data/mozo.ui.h:10
-msgid "_Menus:"
-msgstr "_𐑥𐑧𐑯𐑿𐑟:"
-
-#: ../data/mozo.ui.h:11
-msgid "_New Menu"
-msgstr "_𐑯𐑿 𐑥𐑧𐑯𐑿"
-
-#: ../data/mozo.ui.h:12
-msgid "_Revert to Original"
-msgstr "_𐑮𐑦𐑝𐑻𐑑 𐑑 𐑩𐑮𐑦𐑡𐑩𐑯𐑩𐑤"
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/es.po new/mozo-1.14.1/po/es.po
--- old/mozo-1.14.0/po/es.po 2016-04-07 13:42:24.000000000 +0200
+++ new/mozo-1.14.1/po/es.po 2016-06-21 16:53:43.000000000 +0200
@@ -3,7 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Adolfo Jayme Barrientos, 2014
+# Fitoschido, 2014
# Emiliano Fascetti, 2015
# Francisco Javier F. Serrador <serrador(a)cvs.mate.org>, 2006
# Jorge González <jorge.gonzalez.gonzalez(a)hispalinux.es>, 2007
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/es_CL.po new/mozo-1.14.1/po/es_CL.po
--- old/mozo-1.14.0/po/es_CL.po 2016-04-07 13:42:26.000000000 +0200
+++ new/mozo-1.14.1/po/es_CL.po 2016-06-21 16:53:43.000000000 +0200
@@ -4,7 +4,7 @@
#
# Translators:
# David Ríos <drios9420(a)gmail.com>, 2014
-# Pablo Roberto Francisco Lezaeta Reyes <prflr88(a)gmail.com>, 2012
+# Pablo Roberto “Jristz” Lezaeta Reyes <prflr88(a)gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/hi.po new/mozo-1.14.1/po/hi.po
--- old/mozo-1.14.0/po/hi.po 2016-04-07 13:42:21.000000000 +0200
+++ new/mozo-1.14.1/po/hi.po 2016-06-21 16:53:43.000000000 +0200
@@ -4,7 +4,7 @@
#
# Translators:
# Rajesh Ranjan <rajesh672(a)gmail.com>, 2009
-# Rajesh Ranjan <rranjan(a)redhat.com>, 2006
+# Rajesh Ranjan <rajesh672(a)gmail.com>, 2006
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/io.po new/mozo-1.14.1/po/io.po
--- old/mozo-1.14.0/po/io.po 2016-03-04 17:09:05.000000000 +0100
+++ new/mozo-1.14.1/po/io.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,83 +0,0 @@
-# Ido gtk+ po-properties file.
-# Copyright (C) 2007
-# This file is distributed under the same license as the gtk+ package.
-# Michael Terry <mike(a)mterry.name>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: alacart 0.11.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-09-18 19:38-0400\n"
-"PO-Revision-Date: 2007-09-18 22:45-0500\n"
-"Last-Translator: Michael Terry <mike(a)mterry.name>\n"
-"Language-Team: Ido <mate-ido(a)lists.mterry.name>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-
-#: ../Mozo/MainWindow.py:167
-msgid "Name"
-msgstr "Nomo"
-
-#: ../Mozo/MainWindow.py:183
-msgid "Show"
-msgstr "Montrez"
-
-#: ../Mozo/MainWindow.py:191
-msgid "Item"
-msgstr "Elemento"
-
-#: ../mozo.desktop.in.in.h:1
-msgid "Change which applications are shown on the main menu"
-msgstr "Chanjez quin programi montresas en la precipua menuo"
-
-#: ../mozo.desktop.in.in.h:2
-#: ../mozo.glade.h:2
-msgid "Main Menu"
-msgstr "Precipua Menuo"
-
-#: ../mozo.glade.h:1
-msgid "It_ems:"
-msgstr "_Elementi:"
-
-#: ../mozo.glade.h:3
-msgid "Move Down"
-msgstr "Movigez Adinfre"
-
-#: ../mozo.glade.h:4
-msgid "Move Up"
-msgstr "Movigez Adsupre"
-
-#: ../mozo.glade.h:5
-msgid "Ne_w Item"
-msgstr "No_va Elemento"
-
-#: ../mozo.glade.h:6
-msgid "New _Separator"
-msgstr "Nova _Separilo"
-
-#: ../mozo.glade.h:7
-msgid "Restore the default menu layout"
-msgstr "Restaurez la originala menuala traso"
-
-#: ../mozo.glade.h:8
-msgid "Revert Changes?"
-msgstr "Ka Reversionez Chanji?"
-
-#: ../mozo.glade.h:9
-msgid "Revert all menus to original settings?"
-msgstr "Ka reversionez omna menui ad originala situesi?"
-
-#: ../mozo.glade.h:10
-msgid "_Menus:"
-msgstr "_Menui:"
-
-#: ../mozo.glade.h:11
-msgid "_New Menu"
-msgstr "_Nova Menuo"
-
-#: ../mozo.glade.h:12
-msgid "_Revert to Original"
-msgstr "_Reversionez ad Originalajo"
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/pms.po new/mozo-1.14.1/po/pms.po
--- old/mozo-1.14.0/po/pms.po 1970-01-01 01:00:00.000000000 +0100
+++ new/mozo-1.14.1/po/pms.po 2016-06-21 16:53:43.000000000 +0200
@@ -0,0 +1,83 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Randy Ichinose <randyichinose(a)gmail.com>, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: MATE Desktop Environment\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-03-27 23:17+0300\n"
+"PO-Revision-Date: 2016-05-13 11:04+0000\n"
+"Last-Translator: Randy Ichinose <randyichinose(a)gmail.com>\n"
+"Language-Team: Piemontese (http://www.transifex.com/mate/MATE/language/pms/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pms\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../Mozo/MainWindow.py:174
+msgid "Name"
+msgstr "Nòm"
+
+#: ../Mozo/MainWindow.py:190
+msgid "Show"
+msgstr ""
+
+#: ../Mozo/MainWindow.py:198
+msgid "Item"
+msgstr "Oget"
+
+#: ../data/mozo.desktop.in.in.h:1 ../data/mozo.ui.h:2
+msgid "Main Menu"
+msgstr ""
+
+#: ../data/mozo.desktop.in.in.h:2
+msgid "Change which applications are shown on the main menu"
+msgstr ""
+
+#: ../data/mozo.ui.h:1
+msgid "_Revert to Original"
+msgstr ""
+
+#: ../data/mozo.ui.h:3
+msgid "Restore the default menu layout"
+msgstr ""
+
+#: ../data/mozo.ui.h:4
+msgid "_Menus:"
+msgstr ""
+
+#: ../data/mozo.ui.h:5
+msgid "It_ems:"
+msgstr ""
+
+#: ../data/mozo.ui.h:6
+msgid "_New Menu"
+msgstr ""
+
+#: ../data/mozo.ui.h:7
+msgid "Ne_w Item"
+msgstr ""
+
+#: ../data/mozo.ui.h:8
+msgid "New _Separator"
+msgstr ""
+
+#: ../data/mozo.ui.h:9
+msgid "Move Up"
+msgstr ""
+
+#: ../data/mozo.ui.h:10
+msgid "Move Down"
+msgstr ""
+
+#: ../data/mozo.ui.h:11
+msgid "Revert Changes?"
+msgstr ""
+
+#: ../data/mozo.ui.h:12
+msgid "Revert all menus to original settings?"
+msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/uz.po new/mozo-1.14.1/po/uz.po
--- old/mozo-1.14.0/po/uz.po 2016-04-07 13:42:22.000000000 +0200
+++ new/mozo-1.14.1/po/uz.po 2016-06-21 16:53:43.000000000 +0200
@@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# muzaffar habibullayev <muzaffarlearner(a)gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-03-27 23:17+0300\n"
-"PO-Revision-Date: 2012-03-14 13:27+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2016-04-15 13:07+0000\n"
+"Last-Translator: muzaffar habibullayev <muzaffarlearner(a)gmail.com>\n"
"Language-Team: Uzbek (http://www.transifex.com/mate/MATE/language/uz/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -23,60 +24,60 @@
#: ../Mozo/MainWindow.py:190
msgid "Show"
-msgstr ""
+msgstr "Ko'rsatish"
#: ../Mozo/MainWindow.py:198
msgid "Item"
-msgstr ""
+msgstr "Narsa"
#: ../data/mozo.desktop.in.in.h:1 ../data/mozo.ui.h:2
msgid "Main Menu"
-msgstr ""
+msgstr "Asosiy Menyu"
#: ../data/mozo.desktop.in.in.h:2
msgid "Change which applications are shown on the main menu"
-msgstr ""
+msgstr "Asosiy Menyuda ko'rinuvchi dasturlarni o'zgartirish"
#: ../data/mozo.ui.h:1
msgid "_Revert to Original"
-msgstr ""
+msgstr "Asliga _Qaytarish"
#: ../data/mozo.ui.h:3
msgid "Restore the default menu layout"
-msgstr ""
+msgstr "Standart Menyuni tiklash"
#: ../data/mozo.ui.h:4
msgid "_Menus:"
-msgstr ""
+msgstr "_Menyular:"
#: ../data/mozo.ui.h:5
msgid "It_ems:"
-msgstr ""
+msgstr "Na_rsalar:"
#: ../data/mozo.ui.h:6
msgid "_New Menu"
-msgstr ""
+msgstr "_Yangi Menyu"
#: ../data/mozo.ui.h:7
msgid "Ne_w Item"
-msgstr ""
+msgstr "Ya_ngi Narsa"
#: ../data/mozo.ui.h:8
msgid "New _Separator"
-msgstr ""
+msgstr "Yangi _Ajratuvchi"
#: ../data/mozo.ui.h:9
msgid "Move Up"
-msgstr ""
+msgstr "Yuqoriga koʻtarish"
#: ../data/mozo.ui.h:10
msgid "Move Down"
-msgstr ""
+msgstr "Pastga Tushirish"
#: ../data/mozo.ui.h:11
msgid "Revert Changes?"
-msgstr ""
+msgstr "O'zgarishlar qaytarilsinmi?"
#: ../data/mozo.ui.h:12
msgid "Revert all menus to original settings?"
-msgstr ""
+msgstr "Barcha menyular asliga qaytarilsinmi?"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mozo-1.14.0/po/uz(a)cyrillic.po new/mozo-1.14.1/po/uz(a)cyrillic.po
--- old/mozo-1.14.0/po/uz(a)cyrillic.po 2016-03-04 17:09:05.000000000 +0100
+++ new/mozo-1.14.1/po/uz(a)cyrillic.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,81 +0,0 @@
-# translation of mozo.HEAD.po to Uzbek
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Nurali Abdurahmonov <mavnur(a)gmail.com>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: mozo.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-09-05 19:51+0200\n"
-"PO-Revision-Date: 2007-09-05 12:50+0500\n"
-"Last-Translator: Nurali Abdurahmonov <mavnur(a)gmail.com>\n"
-"Language-Team: Uzbek\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: ../Mozo/MainWindow.py:167
-msgid "Name"
-msgstr "Номи"
-
-#: ../Mozo/MainWindow.py:183
-msgid "Show"
-msgstr "Кўрсатиш"
-
-#: ../Mozo/MainWindow.py:191
-msgid "Item"
-msgstr "Элемент"
-
-#: ../mozo.desktop.in.in.h:1
-msgid "Change which applications are shown on the main menu"
-msgstr "Асосий менюда кўрсатиладиган дастурларни ўзгартириш"
-
-#: ../mozo.desktop.in.in.h:2 ../mozo.glade.h:2
-msgid "Main Menu"
-msgstr "Асосий меню"
-
-#: ../mozo.glade.h:1
-msgid "It_ems:"
-msgstr "Эл_ементлар:"
-
-#: ../mozo.glade.h:3
-msgid "Move Down"
-msgstr "Пастга"
-
-#: ../mozo.glade.h:4
-msgid "Move Up"
-msgstr "Юқорига"
-
-#: ../mozo.glade.h:5
-msgid "Ne_w Item"
-msgstr "Янг_и элемент"
-
-#: ../mozo.glade.h:6
-msgid "New _Separator"
-msgstr "Янги _ажратувчи"
-
-#: ../mozo.glade.h:7
-msgid "Restore the default menu layout"
-msgstr "Менюнинг илк кўринишига қайтариш"
-
-#: ../mozo.glade.h:8
-msgid "Revert Changes?"
-msgstr "Ўзгаришлар бекор қилинсинми?"
-
-#: ../mozo.glade.h:9
-msgid "Revert all menus to original settings?"
-msgstr "Ҳамма менюлар асл мосламаларига қайтарилсинми?"
-
-#: ../mozo.glade.h:10
-msgid "_Menus:"
-msgstr "_Менюлар:"
-
-#: ../mozo.glade.h:11
-msgid "_New Menu"
-msgstr "_Янги меню"
-
-#: ../mozo.glade.h:12
-msgid "_Revert to Original"
-msgstr "_Асл ҳолатига қайтариш"
1
0
Hello community,
here is the log from the commit of package ghc-yesod-persistent for openSUSE:Factory checked in at 2016-08-26 23:17:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-yesod-persistent (Old)
and /work/SRC/openSUSE:Factory/.ghc-yesod-persistent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-yesod-persistent"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-yesod-persistent/ghc-yesod-persistent.changes 2016-07-20 09:23:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-yesod-persistent.new/ghc-yesod-persistent.changes 2016-08-26 23:17:34.000000000 +0200
@@ -1,0 +2,5 @@
+Sun Aug 21 17:23:39 UTC 2016 - psimons(a)suse.com
+
+- Update to version 1.4.0.6 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
yesod-persistent-1.4.0.5.tar.gz
New:
----
yesod-persistent-1.4.0.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-yesod-persistent.spec ++++++
--- /var/tmp/diff_new_pack.2NqZ1j/_old 2016-08-26 23:17:35.000000000 +0200
+++ /var/tmp/diff_new_pack.2NqZ1j/_new 2016-08-26 23:17:35.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name yesod-persistent
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.4.0.5
+Version: 1.4.0.6
Release: 0
Summary: Some helpers for using Persistent from Yesod
License: MIT
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-blaze-builder-devel
BuildRequires: ghc-conduit-devel
BuildRequires: ghc-persistent-devel
@@ -44,7 +43,6 @@
BuildRequires: ghc-text-devel
BuildRequires: ghc-wai-extra-devel
%endif
-# End cabal-rpm deps
%description
API docs and the README are available at
@@ -65,20 +63,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ yesod-persistent-1.4.0.5.tar.gz -> yesod-persistent-1.4.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-persistent-1.4.0.5/ChangeLog.md new/yesod-persistent-1.4.0.6/ChangeLog.md
--- old/yesod-persistent-1.4.0.5/ChangeLog.md 2015-11-24 03:34:45.000000000 +0100
+++ new/yesod-persistent-1.4.0.6/ChangeLog.md 2016-08-14 14:42:08.000000000 +0200
@@ -1 +1,3 @@
-No changes logged yet
+## 1.4.0.6
+
+* persistent-2.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-persistent-1.4.0.5/yesod-persistent.cabal new/yesod-persistent-1.4.0.6/yesod-persistent.cabal
--- old/yesod-persistent-1.4.0.5/yesod-persistent.cabal 2016-04-25 17:22:20.000000000 +0200
+++ new/yesod-persistent-1.4.0.6/yesod-persistent.cabal 2016-08-14 14:42:08.000000000 +0200
@@ -1,5 +1,5 @@
name: yesod-persistent
-version: 1.4.0.5
+version: 1.4.0.6
license: MIT
license-file: LICENSE
author: Michael Snoyman <michael(a)snoyman.com>
@@ -16,8 +16,8 @@
library
build-depends: base >= 4 && < 5
, yesod-core >= 1.4.0 && < 1.5
- , persistent >= 2.1 && < 2.6
- , persistent-template >= 2.1 && < 2.6
+ , persistent >= 2.1 && < 2.7
+ , persistent-template >= 2.1 && < 2.7
, transformers >= 0.2.2
, blaze-builder
, conduit
1
0
Hello community,
here is the log from the commit of package ghc-yesod-core for openSUSE:Factory checked in at 2016-08-26 23:17:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-yesod-core (Old)
and /work/SRC/openSUSE:Factory/.ghc-yesod-core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-yesod-core"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-yesod-core/ghc-yesod-core.changes 2016-07-20 09:23:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-yesod-core.new/ghc-yesod-core.changes 2016-08-26 23:17:29.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 17 18:34:36 UTC 2016 - psimons(a)suse.com
+
+- Update to version 1.4.23 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
yesod-core-1.4.22.tar.gz
New:
----
yesod-core-1.4.23.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-yesod-core.spec ++++++
--- /var/tmp/diff_new_pack.RGVvqs/_old 2016-08-26 23:17:31.000000000 +0200
+++ /var/tmp/diff_new_pack.RGVvqs/_new 2016-08-26 23:17:31.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name yesod-core
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.4.22
+Version: 1.4.23
Release: 0
Summary: Creation of type-safe, RESTful web applications
License: MIT
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-aeson-devel
BuildRequires: ghc-auto-update-devel
BuildRequires: ghc-blaze-builder-devel
@@ -87,7 +86,6 @@
BuildRequires: ghc-network-devel
BuildRequires: ghc-streaming-commons-devel
%endif
-# End cabal-rpm deps
%description
API docs and the README are available at
@@ -107,20 +105,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ yesod-core-1.4.22.tar.gz -> yesod-core-1.4.23.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/ChangeLog.md new/yesod-core-1.4.23/ChangeLog.md
--- old/yesod-core-1.4.22/ChangeLog.md 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/ChangeLog.md 2016-08-10 14:21:43.000000000 +0200
@@ -1,3 +1,8 @@
+## 1.4.23
+
+* urlParamRenderOverride method for Yesod class [#1257](https://github.com/yesodweb/yesod/pull/1257)
+* Add laxSameSiteSessions and strictSameSiteSessions [#1226](https://github.com/yesodweb/yesod/pull/1226)
+
## 1.4.22
* Proper handling of impure exceptions within `HandlerError` values
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Class/Dispatch.hs new/yesod-core-1.4.23/Yesod/Core/Class/Dispatch.hs
--- old/yesod-core-1.4.22/Yesod/Core/Class/Dispatch.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Class/Dispatch.hs 2016-08-10 14:21:43.000000000 +0200
@@ -1,7 +1,6 @@
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleContexts #-}
@@ -25,10 +24,9 @@
-> W.Application
instance YesodSubDispatch WaiSubsite master where
- yesodSubDispatch YesodSubRunnerEnv {..} req =
- app req
+ yesodSubDispatch YesodSubRunnerEnv {..} = app
where
- WaiSubsite app = ysreGetSub $ yreSite $ ysreParentEnv
+ WaiSubsite app = ysreGetSub $ yreSite ysreParentEnv
-- | A helper function for creating YesodSubDispatch instances, used by the
-- internal generated code. This function has been exported since 1.4.11.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Class/Yesod.hs new/yesod-core-1.4.23/Yesod/Core/Class/Yesod.hs
--- old/yesod-core-1.4.22/Yesod/Core/Class/Yesod.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Class/Yesod.hs 2016-08-10 14:21:43.000000000 +0200
@@ -5,26 +5,28 @@
{-# LANGUAGE CPP #-}
module Yesod.Core.Class.Yesod where
-import Control.Monad.Logger (logErrorS)
import Yesod.Core.Content
import Yesod.Core.Handler
import Yesod.Routes.Class
-import Blaze.ByteString.Builder (Builder)
-import Blaze.ByteString.Builder.Char.Utf8 (fromText)
+import Blaze.ByteString.Builder (Builder, toByteString)
+import Blaze.ByteString.Builder.ByteString (copyByteString)
+import Blaze.ByteString.Builder.Char.Utf8 (fromText, fromChar)
import Control.Arrow ((***), second)
import Control.Exception (bracket)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative ((<$>))
+#endif
import Control.Monad (forM, when, void)
import Control.Monad.IO.Class (MonadIO (liftIO))
import Control.Monad.Logger (LogLevel (LevelInfo, LevelOther),
- LogSource)
+ LogSource, logErrorS)
import Control.Monad.Trans.Resource (InternalState, createInternalState, closeInternalState)
import qualified Data.ByteString.Char8 as S8
import qualified Data.ByteString.Lazy as L
import Data.Aeson (object, (.=))
-import Data.List (foldl')
-import Data.List (nub)
+import Data.List (foldl', nub)
import qualified Data.Map as Map
import Data.Monoid
import Data.Text (Text)
@@ -35,7 +37,7 @@
import Data.Text.Lazy.Encoding (encodeUtf8)
import Data.Word (Word64)
import Language.Haskell.TH.Syntax (Loc (..))
-import Network.HTTP.Types (encodePath)
+import Network.HTTP.Types (encodePath, renderQueryText)
import qualified Network.Wai as W
import Data.Default (def)
import Network.Wai.Parse (lbsBackEnd,
@@ -43,14 +45,14 @@
import Network.Wai.Logger (ZonedDate, clockDateCacher)
import System.Log.FastLogger
import Text.Blaze (customAttribute, textTag,
- toValue, (!))
-import Text.Blaze (preEscapedToMarkup)
+ toValue, (!),
+ preEscapedToMarkup)
import qualified Text.Blaze.Html5 as TBH
import Text.Hamlet
import Text.Julius
import qualified Web.ClientSession as CS
-import Web.Cookie (parseCookies)
-import Web.Cookie (SetCookie (..))
+import Web.Cookie (SetCookie (..), parseCookies, sameSiteLax,
+ sameSiteStrict, SameSiteOption)
import Yesod.Core.Types
import Yesod.Core.Internal.Session
import Yesod.Core.Widget
@@ -107,6 +109,28 @@
urlRenderOverride :: site -> Route site -> Maybe Builder
urlRenderOverride _ _ = Nothing
+ -- | Override the rendering function for a particular URL and query string
+ -- parameters. One use case for this is to offload static hosting to a
+ -- different domain name to avoid sending cookies.
+ --
+ -- For backward compatibility default implementation is in terms of
+ -- 'urlRenderOverride', probably ineffective
+ --
+ -- Since 1.4.23
+ urlParamRenderOverride :: site
+ -> Route site
+ -> [(T.Text, T.Text)] -- ^ query string
+ -> Maybe Builder
+ urlParamRenderOverride y route params = addParams params <$> urlRenderOverride y route
+ where
+ addParams [] routeBldr = routeBldr
+ addParams nonEmptyParams routeBldr =
+ let routeBS = toByteString routeBldr
+ qsSeparator = fromChar $ if S8.elem '?' routeBS then '&' else '?'
+ valueToMaybe t = if t == "" then Nothing else Just t
+ queryText = map (id *** valueToMaybe) nonEmptyParams
+ in copyByteString routeBS `mappend` qsSeparator `mappend` renderQueryText False queryText
+
-- | Determine if a request is authorized or not.
--
-- Return 'Authorized' if the request is authorized,
@@ -237,7 +261,7 @@
--
-- Default: Uses clientsession with a 2 hour timeout.
makeSessionBackend :: site -> IO (Maybe SessionBackend)
- makeSessionBackend _ = fmap Just $ defaultClientSessionBackend 120 CS.defaultKeyFile
+ makeSessionBackend _ = Just <$> defaultClientSessionBackend 120 CS.defaultKeyFile
-- | How to store uploaded files.
--
@@ -290,6 +314,7 @@
yesodWithInternalState :: site -> Maybe (Route site) -> (InternalState -> IO a) -> IO a
yesodWithInternalState _ _ = bracket createInternalState closeInternalState
{-# INLINE yesodWithInternalState #-}
+{-# DEPRECATED urlRenderOverride "Use urlParamRenderOverride instead" #-}
-- | Default implementation of 'makeLogger'. Sends to stdout and
-- automatically flushes on each write.
@@ -362,6 +387,34 @@
setSecureBit cookie = cookie { setCookieSecure = True }
secureSessionCookies = customizeSessionCookies setSecureBit
+-- | Helps defend against CSRF attacks by setting the SameSite attribute on
+-- session cookies to Lax. With the Lax setting, the cookie will be sent with same-site
+-- requests, and with cross-site top-level navigations.
+--
+-- This option is liable to change in future versions of Yesod as the spec evolves.
+-- View more information <https://datatracker.ietf.org/doc/draft-west-first-party-cookies/ here>.
+--
+-- @since 1.4.23
+laxSameSiteSessions :: IO (Maybe SessionBackend) -> IO (Maybe SessionBackend)
+laxSameSiteSessions = sameSiteSession sameSiteLax
+
+-- | Helps defend against CSRF attacks by setting the SameSite attribute on
+-- session cookies to Strict. With the Strict setting, the cookie will only be
+-- sent with same-site requests.
+--
+-- This option is liable to change in future versions of Yesod as the spec evolves.
+-- View more information <https://datatracker.ietf.org/doc/draft-west-first-party-cookies/ here>.
+--
+-- @since 1.4.23
+strictSameSiteSessions :: IO (Maybe SessionBackend) -> IO (Maybe SessionBackend)
+strictSameSiteSessions = sameSiteSession sameSiteStrict
+
+sameSiteSession :: SameSiteOption -> IO (Maybe SessionBackend) -> IO (Maybe SessionBackend)
+sameSiteSession s = (fmap . fmap) secureSessionCookies
+ where
+ sameSite cookie = cookie { setCookieSameSite = Just s }
+ secureSessionCookies = customizeSessionCookies sameSite
+
-- | Apply a Strict-Transport-Security header with the specified timeout to
-- all responses so that browsers will rewrite all http links to https
-- until the timeout expires. For security, the max-age of the STS header
@@ -388,8 +441,7 @@
--
-- Since 1.2.0
authorizationCheck :: Yesod site => HandlerT site IO ()
-authorizationCheck = do
- getCurrentRoute >>= maybe (return ()) checkUrl
+authorizationCheck = getCurrentRoute >>= maybe (return ()) checkUrl
where
checkUrl url = do
isWrite <- isWriteRequest url
@@ -399,21 +451,21 @@
AuthenticationRequired -> do
master <- getYesod
case authRoute master of
- Nothing -> void $ notAuthenticated
- Just url' -> do
+ Nothing -> void notAuthenticated
+ Just url' ->
void $ selectRep $ do
provideRepType typeHtml $ do
setUltDestCurrent
void $ redirect url'
provideRepType typeJson $
- void $ notAuthenticated
+ void notAuthenticated
Unauthorized s' -> permissionDenied s'
-- | Calls 'csrfCheckMiddleware' with 'isWriteRequest', 'defaultCsrfHeaderName', and 'defaultCsrfParamName' as parameters.
--
-- Since 1.4.14
defaultCsrfCheckMiddleware :: Yesod site => HandlerT site IO res -> HandlerT site IO res
-defaultCsrfCheckMiddleware handler = do
+defaultCsrfCheckMiddleware handler =
csrfCheckMiddleware
handler
(getCurrentRoute >>= maybe (return False) isWriteRequest)
@@ -455,6 +507,18 @@
--
-- For details, see the "AJAX CSRF protection" section of "Yesod.Core.Handler".
--
+-- You can add this chain this middleware together with other middleware like so:
+--
+-- @
+-- 'yesodMiddleware' = 'defaultYesodMiddleware' . 'defaultCsrfMiddleware'
+-- @
+--
+-- or:
+--
+-- @
+-- 'yesodMiddleware' app = 'defaultYesodMiddleware' $ 'defaultCsrfMiddleware' $ app
+-- @
+--
-- Since 1.4.14
defaultCsrfMiddleware :: Yesod site => HandlerT site IO res -> HandlerT site IO res
defaultCsrfMiddleware = defaultCsrfSetCookieMiddleware . defaultCsrfCheckMiddleware
@@ -592,12 +656,9 @@
-- The client will just use the authentication_url in the JSON
site <- getYesod
rend <- getUrlRender
- return $ object $ [
- "message" .= ("Not logged in"::Text)
- ] ++
- case authRoute site of
- Nothing -> []
- Just url -> ["authentication_url" .= rend url]
+ let apair u = ["authentication_url" .= rend u]
+ content = maybe [] apair (authRoute site)
+ return $ object $ ("message" .= ("Not logged in"::Text)):content
defaultErrorHandler (PermissionDenied msg) = selectRep $ do
provideRep $ defaultLayout $ do
@@ -607,9 +668,7 @@
<p>#{msg}
|]
provideRep $
- return $ object $ [
- "message" .= ("Permission Denied. " <> msg)
- ]
+ return $ object ["message" .= ("Permission Denied. " <> msg)]
defaultErrorHandler (InvalidArgs ia) = selectRep $ do
provideRep $ defaultLayout $ do
@@ -641,8 +700,8 @@
provideRep $ return $ object ["message" .= ("Bad method" :: Text), "method" .= TE.decodeUtf8With TEE.lenientDecode m]
asyncHelper :: (url -> [x] -> Text)
- -> [Script (url)]
- -> Maybe (JavascriptUrl (url))
+ -> [Script url]
+ -> Maybe (JavascriptUrl url)
-> Maybe Text
-> (Maybe (HtmlUrl url), [Text])
asyncHelper render scripts jscript jsLoc =
@@ -732,8 +791,7 @@
-> IO SessionBackend
defaultClientSessionBackend minutes fp = do
key <- CS.getKey fp
- let timeout = fromIntegral (minutes * 60)
- (getCachedDate, _closeDateCacher) <- clientSessionDateCacher timeout
+ (getCachedDate, _closeDateCacher) <- clientSessionDateCacher (minToSec minutes)
return $ clientSessionBackend key getCachedDate
-- | Create a @SessionBackend@ which reads the session key from the named
@@ -759,10 +817,12 @@
-> IO SessionBackend
envClientSessionBackend minutes name = do
key <- CS.getKeyEnv name
- let timeout = fromIntegral (minutes * 60)
- (getCachedDate, _closeDateCacher) <- clientSessionDateCacher timeout
+ (getCachedDate, _closeDateCacher) <- clientSessionDateCacher $ minToSec minutes
return $ clientSessionBackend key getCachedDate
+minToSec :: (Integral a, Num b) => a -> b
+minToSec minutes = fromIntegral (minutes * 60)
+
jsToHtml :: Javascript -> Html
jsToHtml (Javascript b) = preEscapedToMarkup $ toLazyText b
@@ -818,8 +878,14 @@
-- turn the TH Loc loaction information into a human readable string
-- leaving out the loc_end parameter
fileLocationToString :: Loc -> String
-fileLocationToString loc = (loc_package loc) ++ ':' : (loc_module loc) ++
- ' ' : (loc_filename loc) ++ ':' : (line loc) ++ ':' : (char loc)
+fileLocationToString loc =
+ concat
+ [ loc_package loc
+ , ':' : loc_module loc
+ , ' ' : loc_filename loc
+ , ':' : line loc
+ , ':' : char loc
+ ]
where
line = show . fst . loc_start
char = show . snd . loc_start
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Content.hs new/yesod-core-1.4.23/Yesod/Core/Content.hs
--- old/yesod-core-1.4.22/Yesod/Core/Content.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Content.hs 2016-08-10 14:21:43.000000000 +0200
@@ -53,8 +53,6 @@
import qualified Data.ByteString.Lazy as L
import Data.Text.Lazy (Text, pack)
import qualified Data.Text as T
-import Control.Monad (liftM)
-
import Blaze.ByteString.Builder (Builder, fromByteString, fromLazyByteString)
#if __GLASGOW_HASKELL__ < 710
import Data.Monoid (mempty)
@@ -62,6 +60,7 @@
import Text.Hamlet (Html)
import Text.Blaze.Html.Renderer.Utf8 (renderHtmlBuilder)
import Data.Conduit (Source, Flush (Chunk), ResumableSource, mapOutput)
+import Control.Monad (liftM)
import Control.Monad.Trans.Resource (ResourceT)
import Data.Conduit.Internal (ResumableSource (ResumableSource))
import qualified Data.Conduit.Internal as CI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Dispatch.hs new/yesod-core-1.4.23/Yesod/Core/Dispatch.hs
--- old/yesod-core-1.4.22/Yesod/Core/Dispatch.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Dispatch.hs 2016-08-10 14:21:43.000000000 +0200
@@ -85,7 +85,7 @@
sb <- makeSessionBackend site
gen <- MWC.createSystemRandom
getMaxExpires <- getGetMaxExpires
- return $ toWaiAppYre $ YesodRunnerEnv
+ return $ toWaiAppYre YesodRunnerEnv
{ yreLogger = logger
, yreSite = site
, yreSessionBackend = sb
@@ -119,8 +119,8 @@
dest' =
if S.null (W.rawQueryString env)
then dest
- else (dest `mappend`
- Blaze.ByteString.Builder.fromByteString (W.rawQueryString env))
+ else dest `mappend`
+ Blaze.ByteString.Builder.fromByteString (W.rawQueryString env)
-- | Same as 'toWaiAppPlain', but provides a default set of middlewares. This
-- set may change with future releases, but currently covers:
@@ -184,7 +184,7 @@
$(qLocation >>= liftLoc)
"yesod-core"
LevelError
- (toLogStr $ "Exception from Warp: " ++ show e)) $
+ (toLogStr $ "Exception from Warp: " ++ show e))
Network.Wai.Handler.Warp.defaultSettings)
where
shouldLog' = Network.Wai.Handler.Warp.defaultShouldDisplayException
@@ -231,7 +231,7 @@
warpEnv site = do
env <- getEnvironment
case lookup "PORT" env of
- Nothing -> error $ "warpEnv: no PORT environment variable found"
+ Nothing -> error "warpEnv: no PORT environment variable found"
Just portS ->
case readMay portS of
Nothing -> error $ "warpEnv: invalid PORT environment variable: " ++ show portS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Handler.hs new/yesod-core-1.4.23/Yesod/Core/Handler.hs
--- old/yesod-core-1.4.22/Yesod/Core/Handler.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Handler.hs 2016-08-10 14:21:43.000000000 +0200
@@ -189,10 +189,10 @@
import Data.Monoid (mempty, mappend)
#endif
import Control.Applicative ((<|>))
-import Control.Exception (evaluate, SomeException)
+import Control.Exception (evaluate, SomeException, throwIO)
import Control.Exception.Lifted (handle)
-import Control.Monad (liftM, void)
+import Control.Monad (void, liftM, unless)
import qualified Control.Monad.Trans.Writer as Writer
import Control.Monad.IO.Class (MonadIO, liftIO)
@@ -235,24 +235,19 @@
import Yesod.Core.Class.Handler
import Yesod.Core.Types
import Yesod.Routes.Class (Route)
-import Control.Exception (throwIO)
-import Blaze.ByteString.Builder (Builder)
-import Safe (headMay)
-import Data.CaseInsensitive (CI)
+import Blaze.ByteString.Builder (Builder)
+import Safe (headMay)
+import Data.CaseInsensitive (CI)
import qualified Data.Conduit.List as CL
-import Control.Monad (unless)
-import Control.Monad.Trans.Resource (MonadResource, InternalState, runResourceT, withInternalState, getInternalState, liftResourceT, resourceForkIO
- )
+import Control.Monad.Trans.Resource (MonadResource, InternalState, runResourceT, withInternalState, getInternalState, liftResourceT, resourceForkIO)
import qualified System.PosixCompat.Files as PC
-import Control.Monad.Trans.Control (control, MonadBaseControl)
-import Data.Conduit (Source, transPipe, Flush (Flush), yield, Producer
- , Sink
- )
+import Control.Monad.Trans.Control (control, MonadBaseControl)
+import Data.Conduit (Source, transPipe, Flush (Flush), yield, Producer, Sink)
import qualified Yesod.Core.TypeCache as Cache
import qualified Data.Word8 as W8
import qualified Data.Foldable as Fold
-import Data.Default
-import Control.Monad.Logger (MonadLogger, logWarnS)
+import Data.Default
+import Control.Monad.Logger (MonadLogger, logWarnS)
get :: MonadHandler m => m GHState
get = liftHandlerT $ HandlerT $ I.readIORef . handlerState
@@ -305,7 +300,7 @@
-> W.Request
-> IO ([(Text, Text)], [(Text, FileInfo)])
rbHelper' backend mkFI req =
- (map fix1 *** mapMaybe fix2) <$> (NWP.parseRequestBody backend req)
+ (map fix1 *** mapMaybe fix2) <$> NWP.parseRequestBody backend req
where
fix1 = go *** go
fix2 (x, NWP.FileInfo a' b c)
@@ -324,29 +319,29 @@
-- | Get the master site application argument.
getYesod :: MonadHandler m => m (HandlerSite m)
-getYesod = rheSite `liftM` askHandlerEnv
+getYesod = rheSite <$> askHandlerEnv
-- | Get a specific component of the master site application argument.
-- Analogous to the 'gets' function for operating on 'StateT'.
getsYesod :: MonadHandler m => (HandlerSite m -> a) -> m a
-getsYesod f = (f . rheSite) `liftM` askHandlerEnv
+getsYesod f = (f . rheSite) <$> askHandlerEnv
-- | Get the URL rendering function.
getUrlRender :: MonadHandler m => m (Route (HandlerSite m) -> Text)
getUrlRender = do
- x <- rheRender `liftM` askHandlerEnv
+ x <- rheRender <$> askHandlerEnv
return $ flip x []
-- | The URL rendering function with query-string parameters.
getUrlRenderParams
:: MonadHandler m
=> m (Route (HandlerSite m) -> [(Text, Text)] -> Text)
-getUrlRenderParams = rheRender `liftM` askHandlerEnv
+getUrlRenderParams = rheRender <$> askHandlerEnv
-- | Get the route requested by the user. If this is a 404 response- where the
-- user requested an invalid route- this function will return 'Nothing'.
getCurrentRoute :: MonadHandler m => m (Maybe (Route (HandlerSite m)))
-getCurrentRoute = rheRoute `liftM` askHandlerEnv
+getCurrentRoute = rheRoute <$> askHandlerEnv
-- | Returns a function that runs 'HandlerT' actions inside @IO@.
--
@@ -487,7 +482,7 @@
case route of
Nothing -> return ()
Just r -> do
- gets' <- reqGetParams `liftM` getRequest
+ gets' <- reqGetParams <$> getRequest
setUltDest (r, gets')
-- | Sets the ultimate destination to the referer request header, if present.
@@ -541,7 +536,7 @@
addMsg = maybe msg' (S.append msg' . S.cons W8._nul)
msg' = S.append
(encodeUtf8 status)
- (W8._nul `S.cons` (L.toStrict $ renderHtml msg))
+ (W8._nul `S.cons` L.toStrict (renderHtml msg))
-- | Adds a message in the user's session but uses RenderMessage to allow for i18n
--
@@ -568,7 +563,7 @@
where
enlist = pairup . S.split W8._nul
pairup [] = []
- pairup [x] = []
+ pairup [_] = []
pairup (s:v:xs) = (decode s, preEscapedToHtml (decode v)) : pairup xs
decode = decodeUtf8With lenientDecode
@@ -584,7 +579,7 @@
-- | Gets just the last message in the user's session,
-- discards the rest and the status
getMessage :: MonadHandler m => m (Maybe Html)
-getMessage = (return . fmap snd . headMay) =<< getMessages
+getMessage = fmap (fmap snd . headMay) getMessages
-- | Bypass remaining handler code and output the given file.
--
@@ -657,7 +652,7 @@
-> m a
sendRawResponseNoConduit raw = control $ \runInIO ->
liftIO $ throwIO $ HCWai $ flip W.responseRaw fallback
- $ \src sink -> runInIO (raw src sink) >> return ()
+ $ \src sink -> void $ runInIO (raw src sink)
where
fallback = W.responseLBS H.status500 [("Content-Type", "text/plain")]
"sendRawResponse: backend does not support raw responses"
@@ -672,7 +667,7 @@
-> m a
sendRawResponse raw = control $ \runInIO ->
liftIO $ throwIO $ HCWai $ flip W.responseRaw fallback
- $ \src sink -> runInIO (raw (src' src) (CL.mapM_ sink)) >> return ()
+ $ \src sink -> void $ runInIO $ raw (src' src) (CL.mapM_ sink)
where
fallback = W.responseLBS H.status500 [("Content-Type", "text/plain")]
"sendRawResponse: backend does not support raw responses"
@@ -901,17 +896,17 @@
-- | Lookup for session data.
lookupSession :: MonadHandler m => Text -> m (Maybe Text)
-lookupSession = (liftM . fmap) (decodeUtf8With lenientDecode) . lookupSessionBS
+lookupSession = (fmap . fmap) (decodeUtf8With lenientDecode) . lookupSessionBS
-- | Lookup for session data in binary format.
lookupSessionBS :: MonadHandler m => Text -> m (Maybe S.ByteString)
lookupSessionBS n = do
- m <- liftM ghsSession get
+ m <- fmap ghsSession get
return $ Map.lookup n m
-- | Get all session variables.
getSession :: MonadHandler m => m SessionMap
-getSession = liftM ghsSession get
+getSession = fmap ghsSession get
-- | Get a unique identifier.
newIdent :: MonadHandler m => m Text
@@ -976,13 +971,13 @@
-- | Get the request\'s 'W.Request' value.
waiRequest :: MonadHandler m => m W.Request
-waiRequest = reqWaiRequest `liftM` getRequest
+waiRequest = reqWaiRequest <$> getRequest
getMessageRender :: (MonadHandler m, RenderMessage (HandlerSite m) message)
=> m (message -> Text)
getMessageRender = do
env <- askHandlerEnv
- l <- reqLangs `liftM` getRequest
+ l <- reqLangs <$> getRequest
return $ renderMessage (rheSite env) l
-- | Use a per-request cache to avoid performing the same action multiple times.
@@ -1045,7 +1040,7 @@
--
-- This is handled by parseWaiRequest (not exposed).
languages :: MonadHandler m => m [Text]
-languages = reqLangs `liftM` getRequest
+languages = reqLangs <$> getRequest
lookup' :: Eq a => a -> [(a, b)] -> [b]
lookup' a = map snd . filter (\x -> a == fst x)
@@ -1054,7 +1049,7 @@
--
-- Since 1.2.2
lookupHeader :: MonadHandler m => CI S8.ByteString -> m (Maybe S8.ByteString)
-lookupHeader = liftM listToMaybe . lookupHeaders
+lookupHeader = fmap listToMaybe . lookupHeaders
-- | Lookup a request header.
--
@@ -1069,11 +1064,9 @@
--
-- Since 1.4.9
lookupBasicAuth :: (MonadHandler m) => m (Maybe (Text, Text))
-lookupBasicAuth = fmap (>>= getBA)
- (lookupHeader "Authorization")
+lookupBasicAuth = fmap (>>= getBA) (lookupHeader "Authorization")
where
- getBA bs = (\(x, y) -> ( decodeUtf8With lenientDecode x
- , decodeUtf8With lenientDecode y))
+ getBA bs = (decodeUtf8With lenientDecode *** decodeUtf8With lenientDecode)
<$> extractBasicAuth bs
-- | Lookup bearer authentication datafrom __Authorization__ header of
@@ -1096,7 +1089,7 @@
-- | Lookup for GET parameters.
lookupGetParam :: MonadHandler m => Text -> m (Maybe Text)
-lookupGetParam = liftM listToMaybe . lookupGetParams
+lookupGetParam = fmap listToMaybe . lookupGetParams
-- | Lookup for POST parameters.
lookupPostParams :: (MonadResource m, MonadHandler m) => Text -> m [Text]
@@ -1107,13 +1100,13 @@
lookupPostParam :: (MonadResource m, MonadHandler m)
=> Text
-> m (Maybe Text)
-lookupPostParam = liftM listToMaybe . lookupPostParams
+lookupPostParam = fmap listToMaybe . lookupPostParams
-- | Lookup for POSTed files.
lookupFile :: (MonadHandler m, MonadResource m)
=> Text
-> m (Maybe FileInfo)
-lookupFile = liftM listToMaybe . lookupFiles
+lookupFile = fmap listToMaybe . lookupFiles
-- | Lookup for POSTed files.
lookupFiles :: (MonadHandler m, MonadResource m)
@@ -1125,7 +1118,7 @@
-- | Lookup for cookie data.
lookupCookie :: MonadHandler m => Text -> m (Maybe Text)
-lookupCookie = liftM listToMaybe . lookupCookies
+lookupCookie = fmap listToMaybe . lookupCookies
-- | Lookup for cookie data.
lookupCookies :: MonadHandler m => Text -> m [Text]
@@ -1160,7 +1153,7 @@
selectRep w = do
-- the content types are already sorted by q values
-- which have been stripped
- cts <- liftM reqAccept getRequest
+ cts <- fmap reqAccept getRequest
case mapMaybe tryAccept cts of
[] ->
@@ -1175,8 +1168,7 @@
explainUnaccepted :: Text
explainUnaccepted = "no match found for accept header"
- returnRep (ProvidedRep ct mcontent) =
- mcontent >>= return . TypedContent ct
+ returnRep (ProvidedRep ct mcontent) = fmap (TypedContent ct) mcontent
reps = appEndo (Writer.execWriter w) []
@@ -1235,7 +1227,7 @@
-> m a
-> Writer.Writer (Endo [ProvidedRep m]) ()
provideRepType ct handler =
- Writer.tell $ Endo $ (ProvidedRep ct (liftM toContent handler):)
+ Writer.tell $ Endo (ProvidedRep ct (liftM toContent handler):)
-- | Stream in the raw request body without any parsing.
--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Internal/Request.hs new/yesod-core-1.4.23/Yesod/Core/Internal/Request.hs
--- old/yesod-core-1.4.22/Yesod/Core/Internal/Request.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Internal/Request.hs 2016-08-10 14:21:43.000000000 +0200
@@ -1,5 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE OverloadedStrings, CPP #-}
module Yesod.Core.Internal.Request
( parseWaiRequest
, RequestBodyContents
@@ -37,7 +36,7 @@
import Data.Conduit
import Data.Conduit.List (sourceList)
import Data.Conduit.Binary (sourceFile, sinkFile)
-import Data.Word (Word64)
+import Data.Word (Word8, Word64)
import Control.Monad.Trans.Resource (runResourceT, ResourceT)
import Control.Exception (throwIO)
import Control.Monad ((<=<), liftM)
@@ -47,7 +46,6 @@
import qualified System.Random.MWC as MWC
import Control.Monad.Primitive (PrimMonad, PrimState)
import qualified Data.Vector.Storable as V
-import Data.Word (Word8)
import Data.ByteString.Internal (ByteString (PS))
import qualified Data.Word8 as Word8
@@ -78,7 +76,7 @@
-> SessionMap
-> Bool
-> Maybe Word64 -- ^ max body size
- -> (Either (IO YesodRequest) (MWC.GenIO -> IO YesodRequest))
+ -> Either (IO YesodRequest) (MWC.GenIO -> IO YesodRequest)
parseWaiRequest env session useToken mmaxBodySize =
-- In most cases, we won't need to generate any random values. Therefore,
-- we split our results: if we need a random generator, return a Right
@@ -147,7 +145,7 @@
addTwoLetters :: ([Text] -> [Text], Set.Set Text) -> [Text] -> [Text]
addTwoLetters (toAdd, exist) [] =
- filter (flip Set.notMember exist) $ toAdd []
+ filter (`Set.notMember` exist) $ toAdd []
addTwoLetters (toAdd, exist) (l:ls) =
l : addTwoLetters (toAdd', exist') ls
where
@@ -177,7 +175,8 @@
{-# INLINE fromByteVector #-}
mkFileInfoLBS :: Text -> Text -> L.ByteString -> FileInfo
-mkFileInfoLBS name ct lbs = FileInfo name ct (sourceList $ L.toChunks lbs) (\fp -> L.writeFile fp lbs)
+mkFileInfoLBS name ct lbs =
+ FileInfo name ct (sourceList $ L.toChunks lbs) (`L.writeFile` lbs)
mkFileInfoFile :: Text -> Text -> FilePath -> FileInfo
mkFileInfoFile name ct fp = FileInfo name ct (sourceFile fp) (\dst -> runResourceT $ sourceFile fp $$ sinkFile dst)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Internal/Response.hs new/yesod-core-1.4.23/Yesod/Core/Internal/Response.hs
--- old/yesod-core-1.4.22/Yesod/Core/Internal/Response.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Internal/Response.hs 2016-08-10 14:21:43.000000000 +0200
@@ -1,19 +1,15 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE PatternGuards #-}
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE TemplateHaskell #-}
module Yesod.Core.Internal.Response where
-import Blaze.ByteString.Builder (toByteString)
import Data.ByteString (ByteString)
import qualified Data.ByteString as S
import qualified Data.ByteString.Char8 as S8
import Data.CaseInsensitive (CI)
import qualified Data.CaseInsensitive as CI
import Network.Wai
-import Data.Conduit (transPipe)
+import Control.Monad (mplus)
import Control.Monad.Trans.Resource (runInternalState, InternalState)
import Network.Wai.Internal
#if !MIN_VERSION_base(4, 6, 0)
@@ -26,12 +22,12 @@
import qualified Data.Text as T
import Control.Exception (SomeException, handle)
import Blaze.ByteString.Builder (fromLazyByteString,
- toLazyByteString)
+ toLazyByteString, toByteString)
import qualified Data.ByteString.Lazy as L
import qualified Data.Map as Map
import Yesod.Core.Internal.Request (tokenKey)
import Data.Text.Encoding (encodeUtf8)
-import Data.Conduit (Flush (..), ($$))
+import Data.Conduit (Flush (..), ($$), transPipe)
import qualified Data.Conduit.List as CL
yarToResponse :: YesodResponse
@@ -58,11 +54,10 @@
let go (ContentBuilder b mlen) = do
let hs' = maybe finalHeaders finalHeaders' mlen
sendResponse $ ResponseBuilder s hs' b
- go (ContentFile fp p) = do
- sendResponse $ ResponseFile s finalHeaders fp p
+ go (ContentFile fp p) = sendResponse $ ResponseFile s finalHeaders fp p
go (ContentSource body) = sendResponse $ responseStream s finalHeaders
- $ \sendChunk flush -> do
- transPipe (flip runInternalState is) body
+ $ \sendChunk flush ->
+ transPipe (`runInternalState` is) body
$$ CL.mapM_ (\mchunk ->
case mchunk of
Flush -> flush
@@ -91,7 +86,7 @@
headerToPair :: Header
-> (CI ByteString, ByteString)
headerToPair (AddCookie sc) =
- ("Set-Cookie", toByteString $ renderSetCookie $ sc)
+ ("Set-Cookie", toByteString $ renderSetCookie sc)
headerToPair (DeleteCookie key path) =
( "Set-Cookie"
, S.concat
@@ -107,7 +102,7 @@
evaluateContent (ContentBuilder b mlen) = handle f $ do
let lbs = toLazyByteString b
len = L.length lbs
- mlen' = maybe (Just $ fromIntegral len) Just mlen
+ mlen' = mlen `mplus` Just (fromIntegral len)
len `seq` return (Right $ ContentBuilder (fromLazyByteString lbs) mlen')
where
f :: SomeException -> IO (Either ErrorResponse Content)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Internal/Run.hs new/yesod-core-1.4.23/Yesod/Core/Internal/Run.hs
--- old/yesod-core-1.4.22/Yesod/Core/Internal/Run.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Internal/Run.hs 2016-08-10 14:21:43.000000000 +0200
@@ -11,6 +11,7 @@
#if __GLASGOW_HASKELL__ < 710
import Data.Monoid (Monoid, mempty)
+import Control.Applicative ((<$>))
#endif
import Yesod.Core.Internal.Response
import Blaze.ByteString.Builder (toByteString)
@@ -102,7 +103,7 @@
(\e ->
case fromException e of
Just e' -> return e'
- Nothing -> fmap HCError $ toErrorHandler e)
+ Nothing -> HCError <$> toErrorHandler e)
-- Get the raw state and return
state <- I.readIORef istate
@@ -330,7 +331,7 @@
| otherwise = do
let dontSaveSession _ = return []
(session, saveSession) <- liftIO $
- maybe (return (Map.empty, dontSaveSession)) (\sb -> sbLoadSession sb req) yreSessionBackend
+ maybe (return (Map.empty, dontSaveSession)) (`sbLoadSession` req) yreSessionBackend
maxExpires <- yreGetMaxExpires
let mkYesodReq = parseWaiRequest req session (isJust yreSessionBackend) mmaxLen
let yreq =
@@ -375,7 +376,7 @@
fromMaybe
(joinPath y ar ps
$ params ++ params')
- (urlRenderOverride y url)
+ (urlParamRenderOverride y url params)
where
(ps, params') = renderRoute url
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Internal/Session.hs new/yesod-core-1.4.23/Yesod/Core/Internal/Session.hs
--- old/yesod-core-1.4.22/Yesod/Core/Internal/Session.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Internal/Session.hs 2016-08-10 14:21:43.000000000 +0200
@@ -11,11 +11,9 @@
import Data.Serialize
import Data.Time
import Data.ByteString (ByteString)
-import Control.Concurrent (forkIO, killThread, threadDelay)
-import Control.Monad (forever, guard)
+import Control.Monad (guard)
import Yesod.Core.Types
import Yesod.Core.Internal.Util
-import qualified Data.IORef as I
import Control.AutoUpdate
encodeClientSession :: CS.Key
@@ -63,7 +61,7 @@
, updateFreq = 10000000 -- 10s
}
- return $! (getClientSessionDateCache, return ())
+ return (getClientSessionDateCache, return ())
where
getUpdated = do
now <- getCurrentTime
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Internal/TH.hs new/yesod-core-1.4.23/Yesod/Core/Internal/TH.hs
--- old/yesod-core-1.4.22/Yesod/Core/Internal/TH.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Internal/TH.hs 2016-08-10 14:21:43.000000000 +0200
@@ -16,7 +16,10 @@
import Data.ByteString.Lazy.Char8 ()
import Data.List (foldl')
-import Control.Monad (replicateM)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative ((<$>))
+#endif
+import Control.Monad (replicateM, void)
import Data.Either (partitionEithers)
import Yesod.Routes.TH
@@ -45,15 +48,15 @@
-- monolithic file into smaller parts. Use this function, paired with
-- 'mkYesodDispatch', to do just that.
mkYesodData :: String -> [ResourceTree String] -> Q [Dec]
-mkYesodData name res = mkYesodDataGeneral name False res
+mkYesodData name = mkYesodDataGeneral name False
mkYesodSubData :: String -> [ResourceTree String] -> Q [Dec]
-mkYesodSubData name res = mkYesodDataGeneral name True res
+mkYesodSubData name = mkYesodDataGeneral name True
mkYesodDataGeneral :: String -> Bool -> [ResourceTree String] -> Q [Dec]
mkYesodDataGeneral name isSub res = do
let (name':rest) = words name
- fmap fst $ mkYesodGeneral name' (fmap Left rest) isSub return res
+ fst <$> mkYesodGeneral name' (fmap Left rest) isSub return res
-- | See 'mkYesodData'.
mkYesodDispatch :: String -> [ResourceTree String] -> Q [Dec]
@@ -150,8 +153,8 @@
, mdsGetPathInfo = [|W.pathInfo|]
, mdsSetPathInfo = [|\p r -> r { W.pathInfo = p }|]
, mdsMethod = [|W.requestMethod|]
- , mds404 = [|notFound >> return ()|]
- , mds405 = [|badMethod >> return ()|]
+ , mds404 = [|void notFound|]
+ , mds405 = [|void badMethod|]
, mdsGetHandler = defaultGetHandler
, mdsUnwrapper = f
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Internal/Util.hs new/yesod-core-1.4.23/Yesod/Core/Internal/Util.hs
--- old/yesod-core-1.4.22/Yesod/Core/Internal/Util.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Internal/Util.hs 2016-08-10 14:21:43.000000000 +0200
@@ -14,8 +14,6 @@
import Data.Time (Day (ModifiedJulianDay, toModifiedJulianDay),
DiffTime, UTCTime (..), formatTime,
getCurrentTime, addUTCTime)
-import Control.Monad (liftM)
-
#if MIN_VERSION_time(1,5,0)
import Data.Time (defaultTimeLocale)
#else
@@ -58,4 +56,4 @@
date on a resource that never expires. See RFC 2616 section 14.21 for details.
-}
getCurrentMaxExpiresRFC1123 :: IO T.Text
-getCurrentMaxExpiresRFC1123 = liftM (formatRFC1123 . addUTCTime (60*60*24*365)) getCurrentTime
+getCurrentMaxExpiresRFC1123 = fmap (formatRFC1123 . addUTCTime (60*60*24*365)) getCurrentTime
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Types.hs new/yesod-core-1.4.23/Yesod/Core/Types.hs
--- old/yesod-core-1.4.22/Yesod/Core/Types.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Types.hs 2016-08-10 14:21:43.000000000 +0200
@@ -20,8 +20,7 @@
import Control.Exception (Exception)
import Control.Monad (liftM, ap)
import Control.Monad.Base (MonadBase (liftBase))
-import Control.Monad.Catch (MonadCatch (..))
-import Control.Monad.Catch (MonadMask (..))
+import Control.Monad.Catch (MonadMask (..), MonadCatch (..))
import Control.Monad.IO.Class (MonadIO (liftIO))
import Control.Monad.Logger (LogLevel, LogSource,
MonadLogger (..))
@@ -172,7 +171,7 @@
type BottomOfHeadAsync master
= [Text] -- ^ urls to load asynchronously
-> Maybe (HtmlUrl (Route master)) -- ^ widget of js to run on async completion
- -> (HtmlUrl (Route master)) -- ^ widget to insert at the bottom of <head>
+ -> HtmlUrl (Route master) -- ^ widget to insert at the bottom of <head>
type Texts = [Text]
@@ -264,7 +263,7 @@
-- @getHomeR = do defaultLayout "Widget text"@
instance (Monad m, a ~ ()) => IsString (WidgetT site m a) where
fromString = toWidget . toHtml . T.pack
- where toWidget x = WidgetT $ const $ return $ ((), GWData (Body (const x))
+ where toWidget x = WidgetT $ const $ return ((), GWData (Body (const x))
mempty mempty mempty mempty mempty mempty)
type RY master = Route master -> [(Text, Text)] -> Text
@@ -422,15 +421,15 @@
type StM (WidgetT site m) a = StM m (a, GWData (Route site))
liftBaseWith f = WidgetT $ \reader' ->
liftBaseWith $ \runInBase ->
- liftM (\x -> (x, mempty))
+ fmap (\x -> (x, mempty))
(f $ runInBase . flip unWidgetT reader')
restoreM = WidgetT . const . restoreM
#else
data StM (WidgetT site m) a = StW (StM m (a, GWData (Route site)))
liftBaseWith f = WidgetT $ \reader' ->
liftBaseWith $ \runInBase ->
- liftM (\x -> (x, mempty))
- (f $ liftM StW . runInBase . flip unWidgetT reader')
+ fmap (\x -> (x, mempty))
+ (f $ fmap StW . runInBase . flip unWidgetT reader')
restoreM (StW base) = WidgetT $ const $ restoreM base
#endif
instance Monad m => MonadReader site (WidgetT site m) where
@@ -464,11 +463,11 @@
where q u (WidgetT b) = WidgetT (u . b)
instance (Applicative m, MonadIO m, MonadBase IO m, MonadThrow m) => MonadResource (WidgetT site m) where
- liftResourceT f = WidgetT $ \hd -> liftIO $ fmap (, mempty) $ runInternalState f (handlerResource hd)
+ liftResourceT f = WidgetT $ \hd -> liftIO $ (, mempty) <$> runInternalState f (handlerResource hd)
instance MonadIO m => MonadLogger (WidgetT site m) where
monadLoggerLog a b c d = WidgetT $ \hd ->
- liftIO $ fmap (, mempty) $ rheLog (handlerEnv hd) a b c (toLogStr d)
+ liftIO $ (, mempty) <$> rheLog (handlerEnv hd) a b c (toLogStr d)
#if MIN_VERSION_monad_logger(0, 3, 10)
instance MonadIO m => MonadLoggerIO (WidgetT site m) where
@@ -522,7 +521,7 @@
data StM (HandlerT site m) a = StH (StM m a)
liftBaseWith f = HandlerT $ \reader' ->
liftBaseWith $ \runInBase ->
- f $ liftM StH . runInBase . (\(HandlerT r) -> r reader')
+ f $ fmap StH . runInBase . (\(HandlerT r) -> r reader')
restoreM (StH base) = HandlerT $ const $ restoreM base
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core/Widget.hs new/yesod-core-1.4.23/Yesod/Core/Widget.hs
--- old/yesod-core-1.4.22/Yesod/Core/Widget.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core/Widget.hs 2016-08-10 14:21:43.000000000 +0200
@@ -57,9 +57,12 @@
import Text.Julius
import Yesod.Routes.Class
import Yesod.Core.Handler (getMessageRender, getUrlRenderParams)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative ((<$>))
+#endif
+import Control.Monad (liftM)
import Control.Monad.IO.Class (MonadIO, liftIO)
import Text.Shakespeare.I18N (RenderMessage)
-import Control.Monad (liftM)
import Data.Text (Text)
import qualified Data.Map as Map
import Language.Haskell.TH.Quote (QuasiQuoter)
@@ -232,7 +235,7 @@
let ur f = do
let env = NP.Env
(Just $ helper [|getUrlRenderParams|])
- (Just $ helper [|liftM (toHtml .) getMessageRender|])
+ (Just $ helper [|fmap (toHtml .) getMessageRender|])
f env
return $ NP.HamletRules ah ur $ \_ b -> return $ ah `AppE` b
@@ -272,16 +275,16 @@
liftGWD :: (child -> parent) -> GWData child -> GWData parent
liftGWD tp gwd = GWData
- { gwdBody = fixBody $ gwdBody gwd
- , gwdTitle = gwdTitle gwd
- , gwdScripts = fixUnique fixScript $ gwdScripts gwd
+ { gwdBody = fixBody $ gwdBody gwd
+ , gwdTitle = gwdTitle gwd
+ , gwdScripts = fixUnique fixScript $ gwdScripts gwd
, gwdStylesheets = fixUnique fixStyle $ gwdStylesheets gwd
- , gwdCss = fmap fixCss $ gwdCss gwd
- , gwdJavascript = fmap fixJS $ gwdJavascript gwd
- , gwdHead = fixHead $ gwdHead gwd
+ , gwdCss = fixCss <$> gwdCss gwd
+ , gwdJavascript = fixJS <$> gwdJavascript gwd
+ , gwdHead = fixHead $ gwdHead gwd
}
where
- fixRender f route params = f (tp route) params
+ fixRender f route = f (tp route)
fixBody (Body h) = Body $ h . fixRender
fixHead (Head h) = Head $ h . fixRender
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Core.hs new/yesod-core-1.4.23/Yesod/Core.hs
--- old/yesod-core-1.4.22/Yesod/Core.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Core.hs 2016-08-10 14:21:43.000000000 +0200
@@ -1,4 +1,3 @@
-{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
@@ -53,6 +52,8 @@
, envClientSessionBackend
, clientSessionBackend
, sslOnlySessions
+ , laxSameSiteSessions
+ , strictSameSiteSessions
, sslOnlyMiddleware
, clientSessionDateCacher
, loadClientSession
@@ -134,11 +135,10 @@
import Control.Monad.Logger
import Control.Monad.Trans.Class (MonadTrans (..))
import Yesod.Core.Internal.Session
-import Yesod.Core.Internal.Run (yesodRunner)
+import Yesod.Core.Internal.Run (yesodRunner, yesodRender)
import Yesod.Core.Class.Yesod
import Yesod.Core.Class.Dispatch
import Yesod.Core.Class.Breadcrumbs
-import Yesod.Core.Internal.Run (yesodRender)
import qualified Yesod.Core.Internal.Run
import qualified Paths_yesod_core
import Data.Version (showVersion)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Routes/TH/RenderRoute.hs new/yesod-core-1.4.23/Yesod/Routes/TH/RenderRoute.hs
--- old/yesod-core-1.4.22/Yesod/Routes/TH/RenderRoute.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Routes/TH/RenderRoute.hs 2016-08-10 14:21:43.000000000 +0200
@@ -55,7 +55,7 @@
where
con = NormalC (mkName name)
$ map (\x -> (notStrict, x))
- $ concat [singles, [ConT $ mkName name]]
+ $ singles ++ [ConT $ mkName name]
singles = concatMap toSingle pieces
toSingle Static{} = []
@@ -99,7 +99,7 @@
dyns <- replicateM cnt $ newName "dyn"
sub <-
case resourceDispatch res of
- Subsite{} -> fmap return $ newName "sub"
+ Subsite{} -> return <$> newName "sub"
_ -> return []
let pat = ConP (mkName $ resourceName res) $ map VarP $ dyns ++ sub
@@ -136,7 +136,7 @@
mkPieces _ _ [] _ = []
mkPieces toText tsp (Static s:ps) dyns = toText s : mkPieces toText tsp ps dyns
mkPieces toText tsp (Dynamic{}:ps) (d:dyns) = tsp `AppE` VarE d : mkPieces toText tsp ps dyns
- mkPieces _ _ ((Dynamic _) : _) [] = error "mkPieces 120"
+ mkPieces _ _ (Dynamic _ : _) [] = error "mkPieces 120"
-- | Generate the 'RenderRoute' instance.
--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Routes/TH/RouteAttrs.hs new/yesod-core-1.4.23/Yesod/Routes/TH/RouteAttrs.hs
--- old/yesod-core-1.4.22/Yesod/Routes/TH/RouteAttrs.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Routes/TH/RouteAttrs.hs 2016-08-10 14:21:43.000000000 +0200
@@ -10,6 +10,9 @@
import Language.Haskell.TH.Syntax
import Data.Set (fromList)
import Data.Text (pack)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative ((<$>))
+#endif
mkRouteAttrsInstance :: Type -> [ResourceTree a] -> Q Dec
mkRouteAttrsInstance typ ress = do
@@ -19,11 +22,11 @@
]
goTree :: (Pat -> Pat) -> ResourceTree a -> Q [Clause]
-goTree front (ResourceLeaf res) = fmap return $ goRes front res
+goTree front (ResourceLeaf res) = return <$> goRes front res
goTree front (ResourceParent name _check pieces trees) =
- fmap concat $ mapM (goTree front') trees
+ concat <$> mapM (goTree front') trees
where
- ignored = ((replicate toIgnore WildP ++) . return)
+ ignored = (replicate toIgnore WildP ++) . return
toIgnore = length $ filter isDynamic pieces
isDynamic Dynamic{} = True
isDynamic Static{} = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Routes/TH/Types.hs new/yesod-core-1.4.23/Yesod/Routes/TH/Types.hs
--- old/yesod-core-1.4.22/Yesod/Routes/TH/Types.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Routes/TH/Types.hs 2016-08-10 14:21:43.000000000 +0200
@@ -53,11 +53,11 @@
deriving Show
instance Functor Piece where
- fmap _ (Static s) = (Static s)
+ fmap _ (Static s) = Static s
fmap f (Dynamic t) = Dynamic (f t)
instance Lift t => Lift (Piece t) where
- lift (Static s) = [|Static $(lift s)|]
+ lift (Static s) = [|Static $(lift s)|]
lift (Dynamic t) = [|Dynamic $(lift t)|]
data Dispatch typ =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/Yesod/Routes/TH.hs new/yesod-core-1.4.23/Yesod/Routes/TH.hs
--- old/yesod-core-1.4.22/Yesod/Routes/TH.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/Yesod/Routes/TH.hs 2016-08-10 14:21:43.000000000 +0200
@@ -1,4 +1,3 @@
-{-# LANGUAGE TemplateHaskell #-}
module Yesod.Routes.TH
( module Yesod.Routes.TH.Types
-- * Functions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/Cache.hs new/yesod-core-1.4.23/test/YesodCoreTest/Cache.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/Cache.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/Cache.hs 2016-08-10 14:21:43.000000000 +0200
@@ -13,8 +13,6 @@
import Data.IORef.Lifted
import Data.Typeable (Typeable)
import qualified Data.ByteString.Lazy.Char8 as L8
-import Data.Text (Text)
-import Data.Text.Encoding (encodeUtf8)
data C = C
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/ErrorHandling.hs new/yesod-core-1.4.23/test/YesodCoreTest/ErrorHandling.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/ErrorHandling.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/ErrorHandling.hs 2016-08-10 14:21:43.000000000 +0200
@@ -9,11 +9,10 @@
import Test.Hspec
import Network.Wai
import Network.Wai.Test
-import Text.Hamlet (hamlet)
import qualified Data.ByteString.Lazy as L
import qualified Data.ByteString.Char8 as S8
import Control.Exception (SomeException, try)
-import Network.HTTP.Types (mkStatus)
+import Network.HTTP.Types (Status, mkStatus)
import Blaze.ByteString.Builder (Builder, fromByteString, toLazyByteString)
import Data.Monoid (mconcat)
import Data.Text (Text, pack)
@@ -40,6 +39,7 @@
/good-builder GoodBuilderR GET
|]
+overrideStatus :: Status
overrideStatus = mkStatus 15 "OVERRIDE"
instance Yesod App where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/InternalRequest.hs new/yesod-core-1.4.23/test/YesodCoreTest/InternalRequest.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/InternalRequest.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/InternalRequest.hs 2016-08-10 14:21:43.000000000 +0200
@@ -2,10 +2,7 @@
module YesodCoreTest.InternalRequest (internalRequestTest) where
import Data.List (nub)
-import System.Random (StdGen, mkStdGen)
-
import Network.Wai as W
-import Network.Wai.Test
import Yesod.Core.Internal (randomString, parseWaiRequest)
import Test.Hspec
import Data.Monoid (mempty)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/Links.hs new/yesod-core-1.4.23/test/YesodCoreTest/Links.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/Links.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/Links.hs 2016-08-10 14:21:43.000000000 +0200
@@ -6,7 +6,6 @@
import Test.Hspec
import Yesod.Core
-import Text.Hamlet
import Network.Wai
import Network.Wai.Test
import Data.Text (Text)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/Media.hs new/yesod-core-1.4.23/test/YesodCoreTest/Media.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/Media.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/Media.hs 2016-08-10 14:21:43.000000000 +0200
@@ -8,7 +8,6 @@
import Yesod.Core
import Network.Wai
import Network.Wai.Test
-import Text.Lucius
import YesodCoreTest.MediaData
mkYesodDispatch "Y" resourcesY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/NoOverloadedStringsSub.hs new/yesod-core-1.4.23/test/YesodCoreTest/NoOverloadedStringsSub.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/NoOverloadedStringsSub.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/NoOverloadedStringsSub.hs 2016-08-10 14:21:43.000000000 +0200
@@ -8,7 +8,6 @@
module YesodCoreTest.NoOverloadedStringsSub where
import Yesod.Core
-import Network.Wai
import Yesod.Core.Types
data Subsite = Subsite (forall master. Yesod master => YesodSubRunnerEnv Subsite master (HandlerT master IO) -> Application)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/Ssl.hs new/yesod-core-1.4.23/test/YesodCoreTest/Ssl.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/Ssl.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/Ssl.hs 2016-08-10 14:21:43.000000000 +0200
@@ -1,6 +1,8 @@
{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}
-module YesodCoreTest.Ssl ( sslOnlySpec, unsecSpec ) where
+module YesodCoreTest.Ssl ( sslOnlySpec, unsecSpec, sameSiteSpec ) where
import qualified YesodCoreTest.StubSslOnly as Ssl
+import qualified YesodCoreTest.StubLaxSameSite as LaxSameSite
+import qualified YesodCoreTest.StubStrictSameSite as StrictSameSite
import qualified YesodCoreTest.StubUnsecured as Unsecured
import Yesod.Core
import Test.Hspec
@@ -62,3 +64,15 @@
where
atHome = homeFixtureFor Unsecured.App
isNotSecure c = not $ Cookie.setCookieSecure c
+
+sameSiteSpec :: Spec
+sameSiteSpec = describe "A Yesod application" $ do
+ it "can set a Lax SameSite option" $
+ laxHome $ "_SESSION" `cookieShouldSatisfy` isLax
+ it "can set a Strict SameSite option" $
+ strictHome $ "_SESSION" `cookieShouldSatisfy` isStrict
+ where
+ laxHome = homeFixtureFor LaxSameSite.App
+ strictHome = homeFixtureFor StrictSameSite.App
+ isLax = (== Just Cookie.sameSiteLax) . Cookie.setCookieSameSite
+ isStrict = (== Just Cookie.sameSiteStrict) . Cookie.setCookieSameSite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/StubLaxSameSite.hs new/yesod-core-1.4.23/test/YesodCoreTest/StubLaxSameSite.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/StubLaxSameSite.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/yesod-core-1.4.23/test/YesodCoreTest/StubLaxSameSite.hs 2016-08-10 14:21:43.000000000 +0200
@@ -0,0 +1,23 @@
+{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}
+module YesodCoreTest.StubLaxSameSite ( App ( App ) ) where
+
+import Yesod.Core
+import qualified Web.ClientSession as CS
+
+data App = App
+
+mkYesod "App" [parseRoutes|
+/ HomeR GET
+|]
+
+instance Yesod App where
+ yesodMiddleware = defaultYesodMiddleware . (sslOnlyMiddleware 120)
+ makeSessionBackend _ = laxSameSiteSessions $
+ fmap Just $ defaultClientSessionBackend 120 CS.defaultKeyFile
+
+getHomeR :: Handler Html
+getHomeR = defaultLayout
+ [whamlet|
+ <p>
+ Welcome to my test application.
+ |]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/StubStrictSameSite.hs new/yesod-core-1.4.23/test/YesodCoreTest/StubStrictSameSite.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/StubStrictSameSite.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/yesod-core-1.4.23/test/YesodCoreTest/StubStrictSameSite.hs 2016-08-10 14:21:43.000000000 +0200
@@ -0,0 +1,23 @@
+{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}
+module YesodCoreTest.StubStrictSameSite ( App ( App ) ) where
+
+import Yesod.Core
+import qualified Web.ClientSession as CS
+
+data App = App
+
+mkYesod "App" [parseRoutes|
+/ HomeR GET
+|]
+
+instance Yesod App where
+ yesodMiddleware = defaultYesodMiddleware . (sslOnlyMiddleware 120)
+ makeSessionBackend _ = strictSameSiteSessions $
+ fmap Just $ defaultClientSessionBackend 120 CS.defaultKeyFile
+
+getHomeR :: Handler Html
+getHomeR = defaultLayout
+ [whamlet|
+ <p>
+ Welcome to my test application.
+ |]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest/Widget.hs new/yesod-core-1.4.23/test/YesodCoreTest/Widget.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest/Widget.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest/Widget.hs 2016-08-10 14:21:43.000000000 +0200
@@ -6,10 +6,6 @@
import Test.Hspec
import Yesod.Core
-import Text.Julius
-import Text.Lucius
-import Text.Hamlet
-
import Network.Wai
import Network.Wai.Test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/test/YesodCoreTest.hs new/yesod-core-1.4.23/test/YesodCoreTest.hs
--- old/yesod-core-1.4.22/test/YesodCoreTest.hs 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/test/YesodCoreTest.hs 2016-08-10 14:21:43.000000000 +0200
@@ -1,5 +1,5 @@
{-# LANGUAGE CPP #-}
-module YesodCoreTest (specs) where
+module YesodCoreTest (specs) where
import YesodCoreTest.CleanPath
import YesodCoreTest.Exceptions
@@ -48,4 +48,5 @@
LiteApp.specs
Ssl.unsecSpec
Ssl.sslOnlySpec
+ Ssl.sameSiteSpec
Csrf.csrfSpec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.22/yesod-core.cabal new/yesod-core-1.4.23/yesod-core.cabal
--- old/yesod-core-1.4.22/yesod-core.cabal 2016-06-27 09:45:17.000000000 +0200
+++ new/yesod-core-1.4.23/yesod-core.cabal 2016-08-10 14:21:43.000000000 +0200
@@ -1,5 +1,5 @@
name: yesod-core
-version: 1.4.22
+version: 1.4.23
license: MIT
license-file: LICENSE
author: Michael Snoyman <michael(a)snoyman.com>
@@ -42,7 +42,7 @@
, unordered-containers >= 0.2
, monad-control >= 0.3 && < 1.1
, transformers-base >= 0.4
- , cookie >= 0.4.1 && < 0.5
+ , cookie >= 0.4.2 && < 0.5
, http-types >= 0.7
, case-insensitive >= 0.2
, parsec >= 2 && < 3.2
1
0
Hello community,
here is the log from the commit of package ghc-warp for openSUSE:Factory checked in at 2016-08-26 23:17:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-warp (Old)
and /work/SRC/openSUSE:Factory/.ghc-warp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-warp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-warp/ghc-warp.changes 2016-07-20 09:22:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-warp.new/ghc-warp.changes 2016-08-26 23:17:26.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 17 18:43:05 UTC 2016 - psimons(a)suse.com
+
+- Update to version 3.2.8 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
warp-3.2.7.tar.gz
New:
----
warp-3.2.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-warp.spec ++++++
--- /var/tmp/diff_new_pack.X09aVU/_old 2016-08-26 23:17:27.000000000 +0200
+++ /var/tmp/diff_new_pack.X09aVU/_new 2016-08-26 23:17:27.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name warp
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 3.2.7
+Version: 3.2.8
Release: 0
Summary: A fast, light-weight web server for WAI applications
License: MIT
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-array-devel
BuildRequires: ghc-async-devel
BuildRequires: ghc-auto-update-devel
@@ -66,7 +65,6 @@
BuildRequires: ghc-time-devel
BuildRequires: ghc-transformers-devel
%endif
-# End cabal-rpm deps
%description
HTTP/1.0, HTTP/1.1 and HTTP/2 are supported. For HTTP/2, Warp supports direct
@@ -87,20 +85,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ warp-3.2.7.tar.gz -> warp-3.2.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/ChangeLog.md new/warp-3.2.8/ChangeLog.md
--- old/warp-3.2.7/ChangeLog.md 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/ChangeLog.md 2016-08-04 07:01:44.000000000 +0200
@@ -1,3 +1,9 @@
+## 3.2.8
+
+* Fixing HTTP2 requestBodyLength. [#573](https://github.com/yesodweb/wai/pull/573)
+* Making HTTP/2 :path optional for the CONNECT method. [#572](https://github.com/yesodweb/wai/pull/572)
+* Adding new APIs for HTTP/2 trailers: http2dataTrailers and modifyHTTP2Data [#566](https://github.com/yesodweb/wai/pull/566)
+
## 3.2.7
* Adding new APIs for HTTP/2 server push: getHTTP2Data and setHTTP2Data [#510](https://github.com/yesodweb/wai/pull/510)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/HPACK.hs new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/HPACK.hs
--- old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/HPACK.hs 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/HPACK.hs 2016-08-04 07:01:44.000000000 +0200
@@ -83,13 +83,21 @@
{-# INLINE checkRequestHeader #-}
checkRequestHeader :: ValueTable -> Bool
checkRequestHeader reqvt
- | getHeaderValue tokenStatus reqvt /= Nothing = False
- | getHeaderValue tokenPath reqvt == Nothing = False
- | getHeaderValue tokenMethod reqvt == Nothing = False
- | getHeaderValue tokenAuthority reqvt == Nothing = False
- | getHeaderValue tokenConnection reqvt /= Nothing = False
- | just (getHeaderValue tokenTE reqvt) (/= "trailers") = False
- | otherwise = True
+ | mStatus /= Nothing = False
+ | mMethod == Nothing = False
+ | mAuthority == Nothing = False
+ | mConnection /= Nothing = False
+ | just mTE (/= "trailers") = False
+ | just mMethod (== "CONNECT") = mPath == Nothing && mScheme == Nothing
+ | otherwise = mPath /= Nothing
+ where
+ mStatus = getHeaderValue tokenStatus reqvt
+ mScheme = getHeaderValue tokenScheme reqvt
+ mPath = getHeaderValue tokenPath reqvt
+ mMethod = getHeaderValue tokenMethod reqvt
+ mAuthority = getHeaderValue tokenAuthority reqvt
+ mConnection = getHeaderValue tokenConnection reqvt
+ mTE = getHeaderValue tokenTE reqvt
{-# INLINE just #-}
just :: Maybe a -> (a -> Bool) -> Bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Receiver.hs new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Receiver.hs
--- old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Receiver.hs 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Receiver.hs 2016-08-04 07:01:44.000000000 +0200
@@ -122,7 +122,7 @@
E.throwIO $ StreamError ProtocolError streamId
writeIORef streamPrecedence $ toPrecedence pri
writeIORef streamState HalfClosed
- (!req, !ii) <- mkreq tbl (return "")
+ (!req, !ii) <- mkreq tbl (Just 0, return "")
atomically $ writeTQueue inputQ $ Input strm req reqvt ii
Open (HasBody tbl@(_,reqvt) pri) -> do
resetContinued
@@ -133,7 +133,7 @@
writeIORef streamState $ Open (Body q mcl bodyLength)
readQ <- newReadBody q
bodySource <- mkSource readQ
- (!req, !ii) <- mkreq tbl (readSource bodySource)
+ (!req, !ii) <- mkreq tbl (mcl, readSource bodySource)
atomically $ writeTQueue inputQ $ Input strm req reqvt ii
s@(Open Continued{}) -> do
setContinued
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Request.hs new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Request.hs
--- old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Request.hs 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Request.hs 2016-08-04 07:01:44.000000000 +0200
@@ -6,6 +6,7 @@
, MkReq
, getHTTP2Data
, setHTTP2Data
+ , modifyHTTP2Data
) where
import Control.Applicative ((<|>))
@@ -29,17 +30,17 @@
import Network.Wai.Internal (Request(..))
import System.IO.Unsafe (unsafePerformIO)
-type MkReq = (TokenHeaderList,ValueTable) -> IO ByteString -> IO (Request,InternalInfo)
+type MkReq = (TokenHeaderList,ValueTable) -> (Maybe Int,IO ByteString) -> IO (Request,InternalInfo)
mkRequest :: InternalInfo1 -> S.Settings -> SockAddr -> MkReq
-mkRequest ii1 settings addr (reqths,reqvt) body = do
+mkRequest ii1 settings addr (reqths,reqvt) (bodylen,body) = do
ref <- newIORef Nothing
- mkRequest' ii1 settings addr ref (reqths,reqvt) body
+ mkRequest' ii1 settings addr ref (reqths,reqvt) (bodylen,body)
mkRequest' :: InternalInfo1 -> S.Settings -> SockAddr
-> IORef (Maybe HTTP2Data)
-> MkReq
-mkRequest' ii1 settings addr ref (reqths,reqvt) body = return (req,ii)
+mkRequest' ii1 settings addr ref (reqths,reqvt) (bodylen,body) = return (req,ii)
where
!req = Request {
requestMethod = colonMethod
@@ -53,7 +54,7 @@
, remoteHost = addr
, requestBody = body
, vault = vaultValue
- , requestBodyLength = ChunkedBody -- fixme
+ , requestBodyLength = maybe ChunkedBody (KnownLength . fromIntegral) bodylen
, requestHeaderHost = mHost <|> mAuth
, requestHeaderRange = mRange
, requestHeaderReferer = mReferer
@@ -66,14 +67,16 @@
Nothing -> case mAuth of
Just auth -> (tokenHost, auth) : reqths
_ -> reqths
- !colonPath = fromJust $ getHeaderValue tokenPath reqvt -- MUST
+ !mPath = getHeaderValue tokenPath reqvt -- SHOULD
!colonMethod = fromJust $ getHeaderValue tokenMethod reqvt -- MUST
!mAuth = getHeaderValue tokenAuthority reqvt -- SHOULD
!mHost = getHeaderValue tokenHost reqvt
!mRange = getHeaderValue tokenRange reqvt
!mReferer = getHeaderValue tokenReferer reqvt
!mUserAgent = getHeaderValue tokenUserAgent reqvt
- (unparsedPath,query) = B8.break (=='?') colonPath
+ -- CONNECT request will have ":path" omitted, use ":authority" as unparsed
+ -- path instead so that it will have consistent behavior compare to HTTP 1.0
+ (unparsedPath,query) = B8.break (=='?') $ fromJust (mPath <|> mAuth)
!path = H.extractPath unparsedPath
!rawPath = if S.settingsNoParsePath settings then unparsedPath else path
!h = hashByteString rawPath
@@ -83,6 +86,7 @@
$ Vault.insert getFileInfoKey (getFileInfo ii)
$ Vault.insert getHTTP2DataKey (readIORef ref)
$ Vault.insert setHTTP2DataKey (writeIORef ref)
+ $ Vault.insert modifyHTTP2DataKey (modifyIORef' ref)
Vault.empty
getHTTP2DataKey :: Vault.Key (IO (Maybe HTTP2Data))
@@ -103,10 +107,23 @@
{-# NOINLINE setHTTP2Data #-}
-- | Setting 'HTTP2Data' through vault of the request.
--- 'Middleware' should use this.
+-- 'Application' or 'Middleware' should use this.
--
-- Since: 3.2.7
setHTTP2Data :: Request -> Maybe HTTP2Data -> IO ()
setHTTP2Data req mh2d = case Vault.lookup setHTTP2DataKey (vault req) of
Nothing -> return ()
Just setter -> setter mh2d
+
+modifyHTTP2DataKey :: Vault.Key ((Maybe HTTP2Data -> Maybe HTTP2Data) -> IO ())
+modifyHTTP2DataKey = unsafePerformIO Vault.newKey
+{-# NOINLINE modifyHTTP2Data #-}
+
+-- | Modifying 'HTTP2Data' through vault of the request.
+-- 'Application' or 'Middleware' should use this.
+--
+-- Since: 3.2.8
+modifyHTTP2Data :: Request -> (Maybe HTTP2Data -> Maybe HTTP2Data) -> IO ()
+modifyHTTP2Data req func = case Vault.lookup modifyHTTP2DataKey (vault req) of
+ Nothing -> return ()
+ Just modify -> modify func
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Sender.hs new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Sender.hs
--- old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Sender.hs 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Sender.hs 2016-08-04 07:01:44.000000000 +0200
@@ -18,7 +18,7 @@
import Data.Word (Word8, Word32)
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (poke)
-import Network.HPACK (setLimitForEncoding)
+import Network.HPACK (setLimitForEncoding, toHeaderTable)
import Network.HTTP2
import Network.HTTP2.Priority (isEmptySTM, dequeueSTM, Precedence)
import Network.Wai
@@ -122,16 +122,16 @@
Nothing -> return ()
Just siz -> setLimitForEncoding siz encodeDynamicTable
- output (ONext strm curr mtbq tell) off0 lim = do
+ output out@(Output strm _ _ tell getH2D (ONext curr)) off0 lim = do
-- Data frame payload
let !buf = connWriteBuffer `plusPtr` off0
!siz = connBufferSize - off0
Next datPayloadLen mnext <- curr buf siz lim
- off <- fillDataHeader strm off0 datPayloadLen mnext tell
- maybeEnqueueNext strm mtbq mnext tell
+ off <- fillDataHeader strm off0 datPayloadLen mnext tell getH2D
+ maybeEnqueueNext out mnext
return off
- output (ORspn strm rspn ii tell) off0 lim = do
+ output out@(Output strm rspn ii tell getH2D ORspn) off0 lim = do
-- Header frame and Continuation frame
let !sid = streamNumber strm
!endOfStream = case rspn of
@@ -149,32 +149,32 @@
let payloadOff = off + frameHeaderLength
Next datPayloadLen mnext <-
fillFileBodyGetNext conn ii payloadOff lim path mpart
- off' <- fillDataHeader strm off datPayloadLen mnext tell
- maybeEnqueueNext strm Nothing mnext tell
+ off' <- fillDataHeader strm off datPayloadLen mnext tell getH2D
+ maybeEnqueueNext out mnext
return off'
RspnBuilder _ _ builder -> do
-- Data frame payload
let payloadOff = off + frameHeaderLength
Next datPayloadLen mnext <-
fillBuilderBodyGetNext conn ii payloadOff lim builder
- off' <- fillDataHeader strm off datPayloadLen mnext tell
- maybeEnqueueNext strm Nothing mnext tell
+ off' <- fillDataHeader strm off datPayloadLen mnext tell getH2D
+ maybeEnqueueNext out mnext
return off'
RspnStreaming _ _ tbq -> do
let payloadOff = off + frameHeaderLength
Next datPayloadLen mnext <-
fillStreamBodyGetNext conn payloadOff lim tbq strm
- off' <- fillDataHeader strm off datPayloadLen mnext tell
- maybeEnqueueNext strm (Just tbq) mnext tell
+ off' <- fillDataHeader strm off datPayloadLen mnext tell getH2D
+ maybeEnqueueNext out mnext
return off'
- output (OPush strm ths rspn ii tell pid) off0 lim = do
+ output out@(Output strm _ _ _ _ (OPush ths pid)) off0 lim = do
-- Creating a push promise header
-- Frame id should be associated stream id from the client.
let !sid = streamNumber strm
len <- pushPromise pid sid ths off0
off <- sendHeadersIfNecessary $ off0 + frameHeaderLength + len
- output (ORspn strm rspn ii tell) off lim
+ output out{ outputType = ORspn } off lim
output _ _ _ = undefined -- never reach
@@ -183,9 +183,12 @@
if isClosed state then
return off
else case out of
- OWait strm' rsp ii wait -> do
+ Output _ _ _ wait _ OWait -> do
-- Checking if all push are done.
- let out' = ORspn strm' rsp ii (return ())
+ let out' = out {
+ outputHook = return ()
+ , outputType = ORspn
+ }
forkAndEnqueueWhenReady wait outputQ out' mgr
return off
_ -> case mtbq of
@@ -252,12 +255,11 @@
{-# INLINE maybeEnqueueNext #-}
-- Re-enqueue the stream in the output queue.
- maybeEnqueueNext :: Stream -> Maybe (TBQueue Sequence)
- -> Maybe DynaNext -> IO () -> IO ()
- maybeEnqueueNext _ _ Nothing _ = return ()
- maybeEnqueueNext strm mtbq (Just next) tell = enqueueOutput outputQ out
+ maybeEnqueueNext :: Output -> Maybe DynaNext -> IO ()
+ maybeEnqueueNext _ Nothing = return ()
+ maybeEnqueueNext out (Just next) = enqueueOutput outputQ out'
where
- !out = ONext strm next mtbq tell
+ !out' = out { outputType = ONext next }
{-# INLINE sendHeadersIfNecessary #-}
-- Send headers if there is not room for a 1-byte data frame, and return
@@ -269,21 +271,36 @@
flushN off
return 0
- fillDataHeader strm off datPayloadLen mnext tell = do
+ fillDataHeader strm@Stream{streamWindow,streamNumber}
+ off datPayloadLen mnext tell getH2D = do
-- Data frame header
- let !sid = streamNumber strm
+ mh2d <- getH2D
+ let (!trailers,!noTrailers) = case http2dataTrailers <$> mh2d of
+ Nothing -> ([], True)
+ Just ts -> (ts, null ts)
!buf = connWriteBuffer `plusPtr` off
!off' = off + frameHeaderLength + datPayloadLen
- !done = isNothing mnext
- flag | done = setEndStream defaultFlags
- | otherwise = defaultFlags
- fillFrameHeader FrameData datPayloadLen sid flag buf
- when done $ do
+ !noMoreBody = isNothing mnext
+ flag | noMoreBody && noTrailers = setEndStream defaultFlags
+ | otherwise = defaultFlags
+ fillFrameHeader FrameData datPayloadLen streamNumber flag buf
+ off'' <- handleEndOfBody noMoreBody off' noTrailers trailers
+ atomically $ modifyTVar' connectionWindow (subtract datPayloadLen)
+ atomically $ modifyTVar' streamWindow (subtract datPayloadLen)
+ return off''
+ where
+ handleTrailers True off0 _ = return off0
+ handleTrailers _ off0 trailers = do
+ (ths,_) <- toHeaderTable trailers
+ kvlen <- headerContinue streamNumber ths True off0
+ sendHeadersIfNecessary $ off0 + frameHeaderLength + kvlen
+ handleEndOfBody True off0 noTrailers trailers = do
+ off1 <- handleTrailers noTrailers off0 trailers
void $ tell
closed ctx strm Finished
- atomically $ modifyTVar' connectionWindow (subtract datPayloadLen)
- atomically $ modifyTVar' (streamWindow strm) (subtract datPayloadLen)
- return off'
+ return off1
+ handleEndOfBody False off0 _ _ = return off0
+
pushPromise pid sid ths off = do
let !offsid = off + frameHeaderLength
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Types.hs new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Types.hs
--- old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Types.hs 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Types.hs 2016-08-04 07:01:44.000000000 +0200
@@ -68,27 +68,23 @@
rspnHeaders (RspnBuilder _ t _) = t
rspnHeaders (RspnFile _ t _ _ ) = t
-data Output = ORspn !Stream !Rspn !InternalInfo (IO ()) -- done
- | OWait !Stream !Rspn !InternalInfo (IO ()) -- done
- | OPush !Stream -- stream for this push from this server
- TokenHeaderList
- !Rspn {- RspnFile only-}
- !InternalInfo (IO ()) -- wait for done
- !StreamId -- associated stream id from client
- | ONext !Stream !DynaNext !(Maybe (TBQueue Sequence)) (IO ()) -- done
-
-outputStream :: Output -> Stream
-outputStream (ORspn strm _ _ _) = strm
-outputStream (OPush strm _ _ _ _ _) = strm
-outputStream (OWait strm _ _ _) = strm
-outputStream (ONext strm _ _ _) = strm
+data Output = Output {
+ outputStream :: !Stream
+ , outputRspn :: !Rspn
+ , outputII :: !InternalInfo
+ , outputHook :: IO () -- OPush: wait for done, O*: telling done
+ , outputH2Data :: IO (Maybe HTTP2Data)
+ , outputType :: !OutputType
+ }
+
+data OutputType = ORspn
+ | OWait
+ | OPush !TokenHeaderList !StreamId -- associated stream id from client
+ | ONext !DynaNext
outputMaybeTBQueue :: Output -> Maybe (TBQueue Sequence)
-outputMaybeTBQueue (ORspn _ (RspnStreaming _ _ tbq) _ _) = Just tbq
-outputMaybeTBQueue (ORspn _ _ _ _) = Nothing
-outputMaybeTBQueue (OPush _ _ _ _ _ _) = Nothing
-outputMaybeTBQueue (OWait _ _ _ _) = Nothing
-outputMaybeTBQueue (ONext _ _ mtbq _) = mtbq
+outputMaybeTBQueue (Output _ (RspnStreaming _ _ tbq) _ _ _ _) = Just tbq
+outputMaybeTBQueue _ = Nothing
data Control = CFinish
| CGoaway !ByteString
@@ -286,18 +282,20 @@
-- | HTTP/2 specific data.
--
-- Since: 3.2.7
-newtype HTTP2Data = HTTP2Data {
+data HTTP2Data = HTTP2Data {
-- | Accessor for 'PushPromise' in 'HTTP2Data'.
--
-- Since: 3.2.7
http2dataPushPromise :: [PushPromise]
+ -- Since: 3.2.8
+ , http2dataTrailers :: H.ResponseHeaders
} deriving (Eq,Show)
-- | Default HTTP/2 specific data.
--
-- Since: 3.2.7
defaultHTTP2Data :: HTTP2Data
-defaultHTTP2Data = HTTP2Data []
+defaultHTTP2Data = HTTP2Data [] []
-- | HTTP/2 push promise or sever push.
--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Worker.hs new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Worker.hs
--- old/warp-3.2.7/Network/Wai/Handler/Warp/HTTP2/Worker.hs 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/Network/Wai/Handler/Warp/HTTP2/Worker.hs 2016-08-04 07:01:44.000000000 +0200
@@ -57,7 +57,7 @@
pushStream :: Context -> S.Settings
-> StreamId -> ValueTable -> Request -> InternalInfo
-> Maybe HTTP2Data
- -> IO (Stream -> Rspn -> InternalInfo -> IO () -> Output, IO ())
+ -> IO (OutputType, IO ())
pushStream _ _ _ _ _ _ Nothing = return (ORspn, return ())
pushStream ctx@Context{http2settings,outputQ,streamTable}
settings pid reqvt req ii (Just h2d)
@@ -81,6 +81,7 @@
waiter lim tvar = atomically $ do
n <- readTVar tvar
check (n >= lim)
+ !h2data = getHTTP2Data req
push _ [] !n = return (n :: Int)
push tvar (pp:pps) !n = do
let !file = promisedFile pp
@@ -110,7 +111,8 @@
!ths = (tokenLastModified,date) :
addContentHeadersForFilePart ths0 part
pushLogger req path size
- let out = OPush strm promisedRequest rsp ii (increment tvar) pid
+ let !ot = OPush promisedRequest pid
+ !out = Output strm rsp ii (increment tvar) h2data ot
enqueueOutput outputQ out
push tvar pps (n + 1)
@@ -144,6 +146,7 @@
!logger = S.settingsLogger settings
!th = threadHandle ii
sid = streamNumber strm
+ !h2data = getHTTP2Data req
-- Ideally, log messages should be written when responses are
-- actually sent. But there is no way to keep good memory usage
@@ -156,8 +159,8 @@
responseNoBody' s tbl = do
logger req s Nothing
setThreadContinue tconf True
- let rspn = RspnNobody s tbl
- out = ORspn strm rspn ii (return ())
+ let !rspn = RspnNobody s tbl
+ !out = Output strm rspn ii (return ()) h2data ORspn
enqueueOutput outputQ out
return ResponseReceived
@@ -165,8 +168,8 @@
logger req s Nothing
setThreadContinue tconf True
tbl <- toHeaderTable hs0
- let rspn = RspnBuilder s tbl bdy
- out = rspnOrWait strm rspn ii tell
+ let !rspn = RspnBuilder s tbl bdy
+ !out = Output strm rspn ii tell h2data rspnOrWait
enqueueOutput outputQ out
return ResponseReceived
@@ -191,8 +194,8 @@
| otherwise = do
logger req s (filePartByteCount <$> mpart)
setThreadContinue tconf True
- let rspn = RspnFile s tbl path mpart
- out = rspnOrWait strm rspn ii tell
+ let !rspn = RspnFile s tbl path mpart
+ !out = Output strm rspn ii tell h2data rspnOrWait
enqueueOutput outputQ out
return ResponseReceived
@@ -217,8 +220,8 @@
-- So, let's serialize 'Builder' with a designated queue.
tbq <- newTBQueueIO 10 -- fixme: hard coding: 10
tbl <- toHeaderTable hs0
- let rspn = RspnStreaming s0 tbl tbq
- out = rspnOrWait strm rspn ii tell
+ let !rspn = RspnStreaming s0 tbl tbq
+ !out = Output strm rspn ii tell h2data rspnOrWait
enqueueOutput outputQ out
let push b = do
atomically $ writeTBQueue tbq (SBuilder b)
@@ -265,7 +268,7 @@
Nothing -> return ()
Just (Input strm req _reqvt _ii) -> do
closed ctx strm Killed
- let frame = resetFrame InternalError (streamNumber strm)
+ let !frame = resetFrame InternalError (streamNumber strm)
enqueueControl controlQ $ CFrame frame
case me of
Nothing -> return ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/Network/Wai/Handler/Warp.hs new/warp-3.2.8/Network/Wai/Handler/Warp.hs
--- old/warp-3.2.7/Network/Wai/Handler/Warp.hs 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/Network/Wai/Handler/Warp.hs 2016-08-04 07:01:44.000000000 +0200
@@ -104,9 +104,11 @@
-- ** HTTP2 data
, HTTP2Data
, http2dataPushPromise
+ , http2dataTrailers
, defaultHTTP2Data
, getHTTP2Data
, setHTTP2Data
+ , modifyHTTP2Data
-- ** Push promise
, PushPromise
, promisedPath
@@ -129,7 +131,7 @@
import Network.Wai.Handler.Warp.Response (warpVersion)
import Network.Wai.Handler.Warp.Run
import Network.Wai.Handler.Warp.Settings
-import Network.Wai.Handler.Warp.HTTP2.Request (getHTTP2Data, setHTTP2Data)
+import Network.Wai.Handler.Warp.HTTP2.Request (getHTTP2Data, setHTTP2Data, modifyHTTP2Data)
import Network.Wai.Handler.Warp.HTTP2.Types
import Network.Wai.Handler.Warp.Timeout
import Network.Wai.Handler.Warp.Types hiding (getFileInfo)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/test/inputFile new/warp-3.2.8/test/inputFile
--- old/warp-3.2.7/test/inputFile 1970-01-01 01:00:00.000000000 +0100
+++ new/warp-3.2.8/test/inputFile 2016-08-04 07:01:44.000000000 +0200
@@ -0,0 +1,100 @@
+A acid
+abacus major
+abacus pythagoricus
+A battery
+abbey counter
+abbey laird
+abbey lands
+abbey lubber
+abbot cloth
+Abbott papyrus
+abb wool
+A-b-c book
+A-b-c method
+abdomino-uterotomy
+Abdul-baha
+a-be
+aberrant duct
+aberration constant
+abiding place
+able-bodied
+able-bodiedness
+able-minded
+able-mindedness
+able seaman
+aboli fruit
+A bond
+Abor-miri
+a-borning
+about-face
+about ship
+about-sledge
+above-cited
+above-found
+above-given
+above-mentioned
+above-named
+above-quoted
+above-reported
+above-said
+above-water
+above-written
+Abraham-man
+abraum salts
+abraxas stone
+Abri audit culture
+abruptly acuminate
+abruptly pinnate
+absciss layer
+absence state
+absentee voting
+absent-minded
+absent-mindedly
+absent-mindedness
+absent treatment
+absent voter
+Absent voting
+absinthe green
+absinthe oil
+absorption bands
+absorption circuit
+absorption coefficient
+absorption current
+absorption dynamometer
+absorption factor
+absorption lines
+absorption pipette
+absorption screen
+absorption spectrum
+absorption system
+A b station
+abstinence theory
+abstract group
+Abt system
+abundance declaree
+aburachan seed
+abutment arch
+abutment pier
+abutting joint
+acacia veld
+academy blue
+academy board
+academy figure
+acajou balsam
+acanthosis nigricans
+acanthus family
+acanthus leaf
+acaroid resin
+Acca larentia
+acceleration note
+accelerator nerve
+accent mark
+acceptance bill
+acceptance house
+acceptance supra protest
+acceptor supra protest
+accession book
+accession number
+accession service
+access road
+accident insurance
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.7/warp.cabal new/warp-3.2.8/warp.cabal
--- old/warp-3.2.7/warp.cabal 2016-07-04 09:23:09.000000000 +0200
+++ new/warp-3.2.8/warp.cabal 2016-08-04 07:01:44.000000000 +0200
@@ -1,5 +1,5 @@
Name: warp
-Version: 3.2.7
+Version: 3.2.8
Synopsis: A fast, light-weight web server for WAI applications.
License: MIT
License-file: LICENSE
@@ -19,6 +19,7 @@
ChangeLog.md
README.md
test/head-response
+ test/inputFile
Flag network-bytestring
Default: False
1
0
Hello community,
here is the log from the commit of package ghc-wai-app-static for openSUSE:Factory checked in at 2016-08-26 23:17:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-wai-app-static (Old)
and /work/SRC/openSUSE:Factory/.ghc-wai-app-static.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-wai-app-static"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-wai-app-static/ghc-wai-app-static.changes 2016-07-20 09:19:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-wai-app-static.new/ghc-wai-app-static.changes 2016-08-26 23:17:17.000000000 +0200
@@ -1,0 +2,10 @@
+Sun Aug 21 17:30:16 UTC 2016 - psimons(a)suse.com
+
+- Update to version 3.1.6.1 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
+Wed Aug 17 18:37:00 UTC 2016 - psimons(a)suse.com
+
+- Update to version 3.1.6 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
wai-app-static-3.1.5.tar.gz
New:
----
wai-app-static-3.1.6.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-wai-app-static.spec ++++++
--- /var/tmp/diff_new_pack.Bzfo4J/_old 2016-08-26 23:17:19.000000000 +0200
+++ /var/tmp/diff_new_pack.Bzfo4J/_new 2016-08-26 23:17:19.000000000 +0200
@@ -19,14 +19,13 @@
%global pkg_name wai-app-static
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 3.1.5
+Version: 3.1.6.1
Release: 0
Summary: WAI application for static serving
License: MIT
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
-# Begin cabal-rpm deps:
BuildRequires: chrpath
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-blaze-builder-devel
@@ -58,10 +57,10 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with tests}
BuildRequires: ghc-hspec-devel
+BuildRequires: ghc-mockery-devel
BuildRequires: ghc-network-devel
BuildRequires: ghc-temporary-devel
%endif
-# End cabal-rpm deps
%description
API docs and the README are available at
@@ -81,22 +80,15 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%ghc_fix_dynamic_rpath warp
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ wai-app-static-3.1.5.tar.gz -> wai-app-static-3.1.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/ChangeLog.md new/wai-app-static-3.1.6.1/ChangeLog.md
--- old/wai-app-static-3.1.5/ChangeLog.md 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/ChangeLog.md 2016-08-17 14:30:56.000000000 +0200
@@ -1,3 +1,12 @@
+## 3.1.6.1
+
+* Add `<>` import
+
+## 3.1.6
+
+* Make ssAddTrailingSlash work in combination with ssIndices [#569](https://github.com/yesodweb/wai/pull/569)
+* Make ssIndices work with ssLookupFile and trailing slashes [#570](https://github.com/yesodweb/wai/pull/570)
+
## 3.1.5
* Switch to cryponite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/Network/Wai/Application/Static.hs new/wai-app-static-3.1.6.1/Network/Wai/Application/Static.hs
--- old/wai-app-static-3.1.5/Network/Wai/Application/Static.hs 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/Network/Wai/Application/Static.hs 2016-08-17 14:30:56.000000000 +0200
@@ -87,14 +87,14 @@
Nothing -> return $ WaiResponse $ W.responseLBS H.status403
[ ("Content-Type", "text/plain")
] "Directory listings disabled"
+
+addTrailingSlash :: W.Request -> Maybe ByteString
+addTrailingSlash req
+ | S8.null rp = Just "/"
+ | S8.last rp == '/' = Nothing
+ | otherwise = Just $ S8.snoc rp '/'
where
- addTrailingSlash :: W.Request -> Maybe ByteString
- addTrailingSlash req
- | S8.null rp = Just "/"
- | S8.last rp == '/' = Nothing
- | otherwise = Just $ S8.snoc rp '/'
- where
- rp = W.rawPathInfo req
+ rp = W.rawPathInfo req
checkPieces :: StaticSettings
-> Pieces -- ^ parsed request
@@ -108,45 +108,49 @@
checkPieces ss@StaticSettings {..} pieces req = do
res <- lookupResult
case res of
- Left location -> return $ RawRedirect $ TE.encodeUtf8 location
+ Left location -> return $ RawRedirect location
Right LRNotFound -> return NotFound
Right (LRFile file) -> serveFile ss req file
Right (LRFolder folder) -> serveFolder ss pieces req folder
where
- lookupResult :: IO (Either Text LookupResult)
+ lookupResult :: IO (Either ByteString LookupResult)
lookupResult = do
nonIndexResult <- ssLookupFile pieces
case nonIndexResult of
LRFile{} -> return $ Right nonIndexResult
_ -> do
- indexResult <- lookupIndices (map (\ index -> pieces ++ [index]) ssIndices)
- return $ case indexResult of
- LRNotFound -> Right nonIndexResult
- LRFile file | ssRedirectToIndex ->
- let relPath =
- case reverse pieces of
- -- Served at root
- [] -> fromPiece $ fileName file
- lastSegment:_ ->
- case fromPiece lastSegment of
- -- Ends with a trailing slash
- "" -> fromPiece $ fileName file
- -- Lacks a trailing slash
- lastSegment' -> T.concat
- [ lastSegment'
- , "/"
- , fromPiece $ fileName file
- ]
- in Left relPath
- _ -> Right indexResult
+ eIndexResult <- lookupIndices (map (\ index -> dropLastIfNull pieces ++ [index]) ssIndices)
+ return $ case eIndexResult of
+ Left redirect -> Left redirect
+ Right indexResult -> case indexResult of
+ LRNotFound -> Right nonIndexResult
+ LRFile file | ssRedirectToIndex ->
+ let relPath =
+ case reverse pieces of
+ -- Served at root
+ [] -> fromPiece $ fileName file
+ lastSegment:_ ->
+ case fromPiece lastSegment of
+ -- Ends with a trailing slash
+ "" -> fromPiece $ fileName file
+ -- Lacks a trailing slash
+ lastSegment' -> T.concat
+ [ lastSegment'
+ , "/"
+ , fromPiece $ fileName file
+ ]
+ in Left $ TE.encodeUtf8 relPath
+ _ -> Right indexResult
- lookupIndices :: [Pieces] -> IO LookupResult
+ lookupIndices :: [Pieces] -> IO (Either ByteString LookupResult)
lookupIndices (x : xs) = do
res <- ssLookupFile x
case res of
LRNotFound -> lookupIndices xs
- _ -> return res
- lookupIndices [] = return LRNotFound
+ _ -> return $ case (ssAddTrailingSlash, addTrailingSlash req) of
+ (True, Just redirect) -> Left redirect
+ _ -> Right res
+ lookupIndices [] = return $ Right LRNotFound
serveFile :: StaticSettings -> W.Request -> File -> IO StaticResponse
serveFile StaticSettings {..} req file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/Util.hs new/wai-app-static-3.1.6.1/Util.hs
--- old/wai-app-static-3.1.5/Util.hs 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/Util.hs 2016-08-17 14:30:56.000000000 +0200
@@ -1,9 +1,10 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE OverloadedStrings, ViewPatterns #-}
module Util
( relativeDirFromPieces
, defaultMkRedirect
, replace
, remove
+ , dropLastIfNull
) where
import WaiAppStatic.Types
@@ -36,3 +37,9 @@
| otherwise = relDir `S8.append` S8.tail newPath
where
relDir = TE.encodeUtf8 (relativeDirFromPieces pieces)
+
+dropLastIfNull :: [Piece] -> [Piece]
+dropLastIfNull pieces = case pieces of
+ [fromPiece -> ""] -> []
+ (a : r) -> a : dropLastIfNull r
+ [] -> []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/WaiAppStatic/CmdLine.hs new/wai-app-static-3.1.6.1/WaiAppStatic/CmdLine.hs
--- old/wai-app-static-3.1.5/WaiAppStatic/CmdLine.hs 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/WaiAppStatic/CmdLine.hs 2016-08-17 14:30:56.000000000 +0200
@@ -25,6 +25,7 @@
import WaiAppStatic.Types (ssIndices, toPiece, ssGetMimeType, fileName, fromPiece)
import Data.Maybe (mapMaybe)
import Control.Arrow (second)
+import Data.Monoid ((<>))
data Args = Args
{ docroot :: FilePath
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/test/EmbeddedTestEntries.hs new/wai-app-static-3.1.6.1/test/EmbeddedTestEntries.hs
--- old/wai-app-static-3.1.5/test/EmbeddedTestEntries.hs 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/test/EmbeddedTestEntries.hs 2016-08-17 14:30:56.000000000 +0200
@@ -47,4 +47,9 @@
, EmbeddableEntry "index.html"
"text/html"
(Right [| return ("" :: T.Text, "index file") |] )
+
+ -- An index file in a subdir
+ , EmbeddableEntry "foo/index.html"
+ "text/html"
+ (Right [| return ("" :: T.Text, "index file in subdir") |] )
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/test/WaiAppEmbeddedTest.hs new/wai-app-static-3.1.6.1/test/WaiAppEmbeddedTest.hs
--- old/wai-app-static-3.1.5/test/WaiAppEmbeddedTest.hs 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/test/WaiAppEmbeddedTest.hs 2016-08-17 14:30:56.000000000 +0200
@@ -41,6 +41,15 @@
assertStatus 200 req
assertBody "index file" req
+ it "ssIndices works with trailing slashes" $ do
+ let testSettings = $(mkSettings mkEntries){
+ ssIndices = [unsafeToPiece "index.html"]
+ }
+ embedSettings testSettings $ do
+ req <- request (setRawPathInfo defRequest "/foo/")
+ assertStatus 200 req
+ assertBody "index file in subdir" req
+
describe "embedded, uncompressed entry" $ do
it "too short" $ embed $ do
req <- request (setRawPathInfo defRequest "e2.txt")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/test/WaiAppStaticTest.hs new/wai-app-static-3.1.6.1/test/WaiAppStaticTest.hs
--- old/wai-app-static-3.1.5/test/WaiAppStaticTest.hs 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/test/WaiAppStaticTest.hs 2016-08-17 14:30:56.000000000 +0200
@@ -5,6 +5,7 @@
import WaiAppStatic.Types
import Test.Hspec
+import Test.Mockery.Directory
import qualified Data.ByteString.Char8 as S8
-- import qualified Data.ByteString.Lazy.Char8 as L8
import System.PosixCompat.Files (getFileStatus, modificationTime)
@@ -136,6 +137,16 @@
assertStatus 301 req
assertHeader "Location" "/a/" req
+ it "works when an index.html is delivered" $ do
+ let settings = (defaultFileServerSettings "."){
+ ssAddTrailingSlash = True
+ }
+ inTempDirectory $ fileServerAppWithSettings settings $ do
+ liftIO $ touch "foo/index.html"
+ req <- request (setRawPathInfo defRequest "/foo")
+ assertStatus 301 req
+ assertHeader "Location" "/foo/" req
+
let urlMapApp = flip runSession $ \req send ->
case pathInfo req of
"subPath":rest ->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-app-static-3.1.5/wai-app-static.cabal new/wai-app-static-3.1.6.1/wai-app-static.cabal
--- old/wai-app-static-3.1.5/wai-app-static.cabal 2016-03-29 08:32:12.000000000 +0200
+++ new/wai-app-static-3.1.6.1/wai-app-static.cabal 2016-08-17 14:30:56.000000000 +0200
@@ -1,5 +1,5 @@
name: wai-app-static
-version: 3.1.5
+version: 3.1.6.1
license: MIT
license-file: LICENSE
author: Michael Snoyman <michael(a)snoyman.com>
@@ -101,6 +101,7 @@
, zlib
, filepath
, temporary
+ , mockery
-- , containers
ghc-options: -Wall
1
0
Hello community,
here is the log from the commit of package ghc-scotty for openSUSE:Factory checked in at 2016-08-26 23:17:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-scotty (Old)
and /work/SRC/openSUSE:Factory/.ghc-scotty.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-scotty"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-scotty/ghc-scotty.changes 2016-07-21 08:16:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-scotty.new/ghc-scotty.changes 2016-08-26 23:17:13.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 17 18:44:06 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.11.0 revision 3 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
2.cabal
New:
----
3.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-scotty.spec ++++++
--- /var/tmp/diff_new_pack.gUe6Lk/_old 2016-08-26 23:17:14.000000000 +0200
+++ /var/tmp/diff_new_pack.gUe6Lk/_new 2016-08-26 23:17:14.000000000 +0200
@@ -23,12 +23,11 @@
Release: 0
Summary: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
-Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/3.cabal
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-aeson-devel
BuildRequires: ghc-blaze-builder-devel
BuildRequires: ghc-bytestring-devel
@@ -57,7 +56,6 @@
BuildRequires: ghc-hspec-wai-devel
BuildRequires: ghc-lifted-base-devel
%endif
-# End cabal-rpm deps
%description
A Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp.
@@ -105,20 +103,14 @@
%setup -q -n %{pkg_name}-%{version}
cp -p %{SOURCE1} %{pkg_name}.cabal
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ 2.cabal -> 3.cabal ++++++
--- /work/SRC/openSUSE:Factory/ghc-scotty/2.cabal 2016-07-21 08:16:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-scotty.new/3.cabal 2016-08-26 23:17:13.000000000 +0200
@@ -1,6 +1,6 @@
Name: scotty
Version: 0.11.0
-x-revision: 2
+x-revision: 3
Synopsis: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp
Homepage: https://github.com/scotty-web/scotty
Bug-reports: https://github.com/scotty-web/scotty/issues
@@ -69,7 +69,7 @@
Web.Scotty.Route
Web.Scotty.Util
default-language: Haskell2010
- build-depends: aeson >= 0.6.2.1 && < 0.12,
+ build-depends: aeson >= 0.6.2.1 && < 1.1,
base >= 4.3.1 && < 5,
blaze-builder >= 0.3.3.0 && < 0.5,
bytestring >= 0.10.0.2 && < 0.11,
1
0
Hello community,
here is the log from the commit of package ghc-http2 for openSUSE:Factory checked in at 2016-08-26 23:17:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-http2 (Old)
and /work/SRC/openSUSE:Factory/.ghc-http2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-http2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-http2/ghc-http2.changes 2016-07-21 08:06:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-http2.new/ghc-http2.changes 2016-08-26 23:17:10.000000000 +0200
@@ -1,0 +2,5 @@
+Sun Aug 21 17:19:56 UTC 2016 - psimons(a)suse.com
+
+- Update to version 1.6.2 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
http2-1.6.1.tar.gz
New:
----
http2-1.6.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-http2.spec ++++++
--- /var/tmp/diff_new_pack.LqH2Ru/_old 2016-08-26 23:17:11.000000000 +0200
+++ /var/tmp/diff_new_pack.LqH2Ru/_new 2016-08-26 23:17:11.000000000 +0200
@@ -19,44 +19,37 @@
%global pkg_name http2
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.6.1
+Version: 1.6.2
Release: 0
Summary: HTTP/2.0 library including frames and HPACK
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
+BuildRequires: ghc-aeson-devel
+BuildRequires: ghc-aeson-pretty-devel
BuildRequires: ghc-array-devel
BuildRequires: ghc-bytestring-builder-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-case-insensitive-devel
BuildRequires: ghc-containers-devel
+BuildRequires: ghc-directory-devel
+BuildRequires: ghc-filepath-devel
+BuildRequires: ghc-hex-devel
BuildRequires: ghc-psqueues-devel
BuildRequires: ghc-rpm-macros
BuildRequires: ghc-stm-devel
+BuildRequires: ghc-text-devel
+BuildRequires: ghc-unordered-containers-devel
+BuildRequires: ghc-vector-devel
+BuildRequires: ghc-word8-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with tests}
BuildRequires: ghc-Glob-devel
-BuildRequires: ghc-aeson-devel
-BuildRequires: ghc-aeson-pretty-devel
-BuildRequires: ghc-directory-devel
BuildRequires: ghc-doctest-devel
-BuildRequires: ghc-filepath-devel
-BuildRequires: ghc-hex-devel
BuildRequires: ghc-hspec-devel
-BuildRequires: ghc-text-devel
-BuildRequires: ghc-unordered-containers-devel
-BuildRequires: ghc-vector-devel
-BuildRequires: ghc-word8-devel
%endif
-# End cabal-rpm deps
-BuildRequires: ghc-aeson-devel
-BuildRequires: ghc-aeson-pretty-devel
-BuildRequires: ghc-hex-devel
-BuildRequires: ghc-vector-devel
-BuildRequires: ghc-word8-devel
%description
HTTP/2.0 library including frames and HPACK.
@@ -75,20 +68,15 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
+%define cabal_configure_options -f-devel
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ http2-1.6.1.tar.gz -> http2-1.6.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/Buffer.hs new/http2-1.6.2/Network/HPACK/Buffer.hs
--- old/http2-1.6.1/Network/HPACK/Buffer.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/Buffer.hs 2016-08-15 05:42:18.000000000 +0200
@@ -20,6 +20,7 @@
, hasMoreBytes
, rewindOneByte
, getByte
+ , getByte'
, extractByteString
) where
@@ -174,6 +175,18 @@
writeIORef cur $! ptr `plusPtr` 1
return w
+{-# INLINE getByte' #-}
+getByte' :: ReadBuffer -> IO Int
+getByte' ReadBuffer{..} = do
+ ptr <- readIORef cur
+ if ptr < end then do
+ w <- peek ptr
+ writeIORef cur $! ptr `plusPtr` 1
+ let !i = fromIntegral w
+ return i
+ else
+ return (-1)
+
extractByteString :: ReadBuffer -> Int -> IO ByteString
extractByteString ReadBuffer{..} len = do
src <- readIORef cur
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/HeaderBlock/Decode.hs new/http2-1.6.2/Network/HPACK/HeaderBlock/Decode.hs
--- old/http2-1.6.1/Network/HPACK/HeaderBlock/Decode.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/HeaderBlock/Decode.hs 2016-08-15 05:42:18.000000000 +0200
@@ -14,7 +14,8 @@
import Control.Exception (throwIO)
import Control.Monad (unless, when)
import Data.Maybe (isJust)
-import Data.Array (Array, (!))
+import Data.Array (Array)
+import Data.Array.Base (unsafeAt, unsafeRead, unsafeWrite)
import qualified Data.Array.IO as IOA
import qualified Data.Array.Unsafe as Unsafe
import Data.Bits (testBit, clearBit, (.&.))
@@ -38,7 +39,7 @@
-- | Accessing 'HeaderValue' with 'Token'.
{-# INLINE getHeaderValue #-}
getHeaderValue :: Token -> ValueTable -> Maybe HeaderValue
-getHeaderValue t tbl = tbl ! tokenIx t
+getHeaderValue t tbl = tbl `unsafeAt` tokenIx t
----------------------------------------------------------------
@@ -123,15 +124,15 @@
w <- getByte rbuf
tv@(!Token{..},!v) <- toTokenHeader dyntbl w rbuf
if isPseudo then do
- mx <- IOA.readArray arr ix
+ mx <- unsafeRead arr ix
when (isJust mx) $ throwIO IllegalHeaderName
when (isMaxTokenIx ix) $ throwIO IllegalHeaderName
- IOA.writeArray arr ix (Just v)
+ unsafeWrite arr ix (Just v)
pseudo
else do
when (isMaxTokenIx ix && B8.any isUpper (original tokenKey)) $
throwIO IllegalHeaderName
- IOA.writeArray arr ix (Just v)
+ unsafeWrite arr ix (Just v)
if isCookieTokenIx ix then
normal empty (empty << v)
else
@@ -146,7 +147,7 @@
when isPseudo $ throwIO IllegalHeaderName
when (isMaxTokenIx ix && B8.any isUpper (original tokenKey)) $
throwIO IllegalHeaderName
- IOA.writeArray arr ix (Just v)
+ unsafeWrite arr ix (Just v)
if isCookieTokenIx ix then
normal builder (cookie << v)
else
@@ -159,7 +160,7 @@
else do
let !v = BS.intercalate "; " cook
!tvs = (tokenCookie, v) : tvs0
- IOA.writeArray arr cookieTokenIx (Just v)
+ unsafeWrite arr cookieTokenIx (Just v)
return tvs
toTokenHeader :: DynamicTable -> Word8 -> ReadBuffer -> IO TokenHeader
@@ -300,7 +301,7 @@
go [] builder = return $ run builder
go ((k,v):xs) builder = do
let !t = toToken (foldedCase k)
- IOA.writeArray arr (tokenIx t) (Just v)
+ unsafeWrite arr (tokenIx t) (Just v)
let !tv = (t,v)
!builder' = builder << tv
go xs builder'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/HeaderBlock/Encode.hs new/http2-1.6.2/Network/HPACK/HeaderBlock/Encode.hs
--- old/http2-1.6.1/Network/HPACK/HeaderBlock/Encode.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/HeaderBlock/Encode.hs 2016-08-15 05:42:18.000000000 +0200
@@ -242,7 +242,11 @@
wind wbuf expectedIntLen
len <- Huffman.encode wbuf bs
let !intLen = integerLength len
- if intLen == expectedIntLen then do
+ if origLen < len then do
+ wind wbuf (negate (expectedIntLen + len))
+ I.encode wbuf id 7 origLen
+ copyByteString wbuf bs
+ else if intLen == expectedIntLen then do
wind wbuf (negate (expectedIntLen + len))
I.encode wbuf setH 7 len
wind wbuf len
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/HeaderBlock/Integer.hs new/http2-1.6.2/Network/HPACK/HeaderBlock/Integer.hs
--- old/http2-1.6.1/Network/HPACK/HeaderBlock/Integer.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/HeaderBlock/Integer.hs 2016-08-15 05:42:18.000000000 +0200
@@ -10,7 +10,8 @@
#if __GLASGOW_HASKELL__ < 709
import Control.Applicative ((<$>))
#endif
-import Data.Array (Array, listArray, (!))
+import Data.Array (Array, listArray)
+import Data.Array.Base (unsafeAt)
import Data.Bits ((.&.), shiftR, testBit)
import Data.ByteString (ByteString)
import Data.Word (Word8)
@@ -38,6 +39,7 @@
encodeInteger :: Int -> Int -> IO ByteString
encodeInteger n i = withTemporaryBuffer 4096 $ \wbuf -> encode wbuf id n i
+-- Using writeWord8 is faster than using internals directly.
{-# INLINABLE encode #-}
encode :: WorkingBuffer -> (Word8 -> Word8) -> Int -> Int -> IO ()
encode wbuf set n i
@@ -46,7 +48,7 @@
writeWord8 wbuf $ set $ fromIntegral p
encode' (i - p)
where
- !p = powerArray ! n
+ !p = powerArray `unsafeAt` (n - 1)
encode' :: Int -> IO ()
encode' j
| j < 128 = writeWord8 wbuf $ fromIntegral j
@@ -89,8 +91,8 @@
| i < p = return i
| otherwise = decode' 0 i
where
- p = powerArray ! n
- i = fromIntegral w
+ !p = powerArray `unsafeAt` (n - 1)
+ !i = fromIntegral w
decode' :: Int -> Int -> IO Int
decode' m j = do
!b <- fromIntegral <$> getByte rbuf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/Huffman/Decode.hs new/http2-1.6.2/Network/HPACK/Huffman/Decode.hs
--- old/http2-1.6.1/Network/HPACK/Huffman/Decode.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/Huffman/Decode.hs 2016-08-15 05:42:18.000000000 +0200
@@ -8,7 +8,8 @@
) where
import Control.Exception (throwIO)
-import Data.Array (Array, (!), listArray)
+import Data.Array (Array, listArray)
+import Data.Array.Base (unsafeAt)
import qualified Data.ByteString as BS
import Data.ByteString.Internal (ByteString(..))
import Data.Word (Word8)
@@ -39,7 +40,7 @@
type Way256 = Array Word8 WayStep
next :: WayStep -> Word8 -> Pin
-next (WayStep _ a16) w = a16 ! w
+next (WayStep _ a16) w = a16 `unsafeAt` fromIntegral w
----------------------------------------------------------------
@@ -51,7 +52,7 @@
toByteString wbuf
dec :: WorkingBuffer -> ReadBuffer -> Int -> IO ()
-dec wbuf rbuf len = go len (way256 ! 0)
+dec wbuf rbuf len = go len (way256 `unsafeAt` 0)
where
go 0 way0 = case way0 of
WayStep Nothing _ -> throwIO IllegalEos
@@ -64,14 +65,14 @@
go (n - 1) way
doit !way !w = case next way w of
EndOfString -> throwIO EosInTheMiddle
- Forward n -> return $ way256 ! n
+ Forward n -> return $ way256 `unsafeAt` fromIntegral n
GoBack n v -> do
writeWord8 wbuf v
- return $ way256 ! n
+ return $ way256 `unsafeAt` fromIntegral n
GoBack2 n v1 v2 -> do
writeWord8 wbuf v1
writeWord8 wbuf v2
- return $ way256 ! n
+ return $ way256 `unsafeAt` fromIntegral n
decodeHuffman :: ByteString -> IO ByteString
decodeHuffman bs = withTemporaryBuffer 4096 $ \wbuf ->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/Huffman/Encode.hs new/http2-1.6.2/Network/HPACK/Huffman/Encode.hs
--- old/http2-1.6.1/Network/HPACK/Huffman/Encode.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/Huffman/Encode.hs 2016-08-15 05:42:18.000000000 +0200
@@ -12,77 +12,27 @@
#endif
import Control.Exception (throwIO)
import Control.Monad (when, void)
-import Data.Array
-import Data.Bits ((.|.))
+import Data.Array.Base (unsafeAt)
+import Data.Array.IArray (listArray)
+import Data.Array.Unboxed (UArray)
+import Data.Bits ((.|.), shiftR, shiftL)
import Data.ByteString (ByteString)
import Data.IORef
-import Data.Word (Word8)
-import Foreign.Ptr (plusPtr, minusPtr, Ptr)
-import Foreign.Storable (peek, poke)
+import Data.Word (Word8, Word64)
+import Foreign.Ptr (plusPtr, minusPtr)
+import Foreign.Storable (poke)
import Network.HPACK.Buffer
-import Network.HPACK.Huffman.Bit
-import Network.HPACK.Huffman.Params
+import Network.HPACK.Huffman.Params (idxEos)
import Network.HPACK.Huffman.Table
import Network.HPACK.Types (BufferOverrun(..))
----------------------------------------------------------------
-type AOSA = Array Int ShiftedArray
+huffmanLength :: UArray Int Int
+huffmanLength = listArray (0,idxEos) $ map length huffmanTable
-type ShiftedArray = Array Int Shifted
-
-data WS = W0
- | W1 !Word8
- | W2 !Word8 !Word8
- | W3 !Word8 !Word8 !Word8
- | W4 !Word8 !Word8 !Word8 !Word8
- deriving Show
-
-data Shifted = Shifted !Int -- How many bits in the last byte
- !Int -- Total bytes (3rd + 4th)
- !Word8 -- First word. If Int is 0, this is dummy
- !WS -- Following words, up to 4 bytes
- deriving Show
-
-----------------------------------------------------------------
-
-aosa :: AOSA
-aosa = listArray (0,idxEos) $ map toShiftedArray huffmanTable
-
--- |
---
--- >>> toShifted [T,T,T,T] 0
--- Shifted 4 1 240 W0
--- >>> toShifted [T,T,T,T] 4
--- Shifted 0 1 15 W0
--- >>> toShifted [T,T,T,T] 5
--- Shifted 1 2 7 (W1 128)
-
-toShifted :: Bits -> Int -> Shifted
-toShifted bits n = Shifted r siz w ws
- where
- shifted = replicate n F ++ bits
- len = length shifted
- !r = len `mod` 8
- ws0 = map fromBits $ group8 shifted
- !siz = length ws0
- !w = head ws0
- !ws = case tail ws0 of
- [] -> W0
- [w1] -> W1 w1
- [w1,w2] -> W2 w1 w2
- [w1,w2,w3] -> W3 w1 w2 w3
- [w1,w2,w3,w4] -> W4 w1 w2 w3 w4
- _ -> error "toShifted"
- group8 xs
- | null zs = pad ys : []
- | otherwise = ys : group8 zs
- where
- (ys,zs) = splitAt 8 xs
- pad xs = take 8 $ xs ++ repeat F
-
-toShiftedArray :: Bits -> ShiftedArray
-toShiftedArray bits = listArray (0,7) $ map (toShifted bits) [0..7]
+huffmanCode :: UArray Int Word64
+huffmanCode = listArray (0,idxEos) huffmanTable'
----------------------------------------------------------------
@@ -93,55 +43,55 @@
encode :: HuffmanEncoding
encode dst bs = withReadBuffer bs $ enc dst
+-- The maximum length of Huffman code is 30.
+-- 40 is enough as a work space.
+initialOffset :: Int
+initialOffset = 40
+
+shiftForWrite :: Int
+shiftForWrite = 32
+
enc :: WorkingBuffer -> ReadBuffer -> IO Int
enc WorkingBuffer{..} rbuf = do
beg <- readIORef offset
- end <- go 0 beg
+ end <- go (beg,0,initialOffset)
writeIORef offset end
let !len = end `minusPtr` beg
return len
where
- go n ptr = do
- more <- hasOneByte rbuf
- if more then do
- !i <- fromIntegral <$> getByte rbuf
- let Shifted n' len b bs = (aosa ! i) ! n
- !ptr' | n' == 0 = ptr `plusPtr` len
- | otherwise = ptr `plusPtr` (len - 1)
- when (ptr' >= limit) $ throwIO BufferOverrun
- if n == 0 then
- poke ptr b
- else do
- b0 <- peek ptr
- poke ptr (b0 .|. b)
- copy (ptr `plusPtr` 1) bs
- go n' ptr'
- else
- if (n == 0) then
- return ptr
- else do
- let Shifted _ _ b _ = (aosa ! idxEos) ! n
- b0 <- peek ptr
- poke ptr (b0 .|. b)
- let !ptr' = ptr `plusPtr` 1
- return ptr'
-
-{-# INLINE copy #-}
-copy :: Ptr Word8 -> WS -> IO ()
-copy _ W0 = return ()
-copy ptr (W1 w1) = poke ptr w1
-copy ptr (W2 w1 w2) = do
- poke ptr w1
- poke (ptr `plusPtr` 1) w2
-copy ptr (W3 w1 w2 w3) = do
- poke ptr w1
- poke (ptr `plusPtr` 1) w2
- poke (ptr `plusPtr` 2) w3
-copy ptr (W4 w1 w2 w3 w4) = do
- poke ptr w1
- poke (ptr `plusPtr` 1) w2
- poke (ptr `plusPtr` 2) w3
- poke (ptr `plusPtr` 3) w4
+ go (dst,encoded,off) = do
+ !i <- getByte' rbuf
+ if i >= 0 then
+ copy dst (bond i) >>= go
+ else if off == initialOffset then
+ return dst
+ else do
+ let (encoded1,_) = bond idxEos
+ write dst encoded1
+ where
+ {-# INLINE bond #-}
+ bond i = (encoded', off')
+ where
+ !len = huffmanLength `unsafeAt` i
+ !code = huffmanCode `unsafeAt` i
+ !scode = code `shiftL` (off - len)
+ !encoded' = encoded .|. scode
+ !off' = off - len
+ {-# INLINE write #-}
+ write p w = do
+ when (p >= limit) $ throwIO BufferOverrun
+ let !w8 = fromIntegral (w `shiftR` shiftForWrite) :: Word8
+ poke p w8
+ let !p' = p `plusPtr` 1
+ return p'
+ {-# INLINE copy #-}
+ copy p (w,o)
+ | o > shiftForWrite = return (p,w,o)
+ | otherwise = do
+ p' <- write p w
+ let !w' = w `shiftL` 8
+ !o' = o + 8
+ copy p' (w',o')
encodeHuffman :: ByteString -> IO ByteString
encodeHuffman bs = withTemporaryBuffer 4096 $ \wbuf ->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/Huffman/Table.hs new/http2-1.6.2/Network/HPACK/Huffman/Table.hs
--- old/http2-1.6.1/Network/HPACK/Huffman/Table.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/Huffman/Table.hs 2016-08-15 05:42:18.000000000 +0200
@@ -1,5 +1,6 @@
module Network.HPACK.Huffman.Table where
+import Data.Word (Word64)
import Network.HPACK.Huffman.Bit
huffmanTable :: [Bits]
@@ -262,3 +263,264 @@
, [T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,F,T,T,T,F]
, [T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T]
]
+
+huffmanTable' :: [Word64]
+huffmanTable' = [
+ 0x1ff8
+ , 0x7fffd8
+ , 0xfffffe2
+ , 0xfffffe3
+ , 0xfffffe4
+ , 0xfffffe5
+ , 0xfffffe6
+ , 0xfffffe7
+ , 0xfffffe8
+ , 0xffffea
+ , 0x3ffffffc
+ , 0xfffffe9
+ , 0xfffffea
+ , 0x3ffffffd
+ , 0xfffffeb
+ , 0xfffffec
+ , 0xfffffed
+ , 0xfffffee
+ , 0xfffffef
+ , 0xffffff0
+ , 0xffffff1
+ , 0xffffff2
+ , 0x3ffffffe
+ , 0xffffff3
+ , 0xffffff4
+ , 0xffffff5
+ , 0xffffff6
+ , 0xffffff7
+ , 0xffffff8
+ , 0xffffff9
+ , 0xffffffa
+ , 0xffffffb
+ , 0x14
+ , 0x3f8
+ , 0x3f9
+ , 0xffa
+ , 0x1ff9
+ , 0x15
+ , 0xf8
+ , 0x7fa
+ , 0x3fa
+ , 0x3fb
+ , 0xf9
+ , 0x7fb
+ , 0xfa
+ , 0x16
+ , 0x17
+ , 0x18
+ , 0x0
+ , 0x1
+ , 0x2
+ , 0x19
+ , 0x1a
+ , 0x1b
+ , 0x1c
+ , 0x1d
+ , 0x1e
+ , 0x1f
+ , 0x5c
+ , 0xfb
+ , 0x7ffc
+ , 0x20
+ , 0xffb
+ , 0x3fc
+ , 0x1ffa
+ , 0x21
+ , 0x5d
+ , 0x5e
+ , 0x5f
+ , 0x60
+ , 0x61
+ , 0x62
+ , 0x63
+ , 0x64
+ , 0x65
+ , 0x66
+ , 0x67
+ , 0x68
+ , 0x69
+ , 0x6a
+ , 0x6b
+ , 0x6c
+ , 0x6d
+ , 0x6e
+ , 0x6f
+ , 0x70
+ , 0x71
+ , 0x72
+ , 0xfc
+ , 0x73
+ , 0xfd
+ , 0x1ffb
+ , 0x7fff0
+ , 0x1ffc
+ , 0x3ffc
+ , 0x22
+ , 0x7ffd
+ , 0x3
+ , 0x23
+ , 0x4
+ , 0x24
+ , 0x5
+ , 0x25
+ , 0x26
+ , 0x27
+ , 0x6
+ , 0x74
+ , 0x75
+ , 0x28
+ , 0x29
+ , 0x2a
+ , 0x7
+ , 0x2b
+ , 0x76
+ , 0x2c
+ , 0x8
+ , 0x9
+ , 0x2d
+ , 0x77
+ , 0x78
+ , 0x79
+ , 0x7a
+ , 0x7b
+ , 0x7ffe
+ , 0x7fc
+ , 0x3ffd
+ , 0x1ffd
+ , 0xffffffc
+ , 0xfffe6
+ , 0x3fffd2
+ , 0xfffe7
+ , 0xfffe8
+ , 0x3fffd3
+ , 0x3fffd4
+ , 0x3fffd5
+ , 0x7fffd9
+ , 0x3fffd6
+ , 0x7fffda
+ , 0x7fffdb
+ , 0x7fffdc
+ , 0x7fffdd
+ , 0x7fffde
+ , 0xffffeb
+ , 0x7fffdf
+ , 0xffffec
+ , 0xffffed
+ , 0x3fffd7
+ , 0x7fffe0
+ , 0xffffee
+ , 0x7fffe1
+ , 0x7fffe2
+ , 0x7fffe3
+ , 0x7fffe4
+ , 0x1fffdc
+ , 0x3fffd8
+ , 0x7fffe5
+ , 0x3fffd9
+ , 0x7fffe6
+ , 0x7fffe7
+ , 0xffffef
+ , 0x3fffda
+ , 0x1fffdd
+ , 0xfffe9
+ , 0x3fffdb
+ , 0x3fffdc
+ , 0x7fffe8
+ , 0x7fffe9
+ , 0x1fffde
+ , 0x7fffea
+ , 0x3fffdd
+ , 0x3fffde
+ , 0xfffff0
+ , 0x1fffdf
+ , 0x3fffdf
+ , 0x7fffeb
+ , 0x7fffec
+ , 0x1fffe0
+ , 0x1fffe1
+ , 0x3fffe0
+ , 0x1fffe2
+ , 0x7fffed
+ , 0x3fffe1
+ , 0x7fffee
+ , 0x7fffef
+ , 0xfffea
+ , 0x3fffe2
+ , 0x3fffe3
+ , 0x3fffe4
+ , 0x7ffff0
+ , 0x3fffe5
+ , 0x3fffe6
+ , 0x7ffff1
+ , 0x3ffffe0
+ , 0x3ffffe1
+ , 0xfffeb
+ , 0x7fff1
+ , 0x3fffe7
+ , 0x7ffff2
+ , 0x3fffe8
+ , 0x1ffffec
+ , 0x3ffffe2
+ , 0x3ffffe3
+ , 0x3ffffe4
+ , 0x7ffffde
+ , 0x7ffffdf
+ , 0x3ffffe5
+ , 0xfffff1
+ , 0x1ffffed
+ , 0x7fff2
+ , 0x1fffe3
+ , 0x3ffffe6
+ , 0x7ffffe0
+ , 0x7ffffe1
+ , 0x3ffffe7
+ , 0x7ffffe2
+ , 0xfffff2
+ , 0x1fffe4
+ , 0x1fffe5
+ , 0x3ffffe8
+ , 0x3ffffe9
+ , 0xffffffd
+ , 0x7ffffe3
+ , 0x7ffffe4
+ , 0x7ffffe5
+ , 0xfffec
+ , 0xfffff3
+ , 0xfffed
+ , 0x1fffe6
+ , 0x3fffe9
+ , 0x1fffe7
+ , 0x1fffe8
+ , 0x7ffff3
+ , 0x3fffea
+ , 0x3fffeb
+ , 0x1ffffee
+ , 0x1ffffef
+ , 0xfffff4
+ , 0xfffff5
+ , 0x3ffffea
+ , 0x7ffff4
+ , 0x3ffffeb
+ , 0x7ffffe6
+ , 0x3ffffec
+ , 0x3ffffed
+ , 0x7ffffe7
+ , 0x7ffffe8
+ , 0x7ffffe9
+ , 0x7ffffea
+ , 0x7ffffeb
+ , 0xffffffe
+ , 0x7ffffec
+ , 0x7ffffed
+ , 0x7ffffee
+ , 0x7ffffef
+ , 0x7fffff0
+ , 0x3ffffee
+ , 0x3fffffff
+ ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/Table/Dynamic.hs new/http2-1.6.2/Network/HPACK/Table/Dynamic.hs
--- old/http2-1.6.1/Network/HPACK/Table/Dynamic.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/Table/Dynamic.hs 2016-08-15 05:42:18.000000000 +0200
@@ -30,7 +30,8 @@
#endif
import Control.Exception (bracket, throwIO)
import Control.Monad (forM, when, (>=>))
-import Data.Array.IO (IOArray, newArray, readArray, writeArray)
+import Data.Array.Base (unsafeRead, unsafeWrite)
+import Data.Array.IO (IOArray, newArray)
import qualified Data.ByteString.Char8 as BS
import Data.IORef
import Foreign.Marshal.Alloc
@@ -133,7 +134,7 @@
let !beg = off + 1
!end = off + n
tbl <- readIORef circularTable
- es <- mapM (adj maxN >=> readArray tbl) [beg .. end]
+ es <- mapM (adj maxN >=> unsafeRead tbl) [beg .. end]
let !ts = zip [1..] es
mapM_ printEntry ts
dsize <- readIORef dynamicTableSize
@@ -251,7 +252,7 @@
off <- readIORef offset
n <- readIORef numOfEntries
table <- readIORef circularTable
- let readTable i = adj maxN (off + i) >>= readArray table
+ let readTable i = adj maxN (off + i) >>= unsafeRead table
forM [1 .. n] readTable
copyEntries :: DynamicTable -> [Entry] -> IO ()
@@ -321,7 +322,7 @@
let i = off
!dsize' = dsize + entrySize e
!off' <- adj maxN (off - 1)
- writeArray table i e
+ unsafeWrite table i e
writeIORef offset off'
writeIORef numOfEntries $ n + 1
writeIORef dynamicTableSize dsize'
@@ -353,7 +354,7 @@
table <- readIORef circularTable
!i <- adj maxN (off + n + 1)
let !dsize' = dsize + entrySize e
- writeArray table i e
+ unsafeWrite table i e
writeIORef numOfEntries $ n + 1
writeIORef dynamicTableSize dsize'
case codeInfo of
@@ -369,8 +370,8 @@
n <- readIORef numOfEntries
!i <- adj maxN (off + n)
table <- readIORef circularTable
- e <- readArray table i
- writeArray table i dummyEntry -- let the entry GCed
+ e <- unsafeRead table i
+ unsafeWrite table i dummyEntry -- let the entry GCed
dsize <- readIORef dynamicTableSize
let !dsize' = dsize - entrySize e
writeIORef numOfEntries (n - 1)
@@ -386,7 +387,7 @@
!off <- readIORef offset
!didx <- adj maxN (idx + off - staticTableSize)
!table <- readIORef circularTable
- readArray table didx
+ unsafeRead table didx
----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/Table/RevIndex.hs new/http2-1.6.2/Network/HPACK/Table/RevIndex.hs
--- old/http2-1.6.1/Network/HPACK/Table/RevIndex.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/Table/RevIndex.hs 2016-08-15 05:42:18.000000000 +0200
@@ -13,8 +13,9 @@
#if __GLASGOW_HASKELL__ < 709
import Control.Applicative ((<$>), (<*>))
#endif
-import Data.Array (Array, (!))
+import Data.Array (Array)
import qualified Data.Array as A
+import Data.Array.Base (unsafeAt)
import Data.Function (on)
import Data.CaseInsensitive (foldedCase)
import Data.IORef
@@ -69,7 +70,7 @@
{-# INLINE lookupStaticRevIndex #-}
lookupStaticRevIndex :: Int -> HeaderValue -> (HIndex -> IO ()) -> (HIndex -> IO ()) -> IO ()
-lookupStaticRevIndex ix v fa' fbd' = case staticRevIndex ! ix of
+lookupStaticRevIndex ix v fa' fbd' = case staticRevIndex `unsafeAt` ix of
StaticEntry i Nothing -> fbd' i
StaticEntry i (Just m) -> case M.lookup v m of
Nothing -> fbd' i
@@ -87,7 +88,7 @@
renewDynamicRevIndex :: DynamicRevIndex -> IO ()
renewDynamicRevIndex drev = mapM_ clear [minTokenIx..maxStaticTokenIx]
where
- clear t = writeIORef (drev ! t) M.empty
+ clear t = writeIORef (drev `unsafeAt` t) M.empty
{-# INLINE lookupDynamicStaticRevIndex #-}
lookupDynamicStaticRevIndex :: Int -> HeaderValue -> DynamicRevIndex
@@ -95,7 +96,7 @@
-> (HIndex -> IO ())
-> IO ()
lookupDynamicStaticRevIndex ix v drev fa' fbd' = do
- let ref = drev ! ix
+ let ref = drev `unsafeAt` ix
m <- readIORef ref
case M.lookup v m of
Just i -> fa' i
@@ -105,13 +106,13 @@
insertDynamicRevIndex :: Token -> HeaderValue -> HIndex -> DynamicRevIndex -> IO ()
insertDynamicRevIndex t v i drev = modifyIORef ref $ M.insert v i
where
- ref = drev ! tokenIx t
+ ref = drev `unsafeAt` tokenIx t
{-# INLINE deleteDynamicRevIndex #-}
deleteDynamicRevIndex :: Token -> HeaderValue -> DynamicRevIndex -> IO ()
deleteDynamicRevIndex t v drev = modifyIORef ref $ M.delete v
where
- ref = drev ! tokenIx t
+ ref = drev `unsafeAt` tokenIx t
----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/Network/HPACK/Table/Static.hs new/http2-1.6.2/Network/HPACK/Table/Static.hs
--- old/http2-1.6.1/Network/HPACK/Table/Static.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/Network/HPACK/Table/Static.hs 2016-08-15 05:42:18.000000000 +0200
@@ -6,7 +6,8 @@
, staticTableList
) where
-import Data.Array (Array, listArray, (!))
+import Data.Array (Array, listArray)
+import Data.Array.Base (unsafeAt)
import Network.HPACK.Table.Entry
----------------------------------------------------------------
@@ -25,7 +26,7 @@
-- >>> toStaticEntry 50
-- Entry 37 (Token {ix = 40, shouldBeIndexed = True, isPseudo = False, tokenKey = "Range"}) ""
toStaticEntry :: Index -> Entry
-toStaticEntry sidx = staticTable ! sidx
+toStaticEntry sidx = staticTable `unsafeAt` (sidx - 1)
-- | Pre-defined static table.
staticTable :: Array Index Entry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/http2.cabal new/http2-1.6.2/http2.cabal
--- old/http2-1.6.1/http2.cabal 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/http2.cabal 2016-08-15 05:42:18.000000000 +0200
@@ -1,5 +1,5 @@
Name: http2
-Version: 1.6.1
+Version: 1.6.2
Author: Kazu Yamamoto <kazu(a)iij.ad.jp>
Maintainer: Kazu Yamamoto <kazu(a)iij.ad.jp>
License: BSD3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/test-frame/JSON.hs new/http2-1.6.2/test-frame/JSON.hs
--- old/http2-1.6.1/test-frame/JSON.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/test-frame/JSON.hs 2016-08-15 05:42:18.000000000 +0200
@@ -72,10 +72,10 @@
instance FromJSON ErrorCodeId where
parseJSON e = toErrorCodeId <$> parseJSON e
-instance ToJSON SettingsList where
+instance {-# OVERLAPPING #-} ToJSON SettingsList where
toJSON settings = toJSON $ map (first fromSettingsKeyId) settings
-instance FromJSON SettingsList where
+instance {-# OVERLAPPING #-} FromJSON SettingsList where
parseJSON x = map (first (fromJust . toSettingsKeyId)) <$> parseJSON x
instance ToJSON ByteString where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http2-1.6.1/test-hpack/JSON.hs new/http2-1.6.2/test-hpack/JSON.hs
--- old/http2-1.6.1/test-hpack/JSON.hs 2016-07-08 06:03:48.000000000 +0200
+++ new/http2-1.6.2/test-hpack/JSON.hs 2016-08-15 05:42:18.000000000 +0200
@@ -72,11 +72,11 @@
,"seqno" .= no
]
-instance FromJSON HeaderList where
+instance {-# OVERLAPPING #-} FromJSON HeaderList where
parseJSON (Array a) = mapM parseJSON $ V.toList a
parseJSON _ = mzero
-instance ToJSON HeaderList where
+instance {-# OVERLAPPING #-} ToJSON HeaderList where
toJSON hs = toJSON $ map toJSON hs
instance {-# OVERLAPPING #-} FromJSON Header where
1
0
Hello community,
here is the log from the commit of package syslog-ng for openSUSE:Factory checked in at 2016-08-26 23:17:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/syslog-ng (Old)
and /work/SRC/openSUSE:Factory/.syslog-ng.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "syslog-ng"
Changes:
--------
--- /work/SRC/openSUSE:Factory/syslog-ng/syslog-ng.changes 2016-07-30 00:26:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.syslog-ng.new/syslog-ng.changes 2016-08-26 23:17:05.000000000 +0200
@@ -1,0 +2,19 @@
+Tue Aug 23 08:30:02 UTC 2016 - peter(a)czanik.hu
+
+- update to 3.8.1
+ for a complete list of changes see:
+ https://github.com/balabit/syslog-ng/releases/tag/syslog-ng-3.8.1
+- add Java support. NOTE:
+ no modules due to missing gradle and JAR dependencies
+- add curl HTTP support
+- disable mongodb for SLES11 (fails to compile)
+- update configuration to 3.8
+- change datadir parameter (default now includes 'syslog-ng')
+- add cef & date modules, apache, loggly, logmatic scl-s
+- add disk buffer support
+- update java module list
+- uncomment Alias=syslog.service in syslog-ng.service
+- rename system-expand to system-expand.sh
+- add missing: Obsolates: syslog-ng-json (JSON is now in core)
+
+-------------------------------------------------------------------
Old:
----
syslog-ng-3.7.3.tar.gz
New:
----
syslog-ng-3.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ syslog-ng.spec ++++++
--- /var/tmp/diff_new_pack.kthxbf/_old 2016-08-26 23:17:06.000000000 +0200
+++ /var/tmp/diff_new_pack.kthxbf/_new 2016-08-26 23:17:06.000000000 +0200
@@ -23,7 +23,7 @@
%define syslog_ng_rundir %{_localstatedir}/run/syslog-ng
%endif
%define syslog_ng_sockets_cfg %{syslog_ng_rundir}/additional-log-sockets.conf
-Version: 3.7.3
+Version: 3.8.1
Release: 0
Summary: The new-generation syslog-daemon
License: GPL-2.0
@@ -40,11 +40,11 @@
%bcond_without systemd
%bcond_without dbi
%bcond_without python
+%bcond_without java
+%bcond_without mongodb
+%if 0%{?suse_version} != 1320
%bcond_without redis
-%else
-%bcond_with systemd
-%bcond_with dbi
-%bcond_with python
+%endif
%endif
%if 0%{?suse_version} >= 1230
@@ -83,7 +83,7 @@
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: glib2-devel
-
+BuildRequires: libcurl-devel
%if 0%{?with_geoip}
BuildRequires: libGeoIP-devel
%endif
@@ -106,6 +106,9 @@
%if %{with dbi}
BuildRequires: libdbi-devel
%endif
+%if %{with java}
+BuildRequires: java-1_7_0-openjdk-devel
+%endif
%if %{with python}
BuildRequires: python-devel
@@ -119,6 +122,8 @@
BuildRequires: libnet
%endif
+Obsoletes: syslog-ng-json
+
#!BuildIgnore: rsyslog
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -147,6 +152,18 @@
Balázs Scheidler <bazsi(a)balabit.hu>
BalaBit IT Ltd. <info(a)balabit.hu>
+%if %{with java}
+
+%package java
+Summary: Java destination support for syslog-ng
+Group: System/Libraries
+Requires: %{name} = %{version}
+
+%description java
+This package provides java destination support for syslog-ng.
+
+%endif
+
%if %{with dbi}
%package sql
@@ -283,7 +300,7 @@
--with-module-dir="%{_libdir}/syslog-ng" \
--with-module-path="%{_libdir}/syslog-ng" \
--with-default-modules="affile,afprog,afsocket,afuser,basicfuncs,csvparser,dbparser,syslogformat" \
- --datadir="%{_datadir}/syslog-ng" \
+ --datadir="%{_datadir}" \
--without-compile-date \
--enable-ssl \
%if 0%{?with_smtp}
@@ -291,6 +308,7 @@
%endif
%if %{with systemd}
--enable-systemd \
+ --with-systemd-journal=system \
%endif
%if %{with dbi}
--enable-sql \
@@ -301,10 +319,20 @@
%if 0%{?with_geoip}
--enable-geoip \
%endif
+%if %{with mongodb}
--enable-mongodb \
+%else
+ --disable-mongodb \
+%endif
%if %{with redis}
--enable-redis \
%endif
+%if %{with java}
+ --enable-java \
+%else
+ --disable-java \
+%endif
+ --disable-java-modules \
%if %{with python}
--enable-python \
%else
@@ -359,7 +387,6 @@
rm -fr %{buildroot}/usr/share/syslog-ng/include/scl/elasticsearch/
rm -fr %{buildroot}/usr/share/syslog-ng/include/scl/hdfs/
rm -fr %{buildroot}/usr/share/syslog-ng/include/scl/kafka/
-rm -fr %{buildroot}/usr/share/syslog-ng/include/scl/mbox/
# create ghosts
install -d -m755 %{buildroot}%{syslog_ng_rundir}
@@ -520,6 +547,7 @@
%endif
%attr(755,root,root) %{_bindir}/loggen
%attr(755,root,root) %{_bindir}/pdbtool
+%attr(755,root,root) %{_bindir}/dqtool
%{_mandir}/man5/syslog-ng.conf.5*
%{_mandir}/man8/syslog-ng.8*
%{_mandir}/man1/pdbtool.1*
@@ -537,6 +565,10 @@
%dir %{_datadir}/syslog-ng/include/scl/system
%dir %{_datadir}/syslog-ng/include/scl/cim
%dir %{_datadir}/syslog-ng/include/scl/solaris
+%dir %{_datadir}/syslog-ng/include/scl/mbox/
+%dir %{_datadir}/syslog-ng/include/scl/apache/
+%dir %{_datadir}/syslog-ng/include/scl/loggly/
+%dir %{_datadir}/syslog-ng/include/scl/logmatic/
%dir %{_datadir}/syslog-ng/xsd
%dir %{_sysconfdir}/syslog-ng
%dir %{_sysconfdir}/syslog-ng/conf.d
@@ -550,10 +582,13 @@
%attr(0644,root,root) %ghost %{syslog_ng_sockets_cfg}
%{_localstatedir}/adm/fillup-templates/sysconfig.syslog-ng
%{_libdir}/libsyslog-ng-*.so.*
+%attr(755,root,root) %{_libdir}/syslog-ng/libadd-contextual-data.so
%attr(755,root,root) %{_libdir}/syslog-ng/libafamqp.so
%attr(755,root,root) %{_libdir}/syslog-ng/libaffile.so
%attr(755,root,root) %{_libdir}/syslog-ng/libafprog.so
+%if %{with mongodb}
%attr(755,root,root) %{_libdir}/syslog-ng/libafmongodb.so
+%endif
%attr(755,root,root) %{_libdir}/syslog-ng/libafsocket.so
%attr(755,root,root) %{_libdir}/syslog-ng/libafstomp.so
%attr(755,root,root) %{_libdir}/syslog-ng/libafuser.so
@@ -561,12 +596,16 @@
%attr(755,root,root) %{_libdir}/syslog-ng/libconfgen.so
%attr(755,root,root) %{_libdir}/syslog-ng/libcsvparser.so
%attr(755,root,root) %{_libdir}/syslog-ng/libcryptofuncs.so
+%attr(755,root,root) %{_libdir}/syslog-ng/libcurl.so
%attr(755,root,root) %{_libdir}/syslog-ng/libdbparser.so
%attr(755,root,root) %{_libdir}/syslog-ng/libgraphite.so
%attr(755,root,root) %{_libdir}/syslog-ng/libjson-plugin.so
%attr(755,root,root) %{_libdir}/syslog-ng/libkvformat.so
%attr(755,root,root) %{_libdir}/syslog-ng/liblinux-kmsg-format.so
%attr(755,root,root) %{_libdir}/syslog-ng/libpseudofile.so
+%attr(755,root,root) %{_libdir}/syslog-ng/libcef.so
+%attr(755,root,root) %{_libdir}/syslog-ng/libdate.so
+%attr(755,root,root) %{_libdir}/syslog-ng/libdisk-buffer.so
%if %{with systemd} && ! %{with systemv}
%attr(755,root,root) %{_libdir}/syslog-ng/libsdjournal.so
%endif
@@ -583,6 +622,10 @@
%attr(644,root,root) %{_datadir}/syslog-ng/include/scl/syslogconf/plugin.conf
%attr(644,root,root) %{_datadir}/syslog-ng/include/scl/cim/template.conf
%attr(644,root,root) %{_datadir}/syslog-ng/include/scl/solaris/plugin.conf
+%attr(644,root,root) %{_datadir}/syslog-ng/include/scl/mbox/mbox.conf
+%attr(644,root,root) %{_datadir}/syslog-ng/include/scl/apache/apache.conf
+%attr(644,root,root) %{_datadir}/syslog-ng/include/scl/loggly/loggly.conf
+%attr(644,root,root) %{_datadir}/syslog-ng/include/scl/logmatic/logmatic.conf
%attr(644,root,root) %{_datadir}/syslog-ng/xsd/*
%if %{with dbi}
@@ -606,7 +649,9 @@
%attr(755,root,root) %{_datadir}/syslog-ng/tools/merge-grammar.pl
%attr(644,root,root) %{_datadir}/syslog-ng/tools/cfg-grammar.y
%attr(644,root,root) %{_datadir}/syslog-ng/tools/lex-rules.am
-%attr(755,root,root) %{_datadir}/syslog-ng/tools/system-expand
+%attr(755,root,root) %{_datadir}/syslog-ng/tools/system-expand.sh
+%attr(644,root,root) %{_libdir}/libsyslog-ng-native-connector.a
+%attr(644,root,root) %{_libdir}/pkgconfig/syslog-ng-native-connector.pc
%if %{with python}
@@ -621,6 +666,15 @@
%endif
+%if %{with java}
+
+%files java
+%attr(755,root,root) %{_libdir}/syslog-ng/libmod-java.so
+%dir %{_libdir}/syslog-ng/java-modules
+%attr(755,root,root) %{_libdir}/syslog-ng/java-modules/syslog-ng-core.jar
+
+%endif
+
%if 0%{?with_smtp}
%files smtp
++++++ syslog-ng-3.7.3.tar.gz -> syslog-ng-3.8.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/syslog-ng/syslog-ng-3.7.3.tar.gz /work/SRC/openSUSE:Factory/.syslog-ng.new/syslog-ng-3.8.1.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package rubygem-arel for openSUSE:Factory checked in at 2016-08-26 23:17:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-arel (Old)
and /work/SRC/openSUSE:Factory/.rubygem-arel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-arel"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-arel/rubygem-arel.changes 2016-04-28 16:52:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-arel.new/rubygem-arel.changes 2016-08-26 23:17:03.000000000 +0200
@@ -1,0 +2,26 @@
+Thu Jul 28 04:28:39 UTC 2016 - coolo(a)suse.com
+
+- updated to version 7.1.1
+ see installed History.txt
+
+ === 7.1.1 / 2016-07-27
+
+ * Bug Fixes
+
+ * Fix warning in `Casted#hash`
+
+-------------------------------------------------------------------
+Wed Jul 20 04:28:32 UTC 2016 - coolo(a)suse.com
+
+- updated to version 7.1.0
+ see installed History.txt
+
+ === 7.1.0 / 2016-07-19
+
+ * Enhancements
+
+ * Support Ruby 2.4 unified Integer class
+ * Implement `CASE` conditional expression
+ * Support for Bitwise Operations as `InfixOperations`
+
+-------------------------------------------------------------------
Old:
----
arel-7.0.0.gem
New:
----
arel-7.1.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-arel.spec ++++++
--- /var/tmp/diff_new_pack.LSRw6S/_old 2016-08-26 23:17:04.000000000 +0200
+++ /var/tmp/diff_new_pack.LSRw6S/_new 2016-08-26 23:17:04.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-arel
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -24,7 +24,7 @@
#
Name: rubygem-arel
-Version: 7.0.0
+Version: 7.1.1
Release: 0
%define mod_name arel
%define mod_full_name %{mod_name}-%{version}
@@ -56,7 +56,7 @@
%install
%gem_install \
- --doc-files="History.txt MIT-LICENSE.txt README.markdown" \
+ --doc-files="History.txt MIT-LICENSE.txt README.md" \
-f
%gem_packages
++++++ arel-7.0.0.gem -> arel-7.1.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/History.txt new/History.txt
--- old/History.txt 2015-12-17 21:03:56.000000000 +0100
+++ new/History.txt 2016-07-28 01:17:50.000000000 +0200
@@ -1,3 +1,17 @@
+=== 7.1.1 / 2016-07-27
+
+* Bug Fixes
+
+ * Fix warning in `Casted#hash`
+
+=== 7.1.0 / 2016-07-19
+
+* Enhancements
+
+ * Support Ruby 2.4 unified Integer class
+ * Implement `CASE` conditional expression
+ * Support for Bitwise Operations as `InfixOperations`
+
=== 7.0.0 / 2015-12-17
* Enhancements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MIT-LICENSE.txt new/MIT-LICENSE.txt
--- old/MIT-LICENSE.txt 2015-12-17 21:03:56.000000000 +0100
+++ new/MIT-LICENSE.txt 2016-07-28 01:17:50.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2007-2015 Nick Kallen, Bryan Helmkamp, Emilio Tagua, Aaron Patterson
+Copyright (c) 2007-2016 Nick Kallen, Bryan Helmkamp, Emilio Tagua, Aaron Patterson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.markdown new/README.markdown
--- old/README.markdown 2015-12-17 21:03:56.000000000 +0100
+++ new/README.markdown 1970-01-01 01:00:00.000000000 +0100
@@ -1,233 +0,0 @@
-# Arel
-
-* http://github.com/rails/arel
-
-## DESCRIPTION
-
-Arel Really Exasperates Logicians
-
-Arel is a SQL AST manager for Ruby. It
-
-1. Simplifies the generation of complex SQL queries
-2. Adapts to various RDBMSes
-
-It is intended to be a framework framework; that is, you can build your own ORM
-with it, focusing on innovative object and collection modeling as opposed to
-database compatibility and query generation.
-
-## Status
-
-For the moment, Arel uses Active Record's connection adapters to connect to the various engines, connection pooling, perform quoting, and do type conversion.
-
-## A Gentle Introduction
-
-Generating a query with Arel is simple. For example, in order to produce
-
-```sql
-SELECT * FROM users
-```
-
-you construct a table relation and convert it to sql:
-
-```ruby
-users = Arel::Table.new(:users)
-query = users.project(Arel.sql('*'))
-query.to_sql
-```
-
-### More Sophisticated Queries
-
-Here is a whirlwind tour through the most common SQL operators. These will probably cover 80% of all interaction with the database.
-
-First is the 'restriction' operator, `where`:
-
-```ruby
-users.where(users[:name].eq('amy'))
-# => SELECT * FROM users WHERE users.name = 'amy'
-```
-
-What would, in SQL, be part of the `SELECT` clause is called in Arel a `projection`:
-
-```ruby
-users.project(users[:id])
-# => SELECT users.id FROM users
-```
-
-Comparison operators `=`, `!=`, `<`, `>`, `<=`, `>=`, `IN`:
-
-```ruby
-users.where(users[:age].eq(10)).project(Arel.sql('*')) # => SELECT * FROM "users" WHERE "users"."age" = 10
-users.where(users[:age].not_eq(10)).project(Arel.sql('*')) # => SELECT * FROM "users" WHERE "users"."age" != 10
-users.where(users[:age].lt(10)).project(Arel.sql('*')) # => SELECT * FROM "users" WHERE "users"."age" < 10
-users.where(users[:age].gt(10)).project(Arel.sql('*')) # => SELECT * FROM "users" WHERE "users"."age" > 10
-users.where(users[:age].lteq(10)).project(Arel.sql('*')) # => SELECT * FROM "users" WHERE "users"."age" <= 10
-users.where(users[:age].gteq(10)).project(Arel.sql('*')) # => SELECT * FROM "users" WHERE "users"."age" >= 10
-users.where(users[:age].in([20, 16, 17])).project(Arel.sql('*')) # => SELECT * FROM "users" WHERE "users"."age" IN (20, 16, 17)
-```
-
-Joins resemble SQL strongly:
-
-```ruby
-users.join(photos).on(users[:id].eq(photos[:user_id]))
-# => SELECT * FROM users INNER JOIN photos ON users.id = photos.user_id
-```
-
-Left Joins
-
-```ruby
-users.join(photos, Arel::Nodes::OuterJoin).on(users[:id].eq(photos[:user_id]))
-# => SELECT FROM users LEFT OUTER JOIN photos ON users.id = photos.user_id
-```
-
-What are called `LIMIT` and `OFFSET` in SQL are called `take` and `skip` in Arel:
-
-```ruby
-users.take(5) # => SELECT * FROM users LIMIT 5
-users.skip(4) # => SELECT * FROM users OFFSET 4
-```
-
-`GROUP BY` is called `group`:
-
-```ruby
-users.project(users[:name]).group(users[:name])
-# => SELECT users.name FROM users GROUP BY users.name
-```
-
-The best property of arel is its "composability", or closure under all operations. For example, to restrict AND project, just "chain" the method invocations:
-
-```ruby
-users \
- .where(users[:name].eq('amy')) \
- .project(users[:id]) \
-# => SELECT users.id FROM users WHERE users.name = 'amy'
-```
-
-All operators are chainable in this way, and they are chainable any number of times, in any order.
-
-```ruby
-users.where(users[:name].eq('bob')).where(users[:age].lt(25))
-```
-
-The `OR` operator works like this:
-
-```ruby
-users.where(users[:name].eq('bob').or(users[:age].lt(25)))
-```
-
-The `AND` operator behaves similarly.
-
-Aggregate functions `AVG`, `SUM`, `COUNT`, `MIN`, `MAX`, `HAVING`:
-
-```ruby
-photos.group(photos[:user_id]).having(photos[:id].count.gt(5)) # => SELECT FROM photos GROUP BY photos.user_id HAVING COUNT(photos.id) > 5
-users.project(users[:age].sum) # => SELECT SUM(users.age) FROM users
-users.project(users[:age].average) # => SELECT AVG(users.age) FROM users
-users.project(users[:age].maximum) # => SELECT MAX(users.age) FROM users
-users.project(users[:age].minimum) # => SELECT MIN(users.age) FROM users
-users.project(users[:age].count) # => SELECT COUNT(users.age) FROM users
-```
-
-Aliasing Aggregate Functions:
-
-```ruby
-users.project(users[:age].average.as("mean_age")) # => SELECT AVG(users.age) AS mean_age FROM users
-```
-
-### The Crazy Features
-
-The examples above are fairly simple and other libraries match or come close to matching the expressiveness of Arel (e.g., `Sequel` in Ruby).
-
-#### Inline math operations
-
-Suppose we have a table `products` with prices in different currencies. And we have a table `currency_rates`, of constantly changing currency rates. In Arel:
-
-```ruby
-products = Arel::Table.new(:products)
-# Attributes: [:id, :name, :price, :currency_id]
-
-currency_rates = Arel::Table.new(:currency_rates)
-# Attributes: [:from_id, :to_id, :date, :rate]
-```
-
-Now, to order products by price in user preferred currency simply call:
-
-```ruby
-products.
- join(:currency_rates).on(products[:currency_id].eq(currency_rates[:from_id])).
- where(currency_rates[:to_id].eq(user_preferred_currency), currency_rates[:date].eq(Date.today)).
- order(products[:price] * currency_rates[:rate])
-```
-
-#### Complex Joins
-
-Where Arel really shines is in its ability to handle complex joins and aggregations. As a first example, let's consider an "adjacency list", a tree represented in a table. Suppose we have a table `comments`, representing a threaded discussion:
-
-```ruby
-comments = Arel::Table.new(:comments)
-```
-
-And this table has the following attributes:
-
-```ruby
-# [:id, :body, :parent_id]
-```
-
-The `parent_id` column is a foreign key from the `comments` table to itself.
-Joining a table to itself requires aliasing in SQL. This aliasing can be handled from Arel as below:
-
-```ruby
-replies = comments.alias
-comments_with_replies = \
- comments.join(replies).on(replies[:parent_id].eq(comments[:id])).where(comments[:id].eq(1))
-# => SELECT * FROM comments INNER JOIN comments AS comments_2 WHERE comments_2.parent_id = comments.id AND comments.id = 1
-```
-
-This will return the reply for the first comment.
-
-[Common Table Expressions(CTE)](https://en.wikipedia.org/wiki/Common_table_expressions#Co… support via:
-
-Create a `CTE`
-
-```ruby
-cte_table = Arel::Table.new(:cte_table)
-composed_cte = Arel::Nodes::As.new(cte_table, photos.where(photos[:created_at].gt(Date.current)))
-```
-
-Use the created `CTE`:
-
-```ruby
-users.
- join(cte_table).on(users[:id].eq(cte_table[:user_id])).
- project(users[:id], cte_table[:click].sum).
- with(composed_cte)
-
-# => WITH cte_table AS (SELECT FROM photos WHERE photos.created_at > '2014-05-02') SELECT users.id, SUM(cte_table.click) FROM users INNER JOIN cte_table ON users.id = cte_table.user_id
-```
-
-When your query is too complex for `Arel`, you can use `Arel::SqlLiteral`:
-
-```ruby
-photo_clicks = Arel::Nodes::SqlLiteral.new(<<-SQL
- CASE WHEN condition1 THEN calculation1
- WHEN condition2 THEN calculation2
- WHEN condition3 THEN calculation3
- ELSE default_calculation END
-SQL
-)
-photos.project(photo_clicks.as("photo_clicks"))
-# => SELECT CASE WHEN condition1 THEN calculation1
- WHEN condition2 THEN calculation2
- WHEN condition3 THEN calculation3
- ELSE default_calculation END
- FROM "photos"
-```
-
-## Contributing to Arel
-
-Arel is work of many contributors. You're encouraged to submit pull requests, propose
-features and discuss issues.
-
-See [CONTRIBUTING](CONTRIBUTING.md).
-
-## License
-Arel is released under the [MIT License](http://www.opensource.org/licenses/MIT).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/README.md 2016-07-28 01:17:50.000000000 +0200
@@ -0,0 +1,284 @@
+# Arel
+
+* http://github.com/rails/arel
+
+## DESCRIPTION
+
+Arel Really Exasperates Logicians
+
+Arel is a SQL AST manager for Ruby. It
+
+1. simplifies the generation of complex SQL queries, and
+2. adapts to various RDBMSes.
+
+It is intended to be a framework framework; that is, you can build your own ORM
+with it, focusing on innovative object and collection modeling as opposed to
+database compatibility and query generation.
+
+## Status
+
+For the moment, Arel uses Active Record's connection adapters to connect to the various engines and perform connection pooling, quoting, and type conversion.
+
+## A Gentle Introduction
+
+Generating a query with Arel is simple. For example, in order to produce
+
+```sql
+SELECT * FROM users
+```
+
+you construct a table relation and convert it to SQL:
+
+```ruby
+users = Arel::Table.new(:users)
+query = users.project(Arel.sql('*'))
+query.to_sql
+```
+
+### More Sophisticated Queries
+
+Here is a whirlwind tour through the most common SQL operators. These will probably cover 80% of all interaction with the database.
+
+First is the 'restriction' operator, `where`:
+
+```ruby
+users.where(users[:name].eq('amy'))
+# => SELECT * FROM users WHERE users.name = 'amy'
+```
+
+What would, in SQL, be part of the `SELECT` clause is called in Arel a `projection`:
+
+```ruby
+users.project(users[:id])
+# => SELECT users.id FROM users
+```
+
+Comparison operators `=`, `!=`, `<`, `>`, `<=`, `>=`, `IN`:
+
+```ruby
+users.where(users[:age].eq(10)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE "users"."age" = 10
+
+users.where(users[:age].not_eq(10)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE "users"."age" != 10
+
+users.where(users[:age].lt(10)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE "users"."age" < 10
+
+users.where(users[:age].gt(10)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE "users"."age" > 10
+
+users.where(users[:age].lteq(10)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE "users"."age" <= 10
+
+users.where(users[:age].gteq(10)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE "users"."age" >= 10
+
+users.where(users[:age].in([20, 16, 17])).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE "users"."age" IN (20, 16, 17)
+```
+
+Bitwise operators `&`, `|`, `^`, `<<`, `>>`:
+
+```ruby
+users.where((users[:bitmap] & 16).gt(0)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE ("users"."bitmap" & 16) > 0
+
+users.where((users[:bitmap] | 16).gt(0)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE ("users"."bitmap" | 16) > 0
+
+users.where((users[:bitmap] ^ 16).gt(0)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE ("users"."bitmap" ^ 16) > 0
+
+users.where((users[:bitmap] << 1).gt(0)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE ("users"."bitmap" << 1) > 0
+
+users.where((users[:bitmap] >> 1).gt(0)).project(Arel.sql('*'))
+# => SELECT * FROM "users" WHERE ("users"."bitmap" >> 1) > 0
+
+users.where((~ users[:bitmap]).gt(0)).project(Arel.sql('*'))
+# => SELECT FROM "users" WHERE ~ "users"."bitmap" > 0
+```
+
+Joins resemble SQL strongly:
+
+```ruby
+users.join(photos).on(users[:id].eq(photos[:user_id]))
+# => SELECT * FROM users INNER JOIN photos ON users.id = photos.user_id
+```
+
+Left joins:
+
+```ruby
+users.join(photos, Arel::Nodes::OuterJoin).on(users[:id].eq(photos[:user_id]))
+# => SELECT FROM users LEFT OUTER JOIN photos ON users.id = photos.user_id
+```
+
+What are called `LIMIT` and `OFFSET` in SQL are called `take` and `skip` in Arel:
+
+```ruby
+users.take(5) # => SELECT * FROM users LIMIT 5
+users.skip(4) # => SELECT * FROM users OFFSET 4
+```
+
+`GROUP BY` is called `group`:
+
+```ruby
+users.project(users[:name]).group(users[:name])
+# => SELECT users.name FROM users GROUP BY users.name
+```
+
+The best property of Arel is its "composability," or closure under all operations. For example, to restrict AND project, just "chain" the method invocations:
+
+```ruby
+users \
+ .where(users[:name].eq('amy')) \
+ .project(users[:id]) \
+# => SELECT users.id FROM users WHERE users.name = 'amy'
+```
+
+All operators are chainable in this way, and they are chainable any number of times, in any order.
+
+```ruby
+users.where(users[:name].eq('bob')).where(users[:age].lt(25))
+```
+
+The `OR` operator works like this:
+
+```ruby
+users.where(users[:name].eq('bob').or(users[:age].lt(25)))
+```
+
+The `AND` operator behaves similarly.
+
+Aggregate functions `AVG`, `SUM`, `COUNT`, `MIN`, `MAX`, `HAVING`:
+
+```ruby
+photos.group(photos[:user_id]).having(photos[:id].count.gt(5))
+# => SELECT FROM photos GROUP BY photos.user_id HAVING COUNT(photos.id) > 5
+
+users.project(users[:age].sum)
+# => SELECT SUM(users.age) FROM users
+
+users.project(users[:age].average)
+# => SELECT AVG(users.age) FROM users
+
+users.project(users[:age].maximum)
+# => SELECT MAX(users.age) FROM users
+
+users.project(users[:age].minimum)
+# => SELECT MIN(users.age) FROM users
+
+users.project(users[:age].count)
+# => SELECT COUNT(users.age) FROM users
+```
+
+Aliasing Aggregate Functions:
+
+```ruby
+users.project(users[:age].average.as("mean_age"))
+# => SELECT AVG(users.age) AS mean_age FROM users
+```
+
+### The Crazy Features
+
+The examples above are fairly simple and other libraries match or come close to matching the expressiveness of Arel (e.g. `Sequel` in Ruby).
+
+#### Inline math operations
+
+Suppose we have a table `products` with prices in different currencies. And we have a table `currency_rates`, of constantly changing currency rates. In Arel:
+
+```ruby
+products = Arel::Table.new(:products)
+# Attributes: [:id, :name, :price, :currency_id]
+
+currency_rates = Arel::Table.new(:currency_rates)
+# Attributes: [:from_id, :to_id, :date, :rate]
+```
+
+Now, to order products by price in user preferred currency simply call:
+
+```ruby
+products.
+ join(:currency_rates).on(products[:currency_id].eq(currency_rates[:from_id])).
+ where(currency_rates[:to_id].eq(user_preferred_currency), currency_rates[:date].eq(Date.today)).
+ order(products[:price] * currency_rates[:rate])
+```
+
+#### Complex Joins
+
+Where Arel really shines is in its ability to handle complex joins and aggregations. As a first example, let's consider an "adjacency list", a tree represented in a table. Suppose we have a table `comments`, representing a threaded discussion:
+
+```ruby
+comments = Arel::Table.new(:comments)
+```
+
+And this table has the following attributes:
+
+```ruby
+# [:id, :body, :parent_id]
+```
+
+The `parent_id` column is a foreign key from the `comments` table to itself.
+Joining a table to itself requires aliasing in SQL. This aliasing can be handled from Arel as below:
+
+```ruby
+replies = comments.alias
+comments_with_replies = \
+ comments.join(replies).on(replies[:parent_id].eq(comments[:id])).where(comments[:id].eq(1))
+# => SELECT * FROM comments INNER JOIN comments AS comments_2
+# WHERE comments_2.parent_id = comments.id AND comments.id = 1
+```
+
+This will return the reply for the first comment.
+
+[Common Table Expressions (CTE)](https://en.wikipedia.org/wiki/Common_table_expressions#Common_table_e…) support via:
+
+Create a `CTE`
+
+```ruby
+cte_table = Arel::Table.new(:cte_table)
+composed_cte = Arel::Nodes::As.new(cte_table, photos.where(photos[:created_at].gt(Date.current)))
+```
+
+Use the created `CTE`:
+
+```ruby
+users.
+ join(cte_table).on(users[:id].eq(cte_table[:user_id])).
+ project(users[:id], cte_table[:click].sum).
+ with(composed_cte)
+
+# => WITH cte_table AS (SELECT FROM photos WHERE photos.created_at > '2014-05-02')
+# SELECT users.id, SUM(cte_table.click)
+# FROM users INNER JOIN cte_table ON users.id = cte_table.user_id
+```
+
+When your query is too complex for `Arel`, you can use `Arel::SqlLiteral`:
+
+```ruby
+photo_clicks = Arel::Nodes::SqlLiteral.new(<<-SQL
+ CASE WHEN condition1 THEN calculation1
+ WHEN condition2 THEN calculation2
+ WHEN condition3 THEN calculation3
+ ELSE default_calculation END
+SQL
+)
+
+photos.project(photo_clicks.as("photo_clicks"))
+# => SELECT CASE WHEN condition1 THEN calculation1
+# WHEN condition2 THEN calculation2
+# WHEN condition3 THEN calculation3
+# ELSE default_calculation END
+# FROM "photos"
+```
+
+## Contributing to Arel
+
+Arel is the work of many contributors. You're encouraged to submit pull requests, propose
+features and discuss issues.
+
+See [CONTRIBUTING](CONTRIBUTING.md).
+
+## License
+Arel is released under the [MIT License](http://www.opensource.org/licenses/MIT).
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/math.rb new/lib/arel/math.rb
--- old/lib/arel/math.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/math.rb 2016-07-28 01:17:50.000000000 +0200
@@ -15,5 +15,29 @@
def /(other)
Arel::Nodes::Division.new(self, other)
end
+
+ def &(other)
+ Arel::Nodes::Grouping.new(Arel::Nodes::BitwiseAnd.new(self, other))
+ end
+
+ def |(other)
+ Arel::Nodes::Grouping.new(Arel::Nodes::BitwiseOr.new(self, other))
+ end
+
+ def ^(other)
+ Arel::Nodes::Grouping.new(Arel::Nodes::BitwiseXor.new(self, other))
+ end
+
+ def <<(other)
+ Arel::Nodes::Grouping.new(Arel::Nodes::BitwiseShiftLeft.new(self, other))
+ end
+
+ def >>(other)
+ Arel::Nodes::Grouping.new(Arel::Nodes::BitwiseShiftRight.new(self, other))
+ end
+
+ def ~@
+ Arel::Nodes::BitwiseNot.new(self)
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/nodes/case.rb new/lib/arel/nodes/case.rb
--- old/lib/arel/nodes/case.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/arel/nodes/case.rb 2016-07-28 01:17:50.000000000 +0200
@@ -0,0 +1,57 @@
+module Arel
+ module Nodes
+ class Case < Arel::Nodes::Node
+ include Arel::OrderPredications
+ include Arel::Predications
+ include Arel::AliasPredication
+
+ attr_accessor :case, :conditions, :default
+
+ def initialize expression = nil, default = nil
+ @case = expression
+ @conditions = []
+ @default = default
+ end
+
+ def when condition, expression = nil
+ @conditions << When.new(Nodes.build_quoted(condition), expression)
+ self
+ end
+
+ def then expression
+ @conditions.last.right = Nodes.build_quoted(expression)
+ self
+ end
+
+ def else expression
+ @default = Else.new Nodes.build_quoted(expression)
+ self
+ end
+
+ def initialize_copy other
+ super
+ @case = @case.clone if @case
+ @conditions = @conditions.map { |x| x.clone }
+ @default = @default.clone if @default
+ end
+
+ def hash
+ [@case, @conditions, @default].hash
+ end
+
+ def eql? other
+ self.class == other.class &&
+ self.case == other.case &&
+ self.conditions == other.conditions &&
+ self.default == other.default
+ end
+ alias :== :eql?
+ end
+
+ class When < Binary # :nodoc:
+ end
+
+ class Else < Unary # :nodoc:
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/nodes/casted.rb new/lib/arel/nodes/casted.rb
--- old/lib/arel/nodes/casted.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/nodes/casted.rb 2016-07-28 01:17:50.000000000 +0200
@@ -10,6 +10,10 @@
def nil?; @val.nil?; end
+ def hash
+ [self.class, val, attribute].hash
+ end
+
def eql? other
self.class == other.class &&
self.val == other.val &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/nodes/infix_operation.rb new/lib/arel/nodes/infix_operation.rb
--- old/lib/arel/nodes/infix_operation.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/nodes/infix_operation.rb 2016-07-28 01:17:50.000000000 +0200
@@ -40,5 +40,40 @@
end
end
+ class Concat < InfixOperation
+ def initialize left, right
+ super('||', left, right)
+ end
+ end
+
+ class BitwiseAnd < InfixOperation
+ def initialize left, right
+ super(:&, left, right)
+ end
+ end
+
+ class BitwiseOr < InfixOperation
+ def initialize left, right
+ super(:|, left, right)
+ end
+ end
+
+ class BitwiseXor < InfixOperation
+ def initialize left, right
+ super(:^, left, right)
+ end
+ end
+
+ class BitwiseShiftLeft < InfixOperation
+ def initialize left, right
+ super(:<<, left, right)
+ end
+ end
+
+ class BitwiseShiftRight < InfixOperation
+ def initialize left, right
+ super(:>>, left, right)
+ end
+ end
end
-end
\ No newline at end of file
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/nodes/unary.rb new/lib/arel/nodes/unary.rb
--- old/lib/arel/nodes/unary.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/nodes/unary.rb 2016-07-28 01:17:50.000000000 +0200
@@ -22,15 +22,19 @@
%w{
Bin
+ Cube
+ DistinctOn
Group
+ GroupingElement
+ GroupingSet
Limit
+ Lock
Not
Offset
On
Ordering
+ RollUp
Top
- Lock
- DistinctOn
}.each do |name|
const_set(name, Class.new(Unary))
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/nodes/unary_operation.rb new/lib/arel/nodes/unary_operation.rb
--- old/lib/arel/nodes/unary_operation.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/arel/nodes/unary_operation.rb 2016-07-28 01:17:50.000000000 +0200
@@ -0,0 +1,25 @@
+module Arel
+ module Nodes
+
+ class UnaryOperation < Unary
+ include Arel::Expressions
+ include Arel::Predications
+ include Arel::OrderPredications
+ include Arel::AliasPredication
+ include Arel::Math
+
+ attr_reader :operator
+
+ def initialize operator, operand
+ super(operand)
+ @operator = operator
+ end
+ end
+
+ class BitwiseNot < UnaryOperation
+ def initialize operand
+ super(:~, operand)
+ end
+ end
+ end
+end
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/nodes.rb new/lib/arel/nodes.rb
--- old/lib/arel/nodes.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/nodes.rb 2016-07-28 01:17:50.000000000 +0200
@@ -28,6 +28,7 @@
require 'arel/nodes/delete_statement'
require 'arel/nodes/table_alias'
require 'arel/nodes/infix_operation'
+require 'arel/nodes/unary_operation'
require 'arel/nodes/over'
require 'arel/nodes/matches'
require 'arel/nodes/regexp'
@@ -47,6 +48,9 @@
# windows
require 'arel/nodes/window'
+# conditional expressions
+require 'arel/nodes/case'
+
# joins
require 'arel/nodes/full_outer_join'
require 'arel/nodes/inner_join'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/predications.rb new/lib/arel/predications.rb
--- old/lib/arel/predications.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/predications.rb 2016-07-28 01:17:50.000000000 +0200
@@ -198,6 +198,14 @@
grouping_all :lteq, others
end
+ def when right
+ Nodes::Case.new(self).when quoted_node(right)
+ end
+
+ def concat other
+ Nodes::Concat.new self, other
+ end
+
private
def grouping_any method_id, others, *extras
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors/depth_first.rb new/lib/arel/visitors/depth_first.rb
--- old/lib/arel/visitors/depth_first.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors/depth_first.rb 2016-07-28 01:17:50.000000000 +0200
@@ -16,7 +16,12 @@
def unary o
visit o.expr
end
+ alias :visit_Arel_Nodes_Else :unary
alias :visit_Arel_Nodes_Group :unary
+ alias :visit_Arel_Nodes_Cube :unary
+ alias :visit_Arel_Nodes_RollUp :unary
+ alias :visit_Arel_Nodes_GroupingSet :unary
+ alias :visit_Arel_Nodes_GroupingElement :unary
alias :visit_Arel_Nodes_Grouping :unary
alias :visit_Arel_Nodes_Having :unary
alias :visit_Arel_Nodes_Limit :unary
@@ -53,6 +58,12 @@
visit o.distinct
end
+ def visit_Arel_Nodes_Case o
+ visit o.case
+ visit o.conditions
+ visit o.default
+ end
+
def nary o
o.children.each { |child| visit child}
end
@@ -65,6 +76,7 @@
alias :visit_Arel_Nodes_As :binary
alias :visit_Arel_Nodes_Assignment :binary
alias :visit_Arel_Nodes_Between :binary
+ alias :visit_Arel_Nodes_Concat :binary
alias :visit_Arel_Nodes_DeleteStatement :binary
alias :visit_Arel_Nodes_DoesNotMatch :binary
alias :visit_Arel_Nodes_Equality :binary
@@ -86,8 +98,9 @@
alias :visit_Arel_Nodes_Regexp :binary
alias :visit_Arel_Nodes_RightOuterJoin :binary
alias :visit_Arel_Nodes_TableAlias :binary
- alias :visit_Arel_Nodes_Values :binary
alias :visit_Arel_Nodes_Union :binary
+ alias :visit_Arel_Nodes_Values :binary
+ alias :visit_Arel_Nodes_When :binary
def visit_Arel_Nodes_StringJoin o
visit o.left
@@ -128,6 +141,7 @@
alias :visit_FalseClass :terminal
alias :visit_Fixnum :terminal
alias :visit_Float :terminal
+ alias :visit_Integer :terminal
alias :visit_NilClass :terminal
alias :visit_String :terminal
alias :visit_Symbol :terminal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors/dot.rb new/lib/arel/visitors/dot.rb
--- old/lib/arel/visitors/dot.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors/dot.rb 2016-07-28 01:17:50.000000000 +0200
@@ -69,6 +69,10 @@
visit_edge o, "expr"
end
alias :visit_Arel_Nodes_Group :unary
+ alias :visit_Arel_Nodes_Cube :unary
+ alias :visit_Arel_Nodes_RollUp :unary
+ alias :visit_Arel_Nodes_GroupingSet :unary
+ alias :visit_Arel_Nodes_GroupingElement :unary
alias :visit_Arel_Nodes_Grouping :unary
alias :visit_Arel_Nodes_Having :unary
alias :visit_Arel_Nodes_Limit :unary
@@ -176,6 +180,7 @@
alias :visit_Arel_Nodes_As :binary
alias :visit_Arel_Nodes_Assignment :binary
alias :visit_Arel_Nodes_Between :binary
+ alias :visit_Arel_Nodes_Concat :binary
alias :visit_Arel_Nodes_DoesNotMatch :binary
alias :visit_Arel_Nodes_Equality :binary
alias :visit_Arel_Nodes_GreaterThan :binary
@@ -200,6 +205,7 @@
alias :visit_TrueClass :visit_String
alias :visit_FalseClass :visit_String
alias :visit_Arel_Nodes_BindParam :visit_String
+ alias :visit_Integer :visit_String
alias :visit_Fixnum :visit_String
alias :visit_BigDecimal :visit_String
alias :visit_Float :visit_String
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors/mysql.rb new/lib/arel/visitors/mysql.rb
--- old/lib/arel/visitors/mysql.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors/mysql.rb 2016-07-28 01:17:50.000000000 +0200
@@ -72,6 +72,14 @@
maybe_visit o.limit, collector
end
+ def visit_Arel_Nodes_Concat o, collector
+ collector << " CONCAT("
+ visit o.left, collector
+ collector << ", "
+ visit o.right, collector
+ collector << ") "
+ collector
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors/oracle12.rb new/lib/arel/visitors/oracle12.rb
--- old/lib/arel/visitors/oracle12.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors/oracle12.rb 2016-07-28 01:17:50.000000000 +0200
@@ -6,10 +6,12 @@
def visit_Arel_Nodes_SelectStatement o, collector
# Oracle does not allow LIMIT clause with select for update
if o.limit && o.lock
- o = o.dup
- o.limit = []
+ raise ArgumentError, <<-MSG
+ 'Combination of limit and lock is not supported.
+ because generated SQL statements
+ `SELECT FOR UPDATE and FETCH FIRST n ROWS` generates ORA-02014.`
+ MSG
end
-
super
end
@@ -48,6 +50,10 @@
super
end
+
+ def visit_Arel_Nodes_BindParam o, collector
+ collector.add_bind(o) { |i| ":a#{i}" }
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors/postgresql.rb new/lib/arel/visitors/postgresql.rb
--- old/lib/arel/visitors/postgresql.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors/postgresql.rb 2016-07-28 01:17:50.000000000 +0200
@@ -1,6 +1,10 @@
module Arel
module Visitors
class PostgreSQL < Arel::Visitors::ToSql
+ CUBE = 'CUBE'
+ ROLLUP = 'ROLLUP'
+ GROUPING_SET = 'GROUPING SET'
+
private
def visit_Arel_Nodes_Matches o, collector
@@ -43,6 +47,38 @@
def visit_Arel_Nodes_BindParam o, collector
collector.add_bind(o) { |i| "$#{i}" }
end
+
+ def visit_Arel_Nodes_GroupingElement o, collector
+ collector << "( "
+ visit(o.expr, collector) << " )"
+ end
+
+ def visit_Arel_Nodes_Cube o, collector
+ collector << CUBE
+ grouping_array_or_grouping_element o, collector
+ end
+
+ def visit_Arel_Nodes_RollUp o, collector
+ collector << ROLLUP
+ grouping_array_or_grouping_element o, collector
+ end
+
+ def visit_Arel_Nodes_GroupingSet o, collector
+ collector << GROUPING_SET
+ grouping_array_or_grouping_element o, collector
+ end
+
+ # Utilized by GroupingSet, Cube & RollUp visitors to
+ # handle grouping aggregation semantics
+ def grouping_array_or_grouping_element o, collector
+ if o.expr.is_a? Array
+ collector << "( "
+ visit o.expr, collector
+ collector << " )"
+ else
+ visit o.expr, collector
+ end
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors/sqlite.rb new/lib/arel/visitors/sqlite.rb
--- old/lib/arel/visitors/sqlite.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors/sqlite.rb 2016-07-28 01:17:50.000000000 +0200
@@ -12,6 +12,15 @@
o.limit = Arel::Nodes::Limit.new(-1) if o.offset && !o.limit
super
end
+
+ def visit_Arel_Nodes_True o, collector
+ collector << "1"
+ end
+
+ def visit_Arel_Nodes_False o, collector
+ collector << "0"
+ end
+
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors/to_sql.rb new/lib/arel/visitors/to_sql.rb
--- old/lib/arel/visitors/to_sql.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors/to_sql.rb 2016-07-28 01:17:50.000000000 +0200
@@ -199,7 +199,7 @@
collector << quote(value, attr && column_for(attr)).to_s
end
unless i == len
- collector << ', '
+ collector << COMMA
end
}
@@ -243,53 +243,33 @@
collector = maybe_visit o.set_quantifier, collector
- unless o.projections.empty?
- collector << SPACE
- len = o.projections.length - 1
- o.projections.each_with_index do |x, i|
- collector = visit(x, collector)
- collector << COMMA unless len == i
- end
- end
+ collect_nodes_for o.projections, collector, SPACE
if o.source && !o.source.empty?
collector << " FROM "
collector = visit o.source, collector
end
- unless o.wheres.empty?
- collector << WHERE
- len = o.wheres.length - 1
- o.wheres.each_with_index do |x, i|
- collector = visit(x, collector)
- collector << AND unless len == i
- end
- end
-
- unless o.groups.empty?
- collector << GROUP_BY
- len = o.groups.length - 1
- o.groups.each_with_index do |x, i|
- collector = visit(x, collector)
- collector << COMMA unless len == i
- end
- end
-
+ collect_nodes_for o.wheres, collector, WHERE, AND
+ collect_nodes_for o.groups, collector, GROUP_BY
unless o.havings.empty?
collector << " HAVING "
inject_join o.havings, collector, AND
end
+ collect_nodes_for o.windows, collector, WINDOW
- unless o.windows.empty?
- collector << WINDOW
- len = o.windows.length - 1
- o.windows.each_with_index do |x, i|
+ collector
+ end
+
+ def collect_nodes_for nodes, collector, spacer, connector = COMMA
+ unless nodes.empty?
+ collector << spacer
+ len = nodes.length - 1
+ nodes.each_with_index do |x, i|
collector = visit(x, collector)
- collector << COMMA unless len == i
+ collector << connector unless len == i
end
end
-
- collector
end
def visit_Arel_Nodes_Bin o, collector
@@ -349,13 +329,13 @@
end
if o.orders.any?
- collector << ' ' if o.partitions.any?
+ collector << SPACE if o.partitions.any?
collector << "ORDER BY "
collector = inject_join o.orders, collector, ", "
end
if o.framing
- collector << ' ' if o.partitions.any? or o.orders.any?
+ collector << SPACE if o.partitions.any? or o.orders.any?
collector = visit o.framing, collector
end
@@ -564,7 +544,7 @@
collector = visit o.left, collector
end
if o.right.any?
- collector << " " if o.left
+ collector << SPACE if o.left
collector = inject_join o.right, collector, ' '
end
collector
@@ -708,6 +688,35 @@
visit o.right, collector
end
+ def visit_Arel_Nodes_Case o, collector
+ collector << "CASE "
+ if o.case
+ visit o.case, collector
+ collector << " "
+ end
+ o.conditions.each do |condition|
+ visit condition, collector
+ collector << " "
+ end
+ if o.default
+ visit o.default, collector
+ collector << " "
+ end
+ collector << "END"
+ end
+
+ def visit_Arel_Nodes_When o, collector
+ collector << "WHEN "
+ visit o.left, collector
+ collector << " THEN "
+ visit o.right, collector
+ end
+
+ def visit_Arel_Nodes_Else o, collector
+ collector << "ELSE "
+ visit o.expr, collector
+ end
+
def visit_Arel_Nodes_UnqualifiedColumn o, collector
collector << "#{quote_column_name o.name}"
collector
@@ -733,6 +742,7 @@
alias :visit_Arel_Nodes_SqlLiteral :literal
alias :visit_Bignum :literal
alias :visit_Fixnum :literal
+ alias :visit_Integer :literal
def quoted o, a
if a && a.able_to_type_cast?
@@ -772,6 +782,11 @@
alias :visit_Arel_Nodes_Multiplication :visit_Arel_Nodes_InfixOperation
alias :visit_Arel_Nodes_Division :visit_Arel_Nodes_InfixOperation
+ def visit_Arel_Nodes_UnaryOperation o, collector
+ collector << " #{o.operator} "
+ visit o.expr, collector
+ end
+
def visit_Array o, collector
inject_join o, collector, ", "
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel/visitors.rb new/lib/arel/visitors.rb
--- old/lib/arel/visitors.rb 2015-12-17 21:03:57.000000000 +0100
+++ new/lib/arel/visitors.rb 2016-07-28 01:17:50.000000000 +0200
@@ -14,28 +14,5 @@
module Arel
module Visitors
- VISITORS = {
- 'postgresql' => Arel::Visitors::PostgreSQL,
- 'mysql' => Arel::Visitors::MySQL,
- 'mysql2' => Arel::Visitors::MySQL,
- 'mssql' => Arel::Visitors::MSSQL,
- 'sqlserver' => Arel::Visitors::MSSQL,
- 'oracle_enhanced' => Arel::Visitors::Oracle,
- 'sqlite' => Arel::Visitors::SQLite,
- 'sqlite3' => Arel::Visitors::SQLite,
- 'ibm_db' => Arel::Visitors::IBM_DB,
- 'informix' => Arel::Visitors::Informix,
- }
-
- ENGINE_VISITORS = Hash.new do |hash, engine|
- pool = engine.connection_pool
- adapter = pool.spec.config[:adapter]
- hash[engine] = (VISITORS[adapter] || Visitors::ToSql).new(engine)
- end
-
- def self.visitor_for engine
- ENGINE_VISITORS[engine]
- end
- class << self; alias :for :visitor_for; end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/arel.rb new/lib/arel.rb
--- old/lib/arel.rb 2015-12-17 21:03:56.000000000 +0100
+++ new/lib/arel.rb 2016-07-28 01:17:50.000000000 +0200
@@ -21,7 +21,7 @@
require 'arel/nodes'
module Arel
- VERSION = '7.0.0'
+ VERSION = '7.1.1'
def self.sql raw_sql
Arel::Nodes::SqlLiteral.new raw_sql
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-12-17 21:03:56.000000000 +0100
+++ new/metadata 2016-07-28 01:17:50.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: arel
version: !ruby/object:Gem::Version
- version: 7.0.0
+ version: 7.1.1
platform: ruby
authors:
- Aaron Patterson
@@ -11,7 +11,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2015-12-17 00:00:00.000000000 Z
+date: 2016-07-27 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: minitest
@@ -75,11 +75,11 @@
extra_rdoc_files:
- History.txt
- MIT-LICENSE.txt
-- README.markdown
+- README.md
files:
- History.txt
- MIT-LICENSE.txt
-- README.markdown
+- README.md
- lib/arel.rb
- lib/arel/alias_predication.rb
- lib/arel/attributes.rb
@@ -99,6 +99,7 @@
- lib/arel/nodes/ascending.rb
- lib/arel/nodes/binary.rb
- lib/arel/nodes/bind_param.rb
+- lib/arel/nodes/case.rb
- lib/arel/nodes/casted.rb
- lib/arel/nodes/count.rb
- lib/arel/nodes/delete_statement.rb
@@ -129,6 +130,7 @@
- lib/arel/nodes/terminal.rb
- lib/arel/nodes/true.rb
- lib/arel/nodes/unary.rb
+- lib/arel/nodes/unary_operation.rb
- lib/arel/nodes/unqualified_column.rb
- lib/arel/nodes/update_statement.rb
- lib/arel/nodes/values.rb
@@ -165,7 +167,7 @@
post_install_message:
rdoc_options:
- "--main"
-- README.markdown
+- README.md
require_paths:
- lib
required_ruby_version: !ruby/object:Gem::Requirement
@@ -180,7 +182,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.4.5.1
+rubygems_version: 2.6.6
signing_key:
specification_version: 4
summary: Arel Really Exasperates Logicians Arel is a SQL AST manager for Ruby
1
0
Hello community,
here is the log from the commit of package rubygem-puma for openSUSE:Factory checked in at 2016-08-26 23:16:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-puma (Old)
and /work/SRC/openSUSE:Factory/.rubygem-puma.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-puma"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-puma/rubygem-puma.changes 2016-04-14 13:06:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-puma.new/rubygem-puma.changes 2016-08-26 23:16:48.000000000 +0200
@@ -1,0 +2,86 @@
+Tue Jul 26 04:32:54 UTC 2016 - coolo(a)suse.com
+
+- updated to version 3.6.0
+ see installed History.txt
+
+ === 3.6.0 / 2016-07-24
+
+ * 12 bug fixes:
+ * Add ability to detect a shutting down server. Fixes #932
+ * Add support for Expect: 100-continue. Fixes #519
+ * Check SSLContext better. Fixes #828
+ * Clarify behavior of '-t <num>'. Fixes #984
+ * Don't default to VERIFY_PEER. Fixes #1028
+ * Don't use ENV['PWD'] on windows. Fixes #1023
+ * Enlarge the scope of catching app exceptions. Fixes #1027
+ * Execute background hooks after daemonizing. Fixes #925
+ * Handle HUP as a stop unless there is IO redirection. Fixes #911
+ * Implement chunked request handling. Fixes #620
+ * Just rescue exception to return a 500. Fixes #1027
+ * Redirect IO in the jruby daemon mode. Fixes #778
+
+-------------------------------------------------------------------
+Sat Jul 23 04:30:40 UTC 2016 - coolo(a)suse.com
+
+- updated to version 3.5.2
+ see installed History.txt
+
+ === 3.5.2 / 2016-07-20
+
+ * 1 bug fix:
+ * Don't let persistent_timeout be nil
+
+ * 1 PR merged:
+ * Merge pull request #1021 from benzrf/patch-1
+
+ === 3.5.1 / 2016-07-20
+
+ * 1 bug fix:
+ * Be sure to only listen on host:port combos once. Fixes #1022
+
+-------------------------------------------------------------------
+Wed Jul 20 04:30:08 UTC 2016 - coolo(a)suse.com
+
+- updated to version 3.5.0
+ see installed History.txt
+
+ === 3.5.0 / 2016-07-18
+
+ * 1 minor features:
+ * Allow persistent_timeout to be configured via the dsl.
+
+ * 9 bug fixes:
+ * Allow a bare % in a query string. Fixes #958
+ * Explicitly listen on all localhost addresses. Fixes #782
+ * Fix `TCPLogger` log error in tcp cluster mode.
+ * Fix puma/puma#968 Cannot bind SSL port due to missing verify_mode option
+ * Fix puma/puma#968 Default verify_mode to peer
+ * Log any exceptions in ThreadPool. Fixes #1010
+ * Silence connection errors in the reactor. Fixes #959
+ * Tiny fixes in hook documentation for #840
+ * It should not log requests if we want it to be quiet
+
+ * 5 doc fixes:
+ * Add How to stop Puma on Heroku using plugins to the example directory
+ * Provide both hot and phased restart in jungle script
+ * Update reference to the instances management script
+ * Update default number of threads
+ * Fix typo in example config
+
+ * 14 PRs merged:
+ * Merge pull request #1007 from willnet/patch-1
+ * Merge pull request #1014 from jeznet/patch-1
+ * Merge pull request #1015 from bf4/patch-1
+ * Merge pull request #1017 from jorihardman/configurable_persistent_timeout
+ * Merge pull request #954 from jf/master
+ * Merge pull request #955 from jf/add-request-info-to-standard-error-rescue
+ * Merge pull request #956 from maxkwallace/master
+ * Merge pull request #960 from kmayer/kmayer-plugins-heroku-restart
+ * Merge pull request #969 from frankwong15/master
+ * Merge pull request #970 from willnet/delete-blank-document
+ * Merge pull request #974 from rocketjob/feature/name_threads
+ * Merge pull request #977 from snow/master
+ * Merge pull request #981 from zach-chai/patch-1
+ * Merge pull request #993 from scorix/master
+
+-------------------------------------------------------------------
Old:
----
puma-3.4.0.gem
New:
----
puma-3.6.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-puma.spec ++++++
--- /var/tmp/diff_new_pack.3lYtaE/_old 2016-08-26 23:16:49.000000000 +0200
+++ /var/tmp/diff_new_pack.3lYtaE/_new 2016-08-26 23:16:49.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-puma
-Version: 3.4.0
+Version: 3.6.0
Release: 0
%define mod_name puma
%define mod_full_name %{mod_name}-%{version}
++++++ puma-3.4.0.gem -> puma-3.6.0.gem ++++++
++++ 2319 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package rubygem-bunny for openSUSE:Factory checked in at 2016-08-26 23:16:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-bunny (Old)
and /work/SRC/openSUSE:Factory/.rubygem-bunny.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-bunny"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-bunny/rubygem-bunny.changes 2016-06-14 23:08:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-bunny.new/rubygem-bunny.changes 2016-08-26 23:16:45.000000000 +0200
@@ -1,0 +2,11 @@
+Sat Jul 23 09:01:36 UTC 2016 - jengelh(a)inai.de
+
+- Run fdupes to elide duplicate documentation files
+
+-------------------------------------------------------------------
+Thu Jul 21 04:29:18 UTC 2016 - coolo(a)suse.com
+
+- updated to version 2.5.0
+ see installed ChangeLog.md
+
+-------------------------------------------------------------------
Old:
----
bunny-2.4.0.gem
New:
----
bunny-2.5.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-bunny.spec ++++++
--- /var/tmp/diff_new_pack.25Xpzs/_old 2016-08-26 23:16:46.000000000 +0200
+++ /var/tmp/diff_new_pack.25Xpzs/_new 2016-08-26 23:16:46.000000000 +0200
@@ -24,13 +24,14 @@
#
Name: rubygem-bunny
-Version: 2.4.0
+Version: 2.5.0
Release: 0
%define mod_name bunny
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: %{ruby >= 2.0}
BuildRequires: %{rubygem gem2rpm}
+BuildRequires: fdupes
BuildRequires: ruby-macros >= 5
Url: http://rubybunny.info
Source: http://rubygems.org/gems/%{mod_full_name}.gem
@@ -50,6 +51,7 @@
%gem_install \
--doc-files="ChangeLog.md LICENSE README.md" \
-f
+%fdupes %buildroot/%_prefix
%gem_packages
++++++ bunny-2.4.0.gem -> bunny-2.5.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CONTRIBUTING.md new/CONTRIBUTING.md
--- old/CONTRIBUTING.md 2016-06-11 23:24:31.000000000 +0200
+++ new/CONTRIBUTING.md 2016-07-20 13:34:54.000000000 +0200
@@ -55,7 +55,7 @@
### Running Test Suites
Prior to running the tests, configure the RabbitMQ permissions
-by running `./bin/ci/before_script`. The script uses `rabbitmqctl` and `rabbitmq-plugins`
+by running `./bin/ci/before_build`. The script uses `rabbitmqctl` and `rabbitmq-plugins`
to set up RabbitMQ in a way that Bunny test suites expect. Two environment variables,
`RABBITMQCTL` and `RABBITMQ_PLUGINS`, are available to control what `rabbitmqctl` and
`rabbitmq-plugins` commands will be used. By default they are taken from `PATH`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ChangeLog.md new/ChangeLog.md
--- old/ChangeLog.md 2016-06-11 23:24:31.000000000 +0200
+++ new/ChangeLog.md 2016-07-20 13:34:54.000000000 +0200
@@ -1,4 +1,9 @@
-## Changes between Bunny 2.3.0 and 2.4.0 (unreleased)
+## Changes between Bunny 2.4.0 and 2.5.0 (unreleased)
+
+No changes yet.
+
+
+## Changes between Bunny 2.3.0 and 2.4.0 (June 11th, 2016)
### Unconfirmed Delivery Tag Set Reset on Network Recovery
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/channel.rb new/lib/bunny/channel.rb
--- old/lib/bunny/channel.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/lib/bunny/channel.rb 2016-07-20 13:34:54.000000000 +0200
@@ -1783,6 +1783,8 @@
# @private
def wait_on_confirms_continuations
+ raise_if_no_longer_open!
+
if @connection.threaded
t = Thread.current
@threads_waiting_on_confirms_continuations << t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/exchange.rb new/lib/bunny/exchange.rb
--- old/lib/bunny/exchange.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/lib/bunny/exchange.rb 2016-07-20 13:34:54.000000000 +0200
@@ -1,3 +1,5 @@
+require 'amq/protocol'
+
module Bunny
# Represents AMQP 0.9.1 exchanges.
#
@@ -80,6 +82,8 @@
@internal = @options[:internal]
@arguments = @options[:arguments]
+ @bindings = Set.new
+
declare! unless opts[:no_declare] || predeclared? || (@name == AMQ::Protocol::EMPTY_STRING)
@channel.register_exchange(self)
@@ -169,6 +173,7 @@
# @api public
def bind(source, opts = {})
@channel.exchange_bind(source, self, opts)
+ @bindings.add(source: source, opts: opts)
self
end
@@ -189,6 +194,7 @@
# @api public
def unbind(source, opts = {})
@channel.exchange_unbind(source, self, opts)
+ @bindings.delete(source: source, opts: opts)
self
end
@@ -214,8 +220,11 @@
# @private
def recover_from_network_failure
- # puts "Recovering exchange #{@name} from network failure"
- declare! unless predefined?
+ declare! unless @options[:no_declare] ||predefined?
+
+ @bindings.each do |b|
+ bind(b[:source], b[:opts])
+ end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/queue.rb new/lib/bunny/queue.rb
--- old/lib/bunny/queue.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/lib/bunny/queue.rb 2016-07-20 13:34:54.000000000 +0200
@@ -341,7 +341,7 @@
# TODO: inject and use logger
# puts "Recovering queue #{@name}"
begin
- declare!
+ declare! unless @options[:no_declare]
@channel.register_queue(self)
rescue Exception => e
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/session.rb new/lib/bunny/session.rb
--- old/lib/bunny/session.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/lib/bunny/session.rb 2016-07-20 13:34:54.000000000 +0200
@@ -108,6 +108,7 @@
# @option connection_string_or_opts [String] :tls_key (nil) Path to client TLS/SSL private key file (.pem)
# @option connection_string_or_opts [Array<String>] :tls_ca_certificates Array of paths to TLS/SSL CA files (.pem), by default detected from OpenSSL configuration
# @option connection_string_or_opts [String] :verify_peer (true) Whether TLS peer verification should be performed
+ # @option connection_string_or_opts [Keyword] :tls_version (negotiated) What TLS version should be used (:TLSv1, :TLSv1_1, or :TLSv1_2)
# @option connection_string_or_opts [Integer] :continuation_timeout (15000) Timeout for client operations that expect a response (e.g. {Bunny::Queue#get}), in milliseconds.
# @option connection_string_or_opts [Integer] :connection_timeout (5) Timeout in seconds for connecting to the server.
# @option connection_string_or_opts [Proc] :hosts_shuffle_strategy A Proc that reorders a list of host strings, defaults to Array#shuffle
@@ -668,30 +669,28 @@
# @private
def recover_from_network_failure
- begin
- sleep @network_recovery_interval
- @logger.debug "About to start connection recovery..."
+ sleep @network_recovery_interval
+ @logger.debug "About to start connection recovery..."
- self.initialize_transport
+ self.initialize_transport
- @logger.warn "Retrying connection on next host in line: #{@transport.host}:#{@transport.port}"
- self.start
+ @logger.warn "Retrying connection on next host in line: #{@transport.host}:#{@transport.port}"
+ self.start
- if open?
- @recovering_from_network_failure = false
+ if open?
+ @recovering_from_network_failure = false
- recover_channels
- end
- rescue HostListDepleted
- reset_address_index
- retry
- rescue TCPConnectionFailedForAllHosts, TCPConnectionFailed, AMQ::Protocol::EmptyResponseError => e
- @logger.warn "TCP connection failed, reconnecting in #{@network_recovery_interval} seconds"
- sleep @network_recovery_interval
- if should_retry_recovery?
- @recovery_attempts -= 1 if @recovery_attempts
- retry if recoverable_network_failure?(e)
- end
+ recover_channels
+ end
+ rescue HostListDepleted
+ reset_address_index
+ retry
+ rescue TCPConnectionFailedForAllHosts, TCPConnectionFailed, AMQ::Protocol::EmptyResponseError => e
+ @logger.warn "TCP connection failed, reconnecting in #{@network_recovery_interval} seconds"
+ sleep @network_recovery_interval
+ if should_retry_recovery?
+ @recovery_attempts -= 1 if @recovery_attempts
+ retry if recoverable_network_failure?(e)
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/version.rb new/lib/bunny/version.rb
--- old/lib/bunny/version.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/lib/bunny/version.rb 2016-07-20 13:34:54.000000000 +0200
@@ -2,5 +2,5 @@
module Bunny
# @return [String] Version of the library
- VERSION = "2.4.0"
+ VERSION = "2.5.0"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-06-11 23:24:31.000000000 +0200
+++ new/metadata 2016-07-20 13:34:54.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: bunny
version: !ruby/object:Gem::Version
- version: 2.4.0
+ version: 2.5.0
platform: ruby
authors:
- Chris Duncan
@@ -12,7 +12,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2016-06-11 00:00:00.000000000 Z
+date: 2016-07-20 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: amq-protocol
@@ -150,7 +150,6 @@
- spec/higher_level_api/integration/basic_return_spec.rb
- spec/higher_level_api/integration/channel_close_spec.rb
- spec/higher_level_api/integration/channel_open_spec.rb
-- spec/higher_level_api/integration/confirm_select_spec.rb
- spec/higher_level_api/integration/connection_recovery_spec.rb
- spec/higher_level_api/integration/connection_spec.rb
- spec/higher_level_api/integration/connection_stop_spec.rb
@@ -209,6 +208,7 @@
- spec/unit/concurrent/condition_spec.rb
- spec/unit/concurrent/linked_continuation_queue_spec.rb
- spec/unit/concurrent/synchronized_sorted_set_spec.rb
+- spec/unit/exchange_recovery_spec.rb
- spec/unit/version_delivery_tag_spec.rb
homepage: http://rubybunny.info
licenses:
@@ -230,7 +230,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.4.8
+rubygems_version: 2.5.1
signing_key:
specification_version: 4
summary: Popular easy to use Ruby client for RabbitMQ
@@ -250,7 +250,6 @@
- spec/higher_level_api/integration/basic_return_spec.rb
- spec/higher_level_api/integration/channel_close_spec.rb
- spec/higher_level_api/integration/channel_open_spec.rb
-- spec/higher_level_api/integration/confirm_select_spec.rb
- spec/higher_level_api/integration/connection_recovery_spec.rb
- spec/higher_level_api/integration/connection_spec.rb
- spec/higher_level_api/integration/connection_stop_spec.rb
@@ -309,5 +308,6 @@
- spec/unit/concurrent/condition_spec.rb
- spec/unit/concurrent/linked_continuation_queue_spec.rb
- spec/unit/concurrent/synchronized_sorted_set_spec.rb
+- spec/unit/exchange_recovery_spec.rb
- spec/unit/version_delivery_tag_spec.rb
has_rdoc: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/higher_level_api/integration/confirm_select_spec.rb new/spec/higher_level_api/integration/confirm_select_spec.rb
--- old/spec/higher_level_api/integration/confirm_select_spec.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/spec/higher_level_api/integration/confirm_select_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-require "spec_helper"
-
-describe Bunny::Channel, "#confirm_select" do
- let(:connection) do
- c = Bunny.new(:user => "bunny_gem", :password => "bunny_password", :vhost => "bunny_testbed")
- c.start
- c
- end
-
- after :each do
- connection.close if connection.open?
- end
-
- it "is supported" do
- connection.with_channel do |ch|
- ch.confirm_select
- end
- end
-end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/higher_level_api/integration/connection_recovery_spec.rb new/spec/higher_level_api/integration/connection_recovery_spec.rb
--- old/spec/higher_level_api/integration/connection_recovery_spec.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/spec/higher_level_api/integration/connection_recovery_spec.rb 2016-07-20 13:34:54.000000000 +0200
@@ -1,403 +1,421 @@
require "spec_helper"
require "rabbitmq/http/client"
-unless ENV["CI"]
- describe "Connection recovery" do
- let(:connection) { }
- let(:http_client) { RabbitMQ::HTTP::Client.new("http://127.0.0.1:15672") }
-
- def close_all_connections!
- http_client.list_connections.each do |conn_info|
- begin
- http_client.close_connection(conn_info.name)
- rescue Bunny::ConnectionForced
- # This is not a problem, but the specs intermittently believe it is.
- end
- end
+describe "Connection recovery" do
+ let(:http_client) { RabbitMQ::HTTP::Client.new("http://127.0.0.1:15672") }
+ let(:logger) { Logger.new($stderr).tap {|logger| logger.level = Logger::FATAL} }
+ let(:recovery_interval) { 0.2 }
+
+ it "reconnects after grace period" do
+ with_open do |c|
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
end
+ end
- def wait_for_recovery
- sleep 1.5
+ it "reconnects after grace period (with multiple hosts)" do
+ with_open_multi_host do |c|
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
end
+ end
- def with_open(c = Bunny.new(:network_recovery_interval => 0.2, :recover_from_connection_close => true), &block)
- begin
- c.start
- block.call(c)
- ensure
- c.close
- end
+ it "reconnects after grace period (with multiple hosts, including a broken one)" do
+ with_open_multi_broken_host do |c|
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
end
+ end
- def with_open_multi_host( c = Bunny.new( :hosts => ["127.0.0.1", "localhost"],
- :network_recovery_interval => 0.2,
- :recover_from_connection_close => true), &block)
- begin
- c.start
- block.call(c)
- ensure
- c.close
- end
+ it "recovers channels" do
+ with_open do |c|
+ ch1 = c.create_channel
+ ch2 = c.create_channel
+ close_all_connections!
+ poll_until { channels.count.zero? }
+ poll_until { channels.count == 2 }
+ expect(ch1).to be_open
+ expect(ch2).to be_open
end
+ end
- def with_open_multi_broken_host( c = Bunny.new( :hosts => ["broken", "127.0.0.1", "localhost"],
- :hosts_shuffle_strategy => Proc.new { |hosts| hosts }, # We do not shuffle for these tests so we always hit the broken host
- :network_recovery_interval => 0.2,
- :recover_from_connection_close => true), &block)
- begin
- c.start
- block.call(c)
- ensure
- c.close
- end
+ it "recovers channels (with multiple hosts)" do
+ with_open_multi_host do |c|
+ ch1 = c.create_channel
+ ch2 = c.create_channel
+ close_all_connections!
+ poll_until { channels.count.zero? }
+ poll_until { channels.count == 2 }
+ expect(ch1).to be_open
+ expect(ch2).to be_open
end
+ end
- def with_recovery_attempts_limited_to(attempts = 3, &block)
- c = Bunny.new(:recover_from_connection_close => true, :network_recovery_interval => 0.2, :recovery_attempts => attempts)
- begin
- c.start
- block.call(c)
- ensure
- c.close
- end
+ it "recovers channels (with multiple hosts, including a broken one)" do
+ with_open_multi_broken_host do |c|
+ ch1 = c.create_channel
+ ch2 = c.create_channel
+ close_all_connections!
+ poll_until { channels.count.zero? }
+ poll_until { channels.count == 2 }
+ expect(ch1).to be_open
+ expect(ch2).to be_open
end
+ end
- def ensure_queue_recovery(ch, q)
- ch.confirm_select
- q.purge
- x = ch.default_exchange
- x.publish("msg", :routing_key => q.name)
- ch.wait_for_confirms
- sleep 0.5
- expect(q.message_count).to eq 1
- q.purge
+ it "recovers basic.qos prefetch setting" do
+ with_open do |c|
+ ch = c.create_channel
+ ch.prefetch(11)
+ expect(ch.prefetch_count).to eq 11
+ expect(ch.prefetch_global).to be false
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ expect(ch.prefetch_count).to eq 11
+ expect(ch.prefetch_global).to be false
end
+ end
- def ensure_queue_binding_recovery(ch, x, q, routing_key = "")
- ch.confirm_select
- q.purge
- x.publish("msg", :routing_key => routing_key)
- ch.wait_for_confirms
- sleep 0.5
- expect(q.message_count).to eq 1
- q.purge
+ it "recovers basic.qos prefetch global setting" do
+ with_open do |c|
+ ch = c.create_channel
+ ch.prefetch(42, true)
+ expect(ch.prefetch_count).to eq 42
+ expect(ch.prefetch_global).to be true
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ expect(ch.prefetch_count).to eq 42
+ expect(ch.prefetch_global).to be true
end
+ end
- def ensure_exchange_binding_recovery(ch, source, destination, routing_key = "")
+ it "recovers publisher confirms setting" do
+ with_open do |c|
+ ch = c.create_channel
ch.confirm_select
- q = ch.queue("", :exclusive => true)
- q.bind(destination, :routing_key => routing_key)
-
- source.publish("msg", :routing_key => routing_key)
- ch.wait_for_confirms
- sleep 0.5
- expect(q.message_count).to eq 1
- q.delete
+ expect(ch).to be_using_publisher_confirms
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ expect(ch).to be_using_publisher_confirms
end
+ end
- #
- # Examples
- #
-
- it "reconnects after grace period" do
- with_open do |c|
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(c).to be_open
- end
+ it "recovers transactionality setting" do
+ with_open do |c|
+ ch = c.create_channel
+ ch.tx_select
+ expect(ch).to be_using_tx
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ expect(ch).to be_using_tx
end
+ end
- it "reconnects after grace period (with multiple hosts)" do
- with_open_multi_host do |c|
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
+ it "recovers client-named queues" do
+ with_open do |c|
+ ch = c.create_channel
+ q = ch.queue("bunny.tests.recovery.client-named#{rand}")
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ ensure_queue_recovery(ch, q)
+ q.delete
+ end
+ end
- wait_for_recovery
- expect(c).to be_open
- end
+ # a very simplistic test for queues inspired by #412
+ it "recovers client-named queues declared with passive = true" do
+ with_open do |c|
+ ch = c.create_channel
+ ch2 = c.create_channel
+
+ n = rand
+ s = "bunny.tests.recovery.client-named#{n}"
+
+ q = ch.queue(s)
+ q2 = ch2.queue(s, no_declare: true)
+
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ ensure_queue_recovery(ch, q)
+ q.delete
end
+ end
- it "reconnects after grace period (with multiple hosts, including a broken one)" do
- with_open_multi_broken_host do |c|
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
- wait_for_recovery
- expect(c).to be_open
- end
+ it "recovers server-named queues" do
+ with_open do |c|
+ ch = c.create_channel
+ q = ch.queue("", :exclusive => true)
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ ensure_queue_recovery(ch, q)
end
+ end
- it "recovers channels" do
- with_open do |c|
- ch1 = c.create_channel
- ch2 = c.create_channel
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch1).to be_open
- expect(ch2).to be_open
- end
+ it "recovers queue bindings" do
+ with_open do |c|
+ ch = c.create_channel
+ x = ch.fanout("amq.fanout")
+ q = ch.queue("", :exclusive => true)
+ q.bind(x)
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ ensure_queue_binding_recovery(ch, x, q)
end
+ end
- it "recovers channels (with multiple hosts)" do
- with_open_multi_host do |c|
- ch1 = c.create_channel
- ch2 = c.create_channel
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch1).to be_open
- expect(ch2).to be_open
- end
- end
+ it "recovers exchanges and their bindings" do
+ with_open do |c|
+ ch = c.create_channel
+ source = ch.fanout("source.exchange.recovery.example", auto_delete: true)
+ destination = ch.fanout("destination.exchange.recovery.example", auto_delete: true)
- it "recovers channels (with multiple hosts, including a broken one)" do
- with_open_multi_broken_host do |c|
- ch1 = c.create_channel
- ch2 = c.create_channel
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch1).to be_open
- expect(ch2).to be_open
- end
- end
+ destination.bind(source)
- it "recovers basic.qos prefetch setting" do
- with_open do |c|
- ch = c.create_channel
- ch.prefetch(11)
- expect(ch.prefetch_count).to eq 11
- expect(ch.prefetch_global).to be false
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- expect(ch.prefetch_count).to eq 11
- expect(ch.prefetch_global).to be false
- end
- end
+ # Exchanges won't get auto-deleted on connection loss unless they have
+ # had an exclusive queue bound to them.
+ dst_queue = ch.queue("", exclusive: true)
+ dst_queue.bind(destination, routing_key: "")
- it "recovers basic.qos prefetch global setting" do
- with_open do |c|
- ch = c.create_channel
- ch.prefetch(42, true)
- expect(ch.prefetch_count).to eq 42
- expect(ch.prefetch_global).to be true
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- expect(ch.prefetch_count).to eq 42
- expect(ch.prefetch_global).to be true
- end
- end
+ src_queue = ch.queue("", exclusive: true)
+ src_queue.bind(source, routing_key: "")
- it "recovers publisher confirms setting" do
- with_open do |c|
- ch = c.create_channel
- ch.confirm_select
- expect(ch).to be_using_publisher_confirms
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- expect(ch).to be_using_publisher_confirms
- end
+ close_all_connections!
+
+ wait_on_loss_and_recovery_of { exchange_names_in_vhost("/").include?(source.name) }
+
+ ch.confirm_select
+
+ source.publish("msg", routing_key: "")
+ ch.wait_for_confirms
+ expect(dst_queue.message_count).to eq 1
end
+ end
- it "recovers transactionality setting" do
- with_open do |c|
- ch = c.create_channel
- ch.tx_select
- expect(ch).to be_using_tx
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- expect(ch).to be_using_tx
- end
+ # this is a simplistic test that primarily execises the code path from #412
+ it "recovers exchanges that were declared with passive = true" do
+ with_open do |c|
+ ch = c.create_channel
+ ch2 = c.create_channel
+ source = ch.fanout("source.exchange.recovery.example", auto_delete: true)
+ destination = ch.fanout("destination.exchange.recovery.example", auto_delete: true)
+
+ source2 = ch2.fanout("source.exchange.recovery.example", no_declare: true)
+ destination2 = ch2.fanout("destination.exchange.recovery.example", no_declare: true)
+
+ destination.bind(source)
+
+ # Exchanges won't get auto-deleted on connection loss unless they have
+ # had an exclusive queue bound to them.
+ dst_queue = ch.queue("", exclusive: true)
+ dst_queue.bind(destination, routing_key: "")
+
+ src_queue = ch.queue("", exclusive: true)
+ src_queue.bind(source, routing_key: "")
+
+ close_all_connections!
+
+ wait_on_loss_and_recovery_of { exchange_names_in_vhost("/").include?(source.name) }
+
+ ch2.confirm_select
+
+ source2.publish("msg", routing_key: "")
+ ch2.wait_for_confirms
+ expect(dst_queue.message_count).to eq 1
end
+ end
- it "recovers client-named queues" do
- with_open do |c|
- ch = c.create_channel
- q = ch.queue("bunny.tests.recovery.client-named#{rand}")
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- ensure_queue_recovery(ch, q)
- q.delete
- end
+ it "recovers allocated channel ids" do
+ with_open do |c|
+ q = "queue#{Time.now.to_i}"
+ 10.times { c.create_channel }
+ expect(c.queue_exists?(q)).to eq false
+ close_all_connections!
+ wait_on_loss_and_recovery_of { channels.any? }
+ # make sure the connection isn't closed shortly after
+ # due to "second 'channel.open' seen". MK.
+ expect(c).to be_open
+ sleep 0.1
+ expect(c).to be_open
+ sleep 0.1
+ expect(c).to be_open
end
+ end
+ it "recovers consumers" do
+ with_open do |c|
+ delivered = false
- it "recovers server-named queues" do
- with_open do |c|
- ch = c.create_channel
- q = ch.queue("", :exclusive => true)
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- ensure_queue_recovery(ch, q)
+ ch = c.create_channel
+ q = ch.queue("", :exclusive => true)
+ q.subscribe do |_, _, _|
+ delivered = true
end
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+
+ q.publish("")
+
+ poll_until { delivered }
end
+ end
- it "recovers queue bindings" do
- with_open do |c|
- ch = c.create_channel
- x = ch.fanout("amq.fanout")
- q = ch.queue("", :exclusive => true)
- q.bind(x)
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- ensure_queue_binding_recovery(ch, x, q)
- end
+ it "recovers all consumers" do
+ n = 1024
+
+ with_open do |c|
+ ch = c.create_channel
+ q = ch.queue("", :exclusive => true)
+ n.times { q.subscribe { |_, _, _| } }
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+ expect(ch).to be_open
+ sleep 0.5
+
+ expect(q.consumer_count).to eq n
end
+ end
+
+ it "recovers all queues" do
+ n = 256
+
+ qs = []
+
+ with_open do |c|
+ ch = c.create_channel
- it "recovers exchange bindings" do
- with_open do |c|
- ch = c.create_channel
- x = ch.fanout("amq.fanout")
- x2 = ch.fanout("bunny.tests.recovery.fanout")
- x2.bind(x)
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
- ensure_exchange_binding_recovery(ch, x, x2)
+ n.times do
+ qs << ch.queue("", :exclusive => true)
end
- end
+ close_all_connections!
+ wait_on_loss_and_recovery_of { queue_names.include?(qs.first.name) }
+ sleep 0.5
+ expect(ch).to be_open
- it "recovers allocated channel ids" do
- with_open do |c|
- q = "queue#{Time.now.to_i}"
- 10.times { c.create_channel }
- expect(c.queue_exists?(q)).to eq false
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(c.queue_exists?(q)).to eq false
- # make sure the connection isn't closed shortly after
- # due to "second 'channel.open' seen". MK.
- expect(c).to be_open
- sleep 0.1
- expect(c).to be_open
- sleep 0.1
- expect(c).to be_open
+ qs.each do |q|
+ ch.queue_declare(q.name, :passive => true)
end
end
+ end
- it "recovers consumers" do
- with_open do |c|
- delivered = false
-
- ch = c.create_channel
- q = ch.queue("", :exclusive => true)
- q.subscribe do |_, _, _|
- delivered = true
- end
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- expect(ch).to be_open
-
- q.publish("")
- sleep 0.5
- expect(delivered).to eq true
- end
+ it "tries to recover for a given number of attempts" do
+ pending "Need a fix for https://github.com/ruby-amqp/bunny/issues/408"
+ with_recovery_attempts_limited_to(2) do |c|
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+
+ close_all_connections!
+ wait_on_loss_and_recovery_of { connections.any? }
+
+ close_all_connections!
+ sleep(recovery_interval + 0.5)
+ expect(connections).to be_empty
end
+ end
- it "recovers all consumers" do
- n = 1024
+ def exchange_names_in_vhost(vhost)
+ http_client.list_exchanges(vhost).map {|e| e["name"]}
+ end
- with_open do |c|
- ch = c.create_channel
- q = ch.queue("", :exclusive => true)
- n.times do
- q.subscribe do |_, _, _|
- delivered = true
- end
- end
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- sleep 1
- expect(ch).to be_open
+ def connections
+ http_client.list_connections
+ end
- expect(q.consumer_count).to eq n
- end
+ def channels
+ http_client.list_channels
+ end
+
+ def queue_names
+ http_client.list_queues.map {|q| q["name"]}
+ end
+
+ def close_all_connections!
+ connections.each do |conn_info|
+ close_ignoring_permitted_exceptions(conn_info.name)
end
+ end
- it "recovers all queues" do
- n = 256
+ def close_ignoring_permitted_exceptions(connection_name)
+ http_client.close_connection(connection_name)
+ rescue Bunny::ConnectionForced
+ end
- qs = []
+ def wait_on_loss_and_recovery_of(&probe)
+ poll_while &probe
+ poll_until &probe
+ end
- with_open do |c|
- ch = c.create_channel
+ def poll_while(&probe)
+ Timeout::timeout(10) {
+ sleep 0.1 while probe[]
+ }
+ end
- n.times do
- qs << ch.queue("", :exclusive => true)
- end
- close_all_connections!
- sleep 0.1
- expect(c).not_to be_open
-
- wait_for_recovery
- sleep 1
- expect(ch).to be_open
-
- qs.each do |q|
- ch.queue_declare(q.name, :passive => true)
- end
- end
- end
+ def poll_until(&probe)
+ Timeout::timeout(10) {
+ sleep 0.1 until probe[]
+ }
+ end
- it "tries to recover for a given number of attempts" do
- with_recovery_attempts_limited_to(2) do |c|
- close_all_connections!
- expect(c).to receive(:start).exactly(2).times.and_raise(Bunny::TCPConnectionFailed.new("test"))
+ def with_open(c = Bunny.new(network_recovery_interval: recovery_interval,
+ recover_from_connection_close: true,
+ logger: logger), &block)
+ c.start
+ block.call(c)
+ ensure
+ c.close
+ end
- wait_for_recovery
- end
- end
+ def with_open_multi_host(&block)
+ c = Bunny.new(hosts: ["127.0.0.1", "localhost"],
+ network_recovery_interval: recovery_interval,
+ recover_from_connection_close: true,
+ logger: logger)
+ with_open(c, &block)
+ end
+
+ def with_open_multi_broken_host(&block)
+ c = Bunny.new(hosts: ["broken", "127.0.0.1", "localhost"],
+ hosts_shuffle_strategy: Proc.new { |hosts| hosts }, # We do not shuffle for these tests so we always hit the broken host
+ network_recovery_interval: recovery_interval,
+ recover_from_connection_close: true,
+ logger: logger)
+ with_open(c, &block)
+ end
+
+ def with_recovery_attempts_limited_to(attempts = 3, &block)
+ c = Bunny.new(recover_from_connection_close: true,
+ network_recovery_interval: recovery_interval,
+ recovery_attempts: attempts,
+ logger: logger)
+ with_open(c, &block)
+ end
+
+ def ensure_queue_recovery(ch, q)
+ ch.confirm_select
+ q.purge
+ x = ch.default_exchange
+ x.publish("msg", routing_key: q.name)
+ ch.wait_for_confirms
+ expect(q.message_count).to eq 1
+ q.purge
+ end
+
+ def ensure_queue_binding_recovery(ch, x, q, routing_key = "")
+ ch.confirm_select
+ q.purge
+ x.publish("msg", routing_key: routing_key)
+ ch.wait_for_confirms
+ expect(q.message_count).to eq 1
+ q.purge
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/higher_level_api/integration/publisher_confirms_spec.rb new/spec/higher_level_api/integration/publisher_confirms_spec.rb
--- old/spec/higher_level_api/integration/publisher_confirms_spec.rb 2016-06-11 23:24:31.000000000 +0200
+++ new/spec/higher_level_api/integration/publisher_confirms_spec.rb 2016-07-20 13:34:54.000000000 +0200
@@ -60,6 +60,18 @@
}.not_to raise_error
end
+
+ it "raises an error when called on a closed channel" do
+ ch = connection.create_channel
+
+ ch.confirm_select
+
+ ch.close
+
+ expect {
+ ch.wait_for_confirms
+ }.to raise_error(Bunny::ChannelAlreadyClosed)
+ end
end
context "when some of the messages get nacked" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/exchange_recovery_spec.rb new/spec/unit/exchange_recovery_spec.rb
--- old/spec/unit/exchange_recovery_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/exchange_recovery_spec.rb 2016-07-20 13:34:54.000000000 +0200
@@ -0,0 +1,39 @@
+require_relative '../../lib/bunny/channel'
+require_relative '../../lib/bunny/exchange'
+
+module Bunny
+ describe Exchange do
+ context "recovery" do
+ it "recovers exchange bindings, unless already unbound" do
+ ch = instance_double(Bunny::Channel,
+ exchange_declare: nil,
+ register_exchange: nil)
+ src1 = Exchange.new(ch, "direct", "src1")
+ src2 = Exchange.new(ch, "direct", "src2")
+ src3 = Exchange.new(ch, "direct", "src3")
+ dst = Exchange.new(ch, "direct", "dst")
+
+ original_binds_count = 5
+ expected_rebinds_count = 3
+ expected_total_binds = original_binds_count + expected_rebinds_count
+ allow(ch).to receive(:exchange_bind).exactly(expected_total_binds).times
+
+ dst.bind(src1, routing_key: "abc")
+ dst.bind(src2, routing_key: "def")
+ dst.bind(src2, routing_key: "ghi")
+ dst.bind(src3, routing_key: "jkl")
+ dst.bind(src3, routing_key: "jkl", arguments: {"key" => "value"})
+
+ allow(ch).to receive(:exchange_unbind).twice
+ dst.unbind(src2, routing_key: "def")
+ dst.unbind(src3, routing_key: "jkl", arguments: {"key" => "value"})
+
+ expect(ch).to receive(:exchange_bind).with(src1, dst, routing_key: "abc")
+ expect(ch).to receive(:exchange_bind).with(src2, dst, routing_key: "ghi")
+ expect(ch).to receive(:exchange_bind).with(src3, dst, routing_key: "jkl")
+
+ dst.recover_from_network_failure
+ end
+ end
+ end
+end
1
0
Hello community,
here is the log from the commit of package rubygem-treetop for openSUSE:Factory checked in at 2016-08-26 23:16:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-treetop (Old)
and /work/SRC/openSUSE:Factory/.rubygem-treetop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-treetop"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-treetop/rubygem-treetop.changes 2016-03-07 13:29:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-treetop.new/rubygem-treetop.changes 2016-08-26 23:16:41.000000000 +0200
@@ -1,0 +2,12 @@
+Sat Jul 23 04:34:07 UTC 2016 - coolo(a)suse.com
+
+- updated to version 1.6.8
+ no changelog found
+
+-------------------------------------------------------------------
+Thu Jul 21 04:35:26 UTC 2016 - coolo(a)suse.com
+
+- updated to version 1.6.7
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
treetop-1.6.5.gem
New:
----
treetop-1.6.8.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-treetop.spec ++++++
--- /var/tmp/diff_new_pack.VVjyHW/_old 2016-08-26 23:16:42.000000000 +0200
+++ /var/tmp/diff_new_pack.VVjyHW/_new 2016-08-26 23:16:42.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-treetop
-Version: 1.6.5
+Version: 1.6.8
Release: 0
%define mod_name treetop
%define mod_full_name %{mod_name}-%{version}
++++++ treetop-1.6.5.gem -> treetop-1.6.8.gem ++++++
++++ 9629 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package lemonbar for openSUSE:Factory checked in at 2016-08-26 23:16:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lemonbar (Old)
and /work/SRC/openSUSE:Factory/.lemonbar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lemonbar"
Changes:
--------
New Changes file:
--- /dev/null 2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:Factory/.lemonbar.new/lemonbar.changes 2016-08-26 23:16:35.000000000 +0200
@@ -0,0 +1,10 @@
+-------------------------------------------------------------------
+Sat Jul 23 07:55:01 UTC 2016 - jengelh(a)inai.de
+
+- Remove filler words from summary/description.
+
+-------------------------------------------------------------------
+Mon Jul 18 09:32:45 UTC 2016 - luke.nukem.jones(a)gmail.com
+
+- Initial package
+
New:
----
lemonbar.changes
lemonbar.spec
v1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lemonbar.spec ++++++
#
# spec file for package lemonbar
#
# Copyright (c) 2016 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: lemonbar
Version: 1.2
Release: 0
Summary: An X11 bar
License: MIT
Group: System/GUI/Other
Url: https://github.com/LemonBoy/bar
Source0: https://github.com/LemonBoy/bar/archive/v%{version}.tar.gz
BuildRequires: libxcb-devel
%description
lemonbar is a bar entirely based on XCB. It provides full UTF-8
support, basic formatting, RandR and Xinerama support and EWMH
compliance.
%prep
%setup -q -n bar-%{version}
%build
make %{?_smp_mflags}
%install
%make_install PREFIX=%{_prefix}
%files
%defattr (-, root, root)
%doc LICENSE
%{_bindir}/lemonbar
%{_mandir}/man1/lemonbar.1%{ext_man}
%changelog
1
0
Hello community,
here is the log from the commit of package rubygem-test-unit for openSUSE:Factory checked in at 2016-08-26 23:16:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-test-unit (Old)
and /work/SRC/openSUSE:Factory/.rubygem-test-unit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-test-unit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-test-unit/rubygem-test-unit.changes 2016-06-14 23:08:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-test-unit.new/rubygem-test-unit.changes 2016-08-26 23:16:30.000000000 +0200
@@ -1,0 +2,24 @@
+Wed Jul 20 04:33:20 UTC 2016 - coolo(a)suse.com
+
+- updated to version 3.2.1
+ see installed news.md
+
+ ## 3.2.1 - 2016-07-19 {#version-3-2-1}
+
+ ### Improvements
+
+ * Clarified lib/test/unit/diff.rb license. It's a triple license of
+ the Ruby license, PSF license and LGPLv2.1 or later.
+ [Reported by Luisa Pace]
+
+ * Reported norification when data driven test doesn't have
+ parameter.
+ [GitHub#122][Reported by Satoshi "Moris" Tagomori]
+
+ ### Thanks
+
+ * Luisa Pace
+
+ * Satoshi "Moris" Tagomori
+
+-------------------------------------------------------------------
Old:
----
test-unit-3.2.0.gem
New:
----
test-unit-3.2.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-test-unit.spec ++++++
--- /var/tmp/diff_new_pack.UnZI9t/_old 2016-08-26 23:16:31.000000000 +0200
+++ /var/tmp/diff_new_pack.UnZI9t/_new 2016-08-26 23:16:31.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-test-unit
-Version: 3.2.0
+Version: 3.2.1
Release: 0
%define mod_name test-unit
%define mod_full_name %{mod_name}-%{version}
++++++ test-unit-3.2.0.gem -> test-unit-3.2.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/COPYING new/COPYING
--- old/COPYING 2016-06-12 04:33:11.000000000 +0200
+++ new/COPYING 2016-07-19 11:33:53.000000000 +0200
@@ -61,4 +61,7 @@
Exceptions
----------
- * lib/test/unit/diff.rb: PSFL
+ * lib/test/unit/diff.rb: This license, PSF license and/or LGPLv2.1
+ or later
+
+ * lib/test-unit.rb: This license and/or LGPLv2.1 or later
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-06-12 04:33:11.000000000 +0200
+++ new/README.md 2016-07-19 11:33:53.000000000 +0200
@@ -57,8 +57,8 @@
Exception:
- * lib/test/unit/diff.rb is a double license of the Ruby license and
- PSF license.
+ * lib/test/unit/diff.rb is a triple license of the Ruby license,
+ PSF license and LGPLv2.1 or later.
* lib/test-unit.rb is a dual license of the Ruby license and LGPLv2.1
or later.
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/text/news.md new/doc/text/news.md
--- old/doc/text/news.md 2016-06-12 04:33:11.000000000 +0200
+++ new/doc/text/news.md 2016-07-19 11:33:53.000000000 +0200
@@ -1,5 +1,23 @@
# News
+## 3.2.1 - 2016-07-19 {#version-3-2-1}
+
+### Improvements
+
+ * Clarified lib/test/unit/diff.rb license. It's a triple license of
+ the Ruby license, PSF license and LGPLv2.1 or later.
+ [Reported by Luisa Pace]
+
+ * Reported norification when data driven test doesn't have
+ parameter.
+ [GitHub#122][Reported by Satoshi "Moris" Tagomori]
+
+### Thanks
+
+ * Luisa Pace
+
+ * Satoshi "Moris" Tagomori
+
## 3.2.0 - 2016-06-12 {#version-3-2-0}
### Improvements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/test/unit/diff.rb new/lib/test/unit/diff.rb
--- old/lib/test/unit/diff.rb 2016-06-12 04:33:11.000000000 +0200
+++ new/lib/test/unit/diff.rb 2016-07-19 11:33:53.000000000 +0200
@@ -3,9 +3,9 @@
# Copyright (c) 2001-2008 Python Software Foundation; All Rights Reserved
# Copyright (c) 2008-2011 Kouhei Sutou; All Rights Reserved
#
-# It is free software, and is distributed under the Ruby
-# license and/or the PSF license. See the COPYING file and
-# PSFL file.
+# It is free software, and is distributed under the Ruby license, the
+# PSF license and/or LGPLv2.1 or later. See the COPYING file, the PSFL
+# file and the LGPL file.
module Test
module Unit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/test/unit/testcase.rb new/lib/test/unit/testcase.rb
--- old/lib/test/unit/testcase.rb 2016-06-12 04:33:11.000000000 +0200
+++ new/lib/test/unit/testcase.rb 2016-07-19 11:33:53.000000000 +0200
@@ -365,6 +365,11 @@
# @option query [String] :method_name (nil)
# the method name for a test.
def test_defined?(query)
+ locations = find_locations(query)
+ not locations.empty?
+ end
+
+ def find_locations(query)
query_path = query[:path]
query_line = query[:line]
query_method_name = query[:method_name]
@@ -377,19 +382,19 @@
available_location = available_locations.find do |location|
query_line >= location[:line]
end
- return false if available_location.nil?
- return false if available_location[:test_case] != self
+ return [] if available_location.nil?
+ return [] if available_location[:test_case] != self
available_locations = [available_location]
end
if query_method_name
available_location = available_locations.find do |location|
query_method_name == location[:method_name]
end
- return false if available_location.nil?
+ return [] if available_location.nil?
available_locations = [available_location]
end
- not available_locations.empty?
+ available_locations
end
private
@@ -441,9 +446,7 @@
def valid? # :nodoc:
return false unless respond_to?(@method_name)
test_method = method(@method_name)
- if @internal_data.have_test_data?
- return false unless test_method.arity == 1
- else
+ unless @internal_data.have_test_data?
return false unless test_method.arity <= 0
end
owner = Util::MethodOwnerFinder.find(self, @method_name)
@@ -733,13 +736,24 @@
end
def run_test
+ signature = "#{self.class}\##{@method_name}"
redefined_info = self[:redefined]
if redefined_info
- notify("#{self.class}\##{@method_name} was redefined",
+ notify("#{signature} was redefined",
:backtrace => redefined_info[:backtrace])
end
if @internal_data.have_test_data?
- __send__(@method_name, @internal_data.test_data)
+ test_method = method(@method_name)
+ if test_method.arity == 1 or test_method.arity < 0
+ __send__(@method_name, @internal_data.test_data)
+ else
+ locations = self.class.find_locations(:method_name => @method_name)
+ backtrace = locations.collect do |location|
+ "#{location[:path]}:#{location[:line]}"
+ end
+ notify("#{signature} misses a parameter to take test data",
+ :backtrace => backtrace)
+ end
else
__send__(@method_name)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/test/unit/version.rb new/lib/test/unit/version.rb
--- old/lib/test/unit/version.rb 2016-06-12 04:33:11.000000000 +0200
+++ new/lib/test/unit/version.rb 2016-07-19 11:33:53.000000000 +0200
@@ -1,5 +1,5 @@
module Test
module Unit
- VERSION = '3.2.0'
+ VERSION = '3.2.1'
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-06-12 04:33:11.000000000 +0200
+++ new/metadata 2016-07-19 11:33:53.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: test-unit
version: !ruby/object:Gem::Version
- version: 3.2.0
+ version: 3.2.1
platform: ruby
authors:
- Kouhei Sutou
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2016-06-12 00:00:00.000000000 Z
+date: 2016-07-19 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: power_assert
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test-test-case.rb new/test/test-test-case.rb
--- old/test/test-test-case.rb 2016-06-12 04:33:11.000000000 +0200
+++ new/test/test-test-case.rb 2016-07-19 11:33:53.000000000 +0200
@@ -543,6 +543,23 @@
assert_predicate(test, :valid?)
end
+ def test_data_driven_test_without_parameter
+ test_case = Class.new(TestCase) do
+ data("label" => "value")
+ def test_without_parameter
+ end
+ end
+
+ suite = test_case.suite
+ assert_equal(["test_without_parameter"],
+ suite.tests.collect {|test| test.method_name})
+ result = TestResult.new
+ suite.run(result) {}
+ assert_equal("1 tests, 0 assertions, 0 failures, " +
+ "0 errors, 0 pendings, 0 omissions, 1 notifications",
+ result.summary)
+ end
+
private
def check(message, passed)
add_assertion
1
0
Hello community,
here is the log from the commit of package rubygem-jbuilder for openSUSE:Factory checked in at 2016-08-26 23:16:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-jbuilder (Old)
and /work/SRC/openSUSE:Factory/.rubygem-jbuilder.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-jbuilder"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-jbuilder/rubygem-jbuilder.changes 2016-06-12 18:54:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-jbuilder.new/rubygem-jbuilder.changes 2016-08-26 23:16:28.000000000 +0200
@@ -1,0 +2,12 @@
+Thu Jul 21 04:30:38 UTC 2016 - coolo(a)suse.com
+
+- updated to version 2.6.0
+ see installed CHANGELOG.md
+
+ 2.6.0
+ -----
+
+ * [Rails 5 cache! with expire support](https://github.com/rails/jbuilder/commit/d61e3354563863731bc1f358f…
+ * [Generated view DRYed by using model partial](https://github.com/rails/jbuilder/commit/83256f4d7e9211c9dc47972fe…
+
+-------------------------------------------------------------------
Old:
----
jbuilder-2.5.0.gem
New:
----
jbuilder-2.6.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-jbuilder.spec ++++++
--- /var/tmp/diff_new_pack.CqQAel/_old 2016-08-26 23:16:28.000000000 +0200
+++ /var/tmp/diff_new_pack.CqQAel/_new 2016-08-26 23:16:28.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-jbuilder
-Version: 2.5.0
+Version: 2.6.0
Release: 0
%define mod_name jbuilder
%define mod_full_name %{mod_name}-%{version}
++++++ jbuilder-2.5.0.gem -> jbuilder-2.6.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml 2016-05-30 23:10:24.000000000 +0200
+++ new/.travis.yml 2016-07-21 00:55:51.000000000 +0200
@@ -7,8 +7,8 @@
- 1.9
- 2.0
- 2.1
- - 2.2.4
- - 2.3.0
+ - 2.2.5
+ - 2.3.1
- ruby-head
- jruby-19mode
- rbx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Appraisals new/Appraisals
--- old/Appraisals 2016-05-30 23:10:24.000000000 +0200
+++ new/Appraisals 2016-07-21 00:55:51.000000000 +0200
@@ -38,7 +38,7 @@
end
appraise "rails-5-0" do
- gem "railties", ">= 5.0.0.beta2", "< 5.1"
- gem "actionpack", ">= 5.0.0.beta2", "< 5.1"
- gem "activemodel", ">= 5.0.0.beta2", "< 5.1"
+ gem "railties", "~> 5.0.0"
+ gem "actionpack", "~> 5.0.0"
+ gem "activemodel", "~> 5.0.0"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2016-05-30 23:10:24.000000000 +0200
+++ new/CHANGELOG.md 2016-07-21 00:55:51.000000000 +0200
@@ -1,5 +1,11 @@
# Changelog
+2.6.0
+-----
+
+* [Rails 5 cache! with expire support](https://github.com/rails/jbuilder/commit/d61e3354563863731bc1f358f…
+* [Generated view DRYed by using model partial](https://github.com/rails/jbuilder/commit/83256f4d7e9211c9dc47972fe…
+
2.5.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CONTRIBUTING.md new/CONTRIBUTING.md
--- old/CONTRIBUTING.md 2016-05-30 23:10:24.000000000 +0200
+++ new/CONTRIBUTING.md 2016-07-21 00:55:51.000000000 +0200
@@ -2,9 +2,9 @@
=====================
[![Build Status](https://api.travis-ci.org/rails/jbuilder.svg?branch=master)][travis]
-[![Gem Version](http://img.shields.io/gem/v/jbuilder.svg)][gem]
-[![Code Climate](http://img.shields.io/codeclimate/github/rails/jbuilder.svg)][codeclimate]
-[![Dependencies Status](http://img.shields.io/gemnasium/rails/jbuilder.svg)][gemnasium]
+[![Gem Version](https://badge.fury.io/rb/jbuilder.svg)][gem]
+[![Code Climate](https://codeclimate.com/github/rails/jbuilder/badges/gpa.svg)][cod…e]
+[![Dependencies Status](https://gemnasium.com/rails/jbuilder.svg)][gemnasium]
[travis]: https://travis-ci.org/rails/jbuilder
[gem]: https://rubygems.org/gems/jbuilder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-05-30 23:10:24.000000000 +0200
+++ new/README.md 2016-07-21 00:55:51.000000000 +0200
@@ -6,7 +6,7 @@
example:
``` ruby
-# app/views/message/show.json.jbuilder
+# app/views/messages/show.json.jbuilder
json.content format_content((a)message.content)
json.(@message, :created_at, :updated_at)
@@ -64,7 +64,7 @@
json.set! :name, 'David'
end
-# => "author": { "name": "David" }
+# => {"author": { "name": "David" }}
```
Top level arrays can be handled directly. Useful for index and other collection actions.
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jbuilder.gemspec new/jbuilder.gemspec
--- old/jbuilder.gemspec 2016-05-30 23:10:24.000000000 +0200
+++ new/jbuilder.gemspec 2016-07-21 00:55:51.000000000 +0200
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = 'jbuilder'
- s.version = '2.5.0'
+ s.version = '2.6.0'
s.authors = ['David Heinemeier Hansson', 'Pavel Pravosud']
s.email = ['david(a)37signals.com', 'pavel(a)pravosud.com']
s.summary = 'Create JSON structures via a Builder-style DSL'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/jbuilder_generator.rb new/lib/generators/rails/jbuilder_generator.rb
--- old/lib/generators/rails/jbuilder_generator.rb 2016-05-30 23:10:24.000000000 +0200
+++ new/lib/generators/rails/jbuilder_generator.rb 2016-07-21 00:55:51.000000000 +0200
@@ -20,6 +20,7 @@
filename = filename_with_extensions(view)
template filename, File.join('app/views', controller_file_path, filename)
end
+ template filename_with_extensions('partial'), File.join('app/views', controller_file_path, filename_with_extensions("_#{singular_table_name}"))
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/templates/index.json.jbuilder new/lib/generators/rails/templates/index.json.jbuilder
--- old/lib/generators/rails/templates/index.json.jbuilder 2016-05-30 23:10:24.000000000 +0200
+++ new/lib/generators/rails/templates/index.json.jbuilder 2016-07-21 00:55:51.000000000 +0200
@@ -1,4 +1 @@
-json.array!(@<%= plural_table_name %>) do |<%= singular_table_name %>|
- json.extract! <%= singular_table_name %>, <%= attributes_list %>
- json.url <%= singular_table_name %>_url(<%= singular_table_name %>, format: :json)
-end
+json.array! @<%= plural_table_name %>, partial: '<%= plural_table_name %>/<%= singular_table_name %>', as: :<%= singular_table_name %>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/templates/partial.json.jbuilder new/lib/generators/rails/templates/partial.json.jbuilder
--- old/lib/generators/rails/templates/partial.json.jbuilder 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/generators/rails/templates/partial.json.jbuilder 2016-07-21 00:55:51.000000000 +0200
@@ -0,0 +1,2 @@
+json.extract! <%= singular_table_name %>, <%= attributes_list_with_timestamps %>
+json.url <%= singular_table_name %>_url(<%= singular_table_name %>, format: :json)
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/templates/show.json.jbuilder new/lib/generators/rails/templates/show.json.jbuilder
--- old/lib/generators/rails/templates/show.json.jbuilder 2016-05-30 23:10:24.000000000 +0200
+++ new/lib/generators/rails/templates/show.json.jbuilder 2016-07-21 00:55:51.000000000 +0200
@@ -1 +1 @@
-json.extract! @<%= singular_table_name %>, <%= attributes_list_with_timestamps %>
+json.partial! "<%= plural_table_name %>/<%= singular_table_name %>", <%= singular_table_name %>: @<%= singular_table_name %>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/jbuilder/jbuilder_template.rb new/lib/jbuilder/jbuilder_template.rb
--- old/lib/jbuilder/jbuilder_template.rb 2016-05-30 23:10:24.000000000 +0200
+++ new/lib/jbuilder/jbuilder_template.rb 2016-07-21 00:55:51.000000000 +0200
@@ -32,7 +32,7 @@
# end
def cache!(key=nil, options={})
if @context.controller.perform_caching
- value = ::Rails.cache.fetch(_cache_key(key, options), options) do
+ value = _cache_fragment_for(key, options) do
_scope { yield self }
end
@@ -102,9 +102,35 @@
@context.render options
end
+ def _cache_fragment_for(key, options, &block)
+ key = _cache_key(key, options)
+ _read_fragment_cache(key, options) || _write_fragment_cache(key, options, &block)
+ end
+
+ def _read_fragment_cache(key, options = nil)
+ @context.controller.instrument_fragment_cache :read_fragment, key do
+ ::Rails.cache.read(key, options)
+ end
+ end
+
+ def _write_fragment_cache(key, options = nil)
+ @context.controller.instrument_fragment_cache :write_fragment, key do
+ yield.tap do |value|
+ ::Rails.cache.write(key, value, options)
+ end
+ end
+ end
+
def _cache_key(key, options)
- key = _fragment_name_with_digest(key, options)
- key = url_for(key).split('://', 2).last if ::Hash === key
+ name_options = options.slice(:skip_digest, :virtual_path)
+ key = _fragment_name_with_digest(key, name_options)
+
+ if @context.respond_to?(:fragment_cache_key)
+ key = @context.fragment_cache_key(key)
+ else
+ key = url_for(key).split('://', 2).last if ::Hash === key
+ end
+
::ActiveSupport::Cache.expand_cache_key(key, :jbuilder)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/jbuilder/railtie.rb new/lib/jbuilder/railtie.rb
--- old/lib/jbuilder/railtie.rb 2016-05-30 23:10:24.000000000 +0200
+++ new/lib/jbuilder/railtie.rb 2016-07-21 00:55:51.000000000 +0200
@@ -3,7 +3,7 @@
class Jbuilder
class Railtie < ::Rails::Railtie
- initializer :jbuilder do |app|
+ initializer :jbuilder do
ActiveSupport.on_load :action_view do
ActionView::Template.register_template_handler :jbuilder, JbuilderHandler
require 'jbuilder/dependency_tracker'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-05-30 23:10:24.000000000 +0200
+++ new/metadata 2016-07-21 00:55:51.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: jbuilder
version: !ruby/object:Gem::Version
- version: 2.5.0
+ version: 2.6.0
platform: ruby
authors:
- David Heinemeier Hansson
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2016-05-30 00:00:00.000000000 Z
+date: 2016-07-20 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
@@ -75,6 +75,7 @@
- lib/generators/rails/templates/api_controller.rb
- lib/generators/rails/templates/controller.rb
- lib/generators/rails/templates/index.json.jbuilder
+- lib/generators/rails/templates/partial.json.jbuilder
- lib/generators/rails/templates/show.json.jbuilder
- lib/jbuilder.rb
- lib/jbuilder/blank.rb
@@ -111,7 +112,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.5.2
+rubygems_version: 2.6.4
signing_key:
specification_version: 4
summary: Create JSON structures via a Builder-style DSL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/jbuilder_generator_test.rb new/test/jbuilder_generator_test.rb
--- old/test/jbuilder_generator_test.rb 2016-05-30 23:10:24.000000000 +0200
+++ new/test/jbuilder_generator_test.rb 2016-07-21 00:55:51.000000000 +0200
@@ -14,19 +14,25 @@
%w(index show).each do |view|
assert_file "app/views/posts/#{view}.json.jbuilder"
end
+ assert_file "app/views/posts/_post.json.jbuilder"
end
test 'index content' do
run_generator
assert_file 'app/views/posts/index.json.jbuilder' do |content|
- assert_match /json\.array!\(@posts\) do \|post\|/, content
- assert_match /json\.extract! post, :id, :title, :body/, content
- assert_match /json\.url post_url\(post, format: :json\)/, content
+ assert_match /json.array! @posts, partial: 'posts\/post', as: :post/, content
end
assert_file 'app/views/posts/show.json.jbuilder' do |content|
- assert_match /json\.extract! @post, :id, :title, :body, :created_at, :updated_at/, content
+ assert_match /json.partial! \"posts\/post\", post: @post/, content
+ end
+
+ assert_file 'app/views/posts/_post.json.jbuilder' do |content|
+ assert_match /json\.extract! post, :id, :title, :body/, content
+ assert_match /json\.url post_url\(post, format: :json\)/, content
end
+
+
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/jbuilder_template_test.rb new/test/jbuilder_template_test.rb
--- old/test/jbuilder_template_test.rb 2016-05-30 23:10:24.000000000 +0200
+++ new/test/jbuilder_template_test.rb 2016-07-21 00:55:51.000000000 +0200
@@ -332,6 +332,35 @@
JBUILDER
end
+ test "fragment caching uses fragment_cache_key" do
+ undef_context_methods :fragment_name_with_digest, :cache_fragment_name
+
+ @context.expects(:fragment_cache_key).with("cachekey")
+
+ jbuild <<-JBUILDER
+ json.cache! "cachekey" do
+ json.name "Cache"
+ end
+ JBUILDER
+ end
+
+ test "fragment caching instrumentation" do
+ undef_context_methods :fragment_name_with_digest, :cache_fragment_name
+
+ payloads = {}
+ ActiveSupport::Notifications.subscribe("read_fragment.action_controller") { |*args| payloads[:read_fragment] = args.last }
+ ActiveSupport::Notifications.subscribe("write_fragment.action_controller") { |*args| payloads[:write_fragment] = args.last }
+
+ jbuild <<-JBUILDER
+ json.cache! "cachekey" do
+ json.name "Cache"
+ end
+ JBUILDER
+
+ assert_equal "jbuilder/cachekey", payloads[:read_fragment][:key]
+ assert_equal "jbuilder/cachekey", payloads[:write_fragment][:key]
+ end
+
test "current cache digest option accepts options" do
undef_context_methods :fragment_name_with_digest
@@ -343,6 +372,18 @@
json.name "Cache"
end
JBUILDER
+ end
+
+ test "fragment caching accepts expires_in option" do
+ undef_context_methods :fragment_name_with_digest
+
+ @context.expects(:cache_fragment_name).with("cachekey", {})
+
+ jbuild <<-JBUILDER
+ json.cache! "cachekey", expires_in: 1.minute do
+ json.name "Cache"
+ end
+ JBUILDER
end
test "does not perform caching when controller.perform_caching is false" do
1
0
Hello community,
here is the log from the commit of package rubygem-jekyll-watch for openSUSE:Factory checked in at 2016-08-26 23:16:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-jekyll-watch (Old)
and /work/SRC/openSUSE:Factory/.rubygem-jekyll-watch.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-jekyll-watch"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-jekyll-watch/rubygem-jekyll-watch.changes 2016-07-15 12:50:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-jekyll-watch.new/rubygem-jekyll-watch.changes 2016-08-26 23:16:23.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Jul 21 04:30:53 UTC 2016 - coolo(a)suse.com
+
+- updated to version 1.5.0
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
jekyll-watch-1.4.0.gem
New:
----
jekyll-watch-1.5.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-jekyll-watch.spec ++++++
--- /var/tmp/diff_new_pack.h4PtJW/_old 2016-08-26 23:16:24.000000000 +0200
+++ /var/tmp/diff_new_pack.h4PtJW/_new 2016-08-26 23:16:24.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-jekyll-watch
-Version: 1.4.0
+Version: 1.5.0
Release: 0
%define mod_name jekyll-watch
%define mod_full_name %{mod_name}-%{version}
++++++ jekyll-watch-1.4.0.gem -> jekyll-watch-1.5.0.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/jekyll/watcher.rb new/lib/jekyll/watcher.rb
--- old/lib/jekyll/watcher.rb 2016-04-26 01:58:59.000000000 +0200
+++ new/lib/jekyll/watcher.rb 2016-07-20 21:29:07.000000000 +0200
@@ -4,10 +4,22 @@
module Watcher
extend self
- def watch(options)
+ # Public: Continuously watch for file changes and rebuild the site
+ # whenever a change is detected.
+ #
+ # If the optional site argument is populated, that site instance will be
+ # reused and the options Hash ignored. Otherwise, a new site instance will
+ # be instantiated from the options Hash and used.
+ #
+ # options - A Hash containing the site configuration
+ # site - The current site instance (populated starting with Jekyll 3.2)
+ # (optional, default: nil)
+ #
+ # Returns nothing.
+ def watch(options, site = nil)
ENV["LISTEN_GEM_DEBUGGING"] ||= "1" if options['verbose']
- site = Jekyll::Site.new(options)
+ site ||= Jekyll::Site.new(options)
listener = build_listener(site, options)
listener.start
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-04-26 01:58:59.000000000 +0200
+++ new/metadata 2016-07-20 21:29:07.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: jekyll-watch
version: !ruby/object:Gem::Version
- version: 1.4.0
+ version: 1.5.0
platform: ruby
authors:
- Parker Moore
autorequire:
bindir: bin
cert_chain: []
-date: 2016-04-25 00:00:00.000000000 Z
+date: 2016-07-20 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: listen
1
0
Hello community,
here is the log from the commit of package vlc for openSUSE:Factory checked in at 2016-08-26 23:16:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vlc (Old)
and /work/SRC/openSUSE:Factory/.vlc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vlc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vlc/vlc.changes 2016-08-18 09:16:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.vlc.new/vlc.changes 2016-08-26 23:16:06.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 22 09:12:46 UTC 2016 - dimstar(a)opensuse.org
+
+- Add ffmpeg2-BuildRequires for Tumbleweed: older openSUSE versions
+ had ffmpeg 2.x in the distribution.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vlc.spec ++++++
--- /var/tmp/diff_new_pack.fcVNF3/_old 2016-08-26 23:16:08.000000000 +0200
+++ /var/tmp/diff_new_pack.fcVNF3/_new 2016-08-26 23:16:08.000000000 +0200
@@ -199,6 +199,10 @@
BuildRequires: pkgconfig(libavcodec) >= 55.26.0
BuildRequires: pkgconfig(libavformat) >= 53.21.0
BuildRequires: pkgconfig(libavutil) >= 52.4.0
+%if 0%{?suse_version} == 1330
+# for TW, we favor ffmpeg2-devel. Older distros have ffmpeg 2.x intree
+BuildRequires: ffmpeg2-devel
+%endif
# Those are dependencies which are NOT provided in openSUSE, mostly for legal reasons.
%if 0%{?BUILD_ORIG}
BuildRequires: faad2-devel
@@ -206,9 +210,6 @@
BuildRequires: libxvidcore-devel
# Disabled for now - VideoLAN repo needs to catch up
BuildRequires: liba52-devel
-BuildRequires: pkgconfig(libavcodec) >= 55.26.0
-BuildRequires: pkgconfig(libavformat) >= 53.21.0
-BuildRequires: pkgconfig(libavutil) >= 52.4.0
BuildRequires: pkgconfig(libdca) >= 0.0.5
BuildRequires: pkgconfig(libmpeg2) > 0.3.2
BuildRequires: pkgconfig(libpostproc)
1
0
Hello community,
here is the log from the commit of package ffmpeg for openSUSE:Factory checked in at 2016-08-26 23:15:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ffmpeg (Old)
and /work/SRC/openSUSE:Factory/.ffmpeg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffmpeg"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ffmpeg/ffmpeg.changes 2016-02-12 11:21:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ffmpeg.new/ffmpeg.changes 2016-08-26 23:15:49.000000000 +0200
@@ -1,0 +2,199 @@
+Tue Aug 9 07:34:10 UTC 2016 - aloisio(a)gmx.com
+
+- Update to version 3.1.2:
+ * avcodec/rawdec: Fix palette handling with changing
+ palettes
+ * avcodec/raw: Fix decoding of ilacetest.mov
+ * avformat/mov: Enable mp3 parsing if a packet needs it
+ * avformat/hls: Sync starting segment across variants on
+ live streams
+ * avformat/hls: Fix regression with ranged media segments
+ * avcodec/ffv1enc: Fix assertion failure with non zero
+ bits per sample
+ * avfilter/af_hdcd: small fix in af_hdcd.c where gain was
+ not being adjusted for "attenuate slowly"
+ * avformat/oggdec: Fix integer overflow with invalid pts
+ * libavcodec/dnxhd: Enable 12-bit DNxHR support.
+ * lavc/vaapi_encode_h26x: Fix a crash if "." is not the
+ decimal separator.
+ * avcodec/vp9_parser: Check the input frame sizes for
+ being consistent
+ * avformat/flvdec: parse keyframe before a/v stream was
+ created add_keyframes_index() when stream created or
+ keyframe parsed
+ * libavformat/rtpdec_asf: zero initialize the AVIOContext
+ struct
+ * libx264: Increase x264 opts character limit to 4096
+ * avcodec/h264_parser: Set sps/pps_ref
+ * librtmp: Avoid an infinite loop setting connection
+ arguments
+ * avformat/oggparsevp8: fix pts calculation on pages
+ ending with an invisible frame
+ * lavf/vplayerdec: Improve auto-detection.
+ * lavc/mediacodecdec_h264: properly convert extradata to
+ annex-b
+
+-------------------------------------------------------------------
+Fri Jul 29 09:25:52 UTC 2016 - jengelh(a)inai.de
+
+- Build with netcdf so as to enable af_sofalizer [boo#983398]
+
+-------------------------------------------------------------------
+Fri Jul 1 06:17:49 UTC 2016 - aloisio(a)gmx.com
+
+- Update to version 3.1.1
+ * doc/APIchanges: document the lavu/lavf field moves
+ * avformat/avformat: Move new field to the end of AVStream
+ * avformat/utils: update deprecated AVStream->codec when the context is updated
+ * avutil/frame: Move new field to the end of AVFrame
+ * libavcodec/exr : fix decoding piz float file.
+ * avformat/mov: Check sample size
+ * lavfi: Move new field to the end of AVFilterContext
+ * lavfi: Move new field to the end of AVFilterLink
+ * ffplay: Fix usage of private lavfi API
+ * lavc/mediacodecdec_h264: add missing NAL headers to SPS/PPS buffers
+ * lavc/pnm_parser: disable parsing for text based PNMs
+
+-------------------------------------------------------------------
+Mon Jun 27 06:20:03 UTC 2016 - aloisio(a)gmx.com
+
+- Update to version 3.1
+ * DXVA2-accelerated HEVC Main10 decoding
+ * fieldhint filter
+ * loop video filter and aloop audio filter
+ * Bob Weaver deinterlacing filter
+ * firequalizer filter
+ * datascope filter
+ * bench and abench filters
+ * ciescope filter
+ * protocol blacklisting API
+ * MediaCodec H264 decoding
+ * VC-2 HQ RTP payload format (draft v1) depacketizer and
+ packetizer
+ * VP9 RTP payload format (draft v2) packetizer
+ * AudioToolbox audio decoders
+ * AudioToolbox audio encoders
+ * coreimage filter (GPU based image filtering on OSX)
+ * libdcadec removed
+ * bitstream filter for extracting DTS core
+ * ADPCM IMA DAT4 decoder
+ * musx demuxer
+ * aix demuxer
+ * remap filter
+ * hash and framehash muxers
+ * colorspace filter
+ * hdcd filter
+ * readvitc filter
+ * VAAPI-accelerated format conversion and scaling
+ * libnpp/CUDA-accelerated format conversion and scaling
+ * Duck TrueMotion 2.0 Real Time decoder
+ * Wideband Single-bit Data (WSD) demuxer
+ * VAAPI-accelerated H.264/HEVC/MJPEG encoding
+ * DTS Express (LBR) decoder
+ * Generic OpenMAX IL encoder with support for Raspberry Pi
+ * IFF ANIM demuxer & decoder
+ * Direct Stream Transfer (DST) decoder
+ * loudnorm filter
+ * MTAF demuxer and decoder
+ * MagicYUV decoder
+ * OpenExr improvements (tile data and B44/B44A support)
+ * BitJazz SheerVideo decoder
+ * CUDA CUVID H264/HEVC decoder
+ * 10-bit depth support in native utvideo decoder
+ * libutvideo wrapper removed
+ * YUY2 Lossless Codec decoder
+
+- Added minimum requirement for libva (0.35.0, matched by
+ 1.3.0 package)
+
+-------------------------------------------------------------------
+Tue May 31 08:31:36 UTC 2016 - robert.munteanu(a)gmail.com
+
+- Guard usage of opencore using bcond_with, boo#980542
+
+-------------------------------------------------------------------
+Thu Apr 28 06:29:57 UTC 2016 - aloisio(a)gmx.com
+
+- Update to version 3.0.2
+ * avcodec/ttaenc: Reallocate packet if its too small
+ * configure: build fix for P5600 with mips code restructuring
+ * mips: add support for R6
+ * pgssubdec: fix subpicture output colorspace and range
+ * avcodec/ac3dec: Reset SPX when switching from EAC3 to AC3
+ * avfilter/vf_drawtext: Check return code of load_glyph()
+ * avformat/mux: Check that deinit is set before calling it
+ * avcodec/takdec: add code that got somehow lost in process of
+ REing
+ * avcodec/apedec: fix decoding of stereo files with one
+ channel full of silence
+ * avcodec/avpacket: Fix off by 5 error
+ * avcodec/h264: Fix for H.264 configuration parsing
+ * avcodec/bmp_parser: Ensure remaining_size is not too small
+ in startcode packet crossing corner case
+ * avcodec/pngdec: Fix alpha detection with skip_frame
+ * Changelog: Make formating consistent
+ * avfilter/src_movie: fix how we check for overflows with
+ seek_point
+ * avcodec/j2kenc: Add attribution to OpenJPEG project:
+
+- Dropped dcadec (libdca was merged upstream)
+
+-------------------------------------------------------------------
+Mon Apr 25 06:39:32 UTC 2016 - jengelh(a)inai.de
+
+- Add ffmpeg-codec-choice.diff
+
+-------------------------------------------------------------------
+Sun Apr 17 22:13:21 UTC 2016 - olaf(a)aepfle.de
+
+- Remove ffmpeg-devel subpackage.
+ All users have been converted to pkgconfig
+ Add Provides/Obsoletes to libavdevice-devel
+
+-------------------------------------------------------------------
+Sun Apr 10 21:51:14 UTC 2016 - jengelh(a)inai.de
+
+- Add ffmpeg-new-coder-errors.diff
+
+-------------------------------------------------------------------
+Wed Apr 6 18:57:05 UTC 2016 - jengelh(a)inai.de
+
+- Another try at organizing the codec-enable list.
+ Enable video: AYUV, Dirac, MJPEG, rawvideo, Theora, VP8, VP9, WebP,
+ zlib
+ Enable audio: Celt, GSM, Opus, Speex, Vorbis
+ Enable subtitle: ASS/SSA text, SRT text, UTF-8 plaintext
+
+-------------------------------------------------------------------
+Wed Mar 30 00:47:30 UTC 2016 - jengelh(a)inai.de
+
+- Update to new maintenance release 3.0.1
+* vc2enc: fix use of uninitialized variables in the rate control
+ system
+* postproc: fix an unaligned access
+* lavc/hevc: Allow arbitrary garbage in bytestream as long as at
+ least one NAL unit is found.
+
+-------------------------------------------------------------------
+Tue Feb 16 16:36:09 UTC 2016 - olaf(a)aepfle.de
+
+- Update included pkgconfig files to require the exact version
+ of ffmpeg pc files, instead of any later version
+ ffmpeg-pkgconfig-version.patch
+
+-------------------------------------------------------------------
+Mon Feb 15 12:57:55 UTC 2016 - idonmez(a)suse.com
+
+- Remove the optional vo-aacenc dependency, upstream removed it.
+
+-------------------------------------------------------------------
+Mon Feb 15 11:54:46 UTC 2016 - jengelh(a)inai.de
+
+- Update to new upstream release 3.0
+* New filters: extrastereo, ocr, alimiter, stereowiden, stereotools,
+ rubberband, tremolo, agate, chromakey, displace, and many more.
+* ffplay dynamic volume control
+* audio high-order multiband parametric equalizer
+* automatic bitstream filtering
++++ 2 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/ffmpeg/ffmpeg.changes
++++ and /work/SRC/openSUSE:Factory/.ffmpeg.new/ffmpeg.changes
Old:
----
ffmpeg-2.8.6.tar.bz2
ffmpeg-2.8.6.tar.bz2.asc
New:
----
enable_decoders
enable_demuxers
enable_encoders
enable_muxers
ffmpeg-3.1.2.tar.xz
ffmpeg-3.1.2.tar.xz.asc
ffmpeg-codec-choice.diff
ffmpeg-new-coder-errors.diff
ffmpeg-pkgconfig-version.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ffmpeg.spec ++++++
--- /var/tmp/diff_new_pack.loJafG/_old 2016-08-26 23:15:51.000000000 +0200
+++ /var/tmp/diff_new_pack.loJafG/_new 2016-08-26 23:15:51.000000000 +0200
@@ -16,7 +16,6 @@
#
-%bcond_with dcadec
%bcond_with lame
%bcond_with librtmp
%bcond_with twolame
@@ -24,6 +23,7 @@
%bcond_with x264
%bcond_with x265
%bcond_with xvid
+%bcond_with opencore
%bcond_without celt
%bcond_without libass
%bcond_without libva
@@ -32,24 +32,28 @@
%bcond_without webp
Name: ffmpeg
-Version: 2.8.6
+Version: 3.1.2
Release: 0
-Summary: Library working with various multimedia formats
+Summary: Library for working with various multimedia formats
License: LGPL-2.1+ and GPL-2.0+
Group: Productivity/Multimedia/Video/Editors and Convertors
Url: https://ffmpeg.org/
+
#Freshcode-URL: http://freshcode.club/projects/ffmpeg
#Git-Clone: git://source.ffmpeg.org/ffmpeg
-Source: https://www.ffmpeg.org/releases/%name-%version.tar.bz2
-Source2: https://www.ffmpeg.org/releases/%name-%version.tar.bz2.asc
+Source: https://www.ffmpeg.org/releases/%name-%version.tar.xz
+Source2: https://www.ffmpeg.org/releases/%name-%version.tar.xz.asc
Source3: ffmpeg-rpmlintrc
+Source4: enable_decoders
+Source5: enable_encoders
+Source6: enable_demuxers
+Source7: enable_muxers
Source99: baselibs.conf
Patch1: ffmpeg-libcdio_cdda-pkgconfig.patch
Patch2: ffmpeg-2.4.5-arm6l.patch
-#
-Provides: ffmpeg-tools = %{version}
-Obsoletes: ffmpeg-tools < %{version}
-#
+Patch3: ffmpeg-pkgconfig-version.patch
+Patch4: ffmpeg-new-coder-errors.diff
+Patch5: ffmpeg-codec-choice.diff
BuildRequires: ladspa-devel
BuildRequires: libgsm-devel
BuildRequires: pkg-config
@@ -79,11 +83,12 @@
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libraw1394)
%if %{with libva}
-BuildRequires: pkgconfig(libva)
+BuildRequires: pkgconfig(libva) >= 0.35.0
%endif
%if %{with webp}
BuildRequires: pkgconfig(libwebp) >= 0.4
%endif
+BuildRequires: pkgconfig(netcdf)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(schroedinger-1.0)
@@ -114,16 +119,12 @@
%if %{with xvid}
BuildRequires: libxvidcore-devel
%endif
-%if %{with dcadec}
-BuildRequires: pkgconfig(dcadec)
-%endif
+%if %{with opencore}
BuildRequires: pkgconfig(opencore-amrnb)
+%endif
%if %{with twolame}
BuildRequires: pkgconfig(twolame)
%endif
-%if %{with vo_aacenc}
-BuildRequires: pkgconfig(vo-aacenc)
-%endif
%if %{with x264}
BuildRequires: pkgconfig(x264)
%endif
@@ -132,15 +133,19 @@
%endif
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Provides: ffmpeg-tools = %{version}
+Obsoletes: ffmpeg-tools < %{version}
%description
-FFmpeg is the leading multimedia framework, able to decode, encode,
-transcode, mux, demux, stream, filter and play pretty much anything
-that humans and machines have created. It supports the most obscure
-ancient formats up to the cutting edge. No matter if they were
-designed by some standards committee, the community or a corporation.
+FFmpeg is a multimedia framework, able to decode, encode,
+transcode, mux, demux, stream, filter and play several formats
+that humans and machines have created.
+%if !0%{?BUILD_ORIG}
-%package -n libavcodec56
+This build of ffmpeg is limited in the number of codecs supported.
+%endif
+
+%package -n libavcodec57
Summary: FFmpeg codec library
Group: System/Libraries
# For mozillas
@@ -149,19 +154,19 @@
Provides: libavcodec-full = %version-%release
%endif
-%description -n libavcodec56
+%description -n libavcodec57
The libavcodec library provides a generic encoding/decoding framework
and contains multiple decoders and encoders for audio, video and
subtitle streams, and several bitstream filters.
+%if !0%{?BUILD_ORIG}
-The shared architecture provides various services ranging from bit
-stream I/O to DSP optimizations, and makes it suitable for
-implementing robust and fast codecs as well as for experimentation.
+This build of ffmpeg is limited in the number of codecs supported.
+%endif
%package -n libavcodec-devel
Summary: Development files for FFmpeg's codec library
Group: Development/Libraries/C and C++
-Requires: libavcodec56 = %version
+Requires: libavcodec57 = %version
%description -n libavcodec-devel
The libavcodec library provides a generic encoding/decoding framework
@@ -170,11 +175,11 @@
This subpackage contains the headers for FFmpeg libavcodec.
-%package -n libavdevice56
+%package -n libavdevice57
Summary: FFmpeg device library
Group: System/Libraries
-%description -n libavdevice56
+%description -n libavdevice57
The libavdevice library provides a generic framework for grabbing from
and rendering to many common multimedia input/output devices, and
supports several input and output devices, including Video4Linux2, VfW,
@@ -183,7 +188,9 @@
%package -n libavdevice-devel
Summary: Development files for FFmpeg's device library
Group: Development/Libraries/C and C++
-Requires: libavdevice56 = %version
+Requires: libavdevice57 = %version
+Provides: ffmpeg-devel = %version
+Obsoletes: ffmpeg-devel < %version
%description -n libavdevice-devel
The libavdevice library provides a generic framework for grabbing from
@@ -193,18 +200,18 @@
This subpackage contains the headers for FFmpeg libavcodec.
-%package -n libavfilter5
+%package -n libavfilter6
Summary: FFmpeg audio and video filtering library
Group: System/Libraries
-%description -n libavfilter5
+%description -n libavfilter6
The libavfilter library provides a generic audio/video filtering
framework containing several filters, sources and sinks.
%package -n libavfilter-devel
Summary: Development files for FFmpeg's audio/video filter library
Group: Development/Libraries/C and C++
-Requires: libavfilter5 = %version
+Requires: libavfilter6 = %version
%description -n libavfilter-devel
The libavfilter library provides a generic audio/video filtering
@@ -212,20 +219,24 @@
This subpackage contains the headers for FFmpeg libavcodec.
-%package -n libavformat56
+%package -n libavformat57
Summary: FFmpeg's stream format library
Group: System/Libraries
-%description -n libavformat56
+%description -n libavformat57
The libavformat library provides a generic framework for multiplexing
and demultiplexing (muxing and demuxing) audio, video and subtitle
streams. It encompasses multiple muxers and demuxers for multimedia
container formats.
+%if !0%{?BUILD_ORIG}
+
+This build of ffmpeg is limited in the number of codecs supported.
+%endif
%package -n libavformat-devel
Summary: Development files for FFmpeg's stream format library
Group: Development/Libraries/C and C++
-Requires: libavformat56 = %version
+Requires: libavformat57 = %version
%description -n libavformat-devel
The libavformat library provides a generic framework for multiplexing
@@ -235,11 +246,11 @@
This subpackage contains the headers for FFmpeg libavcodec.
-%package -n libavresample2
+%package -n libavresample3
Summary: FFmpeg alternate audio resampling library
Group: System/Libraries
-%description -n libavresample2
+%description -n libavresample3
An audio resampling library that is being provided for drop-in
compatibility with libav.
@@ -248,7 +259,7 @@
%package -n libavresample-devel
Summary: Development files for libavresample as present in FFmpeg
Group: Development/Libraries/C and C++
-Requires: libavresample2 = %version
+Requires: libavresample3 = %version
%description -n libavresample-devel
An audio resampling library that is being provided for drop-in
@@ -258,11 +269,11 @@
This subpackage contains the headers for FFmpeg's copy of libavresample.
-%package -n libavutil54
+%package -n libavutil55
Summary: FFmpeg's utility library
Group: System/Libraries
-%description -n libavutil54
+%description -n libavutil55
The libavutil library is a utility library to aid portable multimedia
programming. It contains safe portable string functions, random
number generators, data structures, additional mathematics functions,
@@ -272,7 +283,7 @@
%package -n libavutil-devel
Summary: Development files for FFmpeg's utility library
Group: Development/Libraries/C and C++
-Requires: libavutil54 = %version
+Requires: libavutil55 = %version
%description -n libavutil-devel
The libavutil library is a utility library to aid portable multimedia
@@ -283,11 +294,11 @@
This subpackage contains the headers for FFmpeg libavcodec.
-%package -n libpostproc53
+%package -n libpostproc54
Summary: FFmpeg post-processing library
Group: System/Libraries
-%description -n libpostproc53
+%description -n libpostproc54
A library with video postprocessing filters, such as deblocking and
deringing filters, noise reduction, automatic contrast and brightness
correction, linear/cubic interpolating deinterlacing.
@@ -295,7 +306,7 @@
%package -n libpostproc-devel
Summary: Development files for the FFmpeg post-processing library
Group: Development/Libraries/C and C++
-Requires: libpostproc53 = %version
+Requires: libpostproc54 = %version
%description -n libpostproc-devel
A library with video postprocessing filters, such as deblocking and
@@ -304,18 +315,18 @@
This subpackage contains the headers for FFmpeg libavcodec.
-%package -n libswresample1
+%package -n libswresample2
Summary: FFmpeg software resampling library
Group: System/Libraries
-%description -n libswresample1
+%description -n libswresample2
The libswresample library performs audio conversion between different
sample rates, channel layout and channel formats.
%package -n libswresample-devel
Summary: Development files for the FFmpeg software resampling library
Group: Development/Libraries/C and C++
-Requires: libswresample1 = %version
+Requires: libswresample2 = %version
%description -n libswresample-devel
The libswresample library performs audio conversion between different
@@ -323,18 +334,18 @@
This subpackage contains the headers for FFmpeg libswresample.
-%package -n libswscale3
+%package -n libswscale4
Summary: FFmpeg image scaling and colorspace/pixel conversion library
Group: System/Libraries
-%description -n libswscale3
+%description -n libswscale4
The libswscale library performs image scaling and colorspace and
pixel format conversion operations.
%package -n libswscale-devel
Summary: Development files for FFmpeg's image scaling and colorspace library
Group: Development/Libraries/C and C++
-Requires: libswscale3 = %version
+Requires: libswscale4 = %version
%description -n libswscale-devel
The libswscale library performs image scaling and colorspace and
@@ -342,49 +353,14 @@
This subpackage contains the headers for FFmpeg libswscale.
-%package devel
-Summary: Development files for FFmpeg
-Group: Development/Libraries/C and C++
-Requires: libavcodec-devel = %version
-Requires: libavdevice-devel = %version
-Requires: libavfilter-devel = %version
-Requires: libavformat-devel = %version
-Requires: libavutil-devel = %version
-Requires: libpostproc-devel = %version
-Requires: libswresample-devel = %version
-Requires: libswscale-devel = %version
-
-%description devel
-FFmpeg consists of a number of C libraries that work with various
-multimedia formats.
-
-This metapackage will pull them all in.
%prep
%setup -q
-%patch1 -p1
-%patch2 -p1
+%patch -P 1 -P 2 -P 3 -P 4 -P 5 -p1
%build
perl -i -pe 's{__TIME__|__DATE__}{"$&"}g' *.c
-%if !0%{?BUILD_ORIG}
-#image
-b="$b,012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv"
-b="$b,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm"
-b="$b,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4"
-d="ljpeg,v210x,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9"
-#audio
-b="$b,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le"
-b="$b,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le"
-b="$b,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be"
-b="$b,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le"
-b="$b,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex"
-e="libvorbis"
-#other
-d="$d,otf,ttf,ass,srt,ssa,text"
-%endif
-
CFLAGS="%optflags" \
./configure \
--prefix="%_prefix" --libdir="%_libdir" --shlibdir="%_libdir" \
@@ -424,6 +400,7 @@
%if %{with webp}
--enable-libwebp \
%endif
+ --enable-netcdf \
--enable-pic \
--enable-pthreads \
%if %{with libva}
@@ -433,22 +410,17 @@
--enable-vdpau \
%endif
%if 0%{?BUILD_ORIG}
-%if %{with dcadec}
- --disable-decoder="dca" \
- --enable-libdcadec \
-%endif
%if %{with lame}
--enable-libmp3lame \
%endif
+%if %{with opencore}
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-version3 \
+%endif
%if %{with twolame}
--enable-libtwolame \
%endif
-%if %{with vo_aacenc}
- --enable-libvo-aacenc \
-%endif
%if %{with x264}
--enable-libx264 \
%endif
@@ -463,12 +435,14 @@
--disable-decoders \
--disable-muxers \
--disable-demuxers \
- --enable-encoder="$b,$e" \
- --enable-decoder="$b,$d" \
- --enable-muxer="flac,gif,image2,image2pipe,matroska,matroska_audio,null,webm" \
- --enable-demuxer="flac,gif,image2,image2pipe,matroska" \
+ --disable-decoder=mpeg1video,mpeg2video,mpeg4,h264,vc1 \
+ --enable-encoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_encoders)" \
+ --enable-decoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_decoders)" \
+ --enable-muxer="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_muxers)" \
+ --enable-demuxer="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_demuxers)" \
%endif
--enable-x11grab
+cat config.h
make %{?_smp_mflags}
%global extratools aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper probetest qt-faststart seek_print trasher
@@ -485,24 +459,24 @@
cp -a "tools/$i" "$b/%_bindir/"
done
-%post -n libavcodec56 -p /sbin/ldconfig
-%postun -n libavcodec56 -p /sbin/ldconfig
-%post -n libavdevice56 -p /sbin/ldconfig
-%postun -n libavdevice56 -p /sbin/ldconfig
-%post -n libavfilter5 -p /sbin/ldconfig
-%postun -n libavfilter5 -p /sbin/ldconfig
-%post -n libavformat56 -p /sbin/ldconfig
-%postun -n libavformat56 -p /sbin/ldconfig
-%post -n libavresample2 -p /sbin/ldconfig
-%postun -n libavresample2 -p /sbin/ldconfig
-%post -n libavutil54 -p /sbin/ldconfig
-%postun -n libavutil54 -p /sbin/ldconfig
-%post -n libpostproc53 -p /sbin/ldconfig
-%postun -n libpostproc53 -p /sbin/ldconfig
-%post -n libswresample1 -p /sbin/ldconfig
-%postun -n libswresample1 -p /sbin/ldconfig
-%post -n libswscale3 -p /sbin/ldconfig
-%postun -n libswscale3 -p /sbin/ldconfig
+%post -n libavcodec57 -p /sbin/ldconfig
+%postun -n libavcodec57 -p /sbin/ldconfig
+%post -n libavdevice57 -p /sbin/ldconfig
+%postun -n libavdevice57 -p /sbin/ldconfig
+%post -n libavfilter6 -p /sbin/ldconfig
+%postun -n libavfilter6 -p /sbin/ldconfig
+%post -n libavformat57 -p /sbin/ldconfig
+%postun -n libavformat57 -p /sbin/ldconfig
+%post -n libavresample3 -p /sbin/ldconfig
+%postun -n libavresample3 -p /sbin/ldconfig
+%post -n libavutil55 -p /sbin/ldconfig
+%postun -n libavutil55 -p /sbin/ldconfig
+%post -n libpostproc54 -p /sbin/ldconfig
+%postun -n libpostproc54 -p /sbin/ldconfig
+%post -n libswresample2 -p /sbin/ldconfig
+%postun -n libswresample2 -p /sbin/ldconfig
+%post -n libswscale4 -p /sbin/ldconfig
+%postun -n libswscale4 -p /sbin/ldconfig
%files
%defattr(-,root,root)
@@ -511,39 +485,39 @@
%_mandir/man1/ff*.1*
%_datadir/ffmpeg/
-%files -n libavcodec56
+%files -n libavcodec57
%defattr(-,root,root)
%_libdir/libavcodec.so.*
-%files -n libavdevice56
+%files -n libavdevice57
%defattr(-,root,root)
%_libdir/libavdevice.so.*
-%files -n libavfilter5
+%files -n libavfilter6
%defattr(-,root,root)
%_libdir/libavfilter.so.*
-%files -n libavformat56
+%files -n libavformat57
%defattr(-,root,root)
%_libdir/libavformat.so.*
-%files -n libavresample2
+%files -n libavresample3
%defattr(-,root,root)
%_libdir/libavresample.so.*
-%files -n libavutil54
+%files -n libavutil55
%defattr(-,root,root)
%_libdir/libavutil.so.*
-%files -n libpostproc53
+%files -n libpostproc54
%defattr(-,root,root)
%_libdir/libpostproc.so.*
-%files -n libswresample1
+%files -n libswresample2
%defattr(-,root,root)
%_libdir/libswresample.so.*
-%files -n libswscale3
+%files -n libswscale4
%defattr(-,root,root)
%_libdir/libswscale.so.*
@@ -617,8 +591,4 @@
%_libdir/pkgconfig/libswscale.pc
%_mandir/man3/libswscale.3*
-%files devel
-%defattr(-,root,root)
-%dir %_includedir/ffmpeg/
-
%changelog
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.loJafG/_old 2016-08-26 23:15:51.000000000 +0200
+++ /var/tmp/diff_new_pack.loJafG/_new 2016-08-26 23:15:51.000000000 +0200
@@ -1,9 +1,9 @@
-libavcodec56
-libavdevice56
-libavfilter5
-libavformat56
-libavresample2
-libavutil54
-libpostproc53
-libswresample1
-libswscale3
+libavcodec57
+libavdevice57
+libavfilter6
+libavformat57
+libavresample3
+libavutil55
+libpostproc54
+libswresample2
+libswscale4
++++++ enable_decoders ++++++
ansi # trivial
apng
ass # trivial
ayuv # trivial
bmp # trivial
dirac # dirac
exr # openEXR
ffv1 # ffmpeg
ffvhuff # ffmpeg
ffwavesynth # pseudo
flac # libFLAC
gif # libpng
gsm # libgsm
huffyuv # trivial+zlib
libcelt
libgsm
libopenjpeg
libopus
libschroedinger
libspeex
libvorbis
libvpx_vp8
libvpx_vp9
mjpeg # mjpegtools
#mpeg1video # libav
#mpeg2video # libav
#mpeg4 # libav
opus # libopus
pam # trivial
pbm # trivial
pcm_alaw # trivial
pcm_bluray
pcm_dvd
pcm_f32be # trivial
pcm_f32le # trivial
pcm_f64be # trivial
pcm_f64le # trivial
pcm_mulaw # trivial
pcm_s16be # trivial
pcm_s16be_planar # trivial
pcm_s16le # trivial
pcm_s16le_planar # trivial
pcm_s24be # trivial
pcm_s24le # trivial
pcm_s24le_planar # trivial
pcm_s32be # trivial
pcm_s32le # trivial
pcm_s32le_planar # trivial
pcm_s8 # trivial
pcm_s8_planar # trivial
pcm_u16be # trivial
pcm_u16le # trivial
pcm_u24be # trivial
pcm_u24le # trivial
pcm_u32be # trivial
pcm_u32le # trivial
pcm_u8 # trivial
pcx
pgm # trivial
pgmyuv # trivial
pgssub # mkvtoolnix
png # libpng
ppm # trivial
rawvideo # trivial
sgi # trivial
srt # trivial
ssa # trivial
sunrast # trivial
targa # trivial
text # trivial
theora # libtheora
tiff # libtiff
v210 # trivial
v210x # trivial
v308 # trivial
v408 # trivial
v410 # trivial
vorbis # libvorbis
vp3 # libav
vp5 # libav
vp6 # libav
vp6a # libav
vp6f # libav
vp8 # libvpx
vp9 # libvpx
webp # libwebp
xbm # trivial
xwd # xwd
y41p # trivial
yuv4 # trivial
zlib # pseudo
++++++ enable_demuxers ++++++
aac # mkvtoolnix
ac3 # mkvtoolnix
adts # mkvtoolnix
aiff # trivial
apng # libpng
asf
ass # trivial, mkvtoolnix
au # trivial
avi # mkvtoolnix
concat # ffm pseudo
data # ffm pseudo
dirac # dirac, mkvtoolnix
dts # mkvtoolnix
dv # libav
flac # libFLAC, mkvtoolnix
flv # mkvtoolnix
ffm # pseudo
ffmetadata # pseudo
gif # libgif
gsm # libgsm
h264 # mkvtoolnix
hevc # mkvtoolnix
ico # icoutils
iff # trivial
ilbc # ilbc
image2 # libav
image2pipe # libav
image_bmp_pipe # trivial
image_exr_pipe # OpenEXR
image_j2k_pipe # openjpeg2
image_jpeg_pipe # libjpeg
image_png_pipe # libpng
image_sgi_pipe # trivial
image_sunrast_pipe # trivial
image_tiff_pipe # libtiff
image_webp_pipe # libwebp
ivf # mkvtoolnix
matroska # libmatroska
mjpeg # mjpegtools
mov # mkvtoolnix
mp3 # mkvtoolnix
mp4 # mkvtoolnix
mpegps # mkvtoolnix
mpegts # mkvtoolnix
mpegtsraw # mkvtoolnix
mpegvideo # mkvtoolnix
ogg # libogg, mkvtoolnix
pcm_alaw # trivial
pcm_f32be # trivial
pcm_f32le # trivial
pcm_f64be # trivial
pcm_f64le # trivial
pcm_mulaw # trivial
pcm_s16be # trivial
pcm_s16le # trivial
pcm_s24be # trivial
pcm_s24le # trivial
pcm_s32be # trivial
pcm_s32le # trivial
pcm_s8 # trivial
pcm_u16be # trivial
pcm_u16le # trivial
pcm_u24be # trivial
pcm_u24le # trivial
pcm_u32be # trivial
pcm_u32le # trivial
pcm_u8 # trivial
rawvideo # trivial
rm # mkvtoolnix
sln # trivial
sox # sox
srt # trivial, mkvtoolnix
truehd # mkvtoolnix
tta # mkvtoolnix
tty # pseudo
v210 # trivial
v210x # trivial
vc1 # mkvtoolnix
vobsub # mkvtoolnix
wav # trivial, mkvtoolnix
webvtt # webm
++++++ enable_encoders ++++++
apng # libpng
ass # trivial
ayuv # trival
bmp # trivial
ffv1
ffvhuff # trivial+zlib
flac # libFLAC
gif # libpng
huffyuv # trivial+zlib
jpegls
libgsm
libopenjpeg
libopus
libschroedinger
libspeex
libtheora
libvorbis
libvpx_vp8
libvpx_vp9
libwebp
libwebp_anim
mjpeg
pam
pbm
pcm_alaw
pcm_f32be
pcm_f32le
pcm_f64be
pcm_f64le
pcm_mulaw
pcm_s16be
pcm_s16be_planar
pcm_s16le
pcm_s16le_planar
pcm_s24be
pcm_s24le
pcm_s24le_planar
pcm_s32be
pcm_s32le
pcm_s32le_planar
pcm_s8
pcm_s8_planar
pcm_u16be
pcm_u16le
pcm_u24be
pcm_u24le
pcm_u32be
pcm_u32le
pcm_u8
pcx
pgm
pgmyuv
png
ppm
sgi
srt
ssa
sunrast
targa
text
tiff
v210
v308
v408
v410
vorbis
xbm
xwd
y41p
yuv4
zlib
++++++ enable_muxers ++++++
aac # mkvtoolnix
ac3 # mkvtoolnix
adts # mkvtoolnix
aiff # trivial
apng # libpng
asf
ass # trivial, mkvtoolnix
au # trivial
avi
crc
data
dirac # dirac, mkvtoolnix
ffm # pseudo
ffmetadata # pseudo
flac # libFLAC, mkvtoolnix
framecrc # pseudo
framemd5 # pseudo
gif # libgif
h264 # mkvtoolnix
hevc # mkvtoolnix
ico # icoutils
ilbc # ilbc
image2
image2pipe
matroska # libmatroska
matroska_audio # libmatroska
md5 # pseudo
mjpeg # mjpegtools
mov # mkvtoolnix
mpegts # mkvtoolnix
mp3 # mkvtoolnix
mp4 # mkvtoolnix
mkvtimestamp_v2 # libmatroska
null # pseudo
ogg # libogg, mkvtoolnix
opus # libopus, mkvtoolnix
pcm_alaw # trivial
pcm_f32be # trivial
pcm_f32le # trivial
pcm_f64be # trivial
pcm_f64le # trivial
pcm_mulaw # trivial
pcm_s16be # trivial
pcm_s16le # trivial
pcm_s24be # trivial
pcm_s24le # trivial
pcm_s32be # trivial
pcm_s32le # trivial
pcm_s8 # trivial
pcm_u16be # trivial
pcm_u16le # trivial
pcm_u24be # trivial
pcm_u24le # trivial
pcm_u32be # trivial
pcm_u32le # trivial
pcm_u8 # trivial
rawvideo # trivial
singlejpeg # libjpeg
sox # sox
srt # trivial, mkvtoolnix
tee # pseudo
truehd # mkvtoolnix
uncodedframecrc # pseudo
vc1 # mkvtoolnix
wav # trivial
webm # webm
webm_chunk # webm
webp # libwebp
webvtt # webm
++++++ ffmpeg-2.4.5-arm6l.patch ++++++
--- /var/tmp/diff_new_pack.loJafG/_old 2016-08-26 23:15:51.000000000 +0200
+++ /var/tmp/diff_new_pack.loJafG/_new 2016-08-26 23:15:51.000000000 +0200
@@ -2,10 +2,10 @@
libavutil/arm/timer.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: ffmpeg-2.8.3/libavutil/arm/timer.h
+Index: ffmpeg-3.0.1/libavutil/arm/timer.h
===================================================================
---- ffmpeg-2.8.3.orig/libavutil/arm/timer.h
-+++ ffmpeg-2.8.3/libavutil/arm/timer.h
+--- ffmpeg-3.0.1.orig/libavutil/arm/timer.h
++++ ffmpeg-3.0.1/libavutil/arm/timer.h
@@ -24,7 +24,7 @@
#include <stdint.h>
#include "config.h"
++++++ ffmpeg-codec-choice.diff ++++++
From: Jan Engelhardt <jengelh(a)inai.de>
Edit the default codec selection such that
ffmpeg -i youtube.blah.webm foobar.mkv
without any further arguments can produce a result even on a
reduced codec selection list.
---
libavformat/matroskaenc.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
Index: ffmpeg-3.0.1/libavformat/matroskaenc.c
===================================================================
--- ffmpeg-3.0.1.orig/libavformat/matroskaenc.c
+++ ffmpeg-3.0.1/libavformat/matroskaenc.c
@@ -2177,16 +2177,24 @@ static const AVClass matroska_class = {
.version = LIBAVUTIL_VERSION_INT,
};
+#define PREFAUDIO \
+ CONFIG_LIBOPUS_ENCODER ? AV_CODEC_ID_OPUS : \
+ CONFIG_AAC_ENCODER ? AV_CODEC_ID_AAC : \
+ CONFIG_VORBIS_ENCODER ? AV_CODEC_ID_VORBIS : \
+ AV_CODEC_ID_AC3
AVOutputFormat ff_matroska_muxer = {
.name = "matroska",
.long_name = NULL_IF_CONFIG_SMALL("Matroska"),
.mime_type = "video/x-matroska",
.extensions = "mkv",
.priv_data_size = sizeof(MatroskaMuxContext),
- .audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
- .video_codec = CONFIG_LIBX264_ENCODER ?
- AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4,
+ .audio_codec = PREFAUDIO,
+ .video_codec =
+ CONFIG_LIBVPX_VP9_ENCODER ? AV_CODEC_ID_VP9 : \
+ CONFIG_LIBX264_ENCODER ? AV_CODEC_ID_H264 : \
+ CONFIG_LIBVPX_VP8_ENCODER ? AV_CODEC_ID_VP8 : \
+ CONFIG_MPEG4_ENCODER ? AV_CODEC_ID_MPEG4 : \
+ AV_CODEC_ID_THEORA,
.init = mkv_init,
.write_header = mkv_write_header,
.write_packet = mkv_write_flush_packet,
@@ -2245,8 +2253,7 @@ AVOutputFormat ff_matroska_audio_muxer =
.mime_type = "audio/x-matroska",
.extensions = "mka",
.priv_data_size = sizeof(MatroskaMuxContext),
- .audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
+ .audio_codec = PREFAUDIO,
.video_codec = AV_CODEC_ID_NONE,
.init = mkv_init,
.write_header = mkv_write_header,
++++++ ffmpeg-libcdio_cdda-pkgconfig.patch ++++++
--- /var/tmp/diff_new_pack.loJafG/_old 2016-08-26 23:15:51.000000000 +0200
+++ /var/tmp/diff_new_pack.loJafG/_new 2016-08-26 23:15:51.000000000 +0200
@@ -2,11 +2,11 @@
configure | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
-Index: ffmpeg-2.8.3/configure
+Index: ffmpeg-3.0.1/configure
===================================================================
---- ffmpeg-2.8.3.orig/configure
-+++ ffmpeg-2.8.3/configure
-@@ -5453,8 +5453,9 @@ enabled jack_indev && check_lib2 jack/ja
+--- ffmpeg-3.0.1.orig/configure
++++ ffmpeg-3.0.1/configure
+@@ -5714,8 +5714,9 @@ enabled jack_indev && check_lib2 jack/ja
enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
if enabled libcdio; then
++++++ ffmpeg-new-coder-errors.diff ++++++
From: Jan Engelhardt <jengelh(a)inai.de>
Date: 2016-04-10 23:23:53.138440254 +0200
Improve the error messages a bit to say what's really going on
(in light of openSUSE's reduced build).
---
ffmpeg.c | 4 ++--
ffmpeg_filter.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
Index: ffmpeg-3.0.1/ffmpeg.c
===================================================================
--- ffmpeg-3.0.1.orig/ffmpeg.c
+++ ffmpeg-3.0.1/ffmpeg.c
@@ -2525,7 +2525,7 @@ static int init_input_stream(int ist_ind
if (ist->decoding_needed) {
AVCodec *codec = ist->dec;
if (!codec) {
- snprintf(error, error_len, "Decoder (codec %s) not found for input stream #%d:%d",
+ snprintf(error, error_len, "This build of ffmpeg does not include a \"%s\" decoder needed for input stream #%d:%d.",
avcodec_get_name(ist->dec_ctx->codec_id), ist->file_index, ist->st->index);
return AVERROR(EINVAL);
}
@@ -3021,7 +3021,7 @@ static int transcode_init(void)
ost->enc = avcodec_find_encoder(enc_ctx->codec_id);
if (!ost->enc) {
/* should only happen when a default codec is not present. */
- snprintf(error, sizeof(error), "Encoder (codec %s) not found for output stream #%d:%d",
+ snprintf(error, sizeof(error), "This build of ffmpeg does not include a \"%s\" encoder needed for output stream #%d:%d.",
avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index);
ret = AVERROR(EINVAL);
goto dump_format;
Index: ffmpeg-3.0.1/ffmpeg_filter.c
===================================================================
--- ffmpeg-3.0.1.orig/ffmpeg_filter.c
+++ ffmpeg-3.0.1/ffmpeg_filter.c
@@ -948,7 +948,7 @@ static int configure_input_filter(Filter
if (!ifilter->ist->dec) {
av_log(NULL, AV_LOG_ERROR,
- "No decoder for stream #%d:%d, filtering impossible\n",
+ "This build of ffmpeg does not have a suitable decoder for stream #%d:%d enabled, filtering impossible\n",
ifilter->ist->file_index, ifilter->ist->st->index);
return AVERROR_DECODER_NOT_FOUND;
}
@@ -1057,7 +1057,7 @@ int configure_filtergraph(FilterGraph *f
if (!ost->enc) {
/* identical to the same check in ffmpeg.c, needed because
complex filter graphs are initialized earlier */
- av_log(NULL, AV_LOG_ERROR, "Encoder (codec %s) not found for output stream #%d:%d\n",
+ av_log(NULL, AV_LOG_ERROR, "This build of ffmpeg_filter does not include a \"%s\" encoder needed for output stream #%d:%d.\n",
avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index);
return AVERROR(EINVAL);
}
++++++ ffmpeg-pkgconfig-version.patch ++++++
---
configure | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: ffmpeg-3.0.1/configure
===================================================================
--- ffmpeg-3.0.1.orig/configure
+++ ffmpeg-3.0.1/configure
@@ -6488,7 +6488,8 @@ fi
# build pkg-config files
lib_version(){
- eval printf "\"lib${1}${build_suffix} >= \$LIB$(toupper ${1})_VERSION, \""
+ # Require the exact version of other libs, not any future version
+ eval printf "\"lib${1}${build_suffix} = \$LIB$(toupper ${1})_VERSION, \""
}
pkgconfig_generate(){
1
0
Hello community,
here is the log from the commit of package webkit2gtk3 for openSUSE:Factory checked in at 2016-08-26 23:15:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/webkit2gtk3 (Old)
and /work/SRC/openSUSE:Factory/.webkit2gtk3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "webkit2gtk3"
Changes:
--------
--- /work/SRC/openSUSE:Factory/webkit2gtk3/webkit2gtk3.changes 2016-07-01 09:53:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.webkit2gtk3.new/webkit2gtk3.changes 2016-08-26 23:15:32.000000000 +0200
@@ -1,0 +2,27 @@
+Thu Aug 25 23:14:56 UTC 2016 - sreeves(a)suse.com
+
+- Rebase webkitgtk-disable-gcc-version-checks.patch for 2.12.4
+
+-------------------------------------------------------------------
+Thu Aug 25 07:13:38 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 2.12.4:
+ + Security fixes: CVE-2016-4622, CVE-2016-4624, CVE-2016-4591,
+ CVE-2016-4590.
+ + Fix performance in accelerated compositing mode with the
+ modesetting intel driver and DRI3 enabled.
+ + Reduce the amount of file descriptors that the Web Process
+ keeps open.
+ + Fix Web Process deadlocks when loading HLS videos.
+ + Make CSS and SVG animations run at 60fps.
+ + Make meter elements accessible.
+ + Improve accessibility name and description of elements to make
+ it more compatible with W3C specs and fix several bugs in which
+ the accessible name of objects was missing or broken.
+ + Fix a crash when running windowed plugins under Wayland.
+ + Fix a crash at process exit under Wayland.
+ + Fix several crashes and rendering issues.
+ + Updated translations.
+- Update _constraints memory requirements.
+
+-------------------------------------------------------------------
Old:
----
webkitgtk-2.12.3.tar.xz
New:
----
webkitgtk-2.12.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ webkit2gtk3.spec ++++++
--- /var/tmp/diff_new_pack.UdZNlC/_old 2016-08-26 23:15:33.000000000 +0200
+++ /var/tmp/diff_new_pack.UdZNlC/_new 2016-08-26 23:15:33.000000000 +0200
@@ -26,7 +26,7 @@
%define _pkgconfig_suffix gtk-3.0
%define _name webkitgtk
Name: webkit2gtk3
-Version: 2.12.3
+Version: 2.12.4
Release: 0
Summary: Library for rendering web content, GTK+ Port
License: LGPL-2.0+ and BSD-3-Clause
++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.UdZNlC/_old 2016-08-26 23:15:33.000000000 +0200
+++ /var/tmp/diff_new_pack.UdZNlC/_new 2016-08-26 23:15:33.000000000 +0200
@@ -4,7 +4,7 @@
<size unit="M">2200</size>
</disk>
<physicalmemory>
- <size unit="M">3200</size>
+ <size unit="M">4300</size>
</physicalmemory>
</hardware>
<overwrite>
++++++ webkitgtk-2.12.3.tar.xz -> webkitgtk-2.12.4.tar.xz ++++++
/work/SRC/openSUSE:Factory/webkit2gtk3/webkitgtk-2.12.3.tar.xz /work/SRC/openSUSE:Factory/.webkit2gtk3.new/webkitgtk-2.12.4.tar.xz differ: char 26, line 1
++++++ webkitgtk-disable-gcc-version-checks.patch ++++++
--- /var/tmp/diff_new_pack.UdZNlC/_old 2016-08-26 23:15:33.000000000 +0200
+++ /var/tmp/diff_new_pack.UdZNlC/_new 2016-08-26 23:15:33.000000000 +0200
@@ -11,11 +11,11 @@
Source/cmake/OptionsGTK.cmake | 7 -------
1 file changed, 7 deletions(-)
-Index: webkitgtk-2.12.3/Source/cmake/OptionsGTK.cmake
+Index: webkitgtk-2.12.4/Source/cmake/OptionsGTK.cmake
===================================================================
---- webkitgtk-2.12.3.orig/Source/cmake/OptionsGTK.cmake 2016-05-24 10:06:23.000000000 +0200
-+++ webkitgtk-2.12.3/Source/cmake/OptionsGTK.cmake 2016-06-20 15:45:57.393089713 +0200
-@@ -6,13 +6,6 @@
+--- webkitgtk-2.12.4.orig/Source/cmake/OptionsGTK.cmake
++++ webkitgtk-2.12.4/Source/cmake/OptionsGTK.cmake
+@@ -6,13 +6,6 @@ set(PROJECT_VERSION_MICRO 4)
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_MICRO})
set(WEBKITGTK_API_VERSION 4.0)
@@ -28,11 +28,11 @@
-
# Libtool library version, not to be confused with API version.
# See http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
- CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT2 50 9 13)
-Index: webkitgtk-2.12.3/Source/WTF/wtf/Compiler.h
+ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT2 50 10 13)
+Index: webkitgtk-2.12.4/Source/WTF/wtf/Compiler.h
===================================================================
---- webkitgtk-2.12.3.orig/Source/WTF/wtf/Compiler.h 2016-04-11 08:18:43.000000000 +0200
-+++ webkitgtk-2.12.3/Source/WTF/wtf/Compiler.h 2016-06-20 15:45:57.393089713 +0200
+--- webkitgtk-2.12.4.orig/Source/WTF/wtf/Compiler.h
++++ webkitgtk-2.12.4/Source/WTF/wtf/Compiler.h
@@ -70,8 +70,8 @@
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#define GCC_VERSION_AT_LEAST(major, minor, patch) (GCC_VERSION >= (major * 10000 + minor * 100 + patch))
1
0
Hello community,
here is the log from the commit of package libspectre for openSUSE:Factory checked in at 2016-08-26 23:15:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libspectre (Old)
and /work/SRC/openSUSE:Factory/.libspectre.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libspectre"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libspectre/libspectre.changes 2016-07-14 09:41:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libspectre.new/libspectre.changes 2016-08-26 23:15:25.000000000 +0200
@@ -1,0 +2,8 @@
+Tue Aug 23 14:39:44 UTC 2016 - alarrosa(a)suse.com
+
+- Add fix-bsc975503.diff to fix handling of PostScript files with
+ embedded EPS files. The PS file then contains two "%%EOF" DSC
+ comments and the first one stopped the parsing of the file as if
+ the real EOF was reached (bsc#975503, fdo#97091).
+
+-------------------------------------------------------------------
New:
----
fix-bsc975503.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libspectre.spec ++++++
--- /var/tmp/diff_new_pack.pP7RPt/_old 2016-08-26 23:15:26.000000000 +0200
+++ /var/tmp/diff_new_pack.pP7RPt/_new 2016-08-26 23:15:26.000000000 +0200
@@ -25,6 +25,8 @@
License: GPL-2.0+
Group: Development/Libraries/C and C++
Source0: http://libspectre.freedesktop.org/releases/%{name}-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM fix-bsc975503.diff bsc#975503 fdo#97091 -- Parse ps files ignoring EOF comments which would stop parsing too soon in documents with embedded EPS files.
+Patch0: fix-bsc975503.diff
%define debug_package_requires libspectre1 = %{version}-%{release}
BuildRequires: ghostscript-devel
BuildRequires: ghostscript-library
@@ -58,6 +60,7 @@
%prep
%setup -q
+%patch0 -p1
%build
%configure --disable-static --enable-shared
++++++ fix-bsc975503.diff ++++++
Index: libspectre-0.2.7/libspectre/spectre-document.c
===================================================================
--- libspectre-0.2.7.orig/libspectre/spectre-document.c
+++ libspectre-0.2.7/libspectre/spectre-document.c
@@ -67,7 +67,7 @@ spectre_document_load (SpectreDocument *
document->doc = NULL;
}
- document->doc = psscan (filename, SCANSTYLE_NORMAL);
+ document->doc = psscan (filename, SCANSTYLE_IGNORE_EOF);
if (!document->doc) {
document->status = SPECTRE_STATUS_LOAD_ERROR;
return;
1
0
Hello community,
here is the log from the commit of package grub2 for openSUSE:Factory checked in at 2016-08-26 23:15:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub2 (Old)
and /work/SRC/openSUSE:Factory/.grub2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grub2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/grub2/grub2.changes 2016-08-18 10:19:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2016-08-26 23:15:15.000000000 +0200
@@ -1,0 +2,6 @@
+Sat Aug 20 05:42:12 UTC 2016 - arvidjaar(a)gmail.com
+
+- since version 1.7 cryptsetup defaults to SHA256 for LUKS - include
+ gcry_sha256 in signed EFI image
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grub2.spec ++++++
--- /var/tmp/diff_new_pack.7t0Nsb/_old 2016-08-26 23:15:17.000000000 +0200
+++ /var/tmp/diff_new_pack.7t0Nsb/_new 2016-08-26 23:15:17.000000000 +0200
@@ -535,7 +535,7 @@
password_pbkdf2 png reboot search search_fs_uuid \
search_fs_file search_label sleep test video fat loadenv"
PXE_MODULES="efinet tftp"
-CRYPTO_MODULES="luks gcry_rijndael gcry_sha1"
+CRYPTO_MODULES="luks gcry_rijndael gcry_sha1 gcry_sha256"
%ifarch x86_64
CD_MODULES="${CD_MODULES} linuxefi"
1
0
Hello community,
here is the log from the commit of package libgweather for openSUSE:Factory checked in at 2016-08-26 23:14:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgweather (Old)
and /work/SRC/openSUSE:Factory/.libgweather.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgweather"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgweather/libgweather.changes 2016-08-17 12:04:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libgweather.new/libgweather.changes 2016-08-26 23:15:00.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Aug 23 17:52:13 UTC 2016 - zaitor(a)opensuse.org
+
+- Spellfix in find_lang macro.
+- Drop obsolete clean section.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgweather.spec ++++++
--- /var/tmp/diff_new_pack.ijgWcv/_old 2016-08-26 23:15:01.000000000 +0200
+++ /var/tmp/diff_new_pack.ijgWcv/_new 2016-08-26 23:15:01.000000000 +0200
@@ -102,10 +102,8 @@
%makeinstall
find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
%find_lang libgweather-3.0 %{?no_lang_C}
-%find_lang libgweather-locations libgweather-3.0.lang %{?no_ang_C}
+%find_lang libgweather-locations libgweather-3.0.lang %{?no_lang_C}
-%clean
-%{__rm} -rf %{buildroot}
%post -n libgweather-3-6 -p /sbin/ldconfig
1
0
Hello community,
here is the log from the commit of package iprutils for openSUSE:Factory checked in at 2016-08-26 23:14:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iprutils (Old)
and /work/SRC/openSUSE:Factory/.iprutils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iprutils"
Changes:
--------
--- /work/SRC/openSUSE:Factory/iprutils/iprutils.changes 2016-08-11 18:53:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.iprutils.new/iprutils.changes 2016-08-26 23:14:49.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Aug 23 05:58:13 UTC 2016 - jloeser(a)suse.com
+
+- version update to 2.4.13
+ - Additional fixes for tracking known zeroed state
+
+-------------------------------------------------------------------
Old:
----
iprutils-2.4.12.tar.gz
New:
----
iprutils-2.4.13.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iprutils.spec ++++++
--- /var/tmp/diff_new_pack.s0pSMe/_old 2016-08-26 23:14:50.000000000 +0200
+++ /var/tmp/diff_new_pack.s0pSMe/_new 2016-08-26 23:14:50.000000000 +0200
@@ -19,7 +19,7 @@
Name: iprutils
# NOTE: package's changelog is hidden in % changelog section
# in file iprutils/spec/iprutils.spec
-Version: 2.4.12
+Version: 2.4.13
Release: 0
%define ibmformat %(sed 's/\\./-/g' <<< %{version})
Summary: Utilities for the IBM Power Linux RAID Adapters
++++++ iprutils-2.4.12.tar.gz -> iprutils-2.4.13.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iprutils-rel-2-4-12/configure.ac new/iprutils-rel-2-4-13/configure.ac
--- old/iprutils-rel-2-4-12/configure.ac 2016-08-04 13:17:49.000000000 +0200
+++ new/iprutils-rel-2-4-13/configure.ac 2016-08-16 16:47:13.000000000 +0200
@@ -10,7 +10,7 @@
AC_PREREQ([2.63])
# For RC releases, version should be set to 2.4.10.0.rc1, 2.4.10.0.rc2, etc.
# For GA releases, version should be set to 2.4.10.1, 2.4.10.2, etc.
-AC_INIT([iprutils], [2.4.12.1], [iprdd-devel(a)lists.sourceforge.net]
+AC_INIT([iprutils], [2.4.13.1], [iprdd-devel(a)lists.sourceforge.net]
AM_INIT_AUTOMAKE([1.9 foreign])
AC_CONFIG_MACRO_DIR([build-aux])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iprutils-rel-2-4-12/iprconfig.c new/iprutils-rel-2-4-13/iprconfig.c
--- old/iprutils-rel-2-4-12/iprconfig.c 2016-08-04 13:17:49.000000000 +0200
+++ new/iprutils-rel-2-4-13/iprconfig.c 2016-08-16 16:47:13.000000000 +0200
@@ -37,6 +37,7 @@
struct devs_to_init_t {
struct ipr_dev *dev;
struct ipr_ioa *ioa;
+ u64 device_id;
int new_block_size;
int cmplt;
int do_init;
@@ -222,6 +223,63 @@
return 1;
}
+static int wait_for_formatted_af_dasd(int timeout_in_secs)
+{
+ struct devs_to_init_t *dev = dev_init_head;
+ struct scsi_dev_data *scsi_devs;
+ struct scsi_dev_data *scsi_dev_data;
+ int num_devs, j, af_found, jbod2af_formats, num_secs;
+ u64 device_id;
+
+ for (num_secs = 0; num_secs < timeout_in_secs; timeout_in_secs++) {
+ af_found = 0;
+ jbod2af_formats = 0;
+ scsi_devs = NULL;
+
+ num_devs = get_scsi_dev_data(&scsi_devs);
+
+ for_each_dev_to_init(dev) {
+ if (!dev->dev || !dev->ioa)
+ continue;
+ if (!dev->dev->scsi_dev_data)
+ continue;
+ if (dev->dev_type != IPR_JBOD_DASD_DEVICE)
+ continue;
+ if (!ipr_is_af_blk_size(dev->ioa, dev->new_block_size))
+ continue;
+ if (!dev->do_init)
+ continue;
+
+ jbod2af_formats++;
+ device_id = dev->dev->scsi_dev_data->device_id;
+
+ for (j = 0, scsi_dev_data = scsi_devs;
+ j < num_devs; j++, scsi_dev_data++) {
+ if (scsi_dev_data->host != dev->ioa->host_num)
+ continue;
+ if (get_sg_name(scsi_dev_data))
+ continue;
+ if (scsi_dev_data->type != IPR_TYPE_AF_DISK)
+ continue;
+ if (dev->device_id != scsi_dev_data->device_id)
+ continue;
+
+ scsi_dbg(dev->dev, "Format complete. AF DASD found. New Device ID=%lx, Old Device ID=%lx\n",
+ scsi_dev_data->device_id, dev->device_id);
+ af_found++;
+ break;
+ }
+ }
+
+ free(scsi_devs);
+ if (af_found == jbod2af_formats)
+ break;
+ sleep(1);
+ }
+
+ return ((af_found == jbod2af_formats) ? 0 : -ETIMEDOUT);
+}
+
/**
* flush_stdscr -
*
@@ -6556,6 +6614,10 @@
dev_init_tail->dev_type = IPR_JBOD_DASD_DEVICE;
dev_init_tail->new_block_size = blk_size;
dev_init_tail->dev = dev;
+ dev_init_tail->device_id = dev->scsi_dev_data->device_id;
+
+ scsi_dbg(dev, "Formatting device to %d bytes/block. Device ID=%lx\n",
+ blk_size, dev_init_tail->device_id);
}
/**
@@ -8840,8 +8902,9 @@
return 51 | EXIT_FLAG;
}
- format_done = 1;
- check_current_config(false);
+ format_done = 1;
+ wait_for_formatted_af_dasd(30);
+ check_current_config(false);
if (!pid)
exit(0);
@@ -14012,7 +14075,6 @@
}
rc = send_dev_inits(NULL);
- set_devs_format_completed();
free_devs_to_init();
return IPR_XLATE_DEV_FMT_RC(rc);
}
@@ -14197,8 +14259,8 @@
for (sdev = head_sdev; sdev; sdev = sdev->next) {
dev = ipr_sysfs_dev_to_dev(sdev);
if (!dev) {
- syslog(LOG_ERR, _("Cannot find device: %s\n"),
- sdev->sysfs_device_name);
+ syslog(LOG_ERR, _("Cannot find device: %lx\n"),
+ sdev->device_id);
return -EIO;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iprutils-rel-2-4-12/iprlib.c new/iprutils-rel-2-4-13/iprlib.c
--- old/iprutils-rel-2-4-12/iprlib.c 2016-08-04 13:17:49.000000000 +0200
+++ new/iprutils-rel-2-4-13/iprlib.c 2016-08-16 16:47:13.000000000 +0200
@@ -569,8 +569,7 @@
return NULL;
for (sdev = head; sdev; sdev = sdev->next) {
- if (!strcmp(sdev->sysfs_device_name,
- dev->scsi_dev_data->sysfs_device_name))
+ if (sdev->device_id == dev->scsi_dev_data->device_id)
break;
}
@@ -593,8 +592,7 @@
for_each_dev(ioa, dev) {
if (!dev->scsi_dev_data)
continue;
- if (!strcmp(sdev->sysfs_device_name,
- dev->scsi_dev_data->sysfs_device_name))
+ if (sdev->device_id == dev->scsi_dev_data->device_id)
return dev;
}
}
@@ -647,8 +645,7 @@
if (!sdev) {
sdev = calloc(1, sizeof(struct sysfs_dev));
- strcpy(sdev->sysfs_device_name,
- dev->scsi_dev_data->sysfs_device_name);
+ sdev->device_id = dev->scsi_dev_data->device_id;
if (!(*head)) {
*tail = *head = sdev;
@@ -3758,7 +3755,7 @@
return -ENOENT;
if (dev->locked) {
- scsi_err(dev, "Device already locked\n");
+ scsi_dbg(dev, "Device already locked\n");
return -EINVAL;
}
@@ -3769,7 +3766,7 @@
return errno;
}
- rc = flock(fd, LOCK_EX);
+ rc = flock(fd, LOCK_EX | LOCK_NB);
if (rc) {
if (!strcmp(tool_name, "iprconfig") || ipr_debug)
@@ -5873,6 +5870,32 @@
return -ETIMEDOUT;
}
+int get_sg_name(struct scsi_dev_data *scsi_dev)
+{
+ int i, rc = -ENXIO;
+ DIR *dirfd;
+ struct dirent *dent;
+ char devpath[PATH_MAX];
+
+ sprintf(devpath, "/sys/class/scsi_device/%s/device/scsi_generic",
+ scsi_dev->sysfs_device_name);
+ dirfd = opendir(devpath);
+ if (!dirfd)
+ return -ENXIO;
+ while((dent = readdir(dirfd)) != NULL) {
+ if (dent->d_name[0] == '.')
+ continue;
+ if (strncmp(dent->d_name, "sg", 2))
+ continue;
+ sprintf(scsi_dev->gen_name, "/dev/%s",
+ dent->d_name);
+ rc = 0;
+ break;
+ }
+ closedir(dirfd);
+ return rc;
+}
+
/**
* get_sg_names - waits for sg devices to become available
* @num_devs: number of devices
@@ -5883,27 +5906,8 @@
static void get_sg_names(int num_devs)
{
int i;
- DIR *dirfd;
- struct dirent *dent;
- char devpath[PATH_MAX];
-
- for (i = 0; i < num_devs; i++) {
- sprintf(devpath, "/sys/class/scsi_device/%s/device/scsi_generic",
- scsi_dev_table[i].sysfs_device_name);
- dirfd = opendir(devpath);
- if (!dirfd)
- continue;
- while((dent = readdir(dirfd)) != NULL) {
- if (dent->d_name[0] == '.')
- continue;
- if (strncmp(dent->d_name, "sg", 2))
- continue;
- sprintf(scsi_dev_table[i].gen_name, "/dev/%s",
- dent->d_name);
- break;
- }
- closedir(dirfd);
- }
+ for (i = 0; i < num_devs; i++)
+ get_sg_name(&scsi_dev_table[i]);
}
/**
@@ -7492,14 +7496,24 @@
int ipr_set_format_completed_bit(struct ipr_dev *dev)
{
- int len;
+ int len, retries = 5;
struct ipr_mode_pages mode_pages;
struct ipr_ioa_mode_page *page;
+ scsi_dbg(dev, "Setting device formatted bit. Device ID=%lx\n", dev->scsi_dev_data->device_id);
+
memset(&mode_pages, 0, sizeof(mode_pages));
- if (ipr_mode_sense(dev, 0x20, &mode_pages))
+ do {
+ if (!ipr_mode_sense(dev, 0x20, &mode_pages))
+ break;
+ sleep(1);
+ } while (retries--);
+
+ if (!retries) {
+ scsi_info(dev, "Page 20 mode sense failed. Device ID=%lx\n", dev->scsi_dev_data->device_id);
return -EIO;
+ }
page = (struct ipr_ioa_mode_page *) (((u8 *)&mode_pages) +
mode_pages.hdr.block_desc_len +
@@ -7513,8 +7527,16 @@
mode_pages.hdr.device_spec_parms = 0;
page->hdr.parms_saveable = 0;
- if (ipr_mode_select(dev, &mode_pages, len))
+ do {
+ if (!ipr_mode_select(dev, &mode_pages, len))
+ break;
+ sleep(1);
+ } while (retries--);
+
+ if (!retries) {
+ scsi_info(dev, "Page 20 mode select failed. Device ID=%lx\n", dev->scsi_dev_data->device_id);
return -EIO;
+ }
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iprutils-rel-2-4-12/iprlib.h new/iprutils-rel-2-4-13/iprlib.h
--- old/iprutils-rel-2-4-12/iprlib.h 2016-08-04 13:17:49.000000000 +0200
+++ new/iprutils-rel-2-4-13/iprlib.h 2016-08-16 16:47:13.000000000 +0200
@@ -297,7 +297,7 @@
extern enum system_p_mode power_cur_mode;
struct sysfs_dev {
- char sysfs_device_name[PATH_MAX];
+ u64 device_id;
struct sysfs_dev *next, *prev;
};
@@ -2953,6 +2953,8 @@
int ipr_max_queue_depth(struct ipr_ioa *ioa, int num_devs, int num_ssd_devs);
void ipr_count_devices_in_vset(struct ipr_dev *, int *num_devs, int *ssd_num_devs);
int ipr_known_zeroed_is_saved(struct ipr_dev *);
+int get_sg_name(struct scsi_dev_data *);
+int ipr_sg_inquiry(struct scsi_dev_data *, u8, void *, u8);
static inline u32 ipr_get_dev_res_handle(struct ipr_ioa *ioa, struct ipr_dev_record *dev_rcd)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iprutils-rel-2-4-12/spec/iprutils.spec new/iprutils-rel-2-4-13/spec/iprutils.spec
--- old/iprutils-rel-2-4-12/spec/iprutils.spec 2016-08-04 13:17:49.000000000 +0200
+++ new/iprutils-rel-2-4-13/spec/iprutils.spec 2016-08-16 16:47:13.000000000 +0200
@@ -1,6 +1,6 @@
Summary: Utilities for the IBM Power Linux RAID adapters
Name: iprutils
-Version: 2.4.12
+Version: 2.4.13
# For RC releases, release_prefix should be set to 0.rc1, 0.rc2, etc.
# For GA releases, release_prefix should be set to 1, 2, 3, etc.
%define release_prefix 1
@@ -322,6 +322,8 @@
%endif #WITH_STATIC
%changelog
+* Tue Aug 16 2016 Brian King <brking(a)linux.vnet.ibm.com> 2.4.13
+- Additional fixes for tracking known zeroed state
* Thu Aug 04 2016 Brian King <brking(a)linux.vnet.ibm.com> 2.4.12
- Display higher link rates in path details
- Flush unused multipaths prior to array delete
1
0
Hello community,
here is the log from the commit of package xen for openSUSE:Factory checked in at 2016-08-26 23:14:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xen (Old)
and /work/SRC/openSUSE:Factory/.xen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xen/xen.changes 2016-08-10 19:54:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2016-08-26 23:14:41.000000000 +0200
@@ -1,0 +2,19 @@
+Tue Aug 23 08:07:46 MDT 2016 - carnold(a)suse.com
+
+- bsc#992224 - [HPS Bug] During boot of Xen Hypervisor, Failed to
+ get contiguous memory for DMA from Xen
+ 57ac6316-don-t-restrict-DMA-heap-to-node-0.patch
+- bsc#978755 - xen uefi systems fail to boot
+- bsc#983697 - SLES12 SP2 Xen UEFI mode cannot boot
+ 57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch
+- Upstream patch from Jan
+ 57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
+
+-------------------------------------------------------------------
+Mon Aug 8 18:27:23 UTC 2016 - jfehlig(a)suse.com
+
+- spec: to stay compatible with the in-tree qemu-xen binary, use
+ /usr/bin/qemu-system-i386 instead of /usr/bin/qemu-system-x86_64
+ bsc#986164
+
+-------------------------------------------------------------------
New:
----
57ac6316-don-t-restrict-DMA-heap-to-node-0.patch
57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch
57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.aceELi/_old 2016-08-26 23:14:44.000000000 +0200
+++ /var/tmp/diff_new_pack.aceELi/_new 2016-08-26 23:14:44.000000000 +0200
@@ -216,6 +216,9 @@
Patch11: 57a1e64c-x86-time-introduce-and-use-rdtsc_ordered.patch
Patch12: 57a2f6ac-x86-time-calibrate-TSC-against-platform-timer.patch
Patch13: 57a30261-x86-support-newer-Intel-CPU-models.patch
+Patch14: 57ac6316-don-t-restrict-DMA-heap-to-node-0.patch
+Patch15: 57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch
+Patch16: 57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
# Upstream qemu-traditional patches
Patch250: VNC-Support-for-ExtendedKeyEvent-client-message.patch
Patch251: 0001-net-move-the-tap-buffer-into-TAPState.patch
@@ -550,6 +553,9 @@
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
# Upstream qemu patches
%patch250 -p1
%patch251 -p1
@@ -762,7 +768,7 @@
%endif
--with-system-ovmf=%{_datadir}/qemu/ovmf-x86_64-ms.bin \
--with-system-seabios=%{_datadir}/qemu/bios-256k.bin \
- --with-system-qemu=%{_bindir}/qemu-system-%{_arch} \
+ --with-system-qemu=%{_bindir}/qemu-system-i386 \
${configure_flags}
make -C tools/include/xen-foreign %{?_smp_mflags}
make %{?_smp_mflags}
@@ -909,12 +915,13 @@
# and advertised as the <emulator> in libvirt capabilities. Tool such as
# virt-install include <emulator> in domXML they produce, so we need to
# preserve the path. For x86_64, create a simple wrapper that invokes
-# /usr/bin/qemu-system-x86_64
+# /usr/bin/qemu-system-i386
+# Using qemu-system-x86_64 will result in an incompatible VM
%ifarch x86_64
cat > $RPM_BUILD_ROOT/usr/lib/xen/bin/qemu-system-i386 << 'EOF'
#!/bin/sh
-exec %{_bindir}/qemu-system-x86_64 "$@"
+exec %{_bindir}/qemu-system-i386 "$@"
EOF
chmod 0755 $RPM_BUILD_ROOT/usr/lib/xen/bin/qemu-system-i386
%endif
++++++ 57a1e64c-x86-time-introduce-and-use-rdtsc_ordered.patch ++++++
--- /var/tmp/diff_new_pack.aceELi/_old 2016-08-26 23:14:44.000000000 +0200
+++ /var/tmp/diff_new_pack.aceELi/_new 2016-08-26 23:14:44.000000000 +0200
@@ -17,6 +17,18 @@
Reviewed-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
Tested-by: Joao Martins <joao.m.martins(a)oracle.com>
+# Commit 7fb0a87d97201f9c3639f85615eacd93110dc1c5
+# Date 2016-08-05 18:00:45 +0200
+# Author Jan Beulich <jbeulich(a)suse.com>
+# Committer Jan Beulich <jbeulich(a)suse.com>
+x86/time: also use rdtsc_ordered() in check_tsc_warp()
+
+This really was meant to be added in a v2 of what became commit
+fa74e70500 ("x86/time: introduce and use rdtsc_ordered()").
+
+Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
+
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -1137,7 +1137,7 @@ static int __init calibrate_APIC_clock(v
@@ -108,7 +120,36 @@
t->local_tsc_stamp = curr_tsc;
set_time_scale(&t->tsc_scale, freq);
local_irq_enable();
-@@ -1248,7 +1248,7 @@ static void time_calibration_tsc_rendezv
+@@ -1124,16 +1124,13 @@ static void local_time_calibration(void)
+ */
+ static void check_tsc_warp(unsigned long tsc_khz, unsigned long *max_warp)
+ {
+-#define rdtsc_barrier() mb()
+ static DEFINE_SPINLOCK(sync_lock);
+ static cycles_t last_tsc;
+
+ cycles_t start, now, prev, end;
+ int i;
+
+- rdtsc_barrier();
+- start = get_cycles();
+- rdtsc_barrier();
++ start = rdtsc_ordered();
+
+ /* The measurement runs for 20 msecs: */
+ end = start + tsc_khz * 20ULL;
+@@ -1148,9 +1145,7 @@ static void check_tsc_warp(unsigned long
+ */
+ spin_lock(&sync_lock);
+ prev = last_tsc;
+- rdtsc_barrier();
+- now = get_cycles();
+- rdtsc_barrier();
++ now = rdtsc_ordered();
+ last_tsc = now;
+ spin_unlock(&sync_lock);
+
+@@ -1248,7 +1243,7 @@ static void time_calibration_tsc_rendezv
if ( r->master_stime == 0 )
{
r->master_stime = read_platform_stime();
@@ -117,7 +158,7 @@
}
atomic_inc(&r->semaphore);
-@@ -1274,7 +1274,7 @@ static void time_calibration_tsc_rendezv
+@@ -1274,7 +1269,7 @@ static void time_calibration_tsc_rendezv
}
}
@@ -126,7 +167,7 @@
c->stime_local_stamp = get_s_time_fixed(c->local_tsc_stamp);
c->stime_master_stamp = r->master_stime;
-@@ -1304,7 +1304,7 @@ static void time_calibration_std_rendezv
+@@ -1304,7 +1299,7 @@ static void time_calibration_std_rendezv
mb(); /* receive signal /then/ read r->master_stime */
}
@@ -135,7 +176,7 @@
c->stime_local_stamp = get_s_time_fixed(c->local_tsc_stamp);
c->stime_master_stamp = r->master_stime;
-@@ -1339,7 +1339,7 @@ void time_latch_stamps(void)
+@@ -1339,7 +1334,7 @@ void time_latch_stamps(void)
local_irq_save(flags);
ap_bringup_ref.master_stime = read_platform_stime();
@@ -144,7 +185,7 @@
local_irq_restore(flags);
ap_bringup_ref.local_stime = get_s_time_fixed(tsc);
-@@ -1357,7 +1357,7 @@ void init_percpu_time(void)
+@@ -1357,7 +1352,7 @@ void init_percpu_time(void)
local_irq_save(flags);
now = read_platform_stime();
++++++ 57a2f6ac-x86-time-calibrate-TSC-against-platform-timer.patch ++++++
--- /var/tmp/diff_new_pack.aceELi/_old 2016-08-26 23:14:44.000000000 +0200
+++ /var/tmp/diff_new_pack.aceELi/_new 2016-08-26 23:14:44.000000000 +0200
@@ -262,7 +262,7 @@
}
u64 stime2tsc(s_time_t stime)
-@@ -1479,7 +1509,11 @@ int __init init_xen_time(void)
+@@ -1474,7 +1504,11 @@ int __init init_xen_time(void)
/* NB. get_cmos_time() can take over one second to execute. */
do_settime(get_cmos_time(), 0, NOW());
@@ -275,7 +275,7 @@
init_percpu_time();
-@@ -1494,7 +1528,10 @@ int __init init_xen_time(void)
+@@ -1489,7 +1523,10 @@ int __init init_xen_time(void)
void __init early_time_init(void)
{
struct cpu_time *t = &this_cpu(cpu_time);
@@ -287,7 +287,7 @@
set_time_scale(&t->tsc_scale, tmp);
t->local_tsc_stamp = boot_tsc_stamp;
-@@ -1603,7 +1640,7 @@ int time_suspend(void)
+@@ -1598,7 +1635,7 @@ int time_suspend(void)
int time_resume(void)
{
++++++ 57ac6316-don-t-restrict-DMA-heap-to-node-0.patch ++++++
References: bsc#992224
# Commit d0d6597d3d682f324b6a79e3278e6f5bb6bad153
# Date 2016-08-11 13:35:50 +0200
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
page-alloc/x86: don't restrict DMA heap to node 0
When node zero has no memory, the DMA bit width will end up getting set
to 9, which is obviously not helpful to hold back a reasonable amount
of low enough memory for Dom0 to use for DMA purposes. Find the lowest
node with memory below 4Gb instead.
Introduce arch_get_dma_bitsize() to keep this arch-specific logic out
of common code.
Also adjust the original calculation: I think the subtraction of 1
should have been part of the flsl() argument rather than getting
applied to its result. And while previously the division by 4 was valid
to be done on the flsl() result, this now also needs to be converted,
as is should only be applied to the spanned pages value.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Julien Grall <julien.grall(a)arm.com>
Reviewed-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
--- a/xen/arch/x86/numa.c
+++ b/xen/arch/x86/numa.c
@@ -355,11 +355,25 @@ void __init init_cpu_to_node(void)
}
}
-EXPORT_SYMBOL(cpu_to_node);
-EXPORT_SYMBOL(node_to_cpumask);
-EXPORT_SYMBOL(memnode_shift);
-EXPORT_SYMBOL(memnodemap);
-EXPORT_SYMBOL(node_data);
+unsigned int __init arch_get_dma_bitsize(void)
+{
+ unsigned int node;
+
+ for_each_online_node(node)
+ if ( node_spanned_pages(node) &&
+ !(node_start_pfn(node) >> (32 - PAGE_SHIFT)) )
+ break;
+ if ( node >= MAX_NUMNODES )
+ panic("No node with memory below 4Gb");
+
+ /*
+ * Try to not reserve the whole node's memory for DMA, but dividing
+ * its spanned pages by (arbitrarily chosen) 4.
+ */
+ return min_t(unsigned int,
+ flsl(node_start_pfn(node) + node_spanned_pages(node) / 4 - 1)
+ + PAGE_SHIFT, 32);
+}
static void dump_numa(unsigned char key)
{
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1368,16 +1368,7 @@ void __init end_boot_allocator(void)
init_heap_pages(virt_to_page(bootmem_region_list), 1);
if ( !dma_bitsize && (num_online_nodes() > 1) )
- {
-#ifdef CONFIG_X86
- dma_bitsize = min_t(unsigned int,
- flsl(NODE_DATA(0)->node_spanned_pages) - 1
- + PAGE_SHIFT - 2,
- 32);
-#else
- dma_bitsize = 32;
-#endif
- }
+ dma_bitsize = arch_get_dma_bitsize();
printk("Domain heap initialised");
if ( dma_bitsize )
--- a/xen/include/asm-arm/numa.h
+++ b/xen/include/asm-arm/numa.h
@@ -17,6 +17,11 @@ static inline __attribute__((pure)) node
#define node_start_pfn(nid) (pdx_to_pfn(frametable_base_pdx))
#define __node_distance(a, b) (20)
+static inline unsigned int arch_get_dma_bitsize(void)
+{
+ return 32;
+}
+
#endif /* __ARCH_ARM_NUMA_H */
/*
* Local variables:
--- a/xen/include/asm-x86/numa.h
+++ b/xen/include/asm-x86/numa.h
@@ -86,5 +86,6 @@ extern int valid_numa_range(u64 start, u
void srat_parse_regions(u64 addr);
extern u8 __node_distance(nodeid_t a, nodeid_t b);
+unsigned int arch_get_dma_bitsize(void);
#endif
++++++ 57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch ++++++
References: bsc#978755 bsc#983697
# Commit c5b4805bcd6bc749a8717e7406faa4a0e95468b4
# Date 2016-08-19 17:03:33 +0200
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
x86/EFI: don't apply relocations to l{2,3}_bootmap
Other than claimed in commit 2ce5963727's ("x86: construct the
{l2,l3}_bootmap at compile time") the initialization of the two page
tables doesn't take care of everything without furher adjustment: The
compile time initialization obviously requires base relocations, and
those get processed after efi_arch_memory_setup(). Hence without
additional care the correctly initialized values may then get wrongly
"adjusted" again. Except the two table from being subject to base
relocation.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper(a)citrix.com>
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -47,11 +47,23 @@ static void __init efi_arch_relocate_ima
for ( base_relocs = __base_relocs_start; base_relocs < __base_relocs_end; )
{
- unsigned int i, n;
+ unsigned int i = 0, n;
n = (base_relocs->size - sizeof(*base_relocs)) /
sizeof(*base_relocs->entries);
- for ( i = 0; i < n; ++i )
+
+ /*
+ * Relevant l{2,3}_bootmap entries get initialized explicitly in
+ * efi_arch_memory_setup(), so we must not apply relocations there.
+ * l2_identmap's first slot, otoh, should be handled normally, as
+ * efi_arch_memory_setup() won't touch it (xen_phys_start should
+ * never be zero).
+ */
+ if ( xen_phys_start + base_relocs->rva == (unsigned long)l3_bootmap ||
+ xen_phys_start + base_relocs->rva == (unsigned long)l2_bootmap )
+ i = n;
+
+ for ( ; i < n; ++i )
{
unsigned long addr = xen_phys_start + base_relocs->rva +
(base_relocs->entries[i] & 0xfff);
++++++ 57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch ++++++
# Commit 2a99aa99fc84a45f505f84802af56b006d14c52e
# Date 2016-08-19 18:40:11 +0100
# Author Andrew Cooper <andrew.cooper3(a)citrix.com>
# Committer Andrew Cooper <andrew.cooper3(a)citrix.com>
xen/physmap: Do not permit a guest to populate PoD pages for itself
PoD is supposed to be entirely transparent to guest, but this interface has
been left exposed for a long time.
The use of PoD requires careful co-ordination by the toolstack with the
XENMEM_{get,set}_pod_target hypercalls, and xenstore ballooning target. The
best a guest can do without toolstack cooperation crash.
Furthermore, there are combinations of features (e.g. c/s c63868ff "libxl:
disallow PCI device assignment for HVM guest when PoD is enabled") which a
toolstack might wish to explicitly prohibit (in this case, because the two
simply don't function in combination). In such cases, the guest mustn't be
able to subvert the configuration chosen by the toolstack.
Signed-off-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
Acked-by: Jan Beulich <jbeulich(a)suse.com>
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -140,14 +140,14 @@ static void populate_physmap(struct memo
struct page_info *page;
unsigned int i, j;
xen_pfn_t gpfn, mfn;
- struct domain *d = a->domain;
+ struct domain *d = a->domain, *curr_d = current->domain;
if ( !guest_handle_subrange_okay(a->extent_list, a->nr_done,
a->nr_extents-1) )
return;
if ( a->extent_order > (a->memflags & MEMF_populate_on_demand ? MAX_ORDER :
- max_order(current->domain)) )
+ max_order(curr_d)) )
return;
for ( i = a->nr_done; i < a->nr_extents; i++ )
@@ -163,6 +163,10 @@ static void populate_physmap(struct memo
if ( a->memflags & MEMF_populate_on_demand )
{
+ /* Disallow populating PoD pages on oneself. */
+ if ( d == curr_d )
+ goto out;
+
if ( guest_physmap_mark_populate_on_demand(d, gpfn,
a->extent_order) < 0 )
goto out;
1
0
Hello community,
here is the log from the commit of package gd for openSUSE:Factory checked in at 2016-08-26 23:14:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gd (Old)
and /work/SRC/openSUSE:Factory/.gd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gd/gd.changes 2016-06-03 16:36:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gd.new/gd.changes 2016-08-26 23:14:33.000000000 +0200
@@ -1,0 +2,11 @@
+Tue Aug 23 11:16:25 UTC 2016 - pgajdos(a)suse.com
+
+- security update:
+ * CVE-2016-6132 [bsc#987577]
+ + gd-CVE-2016-6132.patch
+ * CVE-2016-6214 [bsc#991436]
+ + gd-CVE-2016-6214.patch
+ * CVE-2016-6905 [bsc#995034]
+ + gd-CVE-2016-6905.patch
+
+-------------------------------------------------------------------
New:
----
gd-CVE-2016-6132.patch
gd-CVE-2016-6214.patch
gd-CVE-2016-6905.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gd.spec ++++++
--- /var/tmp/diff_new_pack.SBx55Y/_old 2016-08-26 23:14:34.000000000 +0200
+++ /var/tmp/diff_new_pack.SBx55Y/_new 2016-08-26 23:14:34.000000000 +0200
@@ -41,6 +41,9 @@
# could be upstreamed
Patch4: gd-libvpx.patch
Patch5: gd-CVE-2016-5116.patch
+Patch6: gd-CVE-2016-6132.patch
+Patch7: gd-CVE-2016-6214.patch
+Patch8: gd-CVE-2016-6905.patch
BuildRequires: fontconfig-devel
BuildRequires: freetype2-devel
BuildRequires: libjpeg-devel
@@ -98,6 +101,9 @@
%patch3
%patch4
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
%build
# this file is errorneously forgotten from the tarball
++++++ gd-CVE-2016-6132.patch ++++++
>From 921e590565deb033acafcfa9063b4563200b14b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej(a)sury.org>
Date: Tue, 12 Jul 2016 11:24:09 +0200
Subject: [PATCH] Fix #247, A read out-of-bands was found in the parsing of TGA
files
---
src/gd_tga.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/gd_tga.c b/src/gd_tga.c
index ef20f86..07f3c86 100644
--- a/src/gd_tga.c
+++ b/src/gd_tga.c
@@ -237,7 +237,10 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
return -1;
}
- gdGetBuf(conversion_buffer, image_block_size, ctx);
+ if (gdGetBuf(conversion_buffer, image_block_size, ctx) != image_block_size) {
+ gdFree(conversion_buffer);
+ return -1;
+ }
while (buffer_caret < image_block_size) {
tga->bitmap[buffer_caret] = (int) conversion_buffer[buffer_caret];
@@ -261,7 +264,11 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
return -1;
}
- gdGetBuf( conversion_buffer, image_block_size, ctx );
+ if (gdGetBuf(conversion_buffer, image_block_size, ctx) != image_block_size) {
+ gdFree(conversion_buffer);
+ gdFree(decompression_buffer);
+ return -1;
+ }
buffer_caret = 0;
++++++ gd-CVE-2016-6214.patch ++++++
>From 10ef1dca63d62433fda13309b4a228782db823f7 Mon Sep 17 00:00:00 2001
From: "Christoph M. Becker" <cmbecker69(a)gmx.de>
Date: Tue, 12 Jul 2016 19:23:13 +0200
Subject: [PATCH] Unsupported TGA bpp/alphabit combinations should error
gracefully
Currently, only 24bpp without alphabits and 32bpp with 8 alphabits are
really supported. All other combinations will be rejected with a warning.
---
src/gd_tga.c | 16 ++++++----------
tests/tga/.gitignore | 1 +
tests/tga/CMakeLists.txt | 1 +
tests/tga/Makemodule.am | 4 +++-
tests/tga/bug00247a.c | 19 +++++++++++++++++++
tests/tga/bug00247a.tga | Bin 0 -> 36 bytes
6 files changed, 30 insertions(+), 11 deletions(-)
create mode 100644 tests/tga/bug00247a.c
create mode 100644 tests/tga/bug00247a.tga
diff --git a/src/gd_tga.c b/src/gd_tga.c
index 20fe2d2..b4f8fa6 100644
--- a/src/gd_tga.c
+++ b/src/gd_tga.c
@@ -99,7 +99,7 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromTgaCtx(gdIOCtx* ctx)
if (tga->bits == TGA_BPP_24) {
*tpix = gdTrueColor(tga->bitmap[bitmap_caret + 2], tga->bitmap[bitmap_caret + 1], tga->bitmap[bitmap_caret]);
bitmap_caret += 3;
- } else if (tga->bits == TGA_BPP_32 || tga->alphabits) {
+ } else if (tga->bits == TGA_BPP_32 && tga->alphabits) {
register int a = tga->bitmap[bitmap_caret + 3];
*tpix = gdTrueColorAlpha(tga->bitmap[bitmap_caret + 2], tga->bitmap[bitmap_caret + 1], tga->bitmap[bitmap_caret], gdAlphaMax - (a >> 1));
@@ -159,16 +159,12 @@ int read_header_tga(gdIOCtx *ctx, oTga *tga)
printf("wxh: %i %i\n", tga->width, tga->height);
#endif
- switch(tga->bits) {
- case 8:
- case 16:
- case 24:
- case 32:
- break;
- default:
- gd_error("bps %i not supported", tga->bits);
+ if (!((tga->bits == TGA_BPP_24 && tga->alphabits == 0)
+ || (tga->bits == TGA_BPP_32 && tga->alphabits == 8)))
+ {
+ gd_error_ex(GD_WARNING, "gd-tga: %u bits per pixel with %u alpha bits not supported\n",
+ tga->bits, tga->alphabits);
return -1;
- break;
}
tga->ident = NULL;
++++++ gd-CVE-2016-6905.patch ++++++
>From 3c2b605d72e8b080dace1d98a6e50b46c1d12186 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej(a)sury.org>
Date: Tue, 12 Jul 2016 14:20:16 +0200
Subject: [PATCH] bug #248, fix Out-Of-Bounds Read in read_image_tga
---
src/gd_tga.c | 34 ++++++++++++++++++++++++++--------
1 file changed, 26 insertions(+), 8 deletions(-)
Index: libgd-2.1.1/src/gd_tga.c
===================================================================
--- libgd-2.1.1.orig/src/gd_tga.c 2015-01-06 10:16:03.000000000 +0100
+++ libgd-2.1.1/src/gd_tga.c 2016-08-23 13:15:45.975724158 +0200
@@ -200,7 +200,6 @@ int read_image_tga( gdIOCtx *ctx, oTga *
int buffer_caret = 0;
int bitmap_caret = 0;
int i = 0;
- int j = 0;
uint8_t encoded_pixels;
if(overflow2(tga->width, tga->height)) {
@@ -287,25 +286,34 @@ int read_image_tga( gdIOCtx *ctx, oTga *
while( bitmap_caret < image_block_size ) {
if ((decompression_buffer[buffer_caret] & TGA_RLE_FLAG) == TGA_RLE_FLAG) {
- encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & 127 ) + 1 );
+ encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & !TGA_RLE_FLAG ) + 1 );
buffer_caret++;
+ if ((bitmap_caret + (encoded_pixels * pixel_block_size)) >= image_block_size) {
+ gdFree( decompression_buffer );
+ gdFree( conversion_buffer );
+ return -1;
+ }
+
for (i = 0; i < encoded_pixels; i++) {
- for (j = 0; j < pixel_block_size; j++, bitmap_caret++) {
- tga->bitmap[ bitmap_caret ] = decompression_buffer[ buffer_caret + j ];
- }
+ memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, pixel_block_size);
+ bitmap_caret += pixel_block_size;
}
buffer_caret += pixel_block_size;
+
} else {
encoded_pixels = decompression_buffer[ buffer_caret ] + 1;
buffer_caret++;
- for (i = 0; i < encoded_pixels; i++) {
- for( j = 0; j < pixel_block_size; j++, bitmap_caret++ ) {
- tga->bitmap[ bitmap_caret ] = decompression_buffer[ buffer_caret + j ];
- }
- buffer_caret += pixel_block_size;
+ if ((bitmap_caret + (encoded_pixels * pixel_block_size)) >= image_block_size) {
+ gdFree( decompression_buffer );
+ gdFree( conversion_buffer );
+ return -1;
}
+
+ memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, encoded_pixels * pixel_block_size);
+ bitmap_caret += (encoded_pixels * pixel_block_size);
+ buffer_caret += (encoded_pixels * pixel_block_size);
}
}
1
0
Hello community,
here is the log from the commit of package duplicity for openSUSE:Factory checked in at 2016-08-26 23:14:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/duplicity (Old)
and /work/SRC/openSUSE:Factory/.duplicity.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "duplicity"
Changes:
--------
--- /work/SRC/openSUSE:Factory/duplicity/duplicity.changes 2016-08-16 13:02:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.duplicity.new/duplicity.changes 2016-08-26 23:14:17.000000000 +0200
@@ -1,0 +2,10 @@
+Tue Aug 23 07:40:58 UTC 2016 - wr(a)rosenauer.org
+
+- update to 0.7.10
+ * fixed several issues
+ - Restore from S3 fails with --with-prefix-archive if prefix
+ includes '/'
+ * Changes for connecting to IBM Bluemix ObjectStorage. See man page
+ * Allow duplicity to create remote folder
+
+-------------------------------------------------------------------
Old:
----
duplicity-0.7.09.tar.gz
New:
----
duplicity-0.7.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ duplicity.spec ++++++
--- /var/tmp/diff_new_pack.iibZ0S/_old 2016-08-26 23:14:18.000000000 +0200
+++ /var/tmp/diff_new_pack.iibZ0S/_new 2016-08-26 23:14:18.000000000 +0200
@@ -19,7 +19,7 @@
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
Name: duplicity
-Version: 0.7.09
+Version: 0.7.10
Release: 0
Summary: Encrypted bandwidth-efficient backup using the rsync algorithm
License: GPL-3.0+
++++++ duplicity-0.7.09.tar.gz -> duplicity-0.7.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/CHANGELOG new/duplicity-0.7.10/CHANGELOG
--- old/duplicity-0.7.09/CHANGELOG 2016-07-24 18:09:16.000000000 +0200
+++ new/duplicity-0.7.10/CHANGELOG 2016-08-20 21:10:14.000000000 +0200
@@ -1,3 +1,21 @@
+New in v0.7.10 (2016/08/20)
+---------------------------
+* Merged in lp:~mwilck/duplicity/0.7-series
+ - Speedup of path_matches_glob() by about 8x. See
+ https://code.launchpad.net/~mwilck/duplicity/0.7-series/+merge/301332
+ for more details.
+* Remove -w from setsid in functional tests.
+* Fixed conflict in merge from Martin Wilck and applied
+ - https://code.launchpad.net/~mwilck/duplicity/0.7-series/+merge/301492
+ - merge fixes setsid usage in functional testing.
+* Fixed bug #1612472 with patch from David Cuthbert
+ - Restore from S3 fails with --with-prefix-archive if prefix includes '/'
+* Merged in lp:~arashad.ahamad/duplicity/duplicity_latest
+ - Changes for connecting to IBM Bluemix ObjectStorage. See man page.
+* Merged in lp:~fenisilius/duplicity/acd_init_mkdir
+ - Allow duplicity to create remote folder
+
+
New in v0.7.09 (2016/07/24)
---------------------------
* Fixed bug #1600692 with patch from Wolfgang Rohdewald
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/Changelog.GNU new/duplicity-0.7.10/Changelog.GNU
--- old/duplicity-0.7.09/Changelog.GNU 2016-07-24 18:14:17.000000000 +0200
+++ new/duplicity-0.7.10/Changelog.GNU 2016-08-20 21:01:34.000000000 +0200
@@ -1,3 +1,33 @@
+2016-08-20 Kenneth Loafman <kenneth(a)loafman.com>
+
+ * Prep for 0.7.10
+
+2016-08-18 Kenneth Loafman <kenneth(a)loafman.com>
+
+ * Merged in lp:~fenisilius/duplicity/acd_init_mkdir
+ - Allow duplicity to create remote folder
+
+2016-08-12 Kenneth Loafman <kenneth(a)loafman.com>
+
+ * Fixed bug #1612472 with patch from David Cuthbert
+ - Restore from S3 fails with --with-prefix-archive if prefix includes '/'
+ * Merged in lp:~arashad.ahamad/duplicity/duplicity_latest
+ - Changes for connecting to IBM Bluemix ObjectStorage. See man page.
+
+2016-07-31 Kenneth Loafman <kenneth(a)loafman.com>
+
+ * Fixed conflict in merge from Martin Wilck and applied
+ - https://code.launchpad.net/~mwilck/duplicity/0.7-series/+merge/301492
+ - merge fixes setsid usage in functional testing.
+
+2016-07-28 Kenneth Loafman <kenneth(a)loafman.com>
+
+ * Merged in lp:~mwilck/duplicity/0.7-series
+ - Speedup of path_matches_glob() by about 8x. See
+ https://code.launchpad.net/~mwilck/duplicity/0.7-series/+merge/301332
+ for more details.
+ * Remove -w from setsid in functional tests.
+
2016-07-24 Kenneth Loafman <kenneth(a)loafman.com>
* Merged in lp:~aaron-whitehouse/duplicity/07-fix_deja_dup_error_on_locked_files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/bin/duplicity new/duplicity-0.7.10/bin/duplicity
--- old/duplicity-0.7.09/bin/duplicity 2016-07-24 18:27:49.000000000 +0200
+++ new/duplicity-0.7.10/bin/duplicity 2016-08-20 21:13:49.000000000 +0200
@@ -2,7 +2,7 @@
# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*-
#
# duplicity -- Encrypted bandwidth efficient backup
-# Version 0.7.09 released July 24, 2016
+# Version 0.7.10 released August 20, 2016
#
# Copyright 2002 Ben Escoto <ben(a)emerose.org>
# Copyright 2007 Kenneth Loafman <kenneth(a)loafman.com>
@@ -1278,7 +1278,7 @@
log Python, duplicity, and system versions
"""
log.Log(u'=' * 80, verbosity)
- log.Log(u"duplicity 0.7.09 (July 24, 2016)", verbosity)
+ log.Log(u"duplicity 0.7.10 (August 20, 2016)", verbosity)
log.Log(u"Args: %s" % util.ufn(' '.join(sys.argv)), verbosity)
log.Log(u' '.join(platform.uname()), verbosity)
log.Log(u"%s %s" % (sys.executable or sys.platform, sys.version), verbosity)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/bin/duplicity.1 new/duplicity-0.7.10/bin/duplicity.1
--- old/duplicity-0.7.09/bin/duplicity.1 2016-07-24 18:27:49.000000000 +0200
+++ new/duplicity-0.7.10/bin/duplicity.1 2016-08-20 21:13:49.000000000 +0200
@@ -1,4 +1,4 @@
-.TH DUPLICITY 1 "July 24, 2016" "Version 0.7.09" "User Manuals" \" -*- nroff -*-
+.TH DUPLICITY 1 "August 20, 2016" "Version 0.7.10" "User Manuals" \" -*- nroff -*-
.\" disable justification (adjust text to left margin only)
.\" command line examples stay readable through that
.ad l
@@ -1965,10 +1965,13 @@
.B REQUIREMENTS
above.
-It uses four environment variables for authentification:
+It uses following environment variables for authentification:
.BR SWIFT_USERNAME " (required),"
.BR SWIFT_PASSWORD " (required),"
.BR SWIFT_AUTHURL " (required),"
+.BR SWIFT_USERID " (required, only for IBM Bluemix ObjectStorage),"
+.BR SWIFT_TENANTID " (required, only for IBM Bluemix ObjectStorage),"
+.BR SWIFT_REGIONNAME " (required, only for IBM Bluemix ObjectStorage),"
.BR SWIFT_TENANTNAME " (optional, the tenant can be included in the username)"
If the user was previously authenticated, the following environment
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/bin/rdiffdir new/duplicity-0.7.10/bin/rdiffdir
--- old/duplicity-0.7.09/bin/rdiffdir 2016-07-24 18:27:49.000000000 +0200
+++ new/duplicity-0.7.10/bin/rdiffdir 2016-08-20 21:13:49.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env python2
# rdiffdir -- Extend rdiff functionality to directories
-# Version 0.7.09 released July 24, 2016
+# Version 0.7.10 released August 20, 2016
#
# Copyright 2002 Ben Escoto <ben(a)emerose.org>
# Copyright 2007 Kenneth Loafman <kenneth(a)loafman.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/bin/rdiffdir.1 new/duplicity-0.7.10/bin/rdiffdir.1
--- old/duplicity-0.7.09/bin/rdiffdir.1 2016-07-24 18:27:49.000000000 +0200
+++ new/duplicity-0.7.10/bin/rdiffdir.1 2016-08-20 21:13:49.000000000 +0200
@@ -1,4 +1,4 @@
-.TH RDIFFDIR 1 "July 24, 2016" "Version 0.7.09" "User Manuals" \" -*- nroff -*-
+.TH RDIFFDIR 1 "August 20, 2016" "Version 0.7.10" "User Manuals" \" -*- nroff -*-
.\" disable justification (adjust text to left margin only)
.\" command line examples stay readable through that
.ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/duplicity/backends/_boto_single.py new/duplicity-0.7.10/duplicity/backends/_boto_single.py
--- old/duplicity-0.7.09/duplicity/backends/_boto_single.py 2016-07-02 14:44:03.000000000 +0200
+++ new/duplicity-0.7.10/duplicity/backends/_boto_single.py 2016-08-12 22:45:39.000000000 +0200
@@ -265,7 +265,7 @@
# Because of the need for this optimization, it should be left as is.
# for k in self.bucket.list(prefix = self.key_prefix + 'd', delimiter = '/'):
filename_list = []
- for k in self.bucket.list(prefix=self.key_prefix, delimiter='/'):
+ for k in self.bucket.list(prefix=self.key_prefix):
try:
filename = k.key.replace(self.key_prefix, '', 1)
filename_list.append(filename)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/duplicity/backends/acdclibackend.py new/duplicity-0.7.10/duplicity/backends/acdclibackend.py
--- old/duplicity-0.7.09/duplicity/backends/acdclibackend.py 2016-07-02 14:44:03.000000000 +0200
+++ new/duplicity-0.7.10/duplicity/backends/acdclibackend.py 2016-08-18 17:23:13.000000000 +0200
@@ -59,6 +59,16 @@
self.subprocess_popen(self.acd_cmd + " sync")
+ # Initialize remote directory
+ remote_path = urllib.unquote(self.parsed_url.path.replace('///', '/')).rstrip()
+ commandline = self.acd_cmd + " ls '%s'" % (remote_path)
+ try:
+ self.subprocess_popen(commandline)
+ except BackendException as e:
+ if e.code == 50: # Remote directory not there, create a new one
+ commandline = self.acd_cmd + " mkdir '%s'" % remote_path
+ self.subprocess_popen(commandline)
+
def _put(self, source_path, remote_filename=None):
"""Transfer source_path to remote_filename"""
if not remote_filename:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/duplicity/backends/swiftbackend.py new/duplicity-0.7.10/duplicity/backends/swiftbackend.py
--- old/duplicity-0.7.09/duplicity/backends/swiftbackend.py 2016-05-30 15:23:23.000000000 +0200
+++ new/duplicity-0.7.10/duplicity/backends/swiftbackend.py 2016-08-12 22:47:24.000000000 +0200
@@ -80,6 +80,12 @@
os_options.update({'tenant_name': os.environ['SWIFT_TENANTNAME']})
if 'SWIFT_ENDPOINT_TYPE' in os.environ:
os_options.update({'endpoint_type': os.environ['SWIFT_ENDPOINT_TYPE']})
+ if 'SWIFT_USERID' in os.environ:
+ os_options.update({'user_id': os.environ['SWIFT_USERID']})
+ if 'SWIFT_TENANTID' in os.environ:
+ os_options.update({'tenant_id': os.environ['SWIFT_TENANTID']})
+ if 'SWIFT_REGIONNAME' in os.environ:
+ os_options.update({'region_name': os.environ['SWIFT_REGIONNAME']})
else:
conn_kwargs['auth_version'] = '1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/duplicity/globals.py new/duplicity-0.7.10/duplicity/globals.py
--- old/duplicity-0.7.09/duplicity/globals.py 2016-07-24 18:27:49.000000000 +0200
+++ new/duplicity-0.7.10/duplicity/globals.py 2016-08-20 21:13:49.000000000 +0200
@@ -26,7 +26,7 @@
# The current version of duplicity
-version = "0.7.09"
+version = "0.7.10"
# Prefix for all files (appended before type-specific prefixes)
file_prefix = ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/duplicity/globmatch.py new/duplicity-0.7.10/duplicity/globmatch.py
--- old/duplicity-0.7.09/duplicity/globmatch.py 2016-07-02 14:40:18.000000000 +0200
+++ new/duplicity-0.7.10/duplicity/globmatch.py 2016-07-28 16:08:18.000000000 +0200
@@ -49,8 +49,9 @@
return list(map(glob_to_regex, prefixes))
-def path_matches_glob(path, glob_str, include, ignore_case=False):
- """Tests whether path matches glob, as per the Unix shell rules, taking as
+def path_matches_glob_fn(glob_str, include, ignore_case=False):
+ """Return a function test_fn(path) which
+ tests whether path matches glob, as per the Unix shell rules, taking as
arguments a path, a glob string and include (0 indicating that the glob
string is an exclude glob and 1 indicating that it is an include glob,
returning:
@@ -83,15 +84,19 @@
scan_comp_re = re_comp("^(%s)$" %
"|".join(_glob_get_prefix_regexs(glob_str)))
- if match_only_dirs and not path.isdir():
- # If the glob ended with a /, only match directories
- return None
- elif glob_comp_re.match(path.name):
- return include
- elif include == 1 and scan_comp_re.match(path.name):
- return 2
- else:
- return None
+ def test_fn(path):
+
+ if match_only_dirs and not path.isdir():
+ # If the glob ended with a /, only match directories
+ return None
+ elif glob_comp_re.match(path.name):
+ return include
+ elif include == 1 and scan_comp_re.match(path.name):
+ return 2
+ else:
+ return None
+
+ return test_fn
def glob_to_regex(pat):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/duplicity/selection.py new/duplicity-0.7.10/duplicity/selection.py
--- old/duplicity-0.7.09/duplicity/selection.py 2016-07-24 14:25:01.000000000 +0200
+++ new/duplicity-0.7.10/duplicity/selection.py 2016-07-28 15:41:24.000000000 +0200
@@ -33,7 +33,7 @@
from duplicity import diffdir
from duplicity import util # @Reimport
from duplicity.globmatch import GlobbingError, FilePrefixError, \
- path_matches_glob
+ path_matches_glob_fn
"""Iterate exactly the requested files in a directory
@@ -544,13 +544,10 @@
ignore_case = True
# Check to make sure prefix is ok
- if not path_matches_glob(self.rootpath, glob_str, include=1):
+ if not path_matches_glob_fn(glob_str, include=1)(self.rootpath):
raise FilePrefixError(glob_str)
- def sel_func(path):
- return path_matches_glob(path, glob_str, include, ignore_case)
-
- return sel_func
+ return path_matches_glob_fn(glob_str, include, ignore_case)
def exclude_older_get_sf(self, date):
"""Return selection function based on files older than modification date """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/po/duplicity.pot new/duplicity-0.7.10/po/duplicity.pot
--- old/duplicity-0.7.09/po/duplicity.pot 2016-07-24 18:15:56.000000000 +0200
+++ new/duplicity-0.7.10/po/duplicity.pot 2016-08-20 21:02:00.000000000 +0200
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: Kenneth Loafman <kenneth(a)loafman.com>\n"
-"POT-Creation-Date: 2016-07-24 11:15-0500\n"
+"POT-Creation-Date: 2016-08-20 14:02-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/setup.py new/duplicity-0.7.10/setup.py
--- old/duplicity-0.7.09/setup.py 2016-07-24 18:27:49.000000000 +0200
+++ new/duplicity-0.7.10/setup.py 2016-08-20 21:13:49.000000000 +0200
@@ -28,7 +28,7 @@
from setuptools.command.sdist import sdist
from distutils.command.build_scripts import build_scripts
-version_string = "0.7.09"
+version_string = "0.7.10"
if sys.version_info[:2] < (2, 6) or sys.version_info[:2] > (2, 7):
print("Sorry, duplicity requires version 2.6 or 2.7 of python.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/testing/functional/__init__.py new/duplicity-0.7.10/testing/functional/__init__.py
--- old/duplicity-0.7.09/testing/functional/__init__.py 2016-01-06 14:40:33.000000000 +0100
+++ new/duplicity-0.7.10/testing/functional/__init__.py 2016-07-31 14:00:36.000000000 +0200
@@ -39,6 +39,24 @@
class FunctionalTestCase(DuplicityTestCase):
+ _setsid_w = None
+
+ @classmethod
+ def _check_setsid(cls):
+ if cls._setsid_w is not None:
+ return
+ if platform.platform().startswith('Linux'):
+ # setsid behavior differs between distributions.
+ # If setsid supports -w ("wait"), use it.
+ import subprocess
+ try:
+ with open("/dev/null", "w") as sink:
+ subprocess.check_call(["setsid", "-w", "ls"], stdout=sink, stderr=sink)
+ except subprocess.CalledProcessError:
+ cls._setsid_w = False
+ else:
+ cls._setsid_w = True
+
def setUp(self):
super(FunctionalTestCase, self).setUp()
@@ -55,6 +73,7 @@
if bl:
backend_inst.delete(backend_inst.list())
backend_inst.close()
+ self._check_setsid()
def run_duplicity(self, options=[], current_time=None, fail=None,
passphrase_input=[]):
@@ -66,6 +85,8 @@
# console unexpectedly (like for gpg password or such).
if platform.platform().startswith('Linux'):
cmd_list = ['setsid']
+ if self._setsid_w:
+ cmd_list.extend(["-w"])
else:
cmd_list = []
cmd_list.extend(["duplicity"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/testing/gnupg/README new/duplicity-0.7.10/testing/gnupg/README
--- old/duplicity-0.7.09/testing/gnupg/README 2014-04-28 14:35:53.000000000 +0200
+++ new/duplicity-0.7.10/testing/gnupg/README 2016-07-28 15:41:24.000000000 +0200
@@ -11,3 +11,5 @@
ID: 9B736B2A
Name: Recipient Two <two(a)example.com>
No password
+
+See also the comments in gpg.conf.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duplicity-0.7.09/testing/gnupg/gpg.conf new/duplicity-0.7.10/testing/gnupg/gpg.conf
--- old/duplicity-0.7.09/testing/gnupg/gpg.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/duplicity-0.7.10/testing/gnupg/gpg.conf 2016-07-28 15:41:24.000000000 +0200
@@ -0,0 +1,9 @@
+# gpg2 doesn't try all secrets by default, so add this option
+# Otherwise the tests with hidden encryption key will fail
+try-all-secrets
+
+# gpg2 2.1.13 has a bug that prevents the line above from working
+# (https://bugs.gnupg.org/gnupg/issue1985)
+# Uncomment the line below if you have gnupg2 2.1.13
+# (but that line will break gpg 1.x, so we can't use it by default)
+#try-secret-key 96B629431B77DC52B1917B40839E6A2856538CCF
1
0
Hello community,
here is the log from the commit of package ovmf for openSUSE:Factory checked in at 2016-08-26 23:14:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ovmf (Old)
and /work/SRC/openSUSE:Factory/.ovmf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ovmf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ovmf/ovmf.changes 2016-08-03 11:36:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ovmf.new/ovmf.changes 2016-08-26 23:14:07.000000000 +0200
@@ -1,0 +2,132 @@
+Fri Aug 19 06:30:05 UTC 2016 - glin(a)suse.com
+
+- Update to 2015+git1471575292.00bcb5c
+ + NetworkPkg/IpSecDxe: Fix UEFI IKE Initial Exchange failure
+ + MdeModulePkg: Fix potential failure if UseDefaultAddress
+ configured
+ + OvmfPkg: Add MpInitLib reference in DSC files
+ + SecurityPkg: AuthVariableLib: Fix inconsistent CertDB case
+ + OvmfPkg: use StatusCode Router and Handler from MdeModulePkg
+ + ArmVirtPkg/ArmVirtPrePiUniCoreRelocatable: deal with relaxed
+ XIP alignment
+ + BaseTools GCC: introduce GCC5 toolchain to support GCC v5.x in
+ LTO mode
+ + BaseTools GCC: use 'gcc' as the linker command for GCC44 and
+ later
+ + ArmVirtPkg/ArmVirtPrePiUniCoreRelocatable: ignore .hash and
+ .note sections
+ + OvmfPkg/Sec: Support SECTION2 DXEFV types
+ + Preserve hii section in GCC binaries
+ + Fix IPv6 HTTPClient vendor class data
+ + CryptoPkg/OpensslLib: Upgrade OpenSSL version to 1.0.2h
+ + NetworkPkg: Fix bug in TCP which not sending out ACK in
+ certain circumstance
+ + OvmfPkg: include UefiCpuPkg/CpuMpPei
+ + OvmfPkg/PlatformPei: rebase and resize the permanent PEI memory
+ for S3
+ + SecurityPkg SecureBootConfigDxe: Add check for the external
+ PE/COFF image
+ + ArmVirtPkg/PlatformBootManagerLib: remove stale FvFile boot
+ options
+ + OvmfPkg/PlatformPei: add missing auto variable initialization
+ + OvmfPkg: add PciHotPlugInitDxe
+ + MdeModulePkg/PciBusDxe: recognize hotplug-capable PCIe ports
+ + OvmfPkg/PlatformBootManagerLib: remove stale FvFile boot
+ options
+ + OvmfPkg: add a Name GUID to each Firmware Volume
+ + CryptoPkg BaseCryptLib: Init the content of struct 'CertCtx'
+ before use
+ + CryptoPkg BaseCryptLib: Avoid passing NULL ptr to function
+ BN_bn2bin()
+ + MdeModulePkg/Bds: MemoryTypeInformation excludes boot option
+ mem use
+ + MdeModulePkg: Fix IPv4 stack potential disappeared issue
+ + NetworkPkg: Stop the HTTP Boot service after the boot image
+ download complete
+ + ArmVirtPkg: Re-add the Driver Health Manager
+ + OvmfPkg: Re-add the Driver Health Manager
+ + ArmVirtPkg/ArmVirtXen: Add ACPI support for Virt Xen ARM
+ + Massive conversion of assembly code to NASM
+ + MdeModulePkg/UefiBootManagerLib: Fix data in
+ MemoryTypeInformation
+ + ArmVirtPkg: add FDF definition for empty varstore
+ + ArmVirtPkg/ArmVirtQemu: switch secure boot build to NorFlashDxe
+ + NetworkPkg: Handling timeout case in httpboot driver
+ + NetworkPkg: HttpDxe response/cancel issue fix
+ + NetworkPkg: Support TCP Cancel function
+ + MdeModulePkg/RamDiskDxe: Add Memory Type selection support in
+ Ramdisk HII
+ + MdeModulePkg RamDiskDxe: Do not save 'Size' numeric value by
+ varstore
+ + MdeModulePkg: Fix IPv4 UseDefaultAddress failure case
+ + MdeModulePkg/AtaBusDxe: Fix some ATA hard drives cannot be
+ discovered
+ + ArmVirtPkg/PlatformBootManagerLib: rebase boot logo display to
+ BootLogoLib
+ + OvmfPkg: set SMM stack size to 16KB
+ + OvmfPkg/PlatformBootManagerLib: Connect the Xen drivers before
+ loading NvVars
+ + MdeModulePkg: Fix SNP.Initialize() spec conformance issue
+ + OvmfPkg: raise DXEFV size to 10 MB
+ + MdeModulePkg: Stop the timer before clean IP service
+ + OvmfPkg/PlatformBootManagerLib: rebase boot logo display to
+ BootLogoLib
+ + OvmfPkg/SerializeVariablesLib: Relax check for the read-only
+ variable
+ + OvmfPkg: prevent 64-bit MMIO BAR degradation if there is no CSM
+ + OvmfPkg, ArmVirtPkg: rename QemuNewBootOrderLib to
+ QemuBootOrderLib
+ + MdeModulePkg/PciBus: do not improperly degrade resource
+ + NetworkPkg/HttpDxe: Don't free Wrap in HttpTcpReceiveNotifyDpc
+ + NetworkPkg/TcpDxe: Remove the status check of
+ SockProcessRcvToken
+ + UefiCpuPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask
+ fields check
+ + MdeModulePkg: Skip invalid bus number scanning in PciBusDxe
+ driver
+ + OvmfPkg/PlatformPei: provide 10 * 4KB of PCI IO Port space on
+ Q35
+ + OvmfPkg: introduce ICH9_PMBASE_VALUE
+ + OvmfPkg: replace PcdAcpiPmBaseAddress with PIIX4_PMBA_VALUE
+ + OvmfPkg/AcpiTimerLib: don't use possibly unset PMBA register
+ (PEI phase)
+ + MdeModulePkg: Refine the code for DxeHttpLib
+ + OvmfPkg/XenBusDxe: duplicate twice-iterated VA_LIST in
+ XenStoreVSPrint()
+ + SecurityPkg: Use PcdGet32() to access PcdPeiCoreMaxFvSupported
+ + UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile: Fix BTS support check bug
+ + NetworkPkg:HttpDxe: Code changes to support HTTP PUT/POST
+ operations
+ + CryptoPkg/SmmCryptLib: Enable AES support for SMM
+ + MdePkg: Add NFIT definition from ACPI 6.1
+ + BaseTools/GenFw: enhance to use Magic Field to identify the
+ image
+ + MdeModulePkg-DxeCore: rename CoreGetMemoryMapPropertiesTable
+ + MdeModulePkg Variable: return error for empty str VariableName
+ to GetVariable
+ + PcAtChipsetPkg AcpiTimerLib: Fix a logic error
+ + MdeModulePkg UiApp: change code for easy customization
+ + MdePkg: Add HII definitions from UEFI 2.6
+ + NetworkPkg: Make HttpBootGetBootFile return
+ EFI_BUFFER_TOO_SMALL
+ + MdeModulePkg:DxeHttpLib: Add checks in HttpGenRequestMessage
+ API
+ + ArmPkg/ArmLib: don't invalidate entire I-cache on range
+ operation
+ + OvmfPkg/PlatformBootManagerLib: Postpone the shell registration
+ + OvmfPkg/QemuNewBootOrderLib: adapt Q35 SATA PMPN to UEFI spec
+ Mantis 1353
+ + MdeModulePkg Ata: Use the new (incompatible) PortMultiplierPort
+ semantics
+ + NetworkPkg: Bug fix of iSCSI to support MPIO
+- Drop upstreamed patches
+ + ovmf-dxe-10mb.patch
+ + ovmf-bsc976253-postpone-shell.patch
+ + ovmf-bsc980635-fix-http-crash.patch
+ + ovmf-bsc982193-dont-restore-readonly-var.patch
+ + ovmf-bsc982193-connect-xen-drivers.patch
+ + ovmf-bsc990612-update-openssl-1.0.2h.patch
+ + ovmf-bsc990773-remove-stale-boot-options.patch
+- Update dbxupdate.zip since there are new hashes added into dbx
+
+-------------------------------------------------------------------
Old:
----
ovmf-2015+git1462940744.321151f.tar.xz
ovmf-bsc976253-postpone-shell.patch
ovmf-bsc980635-fix-http-crash.patch
ovmf-bsc982193-connect-xen-drivers.patch
ovmf-bsc982193-dont-restore-readonly-var.patch
ovmf-bsc990612-update-openssl-1.0.2h.patch
ovmf-bsc990773-remove-stale-boot-options.patch
ovmf-dxe-10mb.patch
New:
----
ovmf-2015+git1471575292.00bcb5c.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ovmf.spec ++++++
--- /var/tmp/diff_new_pack.LCxPJK/_old 2016-08-26 23:14:09.000000000 +0200
+++ /var/tmp/diff_new_pack.LCxPJK/_new 2016-08-26 23:14:09.000000000 +0200
@@ -26,7 +26,7 @@
Summary: Open Virtual Machine Firmware
License: BSD-2-Clause
Group: System/Emulators/PC
-Version: 2015+git1462940744.321151f
+Version: 2015+git1471575292.00bcb5c
Release: 0
Source0: %{name}-%{version}.tar.xz
Source1: https://www.openssl.org/source/openssl-%{openssl_version}.tar.gz
@@ -49,20 +49,6 @@
Patch2: %{name}-embed-default-keys.patch
Patch3: %{name}-gdb-symbols.patch
Patch4: ArmVirtPkg-Enable-PCI-bus-probing-again.patch
-Patch5: %{name}-dxe-10mb.patch
-Patch6: %{name}-bsc976253-postpone-shell.patch
-Patch7: %{name}-bsc980635-fix-http-crash.patch
-Patch8: %{name}-bsc982193-dont-restore-readonly-var.patch
-Patch9: %{name}-bsc982193-connect-xen-drivers.patch
-# NOTE: edk2 retired NO_BUILTIN_VA_FUNCS right after the 1.0.2h patch, so the
-# following commits may be necessary for the next openssl update:
-# b2dc04a87fab89307240dc0f30b9a23bb5726c81 CryptoPkg: set new define to avoid MS ABI VA_LIST on GCC/X64
-# 48d5f9a551a93acb45f272dda879b0ab5a504e36 MdePkg: Enable new MS VA intrinsics for GNUC x86 64bits build
-# 0676c285ba518ae81ca7f06278d4cc4958660864 EdkCompatibilityPkg: Enable new MS VA intrinsics for GNUC x86 64bits build
-# 247093f45d94a3956cdd15c357fe7d6dca878df9 BaseTools/tools_def: enable Os optimization for GCC X64 builds
-# 17ab1ec5accc866b77446f4e336e982bb5e1cc9f MdePkg CryptoPkg EdkCompatibilityPkg: retire NO_BUILTIN_VA_FUNCS define
-Patch10: %{name}-bsc990612-update-openssl-1.0.2h.patch
-Patch11: %{name}-bsc990773-remove-stale-boot-options.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: gcc
@@ -179,13 +165,6 @@
%endif
%patch3 -p1
%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
# Intel has special patches for openssl
pushd CryptoPkg/Library/OpensslLib/openssl-%{openssl_version}
patch -p1 -i ../EDKII_openssl-%{openssl_version}.patch
++++++ dbxupdate.zip ++++++
Files /var/tmp/diff_new_pack.LCxPJK/_old and /var/tmp/diff_new_pack.LCxPJK/_new differ
++++++ ovmf-2015+git1462940744.321151f.tar.xz -> ovmf-2015+git1471575292.00bcb5c.tar.xz ++++++
/work/SRC/openSUSE:Factory/ovmf/ovmf-2015+git1462940744.321151f.tar.xz /work/SRC/openSUSE:Factory/.ovmf.new/ovmf-2015+git1471575292.00bcb5c.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package libnetfilter_conntrack for openSUSE:Factory checked in at 2016-08-26 23:13:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libnetfilter_conntrack (Old)
and /work/SRC/openSUSE:Factory/.libnetfilter_conntrack.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libnetfilter_conntrack"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libnetfilter_conntrack/libnetfilter_conntrack.changes 2015-09-16 10:35:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libnetfilter_conntrack.new/libnetfilter_conntrack.changes 2016-08-26 23:13:58.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Aug 22 11:08:53 UTC 2016 - jengelh(a)inai.de
+
+- Update to new upstream release 1.0.6
+* add support for IPv6 NAT
+* conntrack: add zone attribute to tuple
+
+-------------------------------------------------------------------
Old:
----
libnetfilter_conntrack-1.0.5.tar.bz2
libnetfilter_conntrack-1.0.5.tar.bz2.sig
New:
----
libnetfilter_conntrack-1.0.6.tar.bz2
libnetfilter_conntrack-1.0.6.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libnetfilter_conntrack.spec ++++++
--- /var/tmp/diff_new_pack.ymkusZ/_old 2016-08-26 23:13:59.000000000 +0200
+++ /var/tmp/diff_new_pack.ymkusZ/_new 2016-08-26 23:13:59.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libnetfilter_conntrack
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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,7 +18,7 @@
Name: libnetfilter_conntrack
%define lname libnetfilter_conntrack3
-Version: 1.0.5
+Version: 1.0.6
Release: 0
Url: http://netfilter.org/projects/libnetfilter_conntrack/
Summary: Userspace library for the in-kernel connection tracking state table
@@ -26,9 +26,8 @@
Group: Productivity/Networking/Security
#Git-Clone: git://git.netfilter.org/libnetfilter_conntrack
-#DL-URL: http://netfilter.org/projects/libnetfilter_conntrack/files/
-Source: http://netfilter.org/projects/libnetfilter_conntrack/files/%name-%version.t…
-Source2: http://netfilter.org/projects/libnetfilter_conntrack/files/%name-%version.t…
+Source: ftp://ftp.netfilter.org/pub/libnetfilter_conntrack/%name-%version.tar.bz2
+Source2: ftp://ftp.netfilter.org/pub/libnetfilter_conntrack/%name-%version.tar.bz2.s…
Source3: baselibs.conf
Source4: %name.keyring
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ libnetfilter_conntrack-1.0.5.tar.bz2 -> libnetfilter_conntrack-1.0.6.tar.bz2 ++++++
++++ 9160 lines of diff (skipped)
++++++ libnetfilter_conntrack.keyring ++++++
--- /var/tmp/diff_new_pack.ymkusZ/_old 2016-08-26 23:14:00.000000000 +0200
+++ /var/tmp/diff_new_pack.ymkusZ/_new 2016-08-26 23:14:00.000000000 +0200
@@ -1,9 +1,14 @@
-pub 4096R/BB5F58CC 2010-10-21 [expires: 2015-10-20]
-uid Netfilter Core Team <coreteam(a)netfilter.org>
-sub 4096R/04B92F5C 2010-10-21 [expires: 2015-10-20]
+pub 4096R/0xA4111F89BB5F58CC 2010-10-21 [expires: 2015-10-20]
+ Key fingerprint = 57FF 5E9C 9AA6 7A86 0B55 7AF7 A411 1F89 BB5F 58CC
+uid [ expired] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0x0FD3A13A04B92F5C 2010-10-21 [expires: 2015-10-20]
+
+pub 4096R/0xAB4655A126D292E4 2015-10-19 [expires: 2020-10-17]
+ Key fingerprint = C09D B206 3F1D 7034 BA61 52AD AB46 55A1 26D2 92E4
+uid [ unknown] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0xE3B0B6BAE3AAA39E 2015-10-19 [expires: 2020-10-17]
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.19 (GNU/Linux)
mQINBEzAS5EBEADVlGm+KwODJcVmP33HTCbn/eP8obZbgu+3Z1CYRklF8V43vC6D
8Jfk7fjD4/gWbAKZxriOESXVAN7mp0Fho4+Ga+pxWeLIET9tVM5xbNFK1p9R3XCK
@@ -51,6 +56,52 @@
kMm3eGmDSqoMxsPmarb80nkoFQMOPhJWlyaUCt6HHRYuSkIcxY4H4Ni3Oq1s1R9/
EqUuIfxNv7Kp0mcsE2KvANc3JfB9wXwLWqDYRCifLkCD6pbpt9L/+xQ49VzcFxNO
9DqTyk4N7cz7OZrAi+ouVrdFuiwnZyn5YSQoof6Pos58b3bkFn14m9gofwTqGzPh
-R4Vot9rRu5zrWdoCM4cRThpJyrjqBMs=
-=mRxL
+R4Vot9rRu5zrWdoCM4cRThpJyrjqBMuZAg0EViV2IwEQALrfnP0L2QbpXPN1Yg7w
+ESbOMnp3B7nIyeVmo3mvYI/mH0GtEHcFbigsUt4nIXCxI/ppB5NQH/GR8EbTUbq2
+OycNaIRWSDYHX+LDijyZ9NO6m8wbQODdhjroK7q8rHzO8Vp+reNzPM2nY7Uh3w3s
+dPrOERGYeZld1nDyN20ko2Zg4fIJIwVJaHwv4L1j9GYAKp6ACnyG81+VA9adPNCi
+9YyIbET/3/bWkl86AS78rLY7fFo5s2BZn0gvFzCB/q9v/dKYs6e5aX7DUeF2q4OW
+/J7vJjITXGum7ydRC3Neov8PdeNAbBfciznWvnTyArExjgTiHwqQOIDnW4dEJtJw
+iNP50rVKb5DZI3/YokZ5AAQV70ZZemL/5vfGl6a77wvuUFcKFtiQq3JYvt3oWcBO
+zyWbd7L1McwAbOOeSXS9hGWuWHjzFuQl7igdJAXs4GRCgUbM83yTCtmDD11337De
+diSfrcgtmNpkvfRBkjUKYten6N1jsNBqCevLxw0uFYBeSVl96KJyybMd2Rd7P+tC
+jtfpPuEvw9AlPqHZKnKQ4c8vp07MCI9JavJ/nola7rCMk0LULC9tttyaOGNSD3vb
+/t26lXr6qOV60+0lw7xEbdAu8zdEqR/ixKbvn1jbSajTcH3geGL7YakliuctRWTB
+XYyd8abaKDUzrTES1JJ53xRNABEBAAG0LE5ldGZpbHRlciBDb3JlIFRlYW0gPGNv
+cmV0ZWFtQG5ldGZpbHRlci5vcmc+iQI+BBMBAgAoBQJWJXYjAhsDBQkJZgGABgsJ
+CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCrRlWhJtKS5NoHEAC6mgfbDygR+Mrb
+Hg3qbGkgonPjUnYBqkBDz8jgdvFXS3Qm/ANI92qqeLkG+eFusuioIpXg4SHNmyUB
+oR+B60tApBtzO88iAbCHkjvfz4fqAZpYJ3VzYXIa/ScSoQHj77quNkO9aauikTj4
+ro6gnMUI2ilN1dv9Fb9/3XYxfyvP7QhWyGRuu9MekaPNjATtw7tDnDBe0C5eHrwX
+l2ojGxldj2eecoLLYcGw8x4rVDAxlNldh6tNgwc3IQ+4FkIri5sudK4vxDkPbouf
+srT6xoUe+qAj+9mScUeRFSrrdCCRd2EsBq+jhWS/kOWa0OAi6TKSOXMIdJze84Og
+R+67m+PNivmZ5+XgSmM/AzN36Lynx8nx7WNThVCd9HViq9kyXI1tQazGU30++Wec
+ct+7VE2f4aP5ITjd7WlHlEULVjRMBg+mFdz+jfmEncmC41TjWykqvrZWsT98FhNR
+YiRVsniiNvc7BS8X1qBODovvKg44yF3xEy3uFScHMqwMjiEqtVfQpfZh9PjzX1eA
+uj9sMF16NnzVeT/n4gKbO8E4vebtIJgzMd19Y0KCxfMxu4rjSHw1T0bYzwOoa9y/
+ejKM/G/NEnFKzwjySEbG9zlciJXrhb7a2y+YzNvSjEuP8Hs2BLPgJkZtVoiE4UVE
+9Wb7jNhyUz4RC0FdjRyGItGglyc9IbkCDQRWJXYjARAArK1scDuvvWTEJv+y0Sr3
+hnM8mnHIK2XNcn4p/d5nO1myCtZWPRVDIQyyXJMntEqrLBMnjxBdQcQkt7o2mJFL
+yJYO+Xb/9JyH161MPybM60dDXOTTxnAp3dDH4tdL/5snVAyrC93W2PMahK4bdwpM
+10Cz/FxtcB2xJ7Zoqq3bveN4KSUabsRYJN29BwjKtg392MtJ68SAAWN21feQ/Js9
+KjDpNoX2Sl9ZoIR2bbIsaGNeti/ciTy43MS/V6KXNTcoYrgySyW/HCNw9KjtvH+g
+/W/ze0sCXJKLby6oRQfsR2zPBTs9YB92GepG+3j1v+tw4jtbvmLKSse+S5BG8Ue2
+j3Bxbz4/RECdrlxDe4gX1hi5K/W0159pB65fha+DM3YvKrNouKsqLsxm5DMjDjdE
+qVQWtPd4tYy4uL2RWcGvvede+tN5rYsBatfelMfTSFN+jxFntwok6YmulnzIDP4O
+tUjLOpH1ZyNTcXEyAQz51aXcjVuk/6MV64hSEnH1FB7v79Zo9afdmNSKdpXf8nvZ
+3IO7HnXhpwh3pjWplyalZR7nb7PlIDxHCK6S3EN3lutBX4w9oh03KfrWlfZb2TD/
+s85uNzbU7TSb8KFC90i9H/qsd1w3kzy4evRJlyFvIqwksYY76huTfpDdx8yabfFY
+IG2TXc2iMkA7R+oMo+B46kkAEQEAAYkCJQQYAQIADwUCViV2IwIbDAUJCWYBgAAK
+CRCrRlWhJtKS5IB2D/9eL6TJ82wCrh3Hx+R3YeWVObukEBq4Ho8KRFngvIi+2D14
+PljWtITPeplDtpXu3E1i7I74F1925xFs7pT6BD65e13/18y4RX5pwGfu0HTJpi3U
+B47WXlSnyRBLD+/qiKcSCkR1mcKJgyIY9KbA0rr1Drv/3DJR+wBt9Fuww/gxgv7v
+yIxxrDa2+GESxJc1iLyuKFiDtnUkmJpqtJV0szi38W1NQUwWWF3CWUpqfvn316CJ
+4cTyuurLn994ceJDherS9tFcYASdmbl6g6PwWgdFrpmb44J7gdBCsB9q2cpjhDbu
+bgTq7V32CVMBGKOThihJZHIz/LZyuHv9WNYXUNfpEOOUN97C+j6091TSh+5P6oJO
+E61VMBBL51nw3T0FFKtA9kubKLk08GH75vPLaBqLa5B88Z3nJWdlaJOdgGEz65PU
+Uh78iWJ3AFAOwhsDEfxFYC+gZWqt9qw3Wyp2eY2q+5ep4KRxuqq3M0V3zXE6z5ff
+F8CCqRe/yzGAh8RxEmT/Nl+yHEIVv7qpJk6GSvkXr5dN/jyZCiN2fHEhZOBtLvln
+E5UjMbYOGqk3F8OARHarJ/qARATzqNYdDRe9SKxlbog+k6WWxJ4ivSVmYY28vEWf
+79IZ79ZHJ0woRi+vr3Cwpc488Sjwi7a/O0HW6zXSaxXNeYR0VnwvcrZrtlCqIQ==
+=zI6p
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package zypper for openSUSE:Factory checked in at 2016-08-26 23:13:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zypper (Old)
and /work/SRC/openSUSE:Factory/.zypper.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zypper"
Changes:
--------
--- /work/SRC/openSUSE:Factory/zypper/zypper.changes 2016-08-06 20:35:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.zypper.new/zypper.changes 2016-08-26 23:13:53.000000000 +0200
@@ -1,0 +2,14 @@
+Wed Aug 10 18:43:28 CEST 2016 - ma(a)suse.de
+
+- --no-recommends: don't make an attempt to show recommends/suggests
+ as we know there are none (bsc#958161)
+- remove dead code
+- version 1.13.9
+
+-------------------------------------------------------------------
+Wed Aug 10 17:00:18 CEST 2016 - ma(a)suse.de
+
+- locks: add parsable XML output (bsc#985390)
+- version 1.13.8
+
+-------------------------------------------------------------------
Old:
----
zypper-1.13.7.tar.bz2
New:
----
zypper-1.13.9.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zypper.spec ++++++
--- /var/tmp/diff_new_pack.kRFTIT/_old 2016-08-26 23:13:54.000000000 +0200
+++ /var/tmp/diff_new_pack.kRFTIT/_new 2016-08-26 23:13:54.000000000 +0200
@@ -33,7 +33,7 @@
Summary: Command line software manager using libzypp
License: GPL-2.0+
Group: System/Packages
-Version: 1.13.7
+Version: 1.13.9
Release: 0
Source: %{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
++++++ zypper-1.13.7.tar.bz2 -> zypper-1.13.9.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/zypper/zypper-1.13.7.tar.bz2 /work/SRC/openSUSE:Factory/.zypper.new/zypper-1.13.9.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package netpbm for openSUSE:Factory checked in at 2016-08-26 23:13:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/netpbm (Old)
and /work/SRC/openSUSE:Factory/.netpbm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "netpbm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/netpbm/netpbm.changes 2015-12-27 01:57:41.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.netpbm.new/netpbm.changes 2016-08-26 23:13:45.000000000 +0200
@@ -1,0 +2,10 @@
+Mon Aug 22 15:39:46 UTC 2016 - pgajdos(a)suse.com
+
+- updated to 10.75.1
+ * see HISTORY for upstream changelog
+ * refreshed, reduced, extended patches:
+ netpbm-security-code.patch
+ netpbm-security-scripts.patch
+ netpbm-gcc-warnings.patch
+
+-------------------------------------------------------------------
Old:
----
netpbm-10.72.4-documentation.tar.bz2
netpbm-10.72.4-nohpcdtoppm-noppmtompeg.tar.bz2
New:
----
netpbm-10.75.1-documentation.tar.bz2
netpbm-10.75.1-nohpcdtoppm-noppmtompeg.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ netpbm.spec ++++++
--- /var/tmp/diff_new_pack.EOQmAg/_old 2016-08-26 23:13:46.000000000 +0200
+++ /var/tmp/diff_new_pack.EOQmAg/_new 2016-08-26 23:13:46.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package netpbm
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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,11 +17,11 @@
%define libmaj 11
-%define libmin 72
+%define libmin 75
%define libver %{libmaj}.%{libmin}
Name: netpbm
-Version: 10.72.4
+Version: 10.75.1
Release: 0
Summary: A Powerful Graphics Conversion Package
License: BSD-3-Clause and GPL-2.0+ and IJG and MIT and SUSE-Public-Domain
@@ -111,9 +111,9 @@
%patch1
%patch2
%patch3
-%patch4
-%patch5
-%patch6
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
mkdir pnmtopalm # for %%doc pnmtopalm
cp -p converter/other/pnmtopalm/{LICENSE,README} pnmtopalm
++++++ netpbm-10.72.4-documentation.tar.bz2 -> netpbm-10.75.1-documentation.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/netpbm/netpbm-10.72.4-documentation.tar.bz2 /work/SRC/openSUSE:Factory/.netpbm.new/netpbm-10.75.1-documentation.tar.bz2 differ: char 11, line 1
++++++ netpbm-10.72.4-nohpcdtoppm-noppmtompeg.tar.bz2 -> netpbm-10.75.1-nohpcdtoppm-noppmtompeg.tar.bz2 ++++++
++++ 17918 lines of diff (skipped)
++++++ netpbm-gcc-warnings.patch ++++++
--- /var/tmp/diff_new_pack.EOQmAg/_old 2016-08-26 23:13:48.000000000 +0200
+++ /var/tmp/diff_new_pack.EOQmAg/_new 2016-08-26 23:13:48.000000000 +0200
@@ -1,8 +1,8 @@
-Index: converter/other/pngx.c
+Index: netpbm-10.75.1/converter/other/pngx.c
===================================================================
---- converter/other/pngx.c.orig 2015-12-16 17:11:26.246357467 +0100
-+++ converter/other/pngx.c 2015-12-17 12:16:50.793565778 +0100
-@@ -342,6 +342,7 @@
+--- netpbm-10.75.1.orig/converter/other/pngx.c 2016-08-22 11:03:31.641785020 +0200
++++ netpbm-10.75.1/converter/other/pngx.c 2016-08-22 17:36:34.165268951 +0200
+@@ -342,6 +342,7 @@ pngx_srgbIntentDesc(pngx_srgbIntent cons
case PNGX_ABSOLUTE_COLORIMETRIC: return "ABSOLUTE_COLORIMETRIC";
}
assert(false);
@@ -10,7 +10,7 @@
}
-@@ -357,6 +358,7 @@
+@@ -357,6 +358,7 @@ const libpngSrgbIntentCode(pngx_srgbInte
}
assert(false); /* All cases above return */
@@ -18,3 +18,17 @@
}
+Index: netpbm-10.75.1/editor/pbmreduce.c
+===================================================================
+--- netpbm-10.75.1.orig/editor/pbmreduce.c 2016-08-22 17:36:34.141268538 +0200
++++ netpbm-10.75.1/editor/pbmreduce.c 2016-08-22 17:37:35.838325686 +0200
+@@ -202,6 +202,9 @@ oppositeDir(enum Direction const arg) {
+ case RIGHT_TO_LEFT: return LEFT_TO_RIGHT;
+ }
+ assert(false); /* All cases handled above */
++
++ /* make gcc happy */
++ return RIGHT_TO_LEFT;
+ }
+
+
++++++ netpbm-security-code.patch ++++++
++++ 1650 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/netpbm/netpbm-security-code.patch
++++ and /work/SRC/openSUSE:Factory/.netpbm.new/netpbm-security-code.patch
++++++ netpbm-security-scripts.patch ++++++
--- /var/tmp/diff_new_pack.EOQmAg/_old 2016-08-26 23:13:48.000000000 +0200
+++ /var/tmp/diff_new_pack.EOQmAg/_new 2016-08-26 23:13:48.000000000 +0200
@@ -1,108 +1,16 @@
-Index: converter/other/anytopnm
+Index: netpbm-10.75.1/editor/ppmfade
===================================================================
---- converter/other/anytopnm.orig 2014-04-01 11:09:00.723372866 +0200
-+++ converter/other/anytopnm 2014-04-01 11:19:32.032102323 +0200
-@@ -511,10 +511,7 @@
- inputFile="-"
- fi
-
--tempdir="${TMPDIR-/tmp}/anytopnm.$$"
--mkdir -m 0700 $tempdir || \
-- { echo "Could not create temporary file. Exiting."; exit 1;}
--trap 'rm -rf $tempdir' 0
-+tempdir=$(mktemp -d -t anytopnm.XXXXXXXXXX) || exit 1
-
- # Take out all spaces
- # Find the filename extension for last-ditch efforts later
-@@ -540,9 +537,17 @@
- echo "$progname: unknown file type. " \
- "'file' says mime type is '$mimeType', " 1>&2
- echo "type description is '$typeDescription'" 1>&2
-+ if [ -d "$tempdir" ] ; then
-+ rm -rf "$tempdir"
-+ fi
-+
- exit 1
- fi
-
- convertIt $file $filetype
-
-+if [ -d "$tempdir" ] ; then
-+ rm -rf "$tempdir"
-+fi
-+
- exit 0
-Index: editor/pamstretch-gen
-===================================================================
---- editor/pamstretch-gen.orig 2014-04-01 11:08:58.068340316 +0200
-+++ editor/pamstretch-gen 2014-04-01 11:19:32.033102335 +0200
-@@ -31,13 +31,9 @@
- exit 1
- fi
-
--tempdir="${TMPDIR-/tmp}/pamstretch-gen.$$"
--mkdir -m 0700 $tempdir || \
-- { echo "Could not create temporary file. Exiting."; exit 1;}
-+tempfile=$(mktemp /tmp/pnmig.XXXXXXXXXX) || exit 1
- trap 'rm -rf $tempdir' 0 1 3 15
-
--tempfile=$tempdir/pnmig
--
- if ! cat $2 >$tempfile 2>/dev/null; then
- echo 'pamstretch-gen: error reading file' 1>&2
- exit 1
-Index: editor/pnmmargin
-===================================================================
---- editor/pnmmargin.orig 2014-04-01 11:08:58.058340193 +0200
-+++ editor/pnmmargin 2014-04-01 11:20:28.990798746 +0200
-@@ -11,15 +11,11 @@
- # documentation. This software is provided "as is" without express or
- # implied warranty.
-
--tempdir="${TMPDIR-/tmp}/pnmmargin.$$"
--mkdir -m 0700 $tempdir || \
-- { echo "Could not create temporary file. Exiting." 1>&2; exit 1;}
--trap 'rm -rf $tempdir' 0 1 3 15
--
--tmp1=$tempdir/pnmm1
--tmp2=$tempdir/pnmm2
--tmp3=$tempdir/pnmm3
--tmp4=$tempdir/pnmm4
-+tmpdir=$(mktemp -d -t ppmmargin.XXXXXXX) || exit 1
-+tmp1="$tmpdir/tmp1"
-+tmp2="$tmpdir/tmp2"
-+tmp3="$tmpdir/tmp3"
-+tmp4="$tmpdir/tmp4"
-
- color="-gofigure"
- plainopt=""
-@@ -90,6 +86,7 @@
- -white | -black )
- pnmpad $plainopt $color \
- -left=$size -right=$size -top=$size -bottom=$size $tmp1
-+ rm -rf "$tmpdir"
- exit
- ;;
- * )
-@@ -103,4 +100,4 @@
- pnmcat -tb $plainopt $tmp3 $tmp4 $tmp3
- fi
-
--
-+rm -rf "$tmpdir
-Index: editor/ppmfade
-===================================================================
---- editor/ppmfade.orig 2014-04-01 11:08:58.218342155 +0200
-+++ editor/ppmfade 2014-04-01 11:19:32.033102335 +0200
-@@ -40,6 +40,7 @@
+--- netpbm-10.75.1.orig/editor/ppmfade 2016-08-22 11:03:30.561767005 +0200
++++ netpbm-10.75.1/editor/ppmfade 2016-08-22 16:44:34.091984993 +0200
+@@ -40,6 +40,7 @@ exec perl -w -x -S -- "$0" "$@"
#
##############################################################################
use strict;
+use File::Temp "tempdir";
- my $SPREAD = 1;
- my $SHIFT = 2;
-@@ -137,20 +138,26 @@
+ sub doVersionHack($) {
+ my ($argvR) = @_;
+@@ -149,20 +150,26 @@ if ($first_file ne "undefined") {
print("Frames are " . $width . "W x " . $height . "H\n");
@@ -133,7 +41,7 @@
}
#
-@@ -158,14 +165,14 @@
+@@ -170,14 +177,14 @@ if ($last_file eq "undefined") {
#
# Here's what our temporary files are:
@@ -156,7 +64,7 @@
my $i; # Frame number
for ($i = 1; $i <= $nframes; $i++) {
-@@ -173,147 +180,147 @@
+@@ -185,147 +192,147 @@ for ($i = 1; $i <= $nframes; $i++) {
if ($mode eq $SPREAD) {
if ($i <= 10) {
my $n = $spline20[$i] * 100;
@@ -357,21 +265,21 @@
+system("rm $tmpdir/junk*$$.ppm");
exit(0);
-Index: editor/ppmshadow
+Index: netpbm-10.75.1/editor/ppmshadow
===================================================================
---- editor/ppmshadow.orig 2014-04-01 11:08:58.066340291 +0200
-+++ editor/ppmshadow 2014-04-01 11:19:32.034102347 +0200
-@@ -97,9 +97,10 @@
-
-
- my $tmpdir = $ENV{TMPDIR} || "/tmp";
--my $ourtmp = "$tmpdir/ppmshadow$$";
--mkdir($ourtmp, 0777) or
-- die("Unable to create directory for temporary files '$ourtmp");
-+my $ourtmp; chomp($ourtmp = `mktemp -d -t PPMshadow.XXXXXX`);
-+if ($? >> 8) {
+--- netpbm-10.75.1.orig/editor/ppmshadow 2016-08-22 16:44:34.091984993 +0200
++++ netpbm-10.75.1/editor/ppmshadow 2016-08-22 16:45:25.404862701 +0200
+@@ -170,9 +170,10 @@ my $tmpdir = $ENV{TMPDIR} || "/tmp";
+ my $ourtmp;
+
+ if ($keeptemp) {
+- $ourtmp = "$tmpdir/ppmshadow$$";
+- mkdir($ourtmp, 0777) or
+- die("Unable to create directory for temporary files '$ourtmp");
++ chomp($ourtmp = `mktemp -d -t PPMshadow.XXXXXX`);
++ if ($? >> 8) {
+ die "Can't create directory for temporary files";
-+}
-
- # Process command line options
-
++ }
+ } else {
+ $ourtmp = File::Temp::tempdir("$tmpdir/ppmshadowXXXX", UNLINK=>1);
+ }
++++++ netpbm-tmpfile.patch ++++++
--- /var/tmp/diff_new_pack.EOQmAg/_old 2016-08-26 23:13:48.000000000 +0200
+++ /var/tmp/diff_new_pack.EOQmAg/_new 2016-08-26 23:13:48.000000000 +0200
@@ -11,53 +11,4 @@
rm -f $tmpfile
set maxformat=PBM
-Index: generator/ppmrainbow
-===================================================================
---- generator/ppmrainbow.orig
-+++ generator/ppmrainbow
-@@ -25,6 +25,7 @@ exec perl -w -x -S -- "$0" "$@"
- #!/usr/bin/perl
- use strict;
- use Getopt::Long;
-+use File::Temp qw{tempfile tempdir};
-
- my ($FALSE, $TRUE) = (0,1);
-
-@@ -71,31 +72,25 @@ if (!$norepeat) {
- push @colorlist, $ARGV[0];
- }
-
--my $ourtmp = "$tmpdir/ppmrainbow$$";
--mkdir($ourtmp, 0777) or
-- die("Unable to create directory for temporary files '$ourtmp");
--
--
-+my $ourtmp = tempdir("ppmrainbow.XXXX", DIR => $tmpdir, CLEANUP => 1);
- my $widthRemaining;
--my $n;
- my @outlist;
-
--$n = 0;
- $widthRemaining = $Twid;
- @outlist = ();
-
- while (@colorlist >= 2) {
-- my $outfile = sprintf("%s/file.%03u.ppm", $ourtmp, $n);
-+ (my $tmpfh, my $outfile) = tempfile("file.XXXXXXXX", DIR => "$ourtmp", SUFFIX => '.ppm');
- push(@outlist, $outfile);
-
- my $w = int(($widthRemaining-1)/(@colorlist-1))+1;
-- my $rc = system("$verboseCommand pgmramp -lr $w $Thgt | " .
-- "pgmtoppm \"$colorlist[0]-$colorlist[1]\" >$outfile");
-- if ($rc != 0) {
-+ my $content = qx{$verboseCommand pgmramp -lr $w $Thgt |
-+ pgmtoppm "$colorlist[0]-$colorlist[1]"};
-+ if (! "$content") {
- fatal("pgmramp|pgmtoppm failed.");
- }
-+ print $tmpfh $content;
- $widthRemaining -= $w;
-- $n++;
- shift @colorlist;
- }
-
+
1
0
Hello community,
here is the log from the commit of package libyui-qt for openSUSE:Factory checked in at 2016-08-26 23:13:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui-qt (Old)
and /work/SRC/openSUSE:Factory/.libyui-qt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui-qt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui-qt/libyui-qt.changes 2016-05-17 17:06:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libyui-qt.new/libyui-qt.changes 2016-08-26 23:13:37.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Aug 22 12:47:32 UTC 2016 - jreidinger(a)suse.com
+
+- Do not append new line when content of log view do not change
+ (bnc#989155)
+- 2.46.24
+
+-------------------------------------------------------------------
Old:
----
libyui-qt-2.46.23.tar.bz2
New:
----
libyui-qt-2.46.24.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libyui-qt-doc.spec ++++++
--- /var/tmp/diff_new_pack.rTL2hx/_old 2016-08-26 23:13:37.000000000 +0200
+++ /var/tmp/diff_new_pack.rTL2hx/_new 2016-08-26 23:13:37.000000000 +0200
@@ -20,7 +20,7 @@
%define so_version 7
Name: %{parent}-doc
-Version: 2.46.23
+Version: 2.46.24
Release: 0
Source: %{parent}-%{version}.tar.bz2
++++++ libyui-qt.spec ++++++
--- /var/tmp/diff_new_pack.rTL2hx/_old 2016-08-26 23:13:37.000000000 +0200
+++ /var/tmp/diff_new_pack.rTL2hx/_new 2016-08-26 23:13:37.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt
-Version: 2.46.23
+Version: 2.46.24
Release: 0
Source: %{name}-%{version}.tar.bz2
++++++ libyui-qt-2.46.23.tar.bz2 -> libyui-qt-2.46.24.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.23/VERSION.cmake new/libyui-qt-2.46.24/VERSION.cmake
--- old/libyui-qt-2.46.23/VERSION.cmake 2016-05-16 09:04:47.000000000 +0200
+++ new/libyui-qt-2.46.24/VERSION.cmake 2016-08-22 17:02:49.000000000 +0200
@@ -1,6 +1,6 @@
SET(VERSION_MAJOR "2")
SET(VERSION_MINOR "46")
-SET(VERSION_PATCH "23")
+SET(VERSION_PATCH "24")
SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${GIT_SHA1_VERSION}" )
##### This is need for the libyui core, ONLY.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.23/package/libyui-qt-doc.spec new/libyui-qt-2.46.24/package/libyui-qt-doc.spec
--- old/libyui-qt-2.46.23/package/libyui-qt-doc.spec 2016-05-16 09:04:47.000000000 +0200
+++ new/libyui-qt-2.46.24/package/libyui-qt-doc.spec 2016-08-22 17:11:52.000000000 +0200
@@ -20,7 +20,7 @@
%define so_version 7
Name: %{parent}-doc
-Version: 2.46.23
+Version: 2.46.24
Release: 0
Source: %{parent}-%{version}.tar.bz2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.23/package/libyui-qt.changes new/libyui-qt-2.46.24/package/libyui-qt.changes
--- old/libyui-qt-2.46.23/package/libyui-qt.changes 2016-05-16 09:04:47.000000000 +0200
+++ new/libyui-qt-2.46.24/package/libyui-qt.changes 2016-08-22 17:02:49.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Mon Aug 22 12:47:32 UTC 2016 - jreidinger(a)suse.com
+
+- Do not append new line when content of log view do not change
+ (bnc#989155)
+- 2.46.24
+
+-------------------------------------------------------------------
Fri May 13 15:47:00 UTC 2016 - alarrosa(a)suse.com
- Now Yast requests the focus to the window manager when running
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.23/package/libyui-qt.spec new/libyui-qt-2.46.24/package/libyui-qt.spec
--- old/libyui-qt-2.46.23/package/libyui-qt.spec 2016-05-16 09:04:47.000000000 +0200
+++ new/libyui-qt-2.46.24/package/libyui-qt.spec 2016-08-22 17:11:52.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui-qt
-Version: 2.46.23
+Version: 2.46.24
Release: 0
Source: %{name}-%{version}.tar.bz2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.46.23/src/YQLogView.cc new/libyui-qt-2.46.24/src/YQLogView.cc
--- old/libyui-qt-2.46.23/src/YQLogView.cc 2014-06-02 15:21:40.000000000 +0200
+++ new/libyui-qt-2.46.24/src/YQLogView.cc 2016-08-22 17:02:49.000000000 +0200
@@ -82,6 +82,9 @@
{
QScrollBar *sb = _qt_text->verticalScrollBar();
QString newString = fromUTF8( text );
+ // no change -> no need to update
+ if (newString == _lastText)
+ return;
bool atEnd = sb->value() == sb->maximum();
1
0
Hello community,
here is the log from the commit of package libyui for openSUSE:Factory checked in at 2016-08-26 23:13:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui (Old)
and /work/SRC/openSUSE:Factory/.libyui.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui/libyui.changes 2016-05-31 12:08:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libyui.new/libyui.changes 2016-08-26 23:13:29.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Aug 22 13:05:24 UTC 2016 - jreidinger(a)suse.com
+
+- prevent double rendering of content causing segfault in qt and
+ slow down elsewhere (bnc#989155)
+- 3.2.6
+
+-------------------------------------------------------------------
Old:
----
libyui-3.2.5.tar.bz2
New:
----
libyui-3.2.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libyui-doc.spec ++++++
--- /var/tmp/diff_new_pack.SOqwQt/_old 2016-08-26 23:13:30.000000000 +0200
+++ /var/tmp/diff_new_pack.SOqwQt/_new 2016-08-26 23:13:30.000000000 +0200
@@ -20,7 +20,7 @@
%define so_version 7
Name: %{parent}-doc
-Version: 3.2.5
+Version: 3.2.6
Release: 0
Source: %{parent}-%{version}.tar.bz2
++++++ libyui.spec ++++++
--- /var/tmp/diff_new_pack.SOqwQt/_old 2016-08-26 23:13:30.000000000 +0200
+++ /var/tmp/diff_new_pack.SOqwQt/_new 2016-08-26 23:13:30.000000000 +0200
@@ -17,7 +17,7 @@
Name: libyui
-Version: 3.2.5
+Version: 3.2.6
Release: 0
Source: %{name}-%{version}.tar.bz2
++++++ libyui-3.2.5.tar.bz2 -> libyui-3.2.6.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-3.2.5/VERSION.cmake new/libyui-3.2.6/VERSION.cmake
--- old/libyui-3.2.5/VERSION.cmake 2016-05-23 16:31:08.000000000 +0200
+++ new/libyui-3.2.6/VERSION.cmake 2016-08-22 17:01:15.000000000 +0200
@@ -1,6 +1,6 @@
SET( VERSION_MAJOR "3")
SET( VERSION_MINOR "2" )
-SET( VERSION_PATCH "5" )
+SET( VERSION_PATCH "6" )
SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${GIT_SHA1_VERSION}" )
##### This is need for the libyui core, ONLY.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-3.2.5/package/libyui-doc.spec new/libyui-3.2.6/package/libyui-doc.spec
--- old/libyui-3.2.5/package/libyui-doc.spec 2016-05-23 16:31:08.000000000 +0200
+++ new/libyui-3.2.6/package/libyui-doc.spec 2016-08-22 17:01:15.000000000 +0200
@@ -20,7 +20,7 @@
%define so_version 7
Name: %{parent}-doc
-Version: 3.2.5
+Version: 3.2.6
Release: 0
Source: %{parent}-%{version}.tar.bz2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-3.2.5/package/libyui.changes new/libyui-3.2.6/package/libyui.changes
--- old/libyui-3.2.5/package/libyui.changes 2016-05-23 16:31:08.000000000 +0200
+++ new/libyui-3.2.6/package/libyui.changes 2016-08-22 17:01:15.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Mon Aug 22 13:05:24 UTC 2016 - jreidinger(a)suse.com
+
+- prevent double rendering of content causing segfault in qt and
+ slow down elsewhere (bnc#989155)
+- 3.2.6
+
+-------------------------------------------------------------------
Wed Mar 30 09:12:04 CEST 2016 - me(a)besser82.io
- Fix 'Werror=nonnull-compare' for GCC 6 (bsc#964144)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-3.2.5/package/libyui.spec new/libyui-3.2.6/package/libyui.spec
--- old/libyui-3.2.5/package/libyui.spec 2016-05-23 16:31:08.000000000 +0200
+++ new/libyui-3.2.6/package/libyui.spec 2016-08-22 17:01:15.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: libyui
-Version: 3.2.5
+Version: 3.2.6
Release: 0
Source: %{name}-%{version}.tar.bz2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-3.2.5/src/YLogView.cc new/libyui-3.2.6/src/YLogView.cc
--- old/libyui-3.2.5/src/YLogView.cc 2016-05-23 16:31:08.000000000 +0200
+++ new/libyui-3.2.6/src/YLogView.cc 2016-08-22 17:01:15.000000000 +0200
@@ -201,6 +201,18 @@
}
}
+void
+YLogView::setLogText(const std::string & text)
+{
+ // optimize for regular updating widget when no new content appear
+ if (text == logText())
+ return;
+
+ // do not use clearText as it do render and cause segfault in qt (bnc#989155)
+ priv->logText.clear();
+ appendLines(text);
+}
+
void
YLogView::clearText()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-3.2.5/src/YLogView.h new/libyui-3.2.6/src/YLogView.h
--- old/libyui-3.2.5/src/YLogView.h 2016-05-23 16:31:08.000000000 +0200
+++ new/libyui-3.2.6/src/YLogView.h 2016-08-22 17:01:15.000000000 +0200
@@ -119,8 +119,7 @@
/**
* Set (replace) the entire log text and trigger a display update.
**/
- void setLogText( const std::string & text )
- { clearText(); appendLines( text ); }
+ void setLogText( const std::string & text );
/**
* Return the last log line.
1
0
Hello community,
here is the log from the commit of package mozilla-nss for openSUSE:Factory checked in at 2016-08-26 23:13:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mozilla-nss (Old)
and /work/SRC/openSUSE:Factory/.mozilla-nss.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozilla-nss"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mozilla-nss/mozilla-nss.changes 2016-08-12 15:33:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mozilla-nss.new/mozilla-nss.changes 2016-08-26 23:13:23.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Aug 22 12:54:15 UTC 2016 - wr(a)rosenauer.org
+
+- fix build on certain toolchains (nss-uninitialized.patch)
+ jarfile.c:805:13: error: 'it' may be used uninitialized in this
+ function [-Werror=maybe-uninitialized]
+
+-------------------------------------------------------------------
New:
----
nss-uninitialized.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mozilla-nss.spec ++++++
--- /var/tmp/diff_new_pack.7PaqfJ/_old 2016-08-26 23:13:24.000000000 +0200
+++ /var/tmp/diff_new_pack.7PaqfJ/_new 2016-08-26 23:13:24.000000000 +0200
@@ -51,6 +51,7 @@
Source99: %{name}.changes
Patch1: nss-opt.patch
Patch2: system-nspr.patch
+Patch3: nss-uninitialized.patch
Patch4: nss-no-rpath.patch
Patch5: renegotiate-transitional.patch
Patch6: malloc.patch
@@ -169,6 +170,7 @@
cd nss
%patch1 -p1
%patch2 -p1
+%patch3 -p1
%patch4 -p1
%patch5 -p1
%if %suse_version > 1110
++++++ nss-uninitialized.patch ++++++
diff --git a/lib/jar/jarfile.c b/lib/jar/jarfile.c
--- a/lib/jar/jarfile.c
+++ b/lib/jar/jarfile.c
@@ -652,17 +652,17 @@ jar_gen_index(JAR *jar, jarArch format,
* List the physical contents of a Phil Katz
* style .ZIP file into the JAR linked list.
*
*/
static int
jar_listzip(JAR *jar, JAR_FILE fp)
{
ZZLink *ent;
- JAR_Item *it;
+ JAR_Item *it = NULL;
JAR_Physical *phy = NULL;
struct ZipLocal *Local = PORT_ZNew(struct ZipLocal);
struct ZipCentral *Central = PORT_ZNew(struct ZipCentral);
struct ZipEnd *End = PORT_ZNew(struct ZipEnd);
int err = 0;
long pos = 0L;
unsigned int compression;
1
0
Hello community,
here is the log from the commit of package wayland-protocols for openSUSE:Factory checked in at 2016-08-26 23:13:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wayland-protocols (Old)
and /work/SRC/openSUSE:Factory/.wayland-protocols.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wayland-protocols"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wayland-protocols/wayland-protocols.changes 2016-08-06 20:37:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.wayland-protocols.new/wayland-protocols.changes 2016-08-26 23:13:14.000000000 +0200
@@ -1,0 +2,10 @@
+Sat Aug 13 22:17:00 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 1.6:
+ * This release include two new unstable protocols:
+ - xdg-foreign: reference a toplevel surface from another client
+ and affect window manager relationship.
+ - idle-inhibit: inhibit idle behaviour (screen blanking,
+ screensaver, etc)
+
+-------------------------------------------------------------------
Old:
----
wayland-protocols-1.5.tar.xz
wayland-protocols-1.5.tar.xz.sig
New:
----
wayland-protocols-1.6.tar.xz
wayland-protocols-1.6.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wayland-protocols.spec ++++++
--- /var/tmp/diff_new_pack.kqAh18/_old 2016-08-26 23:13:15.000000000 +0200
+++ /var/tmp/diff_new_pack.kqAh18/_new 2016-08-26 23:13:15.000000000 +0200
@@ -18,7 +18,7 @@
Name: wayland-protocols
-Version: 1.5
+Version: 1.6
Release: 0
Summary: Wayland protocols that adds functionality not available in the core protocol
License: MIT
++++++ wayland-protocols-1.5.tar.xz -> wayland-protocols-1.6.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/Makefile.am new/wayland-protocols-1.6/Makefile.am
--- old/wayland-protocols-1.5/Makefile.am 2016-07-22 05:42:57.000000000 +0200
+++ new/wayland-protocols-1.6/Makefile.am 2016-08-12 05:21:07.000000000 +0200
@@ -9,6 +9,8 @@
unstable/pointer-constraints/pointer-constraints-unstable-v1.xml \
unstable/tablet/tablet-unstable-v1.xml \
unstable/tablet/tablet-unstable-v2.xml \
+ unstable/xdg-foreign/xdg-foreign-unstable-v1.xml \
+ unstable/idle-inhibit/idle-inhibit-unstable-v1.xml \
$(NULL)
stable_protocols = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/Makefile.in new/wayland-protocols-1.6/Makefile.in
--- old/wayland-protocols-1.5/Makefile.in 2016-07-22 05:48:45.000000000 +0200
+++ new/wayland-protocols-1.6/Makefile.in 2016-08-12 05:22:28.000000000 +0200
@@ -319,7 +319,9 @@
unstable/relative-pointer/relative-pointer-unstable-v1.xml \
unstable/pointer-constraints/pointer-constraints-unstable-v1.xml \
unstable/tablet/tablet-unstable-v1.xml \
- unstable/tablet/tablet-unstable-v2.xml
+ unstable/tablet/tablet-unstable-v2.xml \
+ unstable/xdg-foreign/xdg-foreign-unstable-v1.xml \
+ unstable/idle-inhibit/idle-inhibit-unstable-v1.xml
am__EXEEXT_2 = stable/presentation-time/presentation-time.xml \
stable/viewporter/viewporter.xml
TEST_SUITE_LOG = test-suite.log
@@ -450,6 +452,8 @@
unstable/pointer-constraints/pointer-constraints-unstable-v1.xml \
unstable/tablet/tablet-unstable-v1.xml \
unstable/tablet/tablet-unstable-v2.xml \
+ unstable/xdg-foreign/xdg-foreign-unstable-v1.xml \
+ unstable/idle-inhibit/idle-inhibit-unstable-v1.xml \
$(NULL)
stable_protocols = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/configure new/wayland-protocols-1.6/configure
--- old/wayland-protocols-1.5/configure 2016-07-22 05:48:45.000000000 +0200
+++ new/wayland-protocols-1.6/configure 2016-08-12 05:22:28.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for wayland-protocols 1.5.
+# Generated by GNU Autoconf 2.69 for wayland-protocols 1.6.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=waylan…>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='wayland-protocols'
PACKAGE_TARNAME='wayland-protocols'
-PACKAGE_VERSION='1.5'
-PACKAGE_STRING='wayland-protocols 1.5'
+PACKAGE_VERSION='1.6'
+PACKAGE_STRING='wayland-protocols 1.6'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=waylan…'
PACKAGE_URL='http://wayland.freedesktop.org/'
@@ -1215,7 +1215,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures wayland-protocols 1.5 to adapt to many kinds of systems.
+\`configure' configures wayland-protocols 1.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1282,7 +1282,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of wayland-protocols 1.5:";;
+ short | recursive ) echo "Configuration of wayland-protocols 1.6:";;
esac
cat <<\_ACEOF
@@ -1380,7 +1380,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-wayland-protocols configure 1.5
+wayland-protocols configure 1.6
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1397,7 +1397,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by wayland-protocols $as_me 1.5, which was
+It was created by wayland-protocols $as_me 1.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -1748,7 +1748,7 @@
-WAYLAND_PROTOCOLS_VERSION=1.5
+WAYLAND_PROTOCOLS_VERSION=1.6
@@ -2527,7 +2527,7 @@
# Define the identity of the package.
PACKAGE='wayland-protocols'
- VERSION='1.5'
+ VERSION='1.6'
cat >>confdefs.h <<_ACEOF
@@ -3230,7 +3230,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by wayland-protocols $as_me 1.5, which was
+This file was extended by wayland-protocols $as_me 1.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3284,7 +3284,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-wayland-protocols config.status 1.5
+wayland-protocols config.status 1.6
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/configure.ac new/wayland-protocols-1.6/configure.ac
--- old/wayland-protocols-1.5/configure.ac 2016-07-22 05:43:35.000000000 +0200
+++ new/wayland-protocols-1.6/configure.ac 2016-08-12 05:21:47.000000000 +0200
@@ -1,7 +1,7 @@
AC_PREREQ([2.64])
m4_define([wayland_protocols_major_version], [1])
-m4_define([wayland_protocols_minor_version], [5])
+m4_define([wayland_protocols_minor_version], [6])
m4_define([wayland_protocols_version],
[wayland_protocols_major_version.wayland_protocols_minor_version])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/unstable/idle-inhibit/README new/wayland-protocols-1.6/unstable/idle-inhibit/README
--- old/wayland-protocols-1.5/unstable/idle-inhibit/README 1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.6/unstable/idle-inhibit/README 2016-08-12 05:20:52.000000000 +0200
@@ -0,0 +1,4 @@
+Screensaver inhibition protocol
+
+Maintainers:
+Bryce Harrington <bryce(a)osg.samsung.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml new/wayland-protocols-1.6/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml
--- old/wayland-protocols-1.5/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.6/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml 2016-08-12 05:20:52.000000000 +0200
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="idle_inhibit_unstable_v1">
+
+ <copyright>
+ Copyright © 2015 Samsung Electronics Co., Ltd
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <interface name="zwp_idle_inhibit_manager_v1" version="1">
+ <description summary="control behavior when display idles">
+ This interface permits inhibiting the idle behavior such as screen
+ blanking, locking, and screensaving. The client binds the idle manager
+ globally, then creates idle-inhibitor objects for each surface.
+
+ Warning! The protocol described in this file is experimental and
+ backward incompatible changes may be made. Backward compatible changes
+ may be added together with the corresponding interface version bump.
+ Backward incompatible changes are done by bumping the version number in
+ the protocol and interface names and resetting the interface version.
+ Once the protocol is to be declared stable, the 'z' prefix and the
+ version number in the protocol and interface names are removed and the
+ interface version number is reset.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the idle inhibitor object">
+ This destroys the inhibit manager.
+ </description>
+ </request>
+
+ <request name="create_inhibitor">
+ <description summary="create a new inhibitor object">
+ Create a new inhibitor object associated with the given surface.
+ </description>
+ <arg name="id" type="new_id" interface="zwp_idle_inhibitor_v1"/>
+ <arg name="surface" type="object" interface="wl_surface"
+ summary="the surface that inhibits the idle behavior"/>
+ </request>
+
+ </interface>
+
+ <interface name="zwp_idle_inhibitor_v1" version="1">
+ <description summary="context object for inhibiting idle behavior">
+ An idle inhibitor prevents the output that the associated surface is
+ visible on from being set to a state where it is not visually usable due
+ to lack of user interaction (e.g. blanked, dimmed, locked, set to power
+ save, etc.) Any screensaver processes are also blocked from displaying.
+
+ If the surface is destroyed, unmapped, becomes occluded, loses
+ visibility, or otherwise becomes not visually relevant for the user, the
+ idle inhibitor will not be honored by the compositor; if the surface
+ subsequently regains visibility the inhibitor takes effect once again.
+ Likewise, the inhibitor isn't honored if the system was already idled at
+ the time the inhibitor was established, although if the system later
+ de-idles and re-idles the inhibitor will take effect.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the idle inhibitor object">
+ This removes the inhibitor effect from the associated wl_surface.
+ </description>
+ </request>
+
+ </interface>
+</protocol>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/unstable/xdg-foreign/README new/wayland-protocols-1.6/unstable/xdg-foreign/README
--- old/wayland-protocols-1.5/unstable/xdg-foreign/README 1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.6/unstable/xdg-foreign/README 2016-08-12 05:19:40.000000000 +0200
@@ -0,0 +1,4 @@
+xdg foreign protocol
+
+Maintainers:
+Jonas Ådahl <jadahl(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.5/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml new/wayland-protocols-1.6/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml
--- old/wayland-protocols-1.5/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.6/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml 2016-08-12 05:19:40.000000000 +0200
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="xdg_foreign_unstable_v1">
+
+ <copyright>
+ Copyright © 2015-2016 Red Hat Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <description summary="Protocol for exporting xdg surface handles">
+ This protocol specifies a way for making it possible to reference a surface
+ of a different client. With such a reference, a client can, by using the
+ interfaces provided by this protocol, manipulate the relationship between
+ its own surfaces and the surface of some other client. For example, stack
+ some of its own surface above the other clients surface.
+
+ In order for a client A to get a reference of a surface of client B, client
+ B must first export its surface using xdg_exporter.export. Upon doing this,
+ client B will receive a handle (a unique string) that it may share with
+ client A in some way (for example D-Bus). After client A has received the
+ handle from client B, it may use xdg_importer.import to create a reference
+ to the surface client B just exported. See the corresponding requests for
+ details.
+
+ A possible use case for this is out-of-process dialogs. For example when a
+ sandboxed client without file system access needs the user to select a file
+ on the file system, given sandbox environment support, it can export its
+ surface, passing the exported surface handle to an unsandboxed process that
+ can show a file browser dialog and stack it above the sandboxed client's
+ surface.
+
+ Warning! The protocol described in this file is experimental and backward
+ incompatible changes may be made. Backward compatible changes may be added
+ together with the corresponding interface version bump. Backward
+ incompatible changes are done by bumping the version number in the protocol
+ and interface names and resetting the interface version. Once the protocol
+ is to be declared stable, the 'z' prefix and the version number in the
+ protocol and interface names are removed and the interface version number is
+ reset.
+ </description>
+
+ <interface name="zxdg_exporter_v1" version="1">
+ <description summary="interface for exporting surfaces">
+ A global interface used for exporting surfaces that can later be imported
+ using xdg_importer.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the xdg_exporter object">
+ Notify the compositor that the xdg_exporter object will no longer be
+ used.
+ </description>
+ </request>
+
+ <request name="export">
+ <description summary="export a surface">
+ The export request exports the passed surface so that it can later be
+ imported via xdg_importer. When called, a new xdg_exported object will
+ be created and xdg_exported.handle will be sent immediately. See the
+ corresponding interface and event for details.
+
+ A surface may be exported multiple times, and each exported handle may
+ be used to create a xdg_imported multiple times. Only xdg_surface
+ surfaces may be exported.
+ </description>
+
+ <arg name="id" type="new_id" interface="zxdg_exported_v1"
+ summary="the new xdg_exported object"/>
+ <arg name="surface" type="object" interface="wl_surface"
+ summary="the surface to export"/>
+ </request>
+ </interface>
+
+ <interface name="zxdg_importer_v1" version="1">
+ <description summary="interface for importing surfaces">
+ A global interface used for importing surfaces exported by xdg_exporter.
+ With this interface, a client can create a reference to a surface of
+ another client.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the xdg_importer object">
+ Notify the compositor that the xdg_importer object will no longer be
+ used.
+ </description>
+ </request>
+
+ <request name="import">
+ <description summary="import a surface">
+ The import request imports a surface from any client given a handle
+ retrieved by exporting said surface using xdg_exporter.export. When
+ called, a new xdg_imported object will be created. This new object
+ represents the imported surface, and the importing client can
+ manipulate its relationship using it. See xdg_imported for details.
+ </description>
+
+ <arg name="id" type="new_id" interface="zxdg_imported_v1"
+ summary="the new xdg_imported object"/>
+ <arg name="handle" type="string"
+ summary="the exported surface handle"/>
+ </request>
+ </interface>
+
+ <interface name="zxdg_exported_v1" version="1">
+ <description summary="an exported surface handle">
+ A xdg_exported object represents an exported reference to a surface. The
+ exported surface may be referenced as long as the xdg_exported object not
+ destroyed. Destroying the xdg_exported invalidates any relationship the
+ importer may have established using xdg_imported.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="unexport the exported surface">
+ Revoke the previously exported surface. This invalidates any
+ relationship the importer may have set up using the xdg_imported created
+ given the handle sent via xdg_exported.handle.
+ </description>
+ </request>
+
+ <event name="handle">
+ <description summary="the exported surface handle">
+ The handle event contains the unique handle of this exported surface
+ reference. It may be shared with any client, which then can use it to
+ import the surface by calling xdg_importer.import. A handle may be
+ used to import the surface multiple times.
+ </description>
+
+ <arg name="handle" type="string" summary="the exported surface handle"/>
+ </event>
+ </interface>
+
+ <interface name="zxdg_imported_v1" version="1">
+ <description summary="an imported surface handle">
+ A xdg_imported object represents an imported reference to surface exported
+ by some client. A client can use this interface to manipulate
+ relationships between its own surfaces and the imported surface.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the xdg_imported object">
+ Notify the compositor that it will no longer use the xdg_imported
+ object. Any relationship that may have been set up will at this point
+ be invalidated.
+ </description>
+ </request>
+
+ <request name="set_parent_of">
+ <description summary="set as the parent of some surface">
+ Set the imported surface as the parent of some surface of the client.
+ The passed surface must be a toplevel xdg_surface. Calling this function
+ sets up a surface to surface relation with the same stacking and positioning
+ semantics as xdg_surface.set_parent.
+ </description>
+
+ <arg name="surface" type="object" interface="wl_surface"
+ summary="the child surface"/>
+ </request>
+
+ <event name="destroyed">
+ <description summary="the imported surface handle has been destroyed">
+ The imported surface handle has been destroyed and any relationship set
+ up has been invalidated. This may happen for various reasons, for
+ example if the exported surface or the exported surface handle has been
+ destroyed, if the handle used for importing was invalid.
+ </description>
+ </event>
+ </interface>
+
+</protocol>
1
0
Hello community,
here is the log from the commit of package poppler for openSUSE:Factory checked in at 2016-08-26 23:13:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/poppler (Old)
and /work/SRC/openSUSE:Factory/.poppler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poppler"
Changes:
--------
--- /work/SRC/openSUSE:Factory/poppler/poppler-qt.changes 2016-08-03 11:37:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.poppler.new/poppler-qt.changes 2016-08-26 23:13:05.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Aug 19 22:36:35 UTC 2016 - wbauer(a)tmo.at
+
+- Update to version 0.47.0 (boo#994702):
+ + core:
+ - Fix abort on documents where the docinfo obj is not a dict
+ (fdo#97134).
+ - Check for XRefEntry existing before using it (fdo#97005).
+ - Fix memory leak on PDFDoc::setDocInfoStringEntry() with empty
+ string.
+ - Don't presume that DocInfo is a dictionary in
+ XRef::createDocInfoIfNoneExists().
+ + build system: configure: Work with non gnu greps.
+
+-------------------------------------------------------------------
poppler-qt5.changes: same change
poppler.changes: same change
Old:
----
poppler-0.46.0.tar.xz
New:
----
poppler-0.47.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ poppler-qt.spec ++++++
--- /var/tmp/diff_new_pack.1piGFC/_old 2016-08-26 23:13:06.000000000 +0200
+++ /var/tmp/diff_new_pack.1piGFC/_new 2016-08-26 23:13:06.000000000 +0200
@@ -21,7 +21,7 @@
Name: poppler-qt
%define _name poppler
-Version: 0.46.0
+Version: 0.47.0
Release: 0
# Actual version of poppler-data:
%define poppler_data_version 0.4.6
poppler-qt5.spec: same change
++++++ poppler.spec ++++++
--- /var/tmp/diff_new_pack.1piGFC/_old 2016-08-26 23:13:06.000000000 +0200
+++ /var/tmp/diff_new_pack.1piGFC/_new 2016-08-26 23:13:06.000000000 +0200
@@ -21,7 +21,7 @@
Name: poppler
%define _name poppler
-Version: 0.46.0
+Version: 0.47.0
Release: 0
# Actual version of poppler-data:
%define poppler_data_version 0.4.6
++++++ poppler-0.46.0.tar.xz -> poppler-0.47.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/CMakeLists.txt new/poppler-0.47.0/CMakeLists.txt
--- old/poppler-0.46.0/CMakeLists.txt 2016-07-25 00:05:55.000000000 +0200
+++ new/poppler-0.47.0/CMakeLists.txt 2016-08-18 22:09:37.000000000 +0200
@@ -22,7 +22,7 @@
endif()
set(POPPLER_MAJOR_VERSION "0")
-set(POPPLER_MINOR_VERSION "46")
+set(POPPLER_MINOR_VERSION "47")
set(POPPLER_MICRO_VERSION "0")
set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/ChangeLog new/poppler-0.47.0/ChangeLog
--- old/poppler-0.46.0/ChangeLog 2016-07-25 00:51:45.000000000 +0200
+++ new/poppler-0.47.0/ChangeLog 2016-08-18 22:45:24.000000000 +0200
@@ -1,3 +1,64 @@
+commit 0889366a5872316919dbb640b6cc5cda85295169
+Author: Jakub Kucharski <jakubkucharski97(a)gmail.com>
+Date: Mon Aug 1 01:10:18 2016 +0200
+
+ XRef::createDocInfoIfNoneExists(): don't presume that DocInfo is
+ a dictionary
+
+ In case a PDF document doesn't comply with the PDF reference and
+ its DocInfo
+ object isn't a dictionary, remove it and create a dictionary in
+ its place.
+
+ poppler/XRef.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 7ba975630e12a3242d73372a685e016101c5e479
+Author: Jakub Kucharski <jakubkucharski97(a)gmail.com>
+Date: Mon Aug 1 01:17:08 2016 +0200
+
+ PDFDoc::setDocInfoStringEntry(): free empty value string
+
+ Normally the ownership of value is passed on to the Object class. In
+ case value
+ is an empty string, it doesn't happen, so we have to free it in
+ order to have
+ a uniform behaviour managing memory and not to introduce memory leaks.
+
+ poppler/PDFDoc.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit f0feeed3513899558c59b65f798f294212309486
+Author: Matthias Kilian <kili(a)outback.escape.de>
+Date: Mon Aug 1 22:50:44 2016 +0200
+
+ Work with non gnu grep
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 3f5c84e17acfa71dfd44514384398f5a4c449630
+Author: Albert Astals Cid <aacid(a)kde.org>
+Date: Sat Jul 30 17:50:42 2016 +0200
+
+ Check for XRefEntry existing before using it
+
+ Bug #97005
+
+ poppler/Hints.cc | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+commit 7d3aea760a14a73962e429059f73d97391660367
+Author: Albert Astals Cid <aacid(a)kde.org>
+Date: Sat Jul 30 17:32:59 2016 +0200
+
+ Fix abort on documents where the docinfo obj is not a dict
+
+ Bug #97134
+
+ poppler/PDFDoc.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
commit 5641644f485b402cd906d3db73a22a00eb00489b
Author: Albert Astals Cid <aacid(a)kde.org>
Date: Mon Jul 25 00:14:30 2016 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/NEWS new/poppler-0.47.0/NEWS
--- old/poppler-0.46.0/NEWS 2016-07-25 00:03:43.000000000 +0200
+++ new/poppler-0.47.0/NEWS 2016-08-18 22:09:18.000000000 +0200
@@ -1,3 +1,13 @@
+Release 0.47.0
+ core:
+ * Fix abort on documents where the docinfo obj is not a dict. Bug #97134
+ * Check for XRefEntry existing before using it. Bug #97005
+ * Fix memory leak on PDFDoc::setDocInfoStringEntry() with empty string
+ * Don't presume that DocInfo is a dictionary in XRef::createDocInfoIfNoneExists()
+
+ build system:
+ * configure: Work with non gnu greps
+
Release 0.46.0
core:
* cairo: fix bug in setAntialias()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/aclocal.m4 new/poppler-0.47.0/aclocal.m4
--- old/poppler-0.46.0/aclocal.m4 2016-07-25 00:14:27.000000000 +0200
+++ new/poppler-0.47.0/aclocal.m4 2016-08-18 22:16:34.000000000 +0200
@@ -21,7 +21,7 @@
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2015 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -799,7 +799,7 @@
])
# lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2015 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/configure new/poppler-0.47.0/configure
--- old/poppler-0.46.0/configure 2016-07-25 00:14:28.000000000 +0200
+++ new/poppler-0.47.0/configure 2016-08-18 22:16:43.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for poppler 0.46.0.
+# Generated by GNU Autoconf 2.69 for poppler 0.47.0.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=poppler>.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='poppler'
PACKAGE_TARNAME='poppler'
-PACKAGE_VERSION='0.46.0'
-PACKAGE_STRING='poppler 0.46.0'
+PACKAGE_VERSION='0.47.0'
+PACKAGE_STRING='poppler 0.47.0'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=poppler'
PACKAGE_URL=''
@@ -1554,7 +1554,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures poppler 0.46.0 to adapt to many kinds of systems.
+\`configure' configures poppler 0.47.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1629,7 +1629,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of poppler 0.46.0:";;
+ short | recursive ) echo "Configuration of poppler 0.47.0:";;
esac
cat <<\_ACEOF
@@ -1860,7 +1860,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-poppler configure 0.46.0
+poppler configure 0.47.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2554,7 +2554,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by poppler $as_me 0.46.0, which was
+It was created by poppler $as_me 0.47.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3418,7 +3418,7 @@
# Define the identity of the package.
PACKAGE='poppler'
- VERSION='0.46.0'
+ VERSION='0.47.0'
cat >>confdefs.h <<_ACEOF
@@ -18500,7 +18500,7 @@
cat >>confdefs.h <<_ACEOF
-#define POPPLER_VERSION "0.46.0"
+#define POPPLER_VERSION "0.47.0"
_ACEOF
@@ -24191,7 +24191,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt5 moc-qt5" >&5
$as_echo_n "checking for Qt5 moc-qt5... " >&6; }
mocversion=`$MOCQT52 -v 2>&1`
- mocversiongrep=`echo $mocversion | grep "Qt 5\|moc-qt5 5\|moc 5"`
+ mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"`
if test x"$mocversiongrep" != x"$mocversion"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}qtchooser", so it can be a program name with args.
@@ -24289,7 +24289,7 @@
$as_echo_n "checking for qtchooser... " >&6; }
qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2`
mocversion=`$qt5tooldir/moc -v 2>&1`
- mocversiongrep=`echo $mocversion | grep "Qt 5\|moc 5"`
+ mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
if test x"$mocversiongrep" != x"$mocversion"; then
# no valid moc found
enable_poppler_qt5=no;
@@ -25819,11 +25819,11 @@
POPPLER_MAJOR_VERSION=0
-POPPLER_MINOR_VERSION=46
+POPPLER_MINOR_VERSION=47
POPPLER_MICRO_VERSION=0
-POPPLER_VERSION=0.46.0
+POPPLER_VERSION=0.47.0
ac_config_files="$ac_config_files Makefile goo/Makefile fofi/Makefile splash/Makefile poppler/Makefile utils/Makefile glib/Makefile glib/poppler-features.h glib/reference/Makefile glib/reference/version.xml glib/demo/Makefile test/Makefile qt4/Makefile qt4/src/Makefile qt4/tests/Makefile qt4/demos/Makefile qt5/Makefile qt5/src/Makefile qt5/tests/Makefile qt5/demos/Makefile cpp/Makefile cpp/poppler-version.h cpp/tests/Makefile poppler.pc poppler-uninstalled.pc poppler-cairo.pc poppler-cairo-uninstalled.pc poppler-splash.pc poppler-splash-uninstalled.pc poppler-glib.pc poppler-glib-uninstalled.pc poppler-qt4.pc poppler-qt4-uninstalled.pc poppler-qt5.pc poppler-qt5-uninstalled.pc poppler-cpp.pc poppler-cpp-uninstalled.pc"
@@ -26483,7 +26483,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by poppler $as_me 0.46.0, which was
+This file was extended by poppler $as_me 0.47.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -26549,7 +26549,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-poppler config.status 0.46.0
+poppler config.status 0.47.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/configure.ac new/poppler-0.47.0/configure.ac
--- old/poppler-0.46.0/configure.ac 2016-07-25 00:03:53.000000000 +0200
+++ new/poppler-0.47.0/configure.ac 2016-08-18 22:09:31.000000000 +0200
@@ -1,5 +1,5 @@
m4_define([poppler_version_major],[0])
-m4_define([poppler_version_minor],[46])
+m4_define([poppler_version_minor],[47])
m4_define([poppler_version_micro],[0])
m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro])
@@ -779,13 +779,13 @@
AC_CHECK_TOOL(MOCQT52, moc-qt5)
AC_MSG_CHECKING([for Qt5 moc-qt5])
mocversion=`$MOCQT52 -v 2>&1`
- mocversiongrep=`echo $mocversion | grep "Qt 5\|moc-qt5 5\|moc 5"`
+ mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"`
if test x"$mocversiongrep" != x"$mocversion"; then
AC_CHECK_TOOL(QTCHOOSER, qtchooser)
AC_MSG_CHECKING([for qtchooser])
qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2`
mocversion=`$qt5tooldir/moc -v 2>&1`
- mocversiongrep=`echo $mocversion | grep "Qt 5\|moc 5"`
+ mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
if test x"$mocversiongrep" != x"$mocversion"; then
# no valid moc found
enable_poppler_qt5=no;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/cpp/poppler-version.h new/poppler-0.47.0/cpp/poppler-version.h
--- old/poppler-0.46.0/cpp/poppler-version.h 2016-07-25 00:14:34.000000000 +0200
+++ new/poppler-0.47.0/cpp/poppler-version.h 2016-08-18 22:18:35.000000000 +0200
@@ -21,9 +21,9 @@
#include "poppler-global.h"
-#define POPPLER_VERSION "0.46.0"
+#define POPPLER_VERSION "0.47.0"
#define POPPLER_VERSION_MAJOR 0
-#define POPPLER_VERSION_MINOR 46
+#define POPPLER_VERSION_MINOR 47
#define POPPLER_VERSION_MICRO 0
namespace poppler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/glib/reference/html/PopplerDocument.html new/poppler-0.47.0/glib/reference/html/PopplerDocument.html
--- old/poppler-0.46.0/glib/reference/html/PopplerDocument.html 2016-07-25 00:51:46.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/html/PopplerDocument.html 2016-08-18 22:45:28.000000000 +0200
@@ -2107,27 +2107,53 @@
displayed to the user — typically a <a class="link" href="poppler-PopplerAction.html#POPPLER-ACTION-GOTO-DEST:CAPS"><span class="type">POPPLER_ACTION_GOTO_DEST</span></a> or a
<a class="link" href="poppler-PopplerAction.html#POPPLER-ACTION-URI:CAPS"><span class="type">POPPLER_ACTION_URI</span></a>.</p>
<p>Here is a simple example of some code that walks the full index:</p>
-<div class="informalexample"><pre class="programlisting">
-static void
-walk_index (PopplerIndexIter *iter)
-{
- do
- {
- /* Get the the action and do something with it */
- PopplerIndexIter *child = poppler_index_iter_get_child (iter);
- if (child)
- walk_index (child);
- poppler_index_iter_free (child);
- }
- while (poppler_index_iter_next (iter));
-}
-...
-{
- iter = poppler_index_iter_new (document);
- walk_index (iter);
- poppler_index_iter_free (iter);
-}
-</pre></div>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
+<span class="function">walk_index</span> <span class="gtkdoc opt">(</span>PopplerIndexIter <span class="gtkdoc opt">*</span>iter<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ <span class="keyword">do</span>
+ <span class="gtkdoc opt">{</span>
+ <span class="comment">/* Get the the action and do something with it */</span>
+ PopplerIndexIter <span class="gtkdoc opt">*</span>child <span class="gtkdoc opt">=</span> <span class="function"><a href="PopplerDocument.html#poppler-index-iter-get-child">poppler_index_iter_get_child</a></span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">)</span>
+ <span class="function">walk_index</span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="PopplerDocument.html#poppler-index-iter-free">poppler_index_iter_free</a></span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
+ <span class="gtkdoc opt">}</span>
+ <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="PopplerDocument.html#poppler-index-iter-next">poppler_index_iter_next</a></span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">));</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">{</span>
+ iter <span class="gtkdoc opt">=</span> <span class="function"><a href="PopplerDocument.html#poppler-index-iter-new">poppler_index_iter_new</a></span> <span class="gtkdoc opt">(</span>document<span class="gtkdoc opt">);</span>
+ <span class="function">walk_index</span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="PopplerDocument.html#poppler-index-iter-free">poppler_index_iter_free</a></span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
<div class="refsect3">
<a name="poppler-index-iter-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2353,18 +2379,35 @@
will
point to the first font scanned.</p>
<p>Here is a simple example of code to scan fonts in a document</p>
-<div class="informalexample"><pre class="programlisting">
-font_info = poppler_font_info_new (document);
-while (poppler_font_info_scan (font_info, 20, &fonts_iter)) {
- if (!fonts_iter)
- continue; /* No fonts found in these 20 pages */
- do {
- /* Do something with font iter */
- g_print ("Font Name: %s\n", poppler_fonts_iter_get_name (fonts_iter));
- } while (poppler_fonts_iter_next (fonts_iter));
- poppler_fonts_iter_free (fonts_iter);
-}
-</pre></div>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10</pre></td>
+ <td class="listing_code"><pre class="programlisting">font_info <span class="gtkdoc opt">=</span> <span class="function"><a href="PopplerDocument.html#poppler-font-info-new">poppler_font_info_new</a></span> <span class="gtkdoc opt">(</span>document<span class="gtkdoc opt">);</span>
+<span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="PopplerDocument.html#poppler-font-info-scan">poppler_font_info_scan</a></span> <span class="gtkdoc opt">(</span>font_info<span class="gtkdoc opt">,</span> <span class="number">20</span><span class="gtkdoc opt">, &</span>fonts_iter<span class="gtkdoc opt">)) {</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(!</span>fonts_iter<span class="gtkdoc opt">)</span>
+ <span class="keyword">continue</span><span class="gtkdoc opt">;</span> <span class="comment">/* No fonts found in these 20 pages */</span>
+ <span class="keyword">do</span> <span class="gtkdoc opt">{</span>
+ <span class="comment">/* Do something with font iter */</span>
+ <span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">"Font Name: %s</span><span class="gtkdoc esc">\n</span><span class="string">"</span><span class="gtkdoc opt">,</span> <span class="function"><a href="PopplerDocument.html#poppler-fonts-iter-get-name">poppler_fonts_iter_get_name</a></span> <span class="gtkdoc opt">(</span>fonts_iter<span class="gtkdoc opt">));</span>
+ <span class="gtkdoc opt">}</span> <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="PopplerDocument.html#poppler-fonts-iter-next">poppler_fonts_iter_next</a></span> <span class="gtkdoc opt">(</span>fonts_iter<span class="gtkdoc opt">));</span>
+ <span class="function"><a href="PopplerDocument.html#poppler-fonts-iter-free">poppler_fonts_iter_free</a></span> <span class="gtkdoc opt">(</span>fonts_iter<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
<div class="refsect3">
<a name="poppler-font-info-scan.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/glib/reference/html/PopplerStructureElement.html new/poppler-0.47.0/glib/reference/html/PopplerStructureElement.html
--- old/poppler-0.46.0/glib/reference/html/PopplerStructureElement.html 2016-07-25 00:51:46.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/html/PopplerStructureElement.html 2016-08-18 22:45:28.000000000 +0200
@@ -715,25 +715,49 @@
the document structure and its contents. Each node in the tree contains
a <a class="link" href="PopplerStructureElement.html" title="PopplerStructureElement"><span class="type">PopplerStructureElement</span></a>.</p>
<p>Here is a simple example that walks the whole tree:</p>
-<div class="informalexample"><pre class="programlisting">
-static void
-walk_structure (PopplerStructureElementIter *iter)
-{
- do {
- /* Get the element and do something with it */
- PopplerStructureElementIter *child = poppler_structure_element_iter_get_child (iter);
- if (child)
- walk_structure (child);
- poppler_structure_element_iter_free (child);
- } while (poppler_structure_element_iter_next (iter));
-}
-...
-{
- iter = poppler_structure_element_iter_new (document);
- walk_structure (iter);
- poppler_structure_element_iter_free (iter);
-}
-</pre></div>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
+<span class="function">walk_structure</span> <span class="gtkdoc opt">(</span>PopplerStructureElementIter <span class="gtkdoc opt">*</span>iter<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ <span class="keyword">do</span> <span class="gtkdoc opt">{</span>
+ <span class="comment">/* Get the element and do something with it */</span>
+ PopplerStructureElementIter <span class="gtkdoc opt">*</span>child <span class="gtkdoc opt">=</span> <span class="function"><a href="PopplerStructureElement.html#poppler-structure-element-iter-get-child">poppler_structure_element_iter_get_child</a></span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">)</span>
+ <span class="function">walk_structure</span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="PopplerStructureElement.html#poppler-structure-element-iter-free">poppler_structure_element_iter_free</a></span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
+ <span class="gtkdoc opt">}</span> <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="PopplerStructureElement.html#poppler-structure-element-iter-next">poppler_structure_element_iter_next</a></span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">));</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">{</span>
+ iter <span class="gtkdoc opt">=</span> <span class="function"><a href="PopplerStructureElement.html#poppler-structure-element-iter-new">poppler_structure_element_iter_new</a></span> <span class="gtkdoc opt">(</span>document<span class="gtkdoc opt">);</span>
+ <span class="function">walk_structure</span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="PopplerStructureElement.html#poppler-structure-element-iter-free">poppler_structure_element_iter_free</a></span> <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
<div class="refsect3">
<a name="poppler-structure-element-iter-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1280,15 +1304,29 @@
structures. Each item in the list is a piece of text which share the same
attributes, plus its attributes. The following example shows how to
obtain and free the text spans of an element:</p>
-<div class="informalexample"><pre class="programlisting">
-guint i, n_spans;
-PopplerTextSpan **text_spans =
- poppler_structure_element_get_text_spans (element, &n_spans);
-/* Use the text spans */
-for (i = 0; i < n_spans; i++)
- poppler_text_span_free (text_spans[i]);
-g_free (text_spans);
-</pre></div>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7</pre></td>
+ <td class="listing_code"><pre class="programlisting">guint i<span class="gtkdoc opt">,</span> n_spans<span class="gtkdoc opt">;</span>
+PopplerTextSpan <span class="gtkdoc opt">**</span>text_spans <span class="gtkdoc opt">=</span>
+ <span class="function"><a href="PopplerStructureElement.html#poppler-structure-element-get-text-spans">poppler_structure_element_get_text_spans</a></span> <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">, &</span>n_spans<span class="gtkdoc opt">);</span>
+<span class="comment">/* Use the text spans */</span>
+<span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt"><</span> n_spans<span class="gtkdoc opt">;</span> i<span class="gtkdoc opt">++)</span>
+ <span class="function"><a href="PopplerStructureElement.html#poppler-text-span-free">poppler_text_span_free</a></span> <span class="gtkdoc opt">(</span>text_spans<span class="gtkdoc opt">[</span>i<span class="gtkdoc opt">]);</span>
+<span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free">g_free</a></span> <span class="gtkdoc opt">(</span>text_spans<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
<div class="refsect3">
<a name="poppler-structure-element-get-text-spans.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/glib/reference/html/index.html new/poppler-0.47.0/glib/reference/html/index.html
--- old/poppler-0.46.0/glib/reference/html/index.html 2016-07-25 00:51:46.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/html/index.html 2016-08-18 22:45:28.000000000 +0200
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Poppler Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for Poppler 0.46.0
+ for Poppler 0.47.0
</p></div>
</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/glib/reference/html/poppler-Version-and-Features-Information.html new/poppler-0.47.0/glib/reference/html/poppler-Version-and-Features-Information.html
--- old/poppler-0.46.0/glib/reference/html/poppler-Version-and-Features-Information.html 2016-07-25 00:51:46.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/html/poppler-Version-and-Features-Information.html 2016-08-18 22:45:28.000000000 +0200
@@ -189,7 +189,7 @@
<hr>
<div class="refsect2">
<a name="POPPLER-MINOR-VERSION:CAPS"></a><h3>POPPLER_MINOR_VERSION</h3>
-<pre class="programlisting">#define POPPLER_MINOR_VERSION (46)
+<pre class="programlisting">#define POPPLER_MINOR_VERSION (47)
</pre>
<p>The major version number of the poppler header files (e.g. in poppler version
0.1.2 this is 1.)</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/glib/reference/version.xml new/poppler-0.47.0/glib/reference/version.xml
--- old/poppler-0.46.0/glib/reference/version.xml 2016-07-25 00:14:34.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/version.xml 2016-08-18 22:18:34.000000000 +0200
@@ -1 +1 @@
-0.46.0
+0.47.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/poppler/Hints.cc new/poppler-0.47.0/poppler/Hints.cc
--- old/poppler-0.46.0/poppler/Hints.cc 2016-05-31 18:40:39.000000000 +0200
+++ new/poppler-0.47.0/poppler/Hints.cc 2016-07-30 17:47:46.000000000 +0200
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright 2010, 2012 Hib Eris <hib(a)hiberis.nl>
-// Copyright 2010, 2011, 2013, 2014 Albert Astals Cid <aacid(a)kde.org>
+// Copyright 2010, 2011, 2013, 2014, 2016 Albert Astals Cid <aacid(a)kde.org>
// Copyright 2010, 2013 Pino Toscano <pino(a)kde.org>
// Copyright 2013 Adrian Johnson <ajohnson(a)redneon.com>
// Copyright 2014 Fabio D'Urso <fabiodurso(a)hotmail.it>
@@ -43,7 +43,13 @@
pageObjectFirst);
pageObjectFirst = 0;
}
- pageOffsetFirst = xref->getEntry(pageObjectFirst)->offset;
+ XRefEntry *pageObjectFirstXRefEntry = xref->getEntry(pageObjectFirst);
+ if (!pageObjectFirstXRefEntry) {
+ error(errSyntaxWarning, -1, "No XRef entry for first page object");
+ pageOffsetFirst = 0;
+ } else {
+ pageOffsetFirst = pageObjectFirstXRefEntry->offset;
+ }
if (nPages >= INT_MAX / (int)sizeof(Guint)) {
error(errSyntaxWarning, -1, "Invalid number of pages ({0:d}) for hints table", nPages);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/poppler/PDFDoc.cc new/poppler-0.47.0/poppler/PDFDoc.cc
--- old/poppler-0.46.0/poppler/PDFDoc.cc 2016-07-05 23:37:01.000000000 +0200
+++ new/poppler-0.47.0/poppler/PDFDoc.cc 2016-08-01 23:05:20.000000000 +0200
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005, 2006, 2008 Brad Hards <bradh(a)frogmouth.net>
-// Copyright (C) 2005, 2007-2009, 2011-2015 Albert Astals Cid <aacid(a)kde.org>
+// Copyright (C) 2005, 2007-2009, 2011-2016 Albert Astals Cid <aacid(a)kde.org>
// Copyright (C) 2008 Julien Rebetez <julienr(a)svn.gnome.org>
// Copyright (C) 2008, 2010 Pino Toscano <pino(a)kde.org>
// Copyright (C) 2008, 2010, 2011 Carlos Garcia Campos <carlosgc(a)gnome.org>
@@ -612,6 +612,9 @@
void PDFDoc::setDocInfoStringEntry(const char *key, GooString *value)
{
GBool removeEntry = !value || value->getLength() == 0;
+ if (removeEntry) {
+ delete value;
+ }
Object infoObj;
getDocInfo(&infoObj);
@@ -646,7 +649,7 @@
GooString *PDFDoc::getDocInfoStringEntry(const char *key) {
Object infoObj;
getDocInfo(&infoObj);
- if (infoObj.isNull()) {
+ if (!infoObj.isDict()) {
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.46.0/poppler/XRef.cc new/poppler-0.47.0/poppler/XRef.cc
--- old/poppler-0.46.0/poppler/XRef.cc 2016-07-05 23:37:01.000000000 +0200
+++ new/poppler-0.47.0/poppler/XRef.cc 2016-08-01 23:05:47.000000000 +0200
@@ -1295,8 +1295,12 @@
Object *XRef::createDocInfoIfNoneExists(Object *obj) {
getDocInfo(obj);
- if (!obj->isNull()) {
+ if (obj->isDict()) {
return obj;
+ } else if (!obj->isNull()) {
+ // DocInfo exists, but isn't a dictionary (doesn't comply with the PDF reference)
+ obj->free();
+ removeDocInfo();
}
obj->initDict(this);
1
0
Hello community,
here is the log from the commit of package graphviz for openSUSE:Factory checked in at 2016-08-26 23:12:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/graphviz (Old)
and /work/SRC/openSUSE:Factory/.graphviz.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "graphviz"
Changes:
--------
--- /work/SRC/openSUSE:Factory/graphviz/graphviz-plugins.changes 2016-06-03 16:26:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.graphviz.new/graphviz-plugins.changes 2016-08-26 23:12:54.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Aug 18 18:41:05 UTC 2016 - zaitor(a)opensuse.org
+
+- "Lower" xorg-x11-fonts Requires to Recommends.
+
+-------------------------------------------------------------------
graphviz.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ graphviz-plugins.spec ++++++
--- /var/tmp/diff_new_pack.z1dQ97/_old 2016-08-26 23:12:56.000000000 +0200
+++ /var/tmp/diff_new_pack.z1dQ97/_new 2016-08-26 23:12:56.000000000 +0200
@@ -113,7 +113,7 @@
Summary: Graphviz plugins that use gtk/GNOME
Group: Productivity/Graphics/Visualization/Graph
Requires(post): graphviz = %{version}
-Requires: xorg-x11-fonts
+Recommends: xorg-x11-fonts
Provides: graphviz_plugin = %{version}
%description -n graphviz-gnome
graphviz.spec: same change
1
0
Hello community,
here is the log from the commit of package mdds-1_2 for openSUSE:Factory checked in at 2016-08-26 23:12:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mdds-1_2 (Old)
and /work/SRC/openSUSE:Factory/.mdds-1_2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mdds-1_2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mdds-1_2/mdds-1_2.changes 2016-06-14 23:04:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mdds-1_2.new/mdds-1_2.changes 2016-08-26 23:12:45.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Aug 19 19:01:17 UTC 2016 - tchvatal(a)suse.com
+
+- Version update to 1.2.1:
+ * Few small bugfixes
+
+-------------------------------------------------------------------
Old:
----
mdds-1.2.0.tar.bz2
New:
----
mdds-1.2.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mdds-1_2.spec ++++++
--- /var/tmp/diff_new_pack.GXOpGF/_old 2016-08-26 23:12:46.000000000 +0200
+++ /var/tmp/diff_new_pack.GXOpGF/_new 2016-08-26 23:12:46.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package mdds-1_0
+# spec file for package mdds-1_2
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
@@ -21,7 +21,7 @@
%define _apiver 1.2
%define _oname mdds
Name: %{_oname}-1_2
-Version: 1.2.0
+Version: 1.2.1
Release: 0
Summary: A collection of multi-dimensional data structure and indexing algorithm
License: MIT
++++++ mdds-1.2.0.tar.bz2 -> mdds-1.2.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/CHANGELOG new/mdds-1.2.1/CHANGELOG
--- old/mdds-1.2.0/CHANGELOG 2016-05-03 02:41:57.000000000 +0200
+++ new/mdds-1.2.1/CHANGELOG 2016-06-18 20:50:29.000000000 +0200
@@ -1,3 +1,19 @@
+mdds 1.2.1 (not yet released)
+
+* multi_type_vector
+
+ * added size() method to the element block type, which returns the
+ actual size of the element block, instead of the cached size value
+ stored in the parent structure that stores the element block.
+
+ * fixed a double-deletion bug in the swap() method which would
+ triggered when used with a managed element block.
+
+* mtv::collection
+
+ * fixed collection iterator's get() method to properly return values
+ from the boolean element block.
+
mdds 1.2.0
* packed_trie_map
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/README.md new/mdds-1.2.1/README.md
--- old/mdds-1.2.0/README.md 2016-05-03 02:41:57.000000000 +0200
+++ new/mdds-1.2.1/README.md 2016-05-12 02:46:57.000000000 +0200
@@ -102,6 +102,7 @@
| Version | API Version | Release Date | Download | Check Sum | File Size (bytes) |
|---------|-------------|--------------|----------|-----------|-------------------|
+| 1.2.0 | 1.2 | 2016-05-11 | [mdds-1.2.0.tar.bz2](http://kohei.us/files/mdds/src/mdds-1.2.0.tar.bz2) | sha256sum: f44fd0635de94c7d490f9a65f74b5e55860d7bdd507951428294f9690fda45b6 | 284962 |
| 1.1.0 | 1.0 | 2016-02-10 | [mdds-1.1.0.tar.bz2](http://kohei.us/files/mdds/src/mdds-1.1.0.tar.bz2) | sha256sum: 4253ab93fe8bb579321a50e247f1f800191ab99fe2d8c6c181741b8bd3fb161f | 258691 |
| 1.0.0 | 1.0 | 2015-10-06 | [mdds_1.0.0.tar.bz2](http://kohei.us/files/mdds/src/mdds_1.0.0.tar.bz2) | sha256sum: ef8abc1236b54c7ca16ae1ee38abfb9cdbc5d1e6a2427c65b92b8c1003e3bf56 | 166619 |
| 0.12.1 || 2015-06-11 | [mdds_0.12.1.tar.bz2](http://kohei.us/files/mdds/src/mdds_0.12.1.tar.bz2) | md5sum: ef2560ed5416652a7fe195305b14cebe<br/>sha1sum: e7469349f8d0c65545896fe553918f3ea93bd84d | - |
@@ -140,8 +141,8 @@
API Incompatibility Notes
=========================
-1.2 (not yet released)
-----------------------
+1.2
+---
### trie_map / packed_trie_map
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/configure new/mdds-1.2.1/configure
--- old/mdds-1.2.0/configure 2016-05-12 02:10:36.000000000 +0200
+++ new/mdds-1.2.1/configure 2016-06-08 04:09:51.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mdds 1.2.0.
+# Generated by GNU Autoconf 2.69 for mdds 1.2.1.
#
# Report bugs to <kohei.yoshida(a)gmail.com>.
#
@@ -579,8 +579,8 @@
# Identity of this package.
PACKAGE_NAME='mdds'
PACKAGE_TARNAME='mdds'
-PACKAGE_VERSION='1.2.0'
-PACKAGE_STRING='mdds 1.2.0'
+PACKAGE_VERSION='1.2.1'
+PACKAGE_STRING='mdds 1.2.1'
PACKAGE_BUGREPORT='kohei.yoshida(a)gmail.com'
PACKAGE_URL=''
@@ -1246,7 +1246,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mdds 1.2.0 to adapt to many kinds of systems.
+\`configure' configures mdds 1.2.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1312,7 +1312,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mdds 1.2.0:";;
+ short | recursive ) echo "Configuration of mdds 1.2.1:";;
esac
cat <<\_ACEOF
@@ -1411,7 +1411,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-mdds configure 1.2.0
+mdds configure 1.2.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1466,7 +1466,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mdds $as_me 1.2.0, which was
+It was created by mdds $as_me 1.2.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2329,7 +2329,7 @@
# Define the identity of the package.
PACKAGE='mdds'
- VERSION='1.2.0'
+ VERSION='1.2.1'
cat >>confdefs.h <<_ACEOF
@@ -2445,7 +2445,7 @@
-VERSION=1.2.0
+VERSION=1.2.1
API_VERSION=1.2
@@ -3931,7 +3931,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 1.2.0, which was
+This file was extended by mdds $as_me 1.2.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3988,7 +3988,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 1.2.0
+mdds config.status 1.2.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/configure.ac new/mdds-1.2.1/configure.ac
--- old/mdds-1.2.0/configure.ac 2016-04-23 16:25:59.000000000 +0200
+++ new/mdds-1.2.1/configure.ac 2016-06-08 04:08:46.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(mdds, 1.2.0, kohei.yoshida(a)gmail.com)
+AC_INIT(mdds, 1.2.1, kohei.yoshida(a)gmail.com)
AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects])
AM_MAINTAINER_MODE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/include/mdds/multi_type_vector/collection.hpp new/mdds-1.2.1/include/mdds/multi_type_vector/collection.hpp
--- old/mdds-1.2.0/include/mdds/multi_type_vector/collection.hpp 2016-04-03 05:02:47.000000000 +0200
+++ new/mdds-1.2.1/include/mdds/multi_type_vector/collection.hpp 2016-06-08 04:04:47.000000000 +0200
@@ -79,7 +79,7 @@
template<typename _Blk>
typename _Blk::value_type get() const
{
- return _Blk::at(*__position.first->data, __position.second);
+ return _Blk::get_value(*__position.first->data, __position.second);
}
private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/include/mdds/multi_type_vector_custom_func1.hpp new/mdds-1.2.1/include/mdds/multi_type_vector_custom_func1.hpp
--- old/mdds-1.2.0/include/mdds/multi_type_vector_custom_func1.hpp 2015-07-02 22:12:15.000000000 +0200
+++ new/mdds-1.2.1/include/mdds/multi_type_vector_custom_func1.hpp 2016-06-18 05:24:32.000000000 +0200
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * Copyright (c) 2013 Kohei Yoshida
+ * Copyright (c) 2013-2016 Kohei Yoshida
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
@@ -25,8 +25,8 @@
*
************************************************************************/
-#ifndef MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC1_HPP
-#define MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC1_HPP
+#ifndef INCLUDED_MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC1_HPP
+#define INCLUDED_MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC1_HPP
#include "multi_type_vector_types.hpp"
#include "multi_type_vector_trait.hpp"
@@ -231,6 +231,17 @@
element_block_func::shrink_to_fit(block);
}
}
+
+ static size_t size(const base_element_block& block)
+ {
+ switch (get_block_type(block))
+ {
+ case _Block::block_type:
+ return _Block::size(block);
+ default:
+ return element_block_func::size(block);
+ }
+ }
};
}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/include/mdds/multi_type_vector_custom_func2.hpp new/mdds-1.2.1/include/mdds/multi_type_vector_custom_func2.hpp
--- old/mdds-1.2.0/include/mdds/multi_type_vector_custom_func2.hpp 2015-07-02 22:12:15.000000000 +0200
+++ new/mdds-1.2.1/include/mdds/multi_type_vector_custom_func2.hpp 2016-06-18 05:24:32.000000000 +0200
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * Copyright (c) 2013 Kohei Yoshida
+ * Copyright (c) 2013-2016 Kohei Yoshida
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
@@ -25,8 +25,8 @@
*
************************************************************************/
-#ifndef MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC2_HPP
-#define MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC2_HPP
+#ifndef INCLUDED_MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC2_HPP
+#define INCLUDED_MDDS_MULTI_TYPE_VECTOR_CUSTOM_FUNC2_HPP
#include "multi_type_vector_types.hpp"
#include "multi_type_vector_trait.hpp"
@@ -281,6 +281,19 @@
element_block_func::shrink_to_fit(block);
}
}
+
+ static size_t size(const base_element_block& block)
+ {
+ switch (get_block_type(block))
+ {
+ case _Block1::block_type:
+ return _Block1::size(block);
+ case _Block2::block_type:
+ return _Block2::size(block);
+ default:
+ return element_block_func::size(block);
+ }
+ }
};
}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/include/mdds/multi_type_vector_custom_func3.hpp new/mdds-1.2.1/include/mdds/multi_type_vector_custom_func3.hpp
--- old/mdds-1.2.0/include/mdds/multi_type_vector_custom_func3.hpp 2015-07-02 22:12:15.000000000 +0200
+++ new/mdds-1.2.1/include/mdds/multi_type_vector_custom_func3.hpp 2016-06-18 05:24:32.000000000 +0200
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * Copyright (c) 2013 Kohei Yoshida
+ * Copyright (c) 2013-2016 Kohei Yoshida
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
@@ -25,8 +25,8 @@
*
************************************************************************/
-#ifndef MULTI_TYPE_VECTOR_CUSTOM_FUNC3_HPP
-#define MULTI_TYPE_VECTOR_CUSTOM_FUNC3_HPP
+#ifndef INCLUDED_MULTI_TYPE_VECTOR_CUSTOM_FUNC3_HPP
+#define INCLUDED_MULTI_TYPE_VECTOR_CUSTOM_FUNC3_HPP
#include "multi_type_vector_types.hpp"
#include "multi_type_vector_trait.hpp"
@@ -328,6 +328,21 @@
element_block_func::shrink_to_fit(block);
}
}
+
+ static size_t size(const base_element_block& block)
+ {
+ switch (get_block_type(block))
+ {
+ case _Block1::block_type:
+ return _Block1::size(block);
+ case _Block2::block_type:
+ return _Block2::size(block);
+ case _Block3::block_type:
+ return _Block3::size(block);
+ default:
+ return element_block_func::size(block);
+ }
+ }
};
}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/include/mdds/multi_type_vector_def.inl new/mdds-1.2.1/include/mdds/multi_type_vector_def.inl
--- old/mdds-1.2.0/include/mdds/multi_type_vector_def.inl 2016-04-20 04:25:11.000000000 +0200
+++ new/mdds-1.2.1/include/mdds/multi_type_vector_def.inl 2016-06-18 05:30:40.000000000 +0200
@@ -2308,7 +2308,10 @@
if (src_tail_len == 0)
{
- // the whole block needs to be replaced.
+ // the whole block needs to be replaced. Delete the block, but
+ // don't delete the managed elements the block contains since they
+ // have been transferred over to the destination block.
+ element_block_func::resize_block(*blk_src->mp_data, 0);
delete_block(blk_src);
m_blocks.erase(m_blocks.begin()+block_index);
}
@@ -4435,8 +4438,16 @@
element_category_type cat = mtv::element_type_empty;
if (blk->mp_data)
+ {
cat = mtv::get_block_type(*blk->mp_data);
+ if (element_block_func::size(*blk->mp_data) != blk->m_size)
+ {
+ cerr << "block size cache and the actual element block size differ!" << endl;
+ return false;
+ }
+ }
+
if (cat_prev == cat)
{
cerr << "Two adjacent blocks should never be of the same type." << endl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/include/mdds/multi_type_vector_trait.hpp new/mdds-1.2.1/include/mdds/multi_type_vector_trait.hpp
--- old/mdds-1.2.0/include/mdds/multi_type_vector_trait.hpp 2015-07-02 22:12:15.000000000 +0200
+++ new/mdds-1.2.1/include/mdds/multi_type_vector_trait.hpp 2016-06-18 05:24:32.000000000 +0200
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * Copyright (c) 2012 Kohei Yoshida
+ * Copyright (c) 2012-2016 Kohei Yoshida
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
@@ -25,8 +25,8 @@
*
************************************************************************/
-#ifndef __MDDS_MULTI_TYPE_VECTOR_TRAIT_HPP__
-#define __MDDS_MULTI_TYPE_VECTOR_TRAIT_HPP__
+#ifndef INCLUDED_MDDS_MULTI_TYPE_VECTOR_TRAIT_HPP
+#define INCLUDED_MDDS_MULTI_TYPE_VECTOR_TRAIT_HPP
#include "multi_type_vector_types.hpp"
@@ -76,6 +76,8 @@
inline static void overwrite_values(base_element_block& block, size_t pos, size_t len);
inline static void shrink_to_fit(base_element_block& block);
+
+ inline static size_t size(const base_element_block& block);
};
base_element_block* element_block_func_base::create_new_block(element_t type, size_t init_size)
@@ -652,6 +654,37 @@
}
}
+size_t element_block_func_base::size(const base_element_block& block)
+{
+ switch (get_block_type(block))
+ {
+ case element_type_numeric:
+ return numeric_element_block::size(block);
+ case element_type_string:
+ return string_element_block::size(block);
+ case element_type_short:
+ return short_element_block::size(block);
+ case element_type_ushort:
+ return ushort_element_block::size(block);
+ case element_type_int:
+ return int_element_block::size(block);
+ case element_type_uint:
+ return uint_element_block::size(block);
+ case element_type_long:
+ return long_element_block::size(block);
+ case element_type_ulong:
+ return ulong_element_block::size(block);
+ case element_type_boolean:
+ return boolean_element_block::size(block);
+ case element_type_char:
+ return char_element_block::size(block);
+ case element_type_uchar:
+ return uchar_element_block::size(block);
+ default:
+ throw general_error("size: failed to print a block of unknown type.");
+ }
+}
+
/**
* Default cell block function definitions. Implementation can use this if
* it only uses the default block types implemented by the library.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/include/mdds/multi_type_vector_types.hpp new/mdds-1.2.1/include/mdds/multi_type_vector_types.hpp
--- old/mdds-1.2.0/include/mdds/multi_type_vector_types.hpp 2016-01-27 00:04:24.000000000 +0100
+++ new/mdds-1.2.1/include/mdds/multi_type_vector_types.hpp 2016-06-18 05:24:32.000000000 +0200
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * Copyright (c) 2012-2014 Kohei Yoshida
+ * Copyright (c) 2012-2016 Kohei Yoshida
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
@@ -151,6 +151,11 @@
return get(block).m_array.at(pos);
}
+ static typename store_type::size_type size(const base_element_block& block)
+ {
+ return get(block).m_array.size();
+ }
+
static iterator begin(base_element_block& block)
{
return get(block).m_array.begin();
@@ -227,6 +232,11 @@
val = get(blk).m_array[pos];
}
+ static value_type get_value(const base_element_block& blk, size_t pos)
+ {
+ return get(blk).m_array[pos];
+ }
+
static void append_value(base_element_block& blk, const _Data& val)
{
get(blk).m_array.push_back(val);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/src/multi_type_vector_test_collection.cpp new/mdds-1.2.1/src/multi_type_vector_test_collection.cpp
--- old/mdds-1.2.0/src/multi_type_vector_test_collection.cpp 2016-04-03 05:03:28.000000000 +0200
+++ new/mdds-1.2.1/src/multi_type_vector_test_collection.cpp 2016-06-08 04:07:50.000000000 +0200
@@ -375,6 +375,32 @@
catch (const invalid_arg_error&) {}
}
+void mtv_test_boolean_block()
+{
+ stack_printer __stack_printer__("::mtv_test_boolean_block");
+
+ vector<mtv_type> vectors;
+ vectors.reserve(2);
+ vectors.emplace_back(1, true);
+ vectors.emplace_back(1, false);
+
+ cols_type collection(vectors.begin(), vectors.end());
+
+ auto it = collection.begin();
+ assert(it->type == mtv::element_type_boolean);
+ assert(it->index == 0);
+ assert(it->position == 0);
+ assert(it->get<mtv::boolean_element_block>() == true);
+
+ ++it;
+ assert(it->type == mtv::element_type_boolean);
+ assert(it->index == 1);
+ assert(it->position == 0);
+ assert(it->get<mtv::boolean_element_block>() == false);
+
+ assert(++it == collection.end());
+}
+
int main (int argc, char **argv)
{
try
@@ -388,6 +414,7 @@
mtv_test_sub_element_ranges();
mtv_test_sub_element_ranges_invalid();
mtv_test_sub_collection_ranges_invalid();
+ mtv_test_boolean_block();
}
catch (const std::exception& e)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdds-1.2.0/src/multi_type_vector_test_custom.cpp new/mdds-1.2.1/src/multi_type_vector_test_custom.cpp
--- old/mdds-1.2.0/src/multi_type_vector_test_custom.cpp 2015-07-08 02:57:25.000000000 +0200
+++ new/mdds-1.2.1/src/multi_type_vector_test_custom.cpp 2016-06-18 20:37:34.000000000 +0200
@@ -1549,6 +1549,35 @@
assert(db2.check_block_integrity());
}
+void mtv_test_swap_2()
+{
+ stack_printer __stack_printer__("::mtv_test_swap_2");
+ mtv3_type db1(3), db2(3);
+
+ db1.set(0, new muser_cell(1.1));
+ db1.set(1, new muser_cell(1.2));
+
+ db2.set(0, 1.2);
+ db2.set(1, std::string("foo"));
+
+ // Repeat the same swap twice.
+ db1.swap(0, 1, db2, 0);
+ assert(db1.check_block_integrity());
+ assert(db2.check_block_integrity());
+ assert(db2.get<muser_cell*>(0)->value == 1.1);
+ assert(db2.get<muser_cell*>(1)->value == 1.2);
+ assert(db1.get<double>(0) == 1.2);
+ assert(db1.get<std::string>(1) == "foo");
+
+ db1.swap(0, 1, db2, 0);
+ assert(db1.check_block_integrity());
+ assert(db2.check_block_integrity());
+ assert(db1.get<muser_cell*>(0)->value == 1.1);
+ assert(db1.get<muser_cell*>(1)->value == 1.2);
+ assert(db2.get<double>(0) == 1.2);
+ assert(db2.get<std::string>(1) == "foo");
+}
+
void mtv_test_custom_block_func3()
{
stack_printer __stack_printer__("::mtv_test_custom_block_func3");
@@ -1677,6 +1706,7 @@
mtv_test_custom_block_func1();
mtv_test_transfer();
mtv_test_swap();
+ mtv_test_swap_2();
mtv_test_custom_block_func3();
mtv_test_release();
mtv_test_construction_with_array();
1
0
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2016-08-26 23:12:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2016-08-03 11:37:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2016-08-26 23:12:37.000000000 +0200
@@ -1,0 +2,7 @@
+Wed Aug 10 17:10:41 CEST 2016 - ma(a)suse.de
+
+- Report numeric curl error if code is unrecognized (bsc#992302)
+- multicurl: propagate proxy settings stored in repo url (bsc#933839)
+- version 16.2.2 (0)
+
+-------------------------------------------------------------------
Old:
----
libzypp-16.2.1.tar.bz2
New:
----
libzypp-16.2.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.IhA0n2/_old 2016-08-26 23:12:38.000000000 +0200
+++ /var/tmp/diff_new_pack.IhA0n2/_new 2016-08-26 23:12:38.000000000 +0200
@@ -19,7 +19,7 @@
%define force_gcc_46 0
Name: libzypp
-Version: 16.2.1
+Version: 16.2.2
Release: 0
Url: git://gitorious.org/opensuse/libzypp.git
Summary: Package, Patch, Pattern, and Product Management
++++++ libzypp-16.2.1.tar.bz2 -> libzypp-16.2.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.2.1/VERSION.cmake new/libzypp-16.2.2/VERSION.cmake
--- old/libzypp-16.2.1/VERSION.cmake 2016-07-21 13:13:04.000000000 +0200
+++ new/libzypp-16.2.2/VERSION.cmake 2016-08-10 17:15:13.000000000 +0200
@@ -61,8 +61,8 @@
SET(LIBZYPP_MAJOR "16")
SET(LIBZYPP_COMPATMINOR "0")
SET(LIBZYPP_MINOR "2")
-SET(LIBZYPP_PATCH "1")
+SET(LIBZYPP_PATCH "2")
#
-# LAST RELEASED: 16.2.1 (0)
+# LAST RELEASED: 16.2.2 (0)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.2.1/package/libzypp.changes new/libzypp-16.2.2/package/libzypp.changes
--- old/libzypp-16.2.1/package/libzypp.changes 2016-07-21 13:13:04.000000000 +0200
+++ new/libzypp-16.2.2/package/libzypp.changes 2016-08-10 17:15:13.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Wed Aug 10 17:10:41 CEST 2016 - ma(a)suse.de
+
+- Report numeric curl error if code is unrecognized (bsc#992302)
+- multicurl: propagate proxy settings stored in repo url (bsc#933839)
+- version 16.2.2 (0)
+
+-------------------------------------------------------------------
Thu Jul 21 13:09:33 CEST 2016 - ma(a)suse.de
- Rebuild .solv-files not matching the parsers LIBSOLV_TOOLVERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.2.1/zypp/Product.h new/libzypp-16.2.2/zypp/Product.h
--- old/libzypp-16.2.1/zypp/Product.h 2016-07-18 16:41:07.000000000 +0200
+++ new/libzypp-16.2.2/zypp/Product.h 2016-08-10 13:01:08.000000000 +0200
@@ -43,7 +43,7 @@
*/
sat::Solvable referencePackage() const;
- /** For installed products the name of the coddesponding
+ /** For installed products the name of the corresponding
* \c /etc/products.d entry.
.*/
std::string referenceFilename() const;
@@ -157,7 +157,7 @@
/***/
class UrlList;
- /** Rerieve urls flagged with \c key_r for this product.
+ /** Retrieve URLs flagged with \c key_r for this product.
*
* This is the most common interface. There are convenience methods for
* wellknown flags like \c "releasenotes", \c "register", \c "updateurls",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.2.1/zypp/base/Xml.h new/libzypp-16.2.2/zypp/base/Xml.h
--- old/libzypp-16.2.1/zypp/base/Xml.h 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.2/zypp/base/Xml.h 2016-08-12 18:13:05.000000000 +0200
@@ -112,24 +112,46 @@
/** Dtor wrting end tag */
~Node()
{
- if ( _name.empty() )
- _out << "-->";
- else
+ if ( !_name.empty() )
{
- if ( _hasContent )
- _out << "</" << _name << ">";
+ if ( isComment() )
+ _out << "-->";
else
- _out << "/>";
+ {
+ if ( _hasContent )
+ _out << "</" << _name << ">";
+ else
+ _out << "/>";
+ }
}
}
+ /** Exception type thrown if attributes are added to a closed start node. */
+ struct HasContentException{};
+
+ /** Add additional attributes (requires OptionalContentType)
+ * \throw HasContentException If start node is already closed
+ */
+ Node & addAttr( const std::initializer_list<Attr> & attrs_r = {} )
+ {
+ if ( _hasContent )
+ throw HasContentException();
+ printAttr( attrs_r );
+ return *this;
+ }
+
+ /** \overload for one */
+ Node & addAttr( const Attr & attr_r )
+ { return addAttr( { attr_r } ); }
+
+
/** Return the output stream */
std::ostream & operator*()
{
if ( ! _hasContent )
{
_hasContent = true;
- if ( _name.empty() )
+ if ( isComment() )
_out << "|";
else
_out << ">";
@@ -143,17 +165,26 @@
if ( _name.empty() || _name[0] == '!' )
{
_out << "<!--" << _name;
- _name.clear();
+ _name = "!"; // a comment
}
else
_out << "<" << _name;
- for ( const auto & pair : attrs_r )
- _out << " " << pair.first << "=\"" << xml::escape( pair.second ) << "\"";
+ printAttr( attrs_r );
- if ( ! _name.empty() && _hasContent )
+ if ( isComment() && _hasContent )
_out << ">";
}
+
+ void printAttr( const std::initializer_list<Attr> & attrs_r )
+ {
+ for ( const auto & pair : attrs_r )
+ _out << " " << pair.first << "=\"" << xml::escape( pair.second ) << "\"";
+ }
+
+ bool isComment() const
+ { return( _name == "!" ); }
+
private:
std::ostream & _out;
std::string _name;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.2.1/zypp/media/MediaCurl.cc new/libzypp-16.2.2/zypp/media/MediaCurl.cc
--- old/libzypp-16.2.1/zypp/media/MediaCurl.cc 2016-03-01 12:20:48.000000000 +0100
+++ new/libzypp-16.2.2/zypp/media/MediaCurl.cc 2016-08-10 13:01:08.000000000 +0200
@@ -1062,7 +1062,7 @@
break;
case CURLE_SSL_PEER_CERTIFICATE:
default:
- err = "Unrecognized error";
+ err = "Curl error " + str::numstring( code );
break;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.2.1/zypp/media/MediaMultiCurl.cc new/libzypp-16.2.2/zypp/media/MediaMultiCurl.cc
--- old/libzypp-16.2.1/zypp/media/MediaMultiCurl.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.2/zypp/media/MediaMultiCurl.cc 2016-07-27 12:05:04.000000000 +0200
@@ -1476,6 +1476,22 @@
DBG << "done: " << PathInfo(dest) << endl;
}
+///////////////////////////////////////////////////////////////////
+namespace {
+ // bsc#933839: propagate proxy settings passed in the repo URL
+ inline Url propagateQueryParams( Url url_r, const Url & template_r )
+ {
+ for ( std::string param : { "proxy", "proxyport", "proxyuser", "proxypass"} )
+ {
+ const std::string & value( template_r.getQueryParam( param ) );
+ if ( ! value.empty() )
+ url_r.setQueryParam( param, value );
+ }
+ return url_r;
+ }
+}
+///////////////////////////////////////////////////////////////////
+
void MediaMultiCurl::multifetch(const Pathname & filename, FILE *fp, std::vector<Url> *urllist, callback::SendReport<DownloadProgressReport> *report, MediaBlockList *blklist, off_t filesize) const
{
Url baseurl(getFileUrl(filename));
@@ -1514,7 +1530,7 @@
if (scheme == "http" || scheme == "https" || scheme == "ftp" || scheme == "tftp")
{
checkProtocol(*urliter);
- myurllist.push_back(*urliter);
+ myurllist.push_back(propagateQueryParams(*urliter, _url));
}
}
catch (...)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.2.1/zypp/parser/xml/Reader.h new/libzypp-16.2.2/zypp/parser/xml/Reader.h
--- old/libzypp-16.2.1/zypp/parser/xml/Reader.h 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.2/zypp/parser/xml/Reader.h 2016-08-12 18:13:05.000000000 +0200
@@ -49,7 +49,7 @@
*
* \code
* // Consume a node.
- * bool consumeNode( XML::Reader & reader_r )
+ * bool consumeNode( xml::Reader & reader_r )
* {
* DBG << *reader_r << endl;
* return true;
@@ -60,7 +60,7 @@
* {
* try
* {
- * XML::Reader reader( "/Local/repodata/repomd.xml" );
+ * xml::Reader reader( "/Local/repodata/repomd.xml" );
* reader.foreachNode( consumeNode );
* }
* catch ( const Exception & )
@@ -70,19 +70,19 @@
*
* \code
* // Consume a node.
- * bool consumeNodeAndAttribute( XML::Reader & reader_r )
+ * bool consumeNodeAndAttribute( xml::Reader & reader_r )
* {
* consumeNode( reader_r );
* return reader_r.foreachNodeAttribute( consumeNode );
* }
*
- * // Consume all nodes and thair attributes.
+ * // Consume all nodes and their attributes.
* void example()
* {
* Pathname repodata( "/Local/repodata/repomd.xml" );
* try
* {
- * XML::Reader reader( "/Local/repodata/repomd.xml" );
+ * xml::Reader reader( "/Local/repodata/repomd.xml" );
* reader.foreachNode( consumeNodeAndAttribute );
* // or:
* // reader.foreachNodeOrAttribute( consumeNode )
@@ -105,7 +105,7 @@
public:
/**
- * If the curent node is not empty, advances the reader to the next
+ * If the current node is not empty, advances the reader to the next
* node, and returns the value
*
* \note if the node has a xml subtree you will probably jump to that node
1
0
Hello community,
here is the log from the commit of package file for openSUSE:Factory checked in at 2016-08-26 23:12:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/file (Old)
and /work/SRC/openSUSE:Factory/.file.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "file"
Changes:
--------
--- /work/SRC/openSUSE:Factory/file/file.changes 2016-08-22 10:50:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.file.new/file.changes 2016-08-26 23:12:20.000000000 +0200
@@ -1,0 +2,18 @@
+Wed Aug 24 14:16:09 UTC 2016 - dimstar(a)opensuse.org
+
+- Fix boo#995089:
+ * Do not attempt to produce a file-magic-32bit package: there is
+ nothing arch-dependant in this package (for completeness, this
+ was already fixed just before by Marcus)
+ * Fix baselibs.conf for libmagic1-32bit to require file-magic
+ instead of file-magic-32bit.
+ * Build file-magic as noarch on openSUSE >= 1200 (where rpm is
+ new enough to support this).
+
+-------------------------------------------------------------------
+Wed Aug 24 14:16:08 UTC 2016 - meissner(a)suse.com
+
+- file-magic is architecture independend, no need for a baselibs
+ package.
+
+-------------------------------------------------------------------
python3-magic.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ file.spec ++++++
--- /var/tmp/diff_new_pack.86ulkB/_old 2016-08-26 23:12:21.000000000 +0200
+++ /var/tmp/diff_new_pack.86ulkB/_new 2016-08-26 23:12:21.000000000 +0200
@@ -79,6 +79,9 @@
Group: Productivity/File utilities
Obsoletes: libmagic-data < %{version}
Provides: libmagic-data = %{version}
+%if 0%{?suse_version} >= 1200
+BuildArch: noarch
+%endif
%description magic
This package contains the basic magic files that libmagic reads and uses
python3-magic.spec: same change
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.86ulkB/_old 2016-08-26 23:12:21.000000000 +0200
+++ /var/tmp/diff_new_pack.86ulkB/_new 2016-08-26 23:12:21.000000000 +0200
@@ -1,6 +1,5 @@
libmagic1
- requires "file-magic-<targettype> = <version>"
+ requires "file-magic = <version>"
file-devel
requires -file-<targettype>
requires "libmagic1-<targettype> = <version>"
-file-magic
1
0
Hello community,
here is the log from the commit of package cracklib for openSUSE:Factory checked in at 2016-08-26 23:12:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cracklib (Old)
and /work/SRC/openSUSE:Factory/.cracklib.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cracklib"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cracklib/cracklib.changes 2015-09-08 17:37:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cracklib.new/cracklib.changes 2016-08-26 23:12:12.000000000 +0200
@@ -1,0 +2,15 @@
+Wed Aug 17 12:32:43 UTC 2016 - hguo(a)suse.com
+
+- Add patch 0004-overflow-processing-long-words.patch
+ to fix a new buffer overflow identified together with bsc#992966.
+
+-------------------------------------------------------------------
+Mon Aug 15 12:01:52 UTC 2016 - hguo(a)suse.com
+
+- Relabel patches:
+ cracklib-magic.diff -> 0001-cracklib-magic.diff
+ cracklib-2.9.2-visibility.patch -> 0002-cracklib-2.9.2-visibility.patch
+- Add patch 0003-overflow-processing-gecos.patch
+ to fix a buffer overflow in GECOS parser (bsc#992966 CVE-2016-6318)
+
+-------------------------------------------------------------------
Old:
----
cracklib-2.9.2-visibility.patch
cracklib-magic.diff
New:
----
0001-cracklib-magic.diff
0002-cracklib-2.9.2-visibility.patch
0003-overflow-processing-gecos.patch
0004-overflow-processing-long-words.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cracklib.spec ++++++
--- /var/tmp/diff_new_pack.ZvqmBZ/_old 2016-08-26 23:12:13.000000000 +0200
+++ /var/tmp/diff_new_pack.ZvqmBZ/_new 2016-08-26 23:12:13.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cracklib
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -27,9 +27,11 @@
Source2: baselibs.conf
# PATCH-FIX-OPENSUSE (should be upstreamed)
# Remove support for broken 64bit indexes from magic entry [bnc#106007]
-Patch0: cracklib-magic.diff
+Patch1: 0001-cracklib-magic.diff
# PATCH-FIX-OPENSUSE Hide non-public functions
-Patch1: cracklib-2.9.2-visibility.patch
+Patch2: 0002-cracklib-2.9.2-visibility.patch
+Patch3: 0003-overflow-processing-gecos.patch
+Patch4: 0004-overflow-processing-long-words.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gzip
@@ -85,8 +87,10 @@
%prep
%setup -q
translation-update-upstream
-%patch0
%patch1
+%patch2
+%patch3 -p1
+%patch4 -p1
%build
AUTOPOINT=true autoreconf -fi
++++++ 0001-cracklib-magic.diff ++++++
Index: doc/cracklib.magic
===================================================================
--- doc/cracklib.magic.orig
+++ doc/cracklib.magic
@@ -1,10 +1,5 @@
# cracklib: file (1) magic for cracklib v2.7
0 lelong 0x70775631 Cracklib password index, little endian
->4 long >0 (%i words)
->4 long 0 ("64-bit")
->>8 long >-1 (%i words)
+>4 lelong >0 (%i words)
0 belong 0x70775631 Cracklib password index, big endian
->4 belong >-1 (%i words)
-0 long 0
->4 belong 0x70775631 Cracklib password index, big endian ("64-bit")
->12 belong >0 (%i words)
+>4 belong >0 (%i words)
++++++ 0002-cracklib-2.9.2-visibility.patch ++++++
Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -97,6 +97,45 @@ AM_CONDITIONAL(BUILD_PYTHON,[test "$buil
dnl Handle local dict compiling properly
AC_SUBST(CROSS_COMPILING, $cross_compiling)
+ dnl ************************************************************
+ dnl Enable hiding of internal symbols in library to reduce its size and
+ dnl speed dynamic linking of applications. This currently is only supported
+ dnl on gcc >= 4.0 and SunPro C.
+ dnl
+ AC_MSG_CHECKING([whether to enable hidden symbols in the library])
+ AC_ARG_ENABLE(hidden-symbols,
+ AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library])
+ AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibility in library]),
+ [ case "$enableval" in
+ no)
+ AC_MSG_RESULT(no)
+ ;;
+ *)
+ AC_MSG_CHECKING([whether $CC supports it])
+ if test "$GCC" = yes ; then
+ if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(CRACKLIB_API, [extern __attribute__ ((visibility ("default")))], [to make a symbol visible])
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ else
+ dnl Test for SunPro cc
+ if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(CRACKLIB_API, [__global], [to make a symbol visible])
+ CFLAGS="$CFLAGS -xldscope=hidden"
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+ ;;
+ esac ],
+ AC_MSG_RESULT(no)
+ )
+
AC_OUTPUT(util/Makefile lib/Makefile doc/Makefile python/Makefile Makefile \
python/setup.py \
po/Makefile.in m4/Makefile dicts/Makefile cracklib.spec)
Index: lib/crack.h
===================================================================
--- lib/crack.h.orig
+++ lib/crack.h
@@ -5,6 +5,10 @@
extern "C" {
#endif
+#ifndef CRACKLIB_API
+#define CRACKLIB_API extern
+#endif
+
/* Pass these functions a password (pw) and a path to the
* dictionaries (/usr/lib/cracklib_dict should be specified)
* and it will either return a NULL string, meaning that the
@@ -18,13 +22,13 @@ extern "C" {
* You must link with -lcrack
*/
-extern const char *FascistCheck(const char *pw, const char *dictpath);
-extern const char *FascistCheckUser(const char *pw, const char *dictpath,
+CRACKLIB_API const char *FascistCheck(const char *pw, const char *dictpath);
+CRACKLIB_API const char *FascistCheckUser(const char *pw, const char *dictpath,
const char *user, const char *gecos);
/* This function returns the compiled in value for DEFAULT_CRACKLIB_DICT.
*/
-extern const char *GetDefaultCracklibDict(void);
+CRACKLIB_API const char *GetDefaultCracklibDict(void);
#ifdef __cplusplus
};
Index: lib/packer.h
===================================================================
--- lib/packer.h.orig
+++ lib/packer.h
@@ -76,7 +76,7 @@ typedef struct
#define PIH_MAGIC 0x70775631
/* Internal routines */
-extern char *GetPW(PWDICT *pwp, uint32_t number);
+CRACKLIB_API char *GetPW(PWDICT *pwp, uint32_t number);
#else
@@ -87,15 +87,15 @@ typedef struct {
#endif
-extern PWDICT *PWOpen(const char *prefix, char *mode);
-extern int PWClose(PWDICT *pwp);
-extern unsigned int FindPW(PWDICT *pwp, char *string);
-extern int PutPW(PWDICT *pwp, char *string);
-extern int PMatch(char *control, char *string);
-extern char *Mangle(char *input, char *control);
-extern char Chop(char *string);
-extern char *Trim(char *string);
-extern char *FascistLook(PWDICT *pwp, char *instring);
+CRACKLIB_API PWDICT *PWOpen(const char *prefix, char *mode);
+CRACKLIB_API int PWClose(PWDICT *pwp);
+CRACKLIB_API unsigned int FindPW(PWDICT *pwp, char *string);
+CRACKLIB_API int PutPW(PWDICT *pwp, char *string);
+CRACKLIB_API int PMatch(char *control, char *string);
+CRACKLIB_API char *Mangle(char *input, char *control);
+CRACKLIB_API char Chop(char *string);
+CRACKLIB_API char *Trim(char *string);
+CRACKLIB_API char *FascistLook(PWDICT *pwp, char *instring);
extern char *FascistLookUser(PWDICT *pwp, char *instring, const char *user, const char *gecos);
extern char *FascistGecos(char *password, int uid);
extern char *FascistGecosUser(char *password, const char *user, const char *gecos);
++++++ 0003-overflow-processing-gecos.patch ++++++
(2016-08-10) The patch authored by Raed Albuliwi addresses a buffer overflow in the parser
of GECOS field of user account information. CVE-2016-6318 has been assigned to
the issue.
diff -rupN cracklib-2.9.5/lib/fascist.c cracklib-2.9.5-patched/lib/fascist.c
--- cracklib-2.9.5/lib/fascist.c 2015-04-11 19:18:12.000000000 +0200
+++ cracklib-2.9.5-patched/lib/fascist.c 2016-08-16 11:08:59.635876877 +0200
@@ -502,7 +502,7 @@ FascistGecosUser(char *password, const c
char gbuffer[STRINGSIZE];
char tbuffer[STRINGSIZE];
char *uwords[STRINGSIZE];
- char longbuffer[STRINGSIZE * 2];
+ char longbuffer[STRINGSIZE];
if (gecos == NULL)
gecos = "";
@@ -583,38 +583,46 @@ FascistGecosUser(char *password, const c
{
for (i = 0; i < j; i++)
{
- strcpy(longbuffer, uwords[i]);
- strcat(longbuffer, uwords[j]);
-
- if (GTry(longbuffer, password))
+ if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE)
{
- return _("it is derived from your password entry");
+ strcpy(longbuffer, uwords[i]);
+ strcat(longbuffer, uwords[j]);
+ if (GTry(longbuffer, password))
+ {
+ return _("it is derived from your password entry");
+ }
+
+ strcpy(longbuffer, uwords[j]);
+ strcat(longbuffer, uwords[i]);
+
+ if (GTry(longbuffer, password))
+ {
+ return _("it's derived from your password entry");
+ }
}
- strcpy(longbuffer, uwords[j]);
- strcat(longbuffer, uwords[i]);
-
- if (GTry(longbuffer, password))
+ if (strlen(uwords[j]) < STRINGSIZE - 1)
{
- return _("it's derived from your password entry");
+ longbuffer[0] = uwords[i][0];
+ longbuffer[1] = '\0';
+ strcat(longbuffer, uwords[j]);
+
+ if (GTry(longbuffer, password))
+ {
+ return _("it is derivable from your password entry");
+ }
}
- longbuffer[0] = uwords[i][0];
- longbuffer[1] = '\0';
- strcat(longbuffer, uwords[j]);
-
- if (GTry(longbuffer, password))
- {
- return _("it is derivable from your password entry");
- }
-
- longbuffer[0] = uwords[j][0];
- longbuffer[1] = '\0';
- strcat(longbuffer, uwords[i]);
-
- if (GTry(longbuffer, password))
+ if (strlen(uwords[i]) < STRINGSIZE - 1)
{
- return _("it's derivable from your password entry");
+ longbuffer[0] = uwords[j][0];
+ longbuffer[1] = '\0';
+ strcat(longbuffer, uwords[i]);
+
+ if (GTry(longbuffer, password))
+ {
+ return _("it's derivable from your password entry");
+ }
}
}
}
++++++ 0004-overflow-processing-long-words.patch ++++++
The input word is guaranteed to be at most STRINGSIZE-1 in length. One of the
mangle operations involves duplicating the input word, resulting in a string
twice the length to be accommodated by both area variables.
Howard Guo <hguo(a)suse.com> 2016-08-17
diff -rupN 3/lib/rules.c 3-patched/lib/rules.c
--- 3/lib/rules.c 2016-08-16 14:16:24.033261876 +0200
+++ 3-patched/lib/rules.c 2016-08-17 13:57:14.485782894 +0200
@@ -434,9 +434,8 @@ Mangle(input, control) /* returns a poi
{
int limit;
register char *ptr;
- static char area[STRINGSIZE];
- char area2[STRINGSIZE];
- area[0] = '\0';
+ static char area[STRINGSIZE * 2] = {0};
+ char area2[STRINGSIZE * 2] = {0};
strcpy(area, input);
for (ptr = control; *ptr; ptr++)
1
0
Hello community,
here is the log from the commit of package aaa_base for openSUSE:Factory checked in at 2016-08-26 23:12:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/aaa_base (Old)
and /work/SRC/openSUSE:Factory/.aaa_base.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aaa_base"
Changes:
--------
--- /work/SRC/openSUSE:Factory/aaa_base/aaa_base.changes 2016-08-16 13:00:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.aaa_base.new/aaa_base.changes 2016-08-26 23:12:03.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 17 13:54:03 UTC 2016 - werner(a)suse.de
+
+- Correct logic error in usage of variable restricted (boo#994111)
+- enhance comment for NO_PROXY variable (bsc#990254)
+
+-------------------------------------------------------------------
Old:
----
aaa_base-13.2+git20160807.7f4c8c4.tar.xz
New:
----
aaa_base-13.2+git20160817.5c25c9c.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aaa_base.spec ++++++
--- /var/tmp/diff_new_pack.p1vJd3/_old 2016-08-26 23:12:04.000000000 +0200
+++ /var/tmp/diff_new_pack.p1vJd3/_new 2016-08-26 23:12:04.000000000 +0200
@@ -18,7 +18,7 @@
Name: aaa_base
-Version: 13.2+git20160807.7f4c8c4
+Version: 13.2+git20160817.5c25c9c
Release: 0
Url: https://github.com/openSUSE/aaa_base
Provides: aaa_skel = %{version}-%{release}
++++++ aaa_base-13.2+git20160807.7f4c8c4.tar.xz -> aaa_base-13.2+git20160817.5c25c9c.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aaa_base-13.2+git20160807.7f4c8c4/files/etc/bash.bashrc new/aaa_base-13.2+git20160817.5c25c9c/files/etc/bash.bashrc
--- old/aaa_base-13.2+git20160807.7f4c8c4/files/etc/bash.bashrc 2016-08-07 01:25:23.000000000 +0200
+++ new/aaa_base-13.2+git20160817.5c25c9c/files/etc/bash.bashrc 2016-08-17 15:07:38.000000000 +0200
@@ -191,7 +191,7 @@
_u="\u@\h"
_p=">"
fi
- if test -z "$EMACS" -a -z "$MC_SID" -a -z "$restricted" -a \
+ if test -z "$EMACS" -a -z "$MC_SID" -a "$restricted" != true -a \
-z "$STY" -a -n "$DISPLAY" -a ! -r $HOME/.bash.expert
then
_t="\[\$(ppwd)\]"
@@ -359,7 +359,7 @@
esac
test -s /etc/sh.shrc.local && . /etc/sh.shrc.local
-if test -n "$restricted" -a -z "$PROFILEREAD" ; then
+if test "$restricted" = true -a -z "$PROFILEREAD" ; then
PATH=/usr/lib/restricted/bin
export PATH
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aaa_base-13.2+git20160807.7f4c8c4/files/var/adm/fillup-templates/sysconfig.proxy new/aaa_base-13.2+git20160817.5c25c9c/files/var/adm/fillup-templates/sysconfig.proxy
--- old/aaa_base-13.2+git20160807.7f4c8c4/files/var/adm/fillup-templates/sysconfig.proxy 2016-08-07 01:25:23.000000000 +0200
+++ new/aaa_base-13.2+git20160817.5c25c9c/files/var/adm/fillup-templates/sysconfig.proxy 2016-08-17 15:07:38.000000000 +0200
@@ -57,6 +57,6 @@
## Type: string(localhost)
## Default: localhost
#
-# Example: NO_PROXY="www.me.de, do.main, localhost"
+# Example: NO_PROXY="www.me.de, .do.main, localhost"
#
NO_PROXY="localhost, 127.0.0.1"
1
0
Hello community,
here is the log from the commit of package tor for openSUSE:Factory checked in at 2016-08-25 09:58:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tor (Old)
and /work/SRC/openSUSE:Factory/.tor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tor"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tor/tor.changes 2016-08-15 10:31:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.tor.new/tor.changes 2016-08-25 09:58:24.000000000 +0200
@@ -1,0 +2,11 @@
+Wed Aug 24 21:01:13 UTC 2016 - astieger(a)suse.com
+
+- tor 0.2.8.7:
+ * The "Tonga" bridge authority has been retired; the new bridge
+ authority is "Bifroest"
+ * Only use the ReachableAddresses option to restrict the first
+ hop in a path. In earlier versions of 0.2.8.x, it would apply
+ to every hop in the path, with a possible degradation in
+ anonymity for anyone using an uncommon ReachableAddress setting
+
+-------------------------------------------------------------------
Old:
----
tor-0.2.8.6.tar.gz
tor-0.2.8.6.tar.gz.asc
New:
----
tor-0.2.8.7.tar.gz
tor-0.2.8.7.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tor.spec ++++++
--- /var/tmp/diff_new_pack.xg6kxa/_old 2016-08-25 09:58:25.000000000 +0200
+++ /var/tmp/diff_new_pack.xg6kxa/_new 2016-08-25 09:58:25.000000000 +0200
@@ -23,7 +23,7 @@
%define home_dir %{_localstatedir}/lib/empty
%bcond_with bufferevents
Name: tor
-Version: 0.2.8.6
+Version: 0.2.8.7
Release: 0
Summary: Anonymizing overlay network for TCP (The onion router)
License: BSD-3-Clause
++++++ tor-0.2.8.6.tar.gz -> tor-0.2.8.7.tar.gz ++++++
++++ 31611 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package vm-install for openSUSE:Factory checked in at 2016-08-25 09:58:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vm-install (Old)
and /work/SRC/openSUSE:Factory/.vm-install.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vm-install"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vm-install/vm-install.changes 2016-08-18 09:18:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.vm-install.new/vm-install.changes 2016-08-25 09:58:18.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Aug 16 15:44:58 MDT 2016 - carnold(a)suse.com
+
+- bsc#984189 - vm-install: add updated language files
+- Version 0.8.56
+
+-------------------------------------------------------------------
@@ -11 +17 @@
-- Updated language files
+- bsc#984189 - vm-install: add updated language files
Old:
----
vm-install-0.8.55.tar.bz2
New:
----
vm-install-0.8.56.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vm-install.spec ++++++
--- /var/tmp/diff_new_pack.K2wDMi/_old 2016-08-25 09:58:19.000000000 +0200
+++ /var/tmp/diff_new_pack.K2wDMi/_new 2016-08-25 09:58:19.000000000 +0200
@@ -27,12 +27,12 @@
%endif
# For directory ownership:
BuildRequires: yast2
-Version: 0.8.55
+Version: 0.8.56
Release: 0
Summary: Tool to Define a Virtual Machine and Install Its Operating System
License: GPL-2.0
Group: System/Emulators/PC
-Source0: %{name}-0.8.55.tar.bz2
+Source0: %{name}-0.8.56.tar.bz2
Source1: vm-install.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: dbus-1-python
++++++ vm-install-0.8.55.tar.bz2 -> vm-install-0.8.56.tar.bz2 ++++++
++++ 29503 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package raspberrypi-firmware for openSUSE:Factory checked in at 2016-08-25 09:58:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/raspberrypi-firmware (Old)
and /work/SRC/openSUSE:Factory/.raspberrypi-firmware.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "raspberrypi-firmware"
Changes:
--------
--- /work/SRC/openSUSE:Factory/raspberrypi-firmware/raspberrypi-firmware-config-rpi.changes 2016-07-24 19:53:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.raspberrypi-firmware.new/raspberrypi-firmware-config-rpi.changes 2016-08-25 09:58:12.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 24 13:21:26 UTC 2016 - mpluskal(a)suse.com
+
+- Update to d0bc6ce (2016.08.23)
+
+-------------------------------------------------------------------
raspberrypi-firmware-config-rpi2.changes: same change
raspberrypi-firmware-config-rpi3.changes: same change
raspberrypi-firmware.changes: same change
Old:
----
raspberrypi-firmware-2016.07.15.tar.bz2
New:
----
raspberrypi-firmware-2016.08.23.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ raspberrypi-firmware-config-rpi.spec ++++++
--- /var/tmp/diff_new_pack.5SXcpx/_old 2016-08-25 09:58:14.000000000 +0200
+++ /var/tmp/diff_new_pack.5SXcpx/_new 2016-08-25 09:58:14.000000000 +0200
@@ -17,7 +17,7 @@
Name: raspberrypi-firmware-config-rpi
-Version: 2016.07.15
+Version: 2016.08.23
Release: 0
Summary: Configuration for the Raspberry Pi firmware loader
License: MIT
raspberrypi-firmware-config-rpi2.spec: same change
raspberrypi-firmware-config-rpi3.spec: same change
++++++ raspberrypi-firmware.spec ++++++
--- /var/tmp/diff_new_pack.5SXcpx/_old 2016-08-25 09:58:14.000000000 +0200
+++ /var/tmp/diff_new_pack.5SXcpx/_new 2016-08-25 09:58:14.000000000 +0200
@@ -17,7 +17,7 @@
Name: raspberrypi-firmware
-Version: 2016.07.15
+Version: 2016.08.23
Release: 0
Summary: Binary bootloader and firmware files for Raspberry Pi
License: SUSE-Firmware
++++++ raspberrypi-firmware-2016.07.15.tar.bz2 -> raspberrypi-firmware-2016.08.23.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/raspberrypi-firmware/raspberrypi-firmware-2016.07.15.tar.bz2 /work/SRC/openSUSE:Factory/.raspberrypi-firmware.new/raspberrypi-firmware-2016.08.23.tar.bz2 differ: char 11, line 1
++++++ raspberrypi-firmware-config.spec.in ++++++
--- /var/tmp/diff_new_pack.5SXcpx/_old 2016-08-25 09:58:14.000000000 +0200
+++ /var/tmp/diff_new_pack.5SXcpx/_new 2016-08-25 09:58:14.000000000 +0200
@@ -17,7 +17,7 @@
Name: __NAME__
-Version: 2016.07.15
+Version: 2016.08.23
Release: 0
Summary: Configuration for the Raspberry Pi firmware loader
License: MIT
1
0
Hello community,
here is the log from the commit of package ghc-Glob for openSUSE:Factory checked in at 2016-08-25 09:58:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-Glob (Old)
and /work/SRC/openSUSE:Factory/.ghc-Glob.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-Glob"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-Glob/ghc-Glob.changes 2016-08-24 10:07:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-Glob.new/ghc-Glob.changes 2016-08-25 09:58:09.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 17 18:28:52 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.7.11 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
Glob-0.7.10.tar.gz
New:
----
Glob-0.7.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-Glob.spec ++++++
--- /var/tmp/diff_new_pack.WsCg1z/_old 2016-08-25 09:58:10.000000000 +0200
+++ /var/tmp/diff_new_pack.WsCg1z/_new 2016-08-25 09:58:10.000000000 +0200
@@ -19,11 +19,11 @@
%global pkg_name Glob
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.7.10
+Version: 0.7.11
Release: 0
Summary: Globbing library
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
@@ -61,19 +61,15 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
%cabal_test
-
%post devel
%ghc_pkg_recache
++++++ Glob-0.7.10.tar.gz -> Glob-0.7.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glob-0.7.10/CHANGELOG.txt new/Glob-0.7.11/CHANGELOG.txt
--- old/Glob-0.7.10/CHANGELOG.txt 2016-07-18 18:58:59.000000000 +0200
+++ new/Glob-0.7.11/CHANGELOG.txt 2016-08-08 18:58:03.000000000 +0200
@@ -1,3 +1,7 @@
+0.7.11, 2016-08-08:
+ Got rid of tests/Utils.hs to fix test compilation on case-insensitive
+ filesystems (tests/Utils.hs vs tests/Tests/Utils.hs).
+
0.7.10, 2016-07-18:
Update dependencies to allow dlist-0.8.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glob-0.7.10/Glob.cabal new/Glob-0.7.11/Glob.cabal
--- old/Glob-0.7.10/Glob.cabal 2016-07-18 18:58:59.000000000 +0200
+++ new/Glob-0.7.11/Glob.cabal 2016-08-08 18:58:03.000000000 +0200
@@ -1,7 +1,7 @@
Cabal-Version: >= 1.9.2
Name: Glob
-Version: 0.7.10
+Version: 0.7.11
Homepage: http://iki.fi/matti.niemenmaa/glob/
Synopsis: Globbing library
Category: System
@@ -85,4 +85,3 @@
Tests.Regression
Tests.Simplifier
Tests.Utils
- Utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glob-0.7.10/tests/Tests/Base.hs new/Glob-0.7.11/tests/Tests/Base.hs
--- old/Glob-0.7.10/tests/Tests/Base.hs 2016-07-18 18:58:59.000000000 +0200
+++ new/Glob-0.7.11/tests/Tests/Base.hs 2016-08-08 18:58:03.000000000 +0200
@@ -1,7 +1,7 @@
-- File created: 2008-10-10 22:03:00
module Tests.Base ( PString(unPS), Path(unP), COpts(unCOpts)
- , fromRight, isRight
+ , (-->), fromRight, isRight
) where
import System.FilePath (extSeparator, pathSeparators)
@@ -9,8 +9,6 @@
import System.FilePath.Glob.Base (CompOptions(..))
-import Utils (fromRight, isRight)
-
newtype PString = PatString { unPS :: String } deriving Show
newtype Path = Path { unP :: String } deriving Show
newtype COpts = COpts { unCOpts :: CompOptions } deriving Show
@@ -72,3 +70,11 @@
, maybe "" show (b :: Maybe Int)
, ">"
]
+
+fromRight (Right x) = x
+fromRight _ = error "fromRight :: Left"
+
+isRight (Right _) = True
+isRight _ = False
+
+a --> b = not a || b
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glob-0.7.10/tests/Tests/Utils.hs new/Glob-0.7.11/tests/Tests/Utils.hs
--- old/Glob-0.7.10/tests/Tests/Utils.hs 2016-07-18 18:58:59.000000000 +0200
+++ new/Glob-0.7.11/tests/Tests/Utils.hs 2016-08-08 18:58:03.000000000 +0200
@@ -9,7 +9,7 @@
import System.FilePath.Glob.Utils
-import Utils
+import Tests.Base ((-->))
tests = testGroup "Utils"
[ testProperty "overlapperLosesNoInfo" prop_overlapperLosesNoInfo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glob-0.7.10/tests/Utils.hs new/Glob-0.7.11/tests/Utils.hs
--- old/Glob-0.7.10/tests/Utils.hs 2016-07-18 18:58:59.000000000 +0200
+++ new/Glob-0.7.11/tests/Utils.hs 1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
--- File created: 2008-10-15 20:50:31
-
-module Utils where
-
-fromRight (Right x) = x
-fromRight _ = error "fromRight :: Left"
-
-isRight (Right _) = True
-isRight _ = False
-
-a --> b = not a || b
1
0
Hello community,
here is the log from the commit of package ghc-dlist-instances for openSUSE:Factory checked in at 2016-08-25 09:57:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-dlist-instances (Old)
and /work/SRC/openSUSE:Factory/.ghc-dlist-instances.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-dlist-instances"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-dlist-instances/ghc-dlist-instances.changes 2016-08-24 10:07:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-dlist-instances.new/ghc-dlist-instances.changes 2016-08-25 09:58:01.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Jul 25 11:29:38 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.1.1.1 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
dlist-instances-0.1.1.tar.gz
New:
----
dlist-instances-0.1.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-dlist-instances.spec ++++++
--- /var/tmp/diff_new_pack.ulIR2l/_old 2016-08-25 09:58:02.000000000 +0200
+++ /var/tmp/diff_new_pack.ulIR2l/_new 2016-08-25 09:58:02.000000000 +0200
@@ -18,11 +18,11 @@
%global pkg_name dlist-instances
Name: ghc-%{pkg_name}
-Version: 0.1.1
+Version: 0.1.1.1
Release: 0
Summary: Difference lists instances
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
@@ -49,17 +49,13 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-echo > Setup.hs 'import Distribution.Simple'
-echo >>Setup.hs 'main = defaultMain'
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%post devel
%ghc_pkg_recache
++++++ dlist-instances-0.1.1.tar.gz -> dlist-instances-0.1.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dlist-instances-0.1.1/Setup.hs new/dlist-instances-0.1.1.1/Setup.hs
--- old/dlist-instances-0.1.1/Setup.hs 2016-07-20 01:42:44.000000000 +0200
+++ new/dlist-instances-0.1.1.1/Setup.hs 2016-07-23 21:11:00.000000000 +0200
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dlist-instances-0.1.1/dlist-instances.cabal new/dlist-instances-0.1.1.1/dlist-instances.cabal
--- old/dlist-instances-0.1.1/dlist-instances.cabal 2016-07-20 01:40:55.000000000 +0200
+++ new/dlist-instances-0.1.1.1/dlist-instances.cabal 2016-07-23 21:11:07.000000000 +0200
@@ -1,5 +1,5 @@
name: dlist-instances
-version: 0.1.1
+version: 0.1.1.1
synopsis: Difference lists instances
description:
See the dlist packages.
1
0
Hello community,
here is the log from the commit of package ghc-connection for openSUSE:Factory checked in at 2016-08-25 09:57:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-connection (Old)
and /work/SRC/openSUSE:Factory/.ghc-connection.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-connection"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-connection/ghc-connection.changes 2016-07-20 09:20:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-connection.new/ghc-connection.changes 2016-08-25 09:57:58.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 17 18:28:09 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.2.6 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
connection-0.2.5.tar.gz
New:
----
connection-0.2.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-connection.spec ++++++
--- /var/tmp/diff_new_pack.riO8XG/_old 2016-08-25 09:57:58.000000000 +0200
+++ /var/tmp/diff_new_pack.riO8XG/_new 2016-08-25 09:57:58.000000000 +0200
@@ -18,15 +18,14 @@
%global pkg_name connection
Name: ghc-%{pkg_name}
-Version: 0.2.5
+Version: 0.2.6
Release: 0
Summary: Simple and easy network connections API
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-byteable-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-containers-devel
@@ -40,7 +39,6 @@
BuildRequires: ghc-x509-system-devel
BuildRequires: ghc-x509-validation-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-# End cabal-rpm deps
%description
Simple network library for all your connection need.
@@ -64,15 +62,12 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%post devel
%ghc_pkg_recache
++++++ connection-0.2.5.tar.gz -> connection-0.2.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.5/Network/Connection/Types.hs new/connection-0.2.6/Network/Connection/Types.hs
--- old/connection-0.2.5/Network/Connection/Types.hs 2015-06-19 22:32:33.000000000 +0200
+++ new/connection-0.2.6/Network/Connection/Types.hs 2016-08-12 08:23:14.000000000 +0200
@@ -17,13 +17,14 @@
import Data.ByteString (ByteString)
import Network.BSD (HostName)
-import Network.Socket (PortNumber)
+import Network.Socket (PortNumber, Socket)
import qualified Network.TLS as TLS
import System.IO (Handle)
-- | Simple backend enumeration, either using a raw connection or a tls connection.
data ConnectionBackend = ConnectionStream Handle
+ | ConnectionSocket Socket
| ConnectionTLS TLS.Context
-- | Connection Parameters to establish a Connection.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.5/Network/Connection.hs new/connection-0.2.6/Network/Connection.hs
--- old/connection-0.2.5/Network/Connection.hs 2015-06-19 22:32:33.000000000 +0200
+++ new/connection-0.2.6/Network/Connection.hs 2016-08-12 08:23:14.000000000 +0200
@@ -22,6 +22,8 @@
-- * Exceptions
, LineTooLong(..)
+ , HostNotResolved(..)
+ , HostCannotConnect(..)
-- * Library initialization
, initConnectionContext
@@ -29,11 +31,13 @@
-- * Connection operation
, connectFromHandle
+ , connectFromSocket
, connectTo
, connectionClose
-- * Sending and receiving data
, connectionGet
+ , connectionGetExact
, connectionGetChunk
, connectionGetChunk'
, connectionGetLine
@@ -57,6 +61,10 @@
import Network.Socks5
import qualified Network as N
+import Network.Socket
+import Network.BSD (getProtocolNumber)
+import qualified Network.Socket as N (close)
+import qualified Network.Socket.ByteString as N
import Data.Default.Class
import Data.Data
@@ -77,7 +85,15 @@
-- the line in ConnectionGetLine.
data LineTooLong = LineTooLong deriving (Show,Typeable)
+-- | Exception raised when there's no resolution for a specific host
+data HostNotResolved = HostNotResolved String deriving (Show,Typeable)
+
+-- | Exception raised when the connect failed
+data HostCannotConnect = HostCannotConnect String [E.IOException] deriving (Show,Typeable)
+
instance E.Exception LineTooLong
+instance E.Exception HostNotResolved
+instance E.Exception HostCannotConnect
connectionSessionManager :: Manager -> TLS.SessionManager
connectionSessionManager mvar = TLS.SessionManager
@@ -135,6 +151,19 @@
withSecurity (Just tlsSettings) = tlsEstablish h (makeTLSParams cg cid tlsSettings) >>= connectionNew cid . ConnectionTLS
cid = (connectionHostname p, connectionPort p)
+-- | Use an already established handle to create a connection object.
+--
+-- if the TLS Settings is set, it will do the handshake with the server.
+-- The SOCKS settings have no impact here, as the handle is already established
+connectFromSocket :: ConnectionContext
+ -> Socket
+ -> ConnectionParams
+ -> IO Connection
+connectFromSocket cg sock p = withSecurity (connectionUseSecure p)
+ where withSecurity Nothing = connectionNew cid $ ConnectionSocket sock
+ withSecurity (Just tlsSettings) = tlsEstablish sock (makeTLSParams cg cid tlsSettings) >>= connectionNew cid . ConnectionTLS
+ cid = (connectionHostname p, connectionPort p)
+
-- | connect to a destination using the parameter
connectTo :: ConnectionContext -- ^ The global context of this connection.
-> ConnectionParams -- ^ The parameters for this connection (where to connect, and such).
@@ -142,22 +171,22 @@
connectTo cg cParams = do
conFct <- getConFct (connectionUseSocks cParams)
h <- conFct (connectionHostname cParams) (N.PortNumber $ connectionPort cParams)
- connectFromHandle cg h cParams
+ connectFromSocket cg h cParams
where
- getConFct Nothing = return N.connectTo
- getConFct (Just (OtherProxy h p)) = return $ \_ _ -> N.connectTo h (N.PortNumber p)
- getConFct (Just (SockSettingsSimple h p)) = return $ socksConnectTo h (N.PortNumber p)
+ getConFct Nothing = return resolve'
+ getConFct (Just (OtherProxy h p)) = return $ \_ _ -> resolve' h (N.PortNumber p)
+ getConFct (Just (SockSettingsSimple h p)) = return $ socksConnectTo' h (N.PortNumber p)
getConFct (Just (SockSettingsEnvironment v)) = do
-- if we can't get the environment variable or that the variable cannot be parsed
-- we connect directly.
let name = maybe "SOCKS_SERVER" id v
evar <- E.try (getEnv name)
case evar of
- Left (_ :: E.IOException) -> return N.connectTo
+ Left (_ :: E.IOException) -> return resolve'
Right var ->
case parseSocks var of
- Nothing -> return N.connectTo
- Just (sHost, sPort) -> return $ socksConnectTo sHost (N.PortNumber $ fromIntegral (sPort :: Int))
+ Nothing -> return resolve'
+ Just (sHost, sPort) -> return $ socksConnectTo' sHost (N.PortNumber $ fromIntegral (sPort :: Int))
-- Try to parse "host:port" or "host"
parseSocks s =
@@ -169,12 +198,57 @@
_ -> Nothing
_ -> Nothing
+ resolve' host portid = do
+ let serv = case portid of
+ N.Service serv -> serv
+ N.PortNumber n -> show n
+ _ -> error "cannot resolve service"
+ proto <- getProtocolNumber "tcp"
+ let hints = defaultHints { addrFlags = [AI_ADDRCONFIG]
+ , addrProtocol = proto
+ , addrSocketType = Stream }
+ addrs <- getAddrInfo (Just hints) (Just host) (Just serv)
+ firstSuccessful $ map tryToConnect addrs
+ where
+ tryToConnect addr =
+ E.bracketOnError
+ (socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr))
+ (N.close)
+ (\sock -> connect sock (addrAddress addr) >> return sock)
+ firstSuccessful = go []
+ where
+ go :: [E.IOException] -> [IO a] -> IO a
+ go [] [] = E.throwIO $ HostNotResolved host
+ go l@(_:_) [] = E.throwIO $ HostCannotConnect host l
+ go acc (act:followingActs) = do
+ er <- E.try act
+ case er of
+ Left err -> go (err:acc) followingActs
+ Right r -> return r
+
-- | Put a block of data in the connection.
connectionPut :: Connection -> ByteString -> IO ()
connectionPut connection content = withBackend doWrite connection
where doWrite (ConnectionStream h) = B.hPut h content >> hFlush h
+ doWrite (ConnectionSocket s) = N.sendAll s content
doWrite (ConnectionTLS ctx) = TLS.sendData ctx $ L.fromChunks [content]
+-- | Get exact count of bytes from a connection.
+--
+-- The size argument is the exact amount that must be returned to the user.
+-- The call will wait until all data is available. Hence, it behaves like
+-- 'B.hGet'.
+--
+-- On end of input, 'connectionGetExact' will throw an 'E.isEOFError'
+-- exception.
+connectionGetExact :: Connection -> Int -> IO ByteString
+connectionGetExact conn x = loop B.empty 0
+ where loop bs y
+ | y == x = return bs
+ | otherwise = do
+ next <- connectionGet conn (x - y)
+ loop (B.append bs next) (y + (B.length next))
+
-- | Get some bytes from a connection.
--
-- The size argument is just the maximum that could be returned to the user.
@@ -214,6 +288,7 @@
updateBuf buf
where
getMoreData (ConnectionTLS tlsctx) = TLS.recvData tlsctx
+ getMoreData (ConnectionSocket sock) = N.recv sock 1500
getMoreData (ConnectionStream h) = B.hGetSome h (16 * 1024)
updateBuf buf = case f buf of (a, !buf') -> return (Just buf', a)
@@ -278,6 +353,7 @@
connectionClose :: Connection -> IO ()
connectionClose = withBackend backendClose
where backendClose (ConnectionTLS ctx) = TLS.bye ctx >> TLS.contextClose ctx
+ backendClose (ConnectionSocket sock) = N.close sock
backendClose (ConnectionStream h) = hClose h
-- | Activate secure layer using the parameters specified.
@@ -298,15 +374,18 @@
case backend of
(ConnectionStream h) -> do ctx <- tlsEstablish h (makeTLSParams cg (connectionID connection) params)
return (ConnectionTLS ctx, Just B.empty)
+ (ConnectionSocket s) -> do ctx <- tlsEstablish s (makeTLSParams cg (connectionID connection) params)
+ return (ConnectionTLS ctx, Just B.empty)
(ConnectionTLS _) -> return (backend, b)
-- | Returns if the connection is establish securely or not.
connectionIsSecure :: Connection -> IO Bool
connectionIsSecure conn = withBackend isSecure conn
where isSecure (ConnectionStream _) = return False
+ isSecure (ConnectionSocket _) = return False
isSecure (ConnectionTLS _) = return True
-tlsEstablish :: Handle -> TLS.ClientParams -> IO TLS.Context
+tlsEstablish :: TLS.HasBackend backend => backend -> TLS.ClientParams -> IO TLS.Context
tlsEstablish handle tlsParams = do
ctx <- TLS.contextNew handle tlsParams
TLS.handshake ctx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.5/connection.cabal new/connection-0.2.6/connection.cabal
--- old/connection-0.2.5/connection.cabal 2015-06-19 22:32:33.000000000 +0200
+++ new/connection-0.2.6/connection.cabal 2016-08-12 08:23:14.000000000 +0200
@@ -1,5 +1,5 @@
Name: connection
-Version: 0.2.5
+Version: 0.2.6
Description:
Simple network library for all your connection need.
.
@@ -29,7 +29,7 @@
, data-default-class
, network >= 2.3
, tls >= 1.3
- , socks >= 0.4
+ , socks >= 0.5.5
, x509 >= 1.5
, x509-store >= 1.5
, x509-system >= 1.5
@@ -40,4 +40,4 @@
source-repository head
type: git
- location: git://github.com/vincenthz/hs-connection
+ location: https://github.com/vincenthz/hs-connection
1
0
Hello community,
here is the log from the commit of package ghc-conduit for openSUSE:Factory checked in at 2016-08-25 09:57:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-conduit (Old)
and /work/SRC/openSUSE:Factory/.ghc-conduit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-conduit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-conduit/ghc-conduit.changes 2016-07-21 08:05:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-conduit.new/ghc-conduit.changes 2016-08-25 09:57:54.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 17 18:45:50 UTC 2016 - psimons(a)suse.com
+
+- Update to version 1.2.7 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
conduit-1.2.6.6.tar.gz
New:
----
conduit-1.2.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-conduit.spec ++++++
--- /var/tmp/diff_new_pack.1LMSJt/_old 2016-08-25 09:57:55.000000000 +0200
+++ /var/tmp/diff_new_pack.1LMSJt/_new 2016-08-25 09:57:55.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name conduit
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.2.6.6
+Version: 1.2.7
Release: 0
Summary: Streaming data processing library
License: MIT
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-exceptions-devel
BuildRequires: ghc-lifted-base-devel
BuildRequires: ghc-mmorph-devel
@@ -43,7 +42,6 @@
BuildRequires: ghc-hspec-devel
BuildRequires: ghc-safe-devel
%endif
-# End cabal-rpm deps
%description
Hackage documentation generation is not reliable. For up to date documentation,
@@ -70,20 +68,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ conduit-1.2.6.6.tar.gz -> conduit-1.2.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conduit-1.2.6.6/ChangeLog.md new/conduit-1.2.7/ChangeLog.md
--- old/conduit-1.2.6.6/ChangeLog.md 2016-05-05 14:29:07.000000000 +0200
+++ new/conduit-1.2.7/ChangeLog.md 2016-08-08 13:13:50.000000000 +0200
@@ -1,3 +1,7 @@
+## 1.2.7
+
+* Expose yieldM for ConduitM [#270](https://github.com/snoyberg/conduit/pull/270)
+
## 1.2.6.6
* Fix test suite compilation on older GHCs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conduit-1.2.6.6/Data/Conduit/Internal/Conduit.hs new/conduit-1.2.7/Data/Conduit/Internal/Conduit.hs
--- old/conduit-1.2.6.6/Data/Conduit/Internal/Conduit.hs 2016-05-05 14:29:07.000000000 +0200
+++ new/conduit-1.2.7/Data/Conduit/Internal/Conduit.hs 2016-08-08 13:13:50.000000000 +0200
@@ -419,7 +419,7 @@
-- example, if an exception is thrown in a @Source@ feeding to a @Sink@, and
-- the @Sink@ uses @catchC@, the exception will /not/ be caught.
--
--- Due to this behavior (as well as lack of async exception handling), you
+-- Due to this behavior (as well as lack of async exception safety), you
-- should not try to implement combinators such as @onException@ in terms of this
-- primitive function.
--
@@ -842,6 +842,9 @@
yield o = yieldOr o (return ())
{-# INLINE yield #-}
+-- | Send a monadic value downstream for the next component to consume.
+--
+-- @since 1.2.7
yieldM :: Monad m => m o -> ConduitM i o m ()
yieldM mo = lift mo >>= yield
{-# INLINE yieldM #-}
@@ -854,7 +857,7 @@
-- /Note/: it is highly encouraged to only return leftover values from input
-- already consumed from upstream.
--
--- Since 0.5.0
+-- @since 0.5.0
leftover :: i -> ConduitM i o m ()
leftover i = ConduitM $ \rest -> Leftover (rest ()) i
{-# INLINE leftover #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conduit-1.2.6.6/Data/Conduit.hs new/conduit-1.2.7/Data/Conduit.hs
--- old/conduit-1.2.6.6/Data/Conduit.hs 2016-05-05 14:29:07.000000000 +0200
+++ new/conduit-1.2.7/Data/Conduit.hs 2016-08-08 13:13:50.000000000 +0200
@@ -3,7 +3,7 @@
{-# LANGUAGE Safe #-}
-- | If this is your first time with conduit, you should probably start with
-- the tutorial:
--- <https://haskell.fpcomplete.com/user/snoyberg/library-documentation/conduit-…>.
+-- <https://github.com/snoyberg/conduit#readme>.
module Data.Conduit
( -- * Core interface
-- ** Types
@@ -27,6 +27,7 @@
-- ** Primitives
, await
, yield
+ , yieldM
, leftover
, runConduit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conduit-1.2.6.6/conduit.cabal new/conduit-1.2.7/conduit.cabal
--- old/conduit-1.2.6.6/conduit.cabal 2016-05-05 14:29:07.000000000 +0200
+++ new/conduit-1.2.7/conduit.cabal 2016-08-08 13:13:50.000000000 +0200
@@ -1,5 +1,5 @@
Name: conduit
-Version: 1.2.6.6
+Version: 1.2.7
Synopsis: Streaming data processing library.
description:
Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/conduit>.
1
0
Hello community,
here is the log from the commit of package ghc-case-insensitive for openSUSE:Factory checked in at 2016-08-25 09:57:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-case-insensitive (Old)
and /work/SRC/openSUSE:Factory/.ghc-case-insensitive.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-case-insensitive"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-case-insensitive/ghc-case-insensitive.changes 2016-07-21 08:03:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-case-insensitive.new/ghc-case-insensitive.changes 2016-08-25 09:57:50.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Jul 25 11:21:37 UTC 2016 - psimons(a)suse.com
+
+- Update to version 1.2.0.7 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
case-insensitive-1.2.0.6.tar.gz
New:
----
case-insensitive-1.2.0.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-case-insensitive.spec ++++++
--- /var/tmp/diff_new_pack.oNTXpv/_old 2016-08-25 09:57:50.000000000 +0200
+++ /var/tmp/diff_new_pack.oNTXpv/_new 2016-08-25 09:57:50.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name case-insensitive
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.2.0.6
+Version: 1.2.0.7
Release: 0
Summary: Case insensitive string comparison
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-deepseq-devel
BuildRequires: ghc-hashable-devel
@@ -40,7 +39,6 @@
BuildRequires: ghc-test-framework-devel
BuildRequires: ghc-test-framework-hunit-devel
%endif
-# End cabal-rpm deps
%description
The module 'Data.CaseInsensitive' provides the 'CI' type constructor which can
@@ -62,20 +60,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ case-insensitive-1.2.0.6.tar.gz -> case-insensitive-1.2.0.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/case-insensitive-1.2.0.6/CHANGELOG new/case-insensitive-1.2.0.7/CHANGELOG
--- old/case-insensitive-1.2.0.6/CHANGELOG 2016-03-15 14:46:07.000000000 +0100
+++ new/case-insensitive-1.2.0.7/CHANGELOG 2016-07-21 07:15:00.000000000 +0200
@@ -1,3 +1,8 @@
+1.2.0.7
+
+* Fix build of benchmarks when getting the sources from Hackage.
+
+
1.2.0.6
* Add Travis CI support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/case-insensitive-1.2.0.6/README.markdown new/case-insensitive-1.2.0.7/README.markdown
--- old/case-insensitive-1.2.0.6/README.markdown 2016-03-15 14:46:07.000000000 +0100
+++ new/case-insensitive-1.2.0.7/README.markdown 2016-07-21 07:15:00.000000000 +0200
@@ -1,3 +1,6 @@
+[![Hackage](https://img.shields.io/hackage/v/case-insensitive.svg)](https://hackage.haskell.org/package/case-insensitive)
+[![Build Status](https://travis-ci.org/basvandijk/case-insensitive.svg)](https://tra…
+
The module `Data.CaseInsensitive` provides the `CI` type constructor
which can be parameterised by a string-like type like: `String`,
`ByteString`, `Text`, etc.. Comparisons of values of the resulting
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/case-insensitive-1.2.0.6/bench/NoClass.hs new/case-insensitive-1.2.0.7/bench/NoClass.hs
--- old/case-insensitive-1.2.0.6/bench/NoClass.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/case-insensitive-1.2.0.7/bench/NoClass.hs 2016-07-21 07:15:00.000000000 +0200
@@ -0,0 +1,24 @@
+module NoClass ( CI, mk ) where
+
+import Control.DeepSeq ( NFData, rnf, deepseq )
+import Data.ByteString ( ByteString )
+import qualified Data.ByteString as B ( map )
+import Data.Word ( Word8 )
+
+data CI s = CI !s !s
+
+instance NFData s => NFData (CI s) where
+ rnf (CI o f) = o `deepseq` f `deepseq` ()
+
+mk :: ByteString -> CI ByteString
+mk s = CI s (foldCase s)
+
+foldCase :: ByteString -> ByteString
+foldCase = B.map toLower8
+
+toLower8 :: Word8 -> Word8
+toLower8 w
+ | 65 <= w && w <= 90 ||
+ 192 <= w && w <= 214 ||
+ 216 <= w && w <= 222 = w + 32
+ | otherwise = w
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/case-insensitive-1.2.0.6/case-insensitive.cabal new/case-insensitive-1.2.0.7/case-insensitive.cabal
--- old/case-insensitive-1.2.0.6/case-insensitive.cabal 2016-03-15 14:46:07.000000000 +0100
+++ new/case-insensitive-1.2.0.7/case-insensitive.cabal 2016-07-21 07:15:00.000000000 +0200
@@ -1,5 +1,5 @@
name: case-insensitive
-version: 1.2.0.6
+version: 1.2.0.7
cabal-version: >=1.8
build-type: Simple
license: BSD3
@@ -61,6 +61,7 @@
benchmark bench-case-insensitive
type: exitcode-stdio-1.0
main-is: bench.hs
+ other-modules: NoClass
hs-source-dirs: bench
ghc-options: -Wall -O2
1
0
Hello community,
here is the log from the commit of package ghc-blaze-markup for openSUSE:Factory checked in at 2016-08-25 09:57:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-blaze-markup (Old)
and /work/SRC/openSUSE:Factory/.ghc-blaze-markup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-blaze-markup"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-blaze-markup/ghc-blaze-markup.changes 2016-07-21 08:07:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-blaze-markup.new/ghc-blaze-markup.changes 2016-08-25 09:57:45.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Aug 1 14:07:14 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.7.1.0 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
blaze-markup-0.7.0.3.tar.gz
New:
----
blaze-markup-0.7.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-blaze-markup.spec ++++++
--- /var/tmp/diff_new_pack.OfVBcu/_old 2016-08-25 09:57:47.000000000 +0200
+++ /var/tmp/diff_new_pack.OfVBcu/_new 2016-08-25 09:57:47.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name blaze-markup
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.7.0.3
+Version: 0.7.1.0
Release: 0
Summary: A blazingly fast markup combinator library for Haskell
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-blaze-builder-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-rpm-macros
@@ -41,7 +40,6 @@
BuildRequires: ghc-test-framework-hunit-devel
BuildRequires: ghc-test-framework-quickcheck2-devel
%endif
-# End cabal-rpm deps
%description
Core modules of a blazingly fast markup combinator library for the Haskell
@@ -62,20 +60,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ blaze-markup-0.7.0.3.tar.gz -> blaze-markup-0.7.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blaze-markup-0.7.0.3/CHANGELOG new/blaze-markup-0.7.1.0/CHANGELOG
--- old/blaze-markup-0.7.0.3/CHANGELOG 2015-09-28 11:45:08.000000000 +0200
+++ new/blaze-markup-0.7.1.0/CHANGELOG 2016-07-24 14:52:21.000000000 +0200
@@ -1,3 +1,7 @@
+- 0.7.1.0
+ * Relax `QuickCheck` dependency to allow 2.9
+ * Add text builder instances
+
- 0.7.0.3
* Relax `HUnit` dependency to allow 1.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blaze-markup-0.7.0.3/blaze-markup.cabal new/blaze-markup-0.7.1.0/blaze-markup.cabal
--- old/blaze-markup-0.7.0.3/blaze-markup.cabal 2015-09-28 11:45:08.000000000 +0200
+++ new/blaze-markup-0.7.1.0/blaze-markup.cabal 2016-07-24 14:52:21.000000000 +0200
@@ -1,5 +1,5 @@
Name: blaze-markup
-Version: 0.7.0.3
+Version: 0.7.1.0
Homepage: http://jaspervdj.be/blaze
Bug-Reports: http://github.com/jaspervdj/blaze-markup/issues
License: BSD3
@@ -51,7 +51,7 @@
Build-depends:
HUnit >= 1.2 && < 1.4,
- QuickCheck >= 2.4 && < 2.9,
+ QuickCheck >= 2.4 && < 2.10,
containers >= 0.3 && < 0.6,
test-framework >= 0.4 && < 0.9,
test-framework-hunit >= 0.3 && < 0.4,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blaze-markup-0.7.0.3/src/Text/Blaze/Internal.hs new/blaze-markup-0.7.1.0/src/Text/Blaze/Internal.hs
--- old/blaze-markup-0.7.0.3/src/Text/Blaze/Internal.hs 2015-09-28 11:45:08.000000000 +0200
+++ new/blaze-markup-0.7.1.0/src/Text/Blaze/Internal.hs 2016-07-24 14:52:21.000000000 +0200
@@ -31,6 +31,8 @@
, preEscapedText
, lazyText
, preEscapedLazyText
+ , textBuilder
+ , preEscapedTextBuilder
, string
, preEscapedString
, unsafeByteString
@@ -52,6 +54,8 @@
, preEscapedTextValue
, lazyTextValue
, preEscapedLazyTextValue
+ , textBuilderValue
+ , preEscapedTextBuilderValue
, stringValue
, preEscapedStringValue
, unsafeByteStringValue
@@ -85,6 +89,7 @@
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Text.Lazy as LT
+import qualified Data.Text.Lazy.Builder as LTB
-- | A static string that supports efficient output to all possible backends.
--
@@ -245,7 +250,7 @@
--
-- > <p data-foo="bar">Hello.</p>
--
--- We support this in BlazeMarkup using this funcion. The above fragment could
+-- We support this in BlazeMarkup using this function. The above fragment could
-- be described using BlazeMarkup with:
--
-- > p ! dataAttribute "foo" "bar" $ "Hello."
@@ -303,6 +308,21 @@
preEscapedLazyText :: LT.Text -- ^ Text to insert
-> Markup -- ^ Resulting HTML fragment
preEscapedLazyText = mconcat . map preEscapedText . LT.toChunks
+{-# INLINE preEscapedLazyText #-}
+
+-- | A variant of 'text' for text 'LTB.Builder'.
+--
+textBuilder :: LTB.Builder -- ^ Text to insert
+ -> Markup -- ^ Resulting HTML fragment
+textBuilder = lazyText . LTB.toLazyText
+{-# INLINE textBuilder #-}
+
+-- | A variant of 'preEscapedText' for lazy 'LT.Text'
+--
+preEscapedTextBuilder :: LTB.Builder -- ^ Text to insert
+ -> Markup -- ^ Resulting HTML fragment
+preEscapedTextBuilder = preEscapedLazyText . LTB.toLazyText
+{-# INLINE preEscapedTextBuilder #-}
-- | Create an HTML snippet from a 'String'.
--
@@ -409,6 +429,20 @@
preEscapedLazyTextValue = mconcat . map preEscapedTextValue . LT.toChunks
{-# INLINE preEscapedLazyTextValue #-}
+-- | A variant of 'textValue' for text 'LTB.Builder'
+--
+textBuilderValue :: LTB.Builder -- ^ The actual value
+ -> AttributeValue -- ^ Resulting attribute value
+textBuilderValue = lazyTextValue . LTB.toLazyText
+{-# INLINE textBuilderValue #-}
+
+-- | A variant of 'preEscapedTextValue' for text 'LTB.Builder'
+--
+preEscapedTextBuilderValue :: LTB.Builder -- ^ The actual value
+ -> AttributeValue -- ^ Resulting attribute value
+preEscapedTextBuilderValue = preEscapedLazyTextValue . LTB.toLazyText
+{-# INLINE preEscapedTextBuilderValue #-}
+
-- | Create an attribute value from a 'String'.
--
stringValue :: String -> AttributeValue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blaze-markup-0.7.0.3/src/Text/Blaze.hs new/blaze-markup-0.7.1.0/src/Text/Blaze.hs
--- old/blaze-markup-0.7.0.3/src/Text/Blaze.hs 2015-09-28 11:45:08.000000000 +0200
+++ new/blaze-markup-0.7.1.0/src/Text/Blaze.hs 2016-07-24 14:52:21.000000000 +0200
@@ -93,6 +93,7 @@
import Data.Text (Text)
import qualified Data.Text.Lazy as LT
+import qualified Data.Text.Lazy.Builder as LTB
import Text.Blaze.Internal
@@ -129,6 +130,12 @@
preEscapedToMarkup = preEscapedLazyText
{-# INLINE preEscapedToMarkup #-}
+instance ToMarkup LTB.Builder where
+ toMarkup = textBuilder
+ {-# INLINE toMarkup #-}
+ preEscapedToMarkup = preEscapedTextBuilder
+ {-# INLINE preEscapedToMarkup #-}
+
instance ToMarkup String where
toMarkup = string
{-# INLINE toMarkup #-}
@@ -208,6 +215,12 @@
preEscapedToValue = preEscapedLazyTextValue
{-# INLINE preEscapedToValue #-}
+instance ToValue LTB.Builder where
+ toValue = textBuilderValue
+ {-# INLINE toValue #-}
+ preEscapedToValue = preEscapedTextBuilderValue
+ {-# INLINE preEscapedToValue #-}
+
instance ToValue String where
toValue = stringValue
{-# INLINE toValue #-}
1
0
Hello community,
here is the log from the commit of package ghc-blaze-html for openSUSE:Factory checked in at 2016-08-25 09:57:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-blaze-html (Old)
and /work/SRC/openSUSE:Factory/.ghc-blaze-html.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-blaze-html"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-blaze-html/ghc-blaze-html.changes 2016-07-21 08:07:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-blaze-html.new/ghc-blaze-html.changes 2016-08-25 09:57:40.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Aug 1 10:39:00 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.8.1.2 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
blaze-html-0.8.1.1.tar.gz
New:
----
blaze-html-0.8.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-blaze-html.spec ++++++
--- /var/tmp/diff_new_pack.w6Va7g/_old 2016-08-25 09:57:41.000000000 +0200
+++ /var/tmp/diff_new_pack.w6Va7g/_new 2016-08-25 09:57:41.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name blaze-html
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.8.1.1
+Version: 0.8.1.2
Release: 0
Summary: A blazingly fast HTML combinator library for Haskell
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-blaze-builder-devel
BuildRequires: ghc-blaze-markup-devel
BuildRequires: ghc-bytestring-devel
@@ -42,7 +41,6 @@
BuildRequires: ghc-test-framework-hunit-devel
BuildRequires: ghc-test-framework-quickcheck2-devel
%endif
-# End cabal-rpm deps
%description
A blazingly fast HTML combinator library for the Haskell programming language.
@@ -63,20 +61,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ blaze-html-0.8.1.1.tar.gz -> blaze-html-0.8.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blaze-html-0.8.1.1/CHANGELOG new/blaze-html-0.8.1.2/CHANGELOG
--- old/blaze-html-0.8.1.1/CHANGELOG 2015-09-28 11:48:01.000000000 +0200
+++ new/blaze-html-0.8.1.2/CHANGELOG 2016-07-24 14:57:22.000000000 +0200
@@ -1,3 +1,6 @@
+- 0.8.1.2
+ * Bump QuickCheck dependency to 2.9
+
- 0.8.1.1
* Bump HUnit dependency to 1.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blaze-html-0.8.1.1/blaze-html.cabal new/blaze-html-0.8.1.2/blaze-html.cabal
--- old/blaze-html-0.8.1.1/blaze-html.cabal 2015-09-28 11:48:01.000000000 +0200
+++ new/blaze-html-0.8.1.2/blaze-html.cabal 2016-07-24 14:57:22.000000000 +0200
@@ -1,5 +1,5 @@
Name: blaze-html
-Version: 0.8.1.1
+Version: 0.8.1.2
Homepage: http://jaspervdj.be/blaze
Bug-Reports: http://github.com/jaspervdj/blaze-html/issues
License: BSD3
@@ -70,7 +70,7 @@
Build-depends:
HUnit >= 1.2 && < 1.4,
- QuickCheck >= 2.4 && < 2.9,
+ QuickCheck >= 2.4 && < 2.10,
containers >= 0.3 && < 0.6,
test-framework >= 0.4 && < 0.9,
test-framework-hunit >= 0.3 && < 0.4,
1
0
Hello community,
here is the log from the commit of package xmobar for openSUSE:Factory checked in at 2016-08-25 09:57:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xmobar (Old)
and /work/SRC/openSUSE:Factory/.xmobar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xmobar"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xmobar/xmobar.changes 2016-07-21 08:01:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xmobar.new/xmobar.changes 2016-08-25 09:57:34.000000000 +0200
@@ -1,0 +2,15 @@
+Wed Aug 17 18:43:13 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.24.2 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
+Mon Aug 1 14:07:12 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.24.1 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
+Thu Jul 28 11:31:07 UTC 2016 - psimons(a)suse.com
+
+- Update to version 0.24 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
xmobar-0.23.1.tar.gz
New:
----
xmobar-0.24.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xmobar.spec ++++++
--- /var/tmp/diff_new_pack.MRRb9h/_old 2016-08-25 09:57:36.000000000 +0200
+++ /var/tmp/diff_new_pack.MRRb9h/_new 2016-08-25 09:57:36.000000000 +0200
@@ -17,7 +17,7 @@
Name: xmobar
-Version: 0.23.1
+Version: 0.24.2
Release: 0
Summary: A Minimalistic Text Based Status Bar
License: BSD-3-Clause
@@ -25,13 +25,15 @@
Url: https://hackage.haskell.org/package/%{name}
Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.t…
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-HTTP-devel
BuildRequires: ghc-X11-devel
+BuildRequires: ghc-X11-xft-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-containers-devel
+BuildRequires: ghc-dbus-devel
BuildRequires: ghc-directory-devel
BuildRequires: ghc-filepath-devel
+BuildRequires: ghc-hinotify-devel
BuildRequires: ghc-mtl-devel
BuildRequires: ghc-old-locale-devel
BuildRequires: ghc-parsec-devel
@@ -43,15 +45,11 @@
BuildRequires: ghc-transformers-devel
BuildRequires: ghc-unix-devel
BuildRequires: ghc-utf8-string-devel
+BuildRequires: libXpm-devel
+BuildRequires: libXrandr-devel
+BuildRequires: libXrender-devel
BuildRequires: libiw-devel
-BuildRequires: pkgconfig
-BuildRequires: pkgconfig(xpm)
-BuildRequires: pkgconfig(xrandr)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ghc-X11-xft-devel
-BuildRequires: ghc-dbus-devel
-BuildRequires: ghc-hinotify-devel
-BuildRequires: libXinerama-devel
%description
Xmobar is a minimalistic text based status bar.
@@ -63,13 +61,12 @@
%setup -q
%build
-%define cabal_configure_options -f"with_thread with_utf8 with_xft with_xpm with_mpris with_dbus with_iwlib with_inotify"
+%define cabal_configure_options -fwith_thread -fwith_utf8 -fwith_xft -fwith_xpm -fwith_mpris -fwith_dbus -fwith_iwlib -fwith_inotify
%ghc_bin_build
%install
%ghc_bin_install
-
%files
%defattr(-,root,root,-)
%doc license
++++++ xmobar-0.23.1.tar.gz -> xmobar-0.24.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/news.md new/xmobar-0.24.2/news.md
--- old/xmobar-0.23.1/news.md 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/news.md 2016-08-08 23:40:59.000000000 +0200
@@ -1,5 +1,58 @@
% xmobar - Release notes
+## Version 0.24.2 (Aug 8, 2016)
+
+_Bug fixes_
+
+ - New Weather plugin URL (see [issue #270]).
+
+[issue #270]: https://github.com/jaor/xmobar/issues/270
+
+## Version 0.24.1 (Jul 28, 2016)
+
+_Bug fixes_
+
+ - Restoring compatibility with GHC 7.6, (see [issue #269]).
+
+[issue #269]: https://github.com/jaor/xmobar/issues/269
+
+## Version 0.24 (Jul 26, 2016)
+
+_New features_
+
+ - Use the new compilation flag `with_conduit` to compile an
+ implemetation of the `Weather` plugin that will work behind
+ proxies, by Dragos Boca.
+ - New command line argument (`-p`) to specify xmobar's position, by
+ Valentin Shirokov.
+ - Wind speed in Km/h and m/s for the `Weather` plugin, by Michael
+ Knabe.
+ - `UVMeter`, a new optional plugin showing UV data for Australian
+ users, by Roman Joost.
+ - New template parameter `<date>` for the `MPD` plugin (by Bruno
+ Heridet)
+ - New monitor argument `-T` to specify the maximum total width of
+ the monitor text.
+ - New $VAR parameter syntax for using env vars in pipe monitors, by
+ Will Song (see [issue #268]).
+
+_Bug fixes_
+
+ - The `Volume` plugin now supports capture devices (Antoine Eiche).
+ - The `MPD` plugin will now automatically update on options changes
+ (Ben Boeckel).
+ - The `Battery` plugin does now a better job at tracking AC status
+ and times (see [issue #231]).
+ - `PipeReader` was polling too often (thanks to zlbruce).
+ - The `MPris` monitor now honours field width and padding optons
+ (-M, -w, etc.).
+ - `Batt`: sensible thresholds for high/low power consumption (see
+ [issue #265]).
+
+[issue #231]: https://github.com/jaor/xmobar/issues/225
+[issue #265]: https://github.com/jaor/xmobar/issues/225
+[issue #268]: https://github.com/jaor/xmobar/issues/268
+
## Version 0.23.1 (Apr 14, 2015)
_Bug fixes_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/readme.md new/xmobar-0.24.2/readme.md
--- old/xmobar-0.23.1/readme.md 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/readme.md 2016-08-08 23:40:59.000000000 +0200
@@ -10,7 +10,7 @@
features, like dynamic color management, icons, output templates, and
extensibility through plugins.
-This page documents xmobar 0.23.1 (see [release notes]).
+This page documents xmobar 0.24.2 (see [release notes]).
[This screenshot] shows xmobar running under [sawfish], with
antialiased fonts. And [this one] is my desktop with [xmonad] and two
@@ -57,7 +57,7 @@
- From [Github]. You can also obtain a tarball in [Github's
downloads page]. You'll find there links to each tagged release.
- From the bleeding edge repo. If you prefer to live dangerously,
- just get the latest and greatest (and buggiest, i guess) using
+ just get the latest and greatest (and buggiest, I guess) using
git:
git clone git://github.com/jaor/xmobar
@@ -157,6 +157,13 @@
: Support for xpm image file format. This will allow loading .xpm files in `<icon>`.
Requires the [libXpm] C library.
+`with_uvmeter`
+: Enables UVMeter plugin. The plugin shows UV data for Australia.
+
+`with_conduit`
+: Use http-conduit for getting weather data enabling support for http proxies.
+ Requires [http-conduit] and [http-types].
+
`all_extensions`
: Enables all the extensions above.
@@ -180,7 +187,7 @@
- After receiving SIGUSR1 xmobar moves its position to the next screen.
-- After receiving SIGUSR2 xmobar repositions it self on the current screen.
+- After receiving SIGUSR2 xmobar repositions itself on the current screen.
# Configuration
@@ -387,6 +394,7 @@
-A alpha --alpha=alpha The transparency: 0 is transparent, 255 (the default) is opaque
-o --top Place xmobar at the top of the screen
-b --bottom Place xmobar at the bottom of the screen
+ -p --position=position Specify position, same as in config file
-d --dock Try to start xmobar as a dock
-a alignsep --alignsep=alignsep Separators for left, center and right text
alignment. Default: '}{'
@@ -579,7 +587,7 @@
### Icon patterns
Some monitors allow usage of strings that depend on some integer value
-from 0 to 8 by replacing all occurences of `"%%"` with it
+from 0 to 8 by replacing all occurrences of `"%%"` with it
(i.e. `"<icon=/path/to/icon_%%.xpm/>"` will be interpreted
as `"<icon=/path/to/icon_3.xpm/>"` when the value is `3`, also `"%"` is interpreted
as `"%"`, `"%%"` as `"3"`, `"%%%"` as `"3%"`, `"%%%%"` as `"33"` and so on). Essentially
@@ -674,6 +682,10 @@
needed.
- Long option: `--width`
- Default: 0 (variable width)
+- `-T` _number_ Maximum total width
+ - Maximum total width of the text.
+ - Long option: `--maxtwidth`
+ - Default: 0 (no limit)
- `-c` _string_
- Characters used for padding. The characters of _string_ are used
cyclically. E.g., with `-P +- -w 6`, a field with value "foo"
@@ -735,7 +747,7 @@
- Args: default monitor arguments
- Variables that can be used with the `-t`/`--template` argument:
`station`, `stationState`, `year`, `month`, `day`, `hour`,
- `windCardinal`, `windAzimuth`, `windMph`, `windKnots`,
+ `windCardinal`, `windAzimuth`, `windMph`, `windKnots`, `windMs`, `windKmh`
`visibility`, `skyCondition`, `tempC`, `tempF`,
`dewPointC`, `dewPointF`, `rh`, `pressure`
- Default template: `<station>: <tempC>C, rh <rh>% (<hour>)`
@@ -854,8 +866,8 @@
- `-O`: string for AC "on" status (default: "On")
- `-i`: string for AC "idle" status (default: "On")
- `-o`: string for AC "off" status (default: "Off")
- - `-L`: low power (`watts`) threshold (default: -12)
- - `-H`: high power threshold (default: -10)
+ - `-L`: low power (`watts`) threshold (default: 10)
+ - `-H`: high power threshold (default: 12)
- `-l`: color to display power lower than the `-L` threshold
- `-m`: color to display power lower than the `-H` threshold
- `-h`: color to display power higher than the `-H` threshold
@@ -1089,7 +1101,7 @@
`plength` (playlist length), `ppos` (playlist position),
`flags` (ncmpcpp-style playback mode),
`name`, `artist`, `composer`, `performer`,
- `album`, `title`, `track`, `file`, `genre`
+ `album`, `title`, `track`, `file`, `genre`, `date`
- Default template: `MPD: <state>`
- Example (note that you need "--" to separate regular monitor options from
MPD's specific ones):
@@ -1243,6 +1255,20 @@
Run CatInt 0 "/sys/devices/platform/thinkpad_hwmon/fan1_input" [] 50
+### `UVMeter`
+
+- Aliases to "uv " + station id. For example: `%uv brisbane%` or `%uv
+ alice springs%`
+- Args: default monitor arguments.
+
+- *Reminder:* Keep the refresh rate high, to avoid making unnecessary
+ requests every time the plug-in is run.
+- Station IDs can be found here:
+ http://www.arpansa.gov.au/uvindex/realtime/xml/uvvalues.xml
+- Example:
+
+ Run UVMeter "brisbane" ["-H", "3", "-L", "3", "--low", "green", "--high", "red"] 900
+
## Executing External Commands
In order to execute an external command you can either write the
@@ -1322,6 +1348,7 @@
- Reads its displayed output from the given pipe.
- Prefix an optional default text separated by a colon
+- Expands environment variables in the first argument of syntax '${VAR}' or '$VAR'
<font size="+1">**`MarqueePipeReader "default text:/path/to/pipe" (length, rate, sep) Alias`**</font>
@@ -1331,6 +1358,8 @@
Run MarqueePipeReader "/tmp/testpipe" (10, 7, "+") "mpipe"
+- Expands environment variables in the first argument
+
<font size="+1">
**`BufferedPipeReader Alias [(Timeout, Bool, "/path/to/pipe1"), ..]`**
</font>
@@ -1360,6 +1389,7 @@
`"/tmp/xmobar_status"` will reveal xmonad for 1.5 seconds and
temporarily overwrite the window titles.
- Take a look at [samples/status.sh]
+- Expands environment variables for the pipe path
[samples/status.sh]: http://github.com/jaor/xmobar/raw/master/samples/status.sh
@@ -1517,19 +1547,20 @@
version 0.11.1. Since then, it is maintained and developed by [jao],
with the help of the greater xmobar and Haskell communities.
-In particular, xmobar [incorporates patches] by Axel Angel, Ben
-Boeckel, Duncan Burke, Roman Cheplyaka, Patrick Chilton, Nathaniel
-Wesley Filardo, John Goerzen, Reto Hablützel, Juraj Hercek, Tomas
-Janousek, Spencer Janssen, Jochen Keil, Lennart Kolmodin, Krzysztof
-Kosciuszkiewicz, Dmitry Kurochkin, Todd Lunter, Robert J. Macomber,
-Dmitry Malikov, David McLean, Marcin Mikołajczyk, Dino Morelli, Tony
-Morris, Eric Mrak, Thiago Negri, Edward O'Callaghan, Svein Ove, Martin
-Perner, Jens Petersen, Alexander Polakov, Petr Rockai, Andrew
-Sackville-West, Markus Scherer, Alexander Shabalin, Peter Simons,
-Alexander Solovyov, John Soros, Travis Staton, Artem Tarasov, Samuli
-Thomasson, Edward Tjörnhammar, Sergei Trofimovich, Thomas Tuegel, Jan
-Vornberger, Anton Vorontsov, Daniel Wagner, Phil Xiaojun Hu, Edward
-Z. Yang and Norbert Zeh.
+In particular, xmobar [incorporates patches] by Axel Angel, Dragos
+Boca, Ben Boeckel, Duncan Burke, Roman Cheplyaka, Patrick Chilton,
+Antoine Eiche, Nathaniel Wesley Filardo, John Goerzen, Reto Hablützel,
+Juraj Hercek, Tomas Janousek, Spencer Janssen, Roman Joost, Jochen
+Keil, Lennart Kolmodin, Krzysztof Kosciuszkiewicz, Dmitry Kurochkin,
+Todd Lunter, Robert J. Macomber, Dmitry Malikov, David McLean, Marcin
+Mikołajczyk, Dino Morelli, Tony Morris, Eric Mrak, Thiago Negri,
+Edward O'Callaghan, Svein Ove, Martin Perner, Jens Petersen, Alexander
+Polakov, Petr Rockai, Andrew Sackville-West, Markus Scherer, Alexander
+Shabalin, Valentin Shirokov, Peter Simons, Alexander Solovyov, Will
+Song, John Soros, Travis Staton, Artem Tarasov, Samuli Thomasson,
+Edward Tjörnhammar, Sergei Trofimovich, Thomas Tuegel, Jan Vornberger,
+Anton Vorontsov, Daniel Wagner, Phil Xiaojun Hu, Edward Z. Yang and
+Norbert Zeh.
[jao]: http://jao.io
[incorporates patches]: http://www.ohloh.net/p/xmobar/contributors
@@ -1571,14 +1602,14 @@
This software is released under a BSD-style license. See [LICENSE] for
more details.
-Copyright © 2010-2014 Jose Antonio Ortega Ruiz
+Copyright © 2010-2016 Jose Antonio Ortega Ruiz
Copyright © 2007-2010 Andrea Rossato
[Github]: http://github.com/jaor/xmobar/
[Github page]: http://github.com/jaor/xmobar
[Hackage]: http://hackage.haskell.org/package/xmobar/
-[LICENSE]: https://github.com/jaor/xmobar/raw/master/LICENSE
+[LICENSE]: https://github.com/jaor/xmobar/raw/master/license
[Mailing list]: http://projects.haskell.org/cgi-bin/mailman/listinfo/xmobar
[MPD]: http://mpd.wikia.com/
[X11-xft]: http://hackage.haskell.org/package/X11-xft/
@@ -1597,3 +1628,5 @@
[timezone-olson]: http://hackage.haskell.org/package/timezone-olson
[timezone-series]: http://hackage.haskell.org/package/timezone-series
[libXpm]: http://cgit.freedesktop.org/xorg/lib/libXpm
+[http-conduit]: http://hackage.haskell.org/package/http-conduit
+[http-types]: http://hackage.haskell.org/package/http-types
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/samples/xmobar.config new/xmobar-0.24.2/samples/xmobar.config
--- old/xmobar-0.23.1/samples/xmobar.config 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/samples/xmobar.config 2016-08-08 23:40:59.000000000 +0200
@@ -1,5 +1,5 @@
Config { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*"
- , addtionalFonts = []
+ , additionalFonts = []
, borderColor = "black"
, border = TopB
, bgColor = "black"
@@ -29,7 +29,7 @@
, Run Memory ["-t","Mem: <usedratio>%"] 10
, Run Swap [] 10
, Run Com "uname" ["-s","-r"] "" 36000
- , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
+ , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
]
, sepChar = "%"
, alignSep = "}{"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Environment.hs new/xmobar-0.24.2/src/Environment.hs
--- old/xmobar-0.23.1/src/Environment.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/xmobar-0.24.2/src/Environment.hs 2016-08-08 23:40:59.000000000 +0200
@@ -0,0 +1,49 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module : XMobar.Environment
+-- Copyright : (c) William Song
+-- License : BSD-style (see LICENSE)
+--
+-- Maintainer : Will Song <incertia(a)incertia.net>
+-- Stability : stable
+-- Portability : portable
+--
+-- A function to expand environment variables in strings
+--
+-----------------------------------------------------------------------------
+module Environment where
+
+import Control.Applicative ((<$>))
+import Data.Maybe (fromMaybe)
+import System.Environment (lookupEnv)
+
+expandEnv :: String -> IO String
+expandEnv "" = return ""
+expandEnv (c:s) = case c of
+ '$' -> do
+ envVar <- fromMaybe "" <$> lookupEnv e
+ remainder <- expandEnv s'
+ return $ envVar ++ remainder
+ where (e, s') = getVar s
+ getVar "" = ("", "")
+ getVar ('{':s'') = (takeUntil "}" s'', drop 1 . dropUntil "}" $ s'')
+ getVar s'' = (takeUntil filterstr s'', dropUntil filterstr s'')
+ filterstr = ",./? \t;:\"'~`!@#$%^&*()<>-+=\\|"
+ takeUntil f = takeWhile (not . flip elem f)
+ dropUntil f = dropWhile (not . flip elem f)
+
+ '\\' -> case s == "" of
+ True -> return "\\"
+ False -> do
+ remainder <- expandEnv $ drop 1 s
+ return $ escString s ++ remainder
+ where escString s' = let (cc:_) = s' in
+ case cc of
+ 't' -> "\t"
+ 'n' -> "\n"
+ '$' -> "$"
+ _ -> [cc]
+
+ _ -> do
+ remainder <- expandEnv s
+ return $ c : remainder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Main.hs new/xmobar-0.24.2/src/Main.hs
--- old/xmobar-0.23.1/src/Main.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Main.hs 2016-08-08 23:40:59.000000000 +0200
@@ -38,6 +38,7 @@
import System.FilePath ((</>))
import System.Posix.Files
import Control.Monad (unless, liftM)
+import Text.Read (readMaybe)
import Signal (setupSignalHandler)
@@ -133,6 +134,7 @@
| Template String
| OnScr String
| IconRoot String
+ | Position String
deriving Show
options :: [OptDescr Opts]
@@ -166,6 +168,8 @@
"Add to the list of commands to be executed"
, Option "x" ["screen"] (ReqArg OnScr "screen")
"On which X screen number to start"
+ , Option "p" ["position"] (ReqArg Position "position")
+ "Specify position of xmobar. Same syntax as in config file"
]
getOpts :: [String] -> IO ([Opts], [String])
@@ -219,6 +223,7 @@
AddCommand s -> case readCom 'C' s of
Right x -> doOpts' (conf {commands = commands conf ++ x})
Left e -> putStr (e ++ usage) >> exitWith (ExitFailure 1)
+ Position s -> readPosition s
where readCom c str =
case readStr str of
[x] -> Right x
@@ -226,3 +231,9 @@
"specified with the -" ++ c:" option\n")
readStr str = [x | (x,t) <- reads str, ("","") <- lex t]
doOpts' opts = doOpts opts oo
+ readPosition string =
+ case readMaybe string of
+ Just x -> doOpts' (conf { position = x })
+ Nothing -> do
+ putStrLn "Can't parse position option, ignoring"
+ doOpts' conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/BufferedPipeReader.hs new/xmobar-0.24.2/src/Plugins/BufferedPipeReader.hs
--- old/xmobar-0.23.1/src/Plugins/BufferedPipeReader.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/BufferedPipeReader.hs 2016-08-08 23:40:59.000000000 +0200
@@ -20,6 +20,7 @@
import System.IO
import System.IO.Unsafe(unsafePerformIO)
+import Environment
import Plugins
import Signal
@@ -51,7 +52,8 @@
reader :: (Int, Bool, FilePath) -> TChan (Int, Bool, String) -> IO ()
reader p@(to, tg, fp) tc = do
- openFile fp ReadWriteMode >>= hGetLineSafe >>= \dt ->
+ fp' <- expandEnv fp
+ openFile fp' ReadWriteMode >>= hGetLineSafe >>= \dt ->
atomically $ writeTChan tc (to, tg, dt)
reader p tc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Kbd.hsc new/xmobar-0.24.2/src/Plugins/Kbd.hsc
--- old/xmobar-0.23.1/src/Plugins/Kbd.hsc 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Kbd.hsc 2016-08-08 23:40:59.000000000 +0200
@@ -101,15 +101,15 @@
--
data XkbKeyNameRec = XkbKeyNameRec {
- name :: Ptr CChar -- array
+ name :: Ptr CChar -- array
}
--
-- the t_ before alias is just because of name collisions
--
data XkbKeyAliasRec = XkbKeyAliasRec {
- real :: Ptr CChar, -- array
- t_alias :: Ptr CChar -- array
+ real :: Ptr CChar, -- array
+ t_alias :: Ptr CChar -- array
}
--
@@ -146,7 +146,7 @@
server :: Ptr CChar, -- XkbServerMapPtr ; dont' care
t_map :: Ptr CChar, --XkbClientMapPtr ; dont' care
t_indicators :: Ptr CChar, -- XkbIndicatorPtr ; dont' care
- names :: Ptr XkbNamesRec, -- array
+ names :: Ptr XkbNamesRec, -- array
t_compat :: Ptr CChar, -- XkbCompatMap ; dont' care
geom :: Ptr CChar -- XkbGeometryPtr ; dont' care
@@ -264,10 +264,10 @@
xkbFreeKeyboard :: (Ptr XkbDescRec) -> CUInt -> CInt -> IO ()
foreign import ccall unsafe "X11/XKBlib.h XkbSelectEventDetails"
- xkbSelectEventDetails :: Display -> CUInt -> CUInt -> CULong -> CULong -> IO CUInt
+ xkbSelectEventDetails :: Display -> CUInt -> CUInt -> CULong -> CULong -> IO CUInt
foreign import ccall unsafe "X11/XKBlib.h XkbSelectEvents"
- xkbSelectEvents :: Display -> CUInt -> CUInt -> CUInt -> IO CUInt
+ xkbSelectEvents :: Display -> CUInt -> CUInt -> CUInt -> IO CUInt
xkbUseCoreKbd :: CUInt
@@ -371,11 +371,11 @@
data Kbd = Kbd [(String, String)]
- deriving (Read, Show)
+ deriving (Read, Show)
instance Exec Kbd where
- alias (Kbd _) = "kbd"
- start (Kbd opts) cb = do
+ alias (Kbd _) = "kbd"
+ start (Kbd opts) cb = do
dpy <- openDisplay ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/MarqueePipeReader.hs new/xmobar-0.24.2/src/Plugins/MarqueePipeReader.hs
--- old/xmobar-0.23.1/src/Plugins/MarqueePipeReader.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/MarqueePipeReader.hs 2016-08-08 23:40:59.000000000 +0200
@@ -15,15 +15,17 @@
module Plugins.MarqueePipeReader where
import System.IO (openFile, IOMode(ReadWriteMode), Handle)
+import Environment
import Plugins (tenthSeconds, Exec(alias, start), hGetLineSafe)
import System.Posix.Files (getFileStatus, isNamedPipe)
import Control.Concurrent(forkIO, threadDelay)
import Control.Concurrent.STM (TChan, atomically, writeTChan, tryReadTChan, newTChan)
import Control.Exception
import Control.Monad(forever, unless)
+import Control.Applicative ((<$>))
type Length = Int -- length of the text to display
-type Rate = Int -- delay in tenth seconds
+type Rate = Int -- delay in tenth seconds
type Separator = String -- if text wraps around, use separator
data MarqueePipeReader = MarqueePipeReader String (Length, Rate, Separator) String
@@ -32,7 +34,7 @@
instance Exec MarqueePipeReader where
alias (MarqueePipeReader _ _ a) = a
start (MarqueePipeReader p (len, rate, sep) _) cb = do
- let (def, pipe) = split ':' p
+ (def, pipe) <- split ':' <$> expandEnv p
unless (null def) (cb def)
checkPipe pipe
h <- openFile pipe ReadWriteMode
@@ -47,16 +49,16 @@
pipeToChan :: Handle -> TChan String -> IO ()
pipeToChan h chan = do
- line <- hGetLineSafe h
+ line <- hGetLineSafe h
atomically $ writeTChan chan line
writer :: String -> Separator -> Length -> Rate -> TChan String -> (String -> IO ()) -> IO ()
-writer txt sep len rate chan cb = do
+writer txt sep len rate chan cb = do
cb (take len txt)
mbnext <- atomically $ tryReadTChan chan
case mbnext of
Just new -> writer (toInfTxt new sep) sep len rate chan cb
- Nothing -> tenthSeconds rate >> writer (drop 1 txt) sep len rate chan cb
+ Nothing -> tenthSeconds rate >> writer (drop 1 txt) sep len rate chan cb
toInfTxt :: String -> String -> String
toInfTxt line sep = concat (repeat $ line ++ " " ++ sep ++ " ")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors/Batt.hs new/xmobar-0.24.2/src/Plugins/Monitors/Batt.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors/Batt.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Monitors/Batt.hs 2016-08-08 23:40:59.000000000 +0200
@@ -1,7 +1,7 @@
-----------------------------------------------------------------------------
-- |
-- Module : Plugins.Monitors.Batt
--- Copyright : (c) 2010, 2011, 2012, 2013 Jose A Ortega
+-- Copyright : (c) 2010, 2011, 2012, 2013, 2015, 2016 Jose A Ortega
-- (c) 2010 Andrea Rossato, Petr Rockai
-- License : BSD-style (see LICENSE)
--
@@ -21,6 +21,10 @@
import System.IO (IOMode(ReadMode), hGetLine, withFile)
import System.Posix.Files (fileExist)
import System.Console.GetOpt
+import Data.List (sort, sortBy, group)
+import Data.Maybe (fromMaybe)
+import Data.Ord (comparing)
+import Text.Read (readMaybe)
data BattOpts = BattOpts
{ onString :: String
@@ -48,8 +52,8 @@
, lowWColor = Nothing
, mediumWColor = Nothing
, highWColor = Nothing
- , lowThreshold = -12
- , highThreshold = -10
+ , lowThreshold = 10
+ , highThreshold = 12
, onlineFile = "AC/online"
, scale = 1e6
, onIconPattern = Nothing
@@ -84,7 +88,7 @@
(o, _, []) -> return $ foldr id defaultOpts o
(_, _, errs) -> ioError . userError $ concat errs
-data Status = Charging | Discharging | Idle
+data Status = Charging | Discharging | Full | Idle | Unknown deriving (Read, Eq)
data Result = Result Float Float Float Status | NA
@@ -101,6 +105,7 @@
, fNow :: String
, fVoltage :: String
, fCurrent :: String
+ , fStatus :: String
, isCurrent :: Bool
} | NoFiles
@@ -108,6 +113,7 @@
{ full :: !Float
, now :: !Float
, power :: !Float
+ , status :: !String
}
safeFileExist :: String -> String -> IO Bool
@@ -132,6 +138,7 @@
, fNow = prefix </> ch ++ "_now"
, fCurrent = prefix </> cf
, fVoltage = prefix </> "voltage_now"
+ , fStatus = prefix </> "status"
, isCurrent = not ip}
haveAc :: FilePath -> IO Bool
@@ -140,17 +147,27 @@
where onError = const (return False) :: SomeException -> IO Bool
readBattery :: Float -> Files -> IO Battery
-readBattery _ NoFiles = return $ Battery 0 0 0
+readBattery _ NoFiles = return $ Battery 0 0 0 "Idle"
readBattery sc files =
do a <- grab $ fFull files
b <- grab $ fNow files
d <- grab $ fCurrent files
+ s <- grabs $ fStatus files
let sc' = if isCurrent files then sc / 10 else sc
- return $ Battery (3600 * a / sc') -- wattseconds
+ a' = max a b -- sometimes the reported max charge is lower than
+ return $ Battery (3600 * a' / sc') -- wattseconds
(3600 * b / sc') -- wattseconds
(d / sc') -- watts
+ s -- string: Discharging/Charging/Full
where grab f = handle onError $ withFile f ReadMode (fmap read . hGetLine)
onError = const (return (-1)) :: SomeException -> IO Float
+ grabs f = handle onError' $ withFile f ReadMode hGetLine
+ onError' = const (return "Idle") :: SomeException -> IO String
+
+-- sortOn is only available starting at ghc 7.10
+sortOn :: Ord b => (a -> b) -> [a] -> [a]
+sortOn f =
+ map snd . sortBy (comparing fst) . map (\x -> let y = f x in y `seq` (y, x))
readBatteries :: BattOpts -> [Files] -> IO Result
readBatteries opts bfs =
@@ -160,13 +177,13 @@
ft = sum (map full bats)
left = if ft > 0 then sum (map now bats) / ft else 0
watts = sign * sum (map power bats)
- idle = watts == 0
- time = if idle then 0 else sum $ map time' bats
- mwatts = if idle then 1 else sign * watts
+ time = if watts == 0 then 0 else max 0 (sum $ map time' bats)
+ mwatts = if watts == 0 then 1 else sign * watts
time' b = (if ac then full b - now b else now b) / mwatts
- acst | idle = Idle
- | ac = Charging
- | otherwise = Discharging
+ statuses :: [Status]
+ statuses = map (fromMaybe Unknown . readMaybe)
+ (sort (map status bats))
+ acst = head $ last $ sortOn length (group statuses)
return $ if isNaN left then NA else Result left watts time acst
runBatt :: [String] -> Monitor String
@@ -178,12 +195,13 @@
c <- io $ readBatteries opts =<< mapM batteryFiles bfs
suffix <- getConfigValue useSuffix
d <- getConfigValue decDigits
+ nas <- getConfigValue naString
case c of
Result x w t s ->
do l <- fmtPercent x
ws <- fmtWatts w opts suffix d
si <- getIconPattern opts s x
- parseTemplate (l ++ [fmtStatus opts s, fmtTime $ floor t, ws, si])
+ parseTemplate (l ++ [fmtStatus opts s nas, fmtTime $ floor t, ws, si])
NA -> getConfigValue naString
where fmtPercent :: Float -> Monitor [String]
fmtPercent x = do
@@ -200,18 +218,22 @@
then minutes else '0' : minutes
where hours = show (x `div` 3600)
minutes = show ((x `mod` 3600) `div` 60)
- fmtStatus opts Idle = idleString opts
- fmtStatus opts Charging = onString opts
- fmtStatus opts Discharging = offString opts
+ fmtStatus opts Idle _ = idleString opts
+ fmtStatus _ Unknown na = na
+ fmtStatus opts Full _ = idleString opts
+ fmtStatus opts Charging _ = onString opts
+ fmtStatus opts Discharging _ = offString opts
maybeColor Nothing str = str
maybeColor (Just c) str = "<fc=" ++ c ++ ">" ++ str ++ "</fc>"
color x o | x >= 0 = maybeColor (posColor o)
| -x >= highThreshold o = maybeColor (highWColor o)
| -x >= lowThreshold o = maybeColor (mediumWColor o)
| otherwise = maybeColor (lowWColor o)
- getIconPattern opts status x = do
+ getIconPattern opts st x = do
let x' = minimum [1, x]
- case status of
+ case st of
+ Unknown -> showIconPattern (offIconPattern opts) x'
Idle -> showIconPattern (idleIconPattern opts) x'
+ Full -> showIconPattern (idleIconPattern opts) x'
Charging -> showIconPattern (onIconPattern opts) x'
Discharging -> showIconPattern (offIconPattern opts) x'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors/Common.hs new/xmobar-0.24.2/src/Plugins/Monitors/Common.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors/Common.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Monitors/Common.hs 2016-08-08 23:40:59.000000000 +0200
@@ -1,7 +1,7 @@
-----------------------------------------------------------------------------
-- |
-- Module : Plugins.Monitors.Common
--- Copyright : (c) 2010, 2011, 2013 Jose Antonio Ortega Ruiz
+-- Copyright : (c) 2010, 2011, 2013, 2016 Jose Antonio Ortega Ruiz
-- (c) 2007-2010 Andrea Rossato
-- License : BSD-style (see LICENSE)
--
@@ -83,23 +83,24 @@
data MConfig =
MC { normalColor :: IORef (Maybe String)
- , low :: IORef Int
- , lowColor :: IORef (Maybe String)
- , high :: IORef Int
- , highColor :: IORef (Maybe String)
- , template :: IORef String
- , export :: IORef [String]
- , ppad :: IORef Int
- , decDigits :: IORef Int
- , minWidth :: IORef Int
- , maxWidth :: IORef Int
- , padChars :: IORef String
- , padRight :: IORef Bool
- , barBack :: IORef String
- , barFore :: IORef String
- , barWidth :: IORef Int
- , useSuffix :: IORef Bool
- , naString :: IORef String
+ , low :: IORef Int
+ , lowColor :: IORef (Maybe String)
+ , high :: IORef Int
+ , highColor :: IORef (Maybe String)
+ , template :: IORef String
+ , export :: IORef [String]
+ , ppad :: IORef Int
+ , decDigits :: IORef Int
+ , minWidth :: IORef Int
+ , maxWidth :: IORef Int
+ , padChars :: IORef String
+ , padRight :: IORef Bool
+ , barBack :: IORef String
+ , barFore :: IORef String
+ , barWidth :: IORef Int
+ , useSuffix :: IORef Bool
+ , naString :: IORef String
+ , maxTotalWidth :: IORef Int
}
-- | from 'http:\/\/www.haskell.org\/hawiki\/MonadState'
@@ -144,7 +145,8 @@
bw <- newIORef 10
up <- newIORef False
na <- newIORef "N/A"
- return $ MC nc l lc h hc t e p d mn mx pc pr bb bf bw up na
+ mt <- newIORef 0
+ return $ MC nc l lc h hc t e p d mn mx pc pr bb bf bw up na mt
data Opts = HighColor String
| NormalColor String
@@ -164,6 +166,7 @@
| BarWidth String
| UseSuffix String
| NAString String
+ | MaxTotalWidth String
options :: [OptDescr Opts]
options =
@@ -186,6 +189,7 @@
, Option "f" ["bfore"] (ReqArg BarFore "bar foreground") "Characters used to draw bar foregrounds"
, Option "W" ["bwidth"] (ReqArg BarWidth "bar width") "Bar width"
, Option "x" ["nastring"] (ReqArg NAString "N/A string") "String used when the monitor is not available"
+ , Option "T" ["maxtwidth"] (ReqArg MaxTotalWidth "Maximum total width") "Maximum total width"
]
doArgs :: [String] -> ([String] -> Monitor String) -> ([String] -> Monitor Bool) -> Monitor String
@@ -223,7 +227,8 @@
BarFore s -> setConfigValue s barFore
BarWidth w -> setConfigValue (nz w) barWidth
UseSuffix u -> setConfigValue (bool u) useSuffix
- NAString s -> setConfigValue s naString) >> next
+ NAString s -> setConfigValue s naString
+ MaxTotalWidth w -> setConfigValue (nz w) maxTotalWidth) >> next
runM :: [String] -> IO MConfig -> ([String] -> Monitor String) -> Int
-> (String -> IO ()) -> IO ()
@@ -324,13 +329,16 @@
-- | Takes a list of strings that represent the values of the exported
-- keys. The strings are joined with the exported keys to form a map
-- to be combined with 'combine' to the parsed template. Returns the
--- final output of the monitor.
+-- final output of the monitor, trimmed to MaxTotalWidth if that
+-- configuration value is positive.
parseTemplate :: [String] -> Monitor String
parseTemplate l =
do t <- getConfigValue template
e <- getConfigValue export
+ w <- getConfigValue maxTotalWidth
let m = Map.fromList . zip e $ l
- parseTemplate' t m
+ s <- parseTemplate' t m
+ return $ if w > 0 && length s > w then take w s else s
-- | Parses the template given to it with a map of export values and combines
-- them
@@ -488,7 +496,7 @@
where t = 9600 + (round val `div` 12)
showLogBar :: Float -> Float -> Monitor String
-showLogBar f v =
+showLogBar f v =
let intConfig c = fromIntegral `fmap` getConfigValue c
in do
h <- intConfig high
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors/MPD.hs new/xmobar-0.24.2/src/Plugins/Monitors/MPD.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors/MPD.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Monitors/MPD.hs 2016-08-08 23:40:59.000000000 +0200
@@ -26,7 +26,7 @@
[ "bar", "vbar", "ipat", "state", "statei", "volume", "length"
, "lapsed", "remaining", "plength", "ppos", "flags", "file"
, "name", "artist", "composer", "performer"
- , "album", "title", "track", "genre"
+ , "album", "title", "track", "genre", "date"
]
data MOpts = MOpts
@@ -63,7 +63,7 @@
mpdWait :: IO ()
mpdWait = do
- status <- M.withMPD $ M.idle [M.PlayerS, M.MixerS]
+ status <- M.withMPD $ M.idle [M.PlayerS, M.MixerS, M.OptionsS]
case status of
Left _ -> threadDelay 10000000
_ -> return ()
@@ -126,7 +126,7 @@
parseSong (Right (Just s)) =
let str sel = maybe "" (intercalate ", " . map M.toString) (M.sgGetTag sel s)
sels = [ M.Name, M.Artist, M.Composer, M.Performer
- , M.Album, M.Title, M.Track, M.Genre ]
+ , M.Album, M.Title, M.Track, M.Genre, M.Date ]
fields = M.toString (M.sgFilePath s) : map str sels
in mapM showWithPadding fields
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors/Mpris.hs new/xmobar-0.24.2/src/Plugins/Monitors/Mpris.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors/Mpris.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Monitors/Mpris.hs 2016-08-08 23:40:59.000000000 +0200
@@ -84,7 +84,7 @@
runMPRIS :: (MprisVersion a) => a -> String -> [String] -> Monitor String
runMPRIS version playerName _ = do
metadata <- io $ getMetadata version dbusClient playerName
- parseTemplate $ makeList version metadata
+ mapM showWithPadding (makeList version metadata) >>= parseTemplate
runMPRIS1 :: String -> [String] -> Monitor String
runMPRIS1 = runMPRIS MprisVersion1
@@ -99,12 +99,15 @@
unpackMetadata :: [Variant] -> [(String, Variant)]
unpackMetadata [] = []
-unpackMetadata xs = (map (fromVar *** fromVar) . unpack . head) xs where
- unpack v = case variantType v of
- TypeDictionary _ _ -> dictionaryItems $ fromVar v
- TypeVariant -> unpack $ fromVar v
- TypeStructure _ -> unpack $ head $ structureItems $ fromVar v
- _ -> []
+unpackMetadata xs =
+ (map (fromVar *** fromVar) . unpack . head) xs where
+ unpack v = case variantType v of
+ TypeDictionary _ _ -> dictionaryItems $ fromVar v
+ TypeVariant -> unpack $ fromVar v
+ TypeStructure _ ->
+ let x = structureItems (fromVar v) in
+ if x == [] then [] else unpack (head x)
+ _ -> []
getMetadata :: (MprisVersion a) => a -> DC.Client -> String -> IO [(String, Variant)]
getMetadata version client player = do
@@ -136,5 +139,7 @@
case str of
"mpris:length" -> formatTime (num `div` 1000000)
_ -> (show::Int64 -> String) num
- TypeArray TypeString -> fromVar $ head $ arrayItems $ fromVar v
+ TypeArray TypeString ->
+ let x = arrayItems (fromVar v) in
+ if x == [] then "" else fromVar (head x)
_ -> ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors/UVMeter.hs new/xmobar-0.24.2/src/Plugins/Monitors/UVMeter.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors/UVMeter.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/xmobar-0.24.2/src/Plugins/Monitors/UVMeter.hs 2016-08-08 23:40:59.000000000 +0200
@@ -0,0 +1,150 @@
+{-# LANGUAGE OverloadedStrings #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module : Plugins.Monitors.UVMeter
+-- Copyright : (c) Róman Joost
+-- License : BSD-style (see LICENSE)
+--
+-- Maintainer : Róman Joost
+-- Stability : unstable
+-- Portability : unportable
+--
+-- An australian uv monitor for Xmobar
+--
+-----------------------------------------------------------------------------
+
+module Plugins.Monitors.UVMeter where
+
+import Plugins.Monitors.Common
+
+import qualified Control.Exception as CE
+import Control.Applicative hiding ((<|>),many)
+import Network.HTTP
+import Text.Read (readMaybe)
+import Text.Parsec
+import Text.Parsec.String
+
+
+uvConfig :: IO MConfig
+uvConfig = mkMConfig
+ "<station>" -- template
+ ["station" -- available replacements
+ ]
+
+data UvInfo = UV { index :: String }
+ deriving (Show)
+
+uvURL :: String
+uvURL = "http://www.arpansa.gov.au/uvindex/realtime/xml/uvvalues.xml"
+
+getData :: IO String
+getData = do
+ let request = getRequest uvURL
+ CE.catch (simpleHTTP request >>= getResponseBody) errHandler
+ where errHandler :: CE.IOException -> IO String
+ errHandler _ = return "<Could not retrieve data>"
+
+textToXMLDocument :: String -> Either ParseError [XML]
+textToXMLDocument = parse document ""
+
+formatUVRating :: Maybe Float -> Monitor String
+formatUVRating Nothing = getConfigValue naString
+formatUVRating (Just x) = do
+ uv <- showWithColors show x
+ parseTemplate [uv]
+
+getUVRating :: String -> [XML] -> Maybe Float
+getUVRating locID (Element "stations" _ y:_) = getUVRating locID y
+getUVRating locID (Element "location" [Attribute attr] ys:xs)
+ | locID == snd attr = getUVRating locID ys
+ | otherwise = getUVRating locID xs
+getUVRating _ (Element "index" [] [Body rate]:_) = readMaybe rate
+getUVRating locID (_:xs) = getUVRating locID xs
+getUVRating _ [] = Nothing
+
+
+runUVMeter :: [String] -> Monitor String
+runUVMeter [] = return "N.A."
+runUVMeter (s:_) = do
+ resp <- io getData
+ case textToXMLDocument resp of
+ Right doc -> formatUVRating (getUVRating s doc)
+ Left _ -> getConfigValue naString
+
+-- | XML Parsing code comes here.
+-- This is a very simple XML parser to just deal with the uvvalues.xml
+-- provided by ARPANSA. If you work on a new plugin which needs an XML
+-- parser perhaps consider using a real XML parser and refactor this
+-- plug-in to us it as well.
+--
+-- Note: This parser can not deal with short tags.
+--
+-- Kudos to: Charlie Harvey for his article about writing an XML Parser
+-- with Parsec.
+--
+
+type AttrName = String
+type AttrValue = String
+
+data Attribute = Attribute (AttrName, AttrValue)
+ deriving (Show)
+
+data XML = Element String [Attribute] [XML]
+ | Decl String
+ | Body String
+ deriving (Show)
+
+-- | parse the document
+--
+document :: Parser [XML]
+document = do
+ spaces
+ y <- try xmlDecl <|> tag
+ spaces
+ x <- many tag
+ spaces
+ return (y : x)
+
+-- | parse any tags
+--
+tag :: Parser XML
+tag = do
+ char '<'
+ spaces
+ name <- many (letter <|> digit)
+ spaces
+ attr <- many attribute
+ spaces
+ string ">"
+ eBody <- many elementBody
+ endTag name
+ spaces
+ return (Element name attr eBody)
+
+xmlDecl :: Parser XML
+xmlDecl = do
+ string "<?xml"
+ decl <- many (noneOf "?>")
+ string "?>"
+ return (Decl decl)
+
+elementBody :: Parser XML
+elementBody = spaces *> try tag <|> text
+
+endTag :: String -> Parser String
+endTag str = string "</" *> string str <* char '>'
+
+text :: Parser XML
+text = Body <$> many1 (noneOf "><")
+
+attribute :: Parser Attribute
+attribute = do
+ name <- many (noneOf "= />")
+ spaces
+ char '='
+ spaces
+ char '"'
+ value <- many (noneOf "\"")
+ char '"'
+ spaces
+ return (Attribute (name, value))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors/Volume.hs new/xmobar-0.24.2/src/Plugins/Monitors/Volume.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors/Volume.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Monitors/Volume.hs 2016-08-08 23:40:59.000000000 +0200
@@ -15,7 +15,7 @@
module Plugins.Monitors.Volume (runVolume, volumeConfig) where
import Control.Applicative ((<$>))
-import Control.Monad ( join, liftM2, liftM3, mplus )
+import Control.Monad ( liftM2, liftM3, mplus )
import Data.Traversable (sequenceA)
import Plugins.Monitors.Common
import Sound.ALSA.Mixer
@@ -144,12 +144,14 @@
(const $ return (Nothing, Nothing, Nothing, Nothing, Nothing))
volumeControl :: Maybe Control -> Maybe Volume
- volumeControl c = join $
- (playback . volume <$> c) `mplus` (common . volume <$> c)
+ volumeControl c = (playback . volume =<< c)
+ `mplus` (capture . volume =<< c)
+ `mplus` (common . volume =<< c)
switchControl :: Maybe Control -> Maybe Switch
- switchControl c = join $
- (playback . switch <$> c) `mplus` (common . switch <$> c)
+ switchControl c = (playback . switch =<< c)
+ `mplus` (capture . switch =<< c)
+ `mplus` (common . switch =<< c)
liftMaybe :: Maybe (IO (a,b)) -> IO (Maybe a, Maybe b)
liftMaybe = fmap (liftM2 (,) (fmap fst) (fmap snd)) . sequenceA
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors/Weather.hs new/xmobar-0.24.2/src/Plugins/Monitors/Weather.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors/Weather.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Monitors/Weather.hs 2016-08-08 23:40:59.000000000 +0200
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
-- |
-- Module : Plugins.Monitors.Weather
@@ -18,7 +19,14 @@
import qualified Control.Exception as CE
+#ifdef HTTP_CONDUIT
+import Network.HTTP.Conduit
+import Network.HTTP.Types.Status
+import Network.HTTP.Types.Method
+import qualified Data.ByteString.Lazy.Char8 as B
+#else
import Network.HTTP
+#endif
import Text.ParserCombinators.Parsec
@@ -35,6 +43,8 @@
, "windAzimuth"
, "windMph"
, "windKnots"
+ , "windKmh"
+ , "windMs"
, "visibility"
, "skyCondition"
, "tempC"
@@ -45,6 +55,16 @@
, "pressure"
]
+data WindInfo =
+ WindInfo {
+ windCardinal :: String -- cardinal direction
+ , windAzimuth :: String -- azimuth direction
+ , windMph :: String -- speed (MPH)
+ , windKnots :: String -- speed (knot)
+ , windKmh :: String -- speed (km/h)
+ , windMs :: String -- speed (m/s)
+ } deriving (Show)
+
data WeatherInfo =
WI { stationPlace :: String
, stationState :: String
@@ -52,10 +72,7 @@
, month :: String
, day :: String
, hour :: String
- , windCardinal :: String
- , windAzimuth :: String
- , windMph :: String
- , windKnots :: String
+ , windInfo :: WindInfo
, visibility :: String
, skyCondition :: String
, tempC :: Int
@@ -77,34 +94,26 @@
char ' '
return (y, m, d ,h:hh:":"++mi:mimi)
--- Occasionally there is no wind and a METAR report gives simply, "Wind: Calm:0"
-pWind0 ::
- (
- String -- cardinal direction
- , String -- azimuth direction
- , String -- speed (MPH)
- , String -- speed (knot)
- )
-pWind0 =
- ("μ", "μ", "0", "0")
-
-pWind ::
- Parser (
- String -- cardinal direction
- , String -- azimuth direction
- , String -- speed (MPH)
- , String -- speed (knot)
- )
+noWind :: WindInfo
+noWind = WindInfo "μ" "μ" "0" "0" "0" "0"
+
+pWind :: Parser WindInfo
pWind =
let tospace = manyTill anyChar (char ' ')
+ toKmh knots = knots $* 1.852
+ toMs knots = knots $* 0.514
+ ($*) :: String -> Double -> String
+ op1 $* op2 = show (round ((read op1::Double) * op2)::Integer)
+
+ -- Occasionally there is no wind and a METAR report gives simply, "Wind: Calm:0"
wind0 = do manyTill skipRestOfLine (string "Wind: Calm:0")
- return pWind0
+ return noWind
windVar = do manyTill skipRestOfLine (string "Wind: Variable at ")
mph <- tospace
string "MPH ("
knot <- tospace
manyTill anyChar newline
- return ("μ", "μ", mph, knot)
+ return $ WindInfo "μ" "μ" mph knot (toKmh knot) (toMs knot)
wind = do manyTill skipRestOfLine (string "Wind: from the ")
cardinal <- tospace
char '('
@@ -114,8 +123,8 @@
string "MPH ("
knot <- tospace
manyTill anyChar newline
- return (cardinal, azimuth, mph, knot)
- in try wind0 <|> try windVar <|> wind
+ return $ WindInfo cardinal azimuth mph knot (toKmh knot) (toMs knot)
+ in try wind0 <|> try windVar <|> try wind <|> return noWind
pTemp :: Parser (Int, Int)
pTemp = do let num = digit <|> char '-' <|> char '.'
@@ -159,7 +168,7 @@
)
skipRestOfLine >> getAllBut "/"
(y,m,d,h) <- pTime
- (wc, wa, wm, wk) <- pWind
+ w <- pWind
v <- getAfterString "Visibility: "
sk <- getAfterString "Sky conditions: "
skipTillString "Temperature: "
@@ -171,26 +180,38 @@
skipTillString "Pressure (altimeter): "
p <- pPressure
manyTill skipRestOfLine eof
- return [WI st ss y m d h wc wa wm wk v sk tC tF dC dF rh p]
+ return [WI st ss y m d h w v sk tC tF dC dF rh p]
defUrl :: String
-defUrl = "http://weather.noaa.gov/pub/data/observations/metar/decoded/"
+-- "http://weather.noaa.gov/pub/data/observations/metar/decoded/"
+defUrl = "http://tgftp.nws.noaa.gov/data/observations/metar/decoded/"
stationUrl :: String -> String
stationUrl station = defUrl ++ station ++ ".TXT"
getData :: String -> IO String
+#ifdef HTTP_CONDUIT
+getData station = CE.catch (do
+ manager <- newManager tlsManagerSettings
+ request <- parseUrl $ stationUrl station
+ res <- httpLbs request manager
+ return $ B.unpack $ responseBody res
+ ) errHandler
+ where errHandler :: CE.SomeException -> IO String
+ errHandler _ = return "<Could not retrieve data>"
+#else
getData station = do
let request = getRequest (stationUrl station)
CE.catch (simpleHTTP request >>= getResponseBody) errHandler
where errHandler :: CE.IOException -> IO String
errHandler _ = return "<Could not retrieve data>"
+#endif
formatWeather :: [WeatherInfo] -> Monitor String
-formatWeather [WI st ss y m d h wc wa wm wk v sk tC tF dC dF r p] =
+formatWeather [WI st ss y m d h (WindInfo wc wa wm wk wkh wms) v sk tC tF dC dF r p] =
do cel <- showWithColors show tC
far <- showWithColors show tF
- parseTemplate [st, ss, y, m, d, h, wc, wa, wm, wk, v, sk, cel, far, show dC, show dF, show r , show p ]
+ parseTemplate [st, ss, y, m, d, h, wc, wa, wm, wk, wkh, wms, v, sk, cel, far, show dC, show dF, show r , show p ]
formatWeather _ = getConfigValue naString
runWeather :: [String] -> Monitor String
@@ -200,6 +221,21 @@
formatWeather i
weatherReady :: [String] -> Monitor Bool
+#ifdef HTTP_CONDUIT
+weatherReady str = do
+ initRequest <- parseUrl $ stationUrl $ head str
+ let request = initRequest{method = methodHead}
+ io $ CE.catch ( do
+ manager <- newManager tlsManagerSettings
+ res <- httpLbs request manager
+ return $ checkResult $responseStatus res ) errHandler
+ where errHandler :: CE.SomeException -> IO Bool
+ errHandler _ = return False
+ checkResult status
+ | statusIsServerError status = False
+ | statusIsClientError status = False
+ | otherwise = True
+#else
weatherReady str = do
let station = head str
request = headRequest (stationUrl station)
@@ -216,3 +252,4 @@
(4, _, _) -> return False
(5, _, _) -> return False
(_, _, _) -> return True
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/Monitors.hs new/xmobar-0.24.2/src/Plugins/Monitors.hs
--- old/xmobar-0.23.1/src/Plugins/Monitors.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/Monitors.hs 2016-08-08 23:40:59.000000000 +0200
@@ -36,6 +36,9 @@
import Plugins.Monitors.Top
import Plugins.Monitors.Uptime
import Plugins.Monitors.CatInt
+#ifdef UVMETER
+import Plugins.Monitors.UVMeter
+#endif
#ifdef IWLIB
import Plugins.Monitors.Wireless
#endif
@@ -71,6 +74,9 @@
| TopMem Args Rate
| Uptime Args Rate
| CatInt Int FilePath Args Rate
+#ifdef UVMETER
+ | UVMeter Station Args Rate
+#endif
#ifdef IWLIB
| Wireless Interface Args Rate
#endif
@@ -119,6 +125,9 @@
alias (DiskIO {}) = "diskio"
alias (Uptime _ _) = "uptime"
alias (CatInt n _ _ _) = "cat" ++ show n
+#ifdef UVMETER
+ alias (UVMeter s _ _) = "uv " ++ s
+#endif
#ifdef IWLIB
alias (Wireless i _ _) = i ++ "wi"
#endif
@@ -155,6 +164,9 @@
start (DiskIO s a r) = startDiskIO s a r
start (Uptime a r) = runM a uptimeConfig runUptime r
start (CatInt _ s a r) = runM a catIntConfig (runCatInt s) r
+#ifdef UVMETER
+ start (UVMeter s a r) = runM (a ++ [s]) uvConfig runUVMeter r
+#endif
#ifdef IWLIB
start (Wireless i a r) = runM a wirelessConfig (runWireless i) r
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Plugins/PipeReader.hs new/xmobar-0.24.2/src/Plugins/PipeReader.hs
--- old/xmobar-0.23.1/src/Plugins/PipeReader.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Plugins/PipeReader.hs 2016-08-08 23:40:59.000000000 +0200
@@ -16,10 +16,12 @@
import System.IO
import Plugins
+import Environment
import System.Posix.Files
import Control.Concurrent(threadDelay)
import Control.Exception
import Control.Monad(forever, unless)
+import Control.Applicative ((<$>))
data PipeReader = PipeReader String String
deriving (Read, Show)
@@ -27,7 +29,7 @@
instance Exec PipeReader where
alias (PipeReader _ a) = a
start (PipeReader p _) cb = do
- let (def, pipe) = split ':' p
+ (def, pipe) <- split ':' <$> expandEnv p
unless (null def) (cb def)
checkPipe pipe
h <- openFile pipe ReadWriteMode
@@ -42,4 +44,4 @@
handle (\(SomeException _) -> waitForPipe) $ do
status <- getFileStatus file
unless (isNamedPipe status) waitForPipe
- where waitForPipe = threadDelay 1000 >> checkPipe file
+ where waitForPipe = threadDelay 1000000 >> checkPipe file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/XUtil.hsc new/xmobar-0.24.2/src/XUtil.hsc
--- old/xmobar-0.23.1/src/XUtil.hsc 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/XUtil.hsc 2016-08-08 23:40:59.000000000 +0200
@@ -33,6 +33,7 @@
import Control.Monad (when)
import Control.Monad.Trans
import Control.Exception (SomeException, handle)
+import Data.List
import Foreign
import Graphics.X11.Xlib hiding (textExtents, textWidth)
import qualified Graphics.X11.Xlib as Xlib (textExtents, textWidth)
@@ -49,7 +50,6 @@
# endif
#endif
#if defined XFT
-import Data.List
import MinXft
import Graphics.X11.Xrender
#endif
@@ -81,12 +81,18 @@
-- to the Xft backend Example: 'xft:Sans-10'
initFont :: Display ->String -> IO XFont
initFont d s =
-#ifdef XFT
let xftPrefix = "xft:" in
if xftPrefix `isPrefixOf` s then
+#ifdef XFT
fmap Xft $ initXftFont d s
- else
+#else
+ do
+ hPutStrLn stderr $ "Warning: Xmobar must be built with "
+ ++ "the with_xft flag to support font '" ++ s
+ ++ ".' Falling back on default."
+ initFont d miscFixedFont
#endif
+ else
#if defined UTF8 || __GLASGOW_HASKELL__ >= 612
fmap Utf8 $ initUtf8Font d s
#else
@@ -184,7 +190,7 @@
when (al == 255) $ do
(a,d) <- textExtents fs s
gi <- xftTxtExtents' dpy fonts s
- drawXftRect draw bc' x (y - a + 1) (xglyphinfo_xOff gi) (a + d + 1)
+ drawXftRect draw bc' x (y - a) (1 + xglyphinfo_xOff gi) (a + d + 2)
drawXftString' draw fc' fonts (toInteger x) (toInteger y) s
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/src/Xmobar.hs new/xmobar-0.24.2/src/Xmobar.hs
--- old/xmobar-0.23.1/src/Xmobar.hs 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/src/Xmobar.hs 2016-08-08 23:40:59.000000000 +0200
@@ -347,7 +347,7 @@
(fc,bc) = case break (==',') c of
(f,',':b) -> (f, b )
(f, _) -> (f, bgColor conf)
- valign <- verticalOffset ht s fontst conf
+ valign <- verticalOffset ht s (head fontlist) conf
case s of
(Text t) -> io $ printString d dr fontst gc fc bc offset valign t alph
(Icon p) -> io $ maybe (return ())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmobar-0.23.1/xmobar.cabal new/xmobar-0.24.2/xmobar.cabal
--- old/xmobar-0.23.1/xmobar.cabal 2015-04-14 19:08:19.000000000 +0200
+++ new/xmobar-0.24.2/xmobar.cabal 2016-08-08 23:40:59.000000000 +0200
@@ -1,5 +1,5 @@
name: xmobar
-version: 0.23.1
+version: 0.24.2
homepage: http://xmobar.org
synopsis: A Minimalistic Text Based Status Bar
description: Xmobar is a minimalistic text based status bar.
@@ -74,12 +74,21 @@
description: Use threaded runtime.
default: False
+flag with_uvmeter
+ description: UVMeter only useful to australians.
+ default: False
+
+flag with_conduit
+ description: Use http-conduits for getting weather data
+ default: False
+
executable xmobar
hs-source-dirs: src
main-is: Main.hs
other-modules:
Xmobar, Actions, Bitmap, Config, Parsers, Commands, Localize,
XUtil, XPMFile, StatFS, Runnable, ColorCache, Window, Signal,
+ Environment,
Plugins, Plugins.BufferedPipeReader,
Plugins.CommandReader, Plugins.Date, Plugins.EWMH,
Plugins.PipeReader, Plugins.MarqueePipeReader,
@@ -93,9 +102,9 @@
Plugins.Monitors.Swap, Plugins.Monitors.Thermal,
Plugins.Monitors.ThermalZone, Plugins.Monitors.Top,
Plugins.Monitors.Uptime, Plugins.Monitors.Weather,
- Plugins.Monitors.Bright, Plugins.Monitors.CatInt
+ Plugins.Monitors.Bright, Plugins.Monitors.CatInt,
+ Plugins.Monitors.UVMeter
- ghc-prof-options: -prof -auto-all
ghc-options: -funbox-strict-fields -Wall -fno-warn-unused-do-bind
extra-libraries: Xrandr Xrender
@@ -117,6 +126,11 @@
HTTP >= 4000.2.4,
stm >= 2.3 && < 2.5
+ if flag(with_conduit)
+ -- use http-conduit instead of simple-http
+ build-depends: http-conduit, http-types
+ cpp-options: -DHTTP_CONDUIT
+
if flag(with_threaded)
-- -threaded is a workaround for 100% CPU busy loop
-- (http://hackage.haskell.org/trac/ghc/ticket/4934)
@@ -152,7 +166,7 @@
cpp-options: -DLIBMPD
if flag(with_alsa) || flag(all_extensions)
- build-depends: alsa-mixer == 0.2.*
+ build-depends: alsa-mixer > 0.2.0.2
build-depends: alsa-core == 0.5.*
other-modules: Plugins.Monitors.Volume
cpp-options: -DALSA
@@ -176,3 +190,6 @@
extra-libraries: Xpm
other-modules: XPMFile
cpp-options: -DXPM
+
+ if flag(with_uvmeter)
+ cpp-options: -DUVMETER
1
0
Hello community,
here is the log from the commit of package yast2-firstboot for openSUSE:Factory checked in at 2016-08-25 09:57:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-firstboot (Old)
and /work/SRC/openSUSE:Factory/.yast2-firstboot.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-firstboot"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-firstboot/yast2-firstboot.changes 2016-08-13 18:30:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-firstboot.new/yast2-firstboot.changes 2016-08-25 09:57:31.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 24 11:22:55 UTC 2016 - jreidinger(a)suse.com
+
+- fix not showing errors as popup in firstboot (bnc#994892)
+- 3.1.17
+
+-------------------------------------------------------------------
Old:
----
yast2-firstboot-3.1.16.tar.bz2
New:
----
yast2-firstboot-3.1.17.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-firstboot.spec ++++++
--- /var/tmp/diff_new_pack.19Puvz/_old 2016-08-25 09:57:32.000000000 +0200
+++ /var/tmp/diff_new_pack.19Puvz/_new 2016-08-25 09:57:32.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-firstboot
-Version: 3.1.16
+Version: 3.1.17
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-firstboot-3.1.16.tar.bz2 -> yast2-firstboot-3.1.17.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firstboot-3.1.16/CONTRIBUTING.md new/yast2-firstboot-3.1.17/CONTRIBUTING.md
--- old/yast2-firstboot-3.1.16/CONTRIBUTING.md 2016-08-12 17:02:42.000000000 +0200
+++ new/yast2-firstboot-3.1.17/CONTRIBUTING.md 2016-08-24 14:00:13.000000000 +0200
@@ -3,7 +3,7 @@
YaST is an open source project and as such it welcomes all kinds of
contributions. If you decide to contribute, please follow these guidelines to
-ensure the process is effective and pleasant both for you and YaST maintainers.
+ensure the process is effective and pleasant both for you and the YaST maintainers.
There are two main forms of contribution: reporting bugs and performing code
changes.
@@ -17,13 +17,11 @@
registration](https://secure-www.novell.com/selfreg/jsp/createSimpleAccount…
if you don't have an account yet.)
-If you find a problem, please report it either using
-[Bugzilla](https://bugzilla.suse.com/) or GitHub issues. We can't guarantee
-that every bug will be fixed, but we'll try.
-
When creating a bug report, please follow our [bug reporting
guidelines](http://en.opensuse.org/openSUSE:Report_a_YaST_bug).
+We can't guarantee that every bug will be fixed, but we'll try.
+
Code Changes
------------
@@ -44,15 +42,22 @@
to the [Ruby style
guide](https://github.com/SUSE/style-guides/blob/master/Ruby.md).
- 4. Make sure your change didn't break anything by building the RPM package
+ 4. Update the package version (in `packages/*.spec`, usually by
+ `rake version:bump`) and add a new entry to the `package/*.changes` file
+ (by `osc vc package`).
+ For bigger changes or changes which need longer discussion it is advised to
+ add this as a separate last commit so it can be easily updated when another
+ change is merged in the meantime.
+
+ 5. Make sure your change didn't break anything by building the RPM package
(`rake osc:build`). The build process includes running the full testsuite.
- 5. Publish the branch and create a pull request.
+ 6. Publish the branch and create a pull request.
- 6. YaST developers will review your change and possibly point out issues.
+ 7. YaST developers will review your change and possibly point out issues.
Adapt the code under their guidance until they are all resolved.
- 7. Finally, the pull request will get merged or rejected.
+ 8. Finally, the pull request will get merged or rejected.
See also [GitHub's guide on
contributing](https://help.github.com/articles/fork-a-repo).
@@ -60,9 +65,6 @@
If you want to do multiple unrelated changes, use separate branches and pull
requests.
-Do not change the `VERSION` and `*.changes` files as this could lead to
-conflicts.
-
### Commits
Each commit in the pull request should do only one thing, which is clearly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firstboot-3.1.16/package/yast2-firstboot.changes new/yast2-firstboot-3.1.17/package/yast2-firstboot.changes
--- old/yast2-firstboot-3.1.16/package/yast2-firstboot.changes 2016-08-12 17:02:42.000000000 +0200
+++ new/yast2-firstboot-3.1.17/package/yast2-firstboot.changes 2016-08-24 14:00:13.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Wed Aug 24 11:22:55 UTC 2016 - jreidinger(a)suse.com
+
+- fix not showing errors as popup in firstboot (bnc#994892)
+- 3.1.17
+
+-------------------------------------------------------------------
Fri Aug 12 14:45:25 UTC 2016 - ancor(a)suse.com
- Faster response when the user skips the creation of a new user
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firstboot-3.1.16/package/yast2-firstboot.spec new/yast2-firstboot-3.1.17/package/yast2-firstboot.spec
--- old/yast2-firstboot-3.1.16/package/yast2-firstboot.spec 2016-08-12 17:02:42.000000000 +0200
+++ new/yast2-firstboot-3.1.17/package/yast2-firstboot.spec 2016-08-24 14:00:13.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-firstboot
-Version: 3.1.16
+Version: 3.1.17
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firstboot-3.1.16/src/lib/y2firstboot/clients/user.rb new/yast2-firstboot-3.1.17/src/lib/y2firstboot/clients/user.rb
--- old/yast2-firstboot-3.1.16/src/lib/y2firstboot/clients/user.rb 2016-08-12 17:02:42.000000000 +0200
+++ new/yast2-firstboot-3.1.17/src/lib/y2firstboot/clients/user.rb 2016-08-24 14:00:13.000000000 +0200
@@ -24,6 +24,7 @@
require "users/dialogs/inst_user_first"
Yast.import "Users"
Yast.import "UsersSimple"
+Yast.import "Progress"
module Y2Firstboot
module Clients
@@ -42,8 +43,9 @@
# Create user
if setup_all_users
# Do not mess with the progress indicator
- Yast::Users.SetGUI(false)
+ orig = Yast::Progress.set(false)
Yast::Users.Write
+ Yast::Progress.set(orig)
end
end
dialog_result
1
0
Hello community,
here is the log from the commit of package sdl-ball for openSUSE:Factory checked in at 2016-08-25 09:57:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sdl-ball (Old)
and /work/SRC/openSUSE:Factory/.sdl-ball.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sdl-ball"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sdl-ball/sdl-ball.changes 2014-11-15 12:28:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.sdl-ball.new/sdl-ball.changes 2016-08-25 09:57:28.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Aug 24 05:26:53 UTC 2016 - mailaender(a)opensuse.org
+
+- Add support for https://en.opensuse.org/openSUSE:AppStore
+
+-------------------------------------------------------------------
New:
----
sdl-ball.appdata.xml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sdl-ball.spec ++++++
--- /var/tmp/diff_new_pack.HmSEZQ/_old 2016-08-25 09:57:29.000000000 +0200
+++ /var/tmp/diff_new_pack.HmSEZQ/_new 2016-08-25 09:57:29.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package sdl-ball
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright Vincent Petry <PVince81(a)yahoo.fr>
#
# All modifications and additions to the file contributed by third parties
@@ -26,6 +26,8 @@
Url: http://dustedgames.blogspot.co.uk/p/sdl-ball_20.html
Source0: http://downloads.sourceforge.net/%{name}/%{version}/%{name}-%{version}.tar.…
Source1: %{name}.sh
+# PATCH-FEATURE-UPSTREAM https://sourceforge.net/p/sdl-ball/patches/6/
+Source2: %{name}.appdata.xml
# PATCH-FIX-UPSTREAM https://sourceforge.net/p/sdl-ball/patches/5/
Patch0: %{name}-%{version}-sdl-ball.desktop.patch
%if 0%{?suse_version}
@@ -97,6 +99,9 @@
# install Desktop file
install -Dm 0644 %{name}.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
+# install meta data
+install -Dm 0644 %{S:2} %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml
+
%if 0%{?suse_version}
%suse_update_desktop_file %{name}
%fdupes -s %{buildroot}%{_prefix}
@@ -107,6 +112,8 @@
%doc LICENSE.txt README
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
+%dir %{_datadir}/appdata
+%{_datadir}/appdata/%{name}.appdata.xml
%{_datadir}/pixmaps/%{name}.png
%{_libexecdir}/%{name}
1
0
Hello community,
here is the log from the commit of package transifex-client for openSUSE:Factory checked in at 2016-08-25 09:57:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transifex-client (Old)
and /work/SRC/openSUSE:Factory/.transifex-client.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "transifex-client"
Changes:
--------
--- /work/SRC/openSUSE:Factory/transifex-client/transifex-client.changes 2016-01-08 15:24:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.transifex-client.new/transifex-client.changes 2016-08-25 09:57:23.000000000 +0200
@@ -1,0 +2,16 @@
+Wed Aug 24 11:07:50 UTC 2016 - tchvatal(a)suse.com
+
+- Update download url to github
+
+-------------------------------------------------------------------
+Wed Aug 24 09:46:22 UTC 2016 - buschmann23(a)opensuse.org
+
+- Update to 0.12.2
+ * better proxy support
+- Update to 0.12.1
+ * support new style URLs
+ * better error handling
+- Update to 0.12.b
+ * fix support for downloading docx, xlsx
+
+-------------------------------------------------------------------
Old:
----
transifex-client-0.11.tar.gz
New:
----
0.12.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ transifex-client.spec ++++++
--- /var/tmp/diff_new_pack.LS0mJu/_old 2016-08-25 09:57:24.000000000 +0200
+++ /var/tmp/diff_new_pack.LS0mJu/_new 2016-08-25 09:57:24.000000000 +0200
@@ -17,24 +17,18 @@
Name: transifex-client
-Version: 0.11
+Version: 0.12.2
Release: 0
Summary: Transifex Command-line Client
License: GPL-2.0+
Group: Productivity/Text/Utilities
Url: https://github.com/transifex/transifex-client
-Source: https://pypi.python.org/packages/source/t/transifex-client/%{name}-%{versio…
-BuildRequires: python-devel
+Source: https://github.com/transifex/transifex-client/archive/%{version}.tar.gz
BuildRequires: python-mock
BuildRequires: python-setuptools
BuildRequires: python-urllib3
-%{py_requires}
-%if 0%{?suse_version} && 0%{?suse_version} <= 1110
-%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%else
-BuildArch: noarch
-%endif
Requires: python-setuptools
+BuildArch: noarch
%description
The Transifex Command-line Client is a command line tool that enables you
++++++ transifex-client-0.11.tar.gz -> 0.12.2.tar.gz ++++++
++++ 3270 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package calibre for openSUSE:Factory checked in at 2016-08-25 09:57:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/calibre (Old)
and /work/SRC/openSUSE:Factory/.calibre.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "calibre"
Changes:
--------
--- /work/SRC/openSUSE:Factory/calibre/calibre.changes 2016-07-30 00:27:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.calibre.new/calibre.changes 2016-08-25 09:57:18.000000000 +0200
@@ -1,0 +2,8 @@
+Wed Aug 24 07:48:25 UTC 2016 - tchvatal(a)suse.com
+
+- Remove 2nd part of the update disabling as it breaks with new code
+ now user can click and get the notification, but still it won't
+ be at least done automatically bnc#993644
+ * calibre-no-update.diff
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ calibre-no-update.diff ++++++
--- /var/tmp/diff_new_pack.MQlnV1/_old 2016-08-25 09:57:20.000000000 +0200
+++ /var/tmp/diff_new_pack.MQlnV1/_new 2016-08-25 09:57:20.000000000 +0200
@@ -13,15 +13,3 @@
parser.add_option('--ignore-plugins', default=False, action='store_true',
help=_('Ignore custom plugins, useful if you installed a plugin'
' that is preventing calibre from starting'))
-diff -burN calibre-2.9.0.orig/src/calibre/gui2/update.py calibre-2.9.0/src/calibre/gui2/update.py
---- calibre-2.9.0.orig/src/calibre/gui2/update.py 2014-11-09 20:09:54.082231864 +0800
-+++ calibre-2.9.0/src/calibre/gui2/update.py 2014-11-09 20:17:49.954767115 +0800
-@@ -154,6 +154,8 @@
- self.update_checker.signal.update_found.connect(self.update_found,
- type=Qt.QueuedConnection)
- self.update_checker.start()
-+ else:
-+ self.update_checker = None
-
- def recalc_update_label(self, number_of_plugin_updates):
- self.update_found(self.last_newest_calibre_version, number_of_plugin_updates)
1
0
Hello community,
here is the log from the commit of package httperf for openSUSE:Factory checked in at 2016-08-25 09:57:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/httperf (Old)
and /work/SRC/openSUSE:Factory/.httperf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "httperf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/httperf/httperf.changes 2016-04-30 23:31:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.httperf.new/httperf.changes 2016-08-25 09:57:16.000000000 +0200
@@ -2 +2,6 @@
-Wed Apr 27 13:24:06 UTC 2016 - mpluskal(a)suse.com
+Wed Aug 17 07:11:36 UTC 2016 - mpluskal(a)suse.com
+
+- Fix building on SLE-11
+
+-------------------------------------------------------------------
+Wed Apr 27 07:08:42 UTC 2016 - mpluskal(a)suse.com
@@ -4,0 +10,3 @@
+ * Add AC_CONFIG_MACRO_DIR
+ * added ACLOCAL_AMFLAGS to include m4
+ * apply https://github.com/httperf/httperf/issues/8 patch from rowan.li...(a)gmail.com
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ httperf.spec ++++++
--- /var/tmp/diff_new_pack.GhipnU/_old 2016-08-25 09:57:17.000000000 +0200
+++ /var/tmp/diff_new_pack.GhipnU/_new 2016-08-25 09:57:17.000000000 +0200
@@ -28,9 +28,9 @@
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
+BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: xz
-BuildRequires: pkgconfig(openssl)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -46,18 +46,20 @@
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -name '*.[ch]' |\
xargs sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g"
+chmod -x AUTHORS ChangeLog NEWS README.md TODO
%build
+mkdir m4
autoreconf -fiv
%configure
make %{?_smp_mflags}
%install
-make %{?_smp_mflags} DESTDIR=%{buildroot} install
+%make_install
%files
%defattr(-,root,root,-)
-%doc %attr(644,-,-) AUTHORS ChangeLog NEWS README.md TODO
+%doc AUTHORS ChangeLog NEWS README.md TODO
%{_bindir}/httperf
%{_mandir}/man1/httperf.1%{ext_man}
%{_mandir}/man1/idleconn.1%{ext_man}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.GhipnU/_old 2016-08-25 09:57:17.000000000 +0200
+++ /var/tmp/diff_new_pack.GhipnU/_new 2016-08-25 09:57:17.000000000 +0200
@@ -1,15 +1,14 @@
<services>
- <service mode="localonly" name="tar_scm">
+ <service mode="disabled" name="tar_scm">
<param name="url">git://github.com/httperf/httperf</param>
<param name="scm">git</param>
- <param name="exclude">.git</param>
<param name="changesgenerate">enable</param>
<param name="filename">httperf</param>
<param name="versionformat">0.9.0+git.%cd</param>
</service>
- <service mode="localonly" name="recompress">
+ <service mode="disabled" name="recompress">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
- <service mode="localonly" name="set_version"/>
+ <service mode="disabled" name="set_version"/>
</services>
1
0
Hello community,
here is the log from the commit of package virt-viewer for openSUSE:Factory checked in at 2016-08-25 09:57:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-viewer (Old)
and /work/SRC/openSUSE:Factory/.virt-viewer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-viewer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-viewer/virt-viewer.changes 2016-08-03 11:42:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.virt-viewer.new/virt-viewer.changes 2016-08-25 09:57:11.000000000 +0200
@@ -1,0 +2,9 @@
+Fri Aug 19 12:48:53 MDT 2016 - carnold(a)suse.com
+
+- bsc#983689 - virt-viewer shows Domain-0 on list of virtual
+ machines
+ virtview-dont-show-Domain-0.patch
+- Upstream bug fix
+ 813c775c-fix-filename-leak-on-transfer-dialog.patch
+
+-------------------------------------------------------------------
New:
----
813c775c-fix-filename-leak-on-transfer-dialog.patch
virtview-dont-show-Domain-0.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-viewer.spec ++++++
--- /var/tmp/diff_new_pack.CQW9Od/_old 2016-08-25 09:57:12.000000000 +0200
+++ /var/tmp/diff_new_pack.CQW9Od/_new 2016-08-25 09:57:12.000000000 +0200
@@ -32,9 +32,11 @@
Source: https://virt-manager.org/download/sources/virt-viewer/%name-%version.tar.gz
Patch1: 35e489d5-fix-display-of-guest-name-in-title-for-vnc.patch
Patch2: a62827d2-close-when-seeing-domain-stop-event.patch
+Patch3: 813c775c-fix-filename-leak-on-transfer-dialog.patch
Patch50: netcat.patch
Patch51: virtview-desktop.patch
Patch52: reverse-3d5627d7-for-xen.patch
+Patch53: virtview-dont-show-Domain-0.patch
ExclusiveArch: %ix86 x86_64 s390x
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -79,9 +81,11 @@
%setup -q
%patch1 -p1
%patch2 -p1
+%patch3 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
+%patch53 -p1
%build
echo "suse_version = %suse_version"
++++++ 813c775c-fix-filename-leak-on-transfer-dialog.patch ++++++
Subject: Fix filename leak on transfer dialog
From: Victor Toso victortoso(a)redhat.com Wed Aug 3 15:40:14 2016 +0200
Date: Fri Aug 5 10:59:23 2016 +0200:
Git: 813c775cc9a111ddb0be9e32e797c61fb797fa55
spice_file_transfer_task_get_filename() was wrongly annotated as
transfer none. We can safely free this string after usage.
Index: virt-viewer-4.0/src/virt-viewer-file-transfer-dialog.c
===================================================================
--- virt-viewer-4.0.orig/src/virt-viewer-file-transfer-dialog.c
+++ virt-viewer-4.0/src/virt-viewer-file-transfer-dialog.c
@@ -101,11 +101,14 @@ typedef struct {
static TaskWidgets *task_widgets_new(SpiceFileTransferTask *task)
{
TaskWidgets *w = g_new0(TaskWidgets, 1);
+ gchar *filename;
w->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
w->hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12);
w->progress = gtk_progress_bar_new();
- w->label = gtk_label_new(spice_file_transfer_task_get_filename(task));
+ filename = spice_file_transfer_task_get_filename(task);
+ w->label = gtk_label_new(filename);
+ g_free(filename);
w->cancel = gtk_button_new_from_icon_name("gtk-cancel", GTK_ICON_SIZE_SMALL_TOOLBAR);
gtk_widget_set_hexpand(w->progress, TRUE);
gtk_widget_set_valign(w->progress, GTK_ALIGN_CENTER);
++++++ virtview-dont-show-Domain-0.patch ++++++
References: bsc#983689
A user should not be able to connect to Domain-0. Don't show it
in the list.
Index: virt-viewer-4.0/src/virt-viewer.c
===================================================================
--- virt-viewer-4.0.orig/src/virt-viewer.c
+++ virt-viewer-4.0/src/virt-viewer.c
@@ -753,6 +753,7 @@ choose_vm(GtkWindow *main_window,
virDomainPtr *domains, dom = NULL;
int i, vms_running;
unsigned int flags = VIR_CONNECT_LIST_DOMAINS_RUNNING;
+ const char *domain_name;
g_return_val_if_fail(vm_name != NULL, NULL);
free(*vm_name);
@@ -761,8 +762,11 @@ choose_vm(GtkWindow *main_window,
vms_running = virConnectListAllDomains(conn, &domains, flags);
for (i = 0; i < vms_running; i++) {
+ domain_name = virDomainGetName(domains[i]);
+ if (domain_name == NULL || !strcmp(domain_name, "Domain-0"))
+ continue;
gtk_list_store_append(model, &iter);
- gtk_list_store_set(model, &iter, 0, virDomainGetName(domains[i]), -1);
+ gtk_list_store_set(model, &iter, 0, domain_name, -1);
virDomainFree(domains[i]);
}
free(domains);
1
0
Hello community,
here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2016-08-25 09:57:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-manager (Old)
and /work/SRC/openSUSE:Factory/.virt-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager"
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2016-07-30 00:27:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.virt-manager.new/virt-manager.changes 2016-08-25 09:57:08.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Aug 19 10:28:19 MDT 2016 - carnold(a)suse.com
+
+- bsc#994394 - virt-manager does not show up in SLE Classic
+ "Applications" menu
+ virtman-desktop.patch
+
+-------------------------------------------------------------------
+Wed Aug 17 13:24:50 MDT 2016 - carnold(a)suse.com
+
+- bsc#989639 - xen cdrom device pass-through fails to start FV
+ guest
+ virtinst-use-qemu-for-cdrom-device.patch
+
+-------------------------------------------------------------------
New:
----
virtinst-use-qemu-for-cdrom-device.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.7ej0R9/_old 2016-08-25 09:57:09.000000000 +0200
+++ /var/tmp/diff_new_pack.7ej0R9/_new 2016-08-25 09:57:09.000000000 +0200
@@ -21,7 +21,7 @@
%define qemu_user "qemu"
%define libvirt_kvm_packages ""
%define libvirt_xen_packages ""
-%define preferred_distros "sles12sp1,opensuse42.1"
+%define preferred_distros "sles12sp2,opensuse42.2"
%define kvm_packages ""
%define _version 1.4.0
%define _release 0
@@ -76,6 +76,7 @@
Patch161: virtinst-xenbus-disk-index-fix.patch
Patch162: virtinst-refresh_before_fetch_pool.patch
Patch163: virtinst-use-xenpae-kernel-for-32bit.patch
+Patch164: virtinst-use-qemu-for-cdrom-device.patch
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -195,6 +196,7 @@
%patch161 -p1
%patch162 -p1
%patch163 -p1
+%patch164 -p1
%build
%if %{qemu_user}
++++++ virtinst-use-qemu-for-cdrom-device.patch ++++++
References: bsc#989639
When the device added is a cdrom device (/dev/sr0), don't use
"phy" as the driver name but instead use "qemu".
Index: virt-manager-1.4.0/virtinst/devicedisk.py
===================================================================
--- virt-manager-1.4.0.orig/virtinst/devicedisk.py
+++ virt-manager-1.4.0/virtinst/devicedisk.py
@@ -550,7 +550,8 @@ class VirtualDisk(VirtualDevice):
# Recommended xen defaults from here:
# https://bugzilla.redhat.com/show_bug.cgi?id=1171550#c9
# If type block, use name=phy. Otherwise do the same as qemu
- if self.conn.is_xen() and self.type == self.TYPE_BLOCK:
+ if self.conn.is_xen() and self.type == self.TYPE_BLOCK and not \
+ self.is_cdrom():
return self.DRIVER_NAME_PHY
if self.conn.check_support(
self.conn.SUPPORT_CONN_DISK_DRIVER_NAME_QEMU):
++++++ virtman-desktop.patch ++++++
--- /var/tmp/diff_new_pack.7ej0R9/_old 2016-08-25 09:57:09.000000000 +0200
+++ /var/tmp/diff_new_pack.7ej0R9/_new 2016-08-25 09:57:09.000000000 +0200
@@ -1,7 +1,7 @@
-Index: virt-manager-1.3.0/data/virt-manager.desktop.in
+Index: virt-manager-1.4.0/data/virt-manager.desktop.in
===================================================================
---- virt-manager-1.3.0.orig/data/virt-manager.desktop.in
-+++ virt-manager-1.3.0/data/virt-manager.desktop.in
+--- virt-manager-1.4.0.orig/data/virt-manager.desktop.in
++++ virt-manager-1.4.0/data/virt-manager.desktop.in
@@ -1,8 +1,19 @@
[Desktop Entry]
_Name=Virtual Machine Manager
@@ -16,7 +16,7 @@
Terminal=false
-Categories=System;
+Encoding=UTF-8
-+Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-Virtualization;
++Categories=GTK;GNOME;System;Monitor;Qt;X-SuSE-YaST;X-SuSE-YaST-Virtualization;
+X-KDE-ModuleType=Library
+X-KDE-RootOnly=true
+X-KDE-HasReadOnlyMode=false
1
0
Hello community,
here is the log from the commit of package gnome-sudoku for openSUSE:Factory checked in at 2016-08-25 09:57:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-sudoku (Old)
and /work/SRC/openSUSE:Factory/.gnome-sudoku.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-sudoku"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-sudoku/gnome-sudoku.changes 2016-07-18 21:24:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-sudoku.new/gnome-sudoku.changes 2016-08-25 09:57:05.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Aug 19 19:32:32 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.20.5:
+ + Properly hide game field during pause and show after resume.
+
+-------------------------------------------------------------------
Old:
----
gnome-sudoku-3.20.4.tar.xz
New:
----
gnome-sudoku-3.20.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-sudoku.spec ++++++
--- /var/tmp/diff_new_pack.hmEKDv/_old 2016-08-25 09:57:06.000000000 +0200
+++ /var/tmp/diff_new_pack.hmEKDv/_new 2016-08-25 09:57:06.000000000 +0200
@@ -17,7 +17,7 @@
Name: gnome-sudoku
-Version: 3.20.4
+Version: 3.20.5
Release: 0
Summary: Sudoku Game for GNOME
License: GPL-3.0+
++++++ gnome-sudoku-3.20.4.tar.xz -> gnome-sudoku-3.20.5.tar.xz ++++++
++++ 2666 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnumeric for openSUSE:Factory checked in at 2016-08-25 09:56:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnumeric (Old)
and /work/SRC/openSUSE:Factory/.gnumeric.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnumeric"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnumeric/gnumeric.changes 2016-07-01 10:01:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gnumeric.new/gnumeric.changes 2016-08-25 09:57:01.000000000 +0200
@@ -1,0 +2,21 @@
+Sat Aug 20 21:21:03 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 1.12.32:
+ + Improve html4.0 fragment export (bgo#769343).
+ + Fix moving averages, exponential smothing and principal
+ component tools (bgo#769659).
+ + Fix paradox plugin build with pxlib-0.6.7 (bgo#769319).
+ + Avoid gnome-common dependency.
+ + New text functions CONCAT, TEXTJOIN.
+ + New selection functions IFS, SWITCH.
+ + New aggregation functions SUMIFS, AVERAGEIFS, MINIFS, MAXIFS,
+ COUNTIFS.
+ + Fix criteria function issue with errors in the selector area.
+ + Fix corner case for MINA and MAXA.
+ + Fix criteria matching of numbers against strings.
+ + Test suite improvements.
+- Conditionally apply translations-update-upstream BuildRequires
+ and macro for non-openSUSE only.
+- Remove obsolete clean section.
+
+-------------------------------------------------------------------
Old:
----
gnumeric-1.12.31.tar.xz
New:
----
gnumeric-1.12.32.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnumeric.spec ++++++
--- /var/tmp/diff_new_pack.TtCt35/_old 2016-08-25 09:57:02.000000000 +0200
+++ /var/tmp/diff_new_pack.TtCt35/_new 2016-08-25 09:57:02.000000000 +0200
@@ -17,7 +17,7 @@
Name: gnumeric
-Version: 1.12.31
+Version: 1.12.32
Release: 0
Summary: Spreadsheet Application
License: GPL-2.0 or GPL-3.0
@@ -30,7 +30,9 @@
BuildRequires: libgsf-devel
BuildRequires: python-devel
BuildRequires: rarian-scrollkeeper-compat
+%if !0%{?is_opensuse}
BuildRequires: translation-update-upstream
+%endif
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(glib-2.0) >= 2.38.0
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.0.0
@@ -98,6 +100,7 @@
%lang_package
%prep
%setup -q
+%if !0%{?is_opensuse}
translation-update-upstream
translation-update-upstream po-functions gnumeric-functions
# remove incomplete translations caused by translation-update-upstream (global LINGUAS file, two domains)
@@ -108,6 +111,7 @@
sed -i "/^$LNG\$/d" po/LINGUAS
fi
done
+%endif
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
@@ -127,9 +131,6 @@
find %{buildroot} -type f -name "*.la" -delete -print
%fdupes %{buildroot}
-%clean
-rm -rf %{buildroot}
-
%post
/sbin/ldconfig
%glib2_gsettings_schema_post
++++++ gnumeric-1.12.31.tar.xz -> gnumeric-1.12.32.tar.xz ++++++
/work/SRC/openSUSE:Factory/gnumeric/gnumeric-1.12.31.tar.xz /work/SRC/openSUSE:Factory/.gnumeric.new/gnumeric-1.12.32.tar.xz differ: char 25, line 1
1
0
Hello community,
here is the log from the commit of package goffice for openSUSE:Factory checked in at 2016-08-25 09:56:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/goffice (Old)
and /work/SRC/openSUSE:Factory/.goffice.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "goffice"
Changes:
--------
--- /work/SRC/openSUSE:Factory/goffice/goffice.changes 2016-07-01 10:01:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.goffice.new/goffice.changes 2016-08-25 09:56:58.000000000 +0200
@@ -1,0 +2,9 @@
+Sat Aug 20 20:40:04 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 0.10.32:
+ + Avoid gnome-common dpendency.
+ + Plug leak.
+- Conditionally apply translations-update-upstream BuildRequires
+ and macro for non-openSUSE only.
+
+-------------------------------------------------------------------
Old:
----
goffice-0.10.31.tar.xz
New:
----
goffice-0.10.32.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ goffice.spec ++++++
--- /var/tmp/diff_new_pack.IRqE75/_old 2016-08-25 09:56:59.000000000 +0200
+++ /var/tmp/diff_new_pack.IRqE75/_new 2016-08-25 09:56:59.000000000 +0200
@@ -17,7 +17,7 @@
Name: goffice
-Version: 0.10.31
+Version: 0.10.32
Release: 0
Summary: GLib/GTK+ Set of Document-Centric Objects and Utilities
License: GPL-2.0 or GPL-3.0
@@ -28,7 +28,9 @@
BuildRequires: ghostscript-devel >= 9.06
BuildRequires: intltool
BuildRequires: libgsf-devel >= 1.14.24
+%if !0%{?is_opensuse}
BuildRequires: translation-update-upstream
+%endif
BuildRequires: pkgconfig(cairo) >= 1.10.0
BuildRequires: pkgconfig(cairo-pdf) >= 1.10.0
BuildRequires: pkgconfig(cairo-ps) >= 1.10.0
@@ -97,7 +99,9 @@
%lang_package
%prep
%setup -q
+%if !0%{?is_opensuse}
translation-update-upstream
+%endif
%build
%configure --disable-static --with-pic --enable-introspection
++++++ goffice-0.10.31.tar.xz -> goffice-0.10.32.tar.xz ++++++
++++ 124737 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package polari for openSUSE:Factory checked in at 2016-08-25 09:56:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/polari (Old)
and /work/SRC/openSUSE:Factory/.polari.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "polari"
Changes:
--------
--- /work/SRC/openSUSE:Factory/polari/polari.changes 2016-05-16 12:04:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.polari.new/polari.changes 2016-08-25 09:56:54.000000000 +0200
@@ -1,0 +2,10 @@
+Fri Aug 19 21:56:54 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.20.3:
+ + Fix auto-scrolling to bottom (bgo#765129).
+ + Fix rooms in sidebar not updating their read/unread style
+ (bgo#768909).
+ + Fix connection issues with predefined networks (bgo#766935).
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
polari-3.20.2.tar.xz
New:
----
polari-3.20.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ polari.spec ++++++
--- /var/tmp/diff_new_pack.G5NPYh/_old 2016-08-25 09:56:55.000000000 +0200
+++ /var/tmp/diff_new_pack.G5NPYh/_new 2016-08-25 09:56:55.000000000 +0200
@@ -18,7 +18,7 @@
Name: polari
-Version: 3.20.2
+Version: 3.20.3
Release: 0
Summary: An IRC Client for GNOME
License: GPL-2.0+ and LGPL-2.1+
++++++ polari-3.20.2.tar.xz -> polari-3.20.3.tar.xz ++++++
++++ 3251 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libgepub for openSUSE:Factory checked in at 2016-08-25 09:56:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgepub (Old)
and /work/SRC/openSUSE:Factory/.libgepub.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgepub"
Changes:
--------
New Changes file:
--- /dev/null 2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:Factory/.libgepub.new/libgepub.changes 2016-08-25 09:56:51.000000000 +0200
@@ -0,0 +1,5 @@
+-------------------------------------------------------------------
+Tue Aug 23 15:22:02 UTC 2016 - dimstar(a)opensuse.org
+
+- Initial package, version 0.3.
+
New:
----
_service
_servicedata
libgepub-0.3.tar.xz
libgepub.changes
libgepub.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgepub.spec ++++++
#
# spec file for package libgepub
#
# Copyright (c) 2016 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global sover 0
Name: libgepub
Version: 0.3
Release: 0
Summary: Epub Documents library
License: LGPL-2.1+
Group: Development/Languages/C and C++
Url: https://git.gnome.org/browse/libgepub
Source: %{name}-%{version}.tar.xz
BuildRequires: gnome-common
BuildRequires: pkgconfig
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.30.0
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(libarchive)
BuildRequires: pkgconfig(libxml-2.0)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
A GObject based library for handling and rendering epub documents.
%package -n %{name}%{sover}
Summary: Epub Documents library -- Shared library
Group: System/Libraries
%description -n %{name}%{sover}
A GObject based library for handling and rendering epub documents.
%package -n typelib-1_0-Gepub-0_3
Summary: Epub Documents library -- Introspection bindings
Group: System/Libraries
%description -n typelib-1_0-Gepub-0_3
A GObject based library for handling and rendering epub documents.
%package devel
Summary: Epub Documents library -- Development files
Group: Development/Languages/C and C++
Requires: %{name}%{sover} = %{version}
Requires: typelib-1_0-Gepub-0_3 = %{version}
%description devel
A GObject based library for handling and rendering epub documents.
%prep
%setup -q
%build
./autogen.sh
%configure \
--disable-static
make %{?_smp_mflags}
%install
make %{?_smp_mflags} DESTDIR=%{buildroot} install
find %{buildroot} -type f -name "*.la" -delete -print
%post -n %{name}%{sover} -p /sbin/ldconfig
%postun -n %{name}%{sover} -p /sbin/ldconfig
%files -n %{name}%{sover}
%defattr(-,root,root)
%doc README COPYING
%{_libdir}/%{name}.so.*
%files -n typelib-1_0-Gepub-0_3
%defattr(-,root,root)
%{_libdir}/girepository-1.0/Gepub-0.3.typelib
%files devel
%defattr(-,root,root)
%{_includedir}/%{name}/
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_datadir}/gir-1.0/Gepub-0.3.gir
%changelog
++++++ _service ++++++
<services>
<service mode="disabled" name="tar_scm">
<param name="url">git://git.gnome.org/libgepub</param>
<param name="scm">git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="revision">refs/tags/0.3</param>
</service>
<service mode="disabled" name="recompress">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service mode="disabled" name="set_version" />
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">git://git.gnome.org/libgepub</param>
<param name="changesrevision">f1c9898c40762d89e0fa7e9094c00265e183adbb</param></service></servicedata>
1
0
Hello community,
here is the log from the commit of package kiwi-config-openSUSE for openSUSE:Factory checked in at 2016-08-25 09:56:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kiwi-config-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.kiwi-config-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiwi-config-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kiwi-config-openSUSE/kiwi-config-openSUSE.changes 2016-07-24 19:53:31.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kiwi-config-openSUSE.new/kiwi-config-openSUSE.changes 2016-08-25 09:56:47.000000000 +0200
@@ -1,0 +2,9 @@
+Thu Aug 18 16:28:21 UTC 2016 - fabian(a)ritter-vogt.de
+
+- Improve start-install.sh:
+ - Prevent simultaneous calls
+ - Same look everywhere:
+ - Display accelerators on KDE
+ - Same accelerators and font everywhere
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ start-install.sh ++++++
--- /var/tmp/diff_new_pack.Dxflah/_old 2016-08-25 09:56:48.000000000 +0200
+++ /var/tmp/diff_new_pack.Dxflah/_new 2016-08-25 09:56:48.000000000 +0200
@@ -1,4 +1,14 @@
#!/bin/bash
-echo "ZyppRepoURL: http://download.opensuse.org/tumbleweed/repo/oss" >> /etc/install.inf
-echo "InstMode: net" >> /etc/install.inf
+#YaST takes a certain time to show up, so we need to prevent calling it twice simultaneously
+#snippet from man 1 flock
+[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
+
+#Look like the DVD installer everywhere
+unset XDG_CURRENT_DESKTOP
+
+cat >/etc/install.inf <<EOF
+ZyppRepoURL: http://download.opensuse.org/tumbleweed/repo/oss
+InstMode: net
+EOF
+
/usr/lib/YaST2/startup/YaST2.call installation initial
1
0
Hello community,
here is the log from the commit of package opensc for openSUSE:Factory checked in at 2016-08-25 09:56:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/opensc (Old)
and /work/SRC/openSUSE:Factory/.opensc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opensc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/opensc/opensc.changes 2015-10-12 10:03:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.opensc.new/opensc.changes 2016-08-25 09:56:44.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Jul 5 12:09:24 UTC 2016 - t.gruner(a)katodev.de
+
+- update to version 0.16.0
+- remove fix (issue 505)
+- clean up spec-file
+
+-------------------------------------------------------------------
Old:
----
completion-template
opensc-0.15.0.tar.gz
New:
----
opensc-0.16.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ opensc.spec ++++++
--- /var/tmp/diff_new_pack.bOneU9/_old 2016-08-25 09:56:45.000000000 +0200
+++ /var/tmp/diff_new_pack.bOneU9/_new 2016-08-25 09:56:45.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package opensc
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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,33 +17,28 @@
Name: opensc
-BuildRequires: docbook-xsl-stylesheets
-BuildRequires: libtool
-BuildRequires: libxslt
-BuildRequires: openssl-devel
-BuildRequires: pcsc-lite-devel
-BuildRequires: pkg-config
-BuildRequires: readline-devel
-Url: https://github.com/OpenSC/OpenSC/wiki
-Version: 0.15.0
+Version: 0.16.0
Release: 0
Summary: Smart Card Utilities
License: LGPL-2.1+
Group: Productivity/Security
+Url: https://github.com/OpenSC/OpenSC/wiki
Source: %{name}-%{version}.tar.gz
Source1: %{name}-ADVISORIES
Source2: %{name}-rpmlintrc
-# This is in git, but got stripped from the release tarball
-# https://github.com/OpenSC/OpenSC/issues/505
-Source3: completion-template
# Register with p11-kit
# https://www.opensc-project.org/opensc/ticket/390
-Source4: opensc.module
+Source3: opensc.module
+BuildRequires: docbook-xsl-stylesheets
+BuildRequires: libtool
+BuildRequires: libxslt
+BuildRequires: openssl-devel
+BuildRequires: pcsc-lite-devel
+BuildRequires: pkg-config
+BuildRequires: readline-devel
Requires: pcsc-lite
# There is no more devel package.
Obsoletes: opensc-devel < %{version}
-# This package is not supported any more. Last appeared in openSUSE 11.3, never appeared in SLE:
-Obsoletes: opensc-java <= 0.2.2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -61,49 +56,36 @@
possible operations may be supported for your card. Card initialization
may require third party proprietary software.
-Authors:
---------
- Juha Yrjölä <jyrjola(a)cc.hut.fi>
- Antti Tapaninen <aet(a)cc.hut.fi>
- Timo Teräs <timo.teras(a)iki.fi>
- Olaf Kirch <okir(a)suse.de>
-
%prep
%setup -q
-cp -a %{S:1} ADVISORIES
+cp -a %{SOURCE1} ADVISORIES
%build
-%if %suse_version > 1100
+%if 0%{?suse_version} > 1100
autoreconf -f -i
%endif
-cp %{SOURCE3} doc/tools/completion-template
%configure\
--docdir=%{_docdir}/%{name}\
--disable-static\
--enable-doc
-make %{?jobs:-j%jobs}
+make %{?_smp_mflags}
%install
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
-mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkcs11
-%makeinstall
-cp COPYING ADVISORIES ChangeLog README $RPM_BUILD_ROOT%{_docdir}/%{name}
+mkdir -p %{buildroot}%{_sysconfdir}
+mkdir -p %{buildroot}%{_libdir}/pkcs11
+make %{?_smp_mflags} DESTDIR=%{buildroot} install
+cp COPYING ADVISORIES NEWS README %{buildroot}%{_docdir}/%{name}
# Private library.
-rm $RPM_BUILD_ROOT%{_libdir}/libopensc.so
-install -D -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/pkcs11/modules/opensc.module
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+rm %{buildroot}%{_libdir}/libopensc.so
+install -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/pkcs11/modules/opensc.module
%post -p /sbin/ldconfig
-
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc %dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/ADVISORIES
-%doc %{_docdir}/%{name}/ChangeLog
%doc %{_docdir}/%{name}/COPYING
%doc %{_docdir}/%{name}/NEWS
%doc %{_docdir}/%{name}/README
@@ -115,7 +97,7 @@
%{_libdir}/*.so*
%dir %{_libdir}/pkcs11
%{_libdir}/pkcs11/*.so
-%doc %{_mandir}/man?/*.*
+%{_mandir}/man?/*.*
%config %{_sysconfdir}/opensc.conf
%dir %{_sysconfdir}/pkcs11
%config %{_sysconfdir}/pkcs11/modules/
++++++ opensc-0.15.0.tar.gz -> opensc-0.16.0.tar.gz ++++++
++++ 125990 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package hg-git for openSUSE:Factory checked in at 2016-08-25 09:56:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hg-git (Old)
and /work/SRC/openSUSE:Factory/.hg-git.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hg-git"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hg-git/hg-git.changes 2016-02-05 00:31:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.hg-git.new/hg-git.changes 2016-08-25 09:56:40.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Aug 15 14:53:23 UTC 2016 - astieger(a)suse.com
+
+- disable failing tests
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hg-git.spec ++++++
--- /var/tmp/diff_new_pack.SXeQGF/_old 2016-08-25 09:56:41.000000000 +0200
+++ /var/tmp/diff_new_pack.SXeQGF/_new 2016-08-25 09:56:41.000000000 +0200
@@ -52,10 +52,10 @@
python setup.py build
%check
-export PYTHONPATH="%{buildroot}%{python_sitelib}"
-pushd tests
-python run-tests.py --verbose --with-hg=%{_bindir}/hg
-popd
+# export PYTHONPATH="%{buildroot}%{python_sitelib}"
+# pushd tests
+# python run-tests.py --verbose --with-hg=%{_bindir}/hg
+# popd
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
1
0
Hello community,
here is the log from the commit of package tryton for openSUSE:Factory checked in at 2016-08-25 09:56:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tryton (Old)
and /work/SRC/openSUSE:Factory/.tryton.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tryton"
Changes:
--------
New Changes file:
--- /dev/null 2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:Factory/.tryton.new/tryton.changes 2016-08-25 09:56:39.000000000 +0200
@@ -0,0 +1,42 @@
+-------------------------------------------------------------------
+Mon Apr 4 10:58:05 UTC 2016 - axel.braun(a)gmx.de
+
+- added GNUHealth Camera and OpenCV
+
+-------------------------------------------------------------------
+Thu Nov 5 20:55:25 UTC 2015 - axel.braun(a)gmx.de
+
+- Version 3.8.1
+ tryton-lang removed
+
+-------------------------------------------------------------------
+Wed Oct 19 20:14:38 UTC 2015 - axel.braun(a)gmx.de
+
+- Tryton Release 3.8
+
+-------------------------------------------------------------------
+Wed Apr 15 07:24:15 UTC 2015 - axel.braun(a)gmx.de
+
+- Tryton Release 3.6
+
+-------------------------------------------------------------------
+Fri Feb 07 23:15:02 UTC 2014 - axel.braun(a)gmx.de
+
+- update to 3.0.2, changes to specfile
+
+-------------------------------------------------------------------
+Mon Nov 11 11:00:06 UTC 2013 - axel.braun(a)gmx.de
+
+- update to 3.0.1, patch for mime type
+
+-------------------------------------------------------------------
+Wed Oct 23 14:59:59 UTC 2013 - axel.braun(a)gmx.de
+
+- new branch 3.0
+
+* Sat Jun 22 2013 axel.braun(a)gmx.de
+- new spec with regard to systemd
+- setup of user tryton if not existing
+
+* Sun Mar 29 2009 axel.braun(a)gmx.de
+- packaged tryton version 1.0.3 using the buildservice spec file wizard
New:
----
_service
gnuhealth-camera-plugin-latest.tar.gz
tryton-3.8.8.tar.gz
tryton.changes
tryton.spec
tryton_crypto.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tryton.spec ++++++
#
# spec file for package tryton
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2015 Dr. Axel Braun
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define majorver 3.8
Name: tryton
Version: %{majorver}.8
Release: 0
Summary: The client of the Tryton application platform
License: GPL-3.0
Group: Productivity/Office/Management
Url: http://www.tryton.org/
Source: http://downloads.tryton.org/%{majorver}/%{name}-%{version}.tar.gz
Source1: ftp://ftp.gnu.org/gnu/health/plugins/gnuhealth-camera-plugin-latest.tar.gz
Patch0: tryton_crypto.patch
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: python-Babel
BuildRequires: python-Sphinx
# List of additional build dependencies
BuildRequires: python-devel
BuildRequires: python-gtk
BuildRequires: python-python-dateutil
BuildRequires: python-rsvg
BuildRequires: python-setuptools
BuildRequires: python-simplejson
BuildRequires: update-desktop-files
Requires: librsvg
#for the plugins:
Requires: opencv
Requires: python-GooCalendar
Requires: python-cdecimal
Requires: python-chardet
Requires: python-dateutil
Requires: python-gnupg
Requires: python-gtk
Requires: python-opencv
Requires: python-pytz
Requires: python-rsvg
Requires: python-setuptools
Requires: python-simplejson
Requires: python-xml
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
The client of the Tryton application platform.
A three-tiers high-level general purpose application platform
written in Python and use Postgresql as database engine.
It is the core base of an Open Source ERP.
It provides modularity, scalability and security.
%prep
%setup -q
%patch0 -p1
pwd
cd %{name}/plugins/
tar --strip-components 1 -xzvf %{SOURCE1}
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
# menu-entry
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{name}.desktop
%suse_update_desktop_file %{name}
%fdupes %{buildroot}%{_datadir}
%fdupes %{buildroot}%{_prefix}/lib
mkdir -p %{buildroot}%{_datadir}/pixmaps
cp %{buildroot}%{python_sitelib}/%{name}/data/pixmaps/%{name}/%{name}-icon.png %{buildroot}%{_datadir}/pixmaps/%{name}-icon.png
%post
%desktop_database_post
%icon_theme_cache_post
%postun
%desktop_database_postun
%icon_theme_cache_postun
%files
%defattr(-,root,root)
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%doc COPYRIGHT LICENSE README CHANGELOG
%{_datadir}/pixmaps/*
%{python_sitelib}/*
%changelog
++++++ _service ++++++
<services>
<service name="download_files" mode="localonly" />
</services>
++++++ tryton_crypto.patch ++++++
diff -U 6 -H -d -r -N -- a/tryton/plugins/crypto/__init__.py b/tryton/plugins/crypto/__init__.py
--- a/tryton/plugins/crypto/__init__.py 1970-01-01 01:00:00.000000000 +0100
+++ b/tryton/plugins/crypto/__init__.py 2014-07-15 10:33:53.000000000 +0200
@@ -0,0 +1,179 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# GNU Health: The Free Health and Hospital Information System
+# Copyright (C) 2008-2014 Luis Falcon <lfalcon(a)gnusolidario.org>
+# Copyright (C) 2011-2014 GNU Solidario <health(a)gnusolidario.org>
+#
+#
+# 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/>.
+#
+##############################################################################
+
+import tryton.rpc as rpc
+from tryton.common import RPCExecute, warning, message
+from tryton.gui.window.form import Form
+import gettext
+
+try:
+ import gnupg
+except:
+ warning(
+ ('Document Encryption / Signing disabled'
+ '\nPlease install the gnupg library '),
+ ('No GNU Privacy Guard library found !'),
+ )
+
+
+_ = gettext.gettext
+
+def sign_document(data):
+ """ Retrieve the hash value of the serialized document and
+ generates a clearsign signature using the user's private key
+ on the client side via GNU Privacy Guard - GPG -"""
+
+ gpg = gnupg.GPG()
+
+ document_model = data['model']
+
+ """ Don't allow signing more than one document at a time
+ To avoid signing unwanted / unread documents
+ """
+
+ if (len(data['ids']) > 1):
+ warning(
+ _('For security reasons, Please sign one document at a time'),
+ _('Multiple records selected !'),
+ )
+ return
+
+ """ Verify that the document handles digital signatures """
+
+ try:
+ record_vals = rpc.execute(
+ 'model', document_model, 'read',
+ data['ids'],
+ ['document_digest', 'digital_signature'], rpc.CONTEXT)
+
+ except:
+ warning(
+ _('Please enable the model for digital signature'),
+ _('No Digest or Digital Signature fields found !'),
+ )
+ return
+
+ digest = record_vals[0]['document_digest']
+
+ """ Check that the document hasn't been signed already """
+
+ if record_vals[0]['digital_signature']:
+ warning(
+ _('Document already signed'),
+ _('This record has been already signed'),
+ )
+ return
+
+ try:
+ gpg_signature = gpg.sign(digest, clearsign=True)
+
+ except:
+ warning(
+ _('Error when signing the document'),
+ _('Please check your encryption settings'),
+ )
+
+ """
+ Set the clearsigned digest
+ """
+ try:
+ RPCExecute(
+ 'model', document_model, 'set_signature',
+ data, str(gpg_signature))
+
+ except:
+ warning(
+ _('Error when saving the digital signature'),
+ _('The signature was generated but NOT saved !'),
+ )
+
+ else:
+ message(_('Document digitally signed'))
+
+ # TODO
+ # Reload the record view after storing the digital signature
+ # sig_reload or other method to check.
+ # a = Form(document_model, data['ids'])
+ # a.sig_reload()
+ # a.message_info(_('Document digitally signed'), color='blue')
+
+
+def verify_document(data):
+ """ Verify the digital signature of the document """
+
+ gpg = gnupg.GPG()
+
+ document_model = data['model']
+
+ """ Verify that the document handles digital signatures """
+
+ try:
+ record_vals = rpc.execute(
+ 'model', document_model, 'read',
+ data['ids'],
+ ['document_digest', 'digital_signature'], rpc.CONTEXT)
+
+ except:
+ warning(
+ _('Please enable the model for digital signature'),
+ _('No Digest or Digital Signature fields found !'),
+ )
+ return
+
+
+ """ Verify signature """
+ digital_signature = record_vals[0]['digital_signature']
+
+ """ Check that the document has been signed """
+ if not digital_signature:
+ warning(
+ _('Unsigned document'),
+ _('This document has not been signed yet'),
+ )
+ return
+
+ try:
+ verify_signature = gpg.verify(digital_signature)
+
+ except:
+ warning(
+ _('Error when verifying Digital Signature'),
+ _('Please check your GNU Privacy Guard Settings'),
+ )
+
+ else:
+ """ Show message of warning boxes depending on the verification """
+ if (verify_signature.valid):
+ message(_("Valid Signature !\n\n" + verify_signature.stderr))
+ else:
+ warning(
+ _(str(verify_signature.stderr)),
+ _(str("Error !")),
+ )
+
+
+def get_plugins(model):
+ return [
+ (_('Digitally Sign Document'), sign_document),
+ (_('Verify Digital Signature'), verify_document),
+ ]
diff -U 6 -H -d -r -N -- a/tryton/plugins/crypto/doc/index.rst b/tryton/plugins/crypto/doc/index.rst
--- a/tryton/plugins/crypto/doc/index.rst 1970-01-01 01:00:00.000000000 +0100
+++ b/tryton/plugins/crypto/doc/index.rst 2014-07-15 10:33:53.000000000 +0200
@@ -0,0 +1,33 @@
+Tryton Crytpo Plugin
+####################
+
+This plugin has been developed as part of GNU Health [1], but you should
+be able to use it with any model in Tryton[2]
+
+Functionality :
+The Tryton crypto plugin interacts with GNU Privacy Guard [3] to digitally
+sign and encrypt documents.
+
+OS Requirements:
+
+Model attributes :
+The plugin requires - as a minimum - the following attributes on the model
+in order to be able to sign the document.
+
+ "document_digest" of type fields.Char
+ "digital_signature" of type fields.Text
+
+
+In real life, you will need others to make it meaningful. Please take a look
+at the Prescription model on the health_crypto module for an example and
+other fields used.
+
+
+
+Usage:
+
+References:
+
+1.- GNU Health : http://health.gnu.org
+2.- Tryton : http://www.tryton.org
+3.- GNU Privacy Guard : http://www.gnupg.org
1
0
Hello community,
here is the log from the commit of package nvme-cli for openSUSE:Factory checked in at 2016-08-25 09:56:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nvme-cli (Old)
and /work/SRC/openSUSE:Factory/.nvme-cli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nvme-cli"
Changes:
--------
--- /work/SRC/openSUSE:Factory/nvme-cli/nvme-cli.changes 2016-06-07 23:46:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.nvme-cli.new/nvme-cli.changes 2016-08-25 09:56:31.000000000 +0200
@@ -1,0 +2,16 @@
+Tue Aug 9 12:19:35 UTC 2016 - jthumshirn(a)suse.com
+
+- Update to upstream release v0.8
+ - Remove merged patch 0001-bash-completion-Remove-shebang-line.patch
+ * Code re-organized to support new extensions. While these are called
+ "plugins", they currently have to be built into the executable. Support
+ for dynamically loadable plugins is under consideration.
+ * LightNVM is added as a built-in plugin.
+ * Intel vendor specific commands and structure decodings are supported
+ in a new intel plugin.
+ * Support for NVMe-over-Fabrics
+ * New output format "json" for a subset of commands that decode returned
+ structures.
+ * Lots of various documentation and minor code fixes.
+
+-------------------------------------------------------------------
Old:
----
0001-bash-completion-Remove-shebang-line.patch
v0.7.tar.gz
New:
----
v0.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nvme-cli.spec ++++++
--- /var/tmp/diff_new_pack.T9piOQ/_old 2016-08-25 09:56:33.000000000 +0200
+++ /var/tmp/diff_new_pack.T9piOQ/_new 2016-08-25 09:56:33.000000000 +0200
@@ -17,7 +17,7 @@
Name: nvme-cli
-Version: 0.7
+Version: 0.8
Release: 0
Summary: Core nvme tools
License: GPL-2.0
@@ -27,7 +27,6 @@
BuildRequires: pkgconfig(libudev)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExcludeArch: s390x
-Patch0: 0001-bash-completion-Remove-shebang-line.patch
%description
NVMe is a fast, scalable, direct attached storage interface. The nvme
@@ -35,7 +34,6 @@
%prep
%setup -q
-%patch0 -p1
%build
echo %{version} > version
++++++ _service ++++++
--- /var/tmp/diff_new_pack.T9piOQ/_old 2016-08-25 09:56:33.000000000 +0200
+++ /var/tmp/diff_new_pack.T9piOQ/_new 2016-08-25 09:56:33.000000000 +0200
@@ -4,8 +4,8 @@
<param name="url">https://github.com/linux-nvme/nvme-cli.git</param>
<param name="subdir"></param>
<param name="filename"></param>
- <param name="version">v0.7</param>
- <param name="revision">v0.7</param>
+ <param name="version">v0.8</param>
+ <param name="revision">v0.8</param>
</service>
<!--
<service name="recompress" mode="disabled">
++++++ v0.7.tar.gz -> v0.8.tar.gz ++++++
++++ 25097 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package Box2D for openSUSE:Factory checked in at 2016-08-25 09:56:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Box2D (Old)
and /work/SRC/openSUSE:Factory/.Box2D.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Box2D"
Changes:
--------
--- /work/SRC/openSUSE:Factory/Box2D/Box2D.changes 2016-08-15 10:31:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.Box2D.new/Box2D.changes 2016-08-25 09:56:28.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Aug 12 16:58:00 UTC 2016 - jengelh(a)inai.de
+
+- Replace strange buildroot definition
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ Box2D.spec ++++++
--- /var/tmp/diff_new_pack.IanHWR/_old 2016-08-25 09:56:29.000000000 +0200
+++ /var/tmp/diff_new_pack.IanHWR/_new 2016-08-25 09:56:29.000000000 +0200
@@ -17,9 +17,6 @@
#
-%if 0%{?suse_version} < 1310
-%define buildroot $RPM_BUILD_ROOT
-%endif
%define so_ver 2_3_1
Name: Box2D
Version: 2.3.1
@@ -32,6 +29,7 @@
Source1: baselibs.conf
# PATCH-FIX-UPSTREAM Box2D-fix-version-2.3.1.patch -- already fixed upstream
Patch0: %{name}-fix-version-2.3.1.patch
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake >= 3
BuildRequires: dos2unix
BuildRequires: gcc-c++
1
0
Hello community,
here is the log from the commit of package cram for openSUSE:Factory checked in at 2016-08-25 09:56:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cram (Old)
and /work/SRC/openSUSE:Factory/.cram.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cram"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cram/cram.changes 2016-06-25 02:24:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cram.new/cram.changes 2016-08-25 09:56:26.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Aug 22 07:08:38 UTC 2016 - mpluskal(a)suse.com
+
+- Disable tests and its dependencies for SLE
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cram.spec ++++++
--- /var/tmp/diff_new_pack.7r1r9x/_old 2016-08-25 09:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.7r1r9x/_new 2016-08-25 09:56:26.000000000 +0200
@@ -24,9 +24,11 @@
Group: Development/Languages/Python
Url: https://bitheap.org/cram/
Source: https://pypi.python.org/packages/source/c/cram/cram-%{version}.tar.gz
+%if 0%{?is_opensuse}
BuildRequires: python3-coverage
-BuildRequires: python3-devel
BuildRequires: python3-nose
+%endif
+BuildRequires: python3-devel
BuildRequires: python3-setuptools
Requires: python3
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -51,7 +53,9 @@
python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
%check
+%if 0%{?is_opensuse}
make %{?_smp_mflags} PYTHON=python3 test
+%endif
%files
%defattr(-,root,root,-)
1
0
Hello community,
here is the log from the commit of package votca-csg for openSUSE:Factory checked in at 2016-08-25 09:56:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/votca-csg (Old)
and /work/SRC/openSUSE:Factory/.votca-csg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "votca-csg"
Changes:
--------
--- /work/SRC/openSUSE:Factory/votca-csg/votca-csg.changes 2016-01-22 01:09:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.votca-csg.new/votca-csg.changes 2016-08-25 09:56:23.000000000 +0200
@@ -1,0 +2,12 @@
+Sun Aug 21 12:05:33 UTC 2016 - jengelh(a)inai.de
+
+- RPM group update
+
+-------------------------------------------------------------------
+Fri Aug 19 21:35:35 UTC 2016 - junghans(a)votca.org
+
+- Upgrade to 1.3.1
+ * fixed build with >=cmake-3.4
+ * details: https://github.com/votca/csg/blob/master/CHANGELOG.md
+
+-------------------------------------------------------------------
Old:
----
votca-csg-1.3.tar.gz
votca-csg-manual-1.3.pdf
votca-csg-tutorials-1.3.tar.gz
New:
----
votca-csg-1.3.1.tar.gz
votca-csg-manual-1.3.1.pdf
votca-csg-tutorials-1.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ votca-csg.spec ++++++
--- /var/tmp/diff_new_pack.vK5gvr/_old 2016-08-25 09:56:25.000000000 +0200
+++ /var/tmp/diff_new_pack.vK5gvr/_new 2016-08-25 09:56:25.000000000 +0200
@@ -1,21 +1,29 @@
#
-# votca-csg.spec
+# spec file for package votca-csg
#
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2013-2016 Christoph Junghans
#
-# Originally written by Jussi Lehtola <jussilehtola(a)fedoraproject.org>
-# Fixed for multi-distro build by Klaus Kaempf <kkaempf(a)suse.de>
-#
-# Licensed under the Apache Software License (ASL 2.0)
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: votca-csg
-Version: 1.3
+Version: 1.3.1
Release: 0
Summary: VOTCA coarse-graining engine
-Group: Productivity/Scientific/Chemistry
License: Apache-2.0
-URL: http://www.votca.org
+Group: Productivity/Scientific/Chemistry
+Url: http://www.votca.org
Source0: https://github.com/votca/csg/archive/v%{version}.tar.gz#/%{name}-%{version}…
Source1: https://github.com/votca/csg-tutorials/archive/v%{version}.tar.gz#/%{name}-…
Source2: https://github.com/votca/csg-manual/releases/download/v%{version}/votca-csg…
@@ -28,12 +36,12 @@
%else
BuildRequires: pkg-config
%endif
-BuildRequires: fdupes
BuildRequires: boost-devel >= 1.39.0
-BuildRequires: pkgconfig(libvotca_tools) = %{version}
-BuildRequires: gromacs-devel
BuildRequires: cmake >= 2.8.4
+BuildRequires: fdupes
+BuildRequires: gromacs-devel
BuildRequires: txt2tags
+BuildRequires: pkgconfig(libvotca_tools) = %{version}
#exact same version is needed
Requires: %{name}-common = %{version}
@@ -48,7 +56,7 @@
%package -n libvotca_csg3
Summary: Libraries for VOTCA coarse graining engine
-Group: Productivity/Scientific/Chemistry
+Group: System/Libraries
%description -n libvotca_csg3
Versatile Object-oriented Toolkit for Coarse-graining Applications (VOTCA) is
@@ -71,8 +79,8 @@
Summary: Architecture independent data files for VOTCA CSG
Group: Productivity/Scientific/Chemistry
BuildArch: noarch
-Requires: bash
Requires: /usr/bin/awk
+Requires: bash
Requires: perl
%description common
@@ -97,7 +105,7 @@
%package bash
Summary: Bash completion for votca
-Group: Productivity/Other
+Group: System/Shells
Requires: %{name} = %{version}
Requires: bash-completion
BuildArch: noarch
++++++ votca-csg-1.3.tar.gz -> votca-csg-1.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/csg-1.3/CHANGELOG.md new/csg-1.3.1/CHANGELOG.md
--- old/csg-1.3/CHANGELOG.md 2016-01-15 22:49:01.000000000 +0100
+++ new/csg-1.3.1/CHANGELOG.md 2016-08-19 22:03:12.000000000 +0200
@@ -1,5 +1,11 @@
For more detailed information about the changes see the history of the [repository](https://github.com/votca/csg/commits/master).
+## Version 1.3.1 (released 19.08.16)
+* histogram: use floor() on bin value
+* calculator: fixed namespace
+* VOTCARC: added shebang
+* fixed gromacs detection with >=cmake-3.4
+
## Version 1.3 _SuperUzma_ (released 15.01.16)
* re-implemented csg_boltzmann --excl
* added support for upcoming gromacs 2016
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/csg-1.3/CMakeLists.txt new/csg-1.3.1/CMakeLists.txt
--- old/csg-1.3/CMakeLists.txt 2016-01-15 22:49:01.000000000 +0100
+++ new/csg-1.3.1/CMakeLists.txt 2016-08-19 22:03:12.000000000 +0200
@@ -2,7 +2,7 @@
project(votca-csg)
-set(PROJECT_VERSION "1.3")
+set(PROJECT_VERSION "1.3.1")
set(PROJECT_CONTACT "bugs(a)votca.org")
string(REGEX REPLACE "^[1-9]+\\.([1-9]+).*$" "\\1" SOVERSION "${PROJECT_VERSION}")
if (NOT ${SOVERSION} MATCHES "[1-9]+")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/csg-1.3/CMakeModules/CheckCXXLibraryExists.cmake new/csg-1.3.1/CMakeModules/CheckCXXLibraryExists.cmake
--- old/csg-1.3/CMakeModules/CheckCXXLibraryExists.cmake 2016-01-15 22:49:01.000000000 +0100
+++ new/csg-1.3.1/CMakeModules/CheckCXXLibraryExists.cmake 2016-08-19 22:03:12.000000000 +0200
@@ -54,13 +54,9 @@
set(CHECK_LIBRARY_EXISTS_LIBRARIES
${CHECK_LIBRARY_EXISTS_LIBRARIES} ${CMAKE_REQUIRED_LIBRARIES})
endif()
- if(NOT EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckFunctionExists.cpp)
- file(COPY ${CMAKE_ROOT}/Modules/CheckFunctionExists.c DESTINATION ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
- file(RENAME ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckFunctionExists.c ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckFunctionExists.cpp)
- endif()
try_compile(${VARIABLE}
${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckFunctionExists.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/CheckFunctionExists.cpp
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
LINK_LIBRARIES ${CHECK_LIBRARY_EXISTS_LIBRARIES}
CMAKE_FLAGS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/csg-1.3/CMakeModules/CheckFunctionExists.cpp new/csg-1.3.1/CMakeModules/CheckFunctionExists.cpp
--- old/csg-1.3/CMakeModules/CheckFunctionExists.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/csg-1.3.1/CMakeModules/CheckFunctionExists.cpp 2016-08-19 22:03:12.000000000 +0200
@@ -0,0 +1,23 @@
+#ifdef CHECK_FUNCTION_EXISTS
+
+char CHECK_FUNCTION_EXISTS();
+#ifdef __CLASSIC_C__
+int main(){
+ int ac;
+ char*av[];
+#else
+int main(int ac, char*av[]){
+#endif
+ CHECK_FUNCTION_EXISTS();
+ if(ac > 1000)
+ {
+ return *av[0];
+ }
+ return 0;
+}
+
+#else /* CHECK_FUNCTION_EXISTS */
+
+# error "CHECK_FUNCTION_EXISTS has to specify the function"
+
+#endif /* CHECK_FUNCTION_EXISTS */
++++++ votca-csg-manual-1.3.pdf -> votca-csg-manual-1.3.1.pdf ++++++
(binary differes)
++++++ votca-csg-tutorials-1.3.tar.gz -> votca-csg-tutorials-1.3.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/votca-csg/votca-csg-tutorials-1.3.tar.gz /work/SRC/openSUSE:Factory/.votca-csg.new/votca-csg-tutorials-1.3.1.tar.gz differ: char 12, line 1
1
0
Hello community,
here is the log from the commit of package yate for openSUSE:Factory checked in at 2016-08-25 09:56:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yate (Old)
and /work/SRC/openSUSE:Factory/.yate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yate"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yate/yate.changes 2016-05-08 10:46:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yate.new/yate.changes 2016-08-25 09:56:20.000000000 +0200
@@ -1,0 +2,11 @@
+Sun Aug 21 09:23:39 UTC 2016 - jengelh(a)inai.de
+
+- Run fdupes to reduce duplicated files reported by rpmlint.
+
+-------------------------------------------------------------------
+Thu May 26 14:55:36 UTC 2016 - mbrugger(a)suse.com
+
+- add support for aarch64 architecture
+ * add-arm64-support.patch
+
+-------------------------------------------------------------------
New:
----
add-arm64-support.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yate.spec ++++++
--- /var/tmp/diff_new_pack.OogfCK/_old 2016-08-25 09:56:21.000000000 +0200
+++ /var/tmp/diff_new_pack.OogfCK/_new 2016-08-25 09:56:21.000000000 +0200
@@ -27,9 +27,11 @@
Url: http://www.yate.null.ro/
Source0: http://yate.null.ro/tarballs/yate5/yate-%{version}-1.tar.gz
Patch1: dont-mess-with-cflags.patch
+Patch2: add-arm64-support.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libqt4-devel
%if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version}
@@ -73,7 +75,7 @@
to compile and develop applications that use Yate.
%package qt4
-Summary: Qt-4 client package for Yate
+Summary: Qt4 client package for Yate
License: GPL-2.0
Group: Productivity/Telephony/Clients
Requires: %{name} = %{version}
@@ -107,6 +109,7 @@
%prep
%setup -q -n %{name}
%patch1 -p1
+%patch2 -p1
%build
autoreconf -fiv
@@ -122,10 +125,11 @@
mv %{buildroot}%{_datadir}/doc/%{name}-%{version} %{buildroot}%{_docdir}/%{name}
%if 0%{?packman_bs}
-cat<<EOF >README.amrnb
+cat <<EOF >README.amrnb
This %{name} package has been built with amrnb support.
EOF
%endif
+%fdupes %buildroot/%_prefix
%post -p /sbin/ldconfig
++++++ add-arm64-support.patch ++++++
Index: b/libs/miniwebrtc/typedefs.h
===================================================================
--- a/libs/miniwebrtc/typedefs.h
+++ b/libs/miniwebrtc/typedefs.h
@@ -99,6 +99,9 @@
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#endif
+#elif defined(__aarch64__)
+#define WEBRTC_ARCH_64_BITS
+#define WEBRTC_ARCH_LITTLE_ENDIAN
#else
#error Please add support for your architecture in typedefs.h
1
0
Hello community,
here is the log from the commit of package wxhexeditor for openSUSE:Factory checked in at 2016-08-25 09:56:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wxhexeditor (Old)
and /work/SRC/openSUSE:Factory/.wxhexeditor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wxhexeditor"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wxhexeditor/wxhexeditor.changes 2015-01-08 23:02:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.wxhexeditor.new/wxhexeditor.changes 2016-08-25 09:56:17.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Aug 20 18:24:31 UTC 2016 - jengelh(a)inai.de
+
+- Build against wxWidgets 3
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wxhexeditor.spec ++++++
--- /var/tmp/diff_new_pack.K2D5nh/_old 2016-08-25 09:56:18.000000000 +0200
+++ /var/tmp/diff_new_pack.K2D5nh/_new 2016-08-25 09:56:18.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package wxhexeditor
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -37,7 +37,7 @@
BuildRequires: libtool
BuildRequires: mhash-devel
BuildRequires: update-desktop-files
-BuildRequires: wxWidgets-devel
+BuildRequires: wxWidgets-devel >= 3
Recommends: %{name}-lang
%description
1
0
Hello community,
here is the log from the commit of package libbrotli for openSUSE:Factory checked in at 2016-08-25 09:56:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libbrotli (Old)
and /work/SRC/openSUSE:Factory/.libbrotli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libbrotli"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libbrotli/libbrotli.changes 2016-03-26 15:26:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libbrotli.new/libbrotli.changes 2016-08-25 09:56:08.000000000 +0200
@@ -1,0 +2,7 @@
+Sat Aug 20 08:14:15 UTC 2016 - jengelh(a)inai.de
+
+- Update to git snapshot 1.0.git5
+* Some header files and symbols were erroneously absent from the
+ library
+
+-------------------------------------------------------------------
Old:
----
libbrotli-1.0.tar.xz
New:
----
libbrotli-1.0.g5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libbrotli.spec ++++++
--- /var/tmp/diff_new_pack.6YDMjk/_old 2016-08-25 09:56:09.000000000 +0200
+++ /var/tmp/diff_new_pack.6YDMjk/_new 2016-08-25 09:56:09.000000000 +0200
@@ -16,8 +16,10 @@
#
+%define version_unconverted 1.0.g5
+
Name: libbrotli
-Version: 1.0
+Version: 1.0.g5
Release: 0
Summary: Library implementing the Brotli compression algorithm
License: Apache-2.0 and MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.6YDMjk/_old 2016-08-25 09:56:09.000000000 +0200
+++ /var/tmp/diff_new_pack.6YDMjk/_new 2016-08-25 09:56:09.000000000 +0200
@@ -2,9 +2,9 @@
<service name="tar_scm" mode="localonly">
<param name="url">https://github.com/bagder/libbrotli</param>
<param name="scm">git</param>
- <param name="revision">libbrotli-1.0</param>
<param name="submodules">enable</param>
- <param name="versionformat">1.0</param>
+ <param name="parent-tag">libbrotli-1.0</param>
+ <param name="versionformat">1.0.g@TAG_OFFSET@</param>
</service>
<service name="recompress" mode="localonly">
<param name="file">*.tar</param>
1
0
Hello community,
here is the log from the commit of package plzip for openSUSE:Factory checked in at 2016-08-25 09:56:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plzip (Old)
and /work/SRC/openSUSE:Factory/.plzip.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plzip"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plzip/plzip.changes 2015-08-14 14:46:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.plzip.new/plzip.changes 2016-08-25 09:56:07.000000000 +0200
@@ -1,0 +2,10 @@
+Sat Aug 20 08:18:48 UTC 2016 - jengelh(a)inai.de
+
+- Update to new upstream release 1.5
+* The option "-a, --trailing-error", which makes plzip exit with
+ error status 2 if any remaining input is detected after
+ decompressing the last member, has been added.
+* When decompressing, the file specified with the "--output" option
+ is now deleted if the input is a terminal.
+
+-------------------------------------------------------------------
Old:
----
plzip-1.4.tar.gz
plzip-1.4.tar.gz.sig
New:
----
plzip-1.5.tar.gz
plzip-1.5.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plzip.spec ++++++
--- /var/tmp/diff_new_pack.hBNrd8/_old 2016-08-25 09:56:08.000000000 +0200
+++ /var/tmp/diff_new_pack.hBNrd8/_new 2016-08-25 09:56:08.000000000 +0200
@@ -2,7 +2,7 @@
#
# spec file for package plzip
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2012 Pascal Bleser <pascal.bleser(a)opensuse.org>
#
# All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
Name: plzip
-Version: 1.4
+Version: 1.5
Release: 0
Summary: Parallel LZMA Data Compressor
License: GPL-2.0+
++++++ plzip-1.4.tar.gz -> plzip-1.5.tar.gz ++++++
++++ 1959 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package votca-tools for openSUSE:Factory checked in at 2016-08-25 09:56:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/votca-tools (Old)
and /work/SRC/openSUSE:Factory/.votca-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "votca-tools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/votca-tools/votca-tools.changes 2016-01-22 01:09:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.votca-tools.new/votca-tools.changes 2016-08-25 09:56:04.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Aug 19 21:28:36 UTC 2016 - junghans(a)votca.org
+
+- Upgrade to 1.3
+ * fix bug in histogram class
+ * details: https://github.com/votca/csg/blob/master/CHANGELOG.md
+
+-------------------------------------------------------------------
Old:
----
votca-tools-1.3.tar.gz
New:
----
votca-tools-1.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ votca-tools.spec ++++++
--- /var/tmp/diff_new_pack.PhZdJK/_old 2016-08-25 09:56:05.000000000 +0200
+++ /var/tmp/diff_new_pack.PhZdJK/_new 2016-08-25 09:56:05.000000000 +0200
@@ -10,7 +10,7 @@
#
Name: votca-tools
-Version: 1.3
+Version: 1.3.1
Release: 0
Summary: VOTCA tools library
Group: Productivity/Scientific/Chemistry
++++++ votca-tools-1.3.tar.gz -> votca-tools-1.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools-1.3/CMakeLists.txt new/tools-1.3.1/CMakeLists.txt
--- old/tools-1.3/CMakeLists.txt 2016-01-15 22:48:59.000000000 +0100
+++ new/tools-1.3.1/CMakeLists.txt 2016-08-19 22:03:11.000000000 +0200
@@ -2,7 +2,7 @@
project(votca-tools)
-set(PROJECT_VERSION "1.3")
+set(PROJECT_VERSION "1.3.1")
string(REGEX REPLACE "^[1-9]+\\.([1-9]+).*$" "\\1" SOVERSION "${PROJECT_VERSION}")
if (NOT ${SOVERSION} MATCHES "[1-9]+")
message(FATAL_ERROR "Could not determind SOVERSION from ${PROJECT_VERSION}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools-1.3/include/votca/tools/calculator.h new/tools-1.3.1/include/votca/tools/calculator.h
--- old/tools-1.3/include/votca/tools/calculator.h 2016-01-15 22:48:59.000000000 +0100
+++ new/tools-1.3.1/include/votca/tools/calculator.h 2016-08-19 22:03:11.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2009-2012 The VOTCA Development Team
+ * Copyright 2009-2016 The VOTCA Development Team
* (http://www.votca.org)
*
* Licensed under the Apache License, Version 2.0 (the "License")
@@ -18,14 +18,14 @@
*/
-#ifndef VOTCA_CTP_CALCULATOR_H
-#define VOTCA_CTP_CALCULATOR_H
+#ifndef VOTCA_TOOLS_CALCULATOR_H
+#define VOTCA_TOOLS_CALCULATOR_H
#include <votca/tools/property.h>
#include <votca/tools/propertyiomanipulator.h>
#include <votca/tools/globals.h>
-namespace votca { namespace ctp {
+namespace votca { namespace tools {
/**
* \brief Base class for all calculators
@@ -115,7 +115,7 @@
if(votca_share == NULL) throw std::runtime_error("VOTCASHARE not set, cannot open help files.");
// load the xml description of the calculator (with defaults and test values)
std::string xmlFile = std::string(getenv("VOTCASHARE"))
- + std::string("/ctp/xml/") + id + std::string(".xml");
+ + std::string("/tools/xml/") + id + std::string(".xml");
votca::tools::Property defaults, _defaults;
votca::tools::load_property_from_xml(_defaults, xmlFile);
@@ -158,4 +158,4 @@
}}
-#endif /* VOTCA_CTP_CALCULATOR_H */
+#endif /* VOTCA_TOOLS_CALCULATOR_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools-1.3/scripts/VOTCARC.bash.in new/tools-1.3.1/scripts/VOTCARC.bash.in
--- old/tools-1.3/scripts/VOTCARC.bash.in 2016-01-15 22:48:59.000000000 +0100
+++ new/tools-1.3.1/scripts/VOTCARC.bash.in 2016-08-19 22:03:11.000000000 +0200
@@ -1,4 +1,5 @@
-#
+#!/usr/bin/env bash
+#
# Copyright 2009-2011 The VOTCA Development Team (http://www.votca.org)
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,7 +32,7 @@
done
unset rc
-#bash cmopletion
+#bash completion
if [ -n "$BASH_VERSION" ]; then
for comp in "@CMAKE_INSTALL_PREFIX@/@DATA@"/rc/*completion.bash; do
[ -r "$comp" ] && source "$comp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools-1.3/scripts/VOTCARC.csh.in new/tools-1.3.1/scripts/VOTCARC.csh.in
--- old/tools-1.3/scripts/VOTCARC.csh.in 2016-01-15 22:48:59.000000000 +0100
+++ new/tools-1.3.1/scripts/VOTCARC.csh.in 2016-08-19 22:03:11.000000000 +0200
@@ -1,4 +1,5 @@
-#
+#!/usr/bin/env csh
+#
# Copyright 2009-2011 The VOTCA Development Team (http://www.votca.org)
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools-1.3/src/libtools/histogram.cc new/tools-1.3.1/src/libtools/histogram.cc
--- old/tools-1.3/src/libtools/histogram.cc 2016-01-15 22:48:59.000000000 +0100
+++ new/tools-1.3.1/src/libtools/histogram.cc 2016-08-19 22:03:11.000000000 +0200
@@ -73,7 +73,7 @@
double v = 1.;
for(array = data->begin(); array!=data->end(); ++array) {
for(iter=(*array)->begin(); iter!=(*array)->end(); ++iter) {
- ii = (int)( (*iter - _min) / _interval + 0.5); // the interval should be centered around the sampling point
+ ii = (int)floor( (*iter - _min) / _interval + 0.5); // the interval should be centered around the sampling point
if(ii< 0 || ii >= _options._n) {
if(_options._periodic) {
while(ii<0) ii+=_options._n;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools-1.3/src/libtools/histogramnew.cc new/tools-1.3.1/src/libtools/histogramnew.cc
--- old/tools-1.3/src/libtools/histogramnew.cc 2016-01-15 22:48:59.000000000 +0100
+++ new/tools-1.3.1/src/libtools/histogramnew.cc 2016-08-19 22:03:11.000000000 +0200
@@ -49,7 +49,7 @@
void HistogramNew::Process(const double &v, double scale)
{
- int i = (int) ((v - _min) / _step + 0.5);
+ int i = (int)floor((v - _min) / _step + 0.5);
if (i < 0 || i >= _nbins) {
if(!_periodic) return;
1
0
Hello community,
here is the log from the commit of package votca-csgapps for openSUSE:Factory checked in at 2016-08-25 09:55:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/votca-csgapps (Old)
and /work/SRC/openSUSE:Factory/.votca-csgapps.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "votca-csgapps"
Changes:
--------
--- /work/SRC/openSUSE:Factory/votca-csgapps/votca-csgapps.changes 2016-01-22 01:09:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.votca-csgapps.new/votca-csgapps.changes 2016-08-25 09:56:02.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Aug 19 21:43:21 UTC 2016 - junghans(a)votca.org
+
+- Upgrade to 1.3.1
+ * details: https://github.com/votca/csg/blob/master/CHANGELOG.md
+
+-------------------------------------------------------------------
Old:
----
votca-csgapps-1.3.tar.gz
New:
----
votca-csgapps-1.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ votca-csgapps.spec ++++++
--- /var/tmp/diff_new_pack.pIHHa7/_old 2016-08-25 09:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.pIHHa7/_new 2016-08-25 09:56:03.000000000 +0200
@@ -1,7 +1,7 @@
#
# votca-csgapps.spec
#
-# Copyright (c) 2013-2015 Christoph Junghans
+# Copyright (c) 2013-2016 Christoph Junghans
#
# Originally written by Jussi Lehtola <jussilehtola(a)fedoraproject.org>
# Fixed for multi-distro build by Klaus Kaempf <kkaempf(a)suse.de>
@@ -10,7 +10,7 @@
#
Name: votca-csgapps
-Version: 1.3
+Version: 1.3.1
Release: 0
Summary: VOTCA coarse-graining engine applications
Group: Productivity/Scientific/Chemistry
++++++ votca-csgapps-1.3.tar.gz -> votca-csgapps-1.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/csgapps-1.3/CMakeLists.txt new/csgapps-1.3.1/CMakeLists.txt
--- old/csgapps-1.3/CMakeLists.txt 2016-01-15 22:49:07.000000000 +0100
+++ new/csgapps-1.3.1/CMakeLists.txt 2016-08-19 22:03:14.000000000 +0200
@@ -2,7 +2,7 @@
project(csgapps)
-set(PROJECT_VERSION "1.3")
+set(PROJECT_VERSION "1.3.1")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules)
1
0
Hello community,
here is the log from the commit of package stellarium for openSUSE:Factory checked in at 2016-08-25 09:55:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/stellarium (Old)
and /work/SRC/openSUSE:Factory/.stellarium.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "stellarium"
Changes:
--------
--- /work/SRC/openSUSE:Factory/stellarium/stellarium.changes 2016-08-17 12:05:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.stellarium.new/stellarium.changes 2016-08-25 09:55:58.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Aug 18 08:32:59 UTC 2016 - fvogt(a)suse.com
+
+- Require Qt5Script instead of Qt5Declarative to fix build
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ stellarium.spec ++++++
--- /var/tmp/diff_new_pack.ZPYicW/_old 2016-08-25 09:56:01.000000000 +0200
+++ /var/tmp/diff_new_pack.ZPYicW/_new 2016-08-25 09:56:01.000000000 +0200
@@ -31,7 +31,7 @@
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Concurrent) >= 5.6.0
-BuildRequires: pkgconfig(Qt5Declarative) >= 5.5.0
+BuildRequires: pkgconfig(Qt5Script) >= 5.5.0
BuildRequires: pkgconfig(Qt5Gui) >= 5.6.0
BuildRequires: pkgconfig(Qt5Multimedia) >= 5.6.0
BuildRequires: pkgconfig(Qt5MultimediaWidgets) >= 5.6.0
1
0
Hello community,
here is the log from the commit of package python-alembic for openSUSE:Factory checked in at 2016-08-25 09:55:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-alembic (Old)
and /work/SRC/openSUSE:Factory/.python-alembic.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-alembic"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-alembic/python-alembic.changes 2016-06-07 23:49:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-alembic.new/python-alembic.changes 2016-08-25 09:55:55.000000000 +0200
@@ -1,0 +2,39 @@
+Mon Aug 15 10:24:57 UTC 2016 - tbechtold(a)suse.com
+
+- update to 0.8.7:
+ - Fixed bug where upgrading to the head of a branch which is already
+ present would fail, only if that head were also the dependency
+ of a different branch that is also upgraded, as the revision system
+ would see this as trying to go in the wrong direction. The check
+ here has been refined to distinguish between same-branch revisions
+ out of order vs. movement along sibling branches.
+ - Adjusted the version traversal on downgrade
+ such that we can downgrade to a version that is a dependency for
+ a version in a different branch, *without* needing to remove that
+ dependent version as well. Previously, the target version would be
+ seen as a "merge point" for it's normal up-revision as well as the
+ dependency. This integrates with the changes for :ticket:`377`
+ and :ticket:`378` to improve treatment of branches with dependencies
+ overall.
+ - Fixed bug where a downgrade to a version that is also a dependency
+ to a different branch would fail, as the system attempted to treat
+ this as an "unmerge" of a merge point, when in fact it doesn't have
+ the other side of the merge point available for update.
+ - Fixed bug where the "alembic current" command wouldn't show a revision
+ as a current head if it were also a dependency of a version in a
+ different branch that's also applied. Extra logic is added to
+ extract "implied" versions of different branches from the top-level
+ versions listed in the alembic_version table.
+ - Fixed bug where a repr() or str() of a Script object would fail
+ if the script had multiple dependencies.
+ - Fixed bug in autogen where if the DB connection sends the default
+ schema as "None", this "None" would be removed from the list of
+ schemas to check if include_schemas were set. This could possibly
+ impact using include_schemas with SQLite.
+ - Small adjustment made to the batch handling for reflected CHECK
+ constraints to accommodate for SQLAlchemy 1.1 now reflecting these.
+ Batch mode still does not support CHECK constraints from the reflected
+ table as these can't be easily differentiated from the ones created
+ by types such as Boolean.
+
+-------------------------------------------------------------------
Old:
----
alembic-0.8.6.tar.gz
New:
----
alembic-0.8.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-alembic.spec ++++++
--- /var/tmp/diff_new_pack.Z9lVd6/_old 2016-08-25 09:55:56.000000000 +0200
+++ /var/tmp/diff_new_pack.Z9lVd6/_new 2016-08-25 09:55:56.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-alembic
-Version: 0.8.6
+Version: 0.8.7
Release: 0
Url: http://bitbucket.org/zzzeek/alembic
Summary: A database migration tool for SQLAlchemy
++++++ alembic-0.8.6.tar.gz -> alembic-0.8.7.tar.gz ++++++
++++ 7786 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package rubygem-airbrussh for openSUSE:Factory checked in at 2016-08-25 09:55:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-airbrussh (Old)
and /work/SRC/openSUSE:Factory/.rubygem-airbrussh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-airbrussh"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-airbrussh/rubygem-airbrussh.changes 2016-06-11 00:01:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-airbrussh.new/rubygem-airbrussh.changes 2016-08-25 09:55:52.000000000 +0200
@@ -1,0 +2,15 @@
+Wed Jul 27 04:28:32 UTC 2016 - coolo(a)suse.com
+
+- updated to version 1.1.0
+ see installed CHANGELOG.md
+
+ ## [1.1.0][] (2016-07-26)
+
+ * Use default color for info messages.
+ When using the `gray` color on some implementation of the `solarized`
+ theme the text is not visible. The `solarized` theme is popular and
+ bugs have been reported about missed error messages, so this patch
+ switches these messages to the default color.
+ (see [#84](https://github.com/mattbrictson/airbrussh/issues/84))
+
+-------------------------------------------------------------------
Old:
----
airbrussh-1.0.2.gem
New:
----
airbrussh-1.1.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-airbrussh.spec ++++++
--- /var/tmp/diff_new_pack.pgoSnC/_old 2016-08-25 09:55:53.000000000 +0200
+++ /var/tmp/diff_new_pack.pgoSnC/_new 2016-08-25 09:55:53.000000000 +0200
@@ -24,14 +24,14 @@
#
Name: rubygem-airbrussh
-Version: 1.0.2
+Version: 1.1.0
Release: 0
%define mod_name airbrussh
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 5
-BuildRequires: %{ruby}
BuildRequires: %{rubygem gem2rpm}
+BuildRequires: %{ruby}
+BuildRequires: ruby-macros >= 5
Url: https://github.com/mattbrictson/airbrussh
Source: http://rubygems.org/gems/%{mod_full_name}.gem
Source1: gem2rpm.yml
++++++ airbrussh-1.0.2.gem -> airbrussh-1.1.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2016-05-13 19:24:21.000000000 +0200
+++ new/CHANGELOG.md 2016-07-27 01:43:49.000000000 +0200
@@ -6,6 +6,15 @@
* Your contribution here!
+## [1.1.0][] (2016-07-26)
+
+* Use default color for info messages.
+ When using the `gray` color on some implementation of the `solarized`
+ theme the text is not visible. The `solarized` theme is popular and
+ bugs have been reported about missed error messages, so this patch
+ switches these messages to the default color.
+ (see [#84](https://github.com/mattbrictson/airbrussh/issues/84))
+
## [1.0.2][] (2016-05-13)
* Fix a crash that can happen in certain multi-server deployments when
@@ -106,7 +115,8 @@
* Initial release
[Semver]: http://semver.org
-[Unreleased]: https://github.com/mattbrictson/airbrussh/compare/v1.0.2...HEAD
+[Unreleased]: https://github.com/mattbrictson/airbrussh/compare/v1.1.0...HEAD
+[1.1.0]: https://github.com/mattbrictson/airbrussh/compare/v1.0.2...v1.1.0
[1.0.2]: https://github.com/mattbrictson/airbrussh/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/mattbrictson/airbrussh/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/mattbrictson/airbrussh/compare/v1.0.0.beta1...v1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Gemfile new/Gemfile
--- old/Gemfile 2016-05-13 19:24:21.000000000 +0200
+++ new/Gemfile 2016-07-27 01:43:49.000000000 +0200
@@ -31,5 +31,8 @@
gem "sshkit", requirement
end
+# json 2.0+ is not compatible with Ruby 1.9, so pin at older version.
+gem "json", "~> 1.8" if RUBY_VERSION == "1.9.3"
+
# net-ssh 3.0+ is not compatible with Ruby 1.9, so pin at older version.
gem "net-ssh", "~> 2.8" if RUBY_VERSION == "1.9.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/airbrussh.gemspec new/airbrussh.gemspec
--- old/airbrussh.gemspec 2016-05-13 19:24:21.000000000 +0200
+++ new/airbrussh.gemspec 2016-07-27 01:43:49.000000000 +0200
@@ -29,5 +29,5 @@
spec.add_development_dependency "minitest"
spec.add_development_dependency "minitest-reporters"
spec.add_development_dependency "mocha"
- spec.add_development_dependency "rubocop", ">= 0.37.0"
+ spec.add_development_dependency "rubocop", "~> 0.41.2"
end
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/airbrussh/command_formatter.rb new/lib/airbrussh/command_formatter.rb
--- old/lib/airbrussh/command_formatter.rb 2016-05-13 19:24:21.000000000 +0200
+++ new/lib/airbrussh/command_formatter.rb 2016-07-27 01:43:49.000000000 +0200
@@ -52,7 +52,7 @@
else
green(success_message)
end
- message << " #{gray(runtime)}"
+ message << " #{runtime}"
end
private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/airbrussh/console_formatter.rb new/lib/airbrussh/console_formatter.rb
--- old/lib/airbrussh/console_formatter.rb 2016-05-13 19:24:21.000000000 +0200
+++ new/lib/airbrussh/console_formatter.rb 2016-07-27 01:43:49.000000000 +0200
@@ -69,7 +69,7 @@
def write_log_message(log_message)
return if debug?(log_message)
print_task_if_changed
- print_indented_line(gray(log_message.to_s))
+ print_indented_line(log_message.to_s)
end
# For SSHKit versions up to and including 1.7.1, the stdout and stderr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/airbrussh/version.rb new/lib/airbrussh/version.rb
--- old/lib/airbrussh/version.rb 2016-05-13 19:24:21.000000000 +0200
+++ new/lib/airbrussh/version.rb 2016-07-27 01:43:49.000000000 +0200
@@ -1,4 +1,4 @@
# frozen_string_literal: true
module Airbrussh
- VERSION = "1.0.2".freeze
+ VERSION = "1.1.0".freeze
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-05-13 19:24:21.000000000 +0200
+++ new/metadata 2016-07-27 01:43:49.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: airbrussh
version: !ruby/object:Gem::Version
- version: 1.0.2
+ version: 1.1.0
platform: ruby
authors:
- Matt Brictson
autorequire:
bindir: exe
cert_chain: []
-date: 2016-05-13 00:00:00.000000000 Z
+date: 2016-07-26 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: sshkit
@@ -118,16 +118,16 @@
name: rubocop
requirement: !ruby/object:Gem::Requirement
requirements:
- - - ">="
+ - - "~>"
- !ruby/object:Gem::Version
- version: 0.37.0
+ version: 0.41.2
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - ">="
+ - - "~>"
- !ruby/object:Gem::Version
- version: 0.37.0
+ version: 0.41.2
description: A replacement log formatter for SSHKit that makes Capistrano output much
easier on the eyes. Just add Airbrussh to your Capfile and enjoy concise, useful
log output that is easy to read.
@@ -190,7 +190,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.6.4
+rubygems_version: 2.6.6
signing_key:
specification_version: 4
summary: Airbrussh pretties up your SSHKit and Capistrano output
1
0
Hello community,
here is the log from the commit of package rubygem-capistrano for openSUSE:Factory checked in at 2016-08-25 09:55:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-capistrano (Old)
and /work/SRC/openSUSE:Factory/.rubygem-capistrano.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-capistrano"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-capistrano/rubygem-capistrano.changes 2016-06-11 00:01:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-capistrano.new/rubygem-capistrano.changes 2016-08-25 09:55:48.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Jul 27 04:29:07 UTC 2016 - coolo(a)suse.com
+
+- updated to version 3.6.0
+ see installed CHANGELOG.md
+
+-------------------------------------------------------------------
Old:
----
capistrano-3.5.0.gem
New:
----
capistrano-3.6.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-capistrano.spec ++++++
--- /var/tmp/diff_new_pack.PZVrXl/_old 2016-08-25 09:55:49.000000000 +0200
+++ /var/tmp/diff_new_pack.PZVrXl/_new 2016-08-25 09:55:49.000000000 +0200
@@ -24,12 +24,12 @@
#
Name: rubygem-capistrano
-Version: 3.5.0
+Version: 3.6.0
Release: 0
%define mod_name capistrano
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: %{ruby >= 1.9.3}
+BuildRequires: %{ruby >= 2.0}
BuildRequires: %{rubygem gem2rpm}
BuildRequires: ruby-macros >= 5
BuildRequires: update-alternatives
++++++ capistrano-3.5.0.gem -> capistrano-3.6.0.gem ++++++
++++ 1758 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package rubygem-globalid for openSUSE:Factory checked in at 2016-08-25 09:55:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-globalid (Old)
and /work/SRC/openSUSE:Factory/.rubygem-globalid.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-globalid"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-globalid/rubygem-globalid.changes 2015-08-05 19:14:43.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-globalid.new/rubygem-globalid.changes 2016-08-25 09:55:43.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Jul 27 04:29:42 UTC 2016 - coolo(a)suse.com
+
+- updated to version 0.3.7
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
globalid-0.3.6.gem
New:
----
globalid-0.3.7.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-globalid.spec ++++++
--- /var/tmp/diff_new_pack.PiuXSO/_old 2016-08-25 09:55:44.000000000 +0200
+++ /var/tmp/diff_new_pack.PiuXSO/_new 2016-08-25 09:55:44.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-globalid
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -24,7 +24,7 @@
#
Name: rubygem-globalid
-Version: 0.3.6
+Version: 0.3.7
Release: 0
%define mod_name globalid
%define mod_full_name %{mod_name}-%{version}
@@ -53,7 +53,7 @@
%install
%gem_install \
- --doc-files="MIT-LICENSE" \
+ --doc-files="MIT-LICENSE README.md" \
-f
%gem_packages
++++++ globalid-0.3.6.gem -> globalid-0.3.7.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MIT-LICENSE new/MIT-LICENSE
--- old/MIT-LICENSE 2015-08-04 23:30:09.000000000 +0200
+++ new/MIT-LICENSE 2016-07-26 22:35:46.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2014 David Heinemeier Hansson
+Copyright (c) 2014-2016 David Heinemeier Hansson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/README.md 2016-07-26 22:35:46.000000000 +0200
@@ -0,0 +1,130 @@
+# Global ID - Reference models by URI
+
+A Global ID is an app wide URI that uniquely identifies a model instance:
+
+ gid://YourApp/Some::Model/id
+
+This is helpful when you need a single identifier to reference different
+classes of objects.
+
+One example is job scheduling. We need to reference a model object rather than
+serialize the object itself. We can pass a Global ID that can be used to locate
+the model when it's time to perform the job. The job scheduler doesn't need to know
+the details of model naming and IDs, just that it has a global identifier that
+references a model.
+
+Another example is a drop-down list of options, consisting of both Users and Groups.
+Normally we'd need to come up with our own ad hoc scheme to reference them. With Global
+IDs, we have a universal identifier that works for objects of both classes.
+
+
+## Usage
+
+Mix `GlobalID::Identification` into any model with a `#find(id)` class method.
+Support is automatically included in Active Record.
+
+```ruby
+>> person_gid = Person.find(1).to_global_id
+=> #<GlobalID ...
+
+>> person_gid.uri
+=> #<URI ...
+
+>> person_gid.to_s
+=> "gid://app/Person/1"
+
+>> GlobalID::Locator.locate person_gid
+=> #<Person:0x007fae94bf6298 @id="1">
+```
+
+### Signed Global IDs
+
+For added security GlobalIDs can also be signed to ensure that the data hasn't been tampered with.
+
+```ruby
+>> person_sgid = Person.find(1).to_signed_global_id
+=> #<SignedGlobalID:0x007fea1944b410
+
+>> person_sgid = Person.find(1).to_sgid
+=> #<SignedGlobalID:0x007fea1944b410
+
+>> person_sgid.to_s
+=> "BAhJIh5naWQ6Ly9pZGluYWlkaS9Vc2VyLzM5NTk5BjoGRVQ=--81d7358dd5ee2ca33189bb404592df5e8d11420e"
+
+>> GlobalID::Locator.locate_signed person_sgid
+=> #<Person:0x007fae94bf6298 @id="1">
+
+```
+You can even bump the security up some more by explaining what purpose a Signed Global ID is for.
+In this way evildoers can't reuse a sign-up form's SGID on the login page. For example.
+
+```ruby
+>> signup_person_sgid = Person.find(1).to_sgid(for: 'signup_form')
+=> #<SignedGlobalID:0x007fea1984b520
+
+>> GlobalID::Locator.locate_signed(signup_person_sgid.to_s, for: 'signup_form')
+=> #<Person:0x007fae94bf6298 @id="1">
+```
+
+You can also have SGIDs that expire some time in the future. This is useful if there's a resource,
+people shouldn't have indefinite access to, like a share link.
+
+```ruby
+>> expiring_sgid = Document.find(5).to_sgid(expires_in: 2.hours, for: 'sharing')
+=> #<SignedGlobalID:0x008fde45df8937
+
+# Within 2 hours...
+>> GlobalID::Locator.locate_signed(expiring_sgid.to_s, for: 'sharing')
+=> #<Document:0x007fae94bf6298 @id="5">
+
+# More than 2 hours later...
+>> GlobalID::Locator.locate_signed(expiring_sgid.to_s, for: 'sharing')
+=> nil
+
+>> explicit_expiring_sgid = SecretAgentMessage.find(5).to_sgid(expires_at: Time.now.advance(hours: 1))
+=> #<SignedGlobalID:0x008fde45df8937
+
+# 1 hour later...
+>> GlobalID::Locator.locate_signed explicit_expiring_sgid.to_s
+=> nil
+```
+
+### Custom App Locator
+
+A custom locator can be set for an app by calling `GlobalID::Locator.use` and providing an app locator to use for that app.
+A custom app locator is useful when different apps collaborate and reference each others' Global IDs.
+When finding a Global ID's model, the locator to use is based on the app name provided in the Global ID url.
+
+A custom locator can either be a block or a class.
+
+Using a block:
+
+```ruby
+GlobalID::Locator.use :foo do |gid|
+ FooRemote.const_get(gid.model_name).find(gid.model_id)
+end
+```
+
+Using a class:
+
+```ruby
+GlobalID::Locator.use :bar, BarLocator.new
+class BarLocator
+ def locate(gid)
+ @search_client.search name: gid.model_name, id: gid.model_id
+ end
+end
+```
+
+After defining locators as above, URIs like "gid://foo/Person/1" and "gid://bar/Person/1" will now use the foo block locator and `BarLocator` respectively.
+Other apps will still keep using the default locator.
+
+## Contributing to GlobalID
+
+GlobalID is work of many contributors. You're encouraged to submit pull requests, propose
+features and discuss issues.
+
+See [CONTRIBUTING](CONTRIBUTING.md).
+
+## License
+GlobalID is released under the [MIT License](http://www.opensource.org/licenses/MIT).
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/global_id/locator.rb new/lib/global_id/locator.rb
--- old/lib/global_id/locator.rb 2015-08-04 23:30:09.000000000 +0200
+++ new/lib/global_id/locator.rb 2016-07-26 22:35:46.000000000 +0200
@@ -106,9 +106,7 @@
private
def locator_for(gid)
- @locators.fetch(normalize_app(gid.app)) do
- gid.model_class.respond_to?(:unscoped) ? UNSCOPED_LOCATOR : DEFAULT_LOCATOR
- end
+ @locators.fetch(normalize_app(gid.app)) { DEFAULT_LOCATOR }
end
def find_allowed?(model_class, only = nil)
@@ -127,7 +125,7 @@
private
@locators = {}
- class DefaultLocator
+ class BaseLocator
def locate(gid)
gid.model_class.find gid.model_id
end
@@ -151,19 +149,26 @@
end
end
end
- DEFAULT_LOCATOR = DefaultLocator.new
- class UnscopedLocator < DefaultLocator
+ class UnscopedLocator < BaseLocator
def locate(gid)
- gid.model_class.unscoped { super }
+ unscoped(gid.model_class) { super }
end
private
def find_records(model_class, ids, options)
- model_class.unscoped { super }
+ unscoped(model_class) { super }
+ end
+
+ def unscoped(model_class)
+ if model_class.respond_to?(:unscoped)
+ model_class.unscoped { yield }
+ else
+ yield
+ end
end
end
- UNSCOPED_LOCATOR = UnscopedLocator.new
+ DEFAULT_LOCATOR = UnscopedLocator.new
class BlockLocator
def initialize(block)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/global_id/signed_global_id.rb new/lib/global_id/signed_global_id.rb
--- old/lib/global_id/signed_global_id.rb 2015-08-04 23:30:09.000000000 +0200
+++ new/lib/global_id/signed_global_id.rb 2016-07-26 22:35:46.000000000 +0200
@@ -9,11 +9,7 @@
attr_accessor :verifier
def parse(sgid, options = {})
- if sgid.is_a? self
- sgid
- else
- super verify(sgid, options), options
- end
+ super verify(sgid.to_s, options), options
end
# Grab the verifier from options and fall back to SignedGlobalID.verifier.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-08-04 23:30:09.000000000 +0200
+++ new/metadata 2016-07-26 22:35:46.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: globalid
version: !ruby/object:Gem::Version
- version: 0.3.6
+ version: 0.3.7
platform: ruby
authors:
- David Heinemeier Hansson
autorequire:
bindir: bin
cert_chain: []
-date: 2015-08-04 00:00:00.000000000 Z
+date: 2016-07-26 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
@@ -45,6 +45,7 @@
extra_rdoc_files: []
files:
- MIT-LICENSE
+- README.md
- lib/global_id.rb
- lib/global_id/global_id.rb
- lib/global_id/identification.rb
@@ -73,9 +74,8 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.4.7
+rubygems_version: 2.4.5.1
signing_key:
specification_version: 4
summary: 'Refer to any model with a URI: gid://app/class/id'
test_files: []
-has_rdoc:
1
0
Hello community,
here is the log from the commit of package rubygem-json for openSUSE:Factory checked in at 2016-08-25 09:55:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-json (Old)
and /work/SRC/openSUSE:Factory/.rubygem-json.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-json"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-json/rubygem-json.changes 2016-07-21 07:58:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-json.new/rubygem-json.changes 2016-08-25 09:55:39.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Jul 27 04:29:58 UTC 2016 - coolo(a)suse.com
+
+- updated to version 2.0.2
+ see installed CHANGES.md
+
+ ## 2016-07-26 (2.0.2)
+ * Specify `required_ruby_version` for json\_pure.
+ * Fix issue #295 failure when parsing frozen strings.
+
+-------------------------------------------------------------------
Old:
----
json-2.0.1.gem
New:
----
json-2.0.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-json.spec ++++++
--- /var/tmp/diff_new_pack.wePB9J/_old 2016-08-25 09:55:40.000000000 +0200
+++ /var/tmp/diff_new_pack.wePB9J/_new 2016-08-25 09:55:40.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-json
-Version: 2.0.1
+Version: 2.0.2
Release: 0
%define mod_name json
%define mod_full_name %{mod_name}-%{version}
++++++ json-2.0.1.gem -> json-2.0.2.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGES.md new/CHANGES.md
--- old/CHANGES.md 2016-07-01 17:31:26.000000000 +0200
+++ new/CHANGES.md 2016-07-26 13:11:27.000000000 +0200
@@ -1,5 +1,9 @@
# Changes
+## 2016-07-26 (2.0.2)
+ * Specify `required_ruby_version` for json\_pure.
+ * Fix issue #295 failure when parsing frozen strings.
+
## 2016-07-01 (2.0.1)
* Fix problem when requiring json\_pure and Parser constant was defiend top
level.
@@ -28,7 +32,7 @@
`JSON.dump_default_options`.
* More tests by Michael Mac-Vicar <mmacvicar(a)gmail.com> and fixing
`space_before` accessor in generator.
- * Performance on Jruby improvemed by Ben Browning <bbrownin(a)redhat.com>.
+ * Performance on Jruby improved by Ben Browning <bbrownin(a)redhat.com>.
* Some fixes to be compatible with the new Ruby 2.2 by Zachary Scott <e(a)zzak.io>
and SHIBATA Hiroshi <hsbt(a)ruby-lang.org>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-07-01 17:31:26.000000000 +0200
+++ new/README.md 2016-07-26 13:11:27.000000000 +0200
@@ -3,8 +3,8 @@
## Description
-This is a implementation of the JSON specification according to RFC 4627
-http://www.ietf.org/rfc/rfc4627.txt . Starting from version 1.0.0 on there
+This is a implementation of the JSON specification according to RFC 7159
+http://www.ietf.org/rfc/rfc7159.txt . Starting from version 1.0.0 on there
will be two variants available:
* A pure ruby variant, that relies on the iconv and the stringscan
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Rakefile new/Rakefile
--- old/Rakefile 2016-07-01 17:31:26.000000000 +0200
+++ new/Rakefile 2016-07-26 13:11:27.000000000 +0200
@@ -95,6 +95,7 @@
s.email = "flori(a)ping.de"
s.homepage = "http://flori.github.com/#{PKG_NAME}"
s.license = 'Ruby'
+ s.required_ruby_version = '~> 2.0'
end
desc 'Creates a json_pure.gemspec file'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/VERSION new/VERSION
--- old/VERSION 2016-07-01 17:31:26.000000000 +0200
+++ new/VERSION 2016-07-26 13:11:27.000000000 +0200
@@ -1 +1 @@
-2.0.1
+2.0.2
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ext/json/ext/generator/generator.c new/ext/json/ext/generator/generator.c
--- old/ext/json/ext/generator/generator.c 2016-07-01 17:31:26.000000000 +0200
+++ new/ext/json/ext/generator/generator.c 2016-07-26 13:11:27.000000000 +0200
@@ -951,6 +951,7 @@
{
VALUE result = cState_partial_generate(self, obj);
GET_STATE(self);
+ (void)state;
return result;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ext/json/ext/parser/parser.c new/ext/json/ext/parser/parser.c
--- old/ext/json/ext/parser/parser.c 2016-07-01 17:31:26.000000000 +0200
+++ new/ext/json/ext/parser/parser.c 2016-07-26 13:11:27.000000000 +0200
@@ -1670,6 +1670,9 @@
#ifdef HAVE_RUBY_ENCODING_H
rb_encoding *enc = rb_enc_get(source);
if (enc == rb_ascii8bit_encoding()) {
+ if (OBJ_FROZEN(source)) {
+ source = rb_str_dup(source);
+ }
FORCE_UTF8(source);
} else {
source = rb_str_conv_enc(source, NULL, rb_utf8_encoding());
@@ -1805,7 +1808,7 @@
}
-#line 1809 "parser.c"
+#line 1812 "parser.c"
enum {JSON_start = 1};
enum {JSON_first_final = 10};
enum {JSON_error = 0};
@@ -1813,7 +1816,7 @@
enum {JSON_en_main = 1};
-#line 717 "parser.rl"
+#line 720 "parser.rl"
/*
@@ -1830,16 +1833,16 @@
GET_PARSER;
-#line 1834 "parser.c"
+#line 1837 "parser.c"
{
cs = JSON_start;
}
-#line 733 "parser.rl"
+#line 736 "parser.rl"
p = json->source;
pe = p + json->len;
-#line 1843 "parser.c"
+#line 1846 "parser.c"
{
if ( p == pe )
goto _test_eof;
@@ -1873,7 +1876,7 @@
cs = 0;
goto _out;
tr2:
-#line 709 "parser.rl"
+#line 712 "parser.rl"
{
char *np = JSON_parse_value(json, p, pe, &result, 0);
if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;}
@@ -1883,7 +1886,7 @@
if ( ++p == pe )
goto _test_eof10;
case 10:
-#line 1887 "parser.c"
+#line 1890 "parser.c"
switch( (*p) ) {
case 13: goto st10;
case 32: goto st10;
@@ -1972,7 +1975,7 @@
_out: {}
}
-#line 736 "parser.rl"
+#line 739 "parser.rl"
if (cs >= JSON_first_final && p == pe) {
return result;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ext/json/ext/parser/parser.rl new/ext/json/ext/parser/parser.rl
--- old/ext/json/ext/parser/parser.rl 2016-07-01 17:31:26.000000000 +0200
+++ new/ext/json/ext/parser/parser.rl 2016-07-26 13:11:27.000000000 +0200
@@ -565,6 +565,9 @@
#ifdef HAVE_RUBY_ENCODING_H
rb_encoding *enc = rb_enc_get(source);
if (enc == rb_ascii8bit_encoding()) {
+ if (OBJ_FROZEN(source)) {
+ source = rb_str_dup(source);
+ }
FORCE_UTF8(source);
} else {
source = rb_str_conv_enc(source, NULL, rb_utf8_encoding());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/java/src/json/ext/Parser.java new/java/src/json/ext/Parser.java
--- old/java/src/json/ext/Parser.java 2016-07-01 17:31:26.000000000 +0200
+++ new/java/src/json/ext/Parser.java 2016-07-26 13:11:27.000000000 +0200
@@ -181,6 +181,9 @@
private RubyString convertEncoding(ThreadContext context, RubyString source) {
RubyEncoding encoding = (RubyEncoding)source.encoding(context);
if (encoding == info.ascii8bit.get()) {
+ if (source.isFrozen()) {
+ source = (RubyString) source.dup();
+ }
source.force_encoding(context, info.utf8.get());
} else {
source = (RubyString) source.encode(context, info.utf8.get());
@@ -304,11 +307,11 @@
}
-// line 330 "Parser.rl"
+// line 333 "Parser.rl"
-// line 312 "Parser.java"
+// line 315 "Parser.java"
private static byte[] init__JSON_value_actions_0()
{
return new byte [] {
@@ -422,7 +425,7 @@
static final int JSON_value_en_main = 1;
-// line 436 "Parser.rl"
+// line 439 "Parser.rl"
void parseValue(ParserResult res, int p, int pe) {
@@ -430,14 +433,14 @@
IRubyObject result = null;
-// line 434 "Parser.java"
+// line 437 "Parser.java"
{
cs = JSON_value_start;
}
-// line 443 "Parser.rl"
+// line 446 "Parser.rl"
-// line 441 "Parser.java"
+// line 444 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -463,13 +466,13 @@
while ( _nacts-- > 0 ) {
switch ( _JSON_value_actions[_acts++] ) {
case 9:
-// line 421 "Parser.rl"
+// line 424 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 473 "Parser.java"
+// line 476 "Parser.java"
}
}
@@ -532,25 +535,25 @@
switch ( _JSON_value_actions[_acts++] )
{
case 0:
-// line 338 "Parser.rl"
+// line 341 "Parser.rl"
{
result = getRuntime().getNil();
}
break;
case 1:
-// line 341 "Parser.rl"
+// line 344 "Parser.rl"
{
result = getRuntime().getFalse();
}
break;
case 2:
-// line 344 "Parser.rl"
+// line 347 "Parser.rl"
{
result = getRuntime().getTrue();
}
break;
case 3:
-// line 347 "Parser.rl"
+// line 350 "Parser.rl"
{
if (parser.allowNaN) {
result = getConstant(CONST_NAN);
@@ -560,7 +563,7 @@
}
break;
case 4:
-// line 354 "Parser.rl"
+// line 357 "Parser.rl"
{
if (parser.allowNaN) {
result = getConstant(CONST_INFINITY);
@@ -570,7 +573,7 @@
}
break;
case 5:
-// line 361 "Parser.rl"
+// line 364 "Parser.rl"
{
if (pe > p + 8 &&
absSubSequence(p, p + 9).equals(JSON_MINUS_INFINITY)) {
@@ -599,7 +602,7 @@
}
break;
case 6:
-// line 387 "Parser.rl"
+// line 390 "Parser.rl"
{
parseString(res, p, pe);
if (res.result == null) {
@@ -612,7 +615,7 @@
}
break;
case 7:
-// line 397 "Parser.rl"
+// line 400 "Parser.rl"
{
currentNesting++;
parseArray(res, p, pe);
@@ -627,7 +630,7 @@
}
break;
case 8:
-// line 409 "Parser.rl"
+// line 412 "Parser.rl"
{
currentNesting++;
parseObject(res, p, pe);
@@ -641,7 +644,7 @@
}
}
break;
-// line 645 "Parser.java"
+// line 648 "Parser.java"
}
}
}
@@ -661,7 +664,7 @@
break; }
}
-// line 444 "Parser.rl"
+// line 447 "Parser.rl"
if (cs >= JSON_value_first_final && result != null) {
res.update(result, p);
@@ -671,7 +674,7 @@
}
-// line 675 "Parser.java"
+// line 678 "Parser.java"
private static byte[] init__JSON_integer_actions_0()
{
return new byte [] {
@@ -770,7 +773,7 @@
static final int JSON_integer_en_main = 1;
-// line 463 "Parser.rl"
+// line 466 "Parser.rl"
void parseInteger(ParserResult res, int p, int pe) {
@@ -788,15 +791,15 @@
int cs = EVIL;
-// line 792 "Parser.java"
+// line 795 "Parser.java"
{
cs = JSON_integer_start;
}
-// line 480 "Parser.rl"
+// line 483 "Parser.rl"
int memo = p;
-// line 800 "Parser.java"
+// line 803 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -877,13 +880,13 @@
switch ( _JSON_integer_actions[_acts++] )
{
case 0:
-// line 457 "Parser.rl"
+// line 460 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 887 "Parser.java"
+// line 890 "Parser.java"
}
}
}
@@ -903,7 +906,7 @@
break; }
}
-// line 482 "Parser.rl"
+// line 485 "Parser.rl"
if (cs < JSON_integer_first_final) {
return -1;
@@ -925,7 +928,7 @@
}
-// line 929 "Parser.java"
+// line 932 "Parser.java"
private static byte[] init__JSON_float_actions_0()
{
return new byte [] {
@@ -1027,7 +1030,7 @@
static final int JSON_float_en_main = 1;
-// line 517 "Parser.rl"
+// line 520 "Parser.rl"
void parseFloat(ParserResult res, int p, int pe) {
@@ -1045,15 +1048,15 @@
int cs = EVIL;
-// line 1049 "Parser.java"
+// line 1052 "Parser.java"
{
cs = JSON_float_start;
}
-// line 534 "Parser.rl"
+// line 537 "Parser.rl"
int memo = p;
-// line 1057 "Parser.java"
+// line 1060 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1134,13 +1137,13 @@
switch ( _JSON_float_actions[_acts++] )
{
case 0:
-// line 508 "Parser.rl"
+// line 511 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 1144 "Parser.java"
+// line 1147 "Parser.java"
}
}
}
@@ -1160,7 +1163,7 @@
break; }
}
-// line 536 "Parser.rl"
+// line 539 "Parser.rl"
if (cs < JSON_float_first_final) {
return -1;
@@ -1176,7 +1179,7 @@
}
-// line 1180 "Parser.java"
+// line 1183 "Parser.java"
private static byte[] init__JSON_string_actions_0()
{
return new byte [] {
@@ -1278,7 +1281,7 @@
static final int JSON_string_en_main = 1;
-// line 581 "Parser.rl"
+// line 584 "Parser.rl"
void parseString(ParserResult res, int p, int pe) {
@@ -1286,15 +1289,15 @@
IRubyObject result = null;
-// line 1290 "Parser.java"
+// line 1293 "Parser.java"
{
cs = JSON_string_start;
}
-// line 588 "Parser.rl"
+// line 591 "Parser.rl"
int memo = p;
-// line 1298 "Parser.java"
+// line 1301 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1375,7 +1378,7 @@
switch ( _JSON_string_actions[_acts++] )
{
case 0:
-// line 556 "Parser.rl"
+// line 559 "Parser.rl"
{
int offset = byteList.begin();
ByteList decoded = decoder.decode(byteList, memo + 1 - offset,
@@ -1390,13 +1393,13 @@
}
break;
case 1:
-// line 569 "Parser.rl"
+// line 572 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 1400 "Parser.java"
+// line 1403 "Parser.java"
}
}
}
@@ -1416,7 +1419,7 @@
break; }
}
-// line 590 "Parser.rl"
+// line 593 "Parser.rl"
if (parser.createAdditions) {
RubyHash matchString = parser.matchString;
@@ -1454,7 +1457,7 @@
}
-// line 1458 "Parser.java"
+// line 1461 "Parser.java"
private static byte[] init__JSON_array_actions_0()
{
return new byte [] {
@@ -1567,7 +1570,7 @@
static final int JSON_array_en_main = 1;
-// line 663 "Parser.rl"
+// line 666 "Parser.rl"
void parseArray(ParserResult res, int p, int pe) {
@@ -1587,14 +1590,14 @@
}
-// line 1591 "Parser.java"
+// line 1594 "Parser.java"
{
cs = JSON_array_start;
}
-// line 682 "Parser.rl"
+// line 685 "Parser.rl"
-// line 1598 "Parser.java"
+// line 1601 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1675,7 +1678,7 @@
switch ( _JSON_array_actions[_acts++] )
{
case 0:
-// line 632 "Parser.rl"
+// line 635 "Parser.rl"
{
parseValue(res, p, pe);
if (res.result == null) {
@@ -1692,13 +1695,13 @@
}
break;
case 1:
-// line 647 "Parser.rl"
+// line 650 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 1702 "Parser.java"
+// line 1705 "Parser.java"
}
}
}
@@ -1718,7 +1721,7 @@
break; }
}
-// line 683 "Parser.rl"
+// line 686 "Parser.rl"
if (cs >= JSON_array_first_final) {
res.update(result, p + 1);
@@ -1728,7 +1731,7 @@
}
-// line 1732 "Parser.java"
+// line 1735 "Parser.java"
private static byte[] init__JSON_object_actions_0()
{
return new byte [] {
@@ -1851,7 +1854,7 @@
static final int JSON_object_en_main = 1;
-// line 742 "Parser.rl"
+// line 745 "Parser.rl"
void parseObject(ParserResult res, int p, int pe) {
@@ -1876,14 +1879,14 @@
}
-// line 1880 "Parser.java"
+// line 1883 "Parser.java"
{
cs = JSON_object_start;
}
-// line 766 "Parser.rl"
+// line 769 "Parser.rl"
-// line 1887 "Parser.java"
+// line 1890 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1964,7 +1967,7 @@
switch ( _JSON_object_actions[_acts++] )
{
case 0:
-// line 697 "Parser.rl"
+// line 700 "Parser.rl"
{
parseValue(res, p, pe);
if (res.result == null) {
@@ -1981,7 +1984,7 @@
}
break;
case 1:
-// line 712 "Parser.rl"
+// line 715 "Parser.rl"
{
parseString(res, p, pe);
if (res.result == null) {
@@ -2001,13 +2004,13 @@
}
break;
case 2:
-// line 730 "Parser.rl"
+// line 733 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 2011 "Parser.java"
+// line 2014 "Parser.java"
}
}
}
@@ -2027,7 +2030,7 @@
break; }
}
-// line 767 "Parser.rl"
+// line 770 "Parser.rl"
if (cs < JSON_object_first_final) {
res.update(null, p + 1);
@@ -2060,7 +2063,7 @@
}
-// line 2064 "Parser.java"
+// line 2067 "Parser.java"
private static byte[] init__JSON_actions_0()
{
return new byte [] {
@@ -2163,7 +2166,7 @@
static final int JSON_en_main = 1;
-// line 818 "Parser.rl"
+// line 821 "Parser.rl"
public IRubyObject parseImplemetation() {
@@ -2173,16 +2176,16 @@
ParserResult res = new ParserResult();
-// line 2177 "Parser.java"
+// line 2180 "Parser.java"
{
cs = JSON_start;
}
-// line 827 "Parser.rl"
+// line 830 "Parser.rl"
p = byteList.begin();
pe = p + byteList.length();
-// line 2186 "Parser.java"
+// line 2189 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -2263,7 +2266,7 @@
switch ( _JSON_actions[_acts++] )
{
case 0:
-// line 804 "Parser.rl"
+// line 807 "Parser.rl"
{
parseValue(res, p, pe);
if (res.result == null) {
@@ -2275,7 +2278,7 @@
}
}
break;
-// line 2279 "Parser.java"
+// line 2282 "Parser.java"
}
}
}
@@ -2295,7 +2298,7 @@
break; }
}
-// line 830 "Parser.rl"
+// line 833 "Parser.rl"
if (cs >= JSON_first_final && p == pe) {
return result;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/java/src/json/ext/Parser.rl new/java/src/json/ext/Parser.rl
--- old/java/src/json/ext/Parser.rl 2016-07-01 17:31:26.000000000 +0200
+++ new/java/src/json/ext/Parser.rl 2016-07-26 13:11:27.000000000 +0200
@@ -179,6 +179,9 @@
private RubyString convertEncoding(ThreadContext context, RubyString source) {
RubyEncoding encoding = (RubyEncoding)source.encoding(context);
if (encoding == info.ascii8bit.get()) {
+ if (source.isFrozen()) {
+ source = (RubyString) source.dup();
+ }
source.force_encoding(context, info.utf8.get());
} else {
source = (RubyString) source.encode(context, info.utf8.get());
Files old/json.gemspec and new/json.gemspec differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/json_pure.gemspec new/json_pure.gemspec
--- old/json_pure.gemspec 2016-07-01 17:31:26.000000000 +0200
+++ new/json_pure.gemspec 2016-07-26 13:11:27.000000000 +0200
@@ -1,14 +1,14 @@
# -*- encoding: utf-8 -*-
-# stub: json_pure 2.0.1 ruby lib
+# stub: json_pure 2.0.2 ruby lib
Gem::Specification.new do |s|
s.name = "json_pure".freeze
- s.version = "2.0.1"
+ s.version = "2.0.2"
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze]
s.authors = ["Florian Frank".freeze]
- s.date = "2016-07-01"
+ s.date = "2016-07-26"
s.description = "This is a JSON implementation in pure Ruby.".freeze
s.email = "flori(a)ping.de".freeze
s.extra_rdoc_files = ["README.md".freeze]
@@ -16,6 +16,7 @@
s.homepage = "http://flori.github.com/json".freeze
s.licenses = ["Ruby".freeze]
s.rdoc_options = ["--title".freeze, "JSON implemention for ruby".freeze, "--main".freeze, "README.md".freeze]
+ s.required_ruby_version = Gem::Requirement.new("~> 2.0".freeze)
s.rubygems_version = "2.6.4".freeze
s.summary = "JSON Implementation for Ruby".freeze
s.test_files = ["./tests/test_helper.rb".freeze]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/json/version.rb new/lib/json/version.rb
--- old/lib/json/version.rb 2016-07-01 17:31:26.000000000 +0200
+++ new/lib/json/version.rb 2016-07-26 13:11:27.000000000 +0200
@@ -1,7 +1,7 @@
# frozen_string_literal: false
module JSON
# JSON version
- VERSION = '2.0.1'
+ VERSION = '2.0.2'
VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-07-01 17:31:26.000000000 +0200
+++ new/metadata 2016-07-26 13:11:27.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: json
version: !ruby/object:Gem::Version
- version: 2.0.1
+ version: 2.0.2
platform: ruby
authors:
- Florian Frank
autorequire:
bindir: bin
cert_chain: []
-date: 2016-07-01 00:00:00.000000000 Z
+date: 2016-07-26 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: rake
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/json_common_interface_test.rb new/tests/json_common_interface_test.rb
--- old/tests/json_common_interface_test.rb 2016-07-01 17:31:26.000000000 +0200
+++ new/tests/json_common_interface_test.rb 2016-07-26 13:11:27.000000000 +0200
@@ -47,7 +47,7 @@
end
def test_deep_const_get
- assert_raises(ArgumentError) { JSON.deep_const_get('Nix::Da') }
+ assert_raise(ArgumentError) { JSON.deep_const_get('Nix::Da') }
assert_equal File::SEPARATOR, JSON.deep_const_get('File::SEPARATOR')
end
@@ -93,8 +93,8 @@
def test_load_null
assert_equal nil, JSON.load(nil, nil, :allow_blank => true)
- assert_raises(TypeError) { JSON.load(nil, nil, :allow_blank => false) }
- assert_raises(JSON::ParserError) { JSON.load('', nil, :allow_blank => false) }
+ assert_raise(TypeError) { JSON.load(nil, nil, :allow_blank => false) }
+ assert_raise(JSON::ParserError) { JSON.load('', nil, :allow_blank => false) }
end
def test_dump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/json_parser_test.rb new/tests/json_parser_test.rb
--- old/tests/json_parser_test.rb 2016-07-01 17:31:26.000000000 +0200
+++ new/tests/json_parser_test.rb 2016-07-26 13:11:27.000000000 +0200
@@ -40,6 +40,18 @@
assert_equal({ 'a' => 'b' }, parser.parse)
end
+ def test_parse_values
+ assert_equal(nil, parse('null'))
+ assert_equal(false, parse('false'))
+ assert_equal(true, parse('true'))
+ assert_equal(-23, parse('-23'))
+ assert_equal(23, parse('23'))
+ assert_in_delta(0.23, parse('0.23'), 1e-2)
+ assert_in_delta(0.0, parse('0e0'), 1e-2)
+ assert_equal("", parse('""'))
+ assert_equal("foobar", parse('"foobar"'))
+ end
+
def test_parse_simple_arrays
assert_equal([], parse('[]'))
assert_equal([], parse(' [ ] '))
@@ -277,7 +289,6 @@
assert_equal data, parse(json)
end
-
class SubArray < Array
def <<(v)
@shifted = true
@@ -438,6 +449,13 @@
assert_equal obj, obj_again
end
+ def test_parsing_frozen_ascii8bit_string
+ assert_equal(
+ { 'foo' => 'bar' },
+ JSON('{ "foo": "bar" }'.force_encoding(Encoding::ASCII_8BIT).freeze)
+ )
+ end
+
private
def assert_equal_float(expected, actual, delta = 1e-2)
1
0
Hello community,
here is the log from the commit of package rubygem-json_pure for openSUSE:Factory checked in at 2016-08-25 09:55:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-json_pure (Old)
and /work/SRC/openSUSE:Factory/.rubygem-json_pure.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-json_pure"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-json_pure/rubygem-json_pure.changes 2016-07-21 07:58:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-json_pure.new/rubygem-json_pure.changes 2016-08-25 09:55:36.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Jul 27 04:30:14 UTC 2016 - coolo(a)suse.com
+
+- updated to version 2.0.2
+ see installed CHANGES.md
+
+ ## 2016-07-26 (2.0.2)
+ * Specify `required_ruby_version` for json\_pure.
+ * Fix issue #295 failure when parsing frozen strings.
+
+-------------------------------------------------------------------
Old:
----
json_pure-2.0.1.gem
New:
----
json_pure-2.0.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-json_pure.spec ++++++
--- /var/tmp/diff_new_pack.rJ1SOw/_old 2016-08-25 09:55:36.000000000 +0200
+++ /var/tmp/diff_new_pack.rJ1SOw/_new 2016-08-25 09:55:36.000000000 +0200
@@ -24,14 +24,15 @@
#
Name: rubygem-json_pure
-Version: 2.0.1
+Version: 2.0.2
Release: 0
%define mod_name json_pure
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: %{ruby < 3}
+BuildRequires: %{ruby => 2.0}
BuildRequires: %{rubygem gem2rpm}
BuildRequires: %{rubygem rdoc > 3.10}
-BuildRequires: %{ruby}
BuildRequires: ruby-macros >= 5
Url: http://flori.github.com/json
Source: http://rubygems.org/gems/%{mod_full_name}.gem
++++++ json_pure-2.0.1.gem -> json_pure-2.0.2.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGES.md new/CHANGES.md
--- old/CHANGES.md 2016-07-01 17:31:26.000000000 +0200
+++ new/CHANGES.md 2016-07-26 13:11:27.000000000 +0200
@@ -1,5 +1,9 @@
# Changes
+## 2016-07-26 (2.0.2)
+ * Specify `required_ruby_version` for json\_pure.
+ * Fix issue #295 failure when parsing frozen strings.
+
## 2016-07-01 (2.0.1)
* Fix problem when requiring json\_pure and Parser constant was defiend top
level.
@@ -28,7 +32,7 @@
`JSON.dump_default_options`.
* More tests by Michael Mac-Vicar <mmacvicar(a)gmail.com> and fixing
`space_before` accessor in generator.
- * Performance on Jruby improvemed by Ben Browning <bbrownin(a)redhat.com>.
+ * Performance on Jruby improved by Ben Browning <bbrownin(a)redhat.com>.
* Some fixes to be compatible with the new Ruby 2.2 by Zachary Scott <e(a)zzak.io>
and SHIBATA Hiroshi <hsbt(a)ruby-lang.org>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-07-01 17:31:26.000000000 +0200
+++ new/README.md 2016-07-26 13:11:27.000000000 +0200
@@ -3,8 +3,8 @@
## Description
-This is a implementation of the JSON specification according to RFC 4627
-http://www.ietf.org/rfc/rfc4627.txt . Starting from version 1.0.0 on there
+This is a implementation of the JSON specification according to RFC 7159
+http://www.ietf.org/rfc/rfc7159.txt . Starting from version 1.0.0 on there
will be two variants available:
* A pure ruby variant, that relies on the iconv and the stringscan
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Rakefile new/Rakefile
--- old/Rakefile 2016-07-01 17:31:26.000000000 +0200
+++ new/Rakefile 2016-07-26 13:11:27.000000000 +0200
@@ -95,6 +95,7 @@
s.email = "flori(a)ping.de"
s.homepage = "http://flori.github.com/#{PKG_NAME}"
s.license = 'Ruby'
+ s.required_ruby_version = '~> 2.0'
end
desc 'Creates a json_pure.gemspec file'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/VERSION new/VERSION
--- old/VERSION 2016-07-01 17:31:26.000000000 +0200
+++ new/VERSION 2016-07-26 13:11:27.000000000 +0200
@@ -1 +1 @@
-2.0.1
+2.0.2
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ext/json/ext/generator/generator.c new/ext/json/ext/generator/generator.c
--- old/ext/json/ext/generator/generator.c 2016-07-01 17:31:26.000000000 +0200
+++ new/ext/json/ext/generator/generator.c 2016-07-26 13:11:27.000000000 +0200
@@ -951,6 +951,7 @@
{
VALUE result = cState_partial_generate(self, obj);
GET_STATE(self);
+ (void)state;
return result;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ext/json/ext/parser/parser.c new/ext/json/ext/parser/parser.c
--- old/ext/json/ext/parser/parser.c 2016-07-01 17:31:26.000000000 +0200
+++ new/ext/json/ext/parser/parser.c 2016-07-26 13:11:27.000000000 +0200
@@ -1670,6 +1670,9 @@
#ifdef HAVE_RUBY_ENCODING_H
rb_encoding *enc = rb_enc_get(source);
if (enc == rb_ascii8bit_encoding()) {
+ if (OBJ_FROZEN(source)) {
+ source = rb_str_dup(source);
+ }
FORCE_UTF8(source);
} else {
source = rb_str_conv_enc(source, NULL, rb_utf8_encoding());
@@ -1805,7 +1808,7 @@
}
-#line 1809 "parser.c"
+#line 1812 "parser.c"
enum {JSON_start = 1};
enum {JSON_first_final = 10};
enum {JSON_error = 0};
@@ -1813,7 +1816,7 @@
enum {JSON_en_main = 1};
-#line 717 "parser.rl"
+#line 720 "parser.rl"
/*
@@ -1830,16 +1833,16 @@
GET_PARSER;
-#line 1834 "parser.c"
+#line 1837 "parser.c"
{
cs = JSON_start;
}
-#line 733 "parser.rl"
+#line 736 "parser.rl"
p = json->source;
pe = p + json->len;
-#line 1843 "parser.c"
+#line 1846 "parser.c"
{
if ( p == pe )
goto _test_eof;
@@ -1873,7 +1876,7 @@
cs = 0;
goto _out;
tr2:
-#line 709 "parser.rl"
+#line 712 "parser.rl"
{
char *np = JSON_parse_value(json, p, pe, &result, 0);
if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;}
@@ -1883,7 +1886,7 @@
if ( ++p == pe )
goto _test_eof10;
case 10:
-#line 1887 "parser.c"
+#line 1890 "parser.c"
switch( (*p) ) {
case 13: goto st10;
case 32: goto st10;
@@ -1972,7 +1975,7 @@
_out: {}
}
-#line 736 "parser.rl"
+#line 739 "parser.rl"
if (cs >= JSON_first_final && p == pe) {
return result;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ext/json/ext/parser/parser.rl new/ext/json/ext/parser/parser.rl
--- old/ext/json/ext/parser/parser.rl 2016-07-01 17:31:26.000000000 +0200
+++ new/ext/json/ext/parser/parser.rl 2016-07-26 13:11:27.000000000 +0200
@@ -565,6 +565,9 @@
#ifdef HAVE_RUBY_ENCODING_H
rb_encoding *enc = rb_enc_get(source);
if (enc == rb_ascii8bit_encoding()) {
+ if (OBJ_FROZEN(source)) {
+ source = rb_str_dup(source);
+ }
FORCE_UTF8(source);
} else {
source = rb_str_conv_enc(source, NULL, rb_utf8_encoding());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/java/src/json/ext/Parser.java new/java/src/json/ext/Parser.java
--- old/java/src/json/ext/Parser.java 2016-07-01 17:31:26.000000000 +0200
+++ new/java/src/json/ext/Parser.java 2016-07-26 13:11:27.000000000 +0200
@@ -181,6 +181,9 @@
private RubyString convertEncoding(ThreadContext context, RubyString source) {
RubyEncoding encoding = (RubyEncoding)source.encoding(context);
if (encoding == info.ascii8bit.get()) {
+ if (source.isFrozen()) {
+ source = (RubyString) source.dup();
+ }
source.force_encoding(context, info.utf8.get());
} else {
source = (RubyString) source.encode(context, info.utf8.get());
@@ -304,11 +307,11 @@
}
-// line 330 "Parser.rl"
+// line 333 "Parser.rl"
-// line 312 "Parser.java"
+// line 315 "Parser.java"
private static byte[] init__JSON_value_actions_0()
{
return new byte [] {
@@ -422,7 +425,7 @@
static final int JSON_value_en_main = 1;
-// line 436 "Parser.rl"
+// line 439 "Parser.rl"
void parseValue(ParserResult res, int p, int pe) {
@@ -430,14 +433,14 @@
IRubyObject result = null;
-// line 434 "Parser.java"
+// line 437 "Parser.java"
{
cs = JSON_value_start;
}
-// line 443 "Parser.rl"
+// line 446 "Parser.rl"
-// line 441 "Parser.java"
+// line 444 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -463,13 +466,13 @@
while ( _nacts-- > 0 ) {
switch ( _JSON_value_actions[_acts++] ) {
case 9:
-// line 421 "Parser.rl"
+// line 424 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 473 "Parser.java"
+// line 476 "Parser.java"
}
}
@@ -532,25 +535,25 @@
switch ( _JSON_value_actions[_acts++] )
{
case 0:
-// line 338 "Parser.rl"
+// line 341 "Parser.rl"
{
result = getRuntime().getNil();
}
break;
case 1:
-// line 341 "Parser.rl"
+// line 344 "Parser.rl"
{
result = getRuntime().getFalse();
}
break;
case 2:
-// line 344 "Parser.rl"
+// line 347 "Parser.rl"
{
result = getRuntime().getTrue();
}
break;
case 3:
-// line 347 "Parser.rl"
+// line 350 "Parser.rl"
{
if (parser.allowNaN) {
result = getConstant(CONST_NAN);
@@ -560,7 +563,7 @@
}
break;
case 4:
-// line 354 "Parser.rl"
+// line 357 "Parser.rl"
{
if (parser.allowNaN) {
result = getConstant(CONST_INFINITY);
@@ -570,7 +573,7 @@
}
break;
case 5:
-// line 361 "Parser.rl"
+// line 364 "Parser.rl"
{
if (pe > p + 8 &&
absSubSequence(p, p + 9).equals(JSON_MINUS_INFINITY)) {
@@ -599,7 +602,7 @@
}
break;
case 6:
-// line 387 "Parser.rl"
+// line 390 "Parser.rl"
{
parseString(res, p, pe);
if (res.result == null) {
@@ -612,7 +615,7 @@
}
break;
case 7:
-// line 397 "Parser.rl"
+// line 400 "Parser.rl"
{
currentNesting++;
parseArray(res, p, pe);
@@ -627,7 +630,7 @@
}
break;
case 8:
-// line 409 "Parser.rl"
+// line 412 "Parser.rl"
{
currentNesting++;
parseObject(res, p, pe);
@@ -641,7 +644,7 @@
}
}
break;
-// line 645 "Parser.java"
+// line 648 "Parser.java"
}
}
}
@@ -661,7 +664,7 @@
break; }
}
-// line 444 "Parser.rl"
+// line 447 "Parser.rl"
if (cs >= JSON_value_first_final && result != null) {
res.update(result, p);
@@ -671,7 +674,7 @@
}
-// line 675 "Parser.java"
+// line 678 "Parser.java"
private static byte[] init__JSON_integer_actions_0()
{
return new byte [] {
@@ -770,7 +773,7 @@
static final int JSON_integer_en_main = 1;
-// line 463 "Parser.rl"
+// line 466 "Parser.rl"
void parseInteger(ParserResult res, int p, int pe) {
@@ -788,15 +791,15 @@
int cs = EVIL;
-// line 792 "Parser.java"
+// line 795 "Parser.java"
{
cs = JSON_integer_start;
}
-// line 480 "Parser.rl"
+// line 483 "Parser.rl"
int memo = p;
-// line 800 "Parser.java"
+// line 803 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -877,13 +880,13 @@
switch ( _JSON_integer_actions[_acts++] )
{
case 0:
-// line 457 "Parser.rl"
+// line 460 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 887 "Parser.java"
+// line 890 "Parser.java"
}
}
}
@@ -903,7 +906,7 @@
break; }
}
-// line 482 "Parser.rl"
+// line 485 "Parser.rl"
if (cs < JSON_integer_first_final) {
return -1;
@@ -925,7 +928,7 @@
}
-// line 929 "Parser.java"
+// line 932 "Parser.java"
private static byte[] init__JSON_float_actions_0()
{
return new byte [] {
@@ -1027,7 +1030,7 @@
static final int JSON_float_en_main = 1;
-// line 517 "Parser.rl"
+// line 520 "Parser.rl"
void parseFloat(ParserResult res, int p, int pe) {
@@ -1045,15 +1048,15 @@
int cs = EVIL;
-// line 1049 "Parser.java"
+// line 1052 "Parser.java"
{
cs = JSON_float_start;
}
-// line 534 "Parser.rl"
+// line 537 "Parser.rl"
int memo = p;
-// line 1057 "Parser.java"
+// line 1060 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1134,13 +1137,13 @@
switch ( _JSON_float_actions[_acts++] )
{
case 0:
-// line 508 "Parser.rl"
+// line 511 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 1144 "Parser.java"
+// line 1147 "Parser.java"
}
}
}
@@ -1160,7 +1163,7 @@
break; }
}
-// line 536 "Parser.rl"
+// line 539 "Parser.rl"
if (cs < JSON_float_first_final) {
return -1;
@@ -1176,7 +1179,7 @@
}
-// line 1180 "Parser.java"
+// line 1183 "Parser.java"
private static byte[] init__JSON_string_actions_0()
{
return new byte [] {
@@ -1278,7 +1281,7 @@
static final int JSON_string_en_main = 1;
-// line 581 "Parser.rl"
+// line 584 "Parser.rl"
void parseString(ParserResult res, int p, int pe) {
@@ -1286,15 +1289,15 @@
IRubyObject result = null;
-// line 1290 "Parser.java"
+// line 1293 "Parser.java"
{
cs = JSON_string_start;
}
-// line 588 "Parser.rl"
+// line 591 "Parser.rl"
int memo = p;
-// line 1298 "Parser.java"
+// line 1301 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1375,7 +1378,7 @@
switch ( _JSON_string_actions[_acts++] )
{
case 0:
-// line 556 "Parser.rl"
+// line 559 "Parser.rl"
{
int offset = byteList.begin();
ByteList decoded = decoder.decode(byteList, memo + 1 - offset,
@@ -1390,13 +1393,13 @@
}
break;
case 1:
-// line 569 "Parser.rl"
+// line 572 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 1400 "Parser.java"
+// line 1403 "Parser.java"
}
}
}
@@ -1416,7 +1419,7 @@
break; }
}
-// line 590 "Parser.rl"
+// line 593 "Parser.rl"
if (parser.createAdditions) {
RubyHash matchString = parser.matchString;
@@ -1454,7 +1457,7 @@
}
-// line 1458 "Parser.java"
+// line 1461 "Parser.java"
private static byte[] init__JSON_array_actions_0()
{
return new byte [] {
@@ -1567,7 +1570,7 @@
static final int JSON_array_en_main = 1;
-// line 663 "Parser.rl"
+// line 666 "Parser.rl"
void parseArray(ParserResult res, int p, int pe) {
@@ -1587,14 +1590,14 @@
}
-// line 1591 "Parser.java"
+// line 1594 "Parser.java"
{
cs = JSON_array_start;
}
-// line 682 "Parser.rl"
+// line 685 "Parser.rl"
-// line 1598 "Parser.java"
+// line 1601 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1675,7 +1678,7 @@
switch ( _JSON_array_actions[_acts++] )
{
case 0:
-// line 632 "Parser.rl"
+// line 635 "Parser.rl"
{
parseValue(res, p, pe);
if (res.result == null) {
@@ -1692,13 +1695,13 @@
}
break;
case 1:
-// line 647 "Parser.rl"
+// line 650 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 1702 "Parser.java"
+// line 1705 "Parser.java"
}
}
}
@@ -1718,7 +1721,7 @@
break; }
}
-// line 683 "Parser.rl"
+// line 686 "Parser.rl"
if (cs >= JSON_array_first_final) {
res.update(result, p + 1);
@@ -1728,7 +1731,7 @@
}
-// line 1732 "Parser.java"
+// line 1735 "Parser.java"
private static byte[] init__JSON_object_actions_0()
{
return new byte [] {
@@ -1851,7 +1854,7 @@
static final int JSON_object_en_main = 1;
-// line 742 "Parser.rl"
+// line 745 "Parser.rl"
void parseObject(ParserResult res, int p, int pe) {
@@ -1876,14 +1879,14 @@
}
-// line 1880 "Parser.java"
+// line 1883 "Parser.java"
{
cs = JSON_object_start;
}
-// line 766 "Parser.rl"
+// line 769 "Parser.rl"
-// line 1887 "Parser.java"
+// line 1890 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -1964,7 +1967,7 @@
switch ( _JSON_object_actions[_acts++] )
{
case 0:
-// line 697 "Parser.rl"
+// line 700 "Parser.rl"
{
parseValue(res, p, pe);
if (res.result == null) {
@@ -1981,7 +1984,7 @@
}
break;
case 1:
-// line 712 "Parser.rl"
+// line 715 "Parser.rl"
{
parseString(res, p, pe);
if (res.result == null) {
@@ -2001,13 +2004,13 @@
}
break;
case 2:
-// line 730 "Parser.rl"
+// line 733 "Parser.rl"
{
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
}
break;
-// line 2011 "Parser.java"
+// line 2014 "Parser.java"
}
}
}
@@ -2027,7 +2030,7 @@
break; }
}
-// line 767 "Parser.rl"
+// line 770 "Parser.rl"
if (cs < JSON_object_first_final) {
res.update(null, p + 1);
@@ -2060,7 +2063,7 @@
}
-// line 2064 "Parser.java"
+// line 2067 "Parser.java"
private static byte[] init__JSON_actions_0()
{
return new byte [] {
@@ -2163,7 +2166,7 @@
static final int JSON_en_main = 1;
-// line 818 "Parser.rl"
+// line 821 "Parser.rl"
public IRubyObject parseImplemetation() {
@@ -2173,16 +2176,16 @@
ParserResult res = new ParserResult();
-// line 2177 "Parser.java"
+// line 2180 "Parser.java"
{
cs = JSON_start;
}
-// line 827 "Parser.rl"
+// line 830 "Parser.rl"
p = byteList.begin();
pe = p + byteList.length();
-// line 2186 "Parser.java"
+// line 2189 "Parser.java"
{
int _klen;
int _trans = 0;
@@ -2263,7 +2266,7 @@
switch ( _JSON_actions[_acts++] )
{
case 0:
-// line 804 "Parser.rl"
+// line 807 "Parser.rl"
{
parseValue(res, p, pe);
if (res.result == null) {
@@ -2275,7 +2278,7 @@
}
}
break;
-// line 2279 "Parser.java"
+// line 2282 "Parser.java"
}
}
}
@@ -2295,7 +2298,7 @@
break; }
}
-// line 830 "Parser.rl"
+// line 833 "Parser.rl"
if (cs >= JSON_first_final && p == pe) {
return result;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/java/src/json/ext/Parser.rl new/java/src/json/ext/Parser.rl
--- old/java/src/json/ext/Parser.rl 2016-07-01 17:31:26.000000000 +0200
+++ new/java/src/json/ext/Parser.rl 2016-07-26 13:11:27.000000000 +0200
@@ -179,6 +179,9 @@
private RubyString convertEncoding(ThreadContext context, RubyString source) {
RubyEncoding encoding = (RubyEncoding)source.encoding(context);
if (encoding == info.ascii8bit.get()) {
+ if (source.isFrozen()) {
+ source = (RubyString) source.dup();
+ }
source.force_encoding(context, info.utf8.get());
} else {
source = (RubyString) source.encode(context, info.utf8.get());
Files old/json.gemspec and new/json.gemspec differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/json_pure.gemspec new/json_pure.gemspec
--- old/json_pure.gemspec 2016-07-01 17:31:26.000000000 +0200
+++ new/json_pure.gemspec 2016-07-26 13:11:27.000000000 +0200
@@ -1,14 +1,14 @@
# -*- encoding: utf-8 -*-
-# stub: json_pure 2.0.1 ruby lib
+# stub: json_pure 2.0.2 ruby lib
Gem::Specification.new do |s|
s.name = "json_pure".freeze
- s.version = "2.0.1"
+ s.version = "2.0.2"
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze]
s.authors = ["Florian Frank".freeze]
- s.date = "2016-07-01"
+ s.date = "2016-07-26"
s.description = "This is a JSON implementation in pure Ruby.".freeze
s.email = "flori(a)ping.de".freeze
s.extra_rdoc_files = ["README.md".freeze]
@@ -16,6 +16,7 @@
s.homepage = "http://flori.github.com/json".freeze
s.licenses = ["Ruby".freeze]
s.rdoc_options = ["--title".freeze, "JSON implemention for ruby".freeze, "--main".freeze, "README.md".freeze]
+ s.required_ruby_version = Gem::Requirement.new("~> 2.0".freeze)
s.rubygems_version = "2.6.4".freeze
s.summary = "JSON Implementation for Ruby".freeze
s.test_files = ["./tests/test_helper.rb".freeze]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/json/version.rb new/lib/json/version.rb
--- old/lib/json/version.rb 2016-07-01 17:31:26.000000000 +0200
+++ new/lib/json/version.rb 2016-07-26 13:11:27.000000000 +0200
@@ -1,7 +1,7 @@
# frozen_string_literal: false
module JSON
# JSON version
- VERSION = '2.0.1'
+ VERSION = '2.0.2'
VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-07-01 17:31:26.000000000 +0200
+++ new/metadata 2016-07-26 13:11:27.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: json_pure
version: !ruby/object:Gem::Version
- version: 2.0.1
+ version: 2.0.2
platform: ruby
authors:
- Florian Frank
autorequire:
bindir: bin
cert_chain: []
-date: 2016-07-01 00:00:00.000000000 Z
+date: 2016-07-26 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: rake
@@ -167,9 +167,9 @@
- lib
required_ruby_version: !ruby/object:Gem::Requirement
requirements:
- - - ">="
+ - - "~>"
- !ruby/object:Gem::Version
- version: '0'
+ version: '2.0'
required_rubygems_version: !ruby/object:Gem::Requirement
requirements:
- - ">="
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/json_common_interface_test.rb new/tests/json_common_interface_test.rb
--- old/tests/json_common_interface_test.rb 2016-07-01 17:31:26.000000000 +0200
+++ new/tests/json_common_interface_test.rb 2016-07-26 13:11:27.000000000 +0200
@@ -47,7 +47,7 @@
end
def test_deep_const_get
- assert_raises(ArgumentError) { JSON.deep_const_get('Nix::Da') }
+ assert_raise(ArgumentError) { JSON.deep_const_get('Nix::Da') }
assert_equal File::SEPARATOR, JSON.deep_const_get('File::SEPARATOR')
end
@@ -93,8 +93,8 @@
def test_load_null
assert_equal nil, JSON.load(nil, nil, :allow_blank => true)
- assert_raises(TypeError) { JSON.load(nil, nil, :allow_blank => false) }
- assert_raises(JSON::ParserError) { JSON.load('', nil, :allow_blank => false) }
+ assert_raise(TypeError) { JSON.load(nil, nil, :allow_blank => false) }
+ assert_raise(JSON::ParserError) { JSON.load('', nil, :allow_blank => false) }
end
def test_dump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/json_parser_test.rb new/tests/json_parser_test.rb
--- old/tests/json_parser_test.rb 2016-07-01 17:31:26.000000000 +0200
+++ new/tests/json_parser_test.rb 2016-07-26 13:11:27.000000000 +0200
@@ -40,6 +40,18 @@
assert_equal({ 'a' => 'b' }, parser.parse)
end
+ def test_parse_values
+ assert_equal(nil, parse('null'))
+ assert_equal(false, parse('false'))
+ assert_equal(true, parse('true'))
+ assert_equal(-23, parse('-23'))
+ assert_equal(23, parse('23'))
+ assert_in_delta(0.23, parse('0.23'), 1e-2)
+ assert_in_delta(0.0, parse('0e0'), 1e-2)
+ assert_equal("", parse('""'))
+ assert_equal("foobar", parse('"foobar"'))
+ end
+
def test_parse_simple_arrays
assert_equal([], parse('[]'))
assert_equal([], parse(' [ ] '))
@@ -277,7 +289,6 @@
assert_equal data, parse(json)
end
-
class SubArray < Array
def <<(v)
@shifted = true
@@ -438,6 +449,13 @@
assert_equal obj, obj_again
end
+ def test_parsing_frozen_ascii8bit_string
+ assert_equal(
+ { 'foo' => 'bar' },
+ JSON('{ "foo": "bar" }'.force_encoding(Encoding::ASCII_8BIT).freeze)
+ )
+ end
+
private
def assert_equal_float(expected, actual, delta = 1e-2)
1
0
Hello community,
here is the log from the commit of package rubygem-activerecord-4_2 for openSUSE:Factory checked in at 2016-08-25 09:55:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-activerecord-4_2 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-activerecord-4_2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-activerecord-4_2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-activerecord-4_2/rubygem-activerecord-4_2.changes 2016-07-20 09:25:29.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-activerecord-4_2.new/rubygem-activerecord-4_2.changes 2016-08-25 09:55:31.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Aug 12 04:33:17 UTC 2016 - coolo(a)suse.com
+
+- updated to version 4.2.7.1
+ see installed CHANGELOG.md
+
+-------------------------------------------------------------------
Old:
----
activerecord-4.2.7.gem
New:
----
activerecord-4.2.7.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-activerecord-4_2.spec ++++++
--- /var/tmp/diff_new_pack.lqkZh1/_old 2016-08-25 09:55:32.000000000 +0200
+++ /var/tmp/diff_new_pack.lqkZh1/_new 2016-08-25 09:55:32.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-activerecord-4_2
-Version: 4.2.7
+Version: 4.2.7.1
Release: 0
%define mod_name activerecord
%define mod_full_name %{mod_name}-%{version}
++++++ activerecord-4.2.7.gem -> activerecord-4.2.7.1.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/gem_version.rb new/lib/active_record/gem_version.rb
--- old/lib/active_record/gem_version.rb 2016-07-13 04:53:42.000000000 +0200
+++ new/lib/active_record/gem_version.rb 2016-08-11 00:25:26.000000000 +0200
@@ -8,7 +8,7 @@
MAJOR = 4
MINOR = 2
TINY = 7
- PRE = nil
+ PRE = "1"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/relation/predicate_builder/array_handler.rb new/lib/active_record/relation/predicate_builder/array_handler.rb
--- old/lib/active_record/relation/predicate_builder/array_handler.rb 2016-07-13 04:53:42.000000000 +0200
+++ new/lib/active_record/relation/predicate_builder/array_handler.rb 2016-08-11 00:25:26.000000000 +0200
@@ -14,7 +14,8 @@
it for 'IN' conditions.
MSG
- values = values.flatten
+ flat_values = values.flatten
+ values = flat_values unless flat_values.include?(nil)
end
return attribute.in([]) if values.empty? && nils.empty?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-07-13 04:53:42.000000000 +0200
+++ new/metadata 2016-08-11 00:25:26.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: activerecord
version: !ruby/object:Gem::Version
- version: 4.2.7
+ version: 4.2.7.1
platform: ruby
authors:
- David Heinemeier Hansson
autorequire:
bindir: bin
cert_chain: []
-date: 2016-07-13 00:00:00.000000000 Z
+date: 2016-08-10 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
@@ -16,28 +16,28 @@
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 4.2.7
+ version: 4.2.7.1
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 4.2.7
+ version: 4.2.7.1
- !ruby/object:Gem::Dependency
name: activemodel
requirement: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 4.2.7
+ version: 4.2.7.1
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 4.2.7
+ version: 4.2.7.1
- !ruby/object:Gem::Dependency
name: arel
requirement: !ruby/object:Gem::Requirement
@@ -304,8 +304,9 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.4.5.1
+rubygems_version: 2.6.6
signing_key:
specification_version: 4
summary: Object-relational mapper framework (part of Rails).
test_files: []
+has_rdoc:
1
0
Hello community,
here is the log from the commit of package rubygem-ruby_dep for openSUSE:Factory checked in at 2016-08-25 09:55:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-ruby_dep (Old)
and /work/SRC/openSUSE:Factory/.rubygem-ruby_dep.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-ruby_dep"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-ruby_dep/rubygem-ruby_dep.changes 2016-07-21 08:15:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-ruby_dep.new/rubygem-ruby_dep.changes 2016-08-25 09:55:24.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 3 04:36:11 UTC 2016 - coolo(a)suse.com
+
+- updated to version 1.4.0
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
ruby_dep-1.3.1.gem
New:
----
ruby_dep-1.4.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-ruby_dep.spec ++++++
--- /var/tmp/diff_new_pack.6Fqa3m/_old 2016-08-25 09:55:26.000000000 +0200
+++ /var/tmp/diff_new_pack.6Fqa3m/_new 2016-08-25 09:55:26.000000000 +0200
@@ -24,16 +24,16 @@
#
Name: rubygem-ruby_dep
-Version: 1.3.1
+Version: 1.4.0
Release: 0
%define mod_name ruby_dep
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 5
-BuildRequires: %{ruby => 2.0}
BuildRequires: %{ruby < 3}
-BuildRequires: %{ruby >= 2.0.0}
+BuildRequires: %{ruby => 2.2}
+BuildRequires: %{ruby >= 2.2.5}
BuildRequires: %{rubygem gem2rpm}
+BuildRequires: ruby-macros >= 5
Url: https://github.com/e2/ruby_dep
Source: http://rubygems.org/gems/%{mod_full_name}.gem
Source1: gem2rpm.yml
++++++ ruby_dep-1.3.1.gem -> ruby_dep-1.4.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml 2016-05-06 18:22:43.000000000 +0200
+++ new/.travis.yml 2016-08-03 03:11:54.000000000 +0200
@@ -1,12 +1,11 @@
sudo: false
language: ruby
bundler_args: --without development
+env: JRUBY_OPTS='--server -Xcompile.invokedynamic=false'
rvm:
- - 2.0.0
- - 2.1.9
- - 2.2.4
- 2.2.5
- 2.3.1
- - jruby-9.0.5.0
-before_install: gem install bundler -v 1.12.1
+ - jruby-9.1.2.0
+
+before_install: gem install bundler -v 1.12.5
cache: bundler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-05-06 18:22:43.000000000 +0200
+++ new/README.md 2016-08-03 03:11:54.000000000 +0200
@@ -4,16 +4,24 @@
## Description
-RubyDep helps users avoid incompatible, buggy and insecure Ruby versions.
+RubyDep does 2 things right now:
-It's for gem owners to add to their runtime dependencies in their gemspec.
+1. Helps end users avoid incompatible, buggy and insecure Ruby versions.
+2. Helps gem owners manage their gem's `required_ruby_version` gemspec field based on `.travis.yml`.
-1. It automatically sets your gemspec's `required_ruby_version` based on rubies tested in your `.travis-yml`
-2. It warns users of your project if they're using a buggy or vulnerable version of Ruby
+## Quick info
+
+- if you want to know how to disable the warnings, see here: https://github.com/e2/ruby_dep/wiki/Disabling-warnings
+- for a list of Ruby versions that can be used to install ruby_dep, see here: https://travis-ci.org/e2/ruby_dep
+- if your version of Ruby is not supported, open a new issue and explain your situation/problem
+- when in doubt, open a new issue or [read the FAQ on the Wiki](https://github.com/e2/ruby_dep/wiki/FAQ).
+- gems using RubyDep are designed to not be installable on a given Ruby version, unless it's specifically declared supported by those gems - but it's ok to ask for supporting your Ruby if you're stuck on an older version (for whatever reason)
+- discussions about Ruby versions can get complex and frustrating - please be patient and constructive, and open-minded about solutions - especially if you're having problems
-NOTE: RubyDep uses it's own approach on itself. This means it can only be installed on Ruby versions tested here: [check out the Travis build status](https://travis-ci.org/e2/ruby_dep). If you need support for an different/older version of Ruby, open an issue with "backport" in the title and provide a compelling case for supporting the version of Ruby you need.
-When in doubt, open a new issue or [read the FAQ on the Wiki](https://github.com/e2/ruby_dep/wiki/FAQ).
+## Supported Ruby versions:
+
+NOTE: RubyDep uses it's own approach on itself. This means it can only be installed on Ruby versions tested here: [check out the Travis build status](https://travis-ci.org/e2/ruby_dep). If you need support for an different/older version of Ruby, open an issue with "backport" in the title and provide a compelling case for supporting the version of Ruby you need.
## Problem 1: "Which version of Ruby does your project support?"
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/ruby_dep/logger.rb new/lib/ruby_dep/logger.rb
--- old/lib/ruby_dep/logger.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/ruby_dep/logger.rb 2016-08-03 03:11:54.000000000 +0200
@@ -0,0 +1,16 @@
+module RubyDep
+ class Logger
+ def initialize(device, prefix)
+ @device = device
+ @prefix = prefix
+ end
+
+ def warning(msg)
+ @device.puts @prefix + msg
+ end
+
+ def notice(msg)
+ @device.puts @prefix + msg
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/ruby_dep/quiet.rb new/lib/ruby_dep/quiet.rb
--- old/lib/ruby_dep/quiet.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/ruby_dep/quiet.rb 2016-08-03 03:11:54.000000000 +0200
@@ -0,0 +1,3 @@
+require 'ruby_dep/warning'
+
+RubyDep::Warning.new.silence!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/ruby_dep/ruby_version.rb new/lib/ruby_dep/ruby_version.rb
--- old/lib/ruby_dep/ruby_version.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/ruby_dep/ruby_version.rb 2016-08-03 03:11:54.000000000 +0200
@@ -0,0 +1,58 @@
+
+module RubyDep
+ class RubyVersion
+ attr_reader :status # NOTE: monkey-patched by acceptance tests
+ attr_reader :version
+ attr_reader :engine
+
+ def initialize(ruby_version, engine)
+ @engine = engine
+ @version = Gem::Version.new(ruby_version)
+ @status = detect_status
+ end
+
+ def recognized?
+ info.any?
+ end
+
+ def recommended(status)
+ current = Gem::Version.new(@version)
+ info.select do |key, value|
+ value == status && Gem::Version.new(key) > current
+ end.keys.reverse
+ end
+
+ private
+
+ VERSION_INFO = {
+ 'ruby' => {
+ '2.3.1' => :unknown,
+ '2.3.0' => :buggy,
+ '2.2.5' => :unknown,
+ '2.2.4' => :buggy,
+ '2.2.0' => :insecure,
+ '2.1.9' => :buggy,
+ '2.0.0' => :insecure
+ },
+
+ 'jruby' => {
+ '2.3.0' => :unknown, # jruby-9.1.2.0, jruby-9.1.0.0
+ '2.2.3' => :buggy, # jruby-9.0.5.0
+ '2.2.0' => :insecure
+ }
+ }.freeze
+
+ def info
+ @info ||= VERSION_INFO[@engine] || {}
+ end
+
+ def detect_status
+ return :untracked unless recognized?
+
+ info.each do |ruby, status|
+ return status if @version >= Gem::Version.new(ruby)
+ end
+ :insecure
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/ruby_dep/travis/ruby_version.rb new/lib/ruby_dep/travis/ruby_version.rb
--- old/lib/ruby_dep/travis/ruby_version.rb 2016-05-06 18:22:43.000000000 +0200
+++ new/lib/ruby_dep/travis/ruby_version.rb 2016-08-03 03:11:54.000000000 +0200
@@ -48,6 +48,8 @@
end
def jruby_version(version)
+ return '2.3.0' if version == '9.1.2.0'
+ return '2.3.0' if version == '9.1.0.0'
return '2.2.3' if version == '9.0.5.0'
return '2.2.2' if version == '9.0.4.0'
raise Error::Unrecognized::JRubyVersion, version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/ruby_dep/version.rb new/lib/ruby_dep/version.rb
--- old/lib/ruby_dep/version.rb 2016-05-06 18:22:43.000000000 +0200
+++ new/lib/ruby_dep/version.rb 2016-08-03 03:11:54.000000000 +0200
@@ -1,3 +1,3 @@
module RubyDep
- VERSION = '1.3.1'.freeze
+ VERSION = '1.4.0'.freeze
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/ruby_dep/warning.rb new/lib/ruby_dep/warning.rb
--- old/lib/ruby_dep/warning.rb 2016-05-06 18:22:43.000000000 +0200
+++ new/lib/ruby_dep/warning.rb 2016-08-03 03:11:54.000000000 +0200
@@ -1,96 +1,97 @@
+require 'ruby_dep/logger'
+require 'ruby_dep/ruby_version'
+
module RubyDep
+ PROJECT_URL = 'http://github.com/e2/ruby_dep'.freeze
+
class Warning
+ DISABLING_ENVIRONMENT_VAR = 'RUBY_DEP_GEM_SILENCE_WARNINGS'.freeze
PREFIX = 'RubyDep: WARNING: '.freeze
- MSG_BUGGY = 'Your Ruby is outdated/buggy.'.freeze
- MSG_INSECURE = 'Your Ruby has security vulnerabilities!'.freeze
- MSG_HOW_TO_DISABLE = ' (To disable warnings, set'\
- ' RUBY_DEP_GEM_SILENCE_WARNINGS=1)'.freeze
+ WARNING = {
+ insecure: 'Your Ruby has security vulnerabilities!'.freeze,
+ buggy: 'Your Ruby is outdated/buggy.'.freeze,
+ untracked: 'Your Ruby may not be supported.'.freeze
+ }.freeze
+
+ NOTICE_RECOMMENDATION = 'Your Ruby is: %s (%s).'\
+ ' Recommendation: upgrade to %s.'.freeze
+
+ NOTICE_BUGGY_ALTERNATIVE = '(Or, at least to %s)'.freeze
- OPEN_ISSUE_FOR_UNRECOGNIZED = 'If this version is important,'\
- ' please open an issue at http://github.com/e2/ruby_dep'.freeze
+ NOTICE_HOW_TO_DISABLE = '(To disable warnings, see:'\
+ "#{PROJECT_URL}/wiki/Disabling-warnings )".freeze
+
+ NOTICE_OPEN_ISSUE = 'If you need this version supported,'\
+ " please open an issue at #{PROJECT_URL}".freeze
+
+ def initialize
+ @version = RubyVersion.new(RUBY_VERSION, RUBY_ENGINE)
+ @logger = Logger.new(STDERR, PREFIX)
+ end
def show_warnings
return if silenced?
- case (status = check_ruby)
- when :insecure
- warn_ruby(MSG_INSECURE, status)
- when :buggy
- warn_ruby(MSG_BUGGY, status)
- when :unknown
- else
- raise "Unknown problem type: #{problem.inspect}"
- end
+ return warn_ruby(WARNING[status]) if WARNING.key?(status)
+ return if status == :unknown
+ raise "Unknown problem type: #{problem.inspect}"
end
- private
-
- VERSION_INFO = {
- 'ruby' => {
- '2.3.1' => :unknown,
- '2.3.0' => :buggy,
- '2.2.5' => :unknown,
- '2.2.4' => :buggy,
- '2.2.0' => :insecure,
- '2.1.9' => :buggy,
- '2.0.0' => :insecure
- },
-
- 'jruby' => {
- '2.2.3' => :unknown, # jruby-9.0.5.0
- '2.2.0' => :insecure
- }
- }.freeze
-
- def check_ruby
- version = Gem::Version.new(RUBY_VERSION)
- current_ruby_info.each do |ruby, status|
- return status if version >= Gem::Version.new(ruby)
- end
- :insecure
+ def silence!
+ ENV[DISABLING_ENVIRONMENT_VAR] = '1'
end
+ private
+
def silenced?
- value = ENV['RUBY_DEP_GEM_SILENCE_WARNINGS']
+ value = ENV[DISABLING_ENVIRONMENT_VAR]
(value || '0') !~ /^0|false|no|n$/
end
- def warn_ruby(msg, status)
- STDERR.puts PREFIX + msg + MSG_HOW_TO_DISABLE
- STDERR.puts PREFIX + recommendation(status)
+ def status
+ @version.status
end
- def recommendation(status)
- msg = "Your Ruby is: #{RUBY_VERSION}"
- return msg + recommendation_for_unknown unless recognized?
-
- msg += " (#{status})."
- msg += " Recommendation: install #{recommended(:unknown).join(' or ')}."
- return msg unless status == :insecure
+ def warn_ruby(msg)
+ @logger.warning(msg)
+ @logger.notice(recommendation)
+ @logger.notice(NOTICE_HOW_TO_DISABLE)
+ end
- msg + " (Or, at least to #{recommended(:buggy).join(' or ')})"
+ def recommendation
+ return unrecognized_msg unless @version.recognized?
+ return recommendation_msg unless status == :insecure
+ [recommendation_msg, safer_alternatives_msg].join(' ')
end
- def recommended(status)
- current = Gem::Version.new(RUBY_VERSION)
- current_ruby_info.select do |key, value|
- value == status && Gem::Version.new(key) > current
- end.keys.reverse
+ def unrecognized_msg
+ format(
+ "Your Ruby is: %s '%s' (unrecognized). %s",
+ @version.version,
+ @version.engine,
+ NOTICE_OPEN_ISSUE
+ )
end
- def current_ruby_info
- VERSION_INFO[RUBY_ENGINE] || {}
+ def recommended_versions
+ @version.recommended(:unknown)
end
- def recognized?
- current_ruby_info.any?
+ def buggy_alternatives
+ @version.recommended(:buggy)
end
- def recommendation_for_unknown
+ def recommendation_msg
format(
- " '%s' (unrecognized). %s", RUBY_ENGINE,
- OPEN_ISSUE_FOR_UNRECOGNIZED
+ NOTICE_RECOMMENDATION,
+ @version.version,
+ status,
+ recommended_versions.join(' or ')
)
end
+
+ def safer_alternatives_msg
+ format(NOTICE_BUGGY_ALTERNATIVE, buggy_alternatives.join(' or '))
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-05-06 18:22:43.000000000 +0200
+++ new/metadata 2016-08-03 03:11:54.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: ruby_dep
version: !ruby/object:Gem::Version
- version: 1.3.1
+ version: 1.4.0
platform: ruby
authors:
- Cezary Baginski
autorequire:
bindir: exe
cert_chain: []
-date: 2016-05-06 00:00:00.000000000 Z
+date: 2016-08-03 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: bundler
@@ -39,6 +39,9 @@
- LICENSE.txt
- README.md
- lib/ruby_dep.rb
+- lib/ruby_dep/logger.rb
+- lib/ruby_dep/quiet.rb
+- lib/ruby_dep/ruby_version.rb
- lib/ruby_dep/travis.rb
- lib/ruby_dep/travis/ruby_version.rb
- lib/ruby_dep/version.rb
@@ -55,10 +58,10 @@
requirements:
- - "~>"
- !ruby/object:Gem::Version
- version: '2.0'
+ version: '2.2'
- - ">="
- !ruby/object:Gem::Version
- version: 2.0.0
+ version: 2.2.5
required_rubygems_version: !ruby/object:Gem::Requirement
requirements:
- - ">="
@@ -66,7 +69,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.5.1
+rubygems_version: 2.6.6
signing_key:
specification_version: 4
summary: Extracts supported Ruby versions from Travis file
1
0
Hello community,
here is the log from the commit of package rubygem-mimemagic for openSUSE:Factory checked in at 2016-08-25 09:55:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-mimemagic (Old)
and /work/SRC/openSUSE:Factory/.rubygem-mimemagic.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-mimemagic"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-mimemagic/rubygem-mimemagic.changes 2016-03-01 09:39:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-mimemagic.new/rubygem-mimemagic.changes 2016-08-25 09:55:19.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 3 04:33:25 UTC 2016 - coolo(a)suse.com
+
+- updated to version 0.3.2
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
mimemagic-0.3.1.gem
New:
----
mimemagic-0.3.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-mimemagic.spec ++++++
--- /var/tmp/diff_new_pack.URw1PL/_old 2016-08-25 09:55:20.000000000 +0200
+++ /var/tmp/diff_new_pack.URw1PL/_new 2016-08-25 09:55:20.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-mimemagic
-Version: 0.3.1
+Version: 0.3.2
Release: 0
%define mod_name mimemagic
%define mod_full_name %{mod_name}-%{version}
++++++ mimemagic-0.3.1.gem -> mimemagic-0.3.2.gem ++++++
++++ 11983 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package rubygem-daemons for openSUSE:Factory checked in at 2016-08-25 09:55:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-daemons (Old)
and /work/SRC/openSUSE:Factory/.rubygem-daemons.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-daemons"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-daemons/rubygem-daemons.changes 2015-06-30 10:16:37.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-daemons.new/rubygem-daemons.changes 2016-08-25 09:55:16.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 3 04:30:21 UTC 2016 - coolo(a)suse.com
+
+- updated to version 1.2.4
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
daemons-1.2.3.gem
New:
----
daemons-1.2.4.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-daemons.spec ++++++
--- /var/tmp/diff_new_pack.eJIEs0/_old 2016-08-25 09:55:17.000000000 +0200
+++ /var/tmp/diff_new_pack.eJIEs0/_new 2016-08-25 09:55:17.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-daemons
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -24,7 +24,7 @@
#
Name: rubygem-daemons
-Version: 1.2.3
+Version: 1.2.4
Release: 0
%define mod_name daemons
%define mod_full_name %{mod_name}-%{version}
++++++ daemons-1.2.3.gem -> daemons-1.2.4.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LICENSE new/LICENSE
--- old/LICENSE 2015-06-25 22:24:19.000000000 +0200
+++ new/LICENSE 2016-08-02 20:22:22.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2005-2015 Thomas Uehlinger, 2014-2015 Aaron Stone
+Copyright (c) 2005-2016 Thomas Uehlinger, 2014-2016 Aaron Stone
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2015-06-25 22:24:19.000000000 +0200
+++ new/README.md 2016-08-02 20:22:22.000000000 +0200
@@ -1,5 +1,6 @@
Ruby Daemons
============
+[![Code Climate](https://codeclimate.com/github/acuppy/daemons/badges/gpa.svg)](htt… Coverage](https://circleci.com/gh/acuppy/daemons.svg?style=shield&circle-to…
Daemons provides an easy way to wrap existing ruby scripts (for example a self-written server)
to be _run as a daemon_ and to be _controlled by simple start/stop/restart commands_.
@@ -203,4 +204,4 @@
Author
------
-Written 2005-2015 by Thomas Uehlinger <thomas.uehlinger(a)gmail.com>, 2014-2015 by Aaron Stone <aaron(a)serendipity.cx>.
+Written 2005-2016 by Thomas Uehlinger, 2014-2016 by Aaron Stone.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Releases new/Releases
--- old/Releases 2015-06-25 22:24:19.000000000 +0200
+++ new/Releases 2016-08-02 20:22:22.000000000 +0200
@@ -1,5 +1,11 @@
= Daemons Release History
+== Release 1.2.4: August 1, 2016
+
+* add :shush option
+* add :monitor_interval option
+* add :log_output_syslog option
+
== Release 1.2.3: June 25, 2015
* fix: ApplicationGroup now waits on subprocesses in start_all (thanks to tobithiel)
@@ -27,12 +33,12 @@
== Release 1.1.9: August 10, 2012
-* daemonize.rb: do srand in the forked child process both in daemonize and call_as_daemon
+* daemonize.rb: do srand in the forked child process both in daemonize and call_as_daemon
(thanks to Andrew Havens).
== Release 1.1.8: February 7, 2012
-* rename to daemonization.rb to daemonize.rb (and Daemonization to Daemonize) to
+* rename to daemonization.rb to daemonize.rb (and Daemonization to Daemonize) to
ensure compatibility.
== Release 1.1.7: February 6, 2012
@@ -46,57 +52,57 @@
== Release 1.1.5: December 19, 2011
-* Catch the case where the pidfile is empty but not deleted
+* Catch the case where the pidfile is empty but not deleted
and restart the app (thanks to Rich Healey)
== Release 1.1.4: June 17, 2011
-* Do not change the umask to 0000 when daemonizing anymore, just leave it as it
+* Do not change the umask to 0000 when daemonizing anymore, just leave it as it
was (thanks to Jon Botelho).
== Release 1.1.3: April 14, 2011
* Fixed a bug in Application.stop: the cached pid number needs to
be used to check for the status of a killed process (thanks to Jimmy Sieben).
-
+
== Release 1.1.2: March 29, 2011
* Fixed gemspec to include all needed files.
-
+
== Release 1.1.1: March 29, 2011
-* Make the logging facilities work in :mode => :none (i.e. when calling
+* Make the logging facilities work in :mode => :none (i.e. when calling
Daemons.daemonize) (thanks to the input from Peter Hegedus).
-
+
== Release 1.1.0: June 20, 2010
* Honour the options[:app_name] in Daemons.daemonize (thanks to Ryan Tecco).
-* Included a new option :stop_proc to specify a proc that will be called when a
+* Included a new option :stop_proc to specify a proc that will be called when a
daemonized process receives a request to stop (thanks to Dave Dupre).
* Only delete the pidfile if the current pid is the original pid (ghazel).
* Start when restart but no application running (pcreux).
* Silently continue if there is no pidfile (ghazel).
* We now per default wait for processes to stop and
- kill them automatically it if they do not stop within a given time
- (force_kill_waittime). Use the option --no_wait to not wait for processes to
+ kill them automatically it if they do not stop within a given time
+ (force_kill_waittime). Use the option --no_wait to not wait for processes to
stop.
* Set log files mode to 0644 (mikehale).
* Set pid file permissions to 0644 (mikehale).
* Added ability to change process uid/gid (mikehale).
-* Fix for: If you happen to start a daemon from a process that has open file
- descriptors these will stay open. As it is daemonize.rb only closes ruby IO
+* Fix for: If you happen to start a daemon from a process that has open file
+ descriptors these will stay open. As it is daemonize.rb only closes ruby IO
objects (thanks to Han Holl).
* New reload command (SIGHUP) (thanks to Michael Schuerig).
== Release 1.0.10: March 21, 2008
-* By default, we now delete stray pid-files (i.e. pid-files which result for
- example from a killed daemon) automatically. This function can be deactivated
+* By default, we now delete stray pid-files (i.e. pid-files which result for
+ example from a killed daemon) automatically. This function can be deactivated
by passing :keep_pid_files => true as an option.
-* All pid files of :multiple daemons new get deleted correctly upon exit of the
+* All pid files of :multiple daemons new get deleted correctly upon exit of the
daemons (reported by Han Holl).
* Use the signal 'KILL' instead of 'TERM' on Windows platforms.
-* Use exit! in trap('TERM') instead of exit when option :hard_exit is given
+* Use exit! in trap('TERM') instead of exit when option :hard_exit is given
(thanks to Han Holl).
* Did some clarification on the exception log.
@@ -107,12 +113,12 @@
== Release 1.0.8: September 24, 2007
-* new Pid.running? function. Checking whether a process exists by sending
+* new Pid.running? function. Checking whether a process exists by sending
signal '0' (thanks to Dru Nelson).
== Release 1.0.7: July 7, 2007
-* Patch to fix wrong ARGV when using :exec (in def start_exec:
+* Patch to fix wrong ARGV when using :exec (in def start_exec:
Kernel.exec(script(), *(@app_argv || []))) (thanks to Alex McGuire).
== Release 1.0.6: Mai 8, 2007
@@ -122,7 +128,7 @@
== Release 1.0.5: February 24, 2007
-* Applied patch that makes daemons to use '/var/log' as logfile
+* Applied patch that makes daemons to use '/var/log' as logfile
directory if you use :dir_mode = :system (thanks to Han Holl).
* Daemons should now work with Ruby 1.9 (at least the basic features).
@@ -130,7 +136,7 @@
* Document the :log_output option (thanks to Andrew Kuklewicz).
* Set STDOUT.sync = true when redirecting to a logfile (thanks to Andrew Kuklewicz).
-* Should now run also correctly when there is no working 'ps ax' on the system
+* Should now run also correctly when there is no working 'ps ax' on the system
(thanks to Daniel Kehoe).
== Release 1.0.3: November 1, 2006
@@ -142,7 +148,7 @@
* Changed the 'ps -ax' call back to 'ps ax'.
* Fixed the documentation for the :normal :dir_mode.
* As a default for Daemons.run_proc, the pid file is now saved in the current directory.
-* In :ontop mode for running a proc (this is equal to calling something like 'ruby ctrl_proc.rb run'),
+* In :ontop mode for running a proc (this is equal to calling something like 'ruby ctrl_proc.rb run'),
the proc now runs directly in the calling script, not in a forked process anymore (thanks to Paul Butcher).
* Set $0 to app_name in the daemons (thanks to Ilya Novoselov).
@@ -156,7 +162,7 @@
== Release 0.4.4: February 14, 2006
-* Several fixes that allow us to use the Daemons::Controller
+* Several fixes that allow us to use the Daemons::Controller
with a proc instead of wrapping a script file. This gives us all the
PID file management, monitoring, command line options, etc. without having
to specify a path to our script which can be tricky, especially when using
@@ -168,7 +174,7 @@
on calling Daemons.run. This will be used to contruct the name of the pid files
and log files. Defaults to the basename of the script. (thanks to Stephen R. Veit)
-* Bugfix: Handle the case where no controller options are given when calling Daemons,
+* Bugfix: Handle the case where no controller options are given when calling Daemons,
just options after "--". (thanks to Stephen R. Veit)
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/examples/run/ctrl_optionparser.rb new/examples/run/ctrl_optionparser.rb
--- old/examples/run/ctrl_optionparser.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/examples/run/ctrl_optionparser.rb 2016-08-02 20:22:22.000000000 +0200
@@ -28,7 +28,7 @@
def run
Daemons.run_proc('myapp', :ARGV => @args, :ontop => !(a)options.daemonize) do
puts "@options.daemonize: #{(a)options.daemonize}"
- STDOUT.sync = true
+ $stdout.sync = true
loop do
print '.'
sleep(2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/application.rb new/lib/daemons/application.rb
--- old/lib/daemons/application.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/application.rb 2016-08-02 20:22:22.000000000 +0200
@@ -3,6 +3,7 @@
require 'daemons/change_privilege'
require 'daemons/daemonize'
require 'daemons/exceptions'
+require 'daemons/reporter'
require 'timeout'
@@ -33,6 +34,8 @@
@show_status_callback = method(:default_show_status)
+ @report = Reporter.new(@options)
+
unless @pid = pid
if @options[:no_pidfiles]
@pid = PidMem.new
@@ -51,47 +54,45 @@
def change_privilege
user = options[:user]
group = options[:group]
- CurrentProcess.change_privilege(user, group) if user
+ if user
+ @report.changing_process_privilege(user, group)
+ CurrentProcess.change_privilege(user, group)
+ end
end
def script
- @script || @group.script
+ @script or group.script
end
def pidfile_dir
- Pid.dir(@dir_mode || @group.dir_mode, @dir || @group.dir, @script || @group.script)
+ Pid.dir dir_mode, dir, script
end
def logdir
- logdir = options[:log_dir]
- unless logdir
- logdir = options[:dir_mode] == :system ? '/var/log' : pidfile_dir
- end
- logdir
+ options[:log_dir] or
+ options[:dir_mode] == :system ? '/var/log' : pidfile_dir
end
def output_logfilename
- filename = options[:output_logfilename]
- unless filename
- filename = @group.app_name + '.output'
- end
- filename
+ options[:output_logfilename] or "#{(a)group.app_name}.output"
end
-
+
def output_logfile
- (options[:log_output] && logdir) ? File.join(logdir, output_logfilename) : nil
+ if log_output_syslog?
+ 'SYSLOG'
+ elsif log_output?
+ File.join logdir, output_logfilename
+ end
end
def logfilename
- filename = options[:logfilename]
- unless filename
- filename = @group.app_name + '.log'
- end
- filename
+ options[:logfilename] or "#{(a)group.app_name}.log"
end
-
+
def logfile
- logdir ? File.join(logdir, logfilename) : nil
+ if logdir
+ File.join logdir, logfilename
+ end
end
# this function is only used to daemonize the currently running process (Daemons.daemonize)
@@ -139,7 +140,7 @@
def start_exec
if options[:backtrace]
- puts 'option :backtrace is not supported with :mode => :exec, ignoring'
+ @report.backtrace_not_supported
end
unless options[:ontop]
@@ -152,7 +153,7 @@
@pid.pid = Process.pid
ENV['DAEMONS_ARGV'] = @controller_argv.join(' ')
-
+
started
Kernel.exec(script, *(@app_argv || []))
end
@@ -300,8 +301,7 @@
def started
if pid = @pid.pid
- puts "#{group.app_name}: process with pid #{pid} started."
- STDOUT.flush
+ @report.process_started(group.app_name, pid)
end
end
@@ -324,7 +324,7 @@
# one cannot catch exceptions that are thrown in threads other than the main
# thread.
#
- # This function searches for all exceptions in memory and outputs them to STDERR
+ # This function searches for all exceptions in memory and outputs them to $stderr
# (if it is connected) and to a log file in the pid-file directory.
#
def exception_log
@@ -373,14 +373,14 @@
begin
Process.kill(SIGNAL, pid)
rescue Errno::ESRCH => e
- puts "#{e} #{pid}"
- puts 'deleting pid-file.'
+ @report.output_message("#{e} #{pid}")
+ @report.output_message('deleting pid-file.')
end
unless no_wait
if @force_kill_waittime > 0
- puts "#{group.app_name}: trying to stop process with pid #{pid}..."
- STDOUT.flush
+ @report.stopping_process(group.app_name, pid)
+ $stdout.flush
begin
Timeout.timeout(@force_kill_waittime, TimeoutError) do
@@ -389,8 +389,8 @@
end
end
rescue TimeoutError
- puts "#{group.app_name}: process with pid #{pid} won't stop, we forcefully kill it..."
- STDOUT.flush
+ @report.forcefully_stopping_process(group.app_name, pid)
+ $stdout.flush
begin
Process.kill('KILL', pid)
@@ -404,8 +404,8 @@
end
end
rescue TimeoutError
- puts "#{group.app_name}: unable to forcefully kill process with pid #{pid}."
- STDOUT.flush
+ @report.cannot_stop_process(group.app_name, pid)
+ $stdout.flush
end
end
end
@@ -418,8 +418,8 @@
# didn't clean it up.
begin; @pid.cleanup; rescue ::Exception; end
- puts "#{group.app_name}: process with pid #{pid} successfully stopped."
- STDOUT.flush
+ @report.stopped_process(group.app_name, pid)
+ $stdout.flush
end
end
@@ -438,7 +438,7 @@
def default_show_status(daemon = self)
running = daemon.running?
- puts "#{group.app_name}: #{running ? '' : 'not '}running#{(running and daemon.pid.exist?) ? ' [pid ' + daemon.pid.pid.to_s + ']' : ''}#{(daemon.pid.exist? and not running) ? ' (but pid-file exists: ' + daemon.pid.pid.to_s + ')' : ''}"
+ @report.status(group.app_name, running, daemon.pid.exist?, daemon.pid.pid.to_s)
end
# This function implements a (probably too simle) method to detect
@@ -449,11 +449,25 @@
# system.
#
def running?
- if @pid.exist?
- return Pid.running?((a)pid.pid)
- end
+ @pid.exist? and Pid.running? @pid.pid
+ end
+
+ private
+
+ def log_output?
+ options[:log_output] && logdir
+ end
+
+ def log_output_syslog?
+ options[:log_output_syslog]
+ end
+
+ def dir_mode
+ @dir_mode or group.dir_mode
+ end
- false
+ def dir
+ @dir or group.dir
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/application_group.rb new/lib/daemons/application_group.rb
--- old/lib/daemons/application_group.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/application_group.rb 2016-08-02 20:22:22.000000000 +0200
@@ -69,7 +69,7 @@
if x && x.chomp!
processes = x.split(/\n/).compact
processes = processes.delete_if do |p|
- pid, name, add = p.split(/\s/)
+ _pid, name, add = p.split(/\s/)
# We want to make sure that the first part of the process name matches
# so that app_name matches app_name_22
@@ -90,7 +90,11 @@
def find_applications_by_pidfiles(dir)
@monitor = Monitor.find(dir, app_name + '_monitor')
- pid_files = PidFile.find_files(dir, app_name, ! @keep_pid_files)
+ reporter = Reporter.new(options)
+ pid_files = PidFile.find_files(dir, app_name, ! @keep_pid_files) do |pid, file|
+ reporter.deleted_found_pidfile(pid, file)
+ end
+
pid_files.map do |f|
app = Application.new(self, {}, PidFile.existing(f))
setup_app(app)
@@ -137,7 +141,9 @@
end
if options[:monitor]
- @monitor = Monitor.new(an_app)
+ opt = {}
+ opt[:monitor_interval] = options[:monitor_interval] if options[:monitor_interval]
+ @monitor = Monitor.new(an_app, opt)
@monitor.start(self)
end
end
@@ -186,12 +192,12 @@
def show_status
@applications.each { |a| a.show_status }
end
-
+
# Check whether at least one of the applications in the group is running. If yes, return true.
def running?
@applications.each { |a| return true if a.running? }
return false
end
-
+
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/change_privilege.rb new/lib/daemons/change_privilege.rb
--- old/lib/daemons/change_privilege.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/change_privilege.rb 2016-08-02 20:22:22.000000000 +0200
@@ -2,8 +2,6 @@
class CurrentProcess
def self.change_privilege(user, group = user)
- puts "Changing process privilege to #{user}:#{group}"
-
uid, gid = Process.euid, Process.egid
target_uid = Etc.getpwnam(user).uid
target_gid = Etc.getgrnam(group).gid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/cmdline.rb new/lib/daemons/cmdline.rb
--- old/lib/daemons/cmdline.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/cmdline.rb 2016-08-02 20:22:22.000000000 +0200
@@ -12,6 +12,10 @@
opts.on('-t', '--ontop', 'Stay on top (does not daemonize)') do |t|
@options[:ontop] = t
end
+
+ opts.on('-s', '--shush', 'Silent mode (no output to the terminal)') do |t|
+ @options[:shush] = t
+ end
opts.on('-f', '--force', 'Force operation') do |t|
@options[:force] = t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/daemonize.rb new/lib/daemons/daemonize.rb
--- old/lib/daemons/daemonize.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/daemonize.rb 2016-08-02 20:22:22.000000000 +0200
@@ -19,7 +19,7 @@
module_function :safefork
# Simulate the daemonization process (:ontop mode)
- # NOTE: STDOUT and STDERR will not be redirected to the logfile,
+ # NOTE: $stdout and $stderr will not be redirected to the logfile,
# because in :ontop mode, we normally want to see the output
def simulate(logfile_name = nil, app_name = nil)
$0 = app_name if app_name
@@ -29,8 +29,8 @@
close_io
- # Free STDIN and point it to somewhere sensible
- begin; STDIN.reopen '/dev/null'; rescue ::Exception; end
+ # Free $stdin and point it to somewhere sensible
+ begin; $stdin.reopen '/dev/null'; rescue ::Exception; end
# Split rand streams between spawning and daemonized process
srand
@@ -58,7 +58,7 @@
rd.close
# Detach from the controlling terminal
- unless sess_id = Process.setsid
+ unless Process.setsid
fail Daemons.RuntimeException.new('cannot detach from controlling terminal')
end
@@ -100,7 +100,7 @@
# Prevent the possibility of acquiring a controlling terminal
trap 'SIGHUP', 'IGNORE'
- exit if pid = safefork
+ exit if safefork
$0 = app_name if app_name
@@ -120,40 +120,49 @@
def close_io
# Make sure all input/output streams are closed
- # Part I: close all IO objects (except for STDIN/STDOUT/STDERR)
+ # Part I: close all IO objects (except for $stdin/$stdout/$stderr)
ObjectSpace.each_object(IO) do |io|
- unless [STDIN, STDOUT, STDERR].include?(io)
+ unless [$stdin, $stdout, $stderr].include?(io)
io.close rescue nil
end
end
# Make sure all input/output streams are closed
- # Part II: close all file decriptors (except for STDIN/STDOUT/STDERR)
+ # Part II: close all file decriptors (except for $stdin/$stdout/$stderr)
3.upto(8192) do |i|
IO.for_fd(i).close rescue nil
end
end
module_function :close_io
- # Free STDIN/STDOUT/STDERR file descriptors and
+ # Free $stdin/$stdout/$stderr file descriptors and
# point them somewhere sensible
def redirect_io(logfile_name)
- begin; STDIN.reopen '/dev/null'; rescue ::Exception; end
+ begin; $stdin.reopen '/dev/null'; rescue ::Exception; end
- if logfile_name
+ if logfile_name == 'SYSLOG'
+ # attempt to use syslog via syslogio
begin
- STDOUT.reopen logfile_name, 'a'
- File.chmod(0644, logfile_name)
- STDOUT.sync = true
+ require 'syslogio'
+ $stdout = ::Daemons::SyslogIO.new($0, :local0, :info, $stdout)
+ $stderr = ::Daemons::SyslogIO.new($0, :local0, :err, $stderr)
+ # error out early so we can fallback to null
+ $stdout.puts "no logfile provided, output redirected to syslog"
rescue ::Exception
- begin; STDOUT.reopen '/dev/null'; rescue ::Exception; end
+ # on unsupported platforms simply reopen /dev/null
+ begin; $stdout.reopen '/dev/null'; rescue ::Exception; end
+ begin; $stderr.reopen '/dev/null'; rescue ::Exception; end
end
+ elsif logfile_name
+ $stdout.reopen logfile_name, 'a'
+ File.chmod(0644, logfile_name)
+ $stdout.sync = true
+ begin; $stderr.reopen $stdout; rescue ::Exception; end
+ $stderr.sync = true
else
- begin; STDOUT.reopen '/dev/null'; rescue ::Exception; end
+ begin; $stdout.reopen '/dev/null'; rescue ::Exception; end
+ begin; $stderr.reopen '/dev/null'; rescue ::Exception; end
end
-
- begin; STDERR.reopen STDOUT; rescue ::Exception; end
- STDERR.sync = true
end
module_function :redirect_io
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/etc_extension.rb new/lib/daemons/etc_extension.rb
--- old/lib/daemons/etc_extension.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/etc_extension.rb 2016-08-02 20:22:22.000000000 +0200
@@ -3,11 +3,9 @@
Etc.instance_eval do
def groupname(gid)
Etc.group { |e| return e.name if gid == e.gid }
- nil
end
def username(uid)
Etc.passwd { |e| return e.name if uid == e.uid }
- nil
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/exceptions.rb new/lib/daemons/exceptions.rb
--- old/lib/daemons/exceptions.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/exceptions.rb 2016-08-02 20:22:22.000000000 +0200
@@ -1,6 +1,5 @@
-
module Daemons
- class Exception < ::RuntimeError
+ class Exception < RuntimeError
end
class RuntimeException < Exception
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/monitor.rb new/lib/daemons/monitor.rb
--- old/lib/daemons/monitor.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/monitor.rb 2016-08-02 20:22:22.000000000 +0200
@@ -25,9 +25,10 @@
nil
end
- def initialize(an_app)
+ def initialize(an_app, options = {})
@app = an_app
@app_name = an_app.group.app_name + '_monitor'
+ @monitor_interval = options[:monitor_interval] || 30
if an_app.pidfile_dir
@pid = PidFile.new(an_app.pidfile_dir, @app_name, false)
@@ -46,13 +47,13 @@
sleep(1)
- Process.detach(fork { a.start(restart = true) })
+ Process.detach(fork { a.start(true) })
sleep(5)
end
end
- sleep(30)
+ sleep(@monitor_interval)
end
end
private :watch
@@ -105,8 +106,8 @@
end
end
rescue ::Exception => e
- puts "exception while trying to stop monitor process #{pid}: #{e}"
- puts 'deleting pid-file.'
+ $stderr.puts "exception while trying to stop monitor process #{pid}: #{e}"
+ $stderr.puts 'deleting pid-file.'
end
# We try to remove the pid-files by ourselves, in case the monitor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/pidfile.rb new/lib/daemons/pidfile.rb
--- old/lib/daemons/pidfile.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/pidfile.rb 2016-08-02 20:22:22.000000000 +0200
@@ -40,8 +40,8 @@
pid = File.open(f) { |h| h.read }.to_i
rsl = !Pid.running?(pid)
if rsl
- puts "pid-file for killed process #{pid} found (#{f}), deleting."
begin; File.unlink(f); rescue ::Exception; end
+ yield(pid, f) if block_given?
end
rsl
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/reporter.rb new/lib/daemons/reporter.rb
--- old/lib/daemons/reporter.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/daemons/reporter.rb 2016-08-02 20:22:22.000000000 +0200
@@ -0,0 +1,55 @@
+module Daemons
+ class Reporter
+ attr_reader :options
+
+ def initialize(options)
+ @options = options
+
+ if !options[:shush]
+ $stdout.sync = true
+ end
+ end
+
+ def output_message(message)
+ if !options[:shush]
+ puts message
+ end
+ end
+
+ def changing_process_privilege(user, group = user)
+ output_message "Changing process privilege to #{user}:#{group}"
+ end
+
+ def deleted_found_pidfile(pid, f)
+ output_message "pid-file for killed process #{pid} found (#{f}), deleting."
+ end
+
+ def process_started(app_name, pid)
+ output_message "#{app_name}: process with pid #{pid} started."
+ end
+
+ def backtrace_not_supported
+ output_message 'option :backtrace is not supported with :mode => :exec, ignoring'
+ end
+
+ def stopping_process(app_name, pid)
+ output_message "#{app_name}: trying to stop process with pid #{pid}..."
+ end
+
+ def forcefully_stopping_process(app_name, pid)
+ output_message "#{app_name}: process with pid #{pid} won't stop, we forcefully kill it..."
+ end
+
+ def cannot_stop_process(app_name, pid)
+ output_message "#{app_name}: unable to forcefully kill process with pid #{pid}."
+ end
+
+ def stopped_process(app_name, pid)
+ output_message "#{app_name}: process with pid #{pid} successfully stopped."
+ end
+
+ def status(app_name, running, pid_exists, pid)
+ output_message "#{app_name}: #{running ? '' : 'not '}running#{(running and pid_exists) ? ' [pid ' + pid.to_s + ']' : ''}#{(pid_exists and not running) ? ' (but pid-file exists: ' + pid.to_s + ')' : ''}"
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/syslogio.rb new/lib/daemons/syslogio.rb
--- old/lib/daemons/syslogio.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/daemons/syslogio.rb 2016-08-02 20:22:22.000000000 +0200
@@ -0,0 +1,240 @@
+# This is a simple class meant to allow using syslog through an IO-like object. Code
+# borrowed from https://github.com/phemmer/ruby-syslogio
+#
+# The usage is simple:
+#
+# require 'syslogio'
+# $stdout = SyslogIO.new("myapp", :local0, :info, $stdout)
+# $stderr = SyslogIO.new("myapp", :local0, :err, $stderr)
+# $stdout.puts "This is a message"
+# $stderr.puts "This is an error"
+# raise StandardError, 'This will get written through the SyslogIO for $stderr'
+
+class Daemons::SyslogIO
+ require 'syslog'
+
+ # Indicates whether synchonous IO is enabled.
+ # @return [Boolean]
+ attr_reader :sync
+
+ # @!visibility private
+ def self.syslog_constant_sym(option)
+ return unless option.is_a?(Symbol) or option.is_a?(String)
+ option = option.to_s.upcase
+ option = "LOG_#{option}" unless option[0..4] == 'LOG_'
+ option = option.to_sym
+ option
+ end
+ # @!visibility private
+ def self.syslog_constant(option)
+ return unless option = syslog_constant_sym(option)
+ return Syslog.constants.include?(option) ? Syslog.const_get(option) : nil
+ end
+ # @!visibility private
+ def self.syslog_facility(option)
+ return unless option = syslog_constant_sym(option)
+ return Syslog::Facility.constants.include?(option) ? Syslog.const_get(option) : nil
+ end
+ # @!visibility private
+ def self.syslog_level(option)
+ return unless option = syslog_constant_sym(option)
+ return Syslog::Level.constants.include?(option) ? Syslog.const_get(option) : nil
+ end
+ # @!visibility private
+ def self.syslog_option(option)
+ return unless option = syslog_constant_sym(option)
+ return Syslog::Option.constants.include?(option) ? Syslog.const_get(option) : nil
+ end
+
+ # Creates a new object.
+ # You can have as many SyslogIO objects as you like. However because they all share the same syslog connection, some parameters are shared. The identifier shared among all SyslogIO objects, and is set to the value of the last one created. The Syslog options are merged together as a combination of all objects. The facility and level are distinct between each though.
+ # If an IO object is provided as an argument, any text written to the SyslogIO object will also be passed through to that IO object.
+ #
+ # @param identifier [String] Identifier
+ # @param facility [Fixnum<Syslog::Facility>] Syslog facility
+ # @param level [Fixnum<Syslog::Level>] Syslog level
+ # @param option [Fixnum<Syslog::Options>] Syslog option
+ # @param passthrough [IO] IO passthrough
+ def initialize(*options)
+ options.each do |option|
+ if option.is_a?(String)
+ @ident = option
+ elsif value = self.class.syslog_facility(option)
+ @facility = value
+ elsif value = self.class.syslog_level(option)
+ @level = value
+ elsif value = self.class.syslog_option(option)
+ @options = 0 if @options.nil?
+ @options |= value
+ elsif option.is_a?(IO)
+ @out = option
+ else
+ raise ArgumentError, "Unknown argument #{option.inspect}"
+ end
+ end
+
+ @options ||= 0
+ @ident ||= $0.sub(/.*\//, '')
+ @facility ||= Syslog::LOG_USER
+ @level ||= Syslog::LOG_INFO
+
+ if Syslog.opened? then
+ options = Syslog.options | @options
+ @syslog = Syslog.reopen(@ident, options, @facility)
+ else
+ @syslog = Syslog.open(@ident, @options, @facility)
+ end
+
+ @subs = []
+ @sync = false
+ @buffer = ''
+
+ at_exit { flush }
+ end
+
+ # Add a substitution rule
+ #
+ # These substitutions will be applied to each line before it is logged. This can be useful if some other gem is generating log content and you want to change the formatting.
+ # @param regex [Regex]
+ def sub_add(regex, replacement)
+ @subs << [regex, replacement]
+ end
+
+ # Enable or disable synchronous IO (buffering).
+ #
+ # When false (default), output will be line buffered. For syslog this is optimal so the log entries are complete lines.
+ def sync=(sync)
+ if sync != true and sync != false then
+ raise ArgumentError, "sync must be true or false"
+ end
+ @sync = sync
+ if sync == true then
+ flush
+ end
+ end
+
+ # Write to syslog respecting the behavior of the {#sync} setting.
+ def write(text)
+ if @sync then
+ syswrite(text)
+ else
+ text.split(/(\n)/).each do |line|
+ @buffer = @buffer + line.to_s
+ if line == "\n" then
+ flush
+ end
+ end
+ end
+ end
+ alias_method :<<, :write
+
+ # Write to syslog directly, bypassing buffering if enabled.
+ def syswrite(text)
+ begin
+ @out.syswrite(text) if @out and !(a)out.closed?
+ rescue SystemCallError => e
+ end
+
+ text.split(/\n/).each do |line|
+ @subs.each do |sub|
+ line.sub!(sub[0], sub[1])
+ end
+ if line == '' or line.match(/^\s*$/) then
+ next
+ end
+ Syslog.log(@facility | @level, line)
+ end
+ nil
+ end
+
+ # Immediately flush any buffered data
+ def flush
+ syswrite(@buffer)
+ @buffer = ''
+ end
+
+ # Log at the debug level
+ #
+ # Shorthand for {#log}(text, Syslog::LOG_DEBUG)
+ def debug(text)
+ log(text, Syslog::LOG_DEBUG)
+ end
+
+ # Log at the info level
+ #
+ # Shorthand for {#log}(text, Syslog::LOG_INFO)
+ def info(text)
+ log(text, Syslog::LOG_INFO)
+ end
+
+ # Log at the notice level
+ #
+ # Shorthand for {#log}(text, Syslog::LOG_NOTICE)
+ def notice(text)
+ log(text, Syslog::LOG_NOTICE)
+ end
+ alias_method :notify, :notice
+
+ # Log at the warning level
+ #
+ # Shorthand for {#log}(text, Syslog::LOG_WARNING)
+ def warn(text)
+ log(text, Syslog::LOG_WARNING)
+ end
+
+ # Log at the error level
+ #
+ # Shorthand for {#log}(text, Syslog::LOG_ERR)
+ def error(text)
+ log(text, Syslog::LOG_ERR)
+ end
+
+ # Log at the critical level
+ #
+ # Shorthand for {#log}(text, Syslog::LOG_CRIT)
+ def crit(text)
+ log(text, Syslog::LOG_CRIT)
+ end
+ alias_method :fatal, :crit
+
+ # Log at the emergency level
+ #
+ # Shorthand for {#log}(text, Syslog::LOG_EMERG)
+ def emerg(text)
+ log(text, Syslog::LOG_EMERG)
+ end
+
+ # Log a complete line
+ #
+ # Similar to {#write} but appends a newline if not present.
+ def puts(*texts)
+ texts.each do |text|
+ write(text.chomp + "\n")
+ end
+ end
+
+ # Write a complete line at the specified log level
+ #
+ # Similar to {#puts} but allows changing the log level for just this one message
+ def log(text, level = nil)
+ if priority.nil? then
+ write(text.chomp + "\n")
+ else
+ priority_bkup = @priority
+ #TODO fix this to be less ugly. Temporarily setting an instance variable is evil
+ @priority = priority
+ write(text.chomp + "\n")
+ @priority = priority_bkup
+ end
+ end
+
+ # @!visibility private
+ def noop(*args)
+ end
+ alias_method :reopen, :noop
+
+ # false
+ def isatty
+ false
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons/version.rb new/lib/daemons/version.rb
--- old/lib/daemons/version.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons/version.rb 2016-08-02 20:22:22.000000000 +0200
@@ -1,3 +1,3 @@
module Daemons
- VERSION = '1.2.3'
+ VERSION = '1.2.4'
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/daemons.rb new/lib/daemons.rb
--- old/lib/daemons.rb 2015-06-25 22:24:19.000000000 +0200
+++ new/lib/daemons.rb 2016-08-02 20:22:22.000000000 +0200
@@ -47,7 +47,7 @@
# the potential of acquiring a controlling terminal.
# 4. Changes the current working directory to "/".
# 5. Clears the file creation mask (sets +umask+ to 0000).
-# 6. Closes file descriptors (reopens +STDOUT+ and +STDERR+ to point to a logfile if
+# 6. Closes file descriptors (reopens +$stdout+ and +$stderr+ to point to a logfile if
# possible).
#
# So what does this mean for your daemons:
@@ -101,17 +101,20 @@
# same time
# <tt>:ontop</tt>:: When given (i.e. set to true), stay on top, i.e. do not daemonize the application
# (but the pid-file and other things are written as usual)
+ # <tt>:shush</tt>:: When given (i.e. set to true), turn on silent mode (no output to the terminal)
# <tt>:mode</tt>:: <tt>:load</tt> Load the script with <tt>Kernel.load</tt>;
# note that :stop_proc only works for the :load (and :proc) mode.
# <tt>:exec</tt> Execute the script file with <tt>Kernel.exec</tt>
# <tt>:backtrace</tt>:: Write a backtrace of the last exceptions to the file '[app_name].log' in the
# pid-file directory if the application exits due to an uncaught exception
# <tt>:monitor</tt>:: Monitor the programs and restart crashed instances
+ # <tt>:monitor_interval</tt>:: Interval in sesconds at which to check whether the instances are still running
# <tt>:log_dir</tt>:: A specific directory to put the log files into (when not given, resort to the default
# location as derived from the :dir_mode and :dir options
# <tt>:logfilename</tt>:: Specifiy a custom log file name
- # <tt>:log_output</tt>:: When given (i.e. set to true), redirect both STDOUT and STDERR to a logfile named '[app_name].output' (or as given in :output_logfilename) in the pid-file directory
+ # <tt>:log_output</tt>:: When given (i.e. set to true), redirect both $stdout and $stderr to a logfile named '[app_name].output' (or as given in :output_logfilename) in the pid-file directory
# <tt>:output_logfilename</tt>:: Specifiy a custom output redirection file name
+ # <tt>:log_output_syslog</tt>:: When set to true, redirect output into SYSLOG instead of the file. This overrides log_output setting.
# <tt>:keep_pid_files</tt>:: When given do not delete lingering pid-files (files for which the process is no longer running).
# <tt>:hard_exit</tt>:: When given use exit! to end a daemons instead of exit (this will for example
# not call at_exit handlers).
@@ -127,6 +130,7 @@
# :dir => 'pids',
# :multiple => true,
# :ontop => true,
+ # :shush => false,
# :mode => :exec,
# :backtrace => true,
# :monitor => true,
@@ -210,6 +214,8 @@
# === Options:
# <tt>:multiple</tt>:: Specifies whether multiple instances of the same script are allowed to run at the
# same time
+ # <tt>:monitor</tt>:: Monitor the programs and restart crashed instances
+ # <tt>:monitor_interval</tt>:: Interval in sesconds at which to check whether the instances are still running
# <tt>:ontop</tt>:: When given, stay on top, i.e. do not daemonize the application
# <tt>:backtrace</tt>:: Write a backtrace of the last exceptions to the file '[app_name].log' in the
# pid-file directory if the application exits due to an uncaught exception
@@ -271,7 +277,8 @@
# <tt>:dir</tt>:: Used in combination with <tt>:dir_mode</tt> (description above)
# <tt>:log_dir</tt>:: A specific directory to put the log files into (when not given, resort to the default
# location as derived from the :dir_mode and :dir options
- # <tt>:log_output</tt>:: When given (i.e. set to true), redirect both STDOUT and STDERR to a logfile named '[app_name].output' in the pid-file directory
+ # <tt>:log_output</tt>:: When given (i.e. set to true), redirect both $stdout and $stdout to a logfile named '[app_name].output' in the pid-file directory
+ # <tt>:log_output_syslog</tt>:: When set to true, redirect output into SYSLOG instead of the file. This overrides log_output setting.
# -----
#
# === Example:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-06-25 22:24:19.000000000 +0200
+++ new/metadata 2016-08-02 20:22:22.000000000 +0200
@@ -1,15 +1,71 @@
--- !ruby/object:Gem::Specification
name: daemons
version: !ruby/object:Gem::Version
- version: 1.2.3
+ version: 1.2.4
platform: ruby
authors:
- Thomas Uehlinger
autorequire:
bindir: bin
cert_chain: []
-date: 2015-03-08 00:00:00.000000000 Z
-dependencies: []
+date: 2016-08-01 00:00:00.000000000 Z
+dependencies:
+- !ruby/object:Gem::Dependency
+ name: rake
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '0'
+ type: :development
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '0'
+- !ruby/object:Gem::Dependency
+ name: rspec
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '3.1'
+ type: :development
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '3.1'
+- !ruby/object:Gem::Dependency
+ name: simplecov
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '0'
+ type: :development
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '0'
+- !ruby/object:Gem::Dependency
+ name: pry-byebug
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '0'
+ type: :development
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ~>
+ - !ruby/object:Gem::Version
+ version: '0'
description: |2
Daemons provides an easy way to wrap existing ruby scripts (for example a
self-written server) to be run as a daemon and to be controlled by simple
@@ -68,6 +124,8 @@
- lib/daemons/pid.rb
- lib/daemons/pidfile.rb
- lib/daemons/pidmem.rb
+- lib/daemons/reporter.rb
+- lib/daemons/syslogio.rb
- lib/daemons/version.rb
homepage: https://github.com/thuehlinger/daemons
licenses:
1
0
Hello community,
here is the log from the commit of package rubygem-turbolinks for openSUSE:Factory checked in at 2016-08-25 09:55:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-turbolinks (Old)
and /work/SRC/openSUSE:Factory/.rubygem-turbolinks.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-turbolinks"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-turbolinks/rubygem-turbolinks.changes 2016-07-21 07:57:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-turbolinks.new/rubygem-turbolinks.changes 2016-08-25 09:55:14.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 1 04:34:50 UTC 2016 - coolo(a)suse.com
+
+- updated to version 5.0.1
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
turbolinks-5.0.0.gem
New:
----
turbolinks-5.0.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-turbolinks.spec ++++++
--- /var/tmp/diff_new_pack.bqGnaE/_old 2016-08-25 09:55:15.000000000 +0200
+++ /var/tmp/diff_new_pack.bqGnaE/_new 2016-08-25 09:55:15.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-turbolinks
-Version: 5.0.0
+Version: 5.0.1
Release: 0
%define mod_name turbolinks
%define mod_full_name %{mod_name}-%{version}
@@ -32,7 +32,7 @@
BuildRequires: %{rubygem gem2rpm}
BuildRequires: %{ruby}
BuildRequires: ruby-macros >= 5
-Url: https://github.com/turbolinks/turbolinks-rails
+Url: https://github.com/turbolinks/turbolinks
Source: http://rubygems.org/gems/%{mod_full_name}.gem
Source1: gem2rpm.yml
Summary: Turbolinks makes navigating your web application faster
++++++ turbolinks-5.0.0.gem -> turbolinks-5.0.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-06-30 18:47:33.000000000 +0200
+++ new/README.md 2016-07-31 17:52:55.000000000 +0200
@@ -0,0 +1,3 @@
+This repository houses the `turbolinks` RubyGem, which provides a Rails engine for [Turbolinks 5](https://github.com/turbolinks/turbolinks) support.
+
+It depends on the [`turbolinks-source`](https://github.com/turbolinks/turbolinks-source-gem) RubyGem, which packages the Turbolinks JavaScript assets for the Rails asset pipeline.
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/turbolinks/version.rb new/lib/turbolinks/version.rb
--- old/lib/turbolinks/version.rb 2016-06-30 18:47:33.000000000 +0200
+++ new/lib/turbolinks/version.rb 2016-07-31 17:52:55.000000000 +0200
@@ -1,3 +1,3 @@
module Turbolinks
- VERSION = '5.0.0'
+ VERSION = '5.0.1'
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-06-30 18:47:33.000000000 +0200
+++ new/metadata 2016-07-31 17:52:55.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: turbolinks
version: !ruby/object:Gem::Version
- version: 5.0.0
+ version: 5.0.1
platform: ruby
authors:
- David Heinemeier Hansson
autorequire:
bindir: bin
cert_chain: []
-date: 2016-06-30 00:00:00.000000000 Z
+date: 2016-07-31 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: turbolinks-source
@@ -35,7 +35,7 @@
- lib/turbolinks.rb
- lib/turbolinks/redirection.rb
- lib/turbolinks/version.rb
-homepage: https://github.com/turbolinks/turbolinks-rails
+homepage: https://github.com/turbolinks/turbolinks
licenses:
- MIT
metadata: {}
1
0
Hello community,
here is the log from the commit of package rubygem-uglifier for openSUSE:Factory checked in at 2016-08-25 09:55:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-uglifier (Old)
and /work/SRC/openSUSE:Factory/.rubygem-uglifier.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-uglifier"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-uglifier/rubygem-uglifier.changes 2016-04-14 13:06:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-uglifier.new/rubygem-uglifier.changes 2016-08-25 09:55:09.000000000 +0200
@@ -1,0 +2,11 @@
+Sat Jul 30 04:34:14 UTC 2016 - coolo(a)suse.com
+
+- updated to version 3.0.1
+ see installed CHANGELOG.md
+
+ ## 3.0.1 (28 July 2016)
+
+ - update UglifyJS to 2.7.0
+ - split JS dependencies to separate files
+
+-------------------------------------------------------------------
Old:
----
uglifier-3.0.0.gem
New:
----
uglifier-3.0.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-uglifier.spec ++++++
--- /var/tmp/diff_new_pack.2Xb3B3/_old 2016-08-25 09:55:10.000000000 +0200
+++ /var/tmp/diff_new_pack.2Xb3B3/_new 2016-08-25 09:55:10.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-uglifier
-Version: 3.0.0
+Version: 3.0.1
Release: 0
%define mod_name uglifier
%define mod_full_name %{mod_name}-%{version}
++++++ uglifier-3.0.0.gem -> uglifier-3.0.1.gem ++++++
++++ 6290 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package rubygem-sshkit for openSUSE:Factory checked in at 2016-08-25 09:55:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-sshkit (Old)
and /work/SRC/openSUSE:Factory/.rubygem-sshkit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-sshkit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-sshkit/rubygem-sshkit.changes 2016-07-21 07:58:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-sshkit.new/rubygem-sshkit.changes 2016-08-25 09:55:08.000000000 +0200
@@ -1,0 +2,13 @@
+Sat Jul 30 04:33:44 UTC 2016 - coolo(a)suse.com
+
+- updated to version 1.11.2
+ see installed CHANGELOG.md
+
+ ## [1.11.2][] (2016-07-29)
+
+ ### Bug fixes
+
+ * Fixed a crash occurring when `Host@keys` was set to a non-Enumerable.
+ @xavierholt [PR #360](https://github.com/capistrano/sshkit/pull/360)
+
+-------------------------------------------------------------------
Old:
----
sshkit-1.11.1.gem
New:
----
sshkit-1.11.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-sshkit.spec ++++++
--- /var/tmp/diff_new_pack.6Mi7MT/_old 2016-08-25 09:55:09.000000000 +0200
+++ /var/tmp/diff_new_pack.6Mi7MT/_new 2016-08-25 09:55:09.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-sshkit
-Version: 1.11.1
+Version: 1.11.2
Release: 0
%define mod_name sshkit
%define mod_full_name %{mod_name}-%{version}
++++++ sshkit-1.11.1.gem -> sshkit-1.11.2.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2016-06-17 20:19:54.000000000 +0200
+++ new/CHANGELOG.md 2016-07-30 02:57:10.000000000 +0200
@@ -8,6 +8,13 @@
* Add your entries below here, remember to credit yourself however you want
to be credited!
+## [1.11.2][] (2016-07-29)
+
+### Bug fixes
+
+ * Fixed a crash occurring when `Host@keys` was set to a non-Enumerable.
+ @xavierholt [PR #360](https://github.com/capistrano/sshkit/pull/360)
+
## [1.11.1][] (2016-06-17)
### Bug fixes
@@ -637,6 +644,7 @@
First release.
-[Unreleased]: https://github.com/capistrano/sshkit/compare/v1.11.1...HEAD
+[Unreleased]: https://github.com/capistrano/sshkit/compare/v1.11.2...HEAD
+[1.11.2]: https://github.com/capistrano/sshkit/compare/v1.11.1...v1.11.2
[1.11.1]: https://github.com/capistrano/sshkit/compare/v1.11.0...v1.11.1
[1.11.0]: https://github.com/capistrano/sshkit/compare/v1.10.0...v1.11.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-06-17 20:19:54.000000000 +0200
+++ new/README.md 2016-07-30 02:57:10.000000000 +0200
@@ -94,16 +94,16 @@
the block they are given with a check.
In the case of `within()`, an error-raising check will be made that the directory
-exists; for `as()` a simple call to `sudo su -<user> whoami` wrapped in a check for
+exists; for `as()` a simple call to `sudo -u <user> -- sh -c <command>'` wrapped in a check for
success, raising an error if unsuccessful.
The directory check is implemented like this:
if test ! -d <directory>; then echo "Directory doesn't exist" 2>&1; false; fi
-And the user switching test implemented like this:
+And the user switching test is implemented like this:
- if ! sudo su <user> -c whoami > /dev/null; then echo "Can't switch user" 2>&1; false; fi
+ if ! sudo -u <user> whoami > /dev/null; then echo "Can't switch user" 2>&1; false; fi
According to the defaults, any command that exits with a status other than 0
raises an error (this can be changed). The body of the message is whatever was
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sshkit/host.rb new/lib/sshkit/host.rb
--- old/lib/sshkit/host.rb 2016-06-17 20:19:54.000000000 +0200
+++ new/lib/sshkit/host.rb 2016-07-30 02:57:10.000000000 +0200
@@ -17,7 +17,7 @@
end
def keys
- @keys
+ Array(@keys)
end
def initialize(host_string_or_options_hash)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sshkit/version.rb new/lib/sshkit/version.rb
--- old/lib/sshkit/version.rb 2016-06-17 20:19:54.000000000 +0200
+++ new/lib/sshkit/version.rb 2016-07-30 02:57:10.000000000 +0200
@@ -1,3 +1,3 @@
module SSHKit
- VERSION = "1.11.1".freeze
+ VERSION = "1.11.2".freeze
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-06-17 20:19:54.000000000 +0200
+++ new/metadata 2016-07-30 02:57:10.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: sshkit
version: !ruby/object:Gem::Version
- version: 1.11.1
+ version: 1.11.2
platform: ruby
authors:
- Lee Hambley
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2016-06-17 00:00:00.000000000 Z
+date: 2016-07-30 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: net-ssh
@@ -218,7 +218,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.6.4
+rubygems_version: 2.6.6
signing_key:
specification_version: 4
summary: SSHKit makes it easy to write structured, testable SSH commands in Ruby
1
0
Hello community,
here is the log from the commit of package rubygem-capistrano-harrow for openSUSE:Factory checked in at 2016-08-25 09:55:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-capistrano-harrow (Old)
and /work/SRC/openSUSE:Factory/.rubygem-capistrano-harrow.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-capistrano-harrow"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-capistrano-harrow/rubygem-capistrano-harrow.changes 2016-06-29 15:10:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-capistrano-harrow.new/rubygem-capistrano-harrow.changes 2016-08-25 09:55:05.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Jul 29 04:29:19 UTC 2016 - coolo(a)suse.com
+
+- updated to version 0.5.3
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
capistrano-harrow-0.5.2.gem
New:
----
capistrano-harrow-0.5.3.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-capistrano-harrow.spec ++++++
--- /var/tmp/diff_new_pack.nTyTBr/_old 2016-08-25 09:55:06.000000000 +0200
+++ /var/tmp/diff_new_pack.nTyTBr/_new 2016-08-25 09:55:06.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-capistrano-harrow
-Version: 0.5.2
+Version: 0.5.3
Release: 0
%define mod_name capistrano-harrow
%define mod_full_name %{mod_name}-%{version}
++++++ capistrano-harrow-0.5.2.gem -> capistrano-harrow-0.5.3.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/capistrano/harrow/banner.rb new/lib/capistrano/harrow/banner.rb
--- old/lib/capistrano/harrow/banner.rb 2016-06-21 19:49:32.000000000 +0200
+++ new/lib/capistrano/harrow/banner.rb 2016-07-28 09:28:11.000000000 +0200
@@ -22,17 +22,7 @@
Learn about our web-based collaboration and
automation platform for Capistrano: hrw.io/auto-cap
-},
- %q{
- ___ _ ___ ___ ___ _____ ___ _ _ _ ___
- / __| /_\ | _ \_ _/ __|_ _| _ \ /_\ | \| |/ _ \
- | (__ / _ \| _/| |\__ \ | | | / / _ \| .` | (_) |
- \___/_/ \_\_| |___|___/ |_| |_|_\/_/ \_\_|\_|\___/
-
- Enhance Capistrano with awesome collaboration and
- automation features, learn more at hrw.io/cap-auto
-
-},
+}
]
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/capistrano/harrow/version.rb new/lib/capistrano/harrow/version.rb
--- old/lib/capistrano/harrow/version.rb 2016-06-21 19:49:32.000000000 +0200
+++ new/lib/capistrano/harrow/version.rb 2016-07-28 09:28:11.000000000 +0200
@@ -1,5 +1,5 @@
module Capistrano
module Harrow
- VERSION = "0.5.2"
+ VERSION = "0.5.3"
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-06-21 19:49:32.000000000 +0200
+++ new/metadata 2016-07-28 09:28:11.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: capistrano-harrow
version: !ruby/object:Gem::Version
- version: 0.5.2
+ version: 0.5.3
platform: ruby
authors:
- Lee Hambley
@@ -9,7 +9,7 @@
autorequire:
bindir: exe
cert_chain: []
-date: 2016-06-21 00:00:00.000000000 Z
+date: 2016-07-28 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: bundler
@@ -168,7 +168,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.6.3
+rubygems_version: 2.4.8
signing_key:
specification_version: 4
summary: A plugin to improve the user experience for users of Capistrano and Harrow
1
0
Hello community,
here is the log from the commit of package rubygem-httpclient for openSUSE:Factory checked in at 2016-08-25 09:54:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-httpclient (Old)
and /work/SRC/openSUSE:Factory/.rubygem-httpclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-httpclient"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-httpclient/rubygem-httpclient.changes 2016-05-29 03:13:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-httpclient.new/rubygem-httpclient.changes 2016-08-25 09:55:02.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 8 04:38:16 UTC 2016 - coolo(a)suse.com
+
+- updated to version 2.8.1
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
httpclient-2.8.0.gem
New:
----
httpclient-2.8.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-httpclient.spec ++++++
--- /var/tmp/diff_new_pack.FfPROd/_old 2016-08-25 09:55:03.000000000 +0200
+++ /var/tmp/diff_new_pack.FfPROd/_new 2016-08-25 09:55:03.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-httpclient
-Version: 2.8.0
+Version: 2.8.1
Release: 0
%define mod_name httpclient
%define mod_full_name %{mod_name}-%{version}
++++++ httpclient-2.8.0.gem -> httpclient-2.8.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bin/httpclient new/bin/httpclient
--- old/bin/httpclient 2016-04-24 08:08:06.000000000 +0200
+++ new/bin/httpclient 2016-08-07 09:30:27.000000000 +0200
@@ -20,6 +20,7 @@
url = ARGV.shift
if method && url
client = HTTPClient.new
+ client.strict_response_size_check = true
if method == 'download'
print client.get_content(url)
else
@@ -37,6 +38,7 @@
class Runner
def initialize
@httpclient = HTTPClient.new
+ @httpclient.strict_response_size_check = true
end
def method_missing(msg, *a, &b)
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/http.rb new/lib/httpclient/http.rb
--- old/lib/httpclient/http.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/httpclient/http.rb 2016-08-07 09:30:27.000000000 +0200
@@ -700,8 +700,9 @@
def params_from_file(value)
params = {}
+ original_filename = value.respond_to?(:original_filename) ? value.original_filename : nil
path = value.respond_to?(:path) ? value.path : nil
- params['filename'] = File.basename(path || '')
+ params['filename'] = original_filename || File.basename(path || '')
# Creation time is not available from File::Stat
if value.respond_to?(:mtime)
params['modification-date'] = value.mtime.rfc822
@@ -808,6 +809,8 @@
case path
when /\.txt$/i
'text/plain'
+ when /\.xml$/i
+ 'text/xml'
when /\.(htm|html)$/i
'text/html'
when /\.doc$/i
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/jruby_ssl_socket.rb new/lib/httpclient/jruby_ssl_socket.rb
--- old/lib/httpclient/jruby_ssl_socket.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/httpclient/jruby_ssl_socket.rb 2016-08-07 09:30:27.000000000 +0200
@@ -289,11 +289,11 @@
@keystore.load(nil)
end
- def add(cert_file, key_file, password)
- cert_str = cert_file.respond_to?(:to_pem) ? cert_file.to_pem : File.read(cert_file.to_s)
+ def add(cert_source, key_source, password)
+ cert_str = cert_source.respond_to?(:to_pem) ? cert_source.to_pem : File.read(cert_source.to_s)
cert = PEMUtils.read_certificate(cert_str)
@keystore.setCertificateEntry('client_cert', cert)
- key_str = key_file.respond_to?(:to_pem) ? key_file.to_pem : File.read(key_file.to_s)
+ key_str = key_source.respond_to?(:to_pem) ? key_source.to_pem : File.read(key_source.to_s)
key_pair = PEMUtils.read_private_key(key_str, password)
@keystore.setKeyEntry('client_key', key_pair.getPrivate, PASSWORD, [cert].to_java(Certificate))
end
@@ -312,20 +312,21 @@
@size = 0
end
- def add(file_or_dir)
- return if file_or_dir == :default
- if File.directory?(file_or_dir)
- warn("#{file_or_dir}: directory not yet supported")
+ def add(cert_source)
+ return if cert_source == :default
+ if cert_source.respond_to?(:to_pem)
+ pem = cert_source.to_pem
+ elsif File.directory?(cert_source)
+ warn("#{cert_source}: directory not yet supported")
+ return
else
pem = nil
- File.read(file_or_dir).each_line do |line|
+ File.read(cert_source).each_line do |line|
case line
when /-----BEGIN CERTIFICATE-----/
pem = ''
when /-----END CERTIFICATE-----/
- cert = PEMUtils.read_certificate(pem)
- @size += 1
- @trust_store.setCertificateEntry("cert_#{@size}", cert)
+ break
else
if pem
pem << line
@@ -333,6 +334,9 @@
end
end
end
+ cert = PEMUtils.read_certificate(pem)
+ @size += 1
+ @trust_store.setCertificateEntry("cert_#{@size}", cert)
end
def trust_store
@@ -442,12 +446,12 @@
new(socket, session.dest, session.ssl_config, session.debug_dev)
end
- DEFAULT_SSL_PROTOCOL = 'TLS'
+ DEFAULT_SSL_PROTOCOL = (java.lang.System.getProperty('java.specification.version') == '1.7') ? 'TLSv1.2' : 'TLS'
def initialize(socket, dest, config, debug_dev = nil)
if config.ssl_version == :auto
ssl_version = DEFAULT_SSL_PROTOCOL
else
- ssl_version = config.ssl_version.to_s.gsub(/_/, '.')
+ ssl_version = config.ssl_version.to_s.tr('_', '.')
end
unless config.cert_store_crl_items.empty?
raise NotImplementedError.new('Manual CRL configuration is not yet supported')
@@ -464,7 +468,7 @@
trust_store = nil
verify_callback = config.verify_callback || config.method(:default_verify_callback)
- if config.verify_mode == nil
+ if !config.verify?
tmf = VerifyNoneTrustManagerFactory.new(verify_callback)
else
tmf = SystemTrustManagerFactory.new(verify_callback)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/session.rb new/lib/httpclient/session.rb
--- old/lib/httpclient/session.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/httpclient/session.rb 2016-08-07 09:30:27.000000000 +0200
@@ -115,6 +115,9 @@
attr_accessor :read_block_size
attr_accessor :protocol_retry_count
+ # Raise BadResponseError if response size does not match with Content-Length header in response.
+ attr_accessor :strict_response_size_check
+
# Local address to bind local side of the socket to
attr_accessor :socket_local
@@ -148,6 +151,7 @@
@test_loopback_http_response = []
@transparent_gzip_decompression = false
+ @strict_response_size_check = false
@socket_local = Site.new
@sess_pool = {}
@@ -221,6 +225,7 @@
sess.protocol_retry_count = @protocol_retry_count
sess.ssl_config = @ssl_config
sess.debug_dev = @debug_dev
+ sess.strict_response_size_check = @strict_response_size_check
sess.socket_local = @socket_local
sess.test_loopback_http_response = @test_loopback_http_response
sess.transparent_gzip_decompression = @transparent_gzip_decompression
@@ -444,6 +449,7 @@
attr_accessor :read_block_size
attr_accessor :protocol_retry_count
+ attr_accessor :strict_response_size_check
attr_accessor :socket_local
attr_accessor :ssl_config
@@ -473,6 +479,7 @@
@ssl_peer_cert = nil
@test_loopback_http_response = nil
+ @strict_response_size_check = false
@socket_local = Site::EMPTY
@agent_name = agent_name
@@ -871,6 +878,9 @@
rescue EOFError
close
buf = nil
+ if @strict_response_size_check
+ raise BadResponseError.new("EOF while reading rest #{@content_length} bytes")
+ end
end
end
if buf && buf.bytesize > 0
@@ -887,18 +897,18 @@
def read_body_chunked(&block)
buf = empty_bin_str
while true
- len = @socket.gets(RS)
- if len.nil? # EOF
- close
- return
- end
- @chunk_length = len.hex
- if @chunk_length == 0
- @content_length = 0
- @socket.gets(RS)
- return
- end
::Timeout.timeout(@receive_timeout, ReceiveTimeoutError) do
+ len = @socket.gets(RS)
+ if len.nil? # EOF
+ close
+ return
+ end
+ @chunk_length = len.hex
+ if @chunk_length == 0
+ @content_length = 0
+ @socket.gets(RS)
+ return
+ end
@socket.read(@chunk_length, buf)
@socket.read(2)
end
@@ -920,6 +930,9 @@
@socket.readpartial(@read_block_size, buf)
rescue EOFError
buf = nil
+ if @strict_response_size_check
+ raise BadResponseError.new("EOF while reading chunked response")
+ end
end
end
if buf && buf.bytesize > 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/ssl_config.rb new/lib/httpclient/ssl_config.rb
--- old/lib/httpclient/ssl_config.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/httpclient/ssl_config.rb 2016-08-07 09:30:27.000000000 +0200
@@ -36,7 +36,30 @@
# then add_trust_ca for that purpose.
class SSLConfig
include HTTPClient::Util
- include OpenSSL if SSLEnabled
+ if SSLEnabled
+ include OpenSSL
+
+ module ::OpenSSL
+ module X509
+ class Store
+ attr_reader :_httpclient_cert_store_items
+
+ def initialize(*a, &b)
+ super(*a, &b)
+ @_httpclient_cert_store_items = [ENV['SSL_CERT_FILE'] || :default]
+ end
+
+ [:add_cert, :add_file, :add_path].each do |m|
+ wrapped = instance_method(m)
+ define_method(m) do |cert|
+ wrapped.bind(self).call(cert)
+ @_httpclient_cert_store_items << cert
+ end
+ end
+ end
+ end
+ end
+ end
CIPHERS_DEFAULT = "ALL:!aNULL:!eNULL:!SSLv2" # OpenSSL >1.0.0 default
@@ -89,7 +112,7 @@
attr_reader :client_ca # :nodoc:
# These array keeps original files/dirs that was added to @cert_store
- attr_reader :cert_store_items
+ def cert_store_items; @cert_store._httpclient_cert_store_items; end
attr_reader :cert_store_crl_items
# Creates a SSLConfig.
@@ -97,7 +120,6 @@
return unless SSLEnabled
@client = client
@cert_store = X509::Store.new
- @cert_store_items = [:default]
@cert_store_crl_items = []
@client_cert = @client_key = @client_ca = nil
@verify_mode = SSL::VERIFY_PEER | SSL::VERIFY_FAIL_IF_NO_PEER_CERT
@@ -170,7 +192,6 @@
@cacerts_loaded = true # avoid lazy override
@cert_store = X509::Store.new
@cert_store.set_default_paths
- @cert_store_items = [ENV['SSL_CERT_FILE'] || :default]
change_notify
end
@@ -181,7 +202,7 @@
def clear_cert_store
@cacerts_loaded = true # avoid lazy override
@cert_store = X509::Store.new
- @cert_store_items.clear
+ @cert_store._httpclient_cert_store_items.clear
change_notify
end
@@ -192,7 +213,6 @@
def cert_store=(cert_store)
@cacerts_loaded = true # avoid lazy override
@cert_store = cert_store
- @cert_store_items.clear
change_notify
end
@@ -209,7 +229,6 @@
end
@cacerts_loaded = true # avoid lazy override
add_trust_ca_to_store(@cert_store, trust_ca_file_or_hashed_dir)
- @cert_store_items << trust_ca_file_or_hashed_dir
change_notify
end
alias set_trust_ca add_trust_ca
@@ -308,6 +327,10 @@
change_notify
end
+ def verify?
+ @verify_mode && (@verify_mode & OpenSSL::SSL::VERIFY_PEER != 0)
+ end
+
# interfaces for SSLSocket.
def set_context(ctx) # :nodoc:
load_trust_ca unless @cacerts_loaded
@@ -445,11 +468,7 @@
def load_cacerts(cert_store)
ver = OpenSSL::OPENSSL_VERSION
file = File.join(File.dirname(__FILE__), 'cacert.pem')
- unless defined?(JRuby)
- # JRuby uses @cert_store_items
- add_trust_ca_to_store(cert_store, file)
- end
- @cert_store_items << file
+ add_trust_ca_to_store(cert_store, file)
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/version.rb new/lib/httpclient/version.rb
--- old/lib/httpclient/version.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/httpclient/version.rb 2016-08-07 09:30:27.000000000 +0200
@@ -1,3 +1,3 @@
class HTTPClient
- VERSION = '2.8.0'
+ VERSION = '2.8.1'
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/webagent-cookie.rb new/lib/httpclient/webagent-cookie.rb
--- old/lib/httpclient/webagent-cookie.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/httpclient/webagent-cookie.rb 2016-08-07 09:30:27.000000000 +0200
@@ -342,7 +342,7 @@
cookie.domain_orig = given.domain
cookie.path_orig = given.path
- if cookie.discard? || cookie.expires == nil
+ if cookie.discard? || cookie.expires.nil?
cookie.discard = true
else
cookie.discard = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient.rb new/lib/httpclient.rb
--- old/lib/httpclient.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/httpclient.rb 2016-08-07 09:30:27.000000000 +0200
@@ -309,7 +309,6 @@
if assignable
aname = name + '='
define_method(aname) { |rhs|
- reset_all
@session_manager.__send__(aname, rhs)
}
end
@@ -365,6 +364,9 @@
attr_proxy(:test_loopback_http_response)
# Decompress a compressed (with gzip or deflate) content body transparently. false by default.
attr_proxy(:transparent_gzip_decompression, true)
+ # Raise BadResponseError if response size does not match with Content-Length header in response. false by default.
+ # TODO: enable by default
+ attr_proxy(:strict_response_size_check, true)
# Local socket address. Set HTTPClient#socket_local.host and HTTPClient#socket_local.port to specify local binding hostname and port of TCP socket.
attr_proxy(:socket_local, true)
@@ -844,13 +846,7 @@
end
uri = to_resource_url(uri)
if block
- if block.arity == 1
- filtered_block = proc { |res, str|
- block.call(str)
- }
- else
- filtered_block = block
- end
+ filtered_block = adapt_block(&block)
end
if follow_redirect
follow_redirect(method, uri, query, body, header, &block)
@@ -1082,11 +1078,17 @@
ENV[name.downcase] || ENV[name.upcase]
end
+ def adapt_block(&block)
+ return block if block.arity == 2
+ proc { |r, str| block.call(str) }
+ end
+
def follow_redirect(method, uri, query, body, header, &block)
uri = to_resource_url(uri)
if block
+ b = adapt_block(&block)
filtered_block = proc { |r, str|
- block.call(str) if r.ok?
+ b.call(r, str) if r.ok?
}
end
if HTTP::Message.file?(body)
@@ -1270,6 +1272,7 @@
return
end
piper, pipew = IO.pipe
+ pipew.binmode
res = HTTP::Message.new_response(piper, req.header)
@debug_dev << "= Request\n\n" if @debug_dev
sess = @session_manager.query(req, proxy)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/oauthclient.rb new/lib/oauthclient.rb
--- old/lib/oauthclient.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/lib/oauthclient.rb 2016-08-07 09:30:27.000000000 +0200
@@ -33,6 +33,7 @@
@oauth_config = HTTPClient::OAuth::Config.new
self.www_auth.oauth.set_config(nil, @oauth_config)
self.www_auth.oauth.challenge(nil)
+ self.strict_response_size_check = true
end
# Get request token.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-04-24 08:08:06.000000000 +0200
+++ new/metadata 2016-08-07 09:30:27.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: httpclient
version: !ruby/object:Gem::Version
- version: 2.8.0
+ version: 2.8.1
platform: ruby
authors:
- Hiroshi Nakamura
autorequire:
bindir: bin
cert_chain: []
-date: 2016-04-24 00:00:00.000000000 Z
+date: 2016-08-07 00:00:00.000000000 Z
dependencies: []
description:
email: nahi(a)ruby-lang.org
@@ -103,7 +103,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.5.1
+rubygems_version: 2.4.5.1
signing_key:
specification_version: 4
summary: gives something like the functionality of libwww-perl (LWP) in Ruby
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_auth.rb new/test/test_auth.rb
--- old/test/test_auth.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/test/test_auth.rb 2016-08-07 09:30:27.000000000 +0200
@@ -2,7 +2,6 @@
require 'digest/md5'
require 'rack'
require 'rack/lint'
-require 'rack/showexceptions'
require 'rack-ntlm'
class TestAuth < Test::Unit::TestCase
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_http-access2.rb new/test/test_http-access2.rb
--- old/test/test_http-access2.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/test/test_http-access2.rb 2016-08-07 09:30:27.000000000 +0200
@@ -347,11 +347,13 @@
def test_receive_timeout
# this test takes 2 sec
assert_equal('hello', @client.get_content(serverurl + 'sleep?sec=2'))
+ @client.reset_all
@client.receive_timeout = 1
assert_equal('hello', @client.get_content(serverurl + 'sleep?sec=0'))
assert_raise(HTTPClient::ReceiveTimeoutError) do
@client.get_content(serverurl + 'sleep?sec=2')
end
+ @client.reset_all
@client.receive_timeout = 3
assert_equal('hello', @client.get_content(serverurl + 'sleep?sec=2'))
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_httpclient.rb new/test/test_httpclient.rb
--- old/test/test_httpclient.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/test/test_httpclient.rb 2016-08-07 09:30:27.000000000 +0200
@@ -609,10 +609,12 @@
assert_not_equal('hello', content)
assert_equal(GZIP_CONTENT, content)
@client.transparent_gzip_decompression = true
+ @client.reset_all
assert_equal('hello', @client.get_content(serverurl + 'compressed?enc=gzip'))
assert_equal('hello', @client.get_content(serverurl + 'compressed?enc=deflate'))
assert_equal('hello', @client.get_content(serverurl + 'compressed?enc=deflate_noheader'))
@client.transparent_gzip_decompression = false
+ @client.reset_all
end
def test_get_content_with_block
@@ -765,6 +767,22 @@
assert_equal(1000*1000, res.content.read.length)
end
+ if RUBY_VERSION > "1.9"
+ def test_post_async_with_default_internal
+ original_encoding = Encoding.default_internal
+ Encoding.default_internal = Encoding::UTF_8
+ begin
+ post_body = StringIO.new("こんにちは")
+ conn = @client.post_async(serverurl + 'servlet', post_body)
+ Thread.pass while !conn.finished?
+ res = conn.pop
+ assert_equal 'post,こんにちは', res.content.read
+ ensure
+ Encoding.default_internal = original_encoding
+ end
+ end
+ end
+
def test_get_with_block
called = false
res = @client.get(serverurl + 'servlet') { |str|
@@ -788,6 +806,29 @@
assert_nil(res.content)
end
+ def test_get_with_block_and_redirects
+ called = false
+ res = @client.get(serverurl + 'servlet', :follow_redirect => true) { |str|
+ assert_equal('get', str)
+ called = true
+ }
+ assert(called)
+ # res does not have a content
+ assert_nil(res.content)
+ end
+
+ def test_get_with_block_arity_2_and_redirects
+ called = false
+ res = @client.get(serverurl + 'servlet', :follow_redirect => true) { |blk_res, str|
+ assert_equal(200, blk_res.status)
+ assert_equal('get', str)
+ called = true
+ }
+ assert(called)
+ # res does not have a content
+ assert_nil(res.content)
+ end
+
def test_get_with_block_string_recycle
@client.read_block_size = 2
body = []
@@ -1032,6 +1073,10 @@
def test_post_with_custom_multipart_and_file
STDOUT.sync = true
File.open(__FILE__) do |file|
+ def file.original_filename
+ 'file.txt'
+ end
+
ext = { 'Content-Type' => 'multipart/alternative' }
body = [{ 'Content-Type' => 'text/plain', :content => "this is only a test" },
{ 'Content-Type' => 'application/x-ruby', :content => file }]
@@ -1039,6 +1084,7 @@
assert_match(/^Content-Type: text\/plain\r\n/m, res.content)
assert_match(/^this is only a test\r\n/m, res.content)
assert_match(/^Content-Type: application\/x-ruby\r\n/m, res.content)
+ assert_match(/Content-Disposition: form-data; name="3"; filename="file.txt"/, res.content)
assert_match(/FIND_TAG_IN_THIS_FILE/, res.content)
end
end
@@ -1311,11 +1357,13 @@
# this test takes 2 sec
assert_equal('hello?sec=2', @client.get_content(serverurl + 'sleep?sec=2'))
@client.receive_timeout = 1
+ @client.reset_all
assert_equal('hello?sec=0', @client.get_content(serverurl + 'sleep?sec=0'))
assert_raise(HTTPClient::ReceiveTimeoutError) do
@client.get_content(serverurl + 'sleep?sec=2')
end
@client.receive_timeout = 3
+ @client.reset_all
assert_equal('hello?sec=2', @client.get_content(serverurl + 'sleep?sec=2'))
end
@@ -1323,11 +1371,13 @@
# this test takes 2 sec
assert_equal('hello', @client.post(serverurl + 'sleep', :sec => 2).content)
@client.receive_timeout = 1
+ @client.reset_all
assert_equal('hello', @client.post(serverurl + 'sleep', :sec => 0).content)
assert_raise(HTTPClient::ReceiveTimeoutError) do
@client.post(serverurl + 'sleep', :sec => 2)
end
@client.receive_timeout = 3
+ @client.reset_all
assert_equal('hello', @client.post(serverurl + 'sleep', :sec => 2).content)
end
@@ -1486,6 +1536,7 @@
assert_equal('text/plain', HTTP::Message.mime_type('foo.txt'))
assert_equal('text/html', HTTP::Message.mime_type('foo.html'))
assert_equal('text/html', HTTP::Message.mime_type('foo.htm'))
+ assert_equal('text/xml', HTTP::Message.mime_type('foo.xml'))
assert_equal('application/msword', HTTP::Message.mime_type('foo.doc'))
assert_equal('image/png', HTTP::Message.mime_type('foo.png'))
assert_equal('image/gif', HTTP::Message.mime_type('foo.gif'))
@@ -1779,6 +1830,19 @@
end
end
+ def test_strict_response_size_check
+ @client.strict_response_size_check = false
+ @client.test_loopback_http_response << "HTTP/1.0 200 OK\r\nContent-Length: 12345\r\n\r\nhello world"
+ assert_equal('hello world', @client.get_content('http://dummy'))
+
+ @client.reset_all
+ @client.strict_response_size_check = true
+ @client.test_loopback_http_response << "HTTP/1.0 200 OK\r\nContent-Length: 12345\r\n\r\nhello world"
+ assert_raise(HTTPClient::BadResponseError) do
+ @client.get_content('http://dummy')
+ end
+ end
+
def test_socket_local
@client.socket_local.host = '127.0.0.1'
assert_equal('hello', @client.get_content(serverurl + 'hello'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_ssl.rb new/test/test_ssl.rb
--- old/test/test_ssl.rb 2016-04-24 08:08:06.000000000 +0200
+++ new/test/test_ssl.rb 2016-08-07 09:30:27.000000000 +0200
@@ -149,6 +149,22 @@
#
cfg.verify_mode = nil
assert_equal("hello", @client.get_content(@url))
+ cfg.verify_mode = OpenSSL::SSL::VERIFY_NONE
+ assert_equal("hello", @client.get_content(@url))
+ end
+
+ def test_cert_store
+ cfg = @client.ssl_config
+ cfg.cert_store.add_cert(cert('ca.cert'))
+ begin
+ @client.get(@url)
+ assert(false)
+ rescue OpenSSL::SSL::SSLError => ssle
+ assert_match(/(certificate verify failed|unable to find valid certification path to requested target)/, ssle.message)
+ end
+ #
+ cfg.cert_store.add_cert(cert('subca.cert'))
+ assert_equal("hello", @client.get_content(@url))
end
if defined?(HTTPClient::JRubySSLSocket)
@@ -237,7 +253,7 @@
def test_use_higher_TLS
omit('TODO: it does not pass with Java 7 or old openssl ')
teardown_server
- setup_server_with_ssl_version(:TLSv1_2)
+ setup_server_with_ssl_version('TLSv1_2')
assert_nothing_raised do
@client.ssl_config.verify_mode = nil
@client.get("https://localhost:#{serverport}/hello")
@@ -288,6 +304,10 @@
end
def setup_server_with_ssl_version(ssl_version)
+ # JRubyOpenSSL does not support "TLSv1_2" as an known version, and some JCE provides TLS v1.2 as "TLSv1.2" not "TLSv1_2"
+ if RUBY_ENGINE == 'jruby' && ['TLSv1_1', 'TLSv1_2'].include?(ssl_version)
+ ssl_version = ssl_version.tr('_', '.')
+ end
logger = Logger.new(STDERR)
logger.level = Logger::Severity::FATAL # avoid logging SSLError (ERROR level)
@server = WEBrick::HTTPServer.new(
1
0