openSUSE Commits
Threads by month
- ----- 2024 -----
- 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 mate-menu for openSUSE:Factory checked in at 2016-01-01 19:47:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mate-menu (Old)
and /work/SRC/openSUSE:Factory/.mate-menu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mate-menu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mate-menu/mate-menu.changes 2015-07-03 00:09:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mate-menu.new/mate-menu.changes 2016-01-01 19:49:59.000000000 +0100
@@ -1,0 +2,6 @@
+Sun Dec 20 16:45:13 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 5.6.6.
+- Rebase 0001-execute-fix.patch and 0002-yast2-software.patch.
+
+-------------------------------------------------------------------
Old:
----
mate-menu-5.6.5a.tar.gz
New:
----
mate-menu-5.6.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mate-menu.spec ++++++
--- /var/tmp/diff_new_pack.gssboE/_old 2016-01-01 19:50:00.000000000 +0100
+++ /var/tmp/diff_new_pack.gssboE/_new 2016-01-01 19:50:00.000000000 +0100
@@ -17,22 +17,22 @@
%define _name mate_menu
-%define _rev b130be3ff9ad
+%define _rev 37bbd306cb0c
Name: mate-menu
-Version: 5.6.5a
+Version: 5.6.6
Release: 0
Summary: Advanced MATE menu
License: GPL-2.0+
Group: System/GUI/Other
Url: https://bitbucket.org/ubuntu-mate/mate-tweak
Source: https://bitbucket.org/ubuntu-mate/%{name}/get/%{version}.tar.gz#/%{name}-%{…
-# PATCH-FIX-UPSTREAM 0001-execute-fix.patch p.drouand(a)gmail.com -- Fix intends in mate-menu execute.py
+# PATCH-FIX-UPSTREAM 0001-execute-fix.patch p.drouand(a)gmail.com -- Fix intends in mate-menu execute.py.
Patch0: 0001-execute-fix.patch
-# PATCH-FIX-UPSTREAM 0001-recent-icon.patch p.drouand(a)gmail.com -- mate-folder.png icon doesn't exits in icon themes, use folder.png
+# PATCH-FIX-UPSTREAM 0001-recent-icon.patch p.drouand(a)gmail.com -- mate-folder.png icon doesn't exist in icon themes, use folder.png.
Patch1: 0001-recent-icon.patch
# PATCH-FIX-OPENSUSE 0002-xterm-no-symlink-dep.patch sor.alexei(a)meowr.ru -- Remove dependency on x-terminal-emulator Debian's symlink.
Patch2: 0002-xterm-no-symlink-dep.patch
-# PATCH-FEATURE-OPENSUSE 0002-yast2-software.patch sor.alexei(a)meowr.ru -- Add YaST2 and GNOME PackageKit package managers
+# PATCH-FEATURE-OPENSUSE 0002-yast2-software.patch sor.alexei(a)meowr.ru -- Use YaST2 and GNOME PackageKit package managers.
Patch3: 0002-yast2-software.patch
BuildRequires: gobject-introspection-devel
BuildRequires: intltool
@@ -52,7 +52,7 @@
Requires: python-xdg
Requires: python-xlib
Requires: xdg-utils
-Recommends: %{name}-lang = %{version}
+Recommends: %{name}-lang
BuildArch: noarch
%glib2_gsettings_schema_requires
@@ -61,7 +61,7 @@
autosession, and many other features.
This menu originated in the Linux Mint distribution and has
-been ported to other distros that ship the MATE Desktop
+been ported to other distributions that ship the MATE Desktop
Environment.
%lang_package
++++++ 0001-execute-fix.patch ++++++
--- /var/tmp/diff_new_pack.gssboE/_old 2016-01-01 19:50:00.000000000 +0100
+++ /var/tmp/diff_new_pack.gssboE/_new 2016-01-01 19:50:01.000000000 +0100
@@ -1,12 +1,11 @@
-diff -aur a/mate_menu/execute.py b/mate_menu/execute.py
--- a/mate_menu/execute.py
+++ b/mate_menu/execute.py
-@@ -50,7 +50,7 @@
+@@ -50,7 +50,7 @@ def Execute( cmd , commandCwd=None):
except Exception, detail:
print detail
return False
- cmd = cmd.split()
+ cmd = cmd.split()
cmd = RemoveArgs(cmd)
-
+
try:
++++++ 0002-yast2-software.patch ++++++
--- /var/tmp/diff_new_pack.gssboE/_old 2016-01-01 19:50:01.000000000 +0100
+++ /var/tmp/diff_new_pack.gssboE/_new 2016-01-01 19:50:01.000000000 +0100
@@ -1,10 +1,9 @@
-diff -aur a/mate_menu/plugins/system_management.py b/mate_menu/plugins/system_management.py
--- a/mate_menu/plugins/system_management.py
+++ b/mate_menu/plugins/system_management.py
-@@ -142,13 +142,13 @@
+@@ -142,13 +142,13 @@ class pluginclass( object ):
def do_standard_items( self ):
- if ( self.showPackageManager == True ):
+ if ( self.showPackageManager == True ):
- if os.path.exists("/usr/bin/software-center") or os.path.exists("/usr/bin/synaptic-pkexec"):
- if os.path.exists("/usr/bin/synaptic-pkexec"):
- Button2 = easyButton("synaptic", self.iconsize, [_("Package Manager")], -1, -1 )
++++++ mate-menu-5.6.5a.tar.gz -> mate-menu-5.6.6.tar.gz ++++++
++++ 14052 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package smtube for openSUSE:Factory checked in at 2016-01-01 19:47:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/smtube (Old)
and /work/SRC/openSUSE:Factory/.smtube.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "smtube"
Changes:
--------
--- /work/SRC/openSUSE:Factory/smtube/smtube.changes 2015-10-02 09:23:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.smtube.new/smtube.changes 2016-01-01 19:49:58.000000000 +0100
@@ -1,0 +2,7 @@
+Sun Dec 27 12:44:41 UTC 2015 - cornelis(a)solcon.nl
+
+- Update to 15.11.0:
+ * Fix for VEVO videos.
+ * Add support for YouTube live streams.
+
+-------------------------------------------------------------------
Old:
----
smtube-15.9.0.tar.bz2
New:
----
smtube-15.11.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ smtube.spec ++++++
--- /var/tmp/diff_new_pack.81HVR0/_old 2016-01-01 19:49:59.000000000 +0100
+++ /var/tmp/diff_new_pack.81HVR0/_new 2016-01-01 19:49:59.000000000 +0100
@@ -1,8 +1,8 @@
#
# spec file for package smtube
#
-# Copyright (c) 2012 Pascal Bleser <pascal.bleser(a)opensuse.org>
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 Pascal Bleser <pascal.bleser(a)opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,13 +16,14 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: smtube
-Version: 15.9.0
+Version: 15.11.0
Release: 0
Summary: Small Youtube Browser
License: GPL-2.0+
Group: Productivity/Multimedia/Video/Players
-URL: http://smtube.sourceforge.net/
+Url: http://smtube.sourceforge.net/
Source0: http://sourceforge.net/projects/smtube/files/SMTube/%{version}/smtube-%{ver…
# Fix 'File is compiled without RPM_OPT_FLAGS'
Patch0: %{name}-src_%{name}.pro.patch
++++++ smtube-15.9.0.tar.bz2 -> smtube-15.11.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/Changelog new/smtube-15.11.0/Changelog
--- old/smtube-15.9.0/Changelog 2015-09-25 23:33:23.000000000 +0200
+++ new/smtube-15.11.0/Changelog 2015-11-18 01:21:40.000000000 +0100
@@ -1,3 +1,16 @@
+Version 15.11:
+
+(2015-11-17)
+ * Add support for YouTube live streams.
+ * Add the Hebrew translation.
+
+(2015-11-10)
+ * Fix the signature code.
+
+(2015-11-04)
+ * Open m3u8 URLs.
+
+
Version 15.9:
(2015-09-24)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/Release_notes.txt new/smtube-15.11.0/Release_notes.txt
--- old/smtube-15.9.0/Release_notes.txt 2015-09-25 23:33:23.000000000 +0200
+++ new/smtube-15.11.0/Release_notes.txt 2015-11-18 01:21:40.000000000 +0100
@@ -1,10 +1,10 @@
-Version 15.9
+Version 15.11
+ * Fix for VEVO videos.
+ * Add support for YouTube live streams.
+Version 15.9
* Fix the 'can't find URL' error when using Qt 5.
-
Version 15.8
-
* Improve support for VEVO videos.
* Possibility to play the audio only.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/create_deb.sh new/smtube-15.11.0/create_deb.sh
--- old/smtube-15.9.0/create_deb.sh 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/create_deb.sh 2015-11-18 23:47:42.000000000 +0100
@@ -4,7 +4,7 @@
cp debian-rvm/changelog-orig debian-rvm/changelog
./get_svn_revision.sh
-#dch -v 15.9.0-`cat svn_revision` "New version"
+#dch -v 15.11.0-`cat svn_revision` "New version"
#dpkg-buildpackage -rfakeroot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/debian-rvm/changelog-orig new/smtube-15.11.0/debian-rvm/changelog-orig
--- old/smtube-15.9.0/debian-rvm/changelog-orig 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/debian-rvm/changelog-orig 2015-11-18 23:47:42.000000000 +0100
@@ -1,3 +1,10 @@
+smtube (15.11.0) precise; urgency=low
+
+ * Fix for VEVO videos.
+ * Add support for YouTube live streams.
+
+ -- Ricardo Villalba <rvm(a)users.sourceforge.net> Wed, 18 Nov 2015 23:43:18 +0100
+
smtube (15.9.0) precise; urgency=low
* Fix the 'can't find URL' error when using Qt 5.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/smtube.desktop new/smtube-15.11.0/smtube.desktop
--- old/smtube-15.9.0/smtube.desktop 2015-09-27 23:14:42.000000000 +0200
+++ new/smtube-15.11.0/smtube.desktop 2015-11-18 02:01:10.000000000 +0100
@@ -1,75 +1,111 @@
[Desktop Entry]
Exec=smtube
-Comment=Browse and search from YouTube
-GenericName=Youtube Browser
+Comment=Browse and search videos from YouTube
+GenericName=YouTube Browser for SMPlayer
Icon=smtube
-Name=YouTube Browser for SMPlayer
+Name=SMTube
Type=Application
Categories=Qt;KDE;AudioVideo;Player;Video;
# Translations
-Comment[gl]=Navegar e buscar en YouTube
-GenericName[gl]=Navegador de YouTube
-Name[gl]=Navegador de YouTube para SMPlayer
-Icon[gl]=smtube
+Comment[am]=ከ ዩቲዩብ መቃኛ እና መፈጊያ
+GenericName[am]=ከ ዩቲዩብ መቃኛ ለ SMP ማጫወቻ
+Name[am]=SMTube
+
+Comment[bg]=Прелистване и търсене в YouTube
+GenericName[bg]=YouTube браузър за SMPlayer
+Name[bg]=SMTube
+
+Comment[cs]=Procházet a hledat na YouTube
+GenericName[cs]=Prohlížeč YouTube pro SMPlayer
+Name[cs]=SMTube
-Comment[ms_MY]=Layar dan gelintar Youtube
-GenericName[ms_MY]=Pelayar Youtube
-Name[ms_MY]=Pelayar YouTube untuk SMPlayer
-Icon[ms_MY]=smtube
+Comment[da]=Gennemse og søg fra YouTube
+GenericName[da]=YouTube-browser til SMPlayer
+Name[da]=SMTube
-Comment[pt]=Explorar e pesquisar vídeos no YouTube
-GenericName[pt]=Explorador YouTube
-Name[pt]=Explorador YouTube para o SMPlayer
-Icon[pt]=smtube
+Comment[de]=YouTube durchsuchen
+GenericName[de]=YouTube-Browser für SMPlayer
+Name[de]=SMTube
-Comment[pt_BR]=Navegar e procurar no YouTube
-GenericName[pt_BR]=Navegador do YouTube
-Name[pt_BR]=Navegador do YouTube para o SMPlayer
-Icon[pt_BR]=smtube
+Comment[el]=Περιήγηση και αναζήτηση στο YouTube
+GenericName[el]=Περιηγητής του YouTube για το SMPlayer
+Name[el]=SMTube
-Comment[ru]=Просмотр и поиск по YouTube
-GenericName[ru]=Браузер YouTube
-Name[ru]=Браузер YouTube для SMPlayer
-Icon[ru]=smtube
+Comment[es]=Permite buscar vídeos de YouTube
+GenericName[es]=Buscador de vídeos de YouTube de SMPlayer
+Name[es]=SMTube
+
+Comment[eu]=Nabigatu eta bilatu YouTuben
+GenericName[eu]=YouTube Nabigatzailea SMPlayer-erako
+Name[eu]=SMTube
+
+Comment[fa]=مرور و جست و جو در یوتیوب
+GenericName[fa]=مرورگر یوتیوب برای SMPlayer
+Name[fa]=SMTube
+
+Comment[fr]=Naviguer et chercher sur YouTube
+GenericName[fr]=Navigateur YouTube pour SMPlayer
+Name[fr]=SMTube
+
+Comment[gl]=Navegar e buscar en YouTube
+GenericName[gl]=Navegador de YouTube para SMPlayer
+Name[gl]=SMTube
+
+Comment[he]=עיין וחפש מתוך YouTube
+GenericName[he]=מעלעל YouTube עבור SMPlayer
+Name[he]=SMTube
+
+Comment[hr]=Pregledavajte i pretražujte YouTube
+GenericName[hr]=YouTube preglednik za SMPlayer
+Name[hr]=SMTube
Comment[it]=Naviga e ricerca su YouTube
-GenericName[it]=Navigatore YouTube
-Name[it]=Navigatore YouTube per SMPlayer
-Icon[it]=smtube
+GenericName[it]=Navigatore YouTube per SMPlayer
+Name[it]=SMTube
Comment[ja]=YouTube を閲覧し検索します
-GenericName[ja]=YouTube ブラウザー
-Name[ja]=SMPlayer の YouTube ブラウザー
-Icon[ja]=smtube
+GenericName[ja]=SMPlayer の YouTube ブラウザー
+Name[ja]=SMTube
-Comment[da]=Gennemse og søg fra YouTube
-GenericName[da]=YouTube-browser
-Name[da]=YouTube-browser til SMPlayer
-Icon[da]=smtube
+Comment[ko]=유투브 검색하기
+GenericName[ko]=SMPlayer 유투브 브라우저
+Name[ko]=SMTube
-Comment[de]=YouTube durchsuchen
-GenericName[de]=Youtube-Browser
-Name[de]=YouTube-Browser für SMPlayer
-Icon[de]=smtube
+Comment[pl]=Przeglądanie i przeszukiwanie YouTube
+GenericName[pl]=Przeglądarka YouTube dla SMPlayer
+Name[pl]=SMTube
-Comment[es]=Permite buscar vídeos de YouTube
-GenericName[es]=Buscar vídeos en YouTube
-Name[es]=El buscador de vídeos de YouTube de SMPlayer
-Icon[es]=smtube
+Comment[pt]=Explorar e pesquisar vídeos no YouTube
+GenericName[pt]=Explorador YouTube para o SMPlayer
+Name[pt]=SMTube
+
+Comment[pt_BR]=Navegar e procurar no YouTube
+GenericName[pt_BR]=Navegador do YouTube para o SMPlayer
+Name[pt_BR]=SMTube
+
+Comment[ru]=Просмотр и поиск по YouTube
+GenericName[ru]=Браузер YouTube для SMPlayer
+Name[ru]=SMTube
+
+Comment[sv]=Bläddra och sök från YouTube
+GenericName[sv]=YouTube Bläddrare för SMplayer
+Name[sv]=SMTube
Comment[uk]=Перегляд і пошук на YouTube
-GenericName[uk]=Переглядач YouTube
-Name[uk]=YouTube переглядач для SMPlayer
-Icon[uk]=smtube
+GenericName[uk]=YouTube переглядач для SMPlayer
+Name[uk]=SMTube
-Comment[ko]=유투브 검색하기
-GenericName[ko]=유투브 브라우저
-Name[ko]=SMPlayer 유투브 브라우저
-Icon[ko]=smtube
+Comment[zh_CN]=浏览 YouTube 或者搜索
+GenericName[zh_CN]=SMPlayer - YouTube 浏览器
+Name[zh_CN]=SMTube
Comment[zh_TW]=在 YouTube 上瀏覽並搜尋
-GenericName[zh_TW]=Youtube 瀏覽器
-Name[zh_TW]=為 SMPlayer 所設計的 YouTube 瀏覽器
-Icon[zh_TW]=smtube
+GenericName[zh_TW]=為 SMPlayer 所設計的 YouTube 瀏覽器
+Name[zh_TW]=SMTube
+
+Comment[ms_MY]=Layar dan gelintar Youtube
+GenericName[ms_MY]=Pelayar YouTube untuk SMPlayer
+Name[ms_MY]=SMTube
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/main.cpp new/smtube-15.11.0/src/main.cpp
--- old/smtube-15.9.0/src/main.cpp 2015-08-05 22:58:44.000000000 +0200
+++ new/smtube-15.11.0/src/main.cpp 2015-11-18 01:33:08.000000000 +0100
@@ -17,6 +17,7 @@
*/
#include "browserwindow.h"
+#include "version.h"
#include <QApplication>
#include <QDir>
#include <QTranslator>
@@ -95,6 +96,8 @@
a.setApplicationName("smtube");
#if QT_VERSION >= 0x040400
+ a.setApplicationVersion(smtubeVersion());
+
// Enable icons in menus
QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, false);
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/retrieveyoutubeurl.cpp new/smtube-15.11.0/src/retrieveyoutubeurl.cpp
--- old/smtube-15.9.0/src/retrieveyoutubeurl.cpp 2015-09-08 00:02:26.000000000 +0200
+++ new/smtube-15.11.0/src/retrieveyoutubeurl.cpp 2015-11-17 03:21:38.000000000 +0100
@@ -60,6 +60,12 @@
connect(dl_player_page, SIGNAL(pageLoaded(QByteArray)), this, SLOT(playerPageLoaded(QByteArray)));
connect(dl_player_page, SIGNAL(errorOcurred(int, QString)), this, SIGNAL(errorOcurred(int, QString)));
#endif
+
+#ifdef YT_LIVE_STREAM
+ dl_stream_page = new LoadPage(manager, this);
+ connect(dl_stream_page, SIGNAL(pageLoaded(QByteArray)), this, SLOT(streamPageLoaded(QByteArray)));
+ connect(dl_stream_page, SIGNAL(errorOcurred(int, QString)), this, SIGNAL(errorOcurred(int, QString)));
+#endif
}
RetrieveYoutubeUrl::~RetrieveYoutubeUrl() {
@@ -199,17 +205,27 @@
if (!player_name.isEmpty()) {
QString url;
+ /*
if (player_name.startsWith("new-")) {
url = QString("http://s.ytimg.com/yts/jsbin/html5player-%1/html5player-new.js").arg(player_name);
} else {
url = QString("http://s.ytimg.com/yts/jsbin/html5player-%1/html5player.js").arg(player_name);
}
+ */
+ url = QString("http://s.ytimg.com/yts/jsbin/player-%1/base.js").arg(player_name);
qDebug() << "RetrieveYoutubeUrl::fetchPlayerPage: url:" << url;
dl_player_page->fetchPage(url);
}
}
#endif
+#ifdef YT_LIVE_STREAM
+void RetrieveYoutubeUrl::fetchStreamPage(const QString & url) {
+ qDebug() << "RetrieveYoutubeUrl::fetchStreamPage:" << url;
+ dl_stream_page->fetchPage(url);
+}
+#endif
+
void RetrieveYoutubeUrl::videoPageLoaded(QByteArray page) {
qDebug() << "RetrieveYoutubeUrl::videoPageLoaded";
@@ -227,7 +243,8 @@
#ifdef YT_USE_SIG
QString html5_player;
#endif
- QRegExp rxplayer("html5player-([\\d,\\w,-]+)\\\\");
+ //QRegExp rxplayer("player-([\\d,\\w,-]+)\\\\");
+ QRegExp rxplayer("jsbin\\/player-([\\d\\w-]+)\\/base\\.js");
if (rxplayer.indexIn(replyString) != -1) {
html5_player = rxplayer.cap(1);
qDebug() << "RetrieveYoutubeUrl::videoPageLoaded: html5player:" << html5_player;
@@ -251,6 +268,19 @@
void RetrieveYoutubeUrl::processVideoPage() {
QString replyString = video_page;
+#ifdef YT_LIVE_STREAM
+ QRegExp rxhlsvp("\"hlsvp\":\"([a-zA-Z0-9\\\\\\/_%\\+:\\.-]+)\"");
+ if (rxhlsvp.indexIn(replyString) != -1) {
+ QString hlsvp = QUrl::fromPercentEncoding(rxhlsvp.cap(1).toLatin1()).replace("\\/", "/");
+ qDebug() << "RetrieveYoutubeUrl::processVideoPage: hlsvp:" << hlsvp;
+
+ if (!hlsvp.isEmpty()) {
+ fetchStreamPage(hlsvp);
+ return;
+ }
+ }
+#endif
+
QString fmtArray;
QRegExp regex("\\\"url_encoded_fmt_stream_map\\\"\\s*:\\s*\\\"([^\\\"]*)");
if (regex.indexIn(replyString) != -1) {
@@ -270,7 +300,7 @@
//qDebug() << "RetrieveYoutubeUrl::videoPageLoaded: fmtArray:" << fmtArray;
- #ifdef YT_GET_VIDEOINFO
+ #ifdef YT_DISCARD_HTTPS
bool allow_https = false;
#else
bool allow_https = true;
@@ -344,6 +374,90 @@
}
#endif
+#ifdef YT_LIVE_STREAM
+void RetrieveYoutubeUrl::streamPageLoaded(QByteArray page) {
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded";
+
+ //qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: page:" << page;
+
+ QRegExp rx("#EXT-X-STREAM-INF:.*RESOLUTION=\\d+x(\\d+)");
+
+ QMap<int, QString> url_map;
+ int best_resolution = 0;
+ int res_height = 0;
+
+ QTextStream stream(page);
+ QString line;
+ do {
+ line = stream.readLine();
+ if (!line.isEmpty()) {
+ //qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: line:" << line;
+ if (rx.indexIn(line) != -1) {
+ res_height = rx.cap(1).toInt();
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: height:" << res_height;
+ if (res_height > best_resolution) best_resolution = res_height;
+ }
+ else
+ if (!line.startsWith("#") && res_height != 0) {
+ url_map[res_height] = line;
+ res_height = 0;
+ }
+ }
+ } while (!line.isNull());
+
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: best_resolution:" << best_resolution;
+
+ // Try to find a URL with the user's preferred quality
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: preferred_quality:" << preferred_quality;
+
+ int selected_quality = 0;
+ int q = preferred_quality;
+
+ if (q == WEBM_1080p || q == MP4_1080p) {
+ if (url_map.contains(1080)) {
+ selected_quality = 1080;
+ } else q = MP4_720p;
+ }
+
+ if (q == WEBM_720p || q == MP4_720p) {
+ if (url_map.contains(720)) {
+ selected_quality = 720;
+ } else q = WEBM_480p;
+ }
+
+ if (q == WEBM_480p || q == FLV_480p) {
+ if (url_map.contains(480)) {
+ selected_quality = 480;
+ } else q = MP4_360p;
+ }
+
+ if (q == WEBM_360p || q == FLV_360p || q == MP4_360p) {
+ if (url_map.contains(360)) {
+ selected_quality = 360;
+ } else q = FLV_240p;
+ }
+
+ if (q == FLV_240p) {
+ if (url_map.contains(240)) {
+ selected_quality = 240;
+ }
+ }
+
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: selected_quality:" << selected_quality;
+
+ if (selected_quality == 0) selected_quality = best_resolution;
+
+ if (url_map.contains(selected_quality)) {
+ QString p_url = url_map.value(selected_quality);
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: p_url:" << p_url;
+ emit gotPreferredUrl(p_url, 0);
+ latest_preferred_url = p_url;
+ } else {
+ emit gotEmptyList();
+ }
+}
+#endif
+
void RetrieveYoutubeUrl::finish(const UrlMap & url_map) {
qDebug() << "RetrieveYoutubeUrl::finish";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/retrieveyoutubeurl.h new/smtube-15.11.0/src/retrieveyoutubeurl.h
--- old/smtube-15.9.0/src/retrieveyoutubeurl.h 2015-07-13 00:09:53.000000000 +0200
+++ new/smtube-15.11.0/src/retrieveyoutubeurl.h 2015-11-17 03:21:38.000000000 +0100
@@ -31,6 +31,11 @@
#define YT_GET_VIDEOINFO
#define YT_DASH_SUPPORT
+#define YT_LIVE_STREAM
+
+#ifdef YT_GET_VIDEOINFO
+#define YT_DISCARD_HTTPS
+#endif
typedef QMap<int,QString> UrlMap;
@@ -103,6 +108,9 @@
#ifdef YT_USE_SIG
void playerPageLoaded(QByteArray page);
#endif
+#ifdef YT_LIVE_STREAM
+ void streamPageLoaded(QByteArray page);
+#endif
void processVideoPage();
@@ -114,6 +122,9 @@
#ifdef YT_USE_SIG
void fetchPlayerPage(const QString & player_name);
#endif
+#ifdef YT_LIVE_STREAM
+ void fetchStreamPage(const QString & url);
+#endif
QString getVideoID(QString video_url);
UrlMap extractURLs(QString fmtArray, bool allow_https, bool use_player);
@@ -142,6 +153,10 @@
QString html5_player;
#endif
+#ifdef YT_LIVE_STREAM
+ LoadPage * dl_stream_page;
+#endif
+
QString video_page;
QString url_title;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/sig.cpp new/smtube-15.11.0/src/sig.cpp
--- old/smtube-15.9.0/src/sig.cpp 2015-06-25 23:36:25.000000000 +0200
+++ new/smtube-15.11.0/src/sig.cpp 2015-11-10 23:19:41.000000000 +0100
@@ -59,7 +59,8 @@
QString sig_code;
if (!sig_name.isEmpty()) {
- int pos = text.indexOf("function " + sig_name);
+ //int pos = text.indexOf("function " + sig_name);
+ int pos = text.indexOf("var " + sig_name + "=function");
if (pos > -1) {
int endpos = text.indexOf("}", pos);
#ifdef ULTRAVERBOSE
@@ -67,6 +68,7 @@
#endif
if (endpos > -1) {
sig_code = text.mid(pos, (endpos-pos)+1);
+ sig_code.replace("var " + sig_name + "=function", "function " + sig_name);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/smtube.pro new/smtube-15.11.0/src/smtube.pro
--- old/smtube-15.9.0/src/smtube.pro 2015-09-24 23:38:16.000000000 +0200
+++ new/smtube-15.11.0/src/smtube.pro 2015-11-17 03:25:59.000000000 +0100
@@ -115,4 +115,5 @@
translations/smtube_uk.ts \
translations/smtube_sq.ts \
translations/smtube_tr.ts \
- translations/smtube_hu.ts
+ translations/smtube_hu.ts \
+ translations/smtube_he_IL.ts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/smtube.rc new/smtube-15.11.0/src/smtube.rc
--- old/smtube-15.9.0/src/smtube.rc 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/src/smtube.rc 2015-11-18 23:47:42.000000000 +0100
@@ -1,7 +1,7 @@
#include <winver.h>
-#define SMTUBE_FILEVERSION 15,9,0,0
-#define SMTUBE_PRODVERSION "15.9.0.0\0"
+#define SMTUBE_FILEVERSION 15,11,0,0
+#define SMTUBE_PRODVERSION "15.11.0.0\0"
VS_VERSION_INFO VERSIONINFO
FILEVERSION SMTUBE_FILEVERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/supportedurls.cpp new/smtube-15.11.0/src/supportedurls.cpp
--- old/smtube-15.9.0/src/supportedurls.cpp 2015-06-12 03:42:44.000000000 +0200
+++ new/smtube-15.11.0/src/supportedurls.cpp 2015-11-04 23:53:15.000000000 +0100
@@ -40,4 +40,5 @@
list << QRegExp("^(https?\\:\\/\\/)?(www\\.)?dailymotion\\.com\\/video\\/.+$");
list << QRegExp("^(https?\\:\\/\\/)?(www\\.)?vimeo\\.com\\/(channels\\/staffpicks\\/)?\\d+$");
+ list << QRegExp("^(https?\\:\\/\\/).*m3u8$");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/translations/smtube_de.ts new/smtube-15.11.0/src/translations/smtube_de.ts
--- old/smtube-15.9.0/src/translations/smtube_de.ts 2015-08-03 00:10:35.000000000 +0200
+++ new/smtube-15.11.0/src/translations/smtube_de.ts 2015-11-04 23:54:06.000000000 +0100
@@ -4,7 +4,7 @@
<message>
<location filename="../about.ui" line="14"/>
<source>About...</source>
- <translation>Über…</translation>
+ <translation>Über …</translation>
</message>
<message>
<location filename="../about.ui" line="33"/>
@@ -368,12 +368,12 @@
<message>
<location filename="../mywebview.cpp" line="48"/>
<source>Save link...</source>
- <translation>Link speichern...</translation>
+ <translation>Verweis speichern …</translation>
</message>
<message>
<location filename="../mywebview.cpp" line="50"/>
<source>Open link in this window</source>
- <translation>Link in diesem Fenster öffnen</translation>
+ <translation>Verweis in diesem Fenster öffnen</translation>
</message>
<message>
<location filename="../mywebview.cpp" line="51"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/translations/smtube_he_IL.ts new/smtube-15.11.0/src/translations/smtube_he_IL.ts
--- old/smtube-15.9.0/src/translations/smtube_he_IL.ts 1970-01-01 01:00:00.000000000 +0100
+++ new/smtube-15.11.0/src/translations/smtube_he_IL.ts 2015-11-17 03:25:59.000000000 +0100
@@ -0,0 +1,460 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="he" version="2.0">
+<context>
+ <name>About</name>
+ <message>
+ <location filename="../about.ui" line="14"/>
+ <source>About...</source>
+ <translation>אודות...</translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="33"/>
+ <source>&Info</source>
+ <translation>&מידע</translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="89"/>
+ <source>&Translators</source>
+ <translation>&מתרגמים</translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="145"/>
+ <source>&License</source>
+ <translation>&רשיון</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="33"/>
+ <source>YouTube%1 Browser for SMPlayer</source>
+ <translation>מעלעל YouTube%1 עבור SMPlayer</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="36"/>
+ <source>Version: %1</source>
+ <translation>גרסא: %1</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="38"/>
+ <source>Portable Edition</source>
+ <translation>מהדורה ניידת</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="41"/>
+ <source>Compiled with Qt %1 (using %2)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="43"/>
+ <source>Visit our website for updates:</source>
+ <translation>בקרו את האתר רשת שלנו לצורך עדכונים:</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="86"/>
+ <source>Many people contributed with translations.</source>
+ <translation>אנשים רבים תרמו בעזרת תרגומים.</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="87"/>
+ <source>You can also help to translate SMTube into your own language.</source>
+ <translation>גם אצם יכולים לתרגם את SMTube לשפה שלכם.</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="88"/>
+ <source>Visit %1 and join a translation team.</source>
+ <translation>בקרו באתר %1 והצטרפו לקבוצת תרגום.</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="90"/>
+ <source>Click here to know the translators from the transifex teams</source>
+ <translation>לחצו כאן כדי להכיר את המתרגמים מתוך קבוצות transifex</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="116"/>
+ <source><b>%1</b> (%2)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>BrowserWindow</name>
+ <message>
+ <location filename="../browserwindow.cpp" line="116"/>
+ <source>Home</source>
+ <translation>בית</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="119"/>
+ <source>Navigation</source>
+ <translation>ניווט</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="127"/>
+ <source>&Quit</source>
+ <translation>י&ציאה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="130"/>
+ <source>&Navigation</source>
+ <translation>&ניווט</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="139"/>
+ <source>&View</source>
+ <translation>&תצוגה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="140"/>
+ <source>Toolbar</source>
+ <translation>סרגל כלים</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="144"/>
+ <source>Statusbar</source>
+ <translation>שורת מצב</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="148"/>
+ <source>&Settings</source>
+ <translation>&הגדרות</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="156"/>
+ <source>&Help</source>
+ <translation>&עזרה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="159"/>
+ <source>&Update the YouTube code</source>
+ <translation>&עדכן קוד YouTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="164"/>
+ <source>About this &release</source>
+ <translation>אודות &שחרור זה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="168"/>
+ <source>&About SMTube</source>
+ <translation>&אודות SMTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="418"/>
+ <source>Connection failed</source>
+ <translation>חיבור נכשל</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="419"/>
+ <source>The video you requested needs to open a HTTPS connection.</source>
+ <translation>הוידאו אשר ביקשת צריך לפתוח חיבור HTTPS.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="420"/>
+ <source>Unfortunately the OpenSSL component, required for it, is not available in your system.</source>
+ <translation>למרבה הצער, מרכיב OpenSSL, דרוש לזאת, אינו זמין בתוך המערכת שלך.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="425"/>
+ <source>No video found</source>
+ <translation>לא נמצא וידאו</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="426"/>
+ <source>It wasn't possible to find the URL for this video.</source>
+ <translation>לא התאפשרה מציאת URL לוידאו זה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="436"/>
+ <location filename="../browserwindow.cpp" line="444"/>
+ <source>Problems with YouTube</source>
+ <translation>בעיות עם YouTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="437"/>
+ <location filename="../browserwindow.cpp" line="445"/>
+ <source>Unfortunately due to changes in YouTube, the video '%1' can't be played.</source>
+ <translation>למרבה הצער, בשל שינויים בתוך YouTube, הוידאו '%1' לא ניתן לניגון.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="438"/>
+ <source>Do you want to update the YouTube code? This may fix the problem.</source>
+ <translation>האם ברצונך לעדכן קוד YouTube? זה עשוי לתקן את הבעיה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="446"/>
+ <source>Maybe updating this application could fix the problem.</source>
+ <translation>אולי עדכון יישום זה יכול לתקן את הבעיה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="464"/>
+ <source>About this release</source>
+ <translation>אודות שחרור זה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="465"/>
+ <source>Due to changes in YouTube, the old SMTube doesn't work anymore.</source>
+ <translation>בשל שינויים בתוך YouTube, SMTube לא עובד עוד.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="466"/>
+ <source>This is a new version of SMTube, written from scratch.</source>
+ <translation>זוהי גרסא חדשה של SMTube, נכתבה מהבסיס.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="467"/>
+ <source>Some functionality is not available yet.</source>
+ <translation>תפקודיות מסוימת אינה זמינה עדיין.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="469"/>
+ <source>Important:</source>
+ <translation>חשוב:</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="470"/>
+ <source>If the VEVO videos fail to play, please use the option %1 in the Help menu.</source>
+ <translation>אם סרטוני VEVO נכשליים להתנגן, אנא השתמש באפשרות %1 בתוך התפריט עזרה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="471"/>
+ <source>Update the YouTube code</source>
+ <translation>עדכן קוד YouTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="239"/>
+ <source>Loading... %1%</source>
+ <translation>כעת טוען... %1%</translation>
+ </message>
+</context>
+<context>
+ <name>CodeDownloader</name>
+ <message>
+ <location filename="../codedownloader.cpp" line="37"/>
+ <source>Downloading...</source>
+ <translation>כעת מוריד...</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="58"/>
+ <source>Connecting to %1</source>
+ <translation>כעת מתחבר אל %1</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="126"/>
+ <source>The Youtube code has been updated successfully.</source>
+ <translation>קוד Youtube התעדכן בהצלחה.</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="127"/>
+ <source>Installed version: %1</source>
+ <translation>גרסא מותקנת: %1</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="128"/>
+ <source>Success</source>
+ <translation>הצלחה</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="133"/>
+ <location filename="../codedownloader.cpp" line="138"/>
+ <source>Error</source>
+ <translation>שגיאה</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="133"/>
+ <source>An error happened writing %1</source>
+ <translation>התרחשה שגיאה בכתיבת %1</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="138"/>
+ <source>An error happened while downloading the file:<br>%1</source>
+ <translation>התרחשה שגיאה במהלך הורדת הקובץ:<br>%1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigDialog</name>
+ <message>
+ <location filename="../configdialog.ui" line="14"/>
+ <source>Settings</source>
+ <translation>הגדרות</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="24"/>
+ <source>&General</source>
+ <translation>&כללי</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="113"/>
+ <source>Add</source>
+ <translation>הוסף</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="78"/>
+ <source>Up</source>
+ <translation>מעלה</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="30"/>
+ <source>Playback</source>
+ <translation>ניגון</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="36"/>
+ <source>Preferred &quality:</source>
+ <translation>איכות &מועדפת:</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="65"/>
+ <source>Players</source>
+ <translation>נגנים</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="124"/>
+ <source>Delete</source>
+ <translation>מחק</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="148"/>
+ <source>Edit</source>
+ <translation>ערוך</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="161"/>
+ <source>A&dd predefined players</source>
+ <translation>הוס&ף נגנים מוגדרים מראש</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="89"/>
+ <source>Down</source>
+ <translation>מטה</translation>
+ </message>
+</context>
+<context>
+ <name>FileChooser</name>
+ <message>
+ <location filename="../filechooser.cpp" line="56"/>
+ <source>Click to select a file or folder</source>
+ <translation>לחץ כדי לבחור קובץ או תיקייה</translation>
+ </message>
+</context>
+<context>
+ <name>MyWebView</name>
+ <message>
+ <location filename="../mywebview.cpp" line="36"/>
+ <source>Open link in a web browser</source>
+ <translation>פתח קישור בתוך דפדפן רשת</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="52"/>
+ <source>Open link in new window</source>
+ <translation>פתח קישור בתוך חלון חדש</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="75"/>
+ <source>Open audio with</source>
+ <translation>פתח אודיו בעזרת</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="91"/>
+ <location filename="../mywebview.cpp" line="116"/>
+ <source>Open with %1</source>
+ <translation>פתח בעזרת %1</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="123"/>
+ <source>Open audio with %1</source>
+ <translation>פתח אודיו בעזרת %1</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="49"/>
+ <source>Copy link to clipboard</source>
+ <translation>העתק קישור ללוח גזירה</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="48"/>
+ <source>Save link...</source>
+ <translation>שמור קישור...</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="50"/>
+ <source>Open link in this window</source>
+ <translation>פתח קישור בתוך חלון זה</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="51"/>
+ <source>Copy text to clipboard</source>
+ <translation>העתק טקסט ללוח גזירה</translation>
+ </message>
+</context>
+<context>
+ <name>PlayerDialog</name>
+ <message>
+ <location filename="../playerdialog.ui" line="14"/>
+ <source>Edit Player</source>
+ <translation>ערוך נגן</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="22"/>
+ <source>&Name:</source>
+ <translation>&שם:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="39"/>
+ <source>&Executable:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="56"/>
+ <source>&Parameters:</source>
+ <translation>&פרמטרים:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="71"/>
+ <source>This player supports &video sites</source>
+ <translation>נגן זה &תומך אתרי וידאו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="80"/>
+ <source>Preferred &quality:</source>
+ <translation>איכות &מועדפת:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="110"/>
+ <source>Add to &menu:</source>
+ <translation>הוסף ל&תפריט:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="28"/>
+ <source>None</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="29"/>
+ <source>Video</source>
+ <translation>וידאו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="30"/>
+ <source>Audio</source>
+ <translation>אודיו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="31"/>
+ <source>Video and audio</source>
+ <translation>וידאו וגם אודיו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="33"/>
+ <source>Default</source>
+ <translation>שגרתי</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../players.cpp" line="101"/>
+ <source>Video sites</source>
+ <translation>אתרי וידאו</translation>
+ </message>
+ <message>
+ <location filename="../players.cpp" line="101"/>
+ <source>Normal streams</source>
+ <translation>זרמים רגילים</translation>
+ </message>
+</context>
+</TS>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/version.cpp new/smtube-15.11.0/src/version.cpp
--- old/smtube-15.9.0/src/version.cpp 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/src/version.cpp 2015-11-18 23:47:42.000000000 +0100
@@ -20,7 +20,7 @@
#define USE_SVN_VERSIONS 0
-#define VERSION "15.9.0"
+#define VERSION "15.11.0"
#if USE_SVN_VERSIONS
#include "svn_revision.h"
1
0
Hello community,
here is the log from the commit of package freshplayerplugin for openSUSE:Factory checked in at 2016-01-01 19:47:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/freshplayerplugin (Old)
and /work/SRC/openSUSE:Factory/.freshplayerplugin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freshplayerplugin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/freshplayerplugin/freshplayerplugin.changes 2015-11-16 18:51:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.freshplayerplugin.new/freshplayerplugin.changes 2016-01-01 19:49:55.000000000 +0100
@@ -1,0 +2,23 @@
+Sat Dec 26 21:14:56 UTC 2015 - mpluskal(a)suse.com
+
+- Use cmake macro
+
+-------------------------------------------------------------------
+Sat Dec 26 18:01:34 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 0.3.4:
+ * graphics: add non-XRender fallback paths.
+ * graphics: use ANGLE GLES2 emulation layer by default.
+ * graphics: restore mouse pointer when moved outside.
+ * audio: request reduced latency when capturing via PulseAudio.
+ * input: detect and handle mouse double clicks.
+ * misc: add `make install` rule.
+ * misc: add option to show version in context menu.
+ * misc: call gdb for crash debugging.
+ * misc: stop using -fvisibility directives.
+- Use system libGLESv2.
+- Rebase clean.patch.
+- Remove cmake-install.patch: hardly reasonable now.
+- Remove Chromium Pepper Flash path appending: handled upstream.
+
+-------------------------------------------------------------------
Old:
----
cmake-install.patch
freshplayerplugin-0.3.3.tar.gz
New:
----
freshplayerplugin-0.3.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ freshplayerplugin.spec ++++++
--- /var/tmp/diff_new_pack.saq9Ww/_old 2016-01-01 19:49:56.000000000 +0100
+++ /var/tmp/diff_new_pack.saq9Ww/_new 2016-01-01 19:49:56.000000000 +0100
@@ -19,17 +19,15 @@
%bcond_with restricted
%bcond_with gtk3
Name: freshplayerplugin
-Version: 0.3.3
+Version: 0.3.4
Release: 0
Summary: PPAPI2NPAPI compatibility layer
License: MIT
Group: Productivity/Networking/Web/Browsers
Url: https://github.com/i-rinat/freshplayerplugin
Source: https://github.com/i-rinat/freshplayerplugin/archive/v%{version}.tar.gz#/%{…
-# PATCH-FIX-OPENSUSE clean.patch boo#937244 i(a)marguerite.su
+# PATCH-FIX-OPENSUSE clean.patch bsc#937244 i(a)marguerite.su
Patch0: clean.patch
-# PATCH-FIX-OPENSUSE cmake-install.patch i(a)marguerite.su -- Install options to CMakeLists.txt.
-Patch1: cmake-install.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkg-config
@@ -91,21 +89,15 @@
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-# Append chromium-pepperflash to pepperflash_path.
-sed -i 's|^\(.*\)\.so"|\1\.so:%{_libdir}/chromium/PepperFlash/libpepflashplayer.so"|' data/freshwrapper.conf.example
# Enable hardware accelerated decoding for PMBS.
%if %{with restricted}
sed -i 's|^\(enable_hwdec = \)0|\11|' data/freshwrapper.conf.example
%endif
%build
-mkdir build
-pushd build
-# FIXME: you should use %%cmake macros
-cmake \
- -DLIB_INSTALL_DIR=%{_libdir} \
+%cmake \
+ -DMOZPLUGIN_INSTALL_DIR=%{_libdir}/browser-plugins \
%if %{with gtk3}
-DWITH_GTK=3 \
%else
@@ -116,12 +108,13 @@
%else
-DWITH_HWDEC=0 \
%endif
- ..
+ -DWITH_GLES2=ON
make %{?_smp_mflags}
-popd
%install
-%make_install -C build
+%cmake_install
+install -Dm 0644 data/freshwrapper.conf.example \
+ %{buildroot}%{_sysconfdir}/freshwrapper.conf
%post
/sbin/ldconfig
++++++ clean.patch ++++++
++++ 272031 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/freshplayerplugin/clean.patch
++++ and /work/SRC/openSUSE:Factory/.freshplayerplugin.new/clean.patch
++++++ freshplayerplugin-0.3.3.tar.gz -> freshplayerplugin-0.3.4.tar.gz ++++++
++++ 213559 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package barcode for openSUSE:Factory checked in at 2016-01-01 19:47:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/barcode (Old)
and /work/SRC/openSUSE:Factory/.barcode.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "barcode"
Changes:
--------
--- /work/SRC/openSUSE:Factory/barcode/barcode.changes 2015-05-18 22:30:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.barcode.new/barcode.changes 2016-01-01 19:49:53.000000000 +0100
@@ -1,0 +2,6 @@
+Sat Dec 26 12:20:13 UTC 2015 - mpluskal(a)suse.com
+
+- Add gpg signature
+- Tiny cleanup with spec-clener
+
+-------------------------------------------------------------------
New:
----
barcode-0.99.tar.xz.sig
barcode.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ barcode.spec ++++++
--- /var/tmp/diff_new_pack.UjWgu9/_old 2016-01-01 19:49:54.000000000 +0100
+++ /var/tmp/diff_new_pack.UjWgu9/_new 2016-01-01 19:49:54.000000000 +0100
@@ -23,14 +23,20 @@
License: GPL-3.0+
Group: Productivity/Graphics/Other
Url: http://www.gnu.org/software/barcode
-Source: ftp://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
+Source0: ftp://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
+Source1: ftp://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz.sig
+Source2: %{name}.keyring
# PATCH-FIX-OPENSUSE barcode-0.99-info.patch
Patch2: %{name}-0.99-info.patch
# PATCH-FIX-UPSTREAM barcode-0.98-leak-fix.patch bnc#537525 -- Fix memory leak by adding call to free.
Patch5: %{name}-0.98-leak-fix.patch
# PATCH-FIX-UPSTREAM barcode-fix-renamed-include.patch malcolmlewis(a)opensuse.org -- Fix renamed gettext include header reference.
Patch6: barcode-fix-renamed-include.patch
-%if %suse_version <= 1220
+BuildRequires: xz
+Requires(post): %{install_info_prereq}
+Requires(preun): %{install_info_prereq}
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%if 0%{?suse_version} <= 1220
BuildRequires: texlive
%else
BuildRequires: makeinfo
@@ -39,9 +45,6 @@
BuildRequires: texlive-tex
BuildRequires: texlive-texinfo
%endif
-BuildRequires: xz
-Requires(pre): %install_info_prereq
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
GNU Barcode is meant to meet most barcode creation needs with a
@@ -69,10 +72,10 @@
%build
%configure
-make
+make %{?_smp_mflags}
%install
-make DESTDIR=%{buildroot} install
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
install -Dm0644 barcode.h %{buildroot}%{_includedir}/barcode.h
install -Dm0644 .libs/libbarcode.a %{buildroot}%{_libdir}/libbarcode.a
1
0
Hello community,
here is the log from the commit of package xtrabackup for openSUSE:Factory checked in at 2016-01-01 19:47:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xtrabackup (Old)
and /work/SRC/openSUSE:Factory/.xtrabackup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xtrabackup"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xtrabackup/xtrabackup.changes 2015-11-12 19:40:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xtrabackup.new/xtrabackup.changes 2016-01-01 19:49:52.000000000 +0100
@@ -1,0 +2,6 @@
+Sat Dec 26 12:50:49 UTC 2015 - astieger(a)suse.com
+
+- xtrabackup does not strictly require mysqld, and this capability
+ is not longer provided by development MariaDB packages boo#959917
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xtrabackup.spec ++++++
--- /var/tmp/diff_new_pack.wromnV/_old 2016-01-01 19:49:53.000000000 +0100
+++ /var/tmp/diff_new_pack.wromnV/_new 2016-01-01 19:49:53.000000000 +0100
@@ -52,7 +52,6 @@
BuildRequires: xz
BuildRequires: zlib-devel
#
-Requires: mysql
Requires: rsync
Recommends: qpress
# This is to ease migration from Percona's generic packages
1
0
Hello community,
here is the log from the commit of package lollypop for openSUSE:Factory checked in at 2016-01-01 19:47:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lollypop (Old)
and /work/SRC/openSUSE:Factory/.lollypop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lollypop"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lollypop/lollypop.changes 2015-12-09 22:24:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.lollypop.new/lollypop.changes 2016-01-01 19:49:49.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Dec 24 05:47:58 UTC 2015 - badshah400(a)gmail.com
+
+- Update to version 0.9.75:
+ + Use Duckduckgo, Google API is dead.
+ +`Add a slider to select covers size.
+
+-------------------------------------------------------------------
Old:
----
lollypop-0.9.74.tar.xz
New:
----
lollypop-0.9.75.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lollypop.spec ++++++
--- /var/tmp/diff_new_pack.Dx2D2y/_old 2016-01-01 19:49:50.000000000 +0100
+++ /var/tmp/diff_new_pack.Dx2D2y/_new 2016-01-01 19:49:50.000000000 +0100
@@ -22,7 +22,7 @@
Name: lollypop
Summary: GNOME music playing application
License: GPL-3.0+
-Version: 0.9.74
+Version: 0.9.75
Release: 0
Url: https://github.com/gnumdk/lollypop
Source0: https://github.com/gnumdk/lollypop/releases/download/%{version}/%{name}-%{v…
++++++ lollypop-0.9.74.tar.xz -> lollypop-0.9.75.tar.xz ++++++
++++ 20493 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package tvbrowser for openSUSE:Factory checked in at 2016-01-01 19:47:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tvbrowser (Old)
and /work/SRC/openSUSE:Factory/.tvbrowser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tvbrowser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tvbrowser/tvbrowser.changes 2014-12-25 23:20:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.tvbrowser.new/tvbrowser.changes 2016-01-01 19:49:47.000000000 +0100
@@ -1,0 +2,23 @@
+Fri Dec 25 23:31:11 UTC 2015 - dl8fcl(a)t-online.de
+
+- Update to version 3.4.2
+- Allow to show program table icons with text in tool tip
+- User should be able to select order of data postprocessing
+- Allow change of visibility of progress bar in ProgressMonitor
+- Allow access to progress monitor from PluginManager
+- Identify label of persons in program info
+- Allow plugins to set indeterminated state of progress bar
+- Fix GTK+ theme with never Java
+- Add parameter for channel sort number
+- Allow export/import of channels
+- Filter favorite ignores filter on data update
+- Command line parameter not forwared for Linux packages
+- Allow origin in parameter library
+- Allow channel synchronization with Android
+- Wrong codepage for theme downloads
+- Weekdays switched in weekday filter component
+- Favorites not save after sorting
+- tooltip wrong in program list
+- Search hint not deleted if search value inserted from clipboard
+
+-------------------------------------------------------------------
Old:
----
tvbrowser_3.4.1.0_src.zip
New:
----
tvbrowser_3.4.2_src.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tvbrowser.spec ++++++
--- /var/tmp/diff_new_pack.ZIWEif/_old 2016-01-01 19:49:49.000000000 +0100
+++ /var/tmp/diff_new_pack.ZIWEif/_new 2016-01-01 19:49:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package tvbrowser
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
Summary: Digital TV guide
License: GPL-3.0+
Group: Productivity/Multimedia/Other
-Version: 3.4.1.0
+Version: 3.4.2
Release: 0
Requires: java >= 1.6
Url: http://tv-browser.org
++++++ NewsPlugin.jar ++++++
Files /var/tmp/diff_new_pack.ZIWEif/_old and /var/tmp/diff_new_pack.ZIWEif/_new differ
1
0
Hello community,
here is the log from the commit of package oprofile for openSUSE:Factory checked in at 2016-01-01 19:47:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/oprofile (Old)
and /work/SRC/openSUSE:Factory/.oprofile.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oprofile"
Changes:
--------
--- /work/SRC/openSUSE:Factory/oprofile/oprofile.changes 2014-09-22 09:23:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.oprofile.new/oprofile.changes 2016-01-01 19:49:45.000000000 +0100
@@ -1,0 +2,31 @@
+Fri Dec 25 10:07:44 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 1.1.0
+ * New/updated Processor Support
+ + Broadcom Brahmma-B15 CPU
+ + Intel Skylake
+ + Intel Airmont
+ + Intel Xeon D
+ * Bug fixes
+ + Prevent dropping of samples when the JVM changes memory
+ mappings
+ + Better handling of IBM Power JVM generated zero-sized
+ mappings
+ + Correct handling of anon_hugepage mmap entries for Java
+ + Improved oparchive documentation and man page
+ + Fixed compile error when using compile fortification
+ + Support IBM Power 8 event code larger than sizeof int
+ + Avoid changing POSIXLY_CORRECT environment variable for
+ processes monitored by operf and ocount
+ + Ensure correct setting of the extra bits (edge, inv, cmask)
+ for Intel processors
+ + Fix default unit masks for Intel Haswell and Broadwell
+ processors
+ + Correctly initialize operf temporary file header information
+- Cleanup spec file with spec-cleaner
+- Use url for source
+- Drop desktop file since binary it is calling is no longer
+ present (at least since version 1.0.0)
+- Update dependencies
+
+-------------------------------------------------------------------
Old:
----
oprofile-1.0.0.tar.bz2
oprofile.desktop
New:
----
oprofile-1.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ oprofile.spec ++++++
--- /var/tmp/diff_new_pack.Cf4GC1/_old 2016-01-01 19:49:47.000000000 +0100
+++ /var/tmp/diff_new_pack.Cf4GC1/_new 2016-01-01 19:49:47.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package oprofile
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,33 +17,39 @@
Name: oprofile
-BuildRequires: binutils-devel
-BuildRequires: fdupes
-BuildRequires: java2-devel-packages
-BuildRequires: libtool
-BuildRequires: libxslt
-BuildRequires: popt-devel
-BuildRequires: qt-devel
-BuildRequires: update-desktop-files
-%ifarch ppc ppc64 ppc64le
-BuildRequires: libpfm-devel >= 4.3.0
-%endif
-Url: http://oprofile.sourceforge.net/
-PreReq: /usr/sbin/groupadd /usr/sbin/useradd
-Version: 1.0.0
+Version: 1.1.0
Release: 0
Summary: System-Wide Profiler for Linux Systems
License: GPL-2.0+ and LGPL-2.1+
Group: Development/Tools/Other
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: %{name}-%{version}.tar.bz2
-Source1: %{name}.desktop
+Url: http://oprofile.sourceforge.net/
+Source0: http://prdownloads.sourceforge.net/oprofile/oprofile-%{version}.tar.gz
Source2: %{name}.rpmlintrc
Source3: baselibs.conf
Source4: jvmpi.h
Source5: README-BEFORE-ADDING-PATCHES
Patch1: %{name}-no-libjvm-version.patch
Patch2: %{name}-pfm-ppc.patch
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: binutils-devel
+BuildRequires: docbook-utils
+BuildRequires: docbook-xsl-stylesheets
+BuildRequires: fdupes
+BuildRequires: gcc-c++
+BuildRequires: java2-devel-packages
+BuildRequires: libICE-devel
+BuildRequires: libtool
+BuildRequires: libxslt
+BuildRequires: pkg-config
+BuildRequires: popt-devel
+BuildRequires: qt-devel
+BuildRequires: zlib-devel
+Requires(pre): %{_sbindir}/groupadd %{_sbindir}/useradd
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%ifarch ppc ppc64 ppc64le
+BuildRequires: libpfm-devel >= 4.3.0
+%endif
%description
OProfile is a system-wide profiler for Linux systems, capable of
@@ -101,14 +107,13 @@
# copy files necessary to build Java agent libraries
# libjvmpi_oprofile.so and libjvmti_oprofile.so
# %S:4 is rpm speak for Source4 (jvmpi.h)
-ln -s %_libdir/jvm/java/include/* java/include
-test -f java/include/jvmpi.h || ln -s %{S:4} java/include
+ln -s %{_libdir}/jvm/java/include/* java/include
+test -f java/include/jvmpi.h || ln -s %{SOURCE4} java/include
%build
-sh autogen.sh
-./configure CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \
- --prefix=/usr --mandir=%{_mandir} --libdir=%{_libdir} \
- --with-java=$PWD/java --enable-gui=qt4
+./autogen.sh
+%configure \
+ --with-java=$PWD/java
# Change DATE/TIME macros to use last change time of oprofile.changes
# See http://lists.opensuse.org/opensuse-factory/2011-05/msg00304.html
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
@@ -116,32 +121,36 @@
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec grep -E -e __DATE__ -e __TIME__ {} +
find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
-make %{?jobs:-j%jobs}
+make %{?_smp_mflags}
%install
-make DESTDIR=$RPM_BUILD_ROOT htmldir=%{_docdir}/oprofile install
-%suse_update_desktop_file -i %name Development Profiling
-rm -f $RPM_BUILD_ROOT%{_libdir}/oprofile/libopagent.*a
+make DESTDIR=%{buildroot} htmldir=%{_docdir}/oprofile install
+rm -f %{buildroot}%{_libdir}/oprofile/libopagent.*a
# Hardlink duplicate files automatically (from package fdupes):
# It doesn't save much, but it keeps rpmlint from breaking the package build.
-%fdupes $RPM_BUILD_ROOT
+%fdupes %{buildroot}
%pre
-/usr/sbin/groupadd -r oprofile 2>/dev/null || :
-/usr/sbin/useradd -r -g oprofile -d /var/lib/empty -s /bin/false -c "Special user account to be used by OProfile" oprofile 2>/dev/null || :
+%{_sbindir}/groupadd -r oprofile 2>/dev/null || :
+%{_sbindir}/useradd -r -g oprofile -d %{_localstatedir}/lib/empty -s /bin/false -c "Special user account to be used by OProfile" oprofile 2>/dev/null || :
%post -n libopagent1 -p /sbin/ldconfig
%postun -n libopagent1 -p /sbin/ldconfig
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files
%defattr(-,root,root)
-/usr/bin/*
-/usr/share/applications/*.desktop
-/usr/share/oprofile
+%{_bindir}/ocount
+%{_bindir}/ophelp
+%{_bindir}/opimport
+%{_bindir}/opannotate
+%{_bindir}/opgprof
+%{_bindir}/opreport
+%{_bindir}/oparchive
+%{_bindir}/opjitconv
+%{_bindir}/op-check-perfevents
+%{_bindir}/operf
+%{_datadir}/oprofile
%{_mandir}/man1/*
%{_libdir}/oprofile/libjvm[tp]i_oprofile.so
%exclude %{_libdir}/oprofile/libjvm[tp]i_oprofile.*a
@@ -150,7 +159,7 @@
%files devel
%defattr(-,root,root)
-/usr/include/*
+%{_includedir}/*
%doc doc/op-jit-devel.html
%dir %{_libdir}/oprofile
%{_libdir}/oprofile/libopagent.so
++++++ oprofile-pfm-ppc.patch ++++++
--- /var/tmp/diff_new_pack.Cf4GC1/_old 2016-01-01 19:49:47.000000000 +0100
+++ /var/tmp/diff_new_pack.Cf4GC1/_new 2016-01-01 19:49:47.000000000 +0100
@@ -6,14 +6,16 @@
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- a/configure.ac
-+++ b/configure.ac
-@@ -184,7 +184,7 @@ AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HA
+Index: oprofile-1.1.0/configure.ac
+===================================================================
+--- oprofile-1.1.0.orig/configure.ac
++++ oprofile-1.1.0/configure.ac
+@@ -205,7 +205,7 @@ rm -f test-for-precise-ip*
+ AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HAVE_PERF_EVENTS, [Kernel support for perf_events exists])
AC_CANONICAL_HOST
- if test "$HAVE_PERF_EVENTS" = "1"; then
- PFM_LIB=
-- if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; then
-+ if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64" -o "$host_cpu" = "powerpc32"; then
- AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; may be provided by libpfm devel or papi devel package])])
- AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
- AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
+ PFM_LIB=
+-if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; then
++if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64" -o "$host_cpu" = "powerpc32"; then
+ AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; may be provided by libpfm devel or papi devel package])])
+ AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
+ AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
1
0
Hello community,
here is the log from the commit of package libatlas3 for openSUSE:Factory checked in at 2016-01-01 19:47:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libatlas3 (Old)
and /work/SRC/openSUSE:Factory/.libatlas3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libatlas3"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libatlas3/libatlas3.changes 2015-08-13 18:10:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libatlas3.new/libatlas3.changes 2016-01-01 19:49:43.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Dec 18 16:21:36 UTC 2015 - jengelh(a)inai.de
+
+- disable nonfunctional parallel build [boo#959154]
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libatlas3.spec ++++++
--- /var/tmp/diff_new_pack.mhVvKY/_old 2016-01-01 19:49:45.000000000 +0100
+++ /var/tmp/diff_new_pack.mhVvKY/_new 2016-01-01 19:49:45.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libatlas3
#
-# 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
@@ -277,8 +277,8 @@
sed -i 's#-DATL_AltiVec##g' Make.inc
sed -i 's#-m64#-m32#g' Make.inc
%endif
-
- make build %{?_smp_mflags}
+ # not parallel safe - boo#959154
+ make build
cd lib
make shared %{?_smp_mflags}
make ptshared %{?_smp_mflags}
1
0
Hello community,
here is the log from the commit of package colordiff for openSUSE:Factory checked in at 2016-01-01 19:47:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/colordiff (Old)
and /work/SRC/openSUSE:Factory/.colordiff.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "colordiff"
Changes:
--------
--- /work/SRC/openSUSE:Factory/colordiff/colordiff.changes 2015-08-07 00:24:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.colordiff.new/colordiff.changes 2016-01-01 19:49:41.000000000 +0100
@@ -1,0 +2,7 @@
+Fri Dec 25 14:03:43 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 1.0.16
+ * see attached CHANGES for details
+- Add gpg signature
+
+-------------------------------------------------------------------
Old:
----
colordiff-1.0.15.tar.gz
New:
----
colordiff-1.0.16.tar.gz
colordiff-1.0.16.tar.gz.sig
colordiff.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ colordiff.spec ++++++
--- /var/tmp/diff_new_pack.VpTe1S/_old 2016-01-01 19:49:43.000000000 +0100
+++ /var/tmp/diff_new_pack.VpTe1S/_new 2016-01-01 19:49:43.000000000 +0100
@@ -17,13 +17,15 @@
Name: colordiff
-Version: 1.0.15
+Version: 1.0.16
Release: 0
Summary: Colour-highlighted 'diff' output
License: GPL-2.0+
Group: Productivity/Text/Utilities
Url: http://www.colordiff.org
Source0: http://www.colordiff.org/%{name}-%{version}.tar.gz
+Source1: http://www.colordiff.org/%{name}-%{version}.tar.gz.sig
+Source2: %{name}.keyring
Patch0: colordiff-fix-permission.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
@@ -41,19 +43,21 @@
%install
mkdir -p %{buildroot}/%{_bindir}
-mkdir -p %{buildroot}/etc
-make INSTALL_DIR=%{buildroot}/%{_bindir} \
+mkdir -p %{buildroot}/%{_sysconfdir}
+make \
+ INSTALL_DIR=%{buildroot}/%{_bindir} \
MAN_DIR=%{buildroot}/%{_mandir}/man1 \
- ETC_DIR=%{buildroot}/etc install
-gzip %{buildroot}/%{_mandir}/man1/*.1
+ ETC_DIR=%{buildroot}%{_sysconfdir} install
sed -i -e "s@%{buildroot}@@" %{buildroot}/%{_bindir}/colordiff
chmod a-x %{buildroot}/%{_mandir}/man1/colordiff.*
%files
%defattr(-,root,root)
%doc README COPYING CHANGES BUGS colordiffrc colordiffrc-lightbg
-%{_bindir}/*
-%{_mandir}/man1/*
%config %{_sysconfdir}/colordiffrc
+%{_bindir}/cdiff
+%{_bindir}/colordiff
+%{_mandir}/man1/cdiff.1%{?ext_man}
+%{_mandir}/man1/colordiff.1%{?ext_man}
%changelog
++++++ colordiff-1.0.15.tar.gz -> colordiff-1.0.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colordiff-1.0.15/CHANGES new/colordiff-1.0.16/CHANGES
--- old/colordiff-1.0.15/CHANGES 2015-06-23 22:36:28.000000000 +0200
+++ new/colordiff-1.0.16/CHANGES 2015-10-25 16:04:01.000000000 +0100
@@ -127,5 +127,10 @@
Missed gitdiff file from tarball, bumping version number for clarity.
+Changes between 1.0.15 and 1.0.16
+
+Support for XDG_CONFIG_HOME (thanks Zhiming Wang), fewer deps for cdiff.sh and
+fixes for diffy and diff-type specification (thanks Peter Wu).
+
# vim: tw=72
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colordiff-1.0.15/cdiff.sh new/colordiff-1.0.16/cdiff.sh
--- old/colordiff-1.0.15/cdiff.sh 2012-10-17 22:14:35.000000000 +0200
+++ new/colordiff-1.0.16/cdiff.sh 2015-06-25 15:37:54.000000000 +0200
@@ -2,7 +2,7 @@
# cdiff.sh - Convenience wrapper for colordiff
#
-# Copyright (C) 2003-2009 Ville Skyttä <ville.skytta(a)iki.fi>
+# Copyright (C) 2003-2015 Ville Skyttä <ville.skytta(a)iki.fi>
# Based on cdiff version 1.4 by eivind(a)FreeBSD.org
#
# This program is free software; you can redistribute it and/or
@@ -30,15 +30,15 @@
case `echo "$file" | perl -ne 'print lc $_'` in
http:*|https:*|ftp:*)
if [ -z "$CDIFF_FETCH" ]; then
- if which curl >/dev/null 2>&1; then
+ if type curl >/dev/null 2>&1; then
CDIFF_FETCH="curl -s"
- elif which wget >/dev/null 2>&1; then
+ elif type wget >/dev/null 2>&1; then
CDIFF_FETCH="wget -e timestamping=off -qO -"
- elif which lwp-request >/dev/null 2>&1; then
+ elif type lwp-request >/dev/null 2>&1; then
CDIFF_FETCH="lwp-request -m GET"
- elif which lynx >/dev/null 2>&1; then
+ elif type lynx >/dev/null 2>&1; then
CDIFF_FETCH="lynx -source"
- elif which elinks >/dev/null 2>&1; then
+ elif type elinks >/dev/null 2>&1; then
CDIFF_FETCH="elinks -source"
fi
if [ -z "$CDIFF_FETCH" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colordiff-1.0.15/colordiff.pl new/colordiff-1.0.16/colordiff.pl
--- old/colordiff-1.0.15/colordiff.pl 2015-06-23 22:36:36.000000000 +0200
+++ new/colordiff-1.0.16/colordiff.pl 2015-10-25 15:54:32.000000000 +0100
@@ -25,7 +25,7 @@
use Getopt::Long qw(:config pass_through no_auto_abbrev);
my $app_name = 'colordiff';
-my $version = '1.0.15';
+my $version = '1.0.16';
my $author = 'Dave Ewart';
my $author_email = 'davee(a)sungate.co.uk';
my $app_www = 'http://www.colordiff.org/';
@@ -66,6 +66,12 @@
my $etcdir = '/etc';
my ($setting, $value);
my @config_files = ("$etcdir/colordiffrc");
+if (defined $ENV{XDG_CONFIG_HOME} && $ENV{XDG_CONFIG_HOME} ne '') {
+ push (@config_files, "$ENV{XDG_CONFIG_HOME}/colordiff/colordiffrc")
+}
+elsif (defined $ENV{HOME}) {
+ push (@config_files, "$ENV{HOME}/.config/colordiff/colordiffrc")
+}
push (@config_files, "$ENV{HOME}/.colordiffrc") if (defined $ENV{HOME});
my $config_file;
my $diff_type = 'unknown';
@@ -166,9 +172,13 @@
"fakeexitcode" => \$enable_fakeexitcode,
"difftype=s" => \$specified_difftype,
"color=s" => \$color_mode
- # TODO - check that specified type is valid, issue warning if not
);
+$_ = $specified_difftype;
+if (defined $_ and not /^diff[cuy]?|(deb|w)diff$/) {
+ print STDERR "Invalid --difftype value\n";
+}
+
if (defined $enable_verifymode) {
# When in verify mode, to ensure consistent output we don't source
# any external config files, so we use built-in defaults
@@ -308,16 +318,21 @@
# Input stream has been read - need to examine it
# to determine type of diff we have.
-my $lastline;
+# $lastline is false if the input is EOF. If true, then either more data is
+# available, or the last read succeeded (and the next read may return EOF).
+# Initially assume that the input is not EOF (for obvious reasons).
+my $lastline = 1;
my $record;
if (defined $specified_difftype) {
$diff_type = $specified_difftype;
# diffy needs at least one line to look at
- if ($diff_type eq 'diffy' and ($_ = <$inputhandle>)) {
- push @inputstream, $_;
+ if ($diff_type eq 'diffy') {
+ if (defined($_ = <$inputhandle>)) {
+ push @inputstream, $_;
+ }
+ $lastline = $_;
}
- $lastline = $_;
}
else {
# Detect diff type, diffy is permitted
1
0
Hello community,
here is the log from the commit of package live-fat-stick for openSUSE:Factory checked in at 2016-01-01 19:47:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/live-fat-stick (Old)
and /work/SRC/openSUSE:Factory/.live-fat-stick.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "live-fat-stick"
Changes:
--------
--- /work/SRC/openSUSE:Factory/live-fat-stick/live-fat-stick.changes 2015-07-21 13:28:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.live-fat-stick.new/live-fat-stick.changes 2016-01-01 19:49:40.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Dec 25 08:46:03 UTC 2015 - cyberorg(a)opensuse.org
+
+- Add live-grub-stick to create multiboot USB using grub2
+
+-------------------------------------------------------------------
New:
----
live-grub-stick
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ live-fat-stick.spec ++++++
--- /var/tmp/diff_new_pack.C3SuiP/_old 2016-01-01 19:49:41.000000000 +0100
+++ /var/tmp/diff_new_pack.C3SuiP/_new 2016-01-01 19:49:41.000000000 +0100
@@ -17,7 +17,7 @@
Name: live-fat-stick
-Version: 0.3.1
+Version: 0.4.0
Release: 0
Summary: Create live usb stick on fat partition
License: GPL-2.0+
@@ -26,6 +26,7 @@
Source0: live-fat-stick
Source1: live-usb-gui
Source2: live-usb-gui.desktop
+Source3: live-grub-stick
Requires: dd_rescue
Requires: fuseiso
Requires: parted
@@ -65,6 +66,43 @@
should work with all recent openSUSE or Ubuntu live iso images. Fedora iso is
not copied but is extracted as it does not support booting from iso.
+%package -n live-grub-stick
+Requires: dd_rescue
+Requires: fuseiso
+Requires: grub2
+Requires: parted
+Requires: util-linux
+Summary: Create multiboot live usb stick using grub2
+Group: System/Management
+
+%description -n live-grub-stick
+Create multi boot USB stick/hard disk with whole iso/s on any partition
+keeping existing data untouched using grub2.
+
+If --isohybrid option is used then it removes all existing data and creates
+new partitions.
+
+run this command as root (su -, not sudo)
+ live-grub-stick isopath stickpartition
+e.g.:
+ live-grub-stick /home/geeko/openSUSE-Edu-li-f-e.x86_64-42.1.1.iso /dev/sdXY
+
+To add various distribution iso to the stick, run the following:
+ For openSUSE : live-grub-stick --suse /path/to/openSUSE-filename.iso /dev/sdXY
+ For Ubuntu : live-grub-stick --ubuntu /path/to/ubuntu-filename.iso /dev/sdXY
+ For Mint : live-grub-stick --mint /path/to/mint-filename.iso /dev/sdXY
+ For Fedora : live-grub-stick --fedora /path/to/fedora-filename.iso /dev/sdXY
+ For isohybrid : live-grub-stick --isohybrid /path/to/isohybrid-filename.iso /dev/sdX
+
+isopath should be full absolute path of iso image and the device should be
+actual partition on the stick like /dev/sdb1, /dev/sdc1,/dev/sdc2...
+
+The stick partition has to be in any format supported by grub2.
+
+run live-grub-stick -l(or --list) to list the possible usb storage devices available.
+
+It is possible to boot multiple distributions and iso images from same device.
+
%package -n live-usb-gui
Requires: live-fat-stick = %{version}
Recommends: zenity kdialog
@@ -88,6 +126,7 @@
%__install -d -m 755 %{buildroot}/%_datadir/applications/
cp %{SOURCE0} %{buildroot}/%_bindir/
cp %{SOURCE1} %{buildroot}/%_bindir/
+cp %{SOURCE3} %{buildroot}/%_bindir/
cp %{SOURCE2} %{buildroot}/%_datadir/applications/
chmod 755 %{buildroot}/usr/bin/*
@@ -103,6 +142,10 @@
%defattr(-,root,root)
%_bindir/live-fat-stick
+%files -n live-grub-stick
+%defattr(-,root,root)
+%_bindir/live-grub-stick
+
%files -n live-usb-gui
%defattr(-,root,root)
%_bindir/live-usb-gui
++++++ live-grub-stick ++++++
#!/bin/bash
# live-grub-stick
#
# Copyright (c) 2015 CyberOrg Info
# Copyright (c) 2014 Mindaugas Baranauskas
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
# Original authors: Jigish Gohil <cyberorg(a)opensuse.org>
# Contributors: Mindaugas Baranauskas <opensuse.lietuviu.kalba(a)gmail.com>
#
# This script creates bootable openSUSE, Fedora or Ubuntu(or clones)
# live usb stick on fat partition
#
# To get POT file for localization, execute:
# bash --dump-po-strings live-grub-stick > live-grub-stick.pot
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin
ionice -c3 -p$$
umount_everything () {
sync
if [[ $distroname != isohybrid ]]; then
umount $isomount &>/dev/null
umount $stickdevpart &>/dev/null
rm -rf $isomount &>/dev/null
umount $stickmount &>/dev/null
while $(mount | grep $stickmount &>/dev/null); do
umount $stickdevpart &>/dev/null
sleep 2
done
rmdir $stickmount &>/dev/null || echo "unable to remove $stickmount, please remove manually"
rm $isopath &>/dev/null
fi
}
clean_up () {
if [[ $1 == user_killed ]] ; then
echo "aborting and cleaning up"
umount_everything
exit 1
else
echo "cleaning up"
umount_everything
echo "Your bootable usb stick is now ready"
echo "have a lot of fun..."
fi
if [[ -f $liveusbgui ]]; then
rm $liveusbgui &>/dev/null
rm "$iso_symlink"
fi
}
trap "clean_up user_killed" SIGINT SIGTERM
need_help() {
cat <<EOF
Create multi boot USB stick/hard disk with whole iso/s on vfat/fat32 partition
keeping existing data untouched.
Note: File size greater than 4G is not usable on vfat/fat32 partition so the
live CD/DVD iso file should not exceed this limit.
Note2: Install 32bit/x86 iso on the stick first if creating multiboot with both
x86 and x86_64 arch images.
Note3: Requires: grub2, fuseiso and dd_rescue/ddrescue installed on the system running this.
Run this command as root (su -, not sudo)
live-grub-stick isopath stickpartition
e.g.:
live-grub-stick /home/geeko/openSUSE-Edu-li-f-e-12.2-1-i686.iso /dev/sdXY
To add various distribution iso to the stick, run the following:
For openSUSE : live-grub-stick --suse /path/to/openSUSE-filename.iso /dev/sdXY
For Ubuntu : live-grub-stick --ubuntu /path/to/ubuntu-filename.iso /dev/sdXY
For Mint : live-grub-stick --mint /path/to/mint-filename.iso /dev/sdXY
For Fedora : live-grub-stick --fedora /path/to/fedora-filename.iso /dev/sdXY
For isohybrid : live-grub-stick --isohybrid /path/to/isohybridimage.iso /dev/sdX
isopath should be full absolute path of iso image and the device should be
actual partition on the stick like /dev/sdb1, /dev/sdc1,/dev/sdc2...
The stick partition has to be vfat/fat32 format if the image is not isohybrid.
Please note that using isohybrid option will remove all existing data on the USB device
and create new partitions.
Run live-grub-stick -l(or --list) to list the possible usb storage devices available.
openSUSE users can install it via 1-click from here:
http://software.opensuse.org/package/live-grub-stick
EOF
}
if [[ $(id -u) != 0 ]]; then
echo "run this command as root"
need_help
exit 1
fi
while [ $# -gt 2 ]; do
case $1 in
--fedora)
distroname=fedora
;;
--suse|--opensuse)
distroname=suse
;;
--ubuntu|--mint)
distroname=ubuntu
;;
--isohybrid)
distroname=isohybrid
;;
*)
echo "invalid arg -- $1"
need_help
exit 1
;;
esac
shift
done
if [ "$1" == "-h" -o "$1" == "--help" ]; then
need_help
exit
fi
if [ "$1" == "-l" -o "$1" == "--list" ]; then
echo "Here is the list of possible usb storage devices on your computer,"
echo "use the correct one, usually the one with a number at the end:"
echo "$(for i in $(find /dev/disk/by-path/ |grep usb); do readlink -f $i;done)"
exit
fi
if [[ x"$1" == x ]]; then
echo "Requires first argument as iso image path"
need_help
exit 1
fi
if [[ x"$2" == x ]]; then
echo "Requires second arguement as device partition path, /dev/sdb1 for example"
need_help
echo "Here is the list of possible usb storage devices on your computer, "
echo "use the correct one, usually the one with a number at the end: "
echo "$(for i in $(find /dev/disk/by-path/ |grep usb); do readlink -f $i;done)"
exit 1
fi
if [[ ! -e $(which grub2-install) ]]; then
echo "grub2-install command not found, please install grub2 package"
exit 1
fi
if [[ ! -e $(which fuseiso) ]]; then
echo "fuseiso not found, please install fuseiso package"
exit 1
fi
if [[ ! -e $1 ]]; then
echo "File $1 does not exist"
exit 1
fi
if [[ ! -e $2 ]]; then
echo "Device $2 does not exist"
exit 1
fi
distroname=${distroname:-suse}
if [[ $distroname != suse ]] && [[ $distroname != ubuntu ]] && [[ $distroname != fedora ]] && [[ $distroname != isohybrid ]]; then
echo "this distribution's iso is currently not supported, patch welcome"
exit 1
fi
#variables
isomount=$(mktemp -d)
isopath=$(readlink -f "$1")
iso_symlink=$(mktemp) ; rm $iso_symlink ; ln -s "$isopath" $iso_symlink
stickmount=$(mktemp -d)
stickdevice=$(echo $2 | sed 's/[0-9]*//g')
stickbase=$(basename $2)
isoname=$(basename "$1")
isonametr=$(echo $isoname | tr " " _)
isonameshort=$(echo $isoname | cut -d "-" -f 1,2,3 | tr " " _)
stickuuid=$(blkid -s UUID -o value $2)
isolabel=$(blkid -s LABEL -o value $1)
stickpart=$(basename $2 | sed 's/[a-z]*//g')
grub2path=$stickmount/boot/grub2
grubcfgpath=$grub2path/grub.cfg
stickdevpart=$2
liveusbgui=/tmp/liveusbgui
benice="nice ionice -c3"
if [[ $isoname != $isonametr ]]; then
echo "removing space/s from iso name copied to the destination disk"
export isoname=$isonametr
fi
if [[ ! -h /dev/disk/by-uuid/$stickuuid ]]; then
echo "wrong uuid detected, please file bug with output of: blkid $2"
fi
if echo $isoname | grep -qi "Li-f-e"; then
isonameshort=openSUSE-Edu-Li-f-e
fi
are_you_sure () {
echo -n "$1 [$2/$3]? "
while true; do
read answer
case $answer in
y | Y | yes | YES ) answer="y"; break;;
n | N | no | NO ) exit;;
*) echo "Please answer (y)es or (n)o.";;
esac
done
}
try_cp_with_progress () {
sync
if [ -x /usr/bin/dd_rescue ]; then
$benice dd_rescue -A -b 4M -y 4M "$iso_symlink" "$2"
elif [ -x /usr/bin/ddrescue ]; then
$benice ddrescue --force --block-size=4M "$iso_symlink" "$2"
else
echo "dd_rescue or ddrescue not found, please install one of them, using dd for now"
$benice dd if="$iso_symlink" of="$2" bs=4M
fi
}
cfg_setup() {
mount $stickdevpart $stickmount &>/dev/null
fuseiso $isopath $isomount &>/dev/null
if [[ $distroname == suse ]]; then
if [[ ! -f $stickmount/fatstick ]]; then
if [[ -d $stickmount/boot ]];then
mkdir -p $stickmount/boot
fi
echo "copying grub2 files to $stickmount/boot/"
cp -r $isomount/boot/grub2 $stickmount/boot/
fi
appendsection="\$linux (loop)/boot/x86_64/loader/linux isofrom=/dev/disk/by-uuid/$stickuuid:/$isoname isofrom_device=/dev/disk/by-uuid/$stickuuid isofrom_system=/$isoname loader=syslinux splash=silent quiet showopts"
appendsection2="\$initrd (loop)/boot/x86_64/loader/initrd"
fi
if [[ $distroname == ubuntu ]]; then
if [[ -e $isomount/casper/vmlinuz ]]; then
vmlinuzfile=/casper/vmlinuz
else
vmlinuzfile=/casper/vmlinuz.efi
fi
appendsection="linux (loop)/$vmlinuzfile boot=casper iso-scan/filename=/$isoname quiet splash"
appendsection2="initrd (loop)/casper/initrd.lz"
fi
if [[ $distroname == fedora ]]; then
appendsection="linux (loop)/isolinux/vmlinuz0 iso-scan/filename=/$isoname root=LABEL=$isolabel rootfstype=auto ro rd.live.image rd.luks=0 rd.md=0 rd.dm=0 quiet rhgb"
appendsection2="initrd (loop)/isolinux/initrd0.img"
fi
umount $isomount &>/dev/null
}
grub2_stuff () {
echo "installing grub2 on $stickdevice"
mkdir -p $stickmount/boot
grub2-install --target=i386-pc --boot-directory=$stickmount/boot $stickdevice
echo "setting $stickdevice partition $stickpart active"
parted $stickdevice set $stickpart boot on &>/dev/null
cfg_setup
}
add_harddisk_section () {
if ! grep -q localboot $grubcfgpath; then
cat <<EOF >>$grubcfgpath
label harddisk
localboot 0x80
EOF
fi
}
add_menu_section_suse () {
echo nothing
}
create_grub_cfg() {
cat <<EOF >$grubcfgpath
insmod fat
insmod ext2
insmod part_gpt
insmod efi_gop
insmod iso9660
insmod chain
insmod linux
insmod echo
insmod configfile
insmod boot
insmod search_label
insmod search_fs_file
insmod search
insmod search_fs_uuid
insmod ls
insmod video
insmod video_fb
insmod normal
insmod test
insmod sleep
insmod png
insmod gettext
insmod gzio
insmod efi_uga
if [ \$grub_platform = "efi" ]; then
set linux=linuxefi
set initrd=initrdefi
else
set linux=linux
set initrd=initrd
fi
set default=0
set font=/boot/grub2/fonts/unicode.pf2
if loadfont \$font ;then
set gfxmode=auto
insmod gfxterm
insmod gfxmenu
terminal_input gfxterm
if terminal_output gfxterm; then true; else
terminal gfxterm
fi
fi
if loadfont /boot/grub2/themes/openSUSE/ascii.pf2;then
loadfont /boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
loadfont /boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont /boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont /boot/grub2/themes/openSUSE/ascii.pf2
set theme=/boot/grub2/themes/openSUSE/theme.txt
background_image -m stretch /boot/grub2/themes/openSUSE/background.png
fi
set timeout=10
EOF
}
add_menu_section () {
cat <<EOF >>$grubcfgpath
menuentry "$isonameshort" --class $distroname --class os {
loopback loop /$isoname
echo Loading linux...
set gfxpayload=keep
$appendsection
echo Loading initrd...
$appendsection2
}
EOF
}
echo "Please make sure the following information is correct:"
echo "iso name: $isoname distro: $distroname stick device: $stickdevice"
echo "stick uuid: /dev/disk/by-uuid/$stickuuid stick partition: $stickpart"
if [[ ! -f $liveusbgui ]]; then
are_you_sure "continue ?" "y" "n"
fi
if [[ $distroname == isohybrid ]];then
try_cp_with_progress "$1" "$2"
else
mkdir $isomount $stickmount &>/dev/null
if ! mount $2 $stickmount &>/dev/null; then
echo "unable to mount the usb stick partition"
exit 1
fi
if [[ -e $stickmount/$isoname ]];then
isopath=$stickmount/$isoname
else
isopath=$iso_symlink
fi
if [[ -f $stickmount/fatstick ]]; then
echo "the stick is already bootable stick"
if ! grep -q $isonameshort $grubcfgpath; then
echo "adding new image to boot menu"
cfg_setup
add_menu_section
fi
else
grub2_stuff
echo "creating menu entries"
create_grub_cfg
add_menu_section
umount $stickmount &>/dev/null || true
umount $stickdevpart &>/dev/null || true
umount $isopath &>/dev/null || true
fi
touch $stickmount/fatstick
if [[ ! -f $stickmount/$isoname ]]; then
echo "copying $isoname to usb stick"
try_cp_with_progress "$1" "$stickmount/$isoname"
else
echo "using existing $isoname on the stick"
fi
thisscript=$(readlink -f $0)
cp $thisscript $stickmount/ &>/dev/null || true
fi
clean_up
1
0
Hello community,
here is the log from the commit of package mpv for openSUSE:Factory checked in at 2016-01-01 19:47:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpv (Old)
and /work/SRC/openSUSE:Factory/.mpv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mpv"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mpv/mpv.changes 2015-12-16 17:43:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mpv.new/mpv.changes 2016-01-01 19:49:38.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Dec 24 12:46:33 UTC 2015 - tchvatal(a)suse.com
+
+- Provide and obsolete mplayer2 as per packman discussion
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mpv.spec ++++++
--- /var/tmp/diff_new_pack.aR6L6W/_old 2016-01-01 19:49:40.000000000 +0100
+++ /var/tmp/diff_new_pack.aR6L6W/_new 2016-01-01 19:49:40.000000000 +0100
@@ -88,6 +88,9 @@
BuildRequires: pkgconfig(zlib)
# Used via LUA scripts
Recommends: youtube-dl
+# Obsoletion of mplayer2 that is dead for 2 years now
+Provides: mplayer2 = 20140101
+Obsoletes: mplayer2 < 20140101
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# PDF manual.
# JIT for lua.
1
0
Hello community,
here is the log from the commit of package pfstools for openSUSE:Factory checked in at 2016-01-01 19:47:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pfstools (Old)
and /work/SRC/openSUSE:Factory/.pfstools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pfstools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pfstools/pfstools.changes 2013-04-24 09:47:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pfstools.new/pfstools.changes 2016-01-01 19:49:37.000000000 +0100
@@ -1,0 +2,54 @@
+Thu Dec 17 21:49:15 UTC 2015 - p.drouand(a)gmail.com
+
+- Fix octave dependency
+
+-------------------------------------------------------------------
+Thu Sep 17 15:09:12 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 2.0.4
+ * fixed: added installation of octave-based scripts: pfsoctavelum
+ pfsoctavergb pfsstat
+ * fixed: libraries installed in lib64 if needed
+ * fixed: added "so" version to the pfs.so library
+ * fixed: Replaced depreciated OctaveMap for compatibility with octave 4.0.0
+- Changes from version 2.0.0
+ * added: Starting from pfstools 2.0.0, pfstmo and pfscalibration
+ are included in the pfstools source package
+ * changed: support for automake dropped in favour of cmake
+ * fixed: pfsinpfm and pfsoutpfm now handle both big and little endian
+ files correctly
+ * fixed: pfsinpfm and pfsoutpfm do not flip images (top-bottom)
+ * added: new tone-mapping operator: pfstmo_mai11
+ * changed: Thoroughly updated README files
+ * fixed: several issues with octave scripts (compatibility with newer
+ Octave releases), in particular pfs_write_rgb
+- Add dependencies following upstream changes
+ * cmake
+ * doxygen
+ * gsl-devel
+ * hdf5-devel
+ * opencv-devel
+ * fftw3-threads-devel instead of fftw3-devel
+ * opencv-devel
+ * pkgconfig(libexif)
+- Re-enable building against octave
+- Split out some tools into their own packages
+ * libpfs-2
+ * pfscalign
+ * pfscalibration
+ * pfstmo
+ * pfsview
+ * pfsglview
+ * pfstools-exr
+ * pfstools-imgmagick
+ * pfstools-octave
+- Remove obsolete patches
+ * pfstools-octave.patch
+ * pfstools-stringcompare.patch
+ * pfstools-no-debug-mangling.patch
+- Added patches
+ * pfstools-maptype.patch
+ * pfstools-octinstall.patch
+ * pfstools-fix-libpfs-linkage.patch
+
+-------------------------------------------------------------------
Old:
----
pfstools-1.8.4.tar.bz2
pfstools-no-debug-mangling.patch
pfstools-octave.patch
pfstools-stringcompare.patch
New:
----
pfstools-2.0.4.tgz
pfstools-fix-libpfs-linkage.patch
pfstools-maptype.patch
pfstools-octinstall.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pfstools.spec ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package pfstools
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,34 +15,41 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+%define _libname libpfs2
Name: pfstools
-Version: 1.8.4
+Version: 2.0.4
Release: 0
-Source: %{name}-%{version}.tar.bz2
-Patch: %{name}-octave.patch
+Source: http://sourceforge.net/projects/pfstools/files/pfstools/%{version}/%{name}-…
Patch1: %{name}-gcc.patch
-Patch2: pfstools-stringcompare.patch
+Patch2: pfstools-maptype.patch
+Patch3: pfstools-octinstall.patch
Patch4: pfstools-stdlib.patch
Patch5: pfstools-1.8.1-fix-return-in-nonvoid.patch
-Patch6: pfstools-no-debug-mangling.patch
+Patch6: pfstools-fix-libpfs-linkage.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://www.mpi-sb.mpg.de/resources/pfstools/
BuildRequires: Mesa
BuildRequires: OpenEXR-devel
BuildRequires: blas
-BuildRequires: fftw3-devel
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: fftw3-threads-devel
BuildRequires: freeglut-devel
+BuildRequires: gsl-devel
+BuildRequires: hdf5-devel
BuildRequires: lapack
BuildRequires: libMagick++-devel
BuildRequires: libnetpbm-devel
BuildRequires: libqt4-devel
BuildRequires: libtiff-devel
BuildRequires: libtool
+BuildRequires: opencv-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
+BuildRequires: pkgconfig(libexif)
BuildRequires: pkgconfig(glu)
-#BuildRequires: octave-devel
+BuildRequires: octave-devel
Requires: dcraw
Summary: High Dynamic Range Images and Video manipulation tools
License: GPL-2.0+ and LGPL-2.1+
@@ -55,8 +62,92 @@
using a simple generic file format (pfs) for HDR data. The concept of
the pfstools is similar to netpbm package for low-dynamic range images.
+%package -n %{_libname}
+Summary: pfstools shared libraries
+Group: System/Libraries
+
+%description -n %{_libname}
+pfstools package is a set of command line (and one GUI) programs for
+reading, writing, manipulating and viewing high-dynamic range (HDR)
+images and video frames. All programs in the package exchange data
+using a simple generic file format (pfs) for HDR data. The concept of
+the pfstools is similar to netpbm package for low-dynamic range images.
+
+%package -n pfscalign
+Summary: Align image stack
+Group: Productivity/Multimedia/Other
+
+%description -n pfscalign
+Align multiple exposures using homographic transformation. The command
+uses a similar feature-point based method as most panorama stitching software.
+
+%package -n pfscalibration
+Summary: Photometric Calibration of HDR and LDR Cameras
+Group: Productivity/Multimedia/Other
+Requires: dcraw
+Requires: jhead
+%{perl_requires}
+%{?libperl_requires}
+
+%description -n pfscalibration
+A photographic camera with a standard CCD sensor is able to acquire an
+image with simultaneous dynamic range of not more than 1:1000. The
+basic idea to create an image with a higher dynamic range is to combine
+multiple images with different exposure settings, thus making use of
+available sequential dynamic range.
+
+%package -n pfstmo
+Summary: Tone Mapping Operators for High Dynamic Range Images
+Group: Productivity/Multimedia/Other
+
+%description -n pfstmo
+pfstmo package contains the implementation of state-of-the-art tone
+mapping operators. The motivation here is to provide an implementation
+of tone mapping operators suitable for convenient processing of both
+static images and animations.
+
+%package -n pfsview
+Summary: Qt-based viewer for HDR files
+Group: Productivity/Multimedia/Other
+
+%description -n pfsview
+pfsview is a viewer programs based on qt4 for viewing HDR graphics files.
+
+%package -n pfsglview
+Summary: GL-based viewer for HDR files
+Group: Productivity/Multimedia/Other
+
+%description -n pfsglview
+pfsglview is aviewer programs based on OpenGL for viewing HDR graphics files.
+
+%package exr
+Summary: EXR file import and export for PFS tools
+Group: Productivity/Multimedia/Other
+
+%description exr
+This package contains input and output filters for EXR files
+to and from the HDR graphics file format used in pfstools.
+
+%package imgmagick
+Summary: ImageMagick file import for PFS tools
+Group: Productivity/Multimedia/Other
+
+%description imgmagick
+This package contains input and output filters based in
+ImageMagick to and from the HDR graphics file format used in pfstools.
+
+%package octave
+Summary: Octave interaction with PFS tools
+Group: Productivity/Multimedia/Other
+Requires: octave
+
+%description octave
+The pfstools-octave package contains programs to process red, green and blue
+channels or luminance channels in pfs stream using Octave.
+
+
%package devel
-Requires: %{name} = %{version}
+Requires: %{_libname} = %{version}
Summary: High Dynamic Range Images and Video manipulation tools
License: GPL-2.0+
Group: Development/Libraries/C and C++
@@ -70,46 +161,187 @@
%prep
%setup -q
-%patch
%patch1
-%patch2
+%patch2 -p1
+%patch3 -p1
%patch4
%patch5 -p1
%patch6 -p1
%build
-autoreconf -f -i
-%configure --disable-static --with-pic --disable-octave --with-qtdir=/usr
-make %{?jobs:-j%jobs}
+%cmake
+make %{?_smp_mflags}
%install
-make DESTDIR=$RPM_BUILD_ROOT install
+cd build
+%make_install
%{__rm} -f %{buildroot}%{_libdir}/*.la
grep -r include %{buildroot}%{_includedir} | awk -F: '{print $2}'
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
-%post -p /sbin/ldconfig
+%post -n %{_libname} -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%postun -n %{_libname} -p /sbin/ldconfig
%files
%defattr(-,root,root)
-%doc AUTHORS ChangeLog COPYING INSTALL NEWS README TODO
-%{_bindir}/*
-%{_mandir}/man?/*
-%{_libdir}/*.so.*
-/usr/share/%{name}
-# temporary removed
-#%{_libdir}/octave/*/site/oct/*/pfstools
-#%_datadir/octave/*/site/m/pfstools
+%doc AUTHORS ChangeLog COPYING README TODO doc/faq.txt
+%dir %{_datadir}/%{name}
+%{_bindir}/pfsabsolute
+%{_bindir}/pfscat
+%{_bindir}/pfsclamp
+%{_bindir}/pfscut
+%{_bindir}/pfsextractchannels
+%{_bindir}/pfsdisplayfunction
+%{_bindir}/pfsflip
+%{_bindir}/pfsgamma
+%{_bindir}/pfsin
+%{_bindir}/pfsindcraw
+%{_bindir}/pfsinpfm
+%{_bindir}/pfsinppm
+%{_bindir}/pfsinrgbe
+%{_bindir}/pfsintiff
+%{_bindir}/pfsout
+%{_bindir}/pfsouthdrhtml
+%{_bindir}/pfsoutpfm
+%{_bindir}/pfsoutppm
+%{_bindir}/pfsoutrgbe
+%{_bindir}/pfsouttiff
+%{_bindir}/pfspad
+%{_bindir}/pfspanoramic
+%{_bindir}/pfsrotate
+%{_bindir}/pfssize
+%{_bindir}/pfstag
+%{_bindir}/pfscolortransform
+%{_bindir}/pfsretime
+%{_datadir}/pfstools/hdrhtml_c_b2.csv
+%{_datadir}/pfstools/hdrhtml_c_b3.csv
+%{_datadir}/pfstools/hdrhtml_c_b4.csv
+%{_datadir}/pfstools/hdrhtml_c_b5.csv
+%{_datadir}/pfstools/hdrhtml_default_templ/
+%{_datadir}/pfstools/hdrhtml_hdrlabs_templ/
+%{_datadir}/pfstools/hdrhtml_t_b2.csv
+%{_datadir}/pfstools/hdrhtml_t_b3.csv
+%{_datadir}/pfstools/hdrhtml_t_b4.csv
+%{_datadir}/pfstools/hdrhtml_t_b5.csv
+%{_mandir}/man1/pfsabsolute.1.gz
+%{_mandir}/man1/pfscat.1.gz
+%{_mandir}/man1/pfsclamp.1.gz
+%{_mandir}/man1/pfscut.1.gz
+%{_mandir}/man1/pfsdisplayfunction.1.gz
+%{_mandir}/man1/pfsextractchannels.1.gz
+%{_mandir}/man1/pfsflip.1.gz
+%{_mandir}/man1/pfsgamma.1.gz
+%{_mandir}/man1/pfsin.1.gz
+%{_mandir}/man1/pfsindcraw.1.gz
+%{_mandir}/man1/pfsinpfm.1.gz
+%{_mandir}/man1/pfsinppm.1.gz
+%{_mandir}/man1/pfsinrgbe.1.gz
+%{_mandir}/man1/pfsintiff.1.gz
+%{_mandir}/man1/pfsout.1.gz
+%{_mandir}/man1/pfsouthdrhtml.1.gz
+%{_mandir}/man1/pfsoutpfm.1.gz
+%{_mandir}/man1/pfsoutppm.1.gz
+%{_mandir}/man1/pfsoutrgbe.1.gz
+%{_mandir}/man1/pfsouttiff.1.gz
+%{_mandir}/man1/pfspad.1.gz
+%{_mandir}/man1/pfspanoramic.1.gz
+%{_mandir}/man1/pfsrotate.1.gz
+%{_mandir}/man1/pfssize.1.gz
+%{_mandir}/man1/pfstag.1.gz
+%{_mandir}/man1/pfscolortransform.1.gz
+%{_mandir}/man1/pfsretime.1.gz
+
+%files -n %{_libname}
+%defattr(-,root,root)
+%{_libdir}/libpfs.so.*
%files devel
%defattr(-,root,root)
-%doc doc/{pfs_format_spec.pdf,faq.txt}
+%doc doc/faq.txt
%{_includedir}/*
%{_libdir}/pkgconfig/*.pc
-%{_libdir}/*.so
+%{_libdir}/libpfs.so
+
+%files -n pfscalign
+%defattr(-,root,root)
+%{_bindir}/pfsalign
+%{_mandir}/man1/pfsalign.1.gz
+
+%files -n pfscalibration
+%defattr(-,root,root)
+%{_bindir}/dcraw2hdrgen
+%{_bindir}/jpeg2hdrgen
+%{_bindir}/pfshdrcalibrate
+%{_bindir}/pfsinhdrgen
+%{_bindir}/pfsinme
+%{_bindir}/pfsplotresponse
+%{_mandir}/man1/dcraw2hdrgen.1.gz
+%{_mandir}/man1/jpeg2hdrgen.1.gz
+%{_mandir}/man1/pfshdrcalibrate.1.gz
+%{_mandir}/man1/pfsinhdrgen.1.gz
+%{_mandir}/man1/pfsinme.1.gz
+%{_mandir}/man1/pfsplotresponse.1.gz
+
+%files -n pfstmo
+%defattr(-,root,root)
+%{_bindir}/pfstmo_reinhard05
+%{_bindir}/pfstmo_pattanaik00
+%{_bindir}/pfstmo_mantiuk06
+%{_bindir}/pfstmo_fattal02
+%{_bindir}/pfstmo_drago03
+%{_bindir}/pfstmo_reinhard02
+%{_bindir}/pfstmo_durand02
+%{_bindir}/pfstmo_mantiuk08
+%{_bindir}/pfstmo_ferradans11
+%{_bindir}/pfstmo_mai11
+%{_mandir}/man1/pfstmo_reinhard05.1.gz
+%{_mandir}/man1/pfstmo_pattanaik00.1.gz
+%{_mandir}/man1/pfstmo_mantiuk06.1.gz
+%{_mandir}/man1/pfstmo_fattal02.1.gz
+%{_mandir}/man1/pfstmo_drago03.1.gz
+%{_mandir}/man1/pfstmo_reinhard02.1.gz
+%{_mandir}/man1/pfstmo_durand02.1.gz
+%{_mandir}/man1/pfstmo_mantiuk08.1.gz
+%{_mandir}/man1/pfstmo_ferradans11.1.gz
+%{_mandir}/man1/pfstmo_mai11.1.gz
+
+%files -n pfsview
+%defattr(-,root,root)
+%{_bindir}/pfsv
+%{_bindir}/pfsview
+%{_mandir}/man1/pfsview.1.gz
+
+%files -n pfsglview
+%defattr(-,root,root)
+%{_bindir}/pfsglview
+%{_mandir}/man1/pfsglview.1.gz
+
+%files exr
+%defattr(-,root,root)
+%{_bindir}/pfsinexr
+%{_bindir}/pfsoutexr
+%{_mandir}/man1/pfsinexr.1.gz
+%{_mandir}/man1/pfsoutexr.1.gz
+
+%files imgmagick
+%defattr(-,root,root)
+%{_bindir}/pfsinimgmagick
+%{_bindir}/pfsoutimgmagick
+%{_mandir}/man1/pfsinimgmagick.1.gz
+%{_mandir}/man1/pfsoutimgmagick.1.gz
+
+%files octave
+%defattr(-,root,root)
+%{_bindir}/pfsoctavelum
+%{_bindir}/pfsoctavergb
+%{_bindir}/pfsstat
+%dir %{_libdir}/octave/*/site
+%dir %{_libdir}/octave/*/site/oct
+%dir %{_libdir}/octave/*/site/oct/*/
+%{_libdir}/octave/*/site/oct/*/pfstools/
+%{_datadir}/octave/*/site/m/pfstools/
+%{_mandir}/man1/pfsoctavelum.1.gz
+%{_mandir}/man1/pfsoctavergb.1.gz
+%{_mandir}/man1/pfsstat.1.gz
%changelog
++++++ pfstools-1.8.1-fix-return-in-nonvoid.patch ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -1,12 +1,12 @@
Index: pfstools-1.8.1/src/hdrhtml/hdrhtml.cpp
===================================================================
---- pfstools-1.8.1.orig/src/hdrhtml/hdrhtml.cpp 2009-03-11 22:45:55.000000000 +0100
-+++ pfstools-1.8.1/src/hdrhtml/hdrhtml.cpp 2010-03-02 15:21:24.000000000 +0100
-@@ -195,6 +195,7 @@ public:
+--- pfstools.orig/src/hdrhtml/hdrhtml.cpp 2009-03-11 22:45:55.000000000 +0100
++++ pfstools/src/hdrhtml/hdrhtml.cpp 2010-03-02 15:21:24.000000000 +0100
+@@ -197,6 +197,7 @@
this->y_i = new float[lut_size];
own_y_i = true;
memcpy(this->y_i, other.y_i, lut_size * sizeof(float));
-+ return *this;
++ return *this;
}
~UniformArrayLUT()
++++++ pfstools-fix-libpfs-linkage.patch ++++++
--- a/src/octave/CMakeLists.txt 2014-12-06 19:08:38.000000000 +0100
+++ b/src/octave/CMakeLists.txt 2015-03-10 12:06:05.052688361 +0100
@@ -22,11 +22,12 @@
#Building phase
foreach(SRC ${SRC_OCT})
get_filename_component(OCT_NAME ${SRC} NAME)
+ target_link_libraries(pfs)
add_custom_command(
OUTPUT ${OCT_NAME}.oct
COMMAND ${MKOCTFILE} "${CMAKE_CURRENT_SOURCE_DIR}/${OCT_NAME}.cpp"
ARGS -I${HEADERS} -I${CMAKE_CURRENT_SOURCE_DIR}/help_files
- -L${PROJECT_BINARY_DIR}/src/pfs -lpfs
+ -L${PROJECT_BINARY_DIR}/src/pfs
DEPENDS ${OCT_NAME}.cpp
COMMENT "Generating ${OCT_NAME}.oct"
VERBATIM)
++++++ pfstools-gcc.patch ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -20,39 +20,12 @@
}
--- src/filter/pfspanoramic.cpp
+++ src/filter/pfspanoramic.cpp
-@@ -93,7 +93,7 @@
- }
-
- //TODO: optimize rotations by precomputing sines and cosines
-- Vector3D rotateX(double angle)
-+ void rotateX(double angle)
- {
- angle *= (M_PI / 180);
-
-@@ -107,7 +107,7 @@
- z = z2;
- }
-
-- Vector3D rotateY(double angle)
-+ void rotateY(double angle)
- {
- angle *= (M_PI / 180);
-
-@@ -121,7 +121,7 @@
- z = z2;
- }
-
-- Vector3D rotateZ(double angle)
-+ void rotateZ(double angle)
- {
- angle *= (M_PI / 180);
-
-@@ -195,7 +195,7 @@
+@@ -198,7 +198,7 @@
{
char *opts;
-- if(opts = strchr(name, '/'))
-+ if(opts = (char*)strchr(name, '/'))
+- if( (opts = strchr(name, '/')) )
++ if( (opts = (char*)strchr(name, '/')) )
{
*opts++ = '\0';
}
++++++ pfstools-maptype.patch ++++++
diff -up pfstools-2.0.4/src/octave/pfsput.cpp.maptype pfstools-2.0.4/src/octave/pfsput.cpp
--- pfstools-2.0.4/src/octave/pfsput.cpp.maptype 2015-07-15 11:58:23.000000000 +0200
+++ pfstools-2.0.4/src/octave/pfsput.cpp 2015-07-20 11:49:05.445680473 +0200
@@ -52,9 +52,9 @@ DEFUN_DLD( pfsput, args, , helpString)
return retval;
}
- octave_scalar_map pfsStream = args(0).map_value();
+ octave_map pfsStream = args(0).map_value();
- octave_scalar_map::const_iterator itFH = pfsStream.seek( "FH" );
+ octave_map::const_iterator itFH = pfsStream.seek( "FH" );
if( itFH == pfsStream.end() ||
!pfsStream.contents( itFH )(0).is_real_scalar() )
{
@@ -65,7 +65,7 @@ DEFUN_DLD( pfsput, args, , helpString)
// Check mode
{
- octave_scalar_map::const_iterator itMode = pfsStream.seek( "MODE" );
+ octave_map::const_iterator itMode = pfsStream.seek( "MODE" );
if( itMode == pfsStream.end() || !pfsStream.contents( itMode )(0).is_string() )
{
error( SCRIPT_NAME ": MODE field missing in the structure or it has wrong type");
@@ -80,8 +80,8 @@ DEFUN_DLD( pfsput, args, , helpString)
// Get width & height
int width, height;
{
- octave_scalar_map::const_iterator itCols = pfsStream.seek( "columns" );
- octave_scalar_map::const_iterator itRows = pfsStream.seek( "rows" );
+ octave_map::const_iterator itCols = pfsStream.seek( "columns" );
+ octave_map::const_iterator itRows = pfsStream.seek( "rows" );
if( itCols == pfsStream.end() || itRows == pfsStream.end() ||
!pfsStream.contents( itCols )(0).is_real_scalar() ||
!pfsStream.contents( itRows )(0).is_real_scalar() )
@@ -94,9 +94,9 @@ DEFUN_DLD( pfsput, args, , helpString)
}
// Get channels
- octave_scalar_map channels;
+ octave_map channels;
{
- octave_scalar_map::const_iterator itChannels = pfsStream.seek( "channels" );
+ octave_map::const_iterator itChannels = pfsStream.seek( "channels" );
if( itChannels == pfsStream.end() ||
!pfsStream.contents( itChannels )(0).is_map() )
{
@@ -111,7 +111,7 @@ DEFUN_DLD( pfsput, args, , helpString)
pfs::Frame *frame = ctx.createFrame( width, height );
// For each channel in the 'channels' map
- for( octave_scalar_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) {
+ for( octave_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) {
std::string channelName = channels.key(itCh);
if( !channels.contents( itCh )(0).is_real_matrix() ) {
@@ -135,15 +135,15 @@ DEFUN_DLD( pfsput, args, , helpString)
// Copy frame tags
{
- octave_scalar_map::const_iterator itTags = pfsStream.seek( "tags" );
+ octave_map::const_iterator itTags = pfsStream.seek( "tags" );
if( itTags != pfsStream.end() ) {
if( !pfsStream.contents( itTags )(0).is_map() )
{
throw pfs::Exception( "'tags' field must be a structure" );
}
- octave_scalar_map_map tags = pfsStream.contents( itTags )(0).map_value();
- for( octave_scalar_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
+ octave_map tags = pfsStream.contents( itTags )(0).map_value();
+ for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
std::string tagName = tags.key(itTag);
if( !tags.contents( itTag )(0).is_string() )
@@ -156,14 +156,14 @@ DEFUN_DLD( pfsput, args, , helpString)
// Copy channel tags
{
- octave_scalar_map::const_iterator itChTags = pfsStream.seek( "channelTags" );
+ octave_map::const_iterator itChTags = pfsStream.seek( "channelTags" );
if( itChTags != pfsStream.end() ) {
if( !pfsStream.contents( itChTags )(0).is_map() )
{
throw pfs::Exception( "'channelTags' field must be a structure" );
}
- octave_scalar_map tagChannels = pfsStream.contents( itChTags )(0).map_value();
- for( octave_scalar_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) {
+ octave_map tagChannels = pfsStream.contents( itChTags )(0).map_value();
+ for( octave_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) {
std::string channelName = tagChannels.key(itCh);
if( !tagChannels.contents( itCh )(0).is_map() ) {
throw pfs::Exception( "each channelTags file must be a structure" );
@@ -173,8 +173,8 @@ DEFUN_DLD( pfsput, args, , helpString)
throw pfs::Exception( "can not set channel tag if channel is missing" );
}
- octave_scalar_map tags = tagChannels.contents( itCh )(0).map_value();
- for( octave_scalar_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
+ octave_map tags = tagChannels.contents( itCh )(0).map_value();
+ for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
std::string tagName = tags.key(itTag);
if( !tags.contents( itTag )(0).is_string() )
throw pfs::Exception( "all channel tags must be given as strings" );
++++++ pfstools-octinstall.patch ++++++
diff -up pfstools-2.0.4/CMakeLists.txt.octinstall pfstools-2.0.4/CMakeLists.txt
--- pfstools-2.0.4/CMakeLists.txt.octinstall 2015-07-20 13:06:32.533996797 +0200
+++ pfstools-2.0.4/CMakeLists.txt 2015-07-20 13:11:35.728808062 +0200
@@ -277,8 +277,6 @@ OPTION(WITH_HDRVC "Compile HDRVC (intern
# ======== MKOCTFILE/OCTAVE ===========
OPTION(WITH_Octave "Compile Octave files" ON)
-SET (OCTAVE_DEST_DIR "${CMAKE_INSTALL_PREFIX}/share/pfstools/octave"
-CACHE PATH "Copy octave functions to this directory")
if( WITH_Octave )
@@ -289,7 +287,8 @@ if( WITH_Octave )
if(MKOCTFILE)
message(STATUS "mkoctfile found.")
endif()
-
+ execute_process(COMMAND octave-config --oct-site-dir OUTPUT_VARIABLE OCTAVE_OCT_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND octave-config --m-site-dir OUTPUT_VARIABLE OCTAVE_M_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
endif( WITH_Octave )
# ======== OpenCV ===========
diff -up pfstools-2.0.4/src/octave/CMakeLists.txt.octinstall pfstools-2.0.4/src/octave/CMakeLists.txt
--- pfstools-2.0.4/src/octave/CMakeLists.txt.octinstall 2015-07-20 13:03:30.448679088 +0200
+++ pfstools-2.0.4/src/octave/CMakeLists.txt 2015-07-20 13:12:42.873544809 +0200
@@ -40,11 +40,11 @@ endforeach(SRC)
foreach(SRC ${SRC_OCT})
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SRC}.oct
PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE OWNER_WRITE WORLD_READ GROUP_READ OWNER_READ
- DESTINATION ${OCTAVE_DEST_DIR})
+ DESTINATION "${OCTAVE_OCT_DIR}/pfstools")
endforeach(SRC)
foreach(SRC ${SRC_M})
- install (FILES ${SRC} DESTINATION ${OCTAVE_DEST_DIR})
+ install (FILES ${SRC} DESTINATION "${OCTAVE_M_DIR}/pfstools")
endforeach(SRC)
install (FILES ${OCT_SCRIPTS}
++++++ pfstools-stdlib.patch ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -44,9 +44,9 @@
#include <getopt.h>
--- src/fileformat/pfsoutexr.cpp
+++ src/fileformat/pfsoutexr.cpp
-@@ -32,6 +32,7 @@
-
+@@ -33,6 +33,7 @@
#include <iostream>
+ #include <string>
+#include <stdlib.h>
#include <stdio.h>
1
0
Hello community,
here is the log from the commit of package python-augeas for openSUSE:Factory checked in at 2016-01-01 19:47:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-augeas (Old)
and /work/SRC/openSUSE:Factory/.python-augeas.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-augeas"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-augeas/python-augeas.changes 2013-12-11 15:43:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-augeas.new/python-augeas.changes 2016-01-01 19:47:59.000000000 +0100
@@ -1,0 +2,22 @@
+Sun Dec 13 00:27:16 UTC 2015 - ecsos(a)opensuse.org
+
+- New upstream release 0.5.0
+ * Make syntax-compatible with both Python 3 and 2.
+ * Remove the libpython hack.
+ * Make tests syntax compatible with both Python 3 and 2.
+ * Make test failures more verbose.
+ * Improve error messages.
+ * Fix exception tests.
+ * Convert unicode at the C boundary.
+ * Add Python 3.3 to CI, and disallow failures.
+ * Add Travis CI settings
+ * Allow failures for python 3.2
+ * Add text_store to the API
+ * Add text_retrieve to the API
+ * Add rename to the API
+ * Add transform to the API
+ * Add label to the API
+ * Use the packages from the augeas-dev PPA
+ * Warning: the 'name' parameter in add_transform is deprecated
+
+-------------------------------------------------------------------
Old:
----
python-augeas-0.4.1.tar.gz
New:
----
python-augeas-0.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-augeas.spec ++++++
--- /var/tmp/diff_new_pack.VgtyVb/_old 2016-01-01 19:48:00.000000000 +0100
+++ /var/tmp/diff_new_pack.VgtyVb/_new 2016-01-01 19:48:00.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-augeas
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-augeas
-Version: 0.4.1
+Version: 0.5.0
Release: 0
Summary: Python bindings for Augeas
License: LGPL-2.1+
++++++ python-augeas-0.4.1.tar.gz -> python-augeas-0.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/PKG-INFO new/python-augeas-0.5.0/PKG-INFO
--- old/python-augeas-0.4.1/PKG-INFO 2012-01-10 06:37:22.000000000 +0100
+++ new/python-augeas-0.5.0/PKG-INFO 2014-08-31 19:13:07.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: python-augeas
-Version: 0.4.1
+Version: 0.5.0
Summary: Python bindings for Augeas
Home-page: http://augeas.net/
Author: Harald Hoyer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/augeas.py new/python-augeas-0.5.0/augeas.py
--- old/python-augeas-0.4.1/augeas.py 2011-11-16 02:35:10.000000000 +0100
+++ new/python-augeas-0.5.0/augeas.py 2014-08-31 18:44:49.000000000 +0200
@@ -42,6 +42,28 @@
import ctypes
import ctypes.util
from sys import version_info as _pyver
+from functools import reduce
+
+
+PY3 = _pyver >= (3,)
+AUGENC = 'utf8'
+
+
+if PY3:
+ string_types = str
+else:
+ string_types = basestring
+
+
+def enc(st):
+ if st:
+ return st.encode(AUGENC)
+
+
+def dec(st):
+ if st:
+ return st.decode(AUGENC)
+
def _dlopen(*args):
"""Search for one of the libraries given as arguments and load it.
@@ -56,12 +78,6 @@
class Augeas(object):
"Class wrapper for the augeas library"
- # Load libpython (for 'PyFile_AsFile()' and 'PyMem_Free()')
- # pylint: disable-msg=W0142
- _libpython = _dlopen(*["python" + _v % _pyver[:2]
- for _v in ("%d.%d", "%d%d")])
- _libpython.PyFile_AsFile.restype = ctypes.c_void_p
-
# Load libaugeas
_libaugeas = _dlopen("augeas")
_libaugeas.aug_init.restype = ctypes.c_void_p
@@ -91,15 +107,15 @@
'flags' is a bitmask made up of values from AUG_FLAGS."""
# Sanity checks
- if not isinstance(root, basestring) and root != None:
+ if not isinstance(root, string_types) and root != None:
raise TypeError("root MUST be a string or None!")
- if not isinstance(loadpath, basestring) and loadpath != None:
+ if not isinstance(loadpath, string_types) and loadpath != None:
raise TypeError("loadpath MUST be a string or None!")
if not isinstance(flags, int):
raise TypeError("flag MUST be a flag!")
# Create the Augeas object
- self.__handle = Augeas._libaugeas.aug_init(root, loadpath, flags)
+ self.__handle = Augeas._libaugeas.aug_init(enc(root), enc(loadpath), flags)
if not self.__handle:
raise RuntimeError("Unable to create Augeas object!")
# Make sure self.__handle is a void*, not an integer
@@ -114,7 +130,7 @@
It is an error if more than one node matches 'path'."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
@@ -123,12 +139,34 @@
value = ctypes.c_char_p()
# Call the function and pass value by reference (char **)
- ret = Augeas._libaugeas.aug_get(self.__handle, path,
+ ret = Augeas._libaugeas.aug_get(self.__handle, enc(path),
ctypes.byref(value))
if ret > 1:
raise ValueError("path specified had too many matches!")
- return value.value
+ return dec(value.value)
+
+ def label(self, path):
+ """Lookup the label associated with 'path'.
+ Returns the label of the path specified.
+ It is an error if more than one node matches 'path'."""
+
+ # Sanity checks
+ if not isinstance(path, string_types):
+ raise TypeError("path MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Create the char * value
+ label = ctypes.c_char_p()
+
+ # Call the function and pass value by reference (char **)
+ ret = Augeas._libaugeas.aug_label(self.__handle, enc(path),
+ ctypes.byref(label))
+ if ret > 1:
+ raise ValueError("path specified had too many matches!")
+
+ return dec(label.value)
def set(self, path, value):
"""Set the value associated with 'path' to 'value'.
@@ -136,15 +174,15 @@
It is an error if more than one node matches 'path'."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
- if not isinstance(value, basestring) and type(value) != types.NoneType:
+ if not isinstance(value, string_types) and type(value) != type(None):
raise TypeError("value MUST be a string or None!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_set(self.__handle, path, value)
+ ret = Augeas._libaugeas.aug_set(self.__handle, enc(path), enc(value))
if ret != 0:
raise ValueError("Unable to set value to path!")
@@ -157,18 +195,65 @@
# Sanity checks
if type(base) != str:
- raise TypeError, "base MUST be a string!"
+ raise TypeError("base MUST be a string!")
if type(sub) != str and sub != None:
- raise TypeError, "sub MUST be a string or None!"
+ raise TypeError("sub MUST be a string or None!")
if type(value) != str:
- raise TypeError, "value MUST be a string!"
+ raise TypeError("value MUST be a string!")
if not self.__handle:
- raise RuntimeError, "The Augeas object has already been closed!"
+ raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_setm(self.__handle, base, sub, value)
+ ret = Augeas._libaugeas.aug_setm(
+ self.__handle, enc(base), enc(sub), enc(value))
if ret < 0:
- raise ValueError, "Unable to set value to path!"
+ raise ValueError("Unable to set value to path!")
+ return ret
+
+ def text_store(self, lens, node, path):
+ """Use the value of node 'node' as a string and transform it into a tree
+ using the lens 'lens' and store it in the tree at 'path', which will be
+ overwritten. 'path' and 'node' are path expressions."""
+
+ # Sanity checks
+ if not isinstance(lens, string_types):
+ raise TypeError("lens MUST be a string!")
+ if not isinstance(node, string_types):
+ raise TypeError("node MUST be a string!")
+ if not isinstance(path, string_types):
+ raise TypeError("path MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Call the function
+ ret = Augeas._libaugeas.aug_text_store(
+ self.__handle, enc(lens), enc(node), enc(path))
+ if ret != 0:
+ raise ValueError("Unable to store text at node!")
+ return ret
+
+ def text_retrieve(self, lens, node_in, path, node_out):
+ """Transform the tree at 'path' into a string using lens 'lens' and store it in
+ the node 'node_out', assuming the tree was initially generated using the
+ value of node 'node_in'. 'path', 'node_in', and 'node_out' are path expressions."""
+
+ # Sanity checks
+ if not isinstance(lens, string_types):
+ raise TypeError("lens MUST be a string!")
+ if not isinstance(node_in, string_types):
+ raise TypeError("node_in MUST be a string!")
+ if not isinstance(path, string_types):
+ raise TypeError("path MUST be a string!")
+ if not isinstance(node_out, string_types):
+ raise TypeError("node_out MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Call the function
+ ret = Augeas._libaugeas.aug_text_retrieve(
+ self.__handle, enc(lens), enc(node_in), enc(path), enc(node_out))
+ if ret != 0:
+ raise ValueError("Unable to store text at node!")
return ret
def defvar(self, name, expr):
@@ -184,16 +269,16 @@
# Sanity checks
if type(name) != str:
- raise TypeError, "name MUST be a string!"
+ raise TypeError("name MUST be a string!")
if type(expr) != str and expr != None:
- raise TypeError, "expr MUST be a string or None!"
+ raise TypeError("expr MUST be a string or None!")
if not self.__handle:
- raise RuntimeError, "The Augeas object has already been closed!"
+ raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_defvar(self.__handle, name, expr)
+ ret = Augeas._libaugeas.aug_defvar(self.__handle, enc(name), enc(expr))
if ret < 0:
- raise ValueError, "Unable to register variable!"
+ raise ValueError("Unable to register variable!")
return ret
def defnode(self, name, expr, value):
@@ -208,18 +293,19 @@
# Sanity checks
if type(name) != str:
- raise TypeError, "name MUST be a string!"
+ raise TypeError("name MUST be a string!")
if type(expr) != str:
- raise TypeError, "expr MUST be a string!"
+ raise TypeError("expr MUST be a string!")
if type(value) != str:
- raise TypeError, "value MUST be a string!"
+ raise TypeError("value MUST be a string!")
if not self.__handle:
- raise RuntimeError, "The Augeas object has already been closed!"
+ raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_defnode(self.__handle, name, expr, value, None)
+ ret = Augeas._libaugeas.aug_defnode(
+ self.__handle, enc(name), enc(expr), enc(value), None)
if ret < 0:
- raise ValueError, "Unable to register node!"
+ raise ValueError("Unable to register node!")
return ret
def move(self, src, dst):
@@ -230,18 +316,35 @@
does not exist yet, it and all its missing ancestors are created."""
# Sanity checks
- if not isinstance(src, basestring):
+ if not isinstance(src, string_types):
raise TypeError("src MUST be a string!")
- if not isinstance(dst, basestring):
+ if not isinstance(dst, string_types):
raise TypeError("dst MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_mv(self.__handle, src, dst)
+ ret = Augeas._libaugeas.aug_mv(self.__handle, enc(src), enc(dst))
if ret != 0:
raise ValueError("Unable to move src to dst!")
+ def rename(self, src, dst):
+ """Rename the label of all nodes matching 'src' to 'lbl'."""
+
+ # Sanity checks
+ if not isinstance(src, string_types):
+ raise TypeError("src MUST be a string!")
+ if not isinstance(dst, string_types):
+ raise TypeError("dst MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Call the function
+ ret = Augeas._libaugeas.aug_rename(self.__handle, enc(src), enc(dst))
+ if ret < 0:
+ raise ValueError("Unable to rename src as dst!")
+ return ret
+
def insert(self, path, label, before=True):
"""Create a new sibling 'label' for 'path' by inserting into the tree
just before 'path' (if 'before' is True) or just after 'path'
@@ -252,16 +355,16 @@
index '[N]'."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
- if not isinstance(label, basestring):
+ if not isinstance(label, string_types):
raise TypeError("label MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_insert(self.__handle, path,
- label, before and 1 or 0)
+ ret = Augeas._libaugeas.aug_insert(self.__handle, enc(path),
+ enc(label), before and 1 or 0)
if ret != 0:
raise ValueError("Unable to insert label!")
@@ -271,13 +374,13 @@
removed."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- return Augeas._libaugeas.aug_rm(self.__handle, path)
+ return Augeas._libaugeas.aug_rm(self.__handle, enc(path))
def match(self, path):
"""Return the matches of the path expression 'path'. The returned paths
@@ -296,7 +399,7 @@
matches more than one path segment."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
@@ -306,25 +409,25 @@
array = ctypes.POINTER(ctypes.c_void_p)()
# Call the function and pass the void ** by reference (void ***)
- ret = Augeas._libaugeas.aug_match(self.__handle, path,
+ ret = Augeas._libaugeas.aug_match(self.__handle, enc(path),
ctypes.byref(array))
if ret < 0:
- raise RuntimeError("Error during match procedure!")
+ raise RuntimeError("Error during match procedure!", path)
# Loop through the string array
matches = []
for i in range(ret):
if array[i]:
# Create a python string and append it to our matches list
- matches.append(str(ctypes.cast(array[i],
+ matches.append(dec(ctypes.cast(array[i],
ctypes.c_char_p).value))
# Free the string at this point in the array
# Wrap the string as a void* as it was not allocated by Python
- Augeas._libpython.PyMem_Free(ctypes.c_void_p(array[i]))
+ ctypes.pythonapi.PyMem_Free(ctypes.c_void_p(array[i]))
# Free the array itself
- Augeas._libpython.PyMem_Free(array)
+ ctypes.pythonapi.PyMem_Free(array)
return matches
@@ -336,7 +439,7 @@
belong to a file or is doesn't exists, ValueError is raised."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
@@ -351,14 +454,14 @@
r = ctypes.byref
- ret = Augeas._libaugeas.aug_span(self.__handle, path, r(filename),
+ ret = Augeas._libaugeas.aug_span(self.__handle, enc(path), r(filename),
r(label_start), r(label_end),
r(value_start), r(value_end),
r(span_start), r(span_end))
if (ret < 0):
raise ValueError("Error during span procedure")
- return (filename.value, label_start.value, label_end.value,
+ return (dec(filename.value), label_start.value, label_end.value,
value_start.value, value_end.value,
span_start.value, span_end.value)
@@ -426,23 +529,44 @@
lens: the (file)name of the lens to use
incl: one or more glob patterns for the files to transform
- name: a unique name; use the module name of the lens if omitted
+ name: deprecated parameter
excl: zero or more glob patterns of files to exclude from transforming
"""
- if not name:
- name = lens.split(".")[0].replace("@", "", 1)
- if isinstance (incl, basestring):
+ if name:
+ import warnings
+ warnings.warn("name is now deprecated in this function", DeprecationWarning,
+ stacklevel=2)
+ if isinstance (incl, string_types):
incl = [incl]
- if isinstance (excl, basestring):
+ if isinstance (excl, string_types):
excl = [excl]
- xfm = "/augeas/load/%s/" % name
- self.set (xfm + "lens", lens)
for i in range(len(incl)):
- self.set(xfm + "incl[%d]" % (i+1), incl[i])
+ self.transform(lens, incl[i], False)
for i in range(len(excl)):
- self.set(xfm + "excl[%d]" % (i+1), excl[i])
+ self.transform(lens, excl[i], True)
+
+ def transform(self, lens, file, excl=False):
+ """Add a transform for 'file' using 'lens'.
+ 'excl' specifies if this the file is to be included (False)
+ or excluded (True) from the 'lens'.
+ The 'lens' may be a module name or a full lens name.
+ If a module name is given, then lns will be the lens assumed.
+ """
+
+ if not isinstance(lens, string_types):
+ raise TypeError("lens MUST be a string!")
+ if not isinstance(file, string_types):
+ raise TypeError("file MUST be a string!")
+ if not isinstance(excl, bool):
+ raise TypeError("excl MUST be a boolean!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ ret = Augeas._libaugeas.aug_transform(self.__handle, enc(lens), enc(file), excl)
+ if ret != 0:
+ raise RuntimeError("Unable to add transform!")
def close(self):
"""Close this Augeas instance and free any storage associated with it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/setup.py new/python-augeas-0.5.0/setup.py
--- old/python-augeas-0.4.1/setup.py 2012-01-10 06:37:04.000000000 +0100
+++ new/python-augeas-0.5.0/setup.py 2014-08-31 19:13:05.000000000 +0200
@@ -10,7 +10,7 @@
from distutils.core import setup
setup (name = 'python-augeas',
- version = '0.4.1',
+ version = '0.5.0',
author = "Harald Hoyer",
author_email = "augeas-devel(a)redhat.com",
description = """Python bindings for Augeas""",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/test/test_augeas.py new/python-augeas-0.5.0/test/test_augeas.py
--- old/python-augeas-0.4.1/test/test_augeas.py 2011-10-14 04:15:02.000000000 +0200
+++ new/python-augeas-0.5.0/test/test_augeas.py 2014-08-31 18:44:49.000000000 +0200
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
import unittest
import sys
import os
@@ -23,7 +25,7 @@
if path != "/":
aug.match(path)
for i in m:
- for x in recurmatch(aug, i):
+ for x in recurmatch(aug, i):
yield x
else:
for i in aug.match(path + "/*"):
@@ -54,7 +56,7 @@
path = "/"
matches = recurmatch(a, path)
for (p, attr) in matches:
- print >> output, p, attr
+ print(p, attr, file=output)
self.failUnless(p != None and attr != None)
output.close()
@@ -64,13 +66,13 @@
num = 0
for entry in a.match("/files/etc/grub.conf/title"):
num += 1
- self.failUnless(num == 2)
+ self.assertEqual(num, 2)
default = int(a.get("/files/etc/grub.conf/default"))
- self.failUnless(default == 0)
+ self.assertEqual(default, 0)
a.set("/files/etc/grub.conf/default", str(1))
a.save()
default = int(a.get("/files/etc/grub.conf/default"))
- self.failUnless(default == 1)
+ self.assertEqual(default, 1)
a.set("/files/etc/grub.conf/default", str(0))
a.save()
@@ -90,7 +92,7 @@
a = augeas.Augeas(root=MYROOT)
a.defnode("bighost", "/files/etc/hosts/50/ipaddr", "192.168.1.1")
value = a.get("$bighost")
- self.failUnless(value == "192.168.1.1")
+ self.assertEqual(value, "192.168.1.1")
del a
def test07Setm(self):
@@ -100,7 +102,7 @@
self.failUnless(matches)
a.setm("/files/etc/hosts", "*/ipaddr", "192.168.1.1")
for i in matches:
- self.failUnless(a.get(i) == "192.168.1.1")
+ self.assertEqual(a.get(i), "192.168.1.1")
del a
def test08Span(self):
@@ -130,19 +132,92 @@
error = None
try:
r = a.span("/files")
- except ValueError, e:
+ except ValueError as e:
error = e
- self.assertTrue(isinstance(e, ValueError))
+ self.assertTrue(isinstance(error, ValueError))
error = None
try:
r = a.span("/random")
- except ValueError, e:
+ except ValueError as e:
error = e
- self.assertTrue(isinstance(e, ValueError))
+ self.assertTrue(isinstance(error, ValueError))
del a
+ def test09TextStore(self):
+ hosts = "192.168.0.1 rtr.example.com router\n"
+ a = augeas.Augeas(root=MYROOT)
+ r = a.set("/raw/hosts", hosts);
+ r = a.text_store("Hosts.lns", "/raw/hosts", "/t1")
+
+ # Test bad lens name
+ try:
+ r = a.text_store("Notthere.lns", "/raw/hosts", "/t2")
+ except ValueError as e:
+ error = e
+ self.assertTrue(isinstance(error, ValueError))
+
+ def test10TextRetrieve(self):
+ hosts = "192.168.0.1 rtr.example.com router\n"
+ a = augeas.Augeas(root=MYROOT)
+ r = a.set("/raw/hosts", hosts);
+ r = a.text_store("Hosts.lns", "/raw/hosts", "/t1")
+ r = a.text_retrieve("Hosts.lns", "/raw/hosts", "/t1", "/out/hosts")
+ hosts_out = a.get("/out/hosts")
+ self.assertEqual(hosts, hosts_out)
+
+ # Test bad lens name
+ try:
+ r = a.text_store("Notthere.lns", "/raw/hosts", "/t2")
+ except ValueError as e:
+ error = e
+ self.assertTrue(isinstance(error, ValueError))
+
+ def test11Rename(self):
+ a = augeas.Augeas(root=MYROOT)
+ r = a.set("/a/b/c", "value");
+ r = a.rename("/a/b/c", "d");
+ self.assertEqual(r, 1)
+ r = a.set("/a/e/d", "value2");
+ r = a.rename("/a//d", "x");
+ self.assertEqual(r, 2)
+ try:
+ r = a.rename("/a/e/x", "a/b");
+ except ValueError as e:
+ error = e
+ self.assertTrue(isinstance(error, ValueError))
+
+ def test12Transform(self):
+ a = augeas.Augeas(root=MYROOT)
+
+ r = a.transform("Foo", "/tmp/bar")
+ lens = a.get("/augeas/load/Foo/lens")
+ self.assertEqual(lens, "Foo.lns")
+ incl = a.get("/augeas/load/Foo/incl")
+ self.assertEqual(incl, "/tmp/bar")
+
+ r = a.transform("Foo", "/tmp/baz", True)
+ excl = a.get("/augeas/load/Foo/excl")
+ self.assertEqual(excl, "/tmp/baz")
+
+ def test13AddTransform(self):
+ a = augeas.Augeas(root=MYROOT)
+
+ r = a.add_transform("Foo", "/tmp/bar")
+ incl = a.get("/augeas/load/Foo/incl")
+ self.assertEqual(incl, "/tmp/bar")
+
+ r = a.add_transform("Foo", "/tmp/bar", "Faz", "/tmp/baz")
+ excl = a.get("/augeas/load/Foo/excl")
+ self.assertEqual(excl, "/tmp/baz")
+
+ def test14Label(self):
+ a = augeas.Augeas(root=MYROOT)
+
+ lbl = a.label("/augeas/version")
+ self.assertEqual(lbl, "version")
+
def getsuite():
suite = unittest.TestSuite()
suite = unittest.makeSuite(TestAugeas, 'test')
1
0
Hello community,
here is the log from the commit of package python-dulwich for openSUSE:Factory checked in at 2016-01-01 19:47:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dulwich (Old)
and /work/SRC/openSUSE:Factory/.python-dulwich.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-dulwich"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-dulwich/python-dulwich.changes 2015-05-15 07:44:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-dulwich.new/python-dulwich.changes 2016-01-01 19:47:56.000000000 +0100
@@ -1,0 +2,41 @@
+Sat Dec 5 23:29:21 UTC 2015 - termim(a)gmail.com
+
+- update to 0.11.2
+ + IMPROVEMENTS
+ * Add support for agent= capability. (Jelmer Vernooij, #298)
+ * Add support for quiet capability. (Jelmer Vernooij)
+ + BUG FIXES
+ * The ParamikoSSHVendor class has been moved to
+ dulwich.contrib.paramiko_vendor, as it’s currently untested.
+ (Jelmer Vernooij, #364)
+
+- update to 0.11.1 2015-09-13
+ * Fix-up release to exclude broken blame.py file.
+
+- update to 0.11.0 2015-09-13
+ + IMPROVEMENTS
+ * Extended Python3 support to most of the codebase. (Gary van der
+ Merwe, Jelmer Vernooij)
+ * The Repo object has a new close method that can be called to close
+ any open resources. (Gary van der Merwe)
+ * Support ‘git.bat’ in SubprocessGitClient on Windows. (Stefan
+ Zimmermann)
+ * Advertise ‘ofs-delta’ capability in receive-pack server side
+ capabilities. (Jelmer Vernooij)
+ * Switched default_local_git_client_cls to LocalGitClient. (Gary van
+ der Merwe)
+ * Add porcelain.ls_remote and GitClient.get_refs. (Michael Edgar)
+ * Add Repo.discover method. (B. M. Corser)
+ * Add dulwich.objectspec.parse_refspec. (Jelmer Vernooij)
+ * Add porcelain.pack_objects and porcelain.repack. (Jelmer Vernooij)
+ + BUG FIXES
+ * Fix handling of ‘done’ in graph walker and implement the ‘no-done’
+ capability. (Tommy Yu, #88)
+ * Avoid recursion limit issues resolving deltas. (William Grant, #81)
+ * Allow arguments in local client binary path overrides. (Jelmer
+ Vernooij)
+ * Fix handling of commands with arguments in paramiko SSH
+ client. (Andreas Klöckner, Jelmer Vernooij, #363)
+ * Fix parsing of quoted strings in configs. (Jelmer Vernooij, #305)
+
+-------------------------------------------------------------------
Old:
----
dulwich-0.10.1a.tar.gz
New:
----
dulwich-0.11.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-dulwich.spec ++++++
--- /var/tmp/diff_new_pack.yb2Oud/_old 2016-01-01 19:47:57.000000000 +0100
+++ /var/tmp/diff_new_pack.yb2Oud/_new 2016-01-01 19:47:57.000000000 +0100
@@ -17,14 +17,15 @@
Name: python-dulwich
-Version: 0.10.1a
+Version: 0.11.2
Release: 0
-Url: http://samba.org/~jelmer/dulwich
+Url: https://www.dulwich.io
Summary: Pure-Python Git Library
License: GPL-2.0+
Group: Development/Languages/Python
Source: https://pypi.python.org/packages/source/d/dulwich/dulwich-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: fdupes
BuildRequires: python-Sphinx
BuildRequires: python-devel
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
@@ -44,6 +45,7 @@
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+%fdupes %{buildroot}
%files
%defattr(-,root,root,-)
++++++ dulwich-0.10.1a.tar.gz -> dulwich-0.11.2.tar.gz ++++++
++++ 16332 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-amqp for openSUSE:Factory checked in at 2016-01-01 19:47:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-amqp (Old)
and /work/SRC/openSUSE:Factory/.python-amqp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-amqp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-amqp/python-amqp.changes 2015-10-19 22:48:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-amqp.new/python-amqp.changes 2016-01-01 19:47:55.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Dec 10 09:43:54 UTC 2015 - seife+obs(a)b1-systems.com
+
+- remove build date from documentation
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-amqp.spec ++++++
--- /var/tmp/diff_new_pack.fxFjs2/_old 2016-01-01 19:47:56.000000000 +0100
+++ /var/tmp/diff_new_pack.fxFjs2/_new 2016-01-01 19:47:56.000000000 +0100
@@ -24,6 +24,7 @@
Group: Development/Languages/Python
Url: http://github.com/celery/py-amqp
Source: https://pypi.python.org/packages/source/a/amqp/amqp-%{version}.tar.gz
+Source99: %{name}.changes
# PATCH-FIX-OPENSUSE speilicke(a)suse.com -- Avoid excessive doc dependencies
Patch0: amqp-drop-sphinxcontrib-issuetracker-dependency.patch
Patch1: tune-keepalive-intervals.diff
@@ -56,6 +57,10 @@
%patch0 -p1
%patch1 -p0
+# hack, or sphinx will put today's date into the HTML files
+DOCDATE="`date +"%B %e, %Y" -r %{S:99}`"
+echo "today = '$DOCDATE'" >> docs/conf.py
+
%build
python setup.py build
python setup.py build_sphinx && rm build/sphinx/html/.buildinfo
1
0
Hello community,
here is the log from the commit of package freeimage for openSUSE:Factory checked in at 2016-01-01 19:47:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/freeimage (Old)
and /work/SRC/openSUSE:Factory/.freeimage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freeimage"
Changes:
--------
--- /work/SRC/openSUSE:Factory/freeimage/freeimage.changes 2015-11-13 23:35:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.freeimage.new/freeimage.changes 2016-01-01 19:47:23.000000000 +0100
@@ -1,0 +2,93 @@
+Tue Dec 8 17:02:21 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 3.17.0
+ * FreeImage now uses LibPNG 1.6.16
+ * FreeImage now uses LibWebP 0.4.2 (GIT patch 2015-03-03)
+ * FreeImage now uses LibRaw 0.17-Alpha1
+ * FreeImage now uses LibTIFF 4.0.4 (CVS patch 2015-01-26)
+ * FreeImage now uses OpenEXR 2.2.0
+ * removed VS 2003 project files : this IDE is no longer supported
+ because of its outdated C++ compiler
+ * added FreeImage_ConvertFromRawBitsEx
+ * added RAW_UNPROCESSED load flag to the RAW plugin
+ * added FreeImage_SetMetadataKeyValue
+ * added support for metadata writing to the JPEG-JXR plugin
+ * added VS 2013 project files
+ * added support for PNG tIME metadata (read/write, handle as
+ Exif-TIFF DateTime)
+ * added explicit definition of endianness and color order in
+ compiler options
+ * added FIQ_LFPQUANT quantizer algorithm
+ * added support for input 32-bit dib in Wu quantizer
+ * added FreeImage_ConvertToRGBAF and updated conversions in
+ FreeImage_ConvertToType
+ * added FreeImage_ConvertToRGBA16 and updated conversions in
+ FreeImage_ConvertToType
+ * added FreeImage_CreateView
+ * added FreeImage_RescaleRect
+ * added FreeImage_GetMemorySize
+ * ICO plugin: improved support for Vista icons
+ * fixed a rounding error in RGB to greyscale conversion formula
+ * fixed Makefile.fip so that it installs symlinks
+ * fixed a potential memory access violation in PluginHDR Save function
+ * fixed a bug in FreeImage_LookupSVGColor ("green" color was not found)
+ * fixed TARGA signature validation for TARGA versions < 2.0
+ * fixed FreeImage_GetScanLine not working with very large images on x64
+ platforms
+ * improved PluginTIFF compatibility with LibTIFF 4
+ * fixed a segfault occuring on a corrupted animated GIF
+ * improved memory allocation in PluginRAW
+ * fixed loading/saving of TIFF containing a GPS IFD inside the Exif-TIFF
+ metadata segment (the solution is to ignore the tag)
+ * fixed a bug in FreeImage_JPEGCrop*/_JPEGTransform* functions occuring
+ when using the same source / destination filename
+ * fixed a bug with output image quality in PluginJP2::Save &
+ PluginJ2K::Save functions (regression from FI 3.15.4)
+ * improved RAW file format detection
+ * fixed FreeImage_GetFileType behavior with ANI file formats
+ * improved Exif reader so as to handle Exif IFD with a suspicious offset
+ (can occur with maker notes)
+ * fixed a memory leak in PluginPNG:Save occuring when dealing with invalid
+ PNG files
+ * fixed PNG plugin handling of 16-bit grayscale + 16-bit alpha images
+ * fixed PNG plugin handling of 16-bit grayscale + tRNS chunk images
+ * fixed PNG plugin handling of 24-bit RGB + tRNS chunk images
+ * fixed PNG plugin handling of 1-,4-bit greyscale/palettized + tRNS
+ chunk images
+ * fixed invalid directory delimiter in include statement (mingw-w64)
+ in Source/LibJXR/image/sys/strcodec.h
+ * fixed Invalid condition for defining _byteswap_ulong (mingw-w64)
+ in Source/LibJXR/image/sys/strcodec.c
+ * fixed FreeImage_Get*Mask not returning 0 for greyscale images
+ * fixed loading of external plugins when using UNICODE directory
+ names to store plugins
+ * fixed loading of JXR files when using memory streams
+ * added Dist/ directory creation in Makefiles (in case it is not
+ already present)
+- For changes from previous versions, please read the Whatnew.txt file
+- Remove some obsolete patches
+ * use_system_libs.patch
+ * use_system_libs_openjpeg.patch
+ * use_system_libs_libpng15.patch
+ * use_system_libs_libpng14.patch
+ * libraw_types.patch
+- Update makefiles_fixes.patch
+- Add patches from Fedora
+ * unbundle.patch
+ * CVE-2015-0852.patch
+- Use download Url as source
+- Add dependencies
+ * jxrlib-devel
+ * libjpeg-devel
+ * openjpeg2-devel instead of openjpeg-devel
+ * pkgconfig(libpng)
+ * pkgconfig(libraw) instead of libraw-devel
+ * pkgconfig(libmng)
+ * pkgconfig(libtiff-4)
+ * pkgconfig(libwebp)
+ * pkgconfig(OpenEXR)
+ * pkgconfig(zlib) instead of zlib-devel
+ * unzip
+- Drop support for SLE11; doesn't build anyway
+
+-------------------------------------------------------------------
Old:
----
FreeImage3154.tar.bz2
libraw_types.patch
use_system_libs.patch
use_system_libs_libpng14.patch
use_system_libs_libpng15.patch
use_system_libs_openjpeg.patch
New:
----
CVE-2015-0852.patch
FreeImage3170.zip
unbundle.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ freeimage.spec ++++++
--- /var/tmp/diff_new_pack.UUtaaR/_old 2016-01-01 19:47:24.000000000 +0100
+++ /var/tmp/diff_new_pack.UUtaaR/_new 2016-01-01 19:47:24.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package freeimage
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,45 +17,41 @@
%define so_ver 3
+%define tarver 3170
Name: freeimage
-Version: 3.15.4
+Version: 3.17.0
Release: 0
Summary: Multi-format Image Decoder Library
License: GPL-2.0 or GPL-3.0
Group: System/Libraries
Url: http://freeimage.sourceforge.net/
-# repacked from http://downloads.sourceforge.net/freeimage/FreeImage3154.zip
-Source0: FreeImage3154.tar.bz2
-# PATCH-FIX-OPENSUSE makefiles_fixes.patch asterios.dramis(a)gmail.com -- Fix CFLAGS and CXXFLAGS, removed -s (strip) option, add missing symlinks for libfreeimageplus, remove root user from install
-Patch0: makefiles_fixes.patch
+Source0: http://downloads.sourceforge.net/freeimage/FreeImage%{tarver}.zip
+# PATCH-FIX-OPENSUSE unbundle.patch p.drouand(a)gmail.com -- Use system libraries instead of bundled ones
+Patch0: unbundle.patch
# PATCH-FIX-OPENSUSE doxygen.patch asterios.dramis(a)gmail.com -- Fix documentation building (Based on patch from Fedora)
Patch1: doxygen.patch
-# PATCH-FIX-OPENSUSE use_system_libs.patch asterios.dramis(a)gmail.com -- Use system libraries, except libjpeg and libtiff (the package uses some internal headers of these).
-Patch2: use_system_libs.patch
-# PATCH-FIX-OPENSUSE use_system_libs_openjpeg.patch asterios.dramis(a)gmail.com -- Use system libraries (openjpeg)
-Patch3: use_system_libs_openjpeg.patch
-# PATCH-FIX-OPENSUSE use_system_libs_libpng15.patch asterios.dramis(a)gmail.com -- Use system libraries (libpng15)
-Patch4: use_system_libs_libpng15.patch
-# PATCH-FIX-OPENSUSE use_system_libs_libpng14.patch asterios.dramis(a)gmail.com -- Use system libraries (libpng14)
-Patch5: use_system_libs_libpng14.patch
-# PATCH-FIX-OPENSUSE don't define conflicting types when libraw is used prusnak(a)opensuse.org
-Patch6: libraw_types.patch
-BuildRequires: OpenEXR-devel
+# PATCH-FIX-UPSTREAM CVE-2015-0852.patch -- Multiple integer underflows in PluginPCX.cpp in FreeImage 3.17.0 and earlier
+Patch2: CVE-2015-0852.patch
+# PATCH-FIX-OPENSUSE makefiles_fixes.patch asterios.dramis(a)gmail.com -- Fix CFLAGS and CXXFLAGS, removed -s (strip) option, add missing symlinks for libfreeimageplus, remove root user from install
+Patch3: makefiles_fixes.patch
BuildRequires: doxygen
BuildRequires: gcc-c++
-BuildRequires: libpng-devel
-%if 0%{?suse_version} == 1140
-BuildRequires: libraw-devel
-BuildRequires: libraw-devel-static
+BuildRequires: jxrlib-devel
+BuildRequires: libjpeg-devel
+BuildRequires: openjpeg2-devel
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libraw)
+%if 0%{?suse_version} >= 1320
+BuildRequires: pkgconfig(libmng)
%else
-BuildRequires: libraw-devel
+BuildRequires: libmng-devel
%endif
-%if 0%{?suse_version} > 1210
-BuildRequires: openjpeg-devel
-%endif
-BuildRequires: zlib-devel
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: unzip
+BuildRequires: pkgconfig(OpenEXR)
+BuildRequires: pkgconfig(libtiff-4)
+BuildRequires: pkgconfig(libwebp)
+BuildRequires: pkgconfig(zlib)
%description
FreeImage is an Open Source library project for developers who would like to
@@ -101,24 +97,23 @@
%patch0 -p1
%patch1
%patch2 -p1
-%if 0%{?suse_version} > 1210
%patch3 -p1
-%endif
-%if 0%{?suse_version} > 1220
-%patch4 -p1
-%else
-%patch5 -p1
-%endif
-%patch6 -p1
-# Remove bundled libs (except of LibJPEG/ and LibTIFF4/) to make sure these don't get used during compile
-rm -rf Source/LibPNG/ Source/LibRawLite/ Source/OpenEXR/ Source/ZLib/
-%if 0%{?suse_version} > 1210
-rm -rf Source/LibOpenJPEG/
-%endif
+# Remove bundled libs to make sure these don't get used during compile
+rm -rf Source/LibPNG/ Source/LibRawLite/ Source/OpenEXR/ Source/ZLib/ Source/LibOpenJPEG/ Source/LibJPEG/
-# Fix "wrong-file-end-of-line-encoding" rpmlint warning
-sed -i 's/\r$//' license-fi.txt license-gplv2.txt license-gplv3.txt Whatsnew.txt
+# clear files which cannot be built due to dependencies on private headers
+# (see also unbundle patch)
+# It disables the G3 Fax Loader and the JPEG lossless transformations plugins
+> Source/FreeImage/PluginG3.cpp
+> Source/FreeImageToolkit/JPEGTransform.cpp
+
+# sanitize encodings / line endings
+for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do
+ iconv --from=ISO-8859-15 --to=UTF-8 $file > $file.new && \
+ sed -i 's|\r||g' $file.new && \
+ touch -r $file $file.new && mv $file.new $file
+done
%build
sh ./gensrclist.sh
++++++ CVE-2015-0852.patch ++++++
diff -rupN FreeImage/Source/FreeImage/PluginPCX.cpp FreeImage-new/Source/FreeImage/PluginPCX.cpp
--- FreeImage/Source/FreeImage/PluginPCX.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginPCX.cpp 2015-09-05 02:44:55.429436425 +0200
@@ -30,7 +30,7 @@
// Constants + headers
// ----------------------------------------------------------
-#define IO_BUF_SIZE 2048
+#define PCX_IO_BUF_SIZE 2048
// ----------------------------------------------------------
@@ -120,17 +120,17 @@ readline(FreeImageIO &io, fi_handle hand
while (length--) {
if (count == 0) {
- if (*ReadPos >= IO_BUF_SIZE - 1 ) {
- if (*ReadPos == IO_BUF_SIZE - 1) {
+ if (*ReadPos >= PCX_IO_BUF_SIZE - 1 ) {
+ if (*ReadPos == PCX_IO_BUF_SIZE - 1) {
// we still have one BYTE, copy it to the start pos
- *ReadBuf = ReadBuf[IO_BUF_SIZE - 1];
+ *ReadBuf = ReadBuf[PCX_IO_BUF_SIZE - 1];
- io.read_proc(ReadBuf + 1, 1, IO_BUF_SIZE - 1, handle);
+ io.read_proc(ReadBuf + 1, 1, PCX_IO_BUF_SIZE - 1, handle);
} else {
// read the complete buffer
- io.read_proc(ReadBuf, 1, IO_BUF_SIZE, handle);
+ io.read_proc(ReadBuf, 1, PCX_IO_BUF_SIZE, handle);
}
*ReadPos = 0;
@@ -346,19 +346,9 @@ Load(FreeImageIO *io, fi_handle handle,
BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS;
try {
- // check PCX identifier
-
- long start_pos = io->tell_proc(handle);
- BOOL validated = pcx_validate(io, handle);
- io->seek_proc(handle, start_pos, SEEK_SET);
- if(!validated) {
- throw FI_MSG_ERROR_MAGIC_NUMBER;
- }
-
- // process the header
-
PCXHEADER header;
+ // process the header
if(io->read_proc(&header, sizeof(PCXHEADER), 1, handle) != 1) {
throw FI_MSG_ERROR_PARSING;
}
@@ -366,20 +356,38 @@ Load(FreeImageIO *io, fi_handle handle,
SwapHeader(&header);
#endif
- // allocate a new DIB
+ // process the window
+ const WORD *window = header.window; // left, upper, right,lower pixel coord.
+ const int left = window[0];
+ const int top = window[1];
+ const int right = window[2];
+ const int bottom = window[3];
- unsigned width = header.window[2] - header.window[0] + 1;
- unsigned height = header.window[3] - header.window[1] + 1;
- unsigned bitcount = header.bpp * header.planes;
-
- if (bitcount == 24) {
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
- } else {
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
+ // check image size
+ if((left >= right) || (top >= bottom)) {
+ throw FI_MSG_ERROR_PARSING;
}
- // if the dib couldn't be allocated, throw an error
+ const unsigned width = right - left + 1;
+ const unsigned height = bottom - top + 1;
+ const unsigned bitcount = header.bpp * header.planes;
+ // allocate a new dib
+ switch(bitcount) {
+ case 1:
+ case 4:
+ case 8:
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
+ break;
+ case 24:
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
+ break;
+ default:
+ throw FI_MSG_ERROR_DIB_MEMORY;
+ break;
+ }
+
+ // if the dib couldn't be allocated, throw an error
if (!dib) {
throw FI_MSG_ERROR_DIB_MEMORY;
}
@@ -426,19 +434,23 @@ Load(FreeImageIO *io, fi_handle handle,
if (palette_id == 0x0C) {
BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE));
- io->read_proc(cmap, 768, 1, handle);
- pal = FreeImage_GetPalette(dib);
- BYTE *pColormap = &cmap[0];
+ if(cmap) {
+ io->read_proc(cmap, 768, 1, handle);
- for(int i = 0; i < 256; i++) {
- pal[i].rgbRed = pColormap[0];
- pal[i].rgbGreen = pColormap[1];
- pal[i].rgbBlue = pColormap[2];
- pColormap += 3;
+ pal = FreeImage_GetPalette(dib);
+ BYTE *pColormap = &cmap[0];
+
+ for(int i = 0; i < 256; i++) {
+ pal[i].rgbRed = pColormap[0];
+ pal[i].rgbGreen = pColormap[1];
+ pal[i].rgbBlue = pColormap[2];
+ pColormap += 3;
+ }
+
+ free(cmap);
}
- free(cmap);
}
// wrong palette ID, perhaps a gray scale is needed ?
@@ -463,12 +475,12 @@ Load(FreeImageIO *io, fi_handle handle,
return dib;
}
- // calculate the line length for the PCX and the DIB
+ // calculate the line length for the PCX and the dib
// length of raster line in bytes
- unsigned linelength = header.bytes_per_line * header.planes;
- // length of DIB line (rounded to DWORD) in bytes
- unsigned pitch = FreeImage_GetPitch(dib);
+ const unsigned linelength = header.bytes_per_line * header.planes;
+ // length of dib line (rounded to DWORD) in bytes
+ const unsigned pitch = FreeImage_GetPitch(dib);
// run-length encoding ?
@@ -478,14 +490,18 @@ Load(FreeImageIO *io, fi_handle handle,
// ---------------
line = (BYTE*)malloc(linelength * sizeof(BYTE));
- if(!line) throw FI_MSG_ERROR_MEMORY;
+ if(!line) {
+ throw FI_MSG_ERROR_MEMORY;
+ }
- ReadBuf = (BYTE*)malloc(IO_BUF_SIZE * sizeof(BYTE));
- if(!ReadBuf) throw FI_MSG_ERROR_MEMORY;
+ ReadBuf = (BYTE*)malloc(PCX_IO_BUF_SIZE * sizeof(BYTE));
+ if(!ReadBuf) {
+ throw FI_MSG_ERROR_MEMORY;
+ }
bits = FreeImage_GetScanLine(dib, height - 1);
- int ReadPos = IO_BUF_SIZE;
+ int ReadPos = PCX_IO_BUF_SIZE;
if ((header.planes == 1) && ((header.bpp == 1) || (header.bpp == 8))) {
BYTE skip;
@@ -497,7 +513,7 @@ Load(FreeImageIO *io, fi_handle handle,
// skip trailing garbage at the end of the scanline
for (unsigned count = written; count < linelength; count++) {
- if (ReadPos < IO_BUF_SIZE) {
+ if (ReadPos < PCX_IO_BUF_SIZE) {
ReadPos++;
} else {
io->read_proc(&skip, sizeof(BYTE), 1, handle);
@@ -513,7 +529,9 @@ Load(FreeImageIO *io, fi_handle handle,
unsigned x, y, written;
buffer = (BYTE*)malloc(width * sizeof(BYTE));
- if(!buffer) throw FI_MSG_ERROR_MEMORY;
+ if(!buffer) {
+ throw FI_MSG_ERROR_MEMORY;
+ }
for (y = 0; y < height; y++) {
written = readline(*io, handle, line, linelength, bIsRLE, ReadBuf, &ReadPos);
@@ -532,7 +550,7 @@ Load(FreeImageIO *io, fi_handle handle,
}
}
- // then write the DIB row
+ // then write the dib row
for (x = 0; x < width / 2; x++) {
bits[x] = (buffer[2*x] << 4) | buffer[2*x+1];
@@ -541,7 +559,7 @@ Load(FreeImageIO *io, fi_handle handle,
// skip trailing garbage at the end of the scanline
for (unsigned count = written; count < linelength; count++) {
- if (ReadPos < IO_BUF_SIZE) {
+ if (ReadPos < PCX_IO_BUF_SIZE) {
ReadPos++;
} else {
io->read_proc(&skip, sizeof(BYTE), 1, handle);
++++++ doxygen.patch ++++++
--- /var/tmp/diff_new_pack.UUtaaR/_old 2016-01-01 19:47:24.000000000 +0100
+++ /var/tmp/diff_new_pack.UUtaaR/_new 2016-01-01 19:47:24.000000000 +0100
@@ -7,7 +7,7 @@
# if some version control system is used.
-PROJECT_NUMBER = "- FreeImage 3.15.1"
-+PROJECT_NUMBER = "- FreeImage 3.15.3"
++PROJECT_NUMBER = "- FreeImage 3.17.0"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
++++++ makefiles_fixes.patch ++++++
--- /var/tmp/diff_new_pack.UUtaaR/_old 2016-01-01 19:47:24.000000000 +0100
+++ /var/tmp/diff_new_pack.UUtaaR/_new 2016-01-01 19:47:24.000000000 +0100
@@ -2,77 +2,35 @@
===================================================================
--- FreeImage.orig/Makefile.fip
+++ FreeImage/Makefile.fip
-@@ -15,10 +15,10 @@ LIBRARIES = -lstdc++
-
- MODULES = $(SRCS:.c=.o)
- MODULES := $(MODULES:.cpp=.o)
--CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
--CFLAGS += $(INCLUDE)
--CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
--CXXFLAGS += $(INCLUDE)
-+override CFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
-+override CFLAGS += $(INCLUDE)
-+override CXXFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-+override CXXFLAGS += $(INCLUDE)
-
- ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
-@@ -59,14 +59,16 @@ $(STATICLIB): $(MODULES)
- $(AR) r $@ $(MODULES)
-
- $(SHAREDLIB): $(MODULES)
-- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-
- install:
- install -d $(INCDIR) $(INSTALLDIR)
-- install -m 644 -o root -g root $(HEADER) $(INCDIR)
-- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
-- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
-- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-+ install -m 644 $(HEADER) $(INCDIR)
-+ install -m 644 $(HEADERFIP) $(INCDIR)
-+ install -m 644 $(STATICLIB) $(INSTALLDIR)
-+ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
-+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-+ ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
-
- clean:
- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+@@ -72,10 +72,10 @@
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+- install -m 644 -o root -g root $(HEADER) $(INCDIR)
+- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
+- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
++ install -m 644 $(HEADER) $(INCDIR)
++ install -m 644 $(HEADERFIP) $(INCDIR)
++ install -m 644 $(STATICLIB) $(INSTALLDIR)
++ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+ ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+
Index: FreeImage/Makefile.gnu
===================================================================
--- FreeImage.orig/Makefile.gnu
+++ FreeImage/Makefile.gnu
-@@ -15,10 +15,10 @@ LIBRARIES = -lstdc++
-
- MODULES = $(SRCS:.c=.o)
- MODULES := $(MODULES:.cpp=.o)
--CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
--CFLAGS += $(INCLUDE)
--CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
--CXXFLAGS += $(INCLUDE)
-+override CFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
-+override CFLAGS += $(INCLUDE)
-+override CXXFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-+override CXXFLAGS += $(INCLUDE)
-
- ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
-@@ -58,13 +58,13 @@ $(STATICLIB): $(MODULES)
- $(AR) r $@ $(MODULES)
-
- $(SHAREDLIB): $(MODULES)
-- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-
- install:
- install -d $(INCDIR) $(INSTALLDIR)
-- install -m 644 -o root -g root $(HEADER) $(INCDIR)
-- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
-- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-+ install -m 644 $(HEADER) $(INCDIR)
-+ install -m 644 $(STATICLIB) $(INSTALLDIR)
-+ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
- # ldconfig
+@@ -71,9 +71,9 @@
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+- install -m 644 -o root -g root $(HEADER) $(INCDIR)
+- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
++ install -m 644 $(HEADER) $(INCDIR)
++ install -m 644 $(STATICLIB) $(INSTALLDIR)
++ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+ ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+ # ldconfig
++++++ unbundle.patch ++++++
diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100
+++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
+DIRLIST="Wrapper/FreeImagePlus"
echo "VER_MAJOR = 3" > fipMakefile.srcs
@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs
for DIR in $DIRLIST; do
echo -n " -I$DIR" >> fipMakefile.srcs
done
+echo -n " -IDist" >> fipMakefile.srcs
echo >> fipMakefile.srcs
diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100
+++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
echo "VER_MAJOR = 3" > Makefile.srcs
echo "VER_MINOR = 17.0" >> Makefile.srcs
diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
+++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200
@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
# OpenJPEG
-CFLAGS += -DOPJ_STATIC
+override CFLAGS += -DOPJ_STATIC
# LibRaw
-CFLAGS += -DNO_LCMS
+override CFLAGS += -DNO_LCMS
# LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
+override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+override CFLAGS += $(INCLUDE)
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
# LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
+override CXXFLAGS += -D__ANSI__
+override CXXFLAGS += $(INCLUDE)
+LDFLAGS ?=
+override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
+ override CFLAGS += -fPIC
+ override CXXFLAGS += -fPIC
endif
TARGET = freeimageplus
@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES)
$(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
install:
install -d $(INCDIR) $(INSTALLDIR)
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
+++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200
@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++
MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
-# OpenJPEG
-CFLAGS += -DOPJ_STATIC
-# LibRaw
-CFLAGS += -DNO_LCMS
-# LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-# LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
+override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
+override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
+ override CFLAGS += -fPIC
endif
TARGET = freeimage
@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
$(CC) $(CFLAGS) -c $< -o $@
.cpp.o:
- $(CXX) $(CXXFLAGS) -c $< -o $@
+ $(CXX) $(CFLAGS) -c $< -o $@
$(STATICLIB): $(MODULES)
$(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
install:
install -d $(INCDIR) $(INSTALLDIR)
diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// --------------------------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp
--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu
s_plugins->AddNode(InitDDS);
s_plugins->AddNode(InitGIF);
s_plugins->AddNode(InitHDR);
- s_plugins->AddNode(InitG3);
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
+ which is a no no because of security reasons. */
+#if 0
+ s_plugins->AddNode(InitG3);
+#endif
s_plugins->AddNode(InitSGI);
s_plugins->AddNode(InitEXR);
s_plugins->AddNode(InitJ2K);
diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -28,16 +28,16 @@
#pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning)
#endif
-#include "../OpenEXR/IlmImf/ImfIO.h"
-#include "../OpenEXR/Iex/Iex.h"
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
-#include "../OpenEXR/IlmImf/ImfRgba.h"
-#include "../OpenEXR/IlmImf/ImfArray.h"
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/ImfIO.h>
+#include <OpenEXR/Iex.h>
+#include <OpenEXR/ImfOutputFile.h>
+#include <OpenEXR/ImfInputFile.h>
+#include <OpenEXR/ImfRgbaFile.h>
+#include <OpenEXR/ImfChannelList.h>
+#include <OpenEXR/ImfRgba.h>
+#include <OpenEXR/ImfArray.h>
+#include <OpenEXR/ImfPreviewImage.h>
+#include <OpenEXR/half.h>
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -35,9 +35,9 @@ extern "C" {
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
+#include <stdio.h>
+#include <jpeglib.h>
+#include <jerror.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -23,7 +23,7 @@
#include "Utilities.h"
#include "../Metadata/FreeImageTag.h"
-#include "../LibJXR/jxrgluelib/JXRGlue.h"
+#include <JXRGlue.h>
// ==========================================================
// Plugin Interface
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -40,8 +40,8 @@
// ----------------------------------------------------------
-#include "../ZLib/zlib.h"
-#include "../LibPNG/png.h"
+#include <zlib.h>
+#include <png.h>
// ----------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -19,7 +19,7 @@
// Use at your own risk!
// ==========================================================
-#include "../LibRawLite/libraw/libraw.h"
+#include <libraw/libraw.h>
#include "FreeImage.h"
#include "Utilities.h"
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -37,9 +37,9 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffio.h>
#include "../Metadata/FreeImageTag.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/half.h>
#include "FreeImageIO.h"
#include "PSDParser.h"
@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char
return tif;
}
-/**
-Open a TIFF file for reading or writing
-@param name
-@param mode
-*/
-TIFF*
-TIFFOpen(const char* name, const char* mode) {
- return 0;
-}
-
// ----------------------------------------------------------
// TIFF library FreeImage-specific routines.
// ----------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -24,10 +24,10 @@
#include "../Metadata/FreeImageTag.h"
-#include "../LibWebP/src/webp/decode.h"
-#include "../LibWebP/src/webp/encode.h"
-#include "../LibWebP/src/enc/vp8enci.h"
-#include "../LibWebP/src/webp/mux.h"
+#include <webp/decode.h>
+#include <webp/encode.h>
+// #include "../LibWebP/src/enc/vp8enci.h"
+#include <webp/mux.h>
// ==========================================================
// Plugin Interface
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -19,10 +19,9 @@
// Use at your own risk!
// ==========================================================
-#include "../ZLib/zlib.h"
+#include <zlib.h>
#include "FreeImage.h"
#include "Utilities.h"
-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
/**
Compresses a source buffer into a target buffer, using the ZLib library.
@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
return 0;
case Z_OK: {
// patch header, setup crc and length (stolen from mod_trace_output)
- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
crc = crc32(crc, source, source_size);
memcpy(target + 4 + dest_len, &crc, 4);
memcpy(target + 8 + dest_len, &source_size, 4);
diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100
+++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200
@@ -155,8 +155,11 @@ typedef uint8_t BYTE;
typedef uint16_t WORD;
typedef uint32_t DWORD;
typedef int32_t LONG;
+// Disable these, they conflict with the (wrong) ones of libraw
+#if 0
typedef int64_t INT64;
typedef uint64_t UINT64;
+#endif
#else
// MS is not C99 ISO compliant
typedef long BOOL;
@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) {
FIF_DDS = 24,
FIF_GIF = 25,
FIF_HDR = 26,
- FIF_FAXG3 = 27,
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
+ which is a no no because of security reasons. */
+#if 0
+ FIF_FAXG3 = 27,
+#endif
FIF_SGI = 28,
FIF_EXR = 29,
FIF_J2K = 30,
@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix)
};
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
+ Fedora build of FreeImage as they require that FreeImage uses a private copy
+ of libjpeg which is a no no because of security reasons. */
+#if 0
/** Lossless JPEG transformations
Constants used in FreeImage_JPEGTransform
*/
@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation
FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw)
};
+#endif
/** Tone mapping operators.
Constants used in FreeImage_ToneMapping.
@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma
// --------------------------------------------------------------------------
// JPEG lossless transformation routines
// --------------------------------------------------------------------------
-
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
++ Fedora build of FreeImage as they require that FreeImage uses a private copy
++ of libjpeg which is a no no because of security reasons. */
+#if 0
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
+#endif
// --------------------------------------------------------------------------
diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -26,10 +26,10 @@ extern "C" {
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
-#include "../LibJPEG/transupp.h"
+#include <jinclude.h>
+#include <jpeglib.h>
+#include <jerror.h>
+#include <transupp.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp
--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -30,6 +30,11 @@
#define MAX_TEXT_EXTENT 512
+// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h)
+typedef int64_t INT64;
+typedef uint64_t UINT64;
+
+
/**
Convert a tag to a C string
*/
diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -29,13 +29,18 @@
#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
#endif
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffio.h>
#include "FreeImage.h"
#include "Utilities.h"
#include "FreeImageTag.h"
#include "FIRational.h"
+extern "C"
+{
+ int _TIFFDataSize(TIFFDataType type);
+}
+
// ----------------------------------------------------------
// Extended TIFF Directory GEO Tag Support
// ----------------------------------------------------------
@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI
// TIFF EXIF tag reading & writing
// ----------------------------------------------------------
+static uint32 exif_tag_ids[] = {
+ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM,
+ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF,
+ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED,
+ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL,
+ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE,
+ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE,
+ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE,
+ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH,
+ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT,
+ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL,
+ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE,
+ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION,
+ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY,
+ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION,
+ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT,
+ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD,
+ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN,
+ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE,
+ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM,
+ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST,
+ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION,
+ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL,
+ EXIFTAG_IMAGEUNIQUEID
+};
+static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]);
+
/**
Read a single Exif tag
@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
// loop over all Core Directory Tags
// ### uses private data, but there is no other way
+ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those
if(md_model == TagLib::EXIF_MAIN) {
- const TIFFDirectory *td = &tif->tif_dir;
-
- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo)
-
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
- const TIFFField *fld = tif->tif_fields[fi];
-
- const uint32 tag_id = TIFFFieldTag(fld);
-
- if(tag_id == lastTag) {
- continue;
- }
-
- // test if tag value is set
- // (lifted directly from LibTiff _TIFFWriteDirectory)
-
- if( fld->field_bit == FIELD_CUSTOM ) {
- int is_set = FALSE;
-
- for(int ci = 0; ci < td->td_customValueCount; ci++ ) {
- is_set |= (td->td_customValues[ci].info == fld);
- }
-
- if( !is_set ) {
- continue;
- }
-
- } else if(!TIFFFieldSet(tif, fld->field_bit)) {
- continue;
- }
-
- // process *all* other tags (some will be ignored)
-
- tiff_read_exif_tag(tif, tag_id, dib, md_model);
-
- lastTag = tag_id;
+ for (int i = 0; i < nExifTags; ++i) {
+ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model);
}
-
}
return TRUE;
@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
TagLib& tag_lib = TagLib::instance();
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
- const TIFFField *fld = tif->tif_fields[fi];
-
- const uint32 tag_id = TIFFFieldTag(fld);
+ for (int fi = 0; fi < nExifTags; fi++) {
+ const uint32 tag_id = exif_tag_ids[fi];
+ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id);
if(skip_write_field(tif, tag_id)) {
// skip tags that are already handled by the LibTIFF writing process
1
0
Hello community,
here is the log from the commit of package libdxfrw for openSUSE:Factory checked in at 2016-01-01 19:47:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libdxfrw (Old)
and /work/SRC/openSUSE:Factory/.libdxfrw.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libdxfrw"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libdxfrw/libdxfrw.changes 2015-09-11 09:04:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libdxfrw.new/libdxfrw.changes 2016-01-01 19:47:20.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Dec 8 18:55:11 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 0.6.3
+ * No changelog available for this version
+
+-------------------------------------------------------------------
Old:
----
libdxfrw-0.6.1.tar.bz2
New:
----
libdxfrw-0.6.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libdxfrw.spec ++++++
--- /var/tmp/diff_new_pack.nZNM7D/_old 2016-01-01 19:47:21.000000000 +0100
+++ /var/tmp/diff_new_pack.nZNM7D/_new 2016-01-01 19:47:21.000000000 +0100
@@ -20,7 +20,7 @@
%define so_ver 0
Name: libdxfrw
-Version: 0.6.1
+Version: 0.6.3
Release: 0
Summary: Library to read and write DXF files
License: GPL-2.0+
++++++ libdxfrw-0.6.1.tar.bz2 -> libdxfrw-0.6.3.tar.bz2 ++++++
++++ 2537 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pyasn1-modules for openSUSE:Factory checked in at 2016-01-01 19:47:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyasn1-modules (Old)
and /work/SRC/openSUSE:Factory/.python-pyasn1-modules.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyasn1-modules"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyasn1-modules/python-pyasn1-modules.changes 2015-08-14 14:46:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyasn1-modules.new/python-pyasn1-modules.changes 2016-01-01 19:47:15.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Dec 29 17:10:09 UTC 2015 - michael(a)stroeder.com
+
+- Update to upstream release 0.0.8
+ - Wheel distribution format now supported
+ - Fix to misspelled rfc2459.id_at_sutname variable
+ - Fix to misspelled rfc2459.NameConstraints component tag ID
+ - Fix to misspelled rfc2459.GeneralSubtree component default status
+
+-------------------------------------------------------------------
Old:
----
pyasn1-modules-0.0.7.tar.gz
New:
----
pyasn1-modules-0.0.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyasn1-modules.spec ++++++
--- /var/tmp/diff_new_pack.PcCoqY/_old 2016-01-01 19:47:16.000000000 +0100
+++ /var/tmp/diff_new_pack.PcCoqY/_new 2016-01-01 19:47:16.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-pyasn1-modules
-Version: 0.0.7
+Version: 0.0.8
Release: 0
Url: http://pyasn1.sf.net/
Summary: Collection of protocols modules written in ASN.1 language
++++++ pyasn1-modules-0.0.7.tar.gz -> pyasn1-modules-0.0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/CHANGES.txt new/pyasn1-modules-0.0.8/CHANGES.txt
--- old/pyasn1-modules-0.0.7/CHANGES.txt 2015-08-01 09:34:10.000000000 +0200
+++ new/pyasn1-modules-0.0.8/CHANGES.txt 2015-09-28 12:34:11.000000000 +0200
@@ -1,5 +1,13 @@
-Revision 0.0.7
---------------
+Revision 0.0.8, released 28-09-2015
+-----------------------------------
+
+- Wheel distribution format now supported
+- Fix to misspelled rfc2459.id_at_sutname variable
+- Fix to misspelled rfc2459.NameConstraints component tag ID
+- Fix to misspelled rfc2459.GeneralSubtree component default status
+
+Revision 0.0.7, released 01-08-2015
+-----------------------------------
- Extensions added to text files, CVS attic flushed.
- Fix to rfc2459.BasicConstraints syntax.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/PKG-INFO new/pyasn1-modules-0.0.8/PKG-INFO
--- old/pyasn1-modules-0.0.7/PKG-INFO 2015-08-01 10:47:40.000000000 +0200
+++ new/pyasn1-modules-0.0.8/PKG-INFO 2015-09-28 14:34:05.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: pyasn1-modules
-Version: 0.0.7
+Version: 0.0.8
Summary: A collection of ASN.1-based protocols modules.
Home-page: http://sourceforge.net/projects/pyasn1/
Author: Ilya Etingof <ilya(a)glas.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules/__init__.py new/pyasn1-modules-0.0.8/pyasn1_modules/__init__.py
--- old/pyasn1-modules-0.0.7/pyasn1_modules/__init__.py 2015-07-05 15:03:23.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules/__init__.py 2015-08-01 10:52:41.000000000 +0200
@@ -1,2 +1,2 @@
# http://www.python.org/dev/peps/pep-0396/
-__version__ = '0.0.7'
+__version__ = '0.0.8'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules/rfc2459.py new/pyasn1-modules-0.0.8/pyasn1_modules/rfc2459.py
--- old/pyasn1-modules-0.0.7/pyasn1_modules/rfc2459.py 2015-08-01 09:33:26.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules/rfc2459.py 2015-08-17 23:40:32.000000000 +0200
@@ -87,7 +87,8 @@
id_at = univ.ObjectIdentifier('2.5.4')
id_at_name = univ.ObjectIdentifier('2.5.4.41')
-id_at_sutname = univ.ObjectIdentifier('2.5.4.4')
+# preserve misspelled variable for compatibility
+id_at_sutname = id_at_surname = univ.ObjectIdentifier('2.5.4.4')
id_at_givenName = univ.ObjectIdentifier('2.5.4.42')
id_at_initials = univ.ObjectIdentifier('2.5.4.43')
id_at_generationQualifier = univ.ObjectIdentifier('2.5.4.44')
@@ -777,7 +778,7 @@
class GeneralSubtree(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('base', GeneralName()),
- namedtype.NamedType('minimum', BaseDistance(0).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
+ namedtype.DefaultedNamedType('minimum', BaseDistance(0).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.OptionalNamedType('maximum', BaseDistance().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))
)
@@ -790,7 +791,7 @@
class NameConstraints(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('permittedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
- namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))
+ namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/PKG-INFO new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/PKG-INFO
--- old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/PKG-INFO 2015-08-01 10:47:39.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/PKG-INFO 2015-09-28 14:34:05.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: pyasn1-modules
-Version: 0.0.7
+Version: 0.0.8
Summary: A collection of ASN.1-based protocols modules.
Home-page: http://sourceforge.net/projects/pyasn1/
Author: Ilya Etingof <ilya(a)glas.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/SOURCES.txt new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/SOURCES.txt
--- old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/SOURCES.txt 2015-08-01 10:47:39.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/SOURCES.txt 2015-09-28 14:34:05.000000000 +0200
@@ -2,6 +2,8 @@
LICENSE.txt
MANIFEST.in
README.txt
+requirements.txt
+setup.cfg
setup.py
pyasn1_modules/__init__.py
pyasn1_modules/pem.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/requirements.txt new/pyasn1-modules-0.0.8/requirements.txt
--- old/pyasn1-modules-0.0.7/requirements.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/pyasn1-modules-0.0.8/requirements.txt 2015-09-28 12:30:32.000000000 +0200
@@ -0,0 +1 @@
+pyasn1>=0.1.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/setup.cfg new/pyasn1-modules-0.0.8/setup.cfg
--- old/pyasn1-modules-0.0.7/setup.cfg 2015-08-01 10:47:40.000000000 +0200
+++ new/pyasn1-modules-0.0.8/setup.cfg 2015-09-28 14:34:05.000000000 +0200
@@ -1,5 +1,8 @@
+[bdist_wheel]
+universal = 1
+
[egg_info]
-tag_build =
tag_date = 0
+tag_build =
tag_svn_revision = 0
1
0
Hello community,
here is the log from the commit of package gtk2 for openSUSE:Factory checked in at 2016-01-01 19:46:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk2 (Old)
and /work/SRC/openSUSE:Factory/.gtk2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk2/gtk2.changes 2015-12-17 15:51:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gtk2.new/gtk2.changes 2016-01-01 19:47:10.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Dec 28 15:54:03 UTC 2015 - zaitor(a)opensuse.org
+
+- Add gtk2-randr-1.5-monitor-support.patch: Adds support for using
+ the newly introduced monitor objects in the XRandR protocol.
+ Patch from upstream git (bgo#759912).
+
+-------------------------------------------------------------------
New:
----
gtk2-randr-1.5-monitor-support.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gtk2.spec ++++++
--- /var/tmp/diff_new_pack.qzu7Od/_old 2016-01-01 19:47:12.000000000 +0100
+++ /var/tmp/diff_new_pack.qzu7Od/_new 2016-01-01 19:47:12.000000000 +0100
@@ -59,6 +59,8 @@
Patch57: gtk2-bgo743166-remember-printing-authentication.patch
# PATCH-FIX-UPSTREAM gtk2-bgo737777-fix-printing-authentication-crash.patch bgo#737777 joschibrauchle(a)gmx.de -- Applications crash randomly while printing with a password-secured SMB printer
Patch58: gtk2-bgo737777-fix-printing-authentication-crash.patch
+# PATCH-FIX-UPSTREAM gtk2-randr-1.5-monitor-support.patch bgo#759912 zaitor(a)opensuse.org -- Adds support for using the newly introduced monitor objects in the XRandR protocol.
+Patch59: gtk2-randr-1.5-monitor-support.patch
BuildRequires: atk-devel
BuildRequires: cairo-devel
BuildRequires: cups-devel
@@ -339,6 +341,7 @@
%patch56 -p1
%patch57 -p1
%patch58 -p1
+%patch59 -p1
gnome-patch-translation-update
%build
++++++ gtk2-randr-1.5-monitor-support.patch ++++++
>From 8bbd76593097bb00b7c60d56743b584062b8dcf5 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied(a)redhat.com>
Date: Mon, 2 Feb 2015 16:02:04 +1000
Subject: gtk2-24: add randr 1.5 monitor support [v3]
This patch introduces support for using the newly introduced
monitor objects in the XRandR protocol. These objects are meant
to be used to denote a set of rectangles representing a logical
monitor, and are used to hide details like monitor tiling and
virtual gpu outputs.
This uses the new objects instead of crtc/outputs objects when
they are available to create the monitor lists. X server 1.18
is required on the server side for randr 1.5.
This patch was cherry-picked and fixed from the gtk3 branch and
squashes the two following additional fixupes:
v2: Fix primary monitor determination with XRANDR 1.5
Matthias Clasen <mclasen(a)redhat.com>
v3: Fix a typo in the previous patch
Matthias Clasen <mclasen(a)redhat.com>
https://bugzilla.gnome.org/show_bug.cgi?id=759912
---
configure.ac | 3 +++
gdk/x11/gdkdisplay-x11.c | 6 +++++
gdk/x11/gdkdisplay-x11.h | 1 +
gdk/x11/gdkscreen-x11.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 79 insertions(+)
diff --git a/configure.ac b/configure.ac
index 1c041e6..7ed414c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1192,6 +1192,9 @@ if test "x$gdktarget" = "xx11"; then
if $PKG_CONFIG --exists "xrandr >= 1.2.99" ; then
AC_DEFINE(HAVE_RANDR, 1, [Have the Xrandr extension library])
+ if $PKG_CONFIG --exists "xrandr >= 1.5.0" ; then
+ AC_DEFINE(HAVE_RANDR15, 1, [Have the Xrandr 1.5 extension library])
+ fi
X_PACKAGES="$X_PACKAGES xrandr"
fi
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 2bbcb35..0c63c55 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -182,6 +182,7 @@ gdk_display_open (const gchar *display_name)
/* RandR must be initialized before we initialize the screens */
display_x11->have_randr13 = FALSE;
+ display_x11->have_randr15 = FALSE;
#ifdef HAVE_RANDR
if (XRRQueryExtension (display_x11->xdisplay,
&display_x11->xrandr_event_base, &ignore))
@@ -193,6 +194,11 @@ gdk_display_open (const gchar *display_name)
if ((major == 1 && minor >= 3) || major > 1)
display_x11->have_randr13 = TRUE;
+#ifdef HAVE_RANDR15
+ if (minor >= 5 || major > 1)
+ display_x11->have_randr15 = TRUE;
+#endif
+
gdk_x11_register_standard_event_type (display, display_x11->xrandr_event_base, RRNumberEvents);
}
#endif
diff --git a/gdk/x11/gdkdisplay-x11.h b/gdk/x11/gdkdisplay-x11.h
index f8a55d0..de85623 100644
--- a/gdk/x11/gdkdisplay-x11.h
+++ b/gdk/x11/gdkdisplay-x11.h
@@ -87,6 +87,7 @@ struct _GdkDisplayX11
gint xdamage_event_base;
gboolean have_randr13;
+ gboolean have_randr15;
gint xrandr_event_base;
/* If the SECURITY extension is in place, whether this client holds
diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
index 66a0d96..9069bdc 100644
--- a/gdk/x11/gdkscreen-x11.c
+++ b/gdk/x11/gdkscreen-x11.c
@@ -740,6 +740,70 @@ monitor_compare_function (GdkX11Monitor *monitor1,
}
#endif
+#ifdef HAVE_RANDR15
+static gboolean
+init_randr15 (GdkScreen *screen)
+{
+ GdkDisplay *display = gdk_screen_get_display (screen);
+ GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display);
+ GdkScreenX11 *x11_screen = GDK_SCREEN_X11 (screen);
+ XRRMonitorInfo *rr_monitors;
+ int num_rr_monitors;
+ int i;
+ GArray *monitors;
+ XID primary_output = None;
+
+ if (!display_x11->have_randr15)
+ return FALSE;
+
+ rr_monitors = XRRGetMonitors (x11_screen->xdisplay,
+ x11_screen->xroot_window,
+ True,
+ &num_rr_monitors);
+ if (!rr_monitors)
+ return FALSE;
+
+ monitors = g_array_sized_new (FALSE, TRUE, sizeof (GdkX11Monitor),
+ num_rr_monitors);
+ for (i = 0; i < num_rr_monitors; i++)
+ {
+ GdkX11Monitor monitor;
+ init_monitor_geometry (&monitor,
+ rr_monitors[i].x,
+ rr_monitors[i].y,
+ rr_monitors[i].width,
+ rr_monitors[i].height);
+
+ monitor.width_mm = rr_monitors[i].mwidth;
+ monitor.height_mm = rr_monitors[i].mheight;
+ monitor.output = rr_monitors[i].outputs[0];
+ if (rr_monitors[i].primary)
+ primary_output = monitor.output;
+
+ g_array_append_val (monitors, monitor);
+ }
+ XRRFreeMonitors (rr_monitors);
+
+ g_array_sort (monitors,
+ (GCompareFunc) monitor_compare_function);
+ x11_screen->n_monitors = monitors->len;
+ x11_screen->monitors = (GdkX11Monitor *) g_array_free (monitors, FALSE);
+
+ x11_screen->primary_monitor = 0;
+
+ for (i = 0; i < x11_screen->n_monitors; i++)
+ {
+ if (x11_screen->monitors[i].output == primary_output)
+ {
+ x11_screen->primary_monitor = i;
+ break;
+ }
+ }
+
+ return x11_screen->n_monitors > 0;
+}
+#endif
+
static gboolean
init_randr13 (GdkScreen *screen)
{
@@ -1020,6 +1084,11 @@ init_multihead (GdkScreen *screen)
if (init_fake_xinerama (screen))
return;
+#ifdef HAVE_RANDR15
+ if (init_randr15 (screen))
+ return;
+#endif
+
if (init_randr13 (screen))
return;
--
cgit v0.11.2
1
0
Hello community,
here is the log from the commit of package xen for openSUSE:Factory checked in at 2016-01-01 19:46:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xen (Old)
and /work/SRC/openSUSE:Factory/.xen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xen/xen.changes 2015-12-18 21:53:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2016-01-01 19:47:04.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Dec 21 09:09:55 UTC 2015 - ohering(a)suse.de
+
+- Adjust xen-dom0-modules.service to run Before xenstored.service
+ instead of proc-xen.mount to workaround a bug in systemd "design"
+ (bnc#959845)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.cDQ6JD/_old 2016-01-01 19:47:07.000000000 +0100
+++ /var/tmp/diff_new_pack.cDQ6JD/_new 2016-01-01 19:47:07.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xen
#
-# 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,6 +15,7 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
# needssslcertforbuild
Name: xen
++++++ xen-dom0-modules.service ++++++
--- /var/tmp/diff_new_pack.cDQ6JD/_old 2016-01-01 19:47:08.000000000 +0100
+++ /var/tmp/diff_new_pack.cDQ6JD/_new 2016-01-01 19:47:08.000000000 +0100
@@ -1,7 +1,7 @@
[Unit]
Description=Load dom0 backend drivers
ConditionPathExists=/proc/xen
-Before=proc-xen.mount
+Before=xenstored.service xen-watchdog.service
[Install]
WantedBy=multi-user.target
1
0
Hello community,
here is the log from the commit of package cogl for openSUSE:Factory checked in at 2016-01-01 19:46:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cogl (Old)
and /work/SRC/openSUSE:Factory/.cogl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cogl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cogl/cogl.changes 2015-12-25 13:05:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cogl.new/cogl.changes 2016-01-01 19:46:58.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Dec 23 10:29:31 UTC 2015 - zaitor(a)opensuse.org
+
+- Add cogl-fix-black-login-screen.patch: Fix black and frozen
+ login screen after logout when using gdm in wayland mode and
+ session in x11 mode (boo#958885, bgo#758112, bgo#756926).
+
+-------------------------------------------------------------------
New:
----
cogl-fix-black-login-screen.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cogl.spec ++++++
--- /var/tmp/diff_new_pack.HCEaC3/_old 2016-01-01 19:46:59.000000000 +0100
+++ /var/tmp/diff_new_pack.HCEaC3/_new 2016-01-01 19:46:59.000000000 +0100
@@ -34,6 +34,8 @@
Source99: baselibs.conf
# PATCH-FIX-UPSTREAM cogl-GLES-Support-glMapBufferRange.patch zaitor(a)opensuse.org -- Support glmapbufferrange, patch from upstream git, stable branch.
Patch0: cogl-GLES-Support-glMapBufferRange.patch
+# PATCH-FIX-UPSTREAM cogl-fix-black-login-screen.patch boo#958885 zaitor(a)opensuse.org -- Fix black and frozen login screen after logout.
+Patch1: cogl-fix-black-login-screen.patch
BuildRequires: fdupes
BuildRequires: gtk-doc >= 1.13
BuildRequires: pkgconfig(cairo) >= 1.10
@@ -187,6 +189,7 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%configure \
++++++ cogl-fix-black-login-screen.patch ++++++
>From a583492ea2aa3ea8e78c269bd5db3f52f82aa79c Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode(a)redhat.com>
Date: Wed, 21 Oct 2015 15:47:01 -0400
Subject: kms-winsys: don't wait for a flip when page flipping fails
If we get EACCES from drmPageFlip we're not going to get
a flip event and shouldn't wait for one.
This commit changes the EACCES path to silently ignore the
failed flip request and just clean up the fb.
https://bugzilla.gnome.org/show_bug.cgi?id=756926
---
cogl/winsys/cogl-winsys-egl-kms.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c
index 20c325c..b460907 100644
--- a/cogl/winsys/cogl-winsys-egl-kms.c
+++ b/cogl/winsys/cogl-winsys-egl-kms.c
@@ -590,7 +590,7 @@ flip_all_crtcs (CoglDisplay *display, CoglFlipKMS *flip, int fb_id)
for (l = kms_display->crtcs; l; l = l->next)
{
CoglKmsCrtc *crtc = l->data;
- int ret;
+ int ret = 0;
if (crtc->count == 0 || crtc->ignore)
continue;
@@ -610,7 +610,8 @@ flip_all_crtcs (CoglDisplay *display, CoglFlipKMS *flip, int fb_id)
}
}
- flip->pending++;
+ if (ret == 0)
+ flip->pending++;
}
if (kms_renderer->page_flips_not_supported && needs_flip)
--
cgit v0.11.2
1
0
Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2016-01-01 19:46:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
and /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2015-12-29 12:49:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2016-01-01 19:46:46.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Dec 28 16:58:51 CET 2015 - jeffm(a)suse.com
+
+- ovl: fix permission checking for setattr (CVE-2015-8660
+ bsc#960281).
+- commit 77a3e32
+
+-------------------------------------------------------------------
kernel-default.changes: same change
kernel-docs.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-vanilla.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -29,7 +29,7 @@
Group: Documentation/Man
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -44,7 +44,7 @@
Group: SLES
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
kernel-obs-qa.spec: same change
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -32,7 +32,7 @@
Group: Development/Sources
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -27,7 +27,7 @@
Version: 4.3.3
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/ovl-fix-permission-checking-for-setattr new/patches.fixes/ovl-fix-permission-checking-for-setattr
--- old/patches.fixes/ovl-fix-permission-checking-for-setattr 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/ovl-fix-permission-checking-for-setattr 2015-12-28 16:58:51.000000000 +0100
@@ -0,0 +1,47 @@
+From: Miklos Szeredi <miklos(a)szeredi.hu>
+Date: Fri, 4 Dec 2015 19:18:48 +0100
+Subject: ovl: fix permission checking for setattr
+Git-commit: acff81ec2c79492b180fade3c2894425cd35a545
+Patch-mainline: v4.4-rc4
+References: CVE-2015-8660 bsc#960281
+
+[Al Viro] The bug is in being too enthusiastic about optimizing ->setattr()
+away - instead of "copy verbatim with metadata" + "chmod/chown/utimes"
+(with the former being always safe and the latter failing in case of
+insufficient permissions) it tries to combine these two. Note that copyup
+itself will have to do ->setattr() anyway; _that_ is where the elevated
+capabilities are right. Having these two ->setattr() (one to set verbatim
+copy of metadata, another to do what overlayfs ->setattr() had been asked
+to do in the first place) combined is where it breaks.
+
+Signed-off-by: Miklos Szeredi <miklos(a)szeredi.hu>
+Cc: <stable(a)vger.kernel.org>
+Signed-off-by: Al Viro <viro(a)zeniv.linux.org.uk>
+Acked-by: Jeff Mahoney <jeffm(a)suse.com>
+---
+ fs/overlayfs/inode.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
+index ec0c2a0..9612849 100644
+--- a/fs/overlayfs/inode.c
++++ b/fs/overlayfs/inode.c
+@@ -49,13 +49,13 @@ int ovl_setattr(struct dentry *dentry, struct iattr *attr)
+ if (err)
+ goto out;
+
+- upperdentry = ovl_dentry_upper(dentry);
+- if (upperdentry) {
++ err = ovl_copy_up(dentry);
++ if (!err) {
++ upperdentry = ovl_dentry_upper(dentry);
++
+ mutex_lock(&upperdentry->d_inode->i_mutex);
+ err = notify_change(upperdentry, attr, NULL);
+ mutex_unlock(&upperdentry->d_inode->i_mutex);
+- } else {
+- err = ovl_copy_up_last(dentry, attr, false);
+ }
+ ovl_drop_write(dentry);
+ out:
+
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -292,6 +292,7 @@
########################################################
# Overlayfs
########################################################
+ patches.fixes/ovl-fix-permission-checking-for-setattr
########################################################
# Swap-over-NFS
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -1,3 +1,3 @@
-2015-12-22 12:19:48 +0100
-GIT Revision: 10b7cffdfab2ff23f20a3b540351232646c1105d
+2015-12-28 16:58:51 +0100
+GIT Revision: 77a3e32efb4979780b41ec71dde40026a3045fbc
GIT Branch: stable
1
0