[packages/OpenColorIO] - updated java and python build - added WIP patch for yaml-cpp 0.5 (unfinished, so stick to yaml-cpp
qboosh
qboosh at pld-linux.org
Sun Jul 14 16:18:00 CEST 2013
commit a05bc41edfc3e68aa345af2f57be621eb327a3cc
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sun Jul 14 16:17:53 2013 +0200
- updated java and python build
- added WIP patch for yaml-cpp 0.5 (unfinished, so stick to yaml-cpp 0.3 for now)
OpenColorIO-yaml-cpp.patch | 215 +++++++++++++++++++++++++++++++++++++++++++++
OpenColorIO.spec | 17 ++--
2 files changed, 221 insertions(+), 11 deletions(-)
---
diff --git a/OpenColorIO.spec b/OpenColorIO.spec
index 47a9801..6d0b2d9 100644
--- a/OpenColorIO.spec
+++ b/OpenColorIO.spec
@@ -24,6 +24,8 @@ Source0: https://github.com/imageworks/OpenColorIO/tarball/v%{version}/%{name}-%
Patch0: %{name}-system-libs.patch
Patch1: %{name}-java.patch
Patch2: %{name}-libsuffix.patch
+# for yaml-cpp 0.5.0 (unfinished)
+Patch3: %{name}-yaml-cpp.patch
URL: http://opencolorio.org/
# g++ with tr1 support or...
#BuildRequires: boost-devel >= 1.34
@@ -35,6 +37,7 @@ BuildRequires: python-devel
%{?with_docs:BuildRequires: sphinx-pdg >= 1.1}
BuildRequires: tinyxml-devel >= 2.6.1
BuildRequires: yaml-cpp-devel >= 0.2.6
+BuildRequires: yaml-cpp-devel < 0.4.0
%if %{with opengl}
BuildRequires: OpenGL-devel
BuildRequires: OpenGL-glut-devel
@@ -174,8 +177,7 @@ cd build
%endif
%{!?with_sse2:-DOCIO_USE_SSE=OFF} \
-DUSE_EXTERNAL_TINYXML=ON \
- -DUSE_EXTERNAL_YAML=ON \
- -DPYTHON_INCLUDE_LIB_PREFIX=ON
+ -DUSE_EXTERNAL_YAML=ON
%{__make}
@@ -185,10 +187,6 @@ rm -rf $RPM_BUILD_ROOT
%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-# we use PYTHON_INCLUDE_LIB_PREFIX=ON so library is useful as C++ API
-# but allow it to be loaded without lib prefix
-ln -sf $(basename $RPM_BUILD_ROOT%{_libdir}/libPyOpenColorIO.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/PyOpenColorIO.so
-
# not needed when installing to /usr
%{__rm} $RPM_BUILD_ROOT%{_datadir}/ocio/setup_ocio.sh
# packaged as %doc
@@ -244,16 +242,13 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %ghost %{_libdir}/libOpenColorIO-JNI.so.1
%attr(755,root,root) %{_libdir}/libOpenColorIO-JNI.so
%dir %{_datadir}/ocio
-%{_datadir}/ocio/OpenColorIO-1.0.6.jar
+%{_datadir}/ocio/OpenColorIO-%{version}.jar
%endif
%files -n python-OpenColorIO
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libPyOpenColorIO.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libPyOpenColorIO.so.1
-%attr(755,root,root) %{_libdir}/PyOpenColorIO.so
+%attr(755,root,root) %{py_sitedir}/PyOpenColorIO.so
%files -n python-OpenColorIO-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libPyOpenColorIO.so
%{_includedir}/PyOpenColorIO
diff --git a/OpenColorIO-yaml-cpp.patch b/OpenColorIO-yaml-cpp.patch
new file mode 100644
index 0000000..fbb45b1
--- /dev/null
+++ b/OpenColorIO-yaml-cpp.patch
@@ -0,0 +1,215 @@
+--- imageworks-OpenColorIO-8883824/src/core/Config.cpp.orig 2012-12-12 00:21:23.000000000 +0100
++++ imageworks-OpenColorIO-8883824/src/core/Config.cpp 2013-05-25 18:28:05.264387301 +0200
+@@ -240,35 +240,27 @@ OCIO_NAMESPACE_ENTER
+ if(node.Tag() != "View")
+ return;
+
+- std::string key, stringval;
+-
+- for (YAML::Iterator iter = node.begin();
++ for (YAML::const_iterator iter = node.begin();
+ iter != node.end();
+ ++iter)
+ {
+- iter.first() >> key;
++ std::string key = iter->first.as<std::string>();
+
+ if(key == "name")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null &&
+- iter.second().Read<std::string>(stringval))
+- v.name = stringval;
++ v.name = iter->second.as<std::string>();
+ }
+ else if(key == "colorspace")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null &&
+- iter.second().Read<std::string>(stringval))
+- v.colorspace = stringval;
++ v.colorspace = iter->second.as<std::string>();
+ }
+ else if(key == "looks" || key == "look")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null &&
+- iter.second().Read<std::string>(stringval))
+- v.looks = stringval;
++ v.looks = iter->second.as<std::string>();
+ }
+ else
+ {
+- LogUnknownKeyWarning(node.Tag(), iter.first());
++ LogUnknownKeyWarning(node.Tag(), iter->first);
+ }
+ }
+
+@@ -391,7 +383,24 @@ OCIO_NAMESPACE_ENTER
+
+
+ } // namespace
+-
++
++}
++
++namespace YAML {
++ template<>
++ struct convert<OCIO_NAMESPACE::View> {
++ static bool decode(const Node &n, View &v)
++ {
++ if(node.Tag() != "View")
++ return false;
++ n >> v;
++ return true;
++ }
++ };
++}
++
++OCIO_NAMESPACE_ENTER
++{
+ class Config::Impl
+ {
+ public:
+@@ -1658,13 +1667,11 @@ OCIO_NAMESPACE_ENTER
+ {
+ try
+ {
+- YAML::Parser parser(istream);
+- YAML::Node node;
+- parser.GetNextDocument(node);
++ YAML::Node node = YAML::Load(istream);
+
+ // check profile version
+ int profile_version = 0;
+- if(node.FindValue("ocio_profile_version") == NULL)
++ if(!node["ocio_profile_version"])
+ {
+ std::ostringstream os;
+ os << "The specified file ";
+@@ -1672,7 +1679,7 @@ OCIO_NAMESPACE_ENTER
+ throw Exception (os.str().c_str());
+ }
+
+- node["ocio_profile_version"] >> profile_version;
++ profile_version = node["ocio_profile_version"].as<int>();
+ if(profile_version > 1)
+ {
+ std::ostringstream os;
+@@ -1690,40 +1697,30 @@ OCIO_NAMESPACE_ENTER
+ }
+
+
+- std::string key, stringval;
+- bool boolval = false;
+-
+- for (YAML::Iterator iter = node.begin();
++ for (YAML::iterator iter = node.begin();
+ iter != node.end();
+ ++iter)
+ {
+- iter.first() >> key;
++ std::string key = iter->first.as<std::string>();
+
+ if(key == "ocio_profile_version") { } // Already handled above.
+ else if(key == "search_path" || key == "resource_path")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null &&
+- iter.second().Read<std::string>(stringval))
+- context_->setSearchPath(stringval.c_str());
++ context_->setSearchPath(iter->second.as<std::string>().c_str());
+ }
+ else if(key == "strictparsing")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null &&
+- iter.second().Read<bool>(boolval))
+- strictParsing_ = boolval;
++ strictParsing_ = iter->second.as<bool>();
+ }
+ else if(key == "description")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null &&
+- iter.second().Read<std::string>(stringval))
+- description_ = stringval;
++ description_ = iter->second.as<std::string>();
+ }
+ else if(key == "luma")
+ {
+ std::vector<float> val;
+- if (iter.second().Type() != YAML::NodeType::Null)
+ {
+- iter.second() >> val;
++ val = iter->second.as< std::vector<float> >();
+ if(val.size() != 3)
+ {
+ std::ostringstream os;
+@@ -1736,46 +1733,35 @@ OCIO_NAMESPACE_ENTER
+ }
+ else if(key == "roles")
+ {
+- const YAML::Node& roles = iter.second();
++ const YAML::Node& roles = iter->second;
+ if(roles.Type() != YAML::NodeType::Map)
+ {
+ std::ostringstream os;
+ os << "'roles' field needs to be a (name: key) map.";
+ throw Exception(os.str().c_str());
+ }
+- for (YAML::Iterator it = roles.begin();
++ for (YAML::const_iterator it = roles.begin();
+ it != roles.end(); ++it)
+ {
+- std::string k, v;
+- it.first() >> k;
+- it.second() >> v;
+- roles_[pystring::lower(k)] = v;
++ roles_[pystring::lower(it->first.as<std::string>())] = it->second.as<std::string>();
+ }
+ }
+ else if(key == "displays")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null)
+- {
+- iter.second() >> displays_;
+- }
++ //displays_ = iter->second.as<DisplayMap>();
++ iter->second >> displays_;
+ }
+ else if(key == "active_displays")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null)
+- {
+- iter.second() >> activeDisplays_;
+- }
++ activeDisplays_ = iter->second.as<StringVec>();
+ }
+ else if(key == "active_views")
+ {
+- if (iter.second().Type() != YAML::NodeType::Null)
+- {
+- iter.second() >> activeViews_;
+- }
++ activeViews_ = iter->second.as<StringVec>();
+ }
+ else if(key == "colorspaces")
+ {
+- const YAML::Node& colorspaces = iter.second();
++ const YAML::Node& colorspaces = iter->second;
+
+ if(colorspaces.Type() != YAML::NodeType::Sequence)
+ {
+@@ -1804,7 +1790,7 @@ OCIO_NAMESPACE_ENTER
+ }
+ else if(key == "looks")
+ {
+- const YAML::Node& looks = iter.second();
++ const YAML::Node& looks = iter->second;
+
+ if(looks.Type() != YAML::NodeType::Sequence)
+ {
+@@ -1833,7 +1819,7 @@ OCIO_NAMESPACE_ENTER
+ }
+ else
+ {
+- LogUnknownKeyWarning("profile", iter.first());
++ LogUnknownKeyWarning("profile", iter->first);
+ }
+ }
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/OpenColorIO.git/commitdiff/a05bc41edfc3e68aa345af2f57be621eb327a3cc
More information about the pld-cvs-commit
mailing list