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
January 2016
- 1 participants
- 1523 discussions
Hello community,
here is the log from the commit of package libplatform for openSUSE:Factory checked in at 2016-01-05 21:54:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libplatform (Old)
and /work/SRC/openSUSE:Factory/.libplatform.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libplatform"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libplatform/libplatform.changes 2015-07-21 13:29:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libplatform.new/libplatform.changes 2016-01-05 21:55:05.000000000 +0100
@@ -1,0 +2,5 @@
+Sat Jan 2 16:47:41 UTC 2016 - mpluskal(a)suse.com
+
+- Fix path to libdir in .pc file (boo#960475)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libplatform.spec ++++++
--- /var/tmp/diff_new_pack.5a6h6f/_old 2016-01-05 21:55:06.000000000 +0100
+++ /var/tmp/diff_new_pack.5a6h6f/_new 2016-01-05 21:55:06.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libplatform
#
-# 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
@@ -43,7 +43,7 @@
%package devel
Summary: Platform support library used by libCEC development files
Group: Development/Languages/C and C++
-Requires: %{name}%{_SO_nr} = %{version}
+Requires: %{name}%{_SO_nr} = %{version}-%{release}
%description devel
Development files for platform support library used by libCEC.
@@ -57,6 +57,8 @@
%install
%cmake_install
+# use correct path to libdir
+sed -i 's|/usr//usr/|/usr/|g' %{buildroot}%{_libdir}/pkgconfig/platform.pc
%post -n %{name}%{_SO_nr} -p /sbin/ldconfig
1
0
Hello community,
here is the log from the commit of package ffmpegthumbs for openSUSE:Factory checked in at 2016-01-05 21:54:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ffmpegthumbs (Old)
and /work/SRC/openSUSE:Factory/.ffmpegthumbs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffmpegthumbs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ffmpegthumbs/ffmpegthumbs.changes 2015-11-15 12:29:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ffmpegthumbs.new/ffmpegthumbs.changes 2016-01-05 21:55:03.000000000 +0100
@@ -1,0 +2,11 @@
+Sun Dec 13 12:56:57 UTC 2015 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.0
+ * KDE Applications 15.12.0
+ * https://www.kde.org/announcements/announce-applications-15.12.0.php
+ * boo#958887
+
+- Drop patch Port-to-Frameworks.patch as that now the official
+ tarball is Frameworks based
+
+-------------------------------------------------------------------
Old:
----
Port-to-Frameworks.patch
ffmpegthumbs-15.08.3.tar.xz
New:
----
ffmpegthumbs-15.12.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ffmpegthumbs.spec ++++++
--- /var/tmp/diff_new_pack.01aKQB/_old 2016-01-05 21:55:05.000000000 +0100
+++ /var/tmp/diff_new_pack.01aKQB/_new 2016-01-05 21:55:05.000000000 +0100
@@ -27,11 +27,9 @@
Summary: FFmpeg-based thumbnail creator for video files
License: LGPL-2.0+
Group: System/GUI/KDE
-Version: 15.08.3
+Version: 15.12.0
Release: 0
Source0: %{name}-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM Port-to-Frameworks.patch -- from frameworks branch
-Patch0: Port-to-Frameworks.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -39,7 +37,6 @@
%prep
%setup
-%patch0 -p1
%build
%cmake_kf5 -d build
++++++ ffmpegthumbs-15.08.3.tar.xz -> ffmpegthumbs-15.12.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ffmpegthumbs-15.08.3/CMakeLists.txt new/ffmpegthumbs-15.12.0/CMakeLists.txt
--- old/ffmpegthumbs-15.08.3/CMakeLists.txt 2015-04-03 06:45:28.000000000 +0200
+++ new/ffmpegthumbs-15.12.0/CMakeLists.txt 2015-11-07 19:53:05.000000000 +0100
@@ -1,13 +1,22 @@
-find_package(KDE4 REQUIRED)
-include(KDE4Defaults)
-include(MacroLibrary)
+project(ffmpegthumbs)
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
+set(QT_MIN_VERSION "5.2.0")
+find_package(ECM 1.0.0 REQUIRED NO_MODULE)
+set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+
+include(FeatureSummary)
+include(WriteBasicConfigVersionFile)
+include(KDEInstallDirs)
+include(KDECMakeSettings)
+include(KDECompilerSettings)
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui)
+find_package(KF5 REQUIRED COMPONENTS KIO)
find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT SWSCALE)
include_directories(
- ${KDE4_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR}
${PC_AVCODEC_INCLUDEDIR}
${PC_AVFORMAT_INCLUDEDIR}
@@ -25,9 +34,9 @@
ffmpegthumbnailer/videothumbnailer.cpp
)
-kde4_add_plugin(ffmpegthumbs ${ffmpegthumbs_PART_SRCS})
+add_library(ffmpegthumbs MODULE ${ffmpegthumbs_PART_SRCS})
-target_link_libraries(ffmpegthumbs ${KDE4_KIO_LIBS} ${AVUTIL_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES} )
+target_link_libraries(ffmpegthumbs Qt5::Gui KF5::KIOWidgets ${AVUTIL_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES} )
install(TARGETS ffmpegthumbs DESTINATION ${PLUGIN_INSTALL_DIR})
@@ -35,6 +44,6 @@
install(FILES ffmpegthumbs.desktop DESTINATION ${SERVICES_INSTALL_DIR})
-if (KDE4_BUILD_TESTS)
- add_subdirectory(tests)
-endif (KDE4_BUILD_TESTS)
+if(BUILD_TESTING)
+ add_subdirectory(tests)
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ffmpegthumbs-15.08.3/ffmpegthumbnailer/imagewriter.cpp new/ffmpegthumbs-15.12.0/ffmpegthumbnailer/imagewriter.cpp
--- old/ffmpegthumbs-15.08.3/ffmpegthumbnailer/imagewriter.cpp 2015-04-03 06:45:28.000000000 +0200
+++ new/ffmpegthumbs-15.12.0/ffmpegthumbnailer/imagewriter.cpp 2015-11-07 19:53:05.000000000 +0100
@@ -15,7 +15,6 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "imagewriter.h"
-#include <kdebug.h>
#include <iostream>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ffmpegthumbs-15.08.3/ffmpegthumbnailer/moviedecoder.cpp new/ffmpegthumbs-15.12.0/ffmpegthumbnailer/moviedecoder.cpp
--- old/ffmpegthumbs-15.08.3/ffmpegthumbnailer/moviedecoder.cpp 2015-04-03 06:45:28.000000000 +0200
+++ new/ffmpegthumbs-15.12.0/ffmpegthumbnailer/moviedecoder.cpp 2015-11-07 19:53:05.000000000 +0100
@@ -16,7 +16,7 @@
#include "moviedecoder.h"
-#include <kdebug.h>
+#include <QDebug>
#include <QFileInfo>
extern "C" {
@@ -57,12 +57,12 @@
QFileInfo fileInfo(filename);
if ((!m_FormatContextWasGiven) && avformat_open_input(&m_pFormatContext, fileInfo.absoluteFilePath().toLocal8Bit().data(), NULL, NULL) != 0) {
- kDebug() << "Could not open input file: " << fileInfo.absoluteFilePath();
+ qDebug() << "Could not open input file: " << fileInfo.absoluteFilePath();
return;
}
if (avformat_find_stream_info(m_pFormatContext, 0) < 0) {
- kDebug() << "Could not find stream information";
+ qDebug() << "Could not find stream information";
return;
}
@@ -129,7 +129,7 @@
}
if (m_VideoStream == -1) {
- kDebug() << "Could not find video stream";
+ qDebug() << "Could not find video stream";
return;
}
@@ -139,14 +139,14 @@
if (m_pVideoCodec == NULL) {
// set to NULL, otherwise avcodec_close(m_pVideoCodecContext) crashes
m_pVideoCodecContext = NULL;
- kDebug() << "Video Codec not found";
+ qDebug() << "Video Codec not found";
return;
}
m_pVideoCodecContext->workaround_bugs = 1;
if (avcodec_open2(m_pVideoCodecContext, m_pVideoCodec, 0) < 0) {
- kDebug() << "Could not open video codec";
+ qDebug() << "Could not open video codec";
}
}
@@ -193,7 +193,7 @@
if (ret >= 0) {
avcodec_flush_buffers(m_pFormatContext->streams[m_VideoStream]->codec);
} else {
- kDebug() << "Seeking in video failed";
+ qDebug() << "Seeking in video failed";
return;
}
@@ -214,7 +214,7 @@
} while ((!gotFrame || !m_pFrame->key_frame) && keyFrameAttempts < 200);
if (gotFrame == 0) {
- kDebug() << "Seeking in video failed";
+ qDebug() << "Seeking in video failed";
}
}
@@ -228,7 +228,7 @@
}
if (!frameFinished) {
- kDebug() << "decodeVideoFrame() failed: frame not finished";
+ qDebug() << "decodeVideoFrame() failed: frame not finished";
return;
}
}
@@ -250,7 +250,7 @@
#endif
if (bytesDecoded < 0) {
- kDebug() << "Failed to decode video frame: bytesDecoded < 0";
+ qDebug() << "Failed to decode video frame: bytesDecoded < 0";
}
return (frameFinished > 0);
@@ -310,7 +310,7 @@
format, SWS_BICUBIC, NULL, NULL, NULL);
if (NULL == scaleContext) {
- kDebug() << "Failed to create resize context";
+ qDebug() << "Failed to create resize context";
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ffmpegthumbs-15.08.3/ffmpegthumbnailer.cpp new/ffmpegthumbs-15.12.0/ffmpegthumbnailer.cpp
--- old/ffmpegthumbs-15.08.3/ffmpegthumbnailer.cpp 2015-04-03 06:45:28.000000000 +0200
+++ new/ffmpegthumbs-15.12.0/ffmpegthumbnailer.cpp 2015-11-07 19:53:05.000000000 +0100
@@ -15,12 +15,11 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "ffmpegthumbnailer.h"
-#include <kdebug.h>
#include <QImage>
extern "C"
{
- KDE_EXPORT ThumbCreator* new_creator()
+ Q_DECL_EXPORT ThumbCreator *new_creator()
{
return new FFMpegThumbnailer();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ffmpegthumbs-15.08.3/tests/CMakeLists.txt new/ffmpegthumbs-15.12.0/tests/CMakeLists.txt
--- old/ffmpegthumbs-15.08.3/tests/CMakeLists.txt 2015-04-03 06:45:28.000000000 +0200
+++ new/ffmpegthumbs-15.12.0/tests/CMakeLists.txt 2015-11-07 19:53:05.000000000 +0100
@@ -17,9 +17,9 @@
)
-kde4_add_executable(ffmpegthumbtest ${ffmpegthumbtest_SRCS} )
+add_executable(ffmpegthumbtest ${ffmpegthumbtest_SRCS} )
-target_link_libraries(ffmpegthumbtest ${KDE4_KDECORE_LIBS} ${KDE4_KIO_LIBS} ${AVUTIL_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES})
+target_link_libraries(ffmpegthumbtest Qt5::Gui KF5::KIOWidgets ${AVUTIL_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES})
1
0
Hello community,
here is the log from the commit of package ez-ipupdate for openSUSE:Factory checked in at 2016-01-05 21:54:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ez-ipupdate (Old)
and /work/SRC/openSUSE:Factory/.ez-ipupdate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ez-ipupdate"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ez-ipupdate/ez-ipupdate.changes 2015-11-12 19:40:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ez-ipupdate.new/ez-ipupdate.changes 2016-01-05 21:55:02.000000000 +0100
@@ -1,0 +2,7 @@
+Sat Dec 26 09:01:29 UTC 2015 - obs(a)botter.cc
+
+- fix location of configuration file in systemd service file
+ (boo#954439)
+- cosmetic change to rundir name (remove leading slash)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ez-ipupdate.spec ++++++
--- /var/tmp/diff_new_pack.UfYcCn/_old 2016-01-05 21:55:03.000000000 +0100
+++ /var/tmp/diff_new_pack.UfYcCn/_new 2016-01-05 21:55:03.000000000 +0100
@@ -51,6 +51,10 @@
%endif
%{!?tmpfiles_create:%global tmpfiles_create systemd-tmpfiles --create}
+%if ! %{defined _rundir}
+%define _rundir %{_localstatedir}/run
+%endif
+
%description
ez-ipupdate is a small utility for updating your hostname for any of
the dynamic DNS services offered at:
@@ -114,10 +118,10 @@
install -m 600 %{SOURCE2} %{buildroot}%{_sysconfdir}/ez-ipupdate.conf
%if 0%{?suse_version} >=1230
install -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/ez-ipupdate.service
-sed -i -e 's,/run/,/%{_rundir}/,g' %{buildroot}%{_unitdir}/ez-ipupdate.service
+sed -i -e 's,/run/,%{_rundir}/,g' %{buildroot}%{_unitdir}/ez-ipupdate.service
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcez-ipupdate
install -D -m0644 %{SOURCE4} %{buildroot}/%{_prefix}/lib/tmpfiles.d/%{name}.conf
-sed -i -e 's,/run/,/%{_rundir}/,g' %{buildroot}/%{_prefix}/lib/tmpfiles.d/%{name}.conf
+sed -i -e 's,/run/,%{_rundir}/,g' %{buildroot}/%{_prefix}/lib/tmpfiles.d/%{name}.conf
%else
install -m 755 %{SOURCE1} %{buildroot}%{_sysconfdir}/init.d/ez-ipupdate
ln -sf %{_initddir}/ez-ipupdate %{buildroot}%{_sbindir}/rcez-ipupdate
++++++ ez-ipupdate.service ++++++
--- /var/tmp/diff_new_pack.UfYcCn/_old 2016-01-05 21:55:03.000000000 +0100
+++ /var/tmp/diff_new_pack.UfYcCn/_new 2016-01-05 21:55:03.000000000 +0100
@@ -5,7 +5,7 @@
[Service]
Type=forking
PIDFile=/run/ez-ipupdate/ez-ipupdate.pid
-ExecStart=/usr/bin/ez-ipupdate --daemon --config-file /etc/ez-ipupdate/default.conf --pid-file /run/ez-ipupdate/ez-ipupdate.pid
+ExecStart=/usr/bin/ez-ipupdate --daemon --config-file /etc/ez-ipupdate.conf --pid-file /run/ez-ipupdate/ez-ipupdate.pid
[Install]
WantedBy=multi-user.target
1
0
Hello community,
here is the log from the commit of package skiboot for openSUSE:Factory checked in at 2016-01-05 21:54:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/skiboot (Old)
and /work/SRC/openSUSE:Factory/.skiboot.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "skiboot"
Changes:
--------
--- /work/SRC/openSUSE:Factory/skiboot/skiboot.changes 2015-11-11 10:30:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.skiboot.new/skiboot.changes 2016-01-05 21:55:00.000000000 +0100
@@ -1,0 +2,24 @@
+Sat Jan 2 10:08:58 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 5.1.12
+ * opal-prd:
+ + Display an explict and obvious message if running on a
+ system that does not support opal-prd, such as an IBM FSP
+ based POWER system, where the FSP takes on the role of
+ opal-prd.
+ * pflash:
+ + Fix a missing (C) header
+ + cherry-picked from master.
+ * General:
+ + Don't link with libgcc
+ + On some toolchains, we don't have libgcc available.
+ * POWER8 PHB (PCIe) specific:
+ + hw/phb3: Flush cache line after updating P/Q bits
+ + When doing an MSI EOI, we update the P and Q bits in the
+ IVE.
+ * IBM FSP based machines:
+ + FSP: Give up PSI link on shutdown This clears up some
+ erroneous SRCs (error logs) in some situations.
+ + Correctly report back Real Time Clock errors to host.
+
+-------------------------------------------------------------------
Old:
----
skiboot-5.1.8.tar.gz
New:
----
skiboot-5.1.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ skiboot.spec ++++++
--- /var/tmp/diff_new_pack.nO7LD3/_old 2016-01-05 21:55:01.000000000 +0100
+++ /var/tmp/diff_new_pack.nO7LD3/_new 2016-01-05 21:55:01.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package skiboot
#
-# 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: skiboot
-Version: 5.1.8
+Version: 5.1.12
Release: 0
Summary: Tools for OpenPower platform
License: Apache-2.0
@@ -28,8 +28,8 @@
Source2: opal-prd.socket
BuildRequires: linux-glibc-devel
BuildRequires: systemd-rpm-macros
-%{?systemd_requires}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%{?systemd_requires}
ExclusiveArch: ppc64 ppc64le
%description
@@ -63,11 +63,11 @@
make %{?_smp_mflags} -C external/gard/
%install
-make install DESTDIR=%{buildroot} %{?_smp_mflags} -C external/opal-prd/ prefix=/usr install
-make install DESTDIR=%{buildroot} %{?_smp_mflags} -C external/gard/ prefix=/usr install
+make install DESTDIR=%{buildroot} %{?_smp_mflags} -C external/opal-prd/ prefix=%{_prefix} install
+make install DESTDIR=%{buildroot} %{?_smp_mflags} -C external/gard/ prefix=%{_prefix} install
mkdir -p %{buildroot}/%{_unitdir}
-%__install -D -m 444 %{S:1} %{S:2} %{buildroot}%{_unitdir}/
+install -D -m 444 %{SOURCE1} %{SOURCE2} %{buildroot}%{_unitdir}/
%pre -n opal-prd
%service_add_pre opal-prd.service opal-prd.socket
@@ -85,7 +85,7 @@
%defattr(-,root,root)
%doc README
%{_sbindir}/opal-prd
-%{_datadir}/man/man8/opal-prd.8.gz
+%{_mandir}/man8/opal-prd.8.gz
%{_unitdir}/opal-prd.service
%{_unitdir}/opal-prd.socket
@@ -93,6 +93,6 @@
%defattr(-,root,root)
%doc README
%{_sbindir}/opal-gard
-%{_datadir}/man/man1/opal-gard.1.gz
+%{_mandir}/man1/opal-gard.1.gz
%changelog
++++++ skiboot-5.1.8.tar.gz -> skiboot-5.1.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/Makefile.main new/skiboot-skiboot-5.1.12/Makefile.main
--- old/skiboot-skiboot-5.1.8/Makefile.main 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/Makefile.main 2015-12-04 05:45:07.000000000 +0100
@@ -157,7 +157,6 @@
endif
OBJS += $(LIBC) $(CCAN) $(DEVSRC_OBJ)
OBJS_NO_VER = $(OBJS)
-EXTRA_LIBS = -Wl,-lgcc
ALL_OBJS = $(OBJS) version.o
ALL_OBJS_1 = $(ALL_OBJS) asm/dummy_map.o
@@ -167,12 +166,12 @@
$(call Q,OBJCOPY, $(OBJCOPY) -O binary -S $^ $@, $@)
$(TARGET).tmp.elf: $(ALL_OBJS_1) $(TARGET).lds $(KERNEL)
- $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_1) $(EXTRA_LIBS) -o $@, $@)
+ $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_1) -o $@, $@)
asm/real_map.o : $(TARGET).tmp.map
$(TARGET).elf: $(ALL_OBJS_2) $(TARGET).lds $(KERNEL)
- $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_2) $(EXTRA_LIBS) -o $@, $@)
+ $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_2) -o $@, $@)
$(SUBDIRS):
$(call Q,MKDIR,mkdir $@, $@)
@@ -204,8 +203,8 @@
extract-gcov: extract-gcov.c
$(call Q, HOSTCC ,$(HOSTCC) $(HOSTCFLAGS) \
-DTARGET__GNUC__=`echo '__GNUC__'|$(CC) -E -|grep -v '^#'` \
- -DTARGET__GNUC_MINOR__=`echo '__GNUC__'|$(CC) -E -|grep -v '^#'` \
- -O0 -g -I$(SRC) -o $@ $<,$<)
+ -DTARGET__GNUC_MINOR__=`echo '__GNUC_MINOR__'|$(CC) -E -|grep -v '^#'` \
+ -Wpadded -O0 -g -I$(SRC) -o $@ $<,$<)
coverage-report: skiboot.info
genhtml --branch-coverage -q -o $@ $<
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/core/console.c new/skiboot-skiboot-5.1.12/core/console.c
--- old/skiboot-skiboot-5.1.8/core/console.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/core/console.c 2015-12-04 05:45:07.000000000 +0100
@@ -290,6 +290,12 @@
return count;
}
+void flush_console_driver(void)
+{
+ if (con_driver && con_driver->flush != NULL)
+ con_driver->flush();
+}
+
void set_console(struct con_ops *driver)
{
con_driver = driver;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/core/hmi.c new/skiboot-skiboot-5.1.12/core/hmi.c
--- old/skiboot-skiboot-5.1.8/core/hmi.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/core/hmi.c 2015-12-04 05:45:07.000000000 +0100
@@ -406,6 +406,17 @@
hmi_evt->u.xstop_error.xstop_reason
|= nx_pbi_xstop_bits[i].reason;
+ /*
+ * Set NXDMAENGFIR[38] to signal PRD that service action is required.
+ * Without this inject, PRD will not be able to do NX unit checkstop
+ * error analysis. NXDMAENGFIR[38] is a spare bit and used to report
+ * a software initiated attention.
+ *
+ * The behavior of this bit and all FIR bits are documented in
+ * RAS spreadsheet.
+ */
+ xscom_write(flat_chip_id, NX_DMA_ENGINE_FIR, PPC_BIT(38));
+
/* Send an HMI event. */
queue_hmi_event(hmi_evt, 0);
*event_generated = 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/core/platform.c new/skiboot-skiboot-5.1.12/core/platform.c
--- old/skiboot-skiboot-5.1.8/core/platform.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/core/platform.c 2015-12-04 05:45:07.000000000 +0100
@@ -37,6 +37,8 @@
{
printf("OPAL: Shutdown request type 0x%llx...\n", request);
+ flush_console_driver();
+
if (platform.cec_power_down)
return platform.cec_power_down(request);
@@ -48,6 +50,8 @@
{
printf("OPAL: Reboot request...\n");
+ flush_console_driver();
+
#ifdef ENABLE_FAST_RESET
/* Try a fast reset first */
fast_reset();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/core/sensor.c new/skiboot-skiboot-5.1.12/core/sensor.c
--- old/skiboot-skiboot-5.1.8/core/sensor.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/core/sensor.c 2015-12-04 05:45:07.000000000 +0100
@@ -39,6 +39,7 @@
{
sensor_node = dt_new(opal_node, "sensors");
+ dt_add_property_string(sensor_node, "compatible", "ibm,opal-sensor");
dts_sensor_create_nodes(sensor_node);
/* Register OPAL interface */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.10.txt new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.10.txt
--- old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.10.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.10.txt 2015-12-04 05:45:07.000000000 +0100
@@ -0,0 +1,34 @@
+skiboot-5.1.10
+--------------
+
+skiboot-5.1.10 was released on Friday November 13th, 2015.
+
+skiboot-5.1.10 is the 11th stable release of 5.1, it follows skiboot-5.1.9
+(which was released October 30th, 2015).
+
+Skiboot 5.1.10 contains all fixes from skiboot-5.1.9 and is a minor bug
+fix release.
+
+Over skiboot-5.1.9, we have the following change:
+
+IBM FSP machines:
+- FSP: Handle Delayed Power Off initiated CEC shutdown with FSP in Reset/Reload
+
+ In a scenario where the DPO has been initiated, but the FSP then went into
+ reset before the CEC power down came in, OPAL may not give up the link since
+ it may never see the PSI interrupt. So, if we are in dpo_pending and an FSP
+ reset is detected via the DISR, give up the PSI link voluntarily.
+
+Generic:
+- sensor: add a compatible property
+ OPAL needs an extra compatible property "ibm,opal-sensor" to make
+ module autoload work smoothly in Linux for ibmpowernv driver.
+- console: Completely flush output buffer before power down and reboot
+ Completely flush the output buffer of the console driver before
+ power down and reboot. Implements the flushing function for uart
+ consoles, which includes the astbmc and rhesus platforms.
+
+ This fixes an issue where some console output is sometimes lost before
+ power down or reboot in uart consoles. If this issue is also prevalent
+ in other console types then it can be fixed later by adding a .flush
+ to that driver's con_ops.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.11.txt new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.11.txt
--- old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.11.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.11.txt 2015-12-04 05:45:07.000000000 +0100
@@ -0,0 +1,16 @@
+skiboot-5.1.11
+--------------
+
+skiboot-5.1.11 was released on Friday November 13th, 2015.
+
+Since it was Friday 13th, we had to find a bug right after we tagged
+and released skiboot-5.1.10.
+
+skiboot-5.1.11 is the 12th stable release of 5.1, it follows skiboot-5.1.10
+(which was released November 13th, 2015).
+
+Skiboot 5.1.11 contains one additional bug fix over skiboot-5.1.10.
+
+It is:
+- On IBM FSP machines, if IPMI/Serial console is not connected during shutdown
+ or reboot, machine would enter termination state rather than shut down.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.12.txt new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.12.txt
--- old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.12.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.12.txt 2015-12-04 05:45:07.000000000 +0100
@@ -0,0 +1,44 @@
+skiboot-5.1.12
+--------------
+
+skiboot-5.1.12 was released on Friday December 4th, 2015.
+
+skiboot-5.1.12 is the 13th stable release of 5.1, it follows skiboot-5.1.11
+(which was released November 13th, 2015).
+
+Skiboot 5.1.12 contains bug fixes and a performance improvement.
+
+opal-prd:
+- Display an explict and obvious message if running on a system that does
+ not support opal-prd, such as an IBM FSP based POWER system, where the
+ FSP takes on the role of opal-prd.
+
+pflash:
+- Fix a missing (C) header
+ - cherry-picked from master.
+
+General:
+- Don't link with libgcc
+ - On some toolchains, we don't have libgcc available.
+
+POWER8 PHB (PCIe) specific:
+- hw/phb3: Flush cache line after updating P/Q bits
+ When doing an MSI EOI, we update the P and Q bits in the IVE. That causes
+ the corresponding cache line to be dirty in the L3 which will cause a
+ subsequent update by the PHB (upon recieving the next MSI) to get a few
+ retries until it gets flushed.
+
+ We improve the situation (and thus performance) by doing a dcbf
+ instruction to force a flush of the update we do in SW.
+
+ This improves interrupt performance, reducing latency per interrupt.
+ The improvement will vary by workload.
+
+IBM FSP based machines:
+- FSP: Give up PSI link on shutdown
+ This clears up some erroneous SRCs (error logs) in some situations.
+- Correctly report back Real Time Clock errors to host
+ Under certain rare error conditions, we could return an error code
+ to the host OS that would cause current Linux kernels to get stuck
+ in an infinite loop during boot.
+ This was introduced in skiboot-5.0-rc1.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.9.txt new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.9.txt
--- old/skiboot-skiboot-5.1.8/doc/release-notes/skiboot-5.1.9.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/skiboot-skiboot-5.1.12/doc/release-notes/skiboot-5.1.9.txt 2015-12-04 05:45:07.000000000 +0100
@@ -0,0 +1,16 @@
+skiboot-5.1.9
+-------------
+
+skiboot-5.1.9 was released on October 30th, 2015.
+
+skiboot-5.1.9 is the 10th stable release of 5.1, it follows skiboot-5.1.8
+(which was released October 19th, 2015).
+
+Skiboot 5.1.9 contains all fixes from skiboot-5.1.8 and is a minor bug
+fix release, with a single fix to help diagnosis after a rare error condition.
+
+Over skiboot-5.1.8, we have the following change:
+- opal/hmi: Signal PRD about NX unit checkstop.
+ We now signal Processor Recovery & Diagnostics (PRD) correctly following
+ an NX unit checkstop
+- minor fix to the boot_test.sh test script
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/external/boot-tests/bmc_support.sh new/skiboot-skiboot-5.1.12/external/boot-tests/bmc_support.sh
--- old/skiboot-skiboot-5.1.8/external/boot-tests/bmc_support.sh 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/external/boot-tests/bmc_support.sh 2015-12-04 05:45:07.000000000 +0100
@@ -37,6 +37,7 @@
function flash {
if [ ! -z "$PFLASH_TO_COPY" ]; then
remotecp $PFLASH_TO_COPY $target /tmp/pflash
+ $SSHCMD chmod +x /tmp/pflash
PFLASH_BINARY=/tmp/pflash
fi
if [ ! -z "$PNOR" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/external/opal-prd/opal-prd.c new/skiboot-skiboot-5.1.12/external/opal-prd/opal-prd.c
--- old/skiboot-skiboot-5.1.8/external/opal-prd/opal-prd.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/external/opal-prd/opal-prd.c 2015-12-04 05:45:07.000000000 +0100
@@ -1023,6 +1023,52 @@
return rc;
}
+bool find_string(const char *buffer, size_t len, const char *s)
+{
+ const char *c, *end;
+
+ if (!buffer)
+ return false;
+ c = buffer;
+ end = c + len;
+
+ while (c < end) {
+ if (!strcasecmp(s, c))
+ return true;
+ c += strlen(c) + 1;
+ }
+ return false;
+}
+
+static int is_prd_supported(void)
+{
+ char *path;
+ int rc;
+ int len;
+ char *buf;
+
+ rc = asprintf(&path, "%s/ibm,opal/diagnostics/compatible",
+ devicetree_base);
+ if (rc < 0) {
+ pr_log(LOG_ERR, "FW: error creating 'compatible' node path: %m");
+ return -1;
+ }
+
+ rc = open_and_read(path, (void *) &buf, &len);
+ if (rc)
+ goto out_free;
+
+ if (buf[len - 1] != '\0')
+ pr_log(LOG_INFO, "FW: node %s is not nul-terminated", path);
+
+ rc = find_string(buf, len, "ibm,opal-prd") ? 0 : -1;
+
+ free(buf);
+out_free:
+ free(path);
+ return rc;
+}
+
static int prd_init(struct opal_prd_ctx *ctx)
{
int rc;
@@ -1945,6 +1991,12 @@
action = ACTION_RUN_DAEMON;
}
+ if (is_prd_supported() < 0) {
+ pr_log(LOG_ERR, "CTRL: PowerNV OPAL runtime diagnostic "
+ "is not supported on this system");
+ return -1;
+ }
+
switch (action) {
case ACTION_RUN_DAEMON:
rc = run_prd_daemon(ctx);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/external/pflash/pflash.c new/skiboot-skiboot-5.1.12/external/pflash/pflash.c
--- old/skiboot-skiboot-5.1.8/external/pflash/pflash.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/external/pflash/pflash.c 2015-12-04 05:45:07.000000000 +0100
@@ -1,3 +1,19 @@
+/* Copyright 2013-2015 IBM Corp.
+ *
+ * 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.
+ */
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/extract-gcov.c new/skiboot-skiboot-5.1.12/extract-gcov.c
--- old/skiboot-skiboot-5.1.8/extract-gcov.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/extract-gcov.c 2015-12-04 05:45:07.000000000 +0100
@@ -30,39 +30,48 @@
#include <errno.h>
#include <string.h>
-typedef unsigned int gcov_unsigned_int;
+typedef u32 gcov_unsigned_int;
/* You will need to pass -DTARGET__GNUC__=blah when building */
+#if TARGET__GNUC__ >= 5 && TARGET__GNUC_MINOR__ >= 1
+#define GCOV_COUNTERS 10
+#else
#if TARGET__GNUC__ >= 4 && TARGET__GNUC_MINOR__ >= 9
#define GCOV_COUNTERS 9
#else
#define GCOV_COUNTERS 8
-#endif
+#endif /* GCC 4.9 */
+#endif /* GCC 5.1 */
typedef u64 gcov_type;
struct gcov_info
{
gcov_unsigned_int version;
+ u32 _padding;
struct gcov_info *next;
gcov_unsigned_int stamp;
+ u32 _padding2;
const char *filename;
- void (*merge[GCOV_COUNTERS])(gcov_type *, unsigned int);
+ u64 merge[GCOV_COUNTERS];
unsigned int n_functions;
+ u32 _padding3;
struct gcov_fn_info **functions;
};
struct gcov_ctr_info {
gcov_unsigned_int num;
+ u32 _padding;
gcov_type *values;
-};
+}__attribute__((packed));
struct gcov_fn_info {
const struct gcov_info *key;
unsigned int ident;
unsigned int lineno_checksum;
unsigned int cfg_checksum;
+ u32 _padding;
// struct gcov_ctr_info ctrs[0];
-};
+} __attribute__((packed));
/* We have a list of all gcov info set up at startup */
@@ -137,7 +146,8 @@
write_u32(fd, be32toh(gi->version));
write_u32(fd, be32toh(gi->stamp));
- //printf("nfunctions: %d \n", be32toh(gi->n_functions));
+ printf("version: %x\tstamp: %d\n", be32toh(gi->version), be32toh(gi->stamp));
+ printf("nfunctions: %d \n", be32toh(gi->n_functions));
for(fn = 0; fn < be32toh(gi->n_functions); fn++) {
functions = (struct gcov_fn_info**)
@@ -146,6 +156,8 @@
fn_info = (struct gcov_fn_info*)
SKIBOOT_ADDR(addr, functions[fn]);
+ printf("function: %p\n", (void*)be64toh((u64)functions[fn]));
+
write_u32(fd, GCOV_TAG_FUNCTION);
write_u32(fd, GCOV_TAG_FUNCTION_LENGTH);
write_u32(fd, be32toh(fn_info->ident));
@@ -161,9 +173,8 @@
write_u32(fd, (GCOV_TAG_FOR_COUNTER(ctr)));
write_u32(fd, be32toh(ctr_info->num)*2);
- /* printf(" ctr %d gcov_ctr_info->num %u\n",
- * ctr, be32toh(ctr_info->num));
- */
+ printf(" ctr %d gcov_ctr_info->num %u\n",
+ ctr, be32toh(ctr_info->num));
for(cv = 0; cv < be32toh(ctr_info->num); cv++) {
gcov_type *ctrv = (gcov_type *)
@@ -192,6 +203,8 @@
sizeof(struct gcov_ctr_info),
sizeof(struct gcov_fn_info),
sizeof(struct gcov_info));
+ printf("TARGET GNUC: %d.%d\n", TARGET__GNUC__, TARGET__GNUC_MINOR__);
+ printf("GCOV_COUNTERS: %d\n", GCOV_COUNTERS);
if (argc < 3) {
fprintf(stderr, "Usage:\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/hw/fsp/fsp-dpo.c new/skiboot-skiboot-5.1.12/hw/fsp/fsp-dpo.c
--- old/skiboot-skiboot-5.1.8/hw/fsp/fsp-dpo.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/hw/fsp/fsp-dpo.c 2015-12-04 05:45:07.000000000 +0100
@@ -30,7 +30,7 @@
#define DPO_CMD_SGN_BYTE1 0x20 /* Byte[1] signature */
#define DPO_TIMEOUT 2700 /* 45 minutes in seconds */
-static bool fsp_dpo_pending = false;
+bool fsp_dpo_pending = false;
static unsigned long fsp_dpo_init_tb = 0;
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/hw/fsp/fsp-rtc.c new/skiboot-skiboot-5.1.12/hw/fsp/fsp-rtc.c
--- old/skiboot-skiboot-5.1.8/hw/fsp/fsp-rtc.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/hw/fsp/fsp-rtc.c 2015-12-04 05:45:07.000000000 +0100
@@ -173,19 +173,16 @@
log_simple_error(&e_info(OPAL_RC_RTC_TOD),
"RTC TOD in invalid state\n");
rtc_tod_state = RTC_TOD_INVALID;
- rtc_read_request_state = RTC_READ_NO_REQUEST;
break;
case FSP_STATUS_TOD_PERMANENT_ERROR:
log_simple_error(&e_info(OPAL_RC_RTC_TOD),
"RTC TOD in permanent error state\n");
rtc_tod_state = RTC_TOD_PERMANENT_ERROR;
- rtc_read_request_state = RTC_READ_NO_REQUEST;
break;
case FSP_STATUS_SUCCESS:
/* Save the read RTC value in our cache */
- rtc_read_request_state = RTC_READ_REQUEST_AVAILABLE;
rtc_tod_state = RTC_TOD_VALID;
datetime_to_tm(read_resp->data.words[0],
(u64) read_resp->data.words[1] << 32, &tm);
@@ -199,8 +196,8 @@
log_simple_error(&e_info(OPAL_RC_RTC_TOD),
"RTC TOD read failed: %d\n", val);
rtc_tod_state = RTC_TOD_INVALID;
- rtc_read_request_state = RTC_READ_NO_REQUEST;
}
+ rtc_read_request_state = RTC_READ_REQUEST_AVAILABLE;
}
static void opal_rtc_eval_events(bool read_write)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/hw/fsp/fsp.c new/skiboot-skiboot-5.1.12/hw/fsp/fsp.c
--- old/skiboot-skiboot-5.1.8/hw/fsp/fsp.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/hw/fsp/fsp.c 2015-12-04 05:45:07.000000000 +0100
@@ -569,6 +569,28 @@
*/
}
+/*
+ * Called on normal/quick shutdown to give up the PSI link
+ */
+void fsp_reset_links(void)
+{
+ struct fsp *fsp = fsp_get_active();
+ struct fsp_iopath *iop;
+
+ if (!fsp)
+ return;
+
+ /* Already in one of the error states? */
+ if (fsp_in_hir(fsp) || fsp_in_reset(fsp))
+ return;
+
+ iop = &fsp->iopath[fsp->active_iopath];
+ prlog(PR_NOTICE, "FSP #%d: Host initiated shutdown."
+ " Giving up the PSI link\n", fsp->index);
+ psi_disable_link(iop->psi);
+ return;
+}
+
static void fsp_trace_event(struct fsp *fsp, u32 evt,
u32 data0, u32 data1, u32 data2, u32 data3)
{
@@ -666,9 +688,23 @@
if (fsp->state == fsp_mbx_rr)
return;
- prlog(PR_NOTICE, "FSP #%d: FSP in Reset."
- " Waiting for PSI interrupt\n",
- fsp->index);
+ if (fsp_dpo_pending) {
+ /*
+ * If we are about to process a reset when DPO
+ * is pending, its possible that the host has
+ * gone down, and OPAL is on its way down and
+ * hence will not see the subsequent PSI interrupt.
+ * So, just give up the link here.
+ */
+ prlog(PR_NOTICE, "FSP #%d: FSP reset with DPO pending."
+ " Giving up PSI link\n",
+ fsp->index);
+ psi_disable_link(psi);
+ } else {
+ prlog(PR_NOTICE, "FSP #%d: FSP in Reset."
+ " Waiting for PSI interrupt\n",
+ fsp->index);
+ }
fsp_start_rr(fsp);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/hw/lpc-uart.c new/skiboot-skiboot-5.1.12/hw/lpc-uart.c
--- old/skiboot-skiboot-5.1.8/hw/lpc-uart.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/hw/lpc-uart.c 2015-12-04 05:45:07.000000000 +0100
@@ -156,8 +156,11 @@
return written;
}
+static void uart_con_flush_all(void);
+
static struct con_ops uart_con_driver = {
- .write = uart_con_write
+ .write = uart_con_write,
+ .flush = uart_con_flush_all
};
/*
@@ -376,6 +379,15 @@
}
/*
+ * Flush the entire buffer all at once
+ */
+static void uart_con_flush_all(void)
+{
+ while(out_buf_prod != out_buf_cons)
+ uart_flush_out();
+}
+
+/*
* Common setup/inits
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/hw/phb3.c new/skiboot-skiboot-5.1.12/hw/phb3.c
--- old/skiboot-skiboot-5.1.8/hw/phb3.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/hw/phb3.c 2015-12-04 05:45:07.000000000 +0100
@@ -1035,7 +1035,7 @@
return OPAL_SUCCESS;
}
-static void phb3_pci_msi_check_q(struct phb3 *p, uint32_t ive_num)
+static bool phb3_pci_msi_check_q(struct phb3 *p, uint32_t ive_num)
{
uint64_t ive, ivc, ffi, state;
uint8_t *q_byte;
@@ -1057,7 +1057,7 @@
/* Q still not set, bail out */
if (!(*q_byte & 0x1))
- return;
+ return false;
}
/* Lock FFI and send interrupt */
@@ -1066,7 +1066,7 @@
if (!state)
break;
if (state == ~0ULL) /* PHB Fenced */
- return;
+ return false;
}
/* Clear Q bit and update IVC */
@@ -1082,6 +1082,16 @@
*/
ffi = SETFIELD(PHB_FFI_REQUEST_ISN, 0ul, ive_num) | PHB_FFI_LOCK_CLEAR;
out_be64(p->regs + PHB_FFI_REQUEST, ffi);
+
+ return true;
+}
+
+static void phb3_pci_msi_flush_ive(struct phb3 *p, uint32_t ive_num)
+{
+ asm volatile("dcbf %0,%1"
+ :
+ : "b" (p->tbl_ivt), "r" (ive_num * IVT_TABLE_STRIDE * 8)
+ : "memory");
}
static int64_t phb3_pci_msi_eoi(struct phb *phb,
@@ -1117,6 +1127,8 @@
/* Handle Q bit */
phb3_pci_msi_check_q(p, ive_num);
+ phb3_pci_msi_flush_ive(p, ive_num);
+
return OPAL_SUCCESS;
}
@@ -1627,8 +1639,10 @@
* The OS should make sure the interrupt handler has
* been installed already.
*/
- if (prio != 0xff)
- phb3_pci_msi_check_q(p, ive_num);
+ if (prio != 0xff) {
+ if (phb3_pci_msi_check_q(p, ive_num))
+ phb3_pci_msi_flush_ive(p, ive_num);
+ }
return OPAL_SUCCESS;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/include/console.h new/skiboot-skiboot-5.1.12/include/console.h
--- old/skiboot-skiboot-5.1.8/include/console.h 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/include/console.h 2015-12-04 05:45:07.000000000 +0100
@@ -51,6 +51,7 @@
size_t (*write)(const char *buf, size_t len);
size_t (*read)(char *buf, size_t len);
bool (*poll_read)(void);
+ void (*flush)(void);
};
extern struct lock con_lock;
@@ -61,6 +62,8 @@
extern bool __flush_console(bool flush_to_drivers);
extern void set_console(struct con_ops *driver);
+extern void flush_console_driver(void);
+
extern int mambo_read(void);
extern void mambo_write(const char *buf, size_t count);
extern void enable_mambo_console(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/include/fsp.h new/skiboot-skiboot-5.1.12/include/fsp.h
--- old/skiboot-skiboot-5.1.8/include/fsp.h 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/include/fsp.h 2015-12-04 05:45:07.000000000 +0100
@@ -802,6 +802,7 @@
/* Reset/Reload */
extern void fsp_reinit_fsp(void);
extern void fsp_trigger_reset(void);
+extern void fsp_reset_links(void);
/* FSP memory errors */
extern void fsp_memory_err_init(void);
@@ -823,6 +824,7 @@
/* DPO */
extern void fsp_dpo_init(void);
+extern bool fsp_dpo_pending;
/* Chiptod */
extern void fsp_chiptod_init(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/libflash/ecc.c new/skiboot-skiboot-5.1.12/libflash/ecc.c
--- old/skiboot-skiboot-5.1.8/libflash/ecc.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/libflash/ecc.c 2015-12-04 05:45:07.000000000 +0100
@@ -108,6 +108,22 @@
UE, UE, UE, UE, 4, UE, UE, UE, UE, UE, UE, UE, UE, UE, UE, UE,
};
+static uint8_t parity(uint64_t data)
+{
+#ifdef __SKIBOOT__
+ uint8_t p;
+
+ asm volatile(
+ "popcntb %1,%0\n"
+ "prtyd %1,%1\n"
+ : "=r"(p) : "r"(data));
+
+ return p;
+#else
+ return __builtin_parityl(data);
+#endif
+}
+
/**
* Create the ECC field corresponding to a 8-byte data field
*
@@ -120,7 +136,7 @@
uint8_t result = 0;
for (i = 0; i < 8; i++)
- result |= __builtin_parityl(eccmatrix[i] & data) << i;
+ result |= parity(eccmatrix[i] & data) << i;
return result;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/libflash/file.c new/skiboot-skiboot-5.1.12/libflash/file.c
--- old/skiboot-skiboot-5.1.8/libflash/file.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/libflash/file.c 2015-12-04 05:45:07.000000000 +0100
@@ -277,6 +277,7 @@
{
struct file_data *file_data;
if (bl) {
+ free(bl->ecc_prot.prot);
file_data = container_of(bl, struct file_data, bl);
free(file_data->name);
free(file_data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/platforms/ibm-fsp/common.c new/skiboot-skiboot-5.1.12/platforms/ibm-fsp/common.c
--- old/skiboot-skiboot-5.1.8/platforms/ibm-fsp/common.c 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/platforms/ibm-fsp/common.c 2015-12-04 05:45:07.000000000 +0100
@@ -222,6 +222,7 @@
if (fsp_sync_msg(fsp_mkmsg(FSP_CMD_POWERDOWN_NORM, 1, request), true))
return OPAL_INTERNAL_ERROR;
+ fsp_reset_links();
return OPAL_SUCCESS;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skiboot-skiboot-5.1.8/test/hello_world/Makefile.check new/skiboot-skiboot-5.1.12/test/hello_world/Makefile.check
--- old/skiboot-skiboot-5.1.8/test/hello_world/Makefile.check 2015-10-19 04:21:40.000000000 +0200
+++ new/skiboot-skiboot-5.1.12/test/hello_world/Makefile.check 2015-12-04 05:45:07.000000000 +0100
@@ -10,7 +10,7 @@
test/hello_world/hello_kernel/hello_kernel.o: test/hello_world/hello_kernel/hello_kernel.S test/hello_world/hello_kernel/hello_kernel.ld
$(call Q,CC, $(CC) -m64 -c -MMD -o $@ $< ,$@)
-hello_kernel_LDFLAGS=-m64 -Wl,--build-id=none -T test/hello_world/hello_kernel/hello_kernel.ld -ffreestanding -nostdlib -Ttext=0x0 -lgcc
+hello_kernel_LDFLAGS=-m64 -Wl,--build-id=none -T test/hello_world/hello_kernel/hello_kernel.ld -ffreestanding -nostdlib -Ttext=0x0
-include $(wildcard test/hello_world/hello_kernel/*.d)
1
0
Hello community,
here is the log from the commit of package cabal-install for openSUSE:Factory checked in at 2016-01-05 21:54:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cabal-install (Old)
and /work/SRC/openSUSE:Factory/.cabal-install.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cabal-install"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cabal-install/cabal-install.changes 2015-08-25 08:46:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cabal-install.new/cabal-install.changes 2016-01-05 21:54:59.000000000 +0100
@@ -1,0 +2,8 @@
+Mon Dec 28 08:41:32 UTC 2015 - mimi.vx(a)gmail.com
+
+- update to 1.22.7.0
+* Remove GZipUtils tests
+* maybeDecompress: bail on all errors at the beginning of the stream with zlib < 0.6
+* Correct maybeDecompress
+
+-------------------------------------------------------------------
Old:
----
cabal-install-1.22.6.0.tar.gz
New:
----
cabal-install-1.22.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cabal-install.spec ++++++
--- /var/tmp/diff_new_pack.HxA9SE/_old 2016-01-05 21:55:00.000000000 +0100
+++ /var/tmp/diff_new_pack.HxA9SE/_new 2016-01-05 21:55:00.000000000 +0100
@@ -17,7 +17,7 @@
Name: cabal-install
-Version: 1.22.6.0
+Version: 1.22.7.0
Release: 0
Summary: The command-line interface for Cabal and Hackage
License: BSD-3-Clause
++++++ cabal-install-1.22.6.0.tar.gz -> cabal-install-1.22.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-install-1.22.6.0/Distribution/Client/GZipUtils.hs new/cabal-install-1.22.7.0/Distribution/Client/GZipUtils.hs
--- old/cabal-install-1.22.6.0/Distribution/Client/GZipUtils.hs 2015-06-17 10:11:26.000000000 +0200
+++ new/cabal-install-1.22.7.0/Distribution/Client/GZipUtils.hs 2015-12-28 00:03:02.000000000 +0100
@@ -1,3 +1,6 @@
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Distribution.Client.GZipUtils
@@ -15,10 +18,15 @@
maybeDecompress,
) where
-import qualified Data.ByteString.Lazy.Internal as BS (ByteString(..))
-import Data.ByteString.Lazy (ByteString)
-import Codec.Compression.GZip
import Codec.Compression.Zlib.Internal
+import Data.ByteString.Lazy.Internal as BS (ByteString(Empty, Chunk))
+
+#if MIN_VERSION_zlib(0,6,0)
+import Control.Exception (throw)
+import Control.Monad (liftM)
+import Control.Monad.ST.Lazy (ST, runST)
+import qualified Data.ByteString as Strict
+#endif
-- | Attempts to decompress the `bytes' under the assumption that
-- "data format" error at the very beginning of the stream means
@@ -30,15 +38,49 @@
-- <https://github.com/haskell/cabal/issues/678>
--
maybeDecompress :: ByteString -> ByteString
+#if MIN_VERSION_zlib(0,6,0)
+maybeDecompress bytes = runST (go bytes decompressor)
+ where
+ decompressor :: DecompressStream (ST s)
+ decompressor = decompressST gzipOrZlibFormat defaultDecompressParams
+
+ -- DataError at the beginning of the stream probably means that stream is
+ -- not compressed, so we return it as-is.
+ -- TODO: alternatively, we might consider looking for the two magic bytes
+ -- at the beginning of the gzip header. (not an option for zlib, though.)
+ go :: Monad m => ByteString -> DecompressStream m -> m ByteString
+ go cs (DecompressOutputAvailable bs k) = liftM (Chunk bs) $ go' cs =<< k
+ go _ (DecompressStreamEnd _bs ) = return Empty
+ go _ (DecompressStreamError _err ) = return bytes
+ go cs (DecompressInputRequired k) = go cs' =<< k c
+ where
+ (c, cs') = uncons cs
+
+ -- Once we have received any output though we regard errors as actual errors
+ -- and we throw them (as pure exceptions).
+ -- TODO: We could (and should) avoid these pure exceptions.
+ go' :: Monad m => ByteString -> DecompressStream m -> m ByteString
+ go' cs (DecompressOutputAvailable bs k) = liftM (Chunk bs) $ go' cs =<< k
+ go' _ (DecompressStreamEnd _bs ) = return Empty
+ go' _ (DecompressStreamError err ) = throw err
+ go' cs (DecompressInputRequired k) = go' cs' =<< k c
+ where
+ (c, cs') = uncons cs
+
+ uncons :: ByteString -> (Strict.ByteString, ByteString)
+ uncons Empty = (Strict.empty, Empty)
+ uncons (Chunk c cs) = (c, cs)
+#else
maybeDecompress bytes = foldStream $ decompressWithErrors gzipOrZlibFormat defaultDecompressParams bytes
where
-- DataError at the beginning of the stream probably means that stream is not compressed.
-- Returning it as-is.
-- TODO: alternatively, we might consider looking for the two magic bytes
-- at the beginning of the gzip header.
- foldStream (StreamError DataError _) = bytes
+ foldStream (StreamError _ _) = bytes
foldStream somethingElse = doFold somethingElse
doFold StreamEnd = BS.Empty
doFold (StreamChunk bs stream) = BS.Chunk bs (doFold stream)
doFold (StreamError _ msg) = error $ "Codec.Compression.Zlib: " ++ msg
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-install-1.22.6.0/bootstrap.sh new/cabal-install-1.22.7.0/bootstrap.sh
--- old/cabal-install-1.22.6.0/bootstrap.sh 2015-06-17 10:11:26.000000000 +0200
+++ new/cabal-install-1.22.7.0/bootstrap.sh 2015-12-28 00:03:03.000000000 +0100
@@ -190,7 +190,7 @@
# >= 2.0 && < 2.7
NETWORK_URI_VER="2.6.0.1"; NETWORK_URI_VER_REGEXP="2\.6\."
# >= 2.6 && < 2.7
-CABAL_VER="1.22.4.0"; CABAL_VER_REGEXP="1\.22"
+CABAL_VER="1.22.6.0"; CABAL_VER_REGEXP="1\.22"
# >= 1.22 && < 1.23
TRANS_VER="0.4.2.0"; TRANS_VER_REGEXP="0\.[4]\."
# >= 0.2.* && < 0.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-install-1.22.6.0/cabal-install.cabal new/cabal-install-1.22.7.0/cabal-install.cabal
--- old/cabal-install-1.22.6.0/cabal-install.cabal 2015-06-17 10:11:26.000000000 +0200
+++ new/cabal-install-1.22.7.0/cabal-install.cabal 2015-12-28 00:03:03.000000000 +0100
@@ -1,5 +1,5 @@
Name: cabal-install
-Version: 1.22.6.0
+Version: 1.22.7.0
Synopsis: The command-line interface for Cabal and Hackage.
Description:
The \'cabal\' command-line program simplifies the process of managing
@@ -138,7 +138,7 @@
random >= 1 && < 1.2,
stm >= 2.0 && < 3,
time >= 1.1 && < 1.6,
- zlib >= 0.5.3 && < 0.6
+ zlib >= 0.5.3 && < 0.7
if flag(old-directory)
build-depends: directory >= 1 && < 1.2, old-time >= 1 && < 1.2,
@@ -236,7 +236,7 @@
build-depends:
Cabal,
HUnit,
- QuickCheck >= 2.1.0.1 && < 2.8,
+ QuickCheck >= 2.1.0.1 && < 2.9,
base,
bytestring,
directory,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-install-1.22.6.0/changelog new/cabal-install-1.22.7.0/changelog
--- old/cabal-install-1.22.6.0/changelog 2015-06-17 10:11:26.000000000 +0200
+++ new/cabal-install-1.22.7.0/changelog 2015-12-28 00:03:03.000000000 +0100
@@ -1,4 +1,9 @@
-*-change-log-*-
+1.22.7.0
+ * Remove GZipUtils tests
+ * maybeDecompress: bail on all errors at the beginning of the stream with zlib < 0.6
+ * Correct maybeDecompress
+
1.22.6.0 Ryan Thomas <ryan(a)ryant.org> June 2015
* A fix for @ezyang's fix for #2502. (Mikhail Glushenkov)
1
0
Hello community,
here is the log from the commit of package ghc-StateVar for openSUSE:Factory checked in at 2016-01-05 21:54:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-StateVar (Old)
and /work/SRC/openSUSE:Factory/.ghc-StateVar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-StateVar"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-StateVar/ghc-StateVar.changes 2015-08-10 09:16:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-StateVar.new/ghc-StateVar.changes 2016-01-05 21:54:57.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Dec 24 09:24:36 UTC 2015 - mimi.vx(a)gmail.com
+
+- update to 1.1.0.2
+* Relaxed upper version bound for transformers.
+
+-------------------------------------------------------------------
Old:
----
StateVar-1.1.0.1.tar.gz
New:
----
StateVar-1.1.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-StateVar.spec ++++++
--- /var/tmp/diff_new_pack.sEyAfE/_old 2016-01-05 21:54:58.000000000 +0100
+++ /var/tmp/diff_new_pack.sEyAfE/_new 2016-01-05 21:54:58.000000000 +0100
@@ -18,7 +18,7 @@
%global pkg_name StateVar
Name: ghc-StateVar
-Version: 1.1.0.1
+Version: 1.1.0.2
Release: 0
Summary: State variables
Group: System/Libraries
++++++ StateVar-1.1.0.1.tar.gz -> StateVar-1.1.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/StateVar-1.1.0.1/CHANGELOG.md new/StateVar-1.1.0.2/CHANGELOG.md
--- old/StateVar-1.1.0.1/CHANGELOG.md 2015-08-05 16:35:49.000000000 +0200
+++ new/StateVar-1.1.0.2/CHANGELOG.md 2015-12-22 09:40:28.000000000 +0100
@@ -1,23 +1,27 @@
-1.1.0.1
--------
-* Documentation changes only.
-
-1.1.0.0
--------
-* Melded the API of `foreign-var` 0.1 with the API of `StateVar` 1.0.1.1
-* Introduced `HasUpdate`, which permits a wider array of uses of these combinators, including usecases that must update atomically.
-* Switched to multi-parameter typeclasses. This permits `Ptr a` to be directly employed as an instance of `HasGetter`, `HasUpdate`, and `HasSetter`.
-
-1.0.1.1
--------
-* Infrastructure changes only.
-
-1.0.1.0
--------
-* Exposed `GettableStateVar`, `SettableStateVar` and `StateVar` constructors to make writing own instances possible.
-* Added `Functor`, `Applicative` and `Monad` instances for `GettableStateVar`.
-* Various infrastructure improvements.
-
-1.0.0.0
--------
-* Initial release.
+1.1.0.2
+-------
+* Relaxed upper version bound for `transformers`.
+
+1.1.0.1
+-------
+* Documentation changes only.
+
+1.1.0.0
+-------
+* Melded the API of `foreign-var` 0.1 with the API of `StateVar` 1.0.1.1
+* Introduced `HasUpdate`, which permits a wider array of uses of these combinators, including usecases that must update atomically.
+* Switched to multi-parameter typeclasses. This permits `Ptr a` to be directly employed as an instance of `HasGetter`, `HasUpdate`, and `HasSetter`.
+
+1.0.1.1
+-------
+* Infrastructure changes only.
+
+1.0.1.0
+-------
+* Exposed `GettableStateVar`, `SettableStateVar` and `StateVar` constructors to make writing own instances possible.
+* Added `Functor`, `Applicative` and `Monad` instances for `GettableStateVar`.
+* Various infrastructure improvements.
+
+1.0.0.0
+-------
+* Initial release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/StateVar-1.1.0.1/LICENSE new/StateVar-1.1.0.2/LICENSE
--- old/StateVar-1.1.0.1/LICENSE 2015-08-05 16:35:49.000000000 +0200
+++ new/StateVar-1.1.0.2/LICENSE 2015-12-22 09:40:28.000000000 +0100
@@ -1,29 +1,29 @@
-Copyright (c) 2014-2015, Edward Kmett
-Copyright (c) 2009-2014, Sven Panne
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-3. Neither the name of the author nor the names of its contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-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.
+Copyright (c) 2014-2015, Edward Kmett
+Copyright (c) 2009-2014, Sven Panne
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the author nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+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.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/StateVar-1.1.0.1/README.md new/StateVar-1.1.0.2/README.md
--- old/StateVar-1.1.0.1/README.md 2015-08-05 16:35:49.000000000 +0200
+++ new/StateVar-1.1.0.2/README.md 2015-12-22 09:40:28.000000000 +0100
@@ -1 +1 @@
-[![Hackage](https://img.shields.io/hackage/v/StateVar.svg)](https://hackage.haskell.org/package/StateVar) [![Build Status](https://travis-ci.org/haskell-opengl/StateVar.png)](https://travis-…
+[![Hackage](https://img.shields.io/hackage/v/StateVar.svg)](https://hackage.haskell.org/package/StateVar) [![Build Status](https://travis-ci.org/haskell-opengl/StateVar.png)](https://travis-…
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/StateVar-1.1.0.1/Setup.hs new/StateVar-1.1.0.2/Setup.hs
--- old/StateVar-1.1.0.1/Setup.hs 2015-08-05 16:35:49.000000000 +0200
+++ new/StateVar-1.1.0.2/Setup.hs 2015-12-22 09:40:28.000000000 +0100
@@ -1,2 +1,2 @@
-import Distribution.Simple
-main = defaultMain
+import Distribution.Simple
+main = defaultMain
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/StateVar-1.1.0.1/StateVar.cabal new/StateVar-1.1.0.2/StateVar.cabal
--- old/StateVar-1.1.0.1/StateVar.cabal 2015-08-05 16:35:49.000000000 +0200
+++ new/StateVar-1.1.0.2/StateVar.cabal 2015-12-22 09:40:28.000000000 +0100
@@ -1,46 +1,46 @@
-name: StateVar
-version: 1.1.0.1
-synopsis: State variables
-description:
- This package contains state variables, which are references in the IO monad,
- like IORefs or parts of the OpenGL state.
-homepage: https://github.com/haskell-opengl/StateVar
-bug-reports: https://github.com/haskell-opengl/StateVar/issues
-copyright: Copyright (C) 2014-2015 Edward A. Kmett, 2009-2015 Sven Panne
-license: BSD3
-license-file: LICENSE
-author: Sven Panne and Edward Kmett
-maintainer: Sven Panne <svenpanne(a)gmail.com>
-category: Data
-build-type: Simple
-cabal-version: >=1.10
-extra-source-files: README.md CHANGELOG.md
-
-library
- exposed-modules:
- Data.StateVar
-
- build-depends:
- base >= 4 && < 5,
- stm >= 2.0 && < 2.5,
- transformers >= 0.2 && < 0.5
-
- default-language: Haskell2010
- other-extensions:
- CPP
- DeriveDataTypeable
- MultiParamTypeClasses
- FunctionalDependencies
- FlexibleInstances
- TypeFamilies
-
- hs-source-dirs: src
- ghc-options: -Wall
-
- if impl(ghc>=7.4)
- -- other-extensions: DefaultSignatures
- cpp-options: -DUSE_DEFAULT_SIGNATURES=1
-
-source-repository head
- type: git
- location: https://github.com/haskell-opengl/StateVar.git
+name: StateVar
+version: 1.1.0.2
+synopsis: State variables
+description:
+ This package contains state variables, which are references in the IO monad,
+ like IORefs or parts of the OpenGL state.
+homepage: https://github.com/haskell-opengl/StateVar
+bug-reports: https://github.com/haskell-opengl/StateVar/issues
+copyright: Copyright (C) 2014-2015 Edward A. Kmett, 2009-2015 Sven Panne
+license: BSD3
+license-file: LICENSE
+author: Sven Panne and Edward Kmett
+maintainer: Sven Panne <svenpanne(a)gmail.com>
+category: Data
+build-type: Simple
+cabal-version: >=1.10
+extra-source-files: README.md CHANGELOG.md
+
+library
+ exposed-modules:
+ Data.StateVar
+
+ build-depends:
+ base >= 4 && < 5,
+ stm >= 2.0 && < 2.5,
+ transformers >= 0.2 && < 0.6
+
+ default-language: Haskell2010
+ other-extensions:
+ CPP
+ DeriveDataTypeable
+ MultiParamTypeClasses
+ FunctionalDependencies
+ FlexibleInstances
+ TypeFamilies
+
+ hs-source-dirs: src
+ ghc-options: -Wall
+
+ if impl(ghc>=7.4)
+ -- other-extensions: DefaultSignatures
+ cpp-options: -DUSE_DEFAULT_SIGNATURES=1
+
+source-repository head
+ type: git
+ location: https://github.com/haskell-opengl/StateVar.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/StateVar-1.1.0.1/src/Data/StateVar.hs new/StateVar-1.1.0.2/src/Data/StateVar.hs
--- old/StateVar-1.1.0.1/src/Data/StateVar.hs 2015-08-05 16:35:49.000000000 +0200
+++ new/StateVar-1.1.0.2/src/Data/StateVar.hs 2015-12-22 09:40:28.000000000 +0100
@@ -1,276 +1,276 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE FunctionalDependencies #-}
-{-# LANGUAGE FlexibleInstances #-}
-#if USE_DEFAULT_SIGNATURES
-{-# LANGUAGE DefaultSignatures #-}
-#endif
-{-# LANGUAGE TypeFamilies #-}
---------------------------------------------------------------------------------
--- |
--- Module : Data.StateVar
--- Copyright : (c) Edward Kmett 2014-2015, Sven Panne 2009-2014
--- License : BSD3
---
--- Maintainer : Sven Panne <svenpanne(a)gmail.com>
--- Stability : stable
--- Portability : portable
---
--- State variables are references in the IO monad, like 'IORef's or parts of
--- the OpenGL state. Note that state variables are not neccessarily writable or
--- readable, they may come in read-only or write-only flavours, too. As a very
--- simple example for a state variable, consider an explicitly allocated memory
--- buffer. This buffer could easily be converted into a 'StateVar':
---
--- @
--- makeStateVarFromPtr :: Storable a => Ptr a -> StateVar a
--- makeStateVarFromPtr p = makeStateVar (peek p) (poke p)
--- @
---
--- The example below puts 11 into a state variable (i.e. into the buffer),
--- increments the contents of the state variable by 22, and finally prints the
--- resulting content:
---
--- @
--- do p <- malloc :: IO (Ptr Int)
--- let v = makeStateVarFromPtr p
--- v $= 11
--- v $~ (+ 22)
--- x <- get v
--- print x
--- @
---
--- However, 'Ptr' can be used directly through the same API:
---
--- @
--- do p <- malloc :: IO (Ptr Int)
--- p $= 11
--- p $~ (+ 22)
--- x <- get p
--- print x
--- @
---
--- 'IORef's are state variables, too, so an example with them looks extremely
--- similiar:
---
--- @
--- do v <- newIORef (0 :: Int)
--- v $= 11
--- v $~ (+ 22)
--- x <- get v
--- print x
--- @
---------------------------------------------------------------------------------
-
-module Data.StateVar
- (
- -- * Readable State Variables
- HasGetter(get)
- , GettableStateVar, makeGettableStateVar
- -- * Writable State Variables
- , HasSetter(($=)), ($=!)
- , SettableStateVar(SettableStateVar), makeSettableStateVar
- -- * Updatable State Variables
- , HasUpdate(($~), ($~!))
- , StateVar(StateVar), makeStateVar
- , mapStateVar
- ) where
-
-import Control.Concurrent.STM
-import Control.Monad.IO.Class
-import Data.IORef
-import Data.Typeable
-import Foreign.Ptr
-import Foreign.Storable
-
---------------------------------------------------------------------
--- * StateVar
---------------------------------------------------------------------
-
--- | A concrete implementation of a readable and writable state variable,
--- carrying one IO action to read the value and another IO action to write the
--- new value. This data type represents a piece of mutable, imperative state
--- with possible side-effects. These tend to encapsulate all sorts tricky
--- behavior in external libraries, and may well throw exceptions. Inhabitants
--- __should__ satsify the following properties:
---
--- * In the absence of concurrent mutation from other threads or a thrown
--- exception:
---
--- @
--- do x <- 'get' v; v '$=' y; v '$=' x
--- @
---
--- should restore the previous state.
---
--- * Ideally, in the absence of thrown exceptions:
---
--- @
--- v '$=' a >> 'get' v
--- @
---
--- should return @a@, regardless of @a@. In practice some 'StateVar's only
--- permit a very limited range of value assignments, and do not report failure.
-data StateVar a = StateVar (IO a) (a -> IO ()) deriving Typeable
-
--- | Construct a 'StateVar' from two IO actions, one for reading and one for
---- writing.
-makeStateVar
- :: IO a -- ^ getter
- -> (a -> IO ()) -- ^ setter
- -> StateVar a
-makeStateVar = StateVar
-
--- | Change the type of a 'StateVar'
-mapStateVar :: (b -> a) -> (a -> b) -> StateVar a -> StateVar b
-mapStateVar ba ab (StateVar ga sa) = StateVar (fmap ab ga) (sa . ba)
-{-# INLINE mapStateVar #-}
-
--- | A concrete implementation of a write-only state variable, carrying an IO
--- action to write the new value.
-newtype SettableStateVar a = SettableStateVar (a -> IO ())
- deriving Typeable
-
--- | Construct a 'SettableStateVar' from an IO action for writing.
-makeSettableStateVar
- :: (a -> IO ()) -- ^ setter
- -> SettableStateVar a
-makeSettableStateVar = SettableStateVar
-{-# INLINE makeSettableStateVar #-}
-
--- | A concrete implementation of a read-only state variable is simply an IO
--- action to read the value.
-type GettableStateVar = IO
-
--- | Construct a 'GettableStateVar' from an IO action.
-makeGettableStateVar
- :: IO a -- ^ getter
- -> GettableStateVar a
-makeGettableStateVar = id
-{-# INLINE makeGettableStateVar #-}
-
---------------------------------------------------------------------
--- * HasSetter
---------------------------------------------------------------------
-
-infixr 2 $=, $=!
-
--- | This is the class of all writable state variables.
-class HasSetter t a | t -> a where
- -- | Write a new value into a state variable.
- ($=) :: MonadIO m => t -> a -> m ()
-
--- | This is a variant of '$=' which is strict in the value to be set.
-($=!) :: (HasSetter t a, MonadIO m) => t -> a -> m ()
-p $=! a = (p $=) $! a
-{-# INLINE ($=!) #-}
-
-instance HasSetter (SettableStateVar a) a where
- SettableStateVar f $= a = liftIO (f a)
- {-# INLINE ($=) #-}
-
-instance HasSetter (StateVar a) a where
- StateVar _ s $= a = liftIO $ s a
- {-# INLINE ($=) #-}
-
-instance Storable a => HasSetter (Ptr a) a where
- p $= a = liftIO $ poke p a
- {-# INLINE ($=) #-}
-
-instance HasSetter (IORef a) a where
- p $= a = liftIO $ writeIORef p a
- {-# INLINE ($=) #-}
-
-instance HasSetter (TVar a) a where
- p $= a = liftIO $ atomically $ writeTVar p a
- {-# INLINE ($=) #-}
-
---------------------------------------------------------------------
--- * HasUpdate
---------------------------------------------------------------------
-
-infixr 2 $~, $~!
-
--- | This is the class of all updatable state variables.
-class HasSetter t a => HasUpdate t a b | t -> a b where
- -- | Transform the contents of a state variable with a given funtion.
- ($~) :: MonadIO m => t -> (a -> b) -> m ()
-#if USE_DEFAULT_SIGNATURES
- default ($~) :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
- ($~) = defaultUpdate
-#endif
- -- | This is a variant of '$~' which is strict in the transformed value.
- ($~!) :: MonadIO m => t -> (a -> b) -> m ()
-#if USE_DEFAULT_SIGNATURES
- default ($~!) :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
- ($~!) = defaultUpdateStrict
-#endif
-
-defaultUpdate :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
-defaultUpdate r f = liftIO $ do
- a <- get r
- r $= f a
-
-defaultUpdateStrict :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
-defaultUpdateStrict r f = liftIO $ do
- a <- get r
- r $=! f a
-
-instance HasUpdate (StateVar a) a a where
- ($~) = defaultUpdate
- ($~!) = defaultUpdateStrict
-
-instance Storable a => HasUpdate (Ptr a) a a where
- ($~) = defaultUpdate
- ($~!) = defaultUpdateStrict
-
-instance HasUpdate (IORef a) a a where
- r $~ f = liftIO $ atomicModifyIORef r $ \a -> (f a,())
-#if __GLASGOW_HASKELL__ >= 706
- r $~! f = liftIO $ atomicModifyIORef' r $ \a -> (f a,())
-#else
- r $~! f = liftIO $ do
- s <- atomicModifyIORef r $ \a -> let s = f a in (s, s)
- s `seq` return ()
-#endif
-
-instance HasUpdate (TVar a) a a where
- r $~ f = liftIO $ atomically $ do
- a <- readTVar r
- writeTVar r (f a)
- r $~! f = liftIO $ atomically $ do
- a <- readTVar r
- writeTVar r $! f a
-
---------------------------------------------------------------------
--- * HasGetter
---------------------------------------------------------------------
-
--- | This is the class of all readable state variables.
-class HasGetter t a | t -> a where
- get :: MonadIO m => t -> m a
-
-instance HasGetter (StateVar a) a where
- get (StateVar g _) = liftIO g
- {-# INLINE get #-}
-
-instance HasGetter (TVar a) a where
- get = liftIO . atomically . readTVar
- {-# INLINE get #-}
-
-instance HasGetter (IO a) a where
- get = liftIO
- {-# INLINE get #-}
-
-instance HasGetter (STM a) a where
- get = liftIO . atomically
- {-# INLINE get #-}
-
-instance Storable a => HasGetter (Ptr a) a where
- get = liftIO . peek
- {-# INLINE get #-}
-
-instance HasGetter (IORef a) a where
- get = liftIO . readIORef
- {-# INLINE get #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE FlexibleInstances #-}
+#if USE_DEFAULT_SIGNATURES
+{-# LANGUAGE DefaultSignatures #-}
+#endif
+{-# LANGUAGE TypeFamilies #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module : Data.StateVar
+-- Copyright : (c) Edward Kmett 2014-2015, Sven Panne 2009-2014
+-- License : BSD3
+--
+-- Maintainer : Sven Panne <svenpanne(a)gmail.com>
+-- Stability : stable
+-- Portability : portable
+--
+-- State variables are references in the IO monad, like 'IORef's or parts of
+-- the OpenGL state. Note that state variables are not neccessarily writable or
+-- readable, they may come in read-only or write-only flavours, too. As a very
+-- simple example for a state variable, consider an explicitly allocated memory
+-- buffer. This buffer could easily be converted into a 'StateVar':
+--
+-- @
+-- makeStateVarFromPtr :: Storable a => Ptr a -> StateVar a
+-- makeStateVarFromPtr p = makeStateVar (peek p) (poke p)
+-- @
+--
+-- The example below puts 11 into a state variable (i.e. into the buffer),
+-- increments the contents of the state variable by 22, and finally prints the
+-- resulting content:
+--
+-- @
+-- do p <- malloc :: IO (Ptr Int)
+-- let v = makeStateVarFromPtr p
+-- v $= 11
+-- v $~ (+ 22)
+-- x <- get v
+-- print x
+-- @
+--
+-- However, 'Ptr' can be used directly through the same API:
+--
+-- @
+-- do p <- malloc :: IO (Ptr Int)
+-- p $= 11
+-- p $~ (+ 22)
+-- x <- get p
+-- print x
+-- @
+--
+-- 'IORef's are state variables, too, so an example with them looks extremely
+-- similiar:
+--
+-- @
+-- do v <- newIORef (0 :: Int)
+-- v $= 11
+-- v $~ (+ 22)
+-- x <- get v
+-- print x
+-- @
+--------------------------------------------------------------------------------
+
+module Data.StateVar
+ (
+ -- * Readable State Variables
+ HasGetter(get)
+ , GettableStateVar, makeGettableStateVar
+ -- * Writable State Variables
+ , HasSetter(($=)), ($=!)
+ , SettableStateVar(SettableStateVar), makeSettableStateVar
+ -- * Updatable State Variables
+ , HasUpdate(($~), ($~!))
+ , StateVar(StateVar), makeStateVar
+ , mapStateVar
+ ) where
+
+import Control.Concurrent.STM
+import Control.Monad.IO.Class
+import Data.IORef
+import Data.Typeable
+import Foreign.Ptr
+import Foreign.Storable
+
+--------------------------------------------------------------------
+-- * StateVar
+--------------------------------------------------------------------
+
+-- | A concrete implementation of a readable and writable state variable,
+-- carrying one IO action to read the value and another IO action to write the
+-- new value. This data type represents a piece of mutable, imperative state
+-- with possible side-effects. These tend to encapsulate all sorts tricky
+-- behavior in external libraries, and may well throw exceptions. Inhabitants
+-- __should__ satsify the following properties:
+--
+-- * In the absence of concurrent mutation from other threads or a thrown
+-- exception:
+--
+-- @
+-- do x <- 'get' v; v '$=' y; v '$=' x
+-- @
+--
+-- should restore the previous state.
+--
+-- * Ideally, in the absence of thrown exceptions:
+--
+-- @
+-- v '$=' a >> 'get' v
+-- @
+--
+-- should return @a@, regardless of @a@. In practice some 'StateVar's only
+-- permit a very limited range of value assignments, and do not report failure.
+data StateVar a = StateVar (IO a) (a -> IO ()) deriving Typeable
+
+-- | Construct a 'StateVar' from two IO actions, one for reading and one for
+--- writing.
+makeStateVar
+ :: IO a -- ^ getter
+ -> (a -> IO ()) -- ^ setter
+ -> StateVar a
+makeStateVar = StateVar
+
+-- | Change the type of a 'StateVar'
+mapStateVar :: (b -> a) -> (a -> b) -> StateVar a -> StateVar b
+mapStateVar ba ab (StateVar ga sa) = StateVar (fmap ab ga) (sa . ba)
+{-# INLINE mapStateVar #-}
+
+-- | A concrete implementation of a write-only state variable, carrying an IO
+-- action to write the new value.
+newtype SettableStateVar a = SettableStateVar (a -> IO ())
+ deriving Typeable
+
+-- | Construct a 'SettableStateVar' from an IO action for writing.
+makeSettableStateVar
+ :: (a -> IO ()) -- ^ setter
+ -> SettableStateVar a
+makeSettableStateVar = SettableStateVar
+{-# INLINE makeSettableStateVar #-}
+
+-- | A concrete implementation of a read-only state variable is simply an IO
+-- action to read the value.
+type GettableStateVar = IO
+
+-- | Construct a 'GettableStateVar' from an IO action.
+makeGettableStateVar
+ :: IO a -- ^ getter
+ -> GettableStateVar a
+makeGettableStateVar = id
+{-# INLINE makeGettableStateVar #-}
+
+--------------------------------------------------------------------
+-- * HasSetter
+--------------------------------------------------------------------
+
+infixr 2 $=, $=!
+
+-- | This is the class of all writable state variables.
+class HasSetter t a | t -> a where
+ -- | Write a new value into a state variable.
+ ($=) :: MonadIO m => t -> a -> m ()
+
+-- | This is a variant of '$=' which is strict in the value to be set.
+($=!) :: (HasSetter t a, MonadIO m) => t -> a -> m ()
+p $=! a = (p $=) $! a
+{-# INLINE ($=!) #-}
+
+instance HasSetter (SettableStateVar a) a where
+ SettableStateVar f $= a = liftIO (f a)
+ {-# INLINE ($=) #-}
+
+instance HasSetter (StateVar a) a where
+ StateVar _ s $= a = liftIO $ s a
+ {-# INLINE ($=) #-}
+
+instance Storable a => HasSetter (Ptr a) a where
+ p $= a = liftIO $ poke p a
+ {-# INLINE ($=) #-}
+
+instance HasSetter (IORef a) a where
+ p $= a = liftIO $ writeIORef p a
+ {-# INLINE ($=) #-}
+
+instance HasSetter (TVar a) a where
+ p $= a = liftIO $ atomically $ writeTVar p a
+ {-# INLINE ($=) #-}
+
+--------------------------------------------------------------------
+-- * HasUpdate
+--------------------------------------------------------------------
+
+infixr 2 $~, $~!
+
+-- | This is the class of all updatable state variables.
+class HasSetter t a => HasUpdate t a b | t -> a b where
+ -- | Transform the contents of a state variable with a given funtion.
+ ($~) :: MonadIO m => t -> (a -> b) -> m ()
+#if USE_DEFAULT_SIGNATURES
+ default ($~) :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
+ ($~) = defaultUpdate
+#endif
+ -- | This is a variant of '$~' which is strict in the transformed value.
+ ($~!) :: MonadIO m => t -> (a -> b) -> m ()
+#if USE_DEFAULT_SIGNATURES
+ default ($~!) :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
+ ($~!) = defaultUpdateStrict
+#endif
+
+defaultUpdate :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
+defaultUpdate r f = liftIO $ do
+ a <- get r
+ r $= f a
+
+defaultUpdateStrict :: (MonadIO m, a ~ b, HasGetter t a, HasSetter t a) => t -> (a -> b) -> m ()
+defaultUpdateStrict r f = liftIO $ do
+ a <- get r
+ r $=! f a
+
+instance HasUpdate (StateVar a) a a where
+ ($~) = defaultUpdate
+ ($~!) = defaultUpdateStrict
+
+instance Storable a => HasUpdate (Ptr a) a a where
+ ($~) = defaultUpdate
+ ($~!) = defaultUpdateStrict
+
+instance HasUpdate (IORef a) a a where
+ r $~ f = liftIO $ atomicModifyIORef r $ \a -> (f a,())
+#if __GLASGOW_HASKELL__ >= 706
+ r $~! f = liftIO $ atomicModifyIORef' r $ \a -> (f a,())
+#else
+ r $~! f = liftIO $ do
+ s <- atomicModifyIORef r $ \a -> let s = f a in (s, s)
+ s `seq` return ()
+#endif
+
+instance HasUpdate (TVar a) a a where
+ r $~ f = liftIO $ atomically $ do
+ a <- readTVar r
+ writeTVar r (f a)
+ r $~! f = liftIO $ atomically $ do
+ a <- readTVar r
+ writeTVar r $! f a
+
+--------------------------------------------------------------------
+-- * HasGetter
+--------------------------------------------------------------------
+
+-- | This is the class of all readable state variables.
+class HasGetter t a | t -> a where
+ get :: MonadIO m => t -> m a
+
+instance HasGetter (StateVar a) a where
+ get (StateVar g _) = liftIO g
+ {-# INLINE get #-}
+
+instance HasGetter (TVar a) a where
+ get = liftIO . atomically . readTVar
+ {-# INLINE get #-}
+
+instance HasGetter (IO a) a where
+ get = liftIO
+ {-# INLINE get #-}
+
+instance HasGetter (STM a) a where
+ get = liftIO . atomically
+ {-# INLINE get #-}
+
+instance Storable a => HasGetter (Ptr a) a where
+ get = liftIO . peek
+ {-# INLINE get #-}
+
+instance HasGetter (IORef a) a where
+ get = liftIO . readIORef
+ {-# INLINE get #-}
1
0
Hello community,
here is the log from the commit of package ghc-stm for openSUSE:Factory checked in at 2016-01-05 21:54:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-stm (Old)
and /work/SRC/openSUSE:Factory/.ghc-stm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-stm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-stm/ghc-stm.changes 2015-05-13 07:13:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-stm.new/ghc-stm.changes 2016-01-05 21:54:55.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Dec 24 09:27:37 UTC 2015 - mimi.vx(a)gmail.com
+
+- update to 2.4.4.1
+* Add support for base-4.9.0.0
+* Drop support for GHC 6.12 / base-4.2
+
+-------------------------------------------------------------------
Old:
----
stm-2.4.4.tar.gz
New:
----
stm-2.4.4.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-stm.spec ++++++
--- /var/tmp/diff_new_pack.Du42DF/_old 2016-01-05 21:54:56.000000000 +0100
+++ /var/tmp/diff_new_pack.Du42DF/_new 2016-01-05 21:54:56.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name stm
Name: ghc-stm
-Version: 2.4.4
+Version: 2.4.4.1
Release: 0
Summary: Software Transactional Memory
License: BSD-3-Clause
++++++ stm-2.4.4.tar.gz -> stm-2.4.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-2.4.4/Control/Concurrent/STM/TMVar.hs new/stm-2.4.4.1/Control/Concurrent/STM/TMVar.hs
--- old/stm-2.4.4/Control/Concurrent/STM/TMVar.hs 2014-12-17 12:00:31.000000000 +0100
+++ new/stm-2.4.4.1/Control/Concurrent/STM/TMVar.hs 2015-12-22 13:53:15.000000000 +0100
@@ -159,6 +159,6 @@
--
-- @since 2.4.4
mkWeakTMVar :: TMVar a -> IO () -> IO (Weak (TMVar a))
-mkWeakTMVar tmv@(TMVar (TVar t#)) f = IO $ \s ->
- case mkWeak# t# tmv f s of (# s1, w #) -> (# s1, Weak w #)
+mkWeakTMVar tmv@(TMVar (TVar t#)) (IO finalizer) = IO $ \s ->
+ case mkWeak# t# tmv finalizer s of (# s1, w #) -> (# s1, Weak w #)
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-2.4.4/Control/Concurrent/STM/TVar.hs new/stm-2.4.4.1/Control/Concurrent/STM/TVar.hs
--- old/stm-2.4.4/Control/Concurrent/STM/TVar.hs 2014-12-17 12:00:31.000000000 +0100
+++ new/stm-2.4.4.1/Control/Concurrent/STM/TVar.hs 2015-12-22 13:53:15.000000000 +0100
@@ -76,5 +76,5 @@
--
-- @since 2.4.3
mkWeakTVar :: TVar a -> IO () -> IO (Weak (TVar a))
-mkWeakTVar t@(TVar t#) f = IO $ \s ->
- case mkWeak# t# t f s of (# s1, w #) -> (# s1, Weak w #)
+mkWeakTVar t@(TVar t#) (IO finalizer) = IO $ \s ->
+ case mkWeak# t# t finalizer s of (# s1, w #) -> (# s1, Weak w #)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-2.4.4/changelog.md new/stm-2.4.4.1/changelog.md
--- old/stm-2.4.4/changelog.md 2014-12-17 12:00:31.000000000 +0100
+++ new/stm-2.4.4.1/changelog.md 2015-12-22 13:53:15.000000000 +0100
@@ -1,5 +1,11 @@
# Changelog for [`stm` package](http://hackage.haskell.org/package/stm)
+## 2.4.4.1 *Dec 2015*
+
+ * Add support for `base-4.9.0.0`
+
+ * Drop support for GHC 6.12 / `base-4.2`
+
## 2.4.4 *Dec 2014*
* Add support for `base-4.8.0.0`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-2.4.4/stm.cabal new/stm-2.4.4.1/stm.cabal
--- old/stm-2.4.4/stm.cabal 2014-12-17 12:00:31.000000000 +0100
+++ new/stm-2.4.4.1/stm.cabal 2015-12-22 13:53:15.000000000 +0100
@@ -1,16 +1,16 @@
name: stm
-version: 2.4.4
+version: 2.4.4.1
-- don't forget to update changelog.md file!
license: BSD3
license-file: LICENSE
maintainer: libraries(a)haskell.org
-bug-reports: http://ghc.haskell.org/trac/ghc/newticket?component=libraries%20%28other%29…
+bug-reports: https://ghc.haskell.org/trac/ghc/newticket?component=libraries%20%28other%2…
synopsis: Software Transactional Memory
category: Concurrency
description: A modular composable concurrency abstraction.
build-type: Simple
cabal-version: >=1.10
-tested-with: GHC==7.6.3, GHC==7.6.2, GHC==7.6.1, GHC==7.4.2, GHC==7.4.1, GHC==7.2.2, GHC==7.2.1, GHC==7.0.4, GHC==7.0.3, GHC==7.0.2, GHC==7.0.1, GHC==6.12.3
+tested-with: GHC==7.10.*, GHC==7.8.*, GHC==7.6.*, GHC==7.4.*, GHC==7.2.*, GHC==7.0.*
extra-source-files:
changelog.md
@@ -20,7 +20,7 @@
location: http://git.haskell.org/packages/stm.git
library
- default-language: Haskell98
+ default-language: Haskell2010
other-extensions:
CPP
DeriveDataTypeable
@@ -34,7 +34,7 @@
other-extensions: Safe
build-depends:
- base >= 4.2 && < 4.9,
+ base >= 4.3 && < 4.10,
array >= 0.3 && < 0.6
exposed-modules:
1
0
Hello community,
here is the log from the commit of package ghc-tagsoup for openSUSE:Factory checked in at 2016-01-05 21:54:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-tagsoup (Old)
and /work/SRC/openSUSE:Factory/.ghc-tagsoup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-tagsoup"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-tagsoup/ghc-tagsoup.changes 2015-11-10 10:02:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-tagsoup.new/ghc-tagsoup.changes 2016-01-05 21:54:54.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Dec 24 09:34:20 UTC 2015 - mimi.vx(a)gmail.com
+
+- update to 0.13.6
+* some named entities require a trailing semicolon (e.g. mid)
+
+-------------------------------------------------------------------
Old:
----
tagsoup-0.13.5.tar.gz
New:
----
tagsoup-0.13.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-tagsoup.spec ++++++
--- /var/tmp/diff_new_pack.Xl1RBD/_old 2016-01-05 21:54:55.000000000 +0100
+++ /var/tmp/diff_new_pack.Xl1RBD/_new 2016-01-05 21:54:55.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name tagsoup
Name: ghc-tagsoup
-Version: 0.13.5
+Version: 0.13.6
Release: 0
Summary: Parsing and extracting information from (possibly malformed) HTML/XML documents
License: BSD-3-Clause
++++++ tagsoup-0.13.5.tar.gz -> tagsoup-0.13.6.tar.gz ++++++
++++ 4324 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package dtb-source for openSUSE:Factory checked in at 2016-01-05 21:54:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dtb-source (Old)
and /work/SRC/openSUSE:Factory/.dtb-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dtb-source"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dtb-source/dtb-aarch64.changes 2015-12-13 09:39:47.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.dtb-source.new/dtb-aarch64.changes 2016-01-05 21:54:43.000000000 +0100
@@ -1,0 +2,13 @@
+Wed Dec 16 00:52:00 UTC 2015 - afaerber(a)suse.de
+
+- Sort ARMv7 packages alphabetically by file name
+* Revert meson8b (new in v4.4)
+* Package am3517, armada-375/385/388/395, imx7*, k2e/k2l, vf500
+* Avoid packaging vf610m4-* in dtb-vf6
+
+-------------------------------------------------------------------
+Tue Dec 15 23:27:20 UTC 2015 - afaerber(a)suse.de
+
+- Package Amlogic Meson DTBs for ARMv7
+
+-------------------------------------------------------------------
dtb-armv6l.changes: same change
dtb-armv7l.changes: same change
dtb-source.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
dtb-armv6l.spec: same change
++++++ dtb-armv7l.spec ++++++
++++ 963 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/dtb-source/dtb-armv7l.spec
++++ and /work/SRC/openSUSE:Factory/.dtb-source.new/dtb-armv7l.spec
++++++ pre_checkin.pl ++++++
--- /var/tmp/diff_new_pack.i41Jjx/_old 2016-01-05 21:54:44.000000000 +0100
+++ /var/tmp/diff_new_pack.i41Jjx/_new 2016-01-05 21:54:44.000000000 +0100
@@ -5,38 +5,50 @@
my $spec_in = "dtb.spec.in";
-# DTB packages names
+# DTB packages names, ordered by file names
my @armv7l_package_list = (
- ['dtb-omap3', '*omap3*.dts', "TI OMAP3 based systems"],
- ['dtb-omap4', '*omap4*.dts', "TI OMAP4 based systems"],
- ['dtb-omap5', '*omap5*.dts', "TI OMAP5 based systems"],
- ['dtb-am335x', '*am335x*.dts', "TI AM335x based systems"],
- ['dtb-am57xx', '*am57xx*.dts', "TI AM57xx based systems"],
- ['dtb-keystone', 'k2hk-evm.dts', "TI Keystone based systems"],
- ['dtb-exynos4', '*exynos4*.dts', "Samsung Exynos4 based systems"],
- ['dtb-exynos5', '*exynos5*.dts', "Samsung Exynos5 based systems"],
- ['dtb-imx5', '*imx5*.dts', "Freescale i.MX51 and i.MX53 based systems"],
- ['dtb-imx6', '*imx6*.dts', "Freescale i.MX6 based systems"],
- ['dtb-vf6', '*vf6*.dts', "Freescale Vybrid VF6xx based systems"],
- ['dtb-tegra2', '*tegra2*.dts', "NVidia Tegra2 based systems"],
- ['dtb-tegra3', '*tegra3*.dts', "NVidia Tegra3 based systems"],
- ['dtb-tegra114', 'tegra114-*.dts', "NVidia Tegra4 based systems"],
- ['dtb-tegra124', 'tegra124-*.dts', "NVidia Tegra K1 based systems"],
- ['dtb-sun4i', '*sun4i*.dts', "Allwinner sun4i based systems"],
- ['dtb-sun5i', '*sun5i*.dts', "Allwinner sun5i based systems"],
- ['dtb-sun6i', '*sun6i*.dts', "Allwinner sun6i based systems"],
- ['dtb-sun7i', '*sun7i*.dts', "Allwinner sun7i based systems"],
- ['dtb-sun8i', '*sun8i*.dts', "Allwinner sun8i based systems"],
- ['dtb-sun9i', '*sun9i*.dts', "Allwinner sun9i based systems"],
- ['dtb-xenvm', '*xenvm*.dts', "Xen virtual machines"],
- ['dtb-vexpress', 'vexpress*.dts', "ARM versatile express machines"],
- ['dtb-ste', 'ste*.dts', "ST Ericsson based systems"],
- ['dtb-dove', 'dove*.dts', "Marvell dove based systems"],
- ['dtb-armada-370', 'armada-370*.dts', "Armada 370 based systems"],
- ['dtb-armada-xp', 'armada-xp*.dts', "Armada XP based systems"],
- ['dtb-rk3', 'rk3*.dts', "Rockchip RK3xxx based systems"],
- ['dtb-qcom', 'qcom-*.dts', "Qualcomm Snapdragon based systems"],
- ['dtb-zynq', 'zynq-*.dts', "Xilinx Zynq based systems"],
+ ['dtb-am335x', 'am335x-*.dts', "TI AM335x based systems"],
+ ['dtb-am3517', 'am3517*.dts', "TI AM3517 based systems"], # exception: am3517_mt_ventoux.dts
+ ['dtb-am57xx', 'am57xx-*.dts', "TI AM57xx based systems"],
+ ['dtb-armada-370', 'armada-370-*.dts', "Armada 370 based systems"],
+ ['dtb-armada-375', 'armada-375-*.dts', "Armada 375 based systems"],
+ ['dtb-armada-385', 'armada-385-*.dts', "Armada 385 based systems"],
+ ['dtb-armada-388', 'armada-388-*.dts', "Armada 388 based systems"],
+ ['dtb-armada-398', 'armada-398-*.dts', "Armada 398 based systems"],
+ ['dtb-armada-xp', 'armada-xp-*.dts', "Armada XP based systems"],
+ ['dtb-dove', 'dove-*.dts', "Marvell dove based systems"],
+ ['dtb-exynos4', 'exynos4*.dts', "Samsung Exynos 4 based systems"],
+ ['dtb-exynos5', 'exynos5*.dts', "Samsung Exynos 5 based systems"],
+ ['dtb-imx5', 'imx5*.dts', "Freescale i.MX51 and i.MX53 based systems"],
+ ['dtb-imx6', 'imx6*.dts', "Freescale i.MX6 based systems"],
+ ['dtb-imx7', 'imx7*.dts', "Freescale i.MX7 based systems"],
+ ['dtb-k2e', 'k2e-*.dts', "TI Keystone 2 Edison based systems"],
+ ['dtb-keystone', 'k2hk-*.dts', "TI Keystone 2 Hawking/Kepler based systems"],
+ ['dtb-k2l', 'k2l-*.dts', "TI Keystone 2 Lamarr based systems"],
+ ['dtb-meson6', 'meson6-*.dts', "Amlogic Meson 6 based systems"],
+ ['dtb-meson8', 'meson8-*.dts', "Amlogic Meson 8 based systems"],
+ #['dtb-meson8b', 'meson8b-*.dts', "Amlogic Meson 8b based systems"],
+ ['dtb-omap3', 'omap3*.dts', "TI OMAP3 based systems"],
+ ['dtb-omap4', 'omap4*.dts', "TI OMAP4 based systems"],
+ ['dtb-omap5', 'omap5*.dts', "TI OMAP5 based systems"],
+ ['dtb-qcom', 'qcom-*.dts', "Qualcomm Snapdragon based systems"],
+ ['dtb-rk3', 'rk3*.dts', "Rockchip RK3xxx based systems"],
+ ['dtb-ste', 'ste-*.dts', "ST Ericsson based systems"],
+ ['dtb-sun4i', 'sun4i-*.dts', "Allwinner sun4i based systems"],
+ ['dtb-sun5i', 'sun5i-*.dts', "Allwinner sun5i based systems"],
+ ['dtb-sun6i', 'sun6i-*.dts', "Allwinner sun6i based systems"],
+ ['dtb-sun7i', 'sun7i-*.dts', "Allwinner sun7i based systems"],
+ ['dtb-sun8i', 'sun8i-*.dts', "Allwinner sun8i based systems"],
+ ['dtb-sun9i', 'sun9i-*.dts', "Allwinner sun9i based systems"],
+ ['dtb-tegra2', 'tegra20-*.dts', "NVidia Tegra2 based systems"],
+ ['dtb-tegra3', 'tegra30-*.dts', "NVidia Tegra3 based systems"],
+ ['dtb-tegra114', 'tegra114-*.dts', "NVidia Tegra4 based systems"],
+ ['dtb-tegra124', 'tegra124-*.dts', "NVidia Tegra K1 based systems"],
+ ['dtb-vexpress', 'vexpress-*.dts', "ARM Versatile Express machines"],
+ ['dtb-vf500', 'vf500-*.dts', "Freescale Vybrid VF500 based systems"],
+ ['dtb-vf6', 'vf610-*.dts', "Freescale Vybrid VF610 based systems"],
+ ['dtb-xenvm', 'xenvm-*.dts', "Xen virtual machines"],
+ ['dtb-zynq', 'zynq-*.dts', "Xilinx Zynq based systems"],
);
# DTB packages names
1
0
05 Jan '16
Hello community,
here is the log from the commit of package enlightenment-profiles-openSUSE for openSUSE:Factory checked in at 2016-01-05 21:54:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/enlightenment-profiles-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.enlightenment-profiles-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "enlightenment-profiles-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/enlightenment-profiles-openSUSE/enlightenment-profiles-openSUSE.changes 2015-06-11 08:23:31.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.enlightenment-profiles-openSUSE.new/enlightenment-profiles-openSUSE.changes 2016-01-05 21:54:42.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Oct 22 06:51:04 UTC 2015 - simon(a)simotek.net
+- tidy up for leap (remove extra tasks module from shelf) remove
+some modules that the wizard should load.
+
+-------------------------------------------------------------------
Old:
----
enlightenment-profiles-openSUSE-20141002.tar.xz
New:
----
enlightenment-profiles-openSUSE-20151022.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ enlightenment-profiles-openSUSE.spec ++++++
--- /var/tmp/diff_new_pack.61UWcK/_old 2016-01-05 21:54:43.000000000 +0100
+++ /var/tmp/diff_new_pack.61UWcK/_new 2016-01-05 21:54:43.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package e-profiles-openSUSE
+# spec file for package enlightenment-profiles-openSUSE
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,13 +15,14 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: enlightenment-profiles-openSUSE
-Version: 20141002
+Version: 20151022
Release: 0
-License: BSD-2-Clause
Summary: E17 openSUSE profiles
-Url: https://github.com/sleep-walker/e17-openSUSE-profiles
+License: BSD-2-Clause
Group: System/GUI/Other
+Url: https://github.com/sleep-walker/e17-openSUSE-profiles
Source: enlightenment-profiles-openSUSE-%{version}.tar.xz
BuildRequires: eet
# The profile needs default.edj, it presumes it is the right default.edj for the theme
@@ -48,7 +49,6 @@
%install
make install DESTDIR="%buildroot"
-
%files
%defattr(-,root,root)
%doc README.md LICENSE AUTHORS
++++++ enlightenment-profiles-openSUSE-20141002.tar.xz -> enlightenment-profiles-openSUSE-20151022.tar.xz ++++++
++++ 1706 lines of diff (skipped)
1
0