1
0

Accepting request 805561 from home:frispete:blender

OBS-URL: https://build.opensuse.org/request/show/805561
OBS-URL: https://build.opensuse.org/package/show/graphics/OpenShadingLanguage?expand=0&rev=12
This commit is contained in:
Stefan Brüns 2020-05-17 13:18:08 +00:00 committed by Git OBS Bridge
parent 1c4af470c7
commit 9b69c3bc12
6 changed files with 145 additions and 91 deletions

View File

@ -0,0 +1,51 @@
From 38413a86dc8782048089077a07b2347bf430dc02 Mon Sep 17 00:00:00 2001
From: Larry Gritz <lg@larrygritz.com>
Date: Sat, 9 May 2020 12:48:09 -0700
Subject: [PATCH] Fix typo in the .pc.in files that botched the version (#1168)
Signed-off-by: Larry Gritz <lg@larrygritz.com>
---
src/build-scripts/oslcomp.pc.in | 2 +-
src/build-scripts/oslexec.pc.in | 2 +-
src/build-scripts/oslquery.pc.in | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/build-scripts/oslcomp.pc.in b/src/build-scripts/oslcomp.pc.in
index 00244fd1..63cf7a9f 100644
--- a/src/build-scripts/oslcomp.pc.in
+++ b/src/build-scripts/oslcomp.pc.in
@@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: oslcomp
Description: oslcomp Compile OSL shaders from source
URL: https://github.com/imageworks/OpenShadingLanguage
-Version: @PACKAGE_VERSION_MAJOR@.@PACKAGE_VERSION_MINOR@.@PACKAGE_VERSION_PATCH@
+Version: @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@
Libs: -L${libdir} -loslcomp
Cflags: -I${includedir}
diff --git a/src/build-scripts/oslexec.pc.in b/src/build-scripts/oslexec.pc.in
index e29cf9a1..1ad264c2 100644
--- a/src/build-scripts/oslexec.pc.in
+++ b/src/build-scripts/oslexec.pc.in
@@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: oslexec
Description: oslexec Execute compiled OSL shaders
URL: https://github.com/imageworks/OpenShadingLanguage
-Version: @PACKAGE_VERSION_MAJOR@.@PACKAGE_VERSION_MINOR@.@PACKAGE_VERSION_PATCH@
+Version: @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@
Libs: -L${libdir} -loslexec
Cflags: -I${includedir}
diff --git a/src/build-scripts/oslquery.pc.in b/src/build-scripts/oslquery.pc.in
index 060cd4c0..4da229b2 100644
--- a/src/build-scripts/oslquery.pc.in
+++ b/src/build-scripts/oslquery.pc.in
@@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: oslquery
Description: oslquery Query parameters of OSL compiled shaders
URL: https://github.com/imageworks/OpenShadingLanguage
-Version: @PACKAGE_VERSION_MAJOR@.@PACKAGE_VERSION_MINOR@.@PACKAGE_VERSION_PATCH@
+Version: @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@
Libs: -L${libdir} -loslquery
Cflags: -I${includedir}
--
2.26.2

View File

@ -0,0 +1,41 @@
From 891061d02a71ce1a5aad6807063b69f8e38e174a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Wed, 13 May 2020 20:23:49 +0200
Subject: [PATCH] Use single shared clang-cpp library starting with LLVM 9
Since 9.0 LLVM defaults to building a single clang-cpp library for
non-developer builds.
As this is just the default, and some distributions enable it only with
LLVM 10 (e.g. Fedora), make the clang-cpp search dependent on the build
mode.
---
src/cmake/modules/FindLLVM.cmake | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/cmake/modules/FindLLVM.cmake b/src/cmake/modules/FindLLVM.cmake
index 8b17ad8e..21a87f38 100644
--- a/src/cmake/modules/FindLLVM.cmake
+++ b/src/cmake/modules/FindLLVM.cmake
@@ -79,6 +79,18 @@ if (NOT LLVM_LIBRARY)
set (LLVM_LIBRARY "${LLVM_LIBRARIES}")
endif ()
+execute_process (COMMAND ${LLVM_CONFIG} --shared-mode
+ OUTPUT_VARIABLE LLVM_SHARED_MODE
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+if (LLVM_VERSION VERSION_GREATER_EQUAL 9.0 AND (LLVM_SHARED_MODE STREQUAL "shared"))
+ find_library ( _CLANG_CPP_LIBRARY
+ NAMES "clang-cpp"
+ PATHS ${LLVM_LIB_DIR})
+ if (_CLANG_CPP_LIBRARY)
+ list (APPEND CLANG_LIBRARIES ${_CLANG_CPP_LIBRARY})
+ endif ()
+endif ()
+
foreach (COMPONENT clangFrontend clangDriver clangSerialization
clangParse clangSema clangAnalysis clangAST clangBasic
clangEdit clangLex)
--
2.26.2

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Wed May 13 19:11:41 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Use the correct CMake variable to set the shader install location.
- Replace osl-pkgconfig-versions.patch with correct upstream
0001-Fix-typo-in-the-.pc.in-files-that-botched-the-versio.patch
- Adapt to LLVM 9/10 changes defaulting to single clang-cpp library,
add 0001-Use-single-shared-clang-cpp-library-starting-with-LL.patch
instead of mangling CMake output.
- Dropped osl-oslimageio-soname.patch, which erroneously adds a
version to the OpenImageIO plugin, voiding any chance for
OIIO to find and load the plugin.
- Rename the osl.imageio package to OpenImageIO-plugin-osl, to
better reflect its purpose, install the plugin to the default
OpenImageIO plugin directory.
- Use python3 for the build process.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Apr 21 09:54:50 UTC 2020 - Dave Plater <davejplater@gmail.com> Tue Apr 21 09:54:50 UTC 2020 - Dave Plater <davejplater@gmail.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package OpenShadingLanguage # spec file for package OpenShadingLanguage
# #
# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2020 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -19,8 +19,8 @@
# The library soname versions follow the package version major and minor numbers. # The library soname versions follow the package version major and minor numbers.
%define sover %(echo %{version} | cut -d . -f 1,2) %define sover %(echo %{version} | cut -d . -f 1,2)
%define sufx %(echo %{sover}|tr . _) %define sufx %(echo %{sover}|tr . _)
# LLVM version is needed because -lclang-cpp doesn't exist < 10 # Required for the plugin directory name, see https://github.com/OpenImageIO/oiio/issues/2583
%define llvm_version %(llvm-config --version | cut -d . -f 1) %define oiio_major_minor_ver %(rpm -q --queryformat='%%{version}' OpenImageIO-devel | cut -d . -f 1-2)
Name: OpenShadingLanguage Name: OpenShadingLanguage
Version: 1.11.4.1 Version: 1.11.4.1
@ -28,26 +28,29 @@ Release: 0
Summary: A language for programmable shading Summary: A language for programmable shading
License: BSD-3-Clause License: BSD-3-Clause
Group: Productivity/Graphics/Other Group: Productivity/Graphics/Other
Url: https://github.com/imageworks/OpenShadingLanguage URL: https://github.com/imageworks/OpenShadingLanguage
Source0: https://github.com/imageworks/OpenShadingLanguage/archive/Release-%{version}-dev.tar.gz#/%{name}-Release-%{version}.tar.gz Source0: https://github.com/imageworks/OpenShadingLanguage/archive/Release-%{version}-dev.tar.gz#/%{name}-Release-%{version}.tar.gz
Source1: https://creativecommons.org/licenses/by/3.0/legalcode.txt Source1: https://creativecommons.org/licenses/by/3.0/legalcode.txt
# PATCH-FIX-UPSTREAM
Patch0: 0001-LLVM-10-odds-and-ends-1135.patch Patch0: 0001-LLVM-10-odds-and-ends-1135.patch
# PATCH-FIX-UPSTREAM
Patch1: 0001-Some-SPI-build-fixes-for-finding-the-right-llvm.patch Patch1: 0001-Some-SPI-build-fixes-for-finding-the-right-llvm.patch
Patch2: osl-pkgconfig-versions.patch # PATCH-FIX-UPSTREAM
Patch3: osl-oslimageio-soname.patch Patch2: 0001-Fix-typo-in-the-.pc.in-files-that-botched-the-versio.patch
# PATCH-FIX-UPSTREAM - https://github.com/imageworks/OpenShadingLanguage/pull/1171
Patch3: 0001-Use-single-shared-clang-cpp-library-starting-with-LL.patch
BuildRequires: OpenEXR-devel BuildRequires: OpenEXR-devel
BuildRequires: OpenImageIO-devel >= 2.0
BuildRequires: bison BuildRequires: bison
BuildRequires: clang-devel >= 4 BuildRequires: clang-devel >= 7
BuildRequires: cmake BuildRequires: cmake >= 3.12
BuildRequires: flex BuildRequires: flex
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: libboost_filesystem-devel BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_system-devel BuildRequires: libboost_system-devel
BuildRequires: libboost_thread-devel BuildRequires: libboost_thread-devel
BuildRequires: libboost_wave-devel
BuildRequires: pkg-config BuildRequires: pkg-config
BuildRequires: python BuildRequires: python3-base
BuildRequires: cmake(OpenImageIO) >= 2.0
BuildRequires: cmake(pugixml) BuildRequires: cmake(pugixml)
Requires: %{name}-common-headers = %{version} Requires: %{name}-common-headers = %{version}
Recommends: %{name}-doc = %{version} Recommends: %{name}-doc = %{version}
@ -164,16 +167,20 @@ Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation. materials, lights, displacement, and pattern generation.
%package -n osl.imageio%{sufx} %package -n OpenImageIO-plugin-osl
Summary: Shader interface to OpenImageIO functions Summary: OpenImageIO input plugin
License: BSD-3-Clause License: BSD-3-Clause
Group: System/Libraries Group: System/Libraries
Obsoletes: osl.imageio < 1.11.4.1
Provides: osl.imageio = %{version}
%description -n osl.imageio%{sufx} %description -n OpenImageIO-plugin-osl
Open Shading Language (OSL) is a language for programmable shading Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation. materials, lights, displacement, and pattern generation.
This is a plugin to access OSL from OpenImageIO.
%package devel %package devel
Summary: Development files for %{name} Summary: Development files for %{name}
License: BSD-3-Clause License: BSD-3-Clause
@ -184,7 +191,6 @@ Requires: liboslexec%{sufx} = %{version}
Requires: liboslnoise%{sufx} = %{version} Requires: liboslnoise%{sufx} = %{version}
Requires: liboslquery%{sufx} = %{version} Requires: liboslquery%{sufx} = %{version}
Requires: libtestshade%{sufx} = %{version} Requires: libtestshade%{sufx} = %{version}
Requires: osl.imageio%{sufx} = %{version}
%description devel %description devel
The %{name}-devel package contains libraries and header files for The %{name}-devel package contains libraries and header files for
@ -193,29 +199,26 @@ developing applications that use %{name}.
%prep %prep
%setup -q -n %{name}-Release-%{version}-dev %setup -q -n %{name}-Release-%{version}-dev
%autopatch -p1 %autopatch -p1
echo "Using LLVM%{llvm_version}" find . -iname CMakeLists.txt -exec sed "-i" "-e s/COMMAND python/COMMAND python3/" "{}" \;
%build %build
%cmake \ %cmake \
-DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name} \
-DOSL_INSTALL_SHADERDIR:PATH=%{_datadir}/%{name} \ -DOSL_SHADER_INSTALL_DIR:PATH=%{_datadir}/%{name}/shaders/ \
-DCMAKE_CXX_STANDARD:STRING=14 -DCMAKE_CXX_STANDARD:STRING=14
%if 0%{?llvm_version} >= 10 %cmake_build
# Add missing -lclang-cpp to linker scripts for liboslcomp and liboslexec
sed -i 's/\-ldl /\-ldl \-lclang-cpp /' src/liboslexec/CMakeFiles/oslexec.dir/link.txt
sed -i 's/\-ldl /\-ldl \-lclang-cpp /' src/liboslcomp/CMakeFiles/oslcomp.dir/link.txt
%endif
make %{?_smp_mflags}
%install %install
%cmake_install %cmake_install
# Add Creative Commons license for documentation # Add Creative Commons license for documentation
cp -v %{SOURCE1} . cp -v %{SOURCE1} .
# Move the OpenImageIO plugin into its default search path
mkdir %{buildroot}%{_libdir}/OpenImageIO-%{oiio_major_minor_ver}
mv %{buildroot}%{_libdir}/osl.imageio.so %{buildroot}%{_libdir}/OpenImageIO-%{oiio_major_minor_ver}/
find %{buildroot} -name LICENSE -print -delete find %{buildroot} -name LICENSE -print -delete
find %{buildroot} -name README.md -print -delete find %{buildroot} -name README.md -print -delete
find %{buildroot} -name CHANGES.md -print -delete find %{buildroot} -name CHANGES.md -print -delete
find %{buildroot} -type f -name "*.la" -delete -print
%post -n liboslcomp%{sufx} -p /sbin/ldconfig %post -n liboslcomp%{sufx} -p /sbin/ldconfig
%postun -n liboslcomp%{sufx} -p /sbin/ldconfig %postun -n liboslcomp%{sufx} -p /sbin/ldconfig
@ -232,9 +235,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%post -n libtestshade%{sufx} -p /sbin/ldconfig %post -n libtestshade%{sufx} -p /sbin/ldconfig
%postun -n libtestshade%{sufx} -p /sbin/ldconfig %postun -n libtestshade%{sufx} -p /sbin/ldconfig
%post -n osl.imageio%{sufx} -p /sbin/ldconfig
%postun -n osl.imageio%{sufx} -p /sbin/ldconfig
%files %files
%license LICENSE %license LICENSE
%{_bindir}/* %{_bindir}/*
@ -244,16 +244,16 @@ find %{buildroot} -type f -name "*.la" -delete -print
%doc %{_docdir}/%{name}/ %doc %{_docdir}/%{name}/
%files MaterialX-shaders-source %files MaterialX-shaders-source
%{_datadir}/OSL/shaders/MaterialX %{_datadir}/%{name}/shaders/MaterialX
%files example-shaders-source %files example-shaders-source
%{_datadir}/OSL/shaders/*.osl %{_datadir}/%{name}/shaders/*.osl
%{_datadir}/OSL/shaders/*.oso %{_datadir}/%{name}/shaders/*.oso
%files common-headers %files common-headers
%dir %{_datadir}/OSL %dir %{_datadir}/%{name}
%dir %{_datadir}/OSL/shaders %dir %{_datadir}/%{name}/shaders
%{_datadir}/OSL/shaders/*.h %{_datadir}/%{name}/shaders/*.h
%files -n liboslcomp%{sufx} %files -n liboslcomp%{sufx}
%license LICENSE %license LICENSE
@ -275,14 +275,14 @@ find %{buildroot} -type f -name "*.la" -delete -print
%license LICENSE %license LICENSE
%{_libdir}/libtestshade.so.%{sover}* %{_libdir}/libtestshade.so.%{sover}*
%files -n osl.imageio%{sufx} %files -n OpenImageIO-plugin-osl
%license LICENSE %license LICENSE
%{_libdir}/osl.imageio.so.%{sover}* %{_libdir}/OpenImageIO-%{oiio_major_minor_ver}/osl.imageio.so
%files devel %files devel
%license LICENSE %license LICENSE
%{_includedir}/* %{_includedir}/*
%{_libdir}/*.so %{_libdir}/lib*.so
%{_libdir}/cmake/ %{_libdir}/cmake/
%{_libdir}/pkgconfig/ %{_libdir}/pkgconfig/

View File

@ -1,33 +0,0 @@
From: Dave Plater <davejplater@gmail.com>
Date: Fri 24 Apr 08:52:18 SAST 2020
Subject: input: reenable shared library build osl.imageio.so
Upstream: submitted
The build mistakes version 1.11 for > 2.1 and builds osl.imageio.so as
a plugin. This would mean relocating it to a plugin directory.Index: b/src/osl.imageio/CMakeLists.txt
===================================================================
--- a/src/osl.imageio/CMakeLists.txt 2020-03-24 07:33:42.000000000 +0200
+++ b/src/osl.imageio/CMakeLists.txt 2020-04-22 09:31:43.152642764 +0200
@@ -28,20 +28,16 @@ macro (add_oiio_plugin)
# Get the name of the current directory and use it as the target name.
get_filename_component (_plugin_name ${CMAKE_CURRENT_SOURCE_DIR} NAME)
- if (OPENIMAGEIO_VERSION VERSION_LESS 2.1)
# Prior to OIIO 2.1, OIIO built plugin modules as shared libs rather
# than "modules". On OSX, that changed its extension from ".dylib"
# to ".so". If building against OIIO < 2.1, do it the old way.
# This clause can disappear when OIIO 2.1 is the minimum that OSL
# supports.
- add_library (${_plugin_name} SHARED ${_plugin_UNPARSED_ARGUMENTS})
- set_target_properties (${_plugin_name}
+ add_library (${_plugin_name} SHARED ${_plugin_UNPARSED_ARGUMENTS})
+ set_target_properties (${_plugin_name}
PROPERTIES
VERSION ${OSL_VERSION_MAJOR}.${OSL_VERSION_MINOR}.${OSL_VERSION_PATCH}
SOVERSION ${SOVERSION} )
- else ()
- add_library (${_plugin_name} MODULE ${_plugin_UNPARSED_ARGUMENTS})
- endif ()
target_compile_definitions (${_plugin_name} PRIVATE
${_plugin_DEFINITIONS})

View File

@ -1,22 +0,0 @@
From: Dave Plater <davejplater@gmail.com>
Date: Tue 21 Apr 10:49:01 SAST 2020
Subject: input: Fix version field in pc files
Upstream: submitted
CMakeLists.txt fails to provide Version:
@PACKAGE_VERSION_MAJOR@.@PACKAGE_VERSION_MINOR@.@PACKAGE_VERSION_PATCH@
for pc files resulting in a Version: field of ..
This patch adds the above variables.diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9877af9a..4b84c7a9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -50,6 +50,9 @@ set (OSO_FILE_VERSION_MINOR 0)
# This needs to be early, for CMAKE_INSTALL_FULL_DATADIR
include (GNUInstallDirs)
+set (PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
+set (PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
+set (PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
option (VERBOSE "Print lots of messages while compiling" OFF)
set (${PROJ_NAME}_NAMESPACE ${PROJECT_NAME} CACHE STRING