- Allow newer LLVM. it is no longer restricted to < 15.9

New upper limit is 18.9.
- for llvm >= 16 it wants CXX standard 17

OBS-URL: https://build.opensuse.org/package/show/graphics/OpenShadingLanguage?expand=0&rev=64
This commit is contained in:
Hans-Peter Jansen 2024-11-18 17:05:32 +00:00 committed by Git OBS Bridge
commit ca0a98f339
9 changed files with 1290 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

319
CC-BY-3.0.txt Normal file
View File

@ -0,0 +1,319 @@
Creative Commons Legal Code
Attribution 3.0 Unported
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
DAMAGES RESULTING FROM ITS USE.
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
CONDITIONS.
1. Definitions
a. "Adaptation" means a work based upon the Work, or upon the Work and
other pre-existing works, such as a translation, adaptation,
derivative work, arrangement of music or other alterations of a
literary or artistic work, or phonogram or performance and includes
cinematographic adaptations or any other form in which the Work may be
recast, transformed, or adapted including in any form recognizably
derived from the original, except that a work that constitutes a
Collection will not be considered an Adaptation for the purpose of
this License. For the avoidance of doubt, where the Work is a musical
work, performance or phonogram, the synchronization of the Work in
timed-relation with a moving image ("synching") will be considered an
Adaptation for the purpose of this License.
b. "Collection" means a collection of literary or artistic works, such as
encyclopedias and anthologies, or performances, phonograms or
broadcasts, or other works or subject matter other than works listed
in Section 1(f) below, which, by reason of the selection and
arrangement of their contents, constitute intellectual creations, in
which the Work is included in its entirety in unmodified form along
with one or more other contributions, each constituting separate and
independent works in themselves, which together are assembled into a
collective whole. A work that constitutes a Collection will not be
considered an Adaptation (as defined above) for the purposes of this
License.
c. "Distribute" means to make available to the public the original and
copies of the Work or Adaptation, as appropriate, through sale or
other transfer of ownership.
d. "Licensor" means the individual, individuals, entity or entities that
offer(s) the Work under the terms of this License.
e. "Original Author" means, in the case of a literary or artistic work,
the individual, individuals, entity or entities who created the Work
or if no individual or entity can be identified, the publisher; and in
addition (i) in the case of a performance the actors, singers,
musicians, dancers, and other persons who act, sing, deliver, declaim,
play in, interpret or otherwise perform literary or artistic works or
expressions of folklore; (ii) in the case of a phonogram the producer
being the person or legal entity who first fixes the sounds of a
performance or other sounds; and, (iii) in the case of broadcasts, the
organization that transmits the broadcast.
f. "Work" means the literary and/or artistic work offered under the terms
of this License including without limitation any production in the
literary, scientific and artistic domain, whatever may be the mode or
form of its expression including digital form, such as a book,
pamphlet and other writing; a lecture, address, sermon or other work
of the same nature; a dramatic or dramatico-musical work; a
choreographic work or entertainment in dumb show; a musical
composition with or without words; a cinematographic work to which are
assimilated works expressed by a process analogous to cinematography;
a work of drawing, painting, architecture, sculpture, engraving or
lithography; a photographic work to which are assimilated works
expressed by a process analogous to photography; a work of applied
art; an illustration, map, plan, sketch or three-dimensional work
relative to geography, topography, architecture or science; a
performance; a broadcast; a phonogram; a compilation of data to the
extent it is protected as a copyrightable work; or a work performed by
a variety or circus performer to the extent it is not otherwise
considered a literary or artistic work.
g. "You" means an individual or entity exercising rights under this
License who has not previously violated the terms of this License with
respect to the Work, or who has received express permission from the
Licensor to exercise rights under this License despite a previous
violation.
h. "Publicly Perform" means to perform public recitations of the Work and
to communicate to the public those public recitations, by any means or
process, including by wire or wireless means or public digital
performances; to make available to the public Works in such a way that
members of the public may access these Works from a place and at a
place individually chosen by them; to perform the Work to the public
by any means or process and the communication to the public of the
performances of the Work, including by public digital performance; to
broadcast and rebroadcast the Work by any means including signs,
sounds or images.
i. "Reproduce" means to make copies of the Work by any means including
without limitation by sound or visual recordings and the right of
fixation and reproducing fixations of the Work, including storage of a
protected performance or phonogram in digital form or other electronic
medium.
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
limit, or restrict any uses free from copyright or rights arising from
limitations or exceptions that are provided for in connection with the
copyright protection under copyright law or other applicable laws.
3. License Grant. Subject to the terms and conditions of this License,
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
perpetual (for the duration of the applicable copyright) license to
exercise the rights in the Work as stated below:
a. to Reproduce the Work, to incorporate the Work into one or more
Collections, and to Reproduce the Work as incorporated in the
Collections;
b. to create and Reproduce Adaptations provided that any such Adaptation,
including any translation in any medium, takes reasonable steps to
clearly label, demarcate or otherwise identify that changes were made
to the original Work. For example, a translation could be marked "The
original work was translated from English to Spanish," or a
modification could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as incorporated
in Collections; and,
d. to Distribute and Publicly Perform Adaptations.
e. For the avoidance of doubt:
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme cannot be waived, the Licensor
reserves the exclusive right to collect such royalties for any
exercise by You of the rights granted under this License;
ii. Waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme can be waived, the Licensor waives the
exclusive right to collect such royalties for any exercise by You
of the rights granted under this License; and,
iii. Voluntary License Schemes. The Licensor waives the right to
collect royalties, whether individually or, in the event that the
Licensor is a member of a collecting society that administers
voluntary licensing schemes, via that society, from any exercise
by You of the rights granted under this License.
The above rights may be exercised in all media and formats whether now
known or hereafter devised. The above rights include the right to make
such modifications as are technically necessary to exercise the rights in
other media and formats. Subject to Section 8(f), all rights not expressly
granted by Licensor are hereby reserved.
4. Restrictions. The license granted in Section 3 above is expressly made
subject to and limited by the following restrictions:
a. You may Distribute or Publicly Perform the Work only under the terms
of this License. You must include a copy of, or the Uniform Resource
Identifier (URI) for, this License with every copy of the Work You
Distribute or Publicly Perform. You may not offer or impose any terms
on the Work that restrict the terms of this License or the ability of
the recipient of the Work to exercise the rights granted to that
recipient under the terms of the License. You may not sublicense the
Work. You must keep intact all notices that refer to this License and
to the disclaimer of warranties with every copy of the Work You
Distribute or Publicly Perform. When You Distribute or Publicly
Perform the Work, You may not impose any effective technological
measures on the Work that restrict the ability of a recipient of the
Work from You to exercise the rights granted to that recipient under
the terms of the License. This Section 4(a) applies to the Work as
incorporated in a Collection, but this does not require the Collection
apart from the Work itself to be made subject to the terms of this
License. If You create a Collection, upon notice from any Licensor You
must, to the extent practicable, remove from the Collection any credit
as required by Section 4(b), as requested. If You create an
Adaptation, upon notice from any Licensor You must, to the extent
practicable, remove from the Adaptation any credit as required by
Section 4(b), as requested.
b. If You Distribute, or Publicly Perform the Work or any Adaptations or
Collections, You must, unless a request has been made pursuant to
Section 4(a), keep intact all copyright notices for the Work and
provide, reasonable to the medium or means You are utilizing: (i) the
name of the Original Author (or pseudonym, if applicable) if supplied,
and/or if the Original Author and/or Licensor designate another party
or parties (e.g., a sponsor institute, publishing entity, journal) for
attribution ("Attribution Parties") in Licensor's copyright notice,
terms of service or by other reasonable means, the name of such party
or parties; (ii) the title of the Work if supplied; (iii) to the
extent reasonably practicable, the URI, if any, that Licensor
specifies to be associated with the Work, unless such URI does not
refer to the copyright notice or licensing information for the Work;
and (iv) , consistent with Section 3(b), in the case of an Adaptation,
a credit identifying the use of the Work in the Adaptation (e.g.,
"French translation of the Work by Original Author," or "Screenplay
based on original Work by Original Author"). The credit required by
this Section 4 (b) may be implemented in any reasonable manner;
provided, however, that in the case of a Adaptation or Collection, at
a minimum such credit will appear, if a credit for all contributing
authors of the Adaptation or Collection appears, then as part of these
credits and in a manner at least as prominent as the credits for the
other contributing authors. For the avoidance of doubt, You may only
use the credit required by this Section for the purpose of attribution
in the manner set out above and, by exercising Your rights under this
License, You may not implicitly or explicitly assert or imply any
connection with, sponsorship or endorsement by the Original Author,
Licensor and/or Attribution Parties, as appropriate, of You or Your
use of the Work, without the separate, express prior written
permission of the Original Author, Licensor and/or Attribution
Parties.
c. Except as otherwise agreed in writing by the Licensor or as may be
otherwise permitted by applicable law, if You Reproduce, Distribute or
Publicly Perform the Work either by itself or as part of any
Adaptations or Collections, You must not distort, mutilate, modify or
take other derogatory action in relation to the Work which would be
prejudicial to the Original Author's honor or reputation. Licensor
agrees that in those jurisdictions (e.g. Japan), in which any exercise
of the right granted in Section 3(b) of this License (the right to
make Adaptations) would be deemed to be a distortion, mutilation,
modification or other derogatory action prejudicial to the Original
Author's honor and reputation, the Licensor will waive or not assert,
as appropriate, this Section, to the fullest extent permitted by the
applicable national law, to enable You to reasonably exercise Your
right under Section 3(b) of this License (right to make Adaptations)
but not otherwise.
5. Representations, Warranties and Disclaimer
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. Termination
a. This License and the rights granted hereunder will terminate
automatically upon any breach by You of the terms of this License.
Individuals or entities who have received Adaptations or Collections
from You under this License, however, will not have their licenses
terminated provided such individuals or entities remain in full
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
survive any termination of this License.
b. Subject to the above terms and conditions, the license granted here is
perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the
Work under different license terms or to stop distributing the Work at
any time; provided, however that any such election will not serve to
withdraw this License (or any other license that has been, or is
required to be, granted under the terms of this License), and this
License will continue in full force and effect unless terminated as
stated above.
8. Miscellaneous
a. Each time You Distribute or Publicly Perform the Work or a Collection,
the Licensor offers to the recipient a license to the Work on the same
terms and conditions as the license granted to You under this License.
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
offers to the recipient a license to the original Work on the same
terms and conditions as the license granted to You under this License.
c. If any provision of this License is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this License, and without further action
by the parties to this agreement, such provision shall be reformed to
the minimum extent necessary to make such provision valid and
enforceable.
d. No term or provision of this License shall be deemed waived and no
breach consented to unless such waiver or consent shall be in writing
and signed by the party to be charged with such waiver or consent.
e. This License constitutes the entire agreement between the parties with
respect to the Work licensed here. There are no understandings,
agreements or representations with respect to the Work not specified
here. Licensor shall not be bound by any additional provisions that
may appear in any communication from You. This License may not be
modified without the mutual written agreement of the Licensor and You.
f. The rights granted under, and the subject matter referenced, in this
License were drafted utilizing the terminology of the Berne Convention
for the Protection of Literary and Artistic Works (as amended on
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
and the Universal Copyright Convention (as revised on July 24, 1971).
These rights and subject matter take effect in the relevant
jurisdiction in which the License terms are sought to be enforced
according to the corresponding provisions of the implementation of
those treaty provisions in the applicable national law. If the
standard suite of rights granted under applicable copyright law
includes additional rights not granted under this License, such
additional rights are deemed to be included in the License; this
License is not intended to restrict the license of any rights under
applicable law.
Creative Commons Notice
Creative Commons is not a party to this License, and makes no warranty
whatsoever in connection with the Work. Creative Commons will not be
liable to You or any party on any legal theory for any damages
whatsoever, including without limitation any general, special,
incidental or consequential damages arising in connection to this
license. Notwithstanding the foregoing two (2) sentences, if Creative
Commons has expressly identified itself as the Licensor hereunder, it
shall have all rights and obligations of Licensor.
Except for the limited purpose of indicating to the public that the
Work is licensed under the CCPL, Creative Commons does not authorize
the use by either party of the trademark "Creative Commons" or any
related trademark or logo of Creative Commons without the prior
written consent of Creative Commons. Any permitted use will be in
compliance with Creative Commons' then-current trademark usage
guidelines, as may be published on its website or otherwise made
available upon request from time to time. For the avoidance of doubt,
this trademark restriction does not form part of this License.
Creative Commons may be contacted at https://creativecommons.org/.

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6562a3fa10b80b8d328951004258ab6d12a6a23c23143f46a86d2f48f55354d3
size 20555853

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e448f983049038bb5a611c4fb902d839296c22d3ef221b38e53a14b40ce187a7
size 21779681

639
OpenShadingLanguage.changes Normal file
View File

@ -0,0 +1,639 @@
-------------------------------------------------------------------
Mon Nov 18 15:40:40 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
- Allow newer LLVM. it is no longer restricted to < 15.9
New upper limit is 18.9.
- for llvm >= 16 it wants CXX standard 17
-------------------------------------------------------------------
Thu Nov 14 19:46:27 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
- Added fix-install-paths.patch:
implement suggestions from
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues/1771
- use ldconfig scriptlets macros
-------------------------------------------------------------------
Thu Nov 14 19:01:53 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
- update to 1.13.11.0:
- fix/batched: Assume BatchedRendererServices texture derivatives
are in st space. #1828 (by sfriedmapixar) (1.13.10.0)
- fix: Make backfacing shadeop indicate backfacing shader-global
is needed #1827 (by sfriedmapixar) (1.13.10.0)
- deps: Handle various OpenImageIO deprecations and changes in
the run-up to OIIO 3.0 #1834 #1806 #1838 #1842 #1850
(1.13.10.0)
- deps: Adjust to OIIO change to IC/TS API #1848 (1.13.10.0)
- deps: Llvm 18 compat issue - include libclangAPINotes #1812
(1.13.10.0)
- deps: Make finding bison work better on Apple Silicon Macs +
homebrew #1822 (1.13.10.0)
- ci: Mods to CI to deal with OIIO master raising dependency mins
#1833 (1.13.10.0)
- ci: Deal with CentOS 7 EOL and disappearance of yum mirrors
#1839 (1.13.10.0)
- ci: Fix GHA CI after they upgraded nodejs #1837 (1.13.10.0)
- admin: Change release notice icon to use the icon vs the normal
logo so it shows up better #1777 (by John Mertic) (1.13.10.0)
- changes from 1.13.10.0
- testrender: Implement new Oren-Nayar model from OpenPBR #1817
(by Christopher Kulla)
- docs: Fix outdated or wrong repo URLs #1811
- changes from 1.13.9.0
- deps: Support for LLVM-18 #1773 (by مهدي شينون (Mehdi Chinoune)
#1803 (by Larry Gritz)
- fix: Make isconnected() work with downstream renderer
"connections." #1782 (by sfriedmapixar)
- cleanup: Change OSL_CONSTEXPR14 to constexpr #1805
- internals build: Fix ifdef typo #1804
- build: Propagate cpp version #1797
- build: Print commit hash of locally built dependencies #1798
- ci: Lock down to OIIO 2.5 for icc tests #1799
- ci: Suppress leak sanitizer warnings about internals of
robin_hash #1807
- docs: More detail about supported platforms in INSTALL.md #1796
- changes from 1.13.8.0
- fix(batched): Codegen bug for compref with varying index for
batched shading #1776 (by Alex Wells)
- fix: Calculatenormal needs fliphandedness #1783 (by
sfriedmapixar)
- fix: Print closure missing error message at compile time
instead of run time. #1781 (by sfriedmapixar)
- int: Change long-deprecated OIIO macro to new one #1788
- ci: Fix broken Macos-13 CI #1780
- changes from 1.13.7.0
- fix: Mute partio error prints #1774 (by olegul)
- ci: Test with Mac ARM runner #1770
- docs: Fix links to RTD docs from github landing page #1768
- admin: Switch release announcement workflow to jmertic's
awesome action #1766
- changes from 1.13.6.1
- New minimum dependencies and compatibility changes:
- For GPU/OptiX mode, OptiX 6.0 support has been removed. For
GPU rendering with OptiX, a minimum of OptiX 7.0 is required,
and the Cuda minimum has been raised to 9.0 #1737
- The minimum version OpenImageIO has been raised from 2.2 to
2.4. #1591 #1722
- The minimum CMake dependency has been raised from 3.12 to
3.15 #1724 (1.13.5.0)
- The minimum Imath/OpenEXR has been raised from 2.3 to 2.4.
(Note: OSL 1.13 is probably the last major release family
that will support Imath/OpenEXR 2.x.)
- OSL Language and oslc compiler:
- There have been no substantive changes to the OSL language in
this release.
- ⛰️ API changes, new options, new ShadingSystem features (for
renderer writers):
- A new shadingStateUniform pointer field was added to
ShaderGlobals for planned future expansion and improved GPU
support. #1585 (1.13.1.0)
- Adding relaxed type-equivalency to ReParameter() #1639 (by
cmstein) (1.13.2.1)
- Expose llvm groupdata size as a shadergroup attribute #1642
(by Chris Hellmuth) (1.13.4.0)
- RendererServices API for letting get_texture_handle consider
colorspace #1641 (1.13.4.0)
- Make "compile_report" attribute an int instead of just 0/1.
Passing 1 makes a brief report, values >1 are more verbose.
(Zero still prints no report.) #1654 (1.13.4.0)
- Switch lockgeom to interpolated and interactive. The
lockgeom=0 was confusing. Now we use interpolated=1 to mean
"don't optimize it away because it might be interpolated
across the geometry and thus won't have the same value at all
points being shaded," and the subtly different interactive=1
to mean "don't optimize it away because although it will
always take on the same value at all points at the same time,
the user might want to interactively adjust the value and we
don't want to have to recompile the shader group if that
happens." #1662 (1.13.4.0)
- Add type information for needed attributes. #1650 (by Curtis
Black) (1.13.4.0)
- Add API for building attribute getter free functions. #1704
(by Curtis Black) (1.13.5.0)
- Rs fmt specification - Journaling Algorithm for error,
warning, fprintf #1702 (by Steena Monteiro) #1711 #1715
(1.13.5.0)
- 🚀 SIMD batched shading mode
- Fix some array overruns (asymptomatic, but still potentially
buggy) in common_ancestor_between. #1577 (1.13.0.2)
- Fix issue with closure keyword parameters. #1620
(1.13.2.0/1.12.8.0)
- Fix crash when adding a default initialized closure. #1624
(1.13.2.0/1.12.8.0)
- Fix support for closures with array types. #1630
(1.13.2.0/1.12.8.0)
- Fix bug with masked wide llvm_gen_closure() #1637 (by
danieldresser-ie) (1.13.2.1)
- Fix Force LLVM Boolean #1717 (by Alex Wells)
- Batched pointcloud if "index" is not passed #1753 (by Alex
Wells)
- 🚀 OptiX GPU rendering
- OptiX 6.0 support has been removed. For GPU rendering with
OptiX, a minimum of OptiX 7.0 is required.
- Big overhaul/simplification of how strings are represented on
the GPU: the extra level of indirection to global variables
is removed, and strings are simply represented in ordinary
variables as the hash of their characters. #1531 (1.13.0.0)
#1553 (1.13.0.1)
- Better PTX cache hit rate by eliminating several sources of
not being strictly deterministic in the PTX text we were
generating. #1566 #1570 (1.13.0.1)
- Fix PTX symbol visibility issues. #1609 (1.13.2.0)
- Hide more code that is only used for OptiX mode, when OptiX
is disabled. #1608 (1.13.2.0)
- Remove dependency on OptiX SDK for building core OSL with
OptiX support. You can now build OSL with OptiX support
enabled even if you don't have the OptiX SDK headers present
at build time. But you will still need them to build your
OptiX-based application that uses OSL for GPU rendering.
#1627 (1.13.2.0/1.12.8.0)
- GPU/OptiX support of ReParameter #1686 (1.13.4.0)
- Fix userdata derivatives for interpolated params on GPU #1685
(by Pascal Lecocq) (1.13.4.0)
- Enable userdata derivatives for interpolated params on GPU
#1657 (by Chris Hellmuth) (1.13.4.0)
- Move qualifying GroupData params onto stack for higher
performance. #1710 (by Chris Hellmuth) (1.13.5.0)
- Handle mixed string casting that plagues optix codegen #1718
(1.13.5.0)
- Add missing members to ShaderGlobals in rend_lib.h #1721 (by
Tim Grant) (1.13.5.0)
- OptiX direct callable API that owns groupdata buffer #1683
(by Chris Hellmuth) (1.13.5.0)
- OptiX PTX pipeline overhaul #1680 (by Tim Grant) (1.13.5.0)
- Perf: Don't insert redundant run layer calls inside a basic
block #1665 #1669 #1672 (by Chris Hellmuth) (1.13.4.0)
- Fix NVPTX TargetMachine leak, etc. #1763 (by Tim Grant)
- 🐛/🔧 Internals: fixes, improvements, and developer concerns
- Fix memory leak in oslc ASTvariable_declaration. #1576
(1.13.0.2)
- Fix memory leaks in LPE code in error conditions. #1593 #1594
(1.13.0.3)
- Fix mismatched strides when calling OCIO for transformc with
derivs #1646 (1.13.4.0)
- Set up ray types for testrender #1648 (1.13.4.0)
- Fix userdata binding corner case #1673 (by Alejandro Conty)
(1.13.4.0)
- Fix constant float values being converted to ints #1674 (by
Declan Russell) (1.13.4.0)
- Don't try to ReParameter symbols not in the group #1693 (by
Alejandro Conty) (1.13.5.0)
- Have ReParameter only copy data when it changes #1698
(1.13.5.0)
- Avoid deprecated OSLQuery ctr in test example #1699
(1.13.5.0)
- Zero derivs for interactive params when needed #1700 (by
Alejandro Conty) (1.13.5.0)
- oslc bug fix: shader params whose default values involve
"init ops" could be incorrectly initialized if their values
came from instance parameters set to zero. #1578 (1.13.0.2)
- oslc: Add missing fmod() variants #1643 (1.13.4.0)
- Simple constant folding of binary expressions now happen on
the oslc side #1653 (1.13.4.0)
- platform.h:
- New OSL_ALLOCA macro to allocate on the stack. #1589
(1.13.0.3)
- Define OSL::bitcast utility. #1610 (1.13.2.0)
- Make sure that std::hash is defined for ustring and
ustringhash. #1599 (1.13.1.1)
- Deprecate LLVMUtil::internalize_module_functions. #1606
(1.13.1.0)
- Work toward always representing strings in shaders as
ustringhash rather than ustring: phase 1 #1603 phase2 #1612
(1.13.2.0) #1726 (1.13.5.0)
- Remove unnecessary setting of locale::global #1636 (by
danieldresser-ie) (1.13.2.1)
- Fully define bitcast template #1635 (1.13.2.1)
- Fix for ReParameter corner case #1670 (by cmstein) (1.13.4.0)
- Switch deprecated oiio simd names to modern #1679 (1.13.4.0)
- Give ShadingSystemImpl a handy use_optix() method #1682
(1.13.4.0)
- Fix default fmt logic changing in latest openimageio release
#1725 (1.13.5.0)
- The recently added SS::find_symloc can have const args #1723
(1.13.5.0)
- SymOverrideInfo bitfields should be the same type #1745
- Fix wrong offset of MxSheen param #1751 (by Rasmus Bonnedal)
- Make get_texture_info robust to empty shaderglobals param
#1731
- Documentation
- First stab at ReadTheDocs -- new Experimental OSL
Documentation on ReadTheDocs is still a little rough, but
eventually will be our primary documentation. #1736
- doc/RELEASING.md documents our release process and versioning
policies. #1572 (1.13.0.2)
- Improve documentation of trace function #1671 (by AidanWelch)
(1.13.4.0)
- Update CONTRIBUTING #1689 (1.13.5.0)
- Update logos #1705, Move logos and add an icon-only logo
#1707 (1.13.5.0)
-------------------------------------------------------------------
Tue Jan 16 19:38:15 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
- Add missing Qt6 BuildRequires to enable osltoy
-------------------------------------------------------------------
Tue Jan 16 11:01:20 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
- update to 1.12.14.0:
- Correctly document that our Cuda minimum is 9.0. #1737
- Fixes to build and test against OpenImageIO 2.5 #1742
- Fix default fmt logic changing in latest openimageio release
#1725
-------------------------------------------------------------------
Mon Sep 4 08:11:55 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 1.12.13.0:
* Fix constant float values being converted to ints
* Changes to support fmt 10.0
* Switch deprecated oiio simd names to modern
* Improve documentation of `trace` function
* README.md: added filmography and Siggraph OSL course
info.
* *docs* Amend the filmography
* *docs* Fix incorrect links in CONTRIBUTING
- update to 1.12.12.0:
* New ShadingSystem getattribute query for shader groups:
"attribute_types" retrieves a pointer to the array of
TypeDesc values describing the * attributes retrieved by
existing "attributes_needed" and
"attribute_scopes".
* Fix a bug with binding userdata when it's used by more than
one shader within the group and they disagree about whether
derivatives are needed when retrieving the attribute.
-------------------------------------------------------------------
Wed May 31 08:33:44 UTC 2023 - Hans-Peter Jansen <hpj@urpla.net>
- plugin-osl search path is in %{_libdir} now
-------------------------------------------------------------------
Sat Apr 1 09:50:52 UTC 2023 - Hans-Peter Jansen <hpj@urpla.net>
- update to 1.12.10.0:
+ feat(testrender): Modify testrender so that it correctly sets
raytype to "camera" for camera rays, "shadow" for shadow rays,
and "diffuse" for all secondary rays. Also rerun the shades for
background shader group on the camera rays rather than use the
cached map. This helps the MaterialX project use testrender for
certain unit tests and verification. #1648 #1649
+ feat: Expose llvm groupdata size as a shadergroup attribute
"llvm_groupdata_size". #1642
+ fix: Crash could result from uncaught exception in OpenColorIO
when calling transformc with derivatives for color spaces that
require OCIO. #1646
+ fix: certain uses of fmod() in shaders could fail to generate
LLVM code correctly, due to a missing implementation for the
fmod(triple,float) varieties. #1643
+ build: Change snprintf formatting to satisfy some compilers.
#1640
+ CI: Fix broken Mac ci. #1647
- Force build with LLVM 15 on TW
- Add a BuildIgnore for clang-tools, that would render the llvm15
containment ineffective otherwise (by depending on clang16).
-------------------------------------------------------------------
Wed Feb 15 12:58:36 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 1.12.9.0:
* Remove unnecessary setting of locale::global. #1630
* Batch shading: Fix bug with masked wide glosure generation.
* Make sure ReParameter() has the same relaxed type checking
rules as Parameter(). Before, it was stricter about type
conversion.
-------------------------------------------------------------------
Mon Jan 16 07:05:07 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 1.12.8.0:
* Remove dependency on OptiX SDK for building core OSL with OptiX support.
You can now build OSL with OptiX support enabled even if you don't have the
OptiX SDK headers present at build time. But you will still need them to
build your OptiX-based application that uses OSL for GPU rendering.
* Batch mode: fix issue with closure keyword parameters.
* Batch mode: fix crash when adding a default initialized closure.
* Batch mode: Fix support for closures with array types.
* testshade: better testing of all closure parameter types.
* Fix various CI breaks as dependencies shifted.
-------------------------------------------------------------------
Sat Dec 10 21:04:49 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 1.12.7.1:
* Add clangSupport library as dependency to fix linker error on some
platforms. #1613
* Test against OpenColorIO 2.2. #1616
* Build: Fix how version overrides work to reduce the chance of user
mistakes.
-------------------------------------------------------------------
Sat Dec 3 11:21:09 UTC 2022 - Hans-Peter Jansen <hpj@urpla.net>
- Add 4G memory _constraints
-------------------------------------------------------------------
Fri Nov 4 16:54:56 UTC 2022 - Hans-Peter Jansen <hpj@urpla.net>
- update to 1.12.7.0 -- 1 Nov 2022:
* Optix: Change naming of certain compiler-generated constants in
a way that improves use of the PTX cache. #1570
* Batch: Fix uninitialized members in ReadEvent internals. #1575
* testshade --help now prints TextureSystem options and hardware
info. #1584
* oslc: Fix memory leak in ASTvariable_declaration. #1576
* Fix memory leaks in light path expression code. #1593 #1594
* Include the immintrin.h header only when needed. #1605
* icx: Improvements to fix problems exposed by new icx 2022.2
compiler. #1601
* Testing: CMake cache variables to control the testing timeout
length. #1571
* CI: Add a dynamic analysis test using address and leak
sanitizers. #1581
* CI: Now using SonarCloud static analysis. #1551
* CI: Many improvements in testing code coverage #1607
* CI: Make sure to run pointcloud tests when partio is found.
#1611
* Developers: platform.h now defines OSL_ALLOCA macro. #1589
* Developers: platform.h now defines OSL::bitcast utility. #1610
- Remove 1605.patch: included in release
-------------------------------------------------------------------
Mon Oct 24 11:31:08 UTC 2022 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Add upstream patch to fix build on Arm:
* 1605.patch
-------------------------------------------------------------------
Wed Oct 19 15:16:37 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- update to 1.12.6.2:
For details see
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/releases/tag/v1.12.6.2
* Batch shading: A fully operational "batch shading" support when
using CPUs supporting the Intel AVX2 or AVX512 instruction set
architectures, allows shading 8 or 16 points at a time,
accelerated by using SIMD instructions. (Changes contributed
by Intel.)
* OptiX: A reasonable subset of the OSL language can run on
NVIDIA GPUs for Cuda or OptiX-based renderers.
* Standardized material closures: Synchronize with MaterialX on
a minimum standard set of material closures. This is reflected
in both the OSL spec as well as reference implementations of
those closures in testrender.
- Remove subpackage with MaterialX shaders. These were already
deprecated for some time, instead ones from upstream
MaterialX project should be used.
- Drop upstream 0001-Fix-compatibility-with-LLVM-14.patch
-------------------------------------------------------------------
Tue Apr 26 01:04:09 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Fix compatibility with LLVM >= 14.0, add
0001-Fix-compatibility-with-LLVM-14.patch
-------------------------------------------------------------------
Sun Apr 24 17:13:32 UTC 2022 - Hans-Peter Jansen <hpj@urpla.net>
- Fix build by requiring llvm and clang 12 versions
-------------------------------------------------------------------
Sun Apr 10 10:06:53 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 1.11.17.0:
* Fix in runtime optimizer where tracking of messages and unknown messages
relied on uninitialized variables.
* Minor changes related to OpenColorIO changing their master branch name to
"main". #1431
* Testing: Get texture3d tests operational again. #1437
* Docs: Fix missing "errormessage" explanation for environment() and
texture3d().
* Build/cmake fixes: Make PROJECT_VERSION_RELEASE_TYPE and
OSL_SUPPORTED_RELEASE be cache strings, so they can be overridden; change
OSL_IS_SUBPROJECT to PROJECT_IS_TOP_LEVEL (and change its sense) to match
CMake 21+ behavior; add a TIME_COMMANDS option to help debug performance of
the build. #1443
- drop 8682211d0bfe5c4be63a4a003d06037ff9721e66.diff, 1420.diff (upstream)
-------------------------------------------------------------------
Fri Apr 8 07:42:38 UTC 2022 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Disable partio on armv6/armv7 since it fails to build
-------------------------------------------------------------------
Wed Dec 22 09:32:50 UTC 2021 - Hans-Peter Jansen <hpj@urpla.net>
- Disable %ix86 because of build failures
-------------------------------------------------------------------
Sun Oct 17 15:57:25 UTC 2021 - Hans-Peter Jansen <hpj@urpla.net>
- Update to version 1.11.15.0
+ Changes for compatibility with OpenImageIO 2.3. #1393 #1388
+ Fix potential crashes (or at least undefined behavior) due to
missing
+ virtual destructor of internal Symbol type. #1397
- Apply 8682211d0bfe5c4be63a4a003d06037ff9721e66.diff and 1420.diff
in order to build with LLVM 13.
- Add partio library dependency
-------------------------------------------------------------------
Tue Aug 31 14:36:55 UTC 2021 - Hans-Peter Jansen <hpj@urpla.net>
- Fix source URL
-------------------------------------------------------------------
Mon Aug 30 15:24:21 UTC 2021 - Hans-Peter Jansen <hpj@urpla.net>
- Update to version 1.11.14.2
+ Fix warnings that occur when compiling with clang and C++17 mode. #1379
+ CI/testing: Additional CI tests for clang+c++17 (#1379), gcc11 (#1381),
llvm 12 (#1381), speed up CI builds by not building the testing components
of OIIO (#1380).
- Update to version 1.11.14.1
+ Fix library setup for LLVM installations consisting of static libraries.
This fixes a build problem that can crop up on MacOS using
Homebrew-installed LLVM 12. #1375
- Update to version 1.11.14.0
+ oslc/OSLCompiler: Check for errors when when writing oso (for example,
disk volume full). #1360
+ Fix crash generating closure function calls with LLVM 11. #1361
+ Build: LLVM 12 compatibility. #1351
+ Build: Support for CMake 3.20 #1354
+ Build: Be robust to certain OpenEXR 2.x config fies. #1356
+ Build: Fixes to deal with newer OIIO builds that are C++14.
- Remove 0001-LLVM-12-compatibility-fixes.patch
fixed upstream
- Add build dependency on OpenImageIO (executables)
-------------------------------------------------------------------
Sun May 2 05:54:38 UTC 2021 - munix9@googlemail.com
- Update to version 1.11.13
+ Updated vector2.h with a mod(vector2,vector2) function. #1312
+ Fix unnecesary error messages to stderr when encountering
broken point clouds. #1333
- Add 0001-LLVM-12-compatibility-fixes.patch
-------------------------------------------------------------------
Wed Apr 7 22:16:17 UTC 2021 - Dirk Müller <dmueller@suse.com>
- do not list pkgconfig directory - provided by filesystem package
-------------------------------------------------------------------
Sun Mar 21 15:50:36 UTC 2021 - Hans-Peter Jansen <hpj@urpla.net>
- Update to version 1.11.12
+ Build: Changes for smooth compile against upcoming Imath 3.0.
#1332 #1341
+ Build: We weren't properly hiding non-public symbols. #1337
+ CI: Cleanup and get rid of the last Travis vestiges. #1334
+ CI: Speed up CI runs by using GHA cache + ccache. #1335
+ CI: Separate CI process into several individual "steps." #1338
- Update to version 1.11.11
+ Build: Make the CMake build system more friendly to being a
subproject.
+ #1304
+ Build: Improve dependency on Imath/OpenEXR include files.
+ CI: Fixes to Mac CI. #1315
+ Docs: Update CLAs, Charter, GOVERNANCE, particularly after
acceptance of
+ new CLAs and moving the repo to the ASWF GitHub account. #1308
#1240 #1314
+ Internals: Switch from deprecated call to OIIO::parallel_image
to the new
+ version. #1317
- Update to version 1.11.10
+ Bug fix: optimizer interaction with output param that also is
userdata.
+ #1295
+ Ensure that LoadMemoryCompiledShader returns false upon parse
failure.
+ #1302
+ Work to ensure that OIIO will build correctly against the
upcoming
+ Imath 3.0 and OpenEXR 3.0. #1299
- Disable lto
-------------------------------------------------------------------
Sat Nov 7 11:35:53 UTC 2020 - Hans-Peter Jansen <hpj@urpla.net>
- Update to v1.11.9.0, see included CHANGES.md or
https://github.com/imageworks/OpenShadingLanguage/blob/Release-1.11.9.0/CHANGES.md
- Add new build dependency python3-pybind11
- Remove stray python3 oslquery module
- Add loplevel markdown documents to doc package
-------------------------------------------------------------------
Tue Jul 28 20:19:30 UTC 2020 - Hans-Peter Jansen <hpj@urpla.net>
- disable RPATH handling - fixes 15.1 build
-------------------------------------------------------------------
Sun Jul 5 17:41:36 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to v1.11.6.0, see included CHANGES.md or
https://github.com/imageworks/OpenShadingLanguage/blob/Release-1.11.6.0-dev/CHANGES.md
- Drop obsolete patches:
+ 0001-Fix-typo-in-the-.pc.in-files-that-botched-the-versio.patch
+ 0001-LLVM-10-odds-and-ends-1135.patch
+ 0001-Some-SPI-build-fixes-for-finding-the-right-llvm.patch
+ 0001-Use-single-shared-clang-cpp-library-starting-with-LL.patch
- Renamed legalcode.txt to CC-BY-3.0.txt
-------------------------------------------------------------------
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>
- Update to v1.11.4.1 to fix build with LLVM10.
- Remove incorporated patch:
0001-Generalize-lookup-of-stdosl.h-in-install-directory-a.patch
- Added patches from git:
0001-Some-SPI-build-fixes-for-finding-the-right-llvm.patch and
0001-LLVM-10-odds-and-ends-1135.patch.
- Created osl-pkgconfig-versions.patch to fix pc file's version
fields. Upstreamed along with workaround for new libclang-cpp in
issue #1155
- Created osl-oslimageio-soname.patch to keep the library build in
line with v1.x.
- For many upstream changes since v1.10.7 see:
/usr/share/doc/packages/OpenShadingLanguage/CHANGES.md
-------------------------------------------------------------------
Wed Nov 6 15:45:59 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Properly rebase 0001-Generalize-lookup-of-stdosl.h-in-install-directory-a.patch
avoid workarounds in the spec file.
- Remove conditional code for Leap 42.x
- Reflect required versions of OpenIIO and Clang in the spec file.
-------------------------------------------------------------------
Wed Nov 6 11:38:51 UTC 2019 - Dave Plater <davejplater@gmail.com>
- Update to release 1.10.7 which fixes build with new llvm.
- Rebased:
0001-Generalize-lookup-of-stdosl.h-in-install-directory-a.patch
- Recent upstream changes:
*Adjust for deprecated material in more recent Qt releases. #1043
*Fixes for MinGW compiler. #1047
*Texture "missingalpha" optional parameter generated incorrect
code and crashed. #1044
*Fix incorrect optimizations surrounding 'exit()' calls in the
middle of certain shader code blocks. #1051
*LLVM 9 / clang 9 compatibility. #1058
*Fixes to Travis CI system to keep up with OIIO master recently
upgrading its minimum required CMake. #1065
-------------------------------------------------------------------
Sun Jan 13 02:21:24 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Fix lookup of stdosl.h from oslc (bnc#1123254):
Dropped OpenShadingLanguage-shaderinstalldir.patch
Added 0001-Generalize-lookup-of-stdosl.h-in-install-directory-a.patch
- Cleaned up spec file (defattr)
- Correct LLVM_MCJIT_LIBRARY value, add comment
- Use current LLVM for building (bnc#1123252)
- Split shaders in common-headers, MaterialX-shaders and example-shaders
subpackages. stdosl.h in common-headers is required by oslc in
the main package (bnc#1123254).
- Correct clang-devel package name for Leap 42.3
-------------------------------------------------------------------
Tue Jan 8 16:39:15 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Spruce up descriptions a bit.
-------------------------------------------------------------------
Mon Dec 31 11:35:09 UTC 2018 - davejplater@gmail.com
- Initial version 1.9.13 created for blender see boo#1120406
- Blender fails to build with 1.10.x versions
- Added OpenShadingLanguage-shaderinstalldir.patch shaders are
installed directly under /usr see:
https://github.com/imageworks/OpenShadingLanguage/issues/955

274
OpenShadingLanguage.spec Normal file
View File

@ -0,0 +1,274 @@
#
# spec file for package OpenShadingLanguage
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# The library soname versions follow the package version major and minor numbers.
%define sover %(echo %{version} | cut -d . -f 1,2)
%define sufx %(echo %{sover}|tr . _)
# Required for the plugin directory name, see https://github.com/OpenImageIO/oiio/issues/2583
%define oiio_major_minor_ver %(rpm -q --queryformat='%%{version}' OpenImageIO-devel | cut -d . -f 1-2)
# we could have a minimum of 9 here. but to more easily switch to C++17 we set the minium to 16
%global min_llvm_version 16
%global max_llvm_version 18.9
Name: OpenShadingLanguage
Version: 1.13.11.0
Release: 0
Summary: A language for programmable shading
License: BSD-3-Clause
Group: Productivity/Graphics/Other
URL: https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
Source0: https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: https://creativecommons.org/licenses/by/3.0/legalcode.txt#/CC-BY-3.0.txt
Patch0: fix-install-paths.patch
BuildRequires: OpenEXR-devel >= 2.4
BuildRequires: bison
BuildRequires: cmake >= 3.15
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_system-devel
BuildRequires: libboost_thread-devel
BuildRequires: (OpenImageIO >= 2.4 with OpenImageIO < 3)
BuildRequires: (cmake(Clang) >= %{min_llvm_version} with cmake(Clang) =< %{max_llvm_version})
BuildRequires: (cmake(LLVM) >= %{min_llvm_version} with cmake(LLVM) =< %{max_llvm_version})
BuildRequires: cmake(Qt6)
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(Qt6Gui)
BuildRequires: cmake(Qt6OpenGLWidgets)
BuildRequires: cmake(Qt6Widgets)
%ifnarch %{arm}
# Build fails with partio on armv7/armv6
BuildRequires: partio-devel
%endif
BuildRequires: pkg-config
BuildRequires: python3-devel
BuildRequires: python3-pybind11-devel
BuildRequires: cmake(OpenImageIO) >= 2.0
BuildRequires: cmake(pugixml)
Requires: %{name}-common-headers = %{version}
Recommends: %{name}-doc = %{version}
ExcludeArch: %{ix86}
%description
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
This package contains the standalone oslc compiler and some
utilities.
%package doc
Summary: Documentation for OpenShadingLanguage
License: CC-BY-3.0
Group: Documentation/Other
Requires: %{name} = %{version}
%description doc
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
This package contains documentation.
%package example-shaders-source
Summary: OSL shader examples
License: BSD-3-Clause
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: %{name}-common-headers
%description example-shaders-source
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
This package contains some OSL example shaders.
%package common-headers
Summary: OSL standard library and auxiliary headers
License: BSD-3-Clause
Group: Development/Languages/Other
Requires: %{name} = %{version}
%description common-headers
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
This package contains the OSL standard library headers, as well
as some additional headers useful for writing shaders.
%package -n liboslcomp%{sufx}
Summary: OpenShadingLanguage's compiler component library
License: BSD-3-Clause
Group: System/Libraries
%description -n liboslcomp%{sufx}
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
%package -n liboslexec%{sufx}
Summary: OpenShadingLanguage's execution component library
License: BSD-3-Clause
Group: System/Libraries
%description -n liboslexec%{sufx}
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
%package -n liboslnoise%{sufx}
Summary: OpenShadingLanguage's image noise generation library
License: BSD-3-Clause
Group: System/Libraries
%description -n liboslnoise%{sufx}
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
%package -n liboslquery%{sufx}
Summary: Osl library
License: BSD-3-Clause
Group: System/Libraries
%description -n liboslquery%{sufx}
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
%package -n libtestshade%{sufx}
Summary: Osl library
License: BSD-3-Clause
Group: System/Libraries
%description -n libtestshade%{sufx}
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
%package -n OpenImageIO-plugin-osl
Summary: OpenImageIO input plugin
License: BSD-3-Clause
Group: System/Libraries
Obsoletes: osl.imageio < 1.11.4.1
Provides: osl.imageio = %{version}
%description -n OpenImageIO-plugin-osl
Open Shading Language (OSL) is a language for programmable shading
in advanced renderers and other applications, ideal for describing
materials, lights, displacement, and pattern generation.
This is a plugin to access OSL from OpenImageIO.
%package devel
Summary: Development files for %{name}
License: BSD-3-Clause
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: liboslcomp%{sufx} = %{version}
Requires: liboslexec%{sufx} = %{version}
Requires: liboslnoise%{sufx} = %{version}
Requires: liboslquery%{sufx} = %{version}
Requires: libtestshade%{sufx} = %{version}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%autosetup -p1
find . -iname CMakeLists.txt -exec sed "-i" "-e s/COMMAND python/COMMAND python3/" "{}" \;
%build
%define _lto_cflags %{nil}
%cmake \
-DCMAKE_SKIP_RPATH:BOOL=TRUE \
-DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name} \
-DOSL_SHADER_INSTALL_DIR:PATH=%{_datadir}/%{name}/shaders/ \
-DCMAKE_CXX_STANDARD:STRING=17
%cmake_build
%install
%cmake_install
# Add Creative Commons license for documentation
cp -v %{SOURCE1} .
find %{buildroot} -name LICENSE.md -print -delete
# add top level markdowns to the doc package
cp -p *.md %{buildroot}%{_docdir}/%{name}/
# TODO: package python module
find %{buildroot}%{python3_sitearch} -name oslquery.so -print -delete
rm %{buildroot}%{_datadir}/build-scripts/serialize-bc.py
%ldconfig_scriptlets -n liboslcomp%{sufx}
%ldconfig_scriptlets -n liboslexec%{sufx}
%ldconfig_scriptlets -n liboslnoise%{sufx}
%ldconfig_scriptlets -n liboslquery%{sufx}
%ldconfig_scriptlets -n libtestshade%{sufx}
%files
%license LICENSE.md
%{_bindir}/*
%files doc
%license CC-BY-3.0.txt
%doc %{_docdir}/%{name}/
%files example-shaders-source
%{_datadir}/%{name}/shaders/*.osl
%{_datadir}/%{name}/shaders/*.oso
%files common-headers
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/shaders
%{_datadir}/%{name}/shaders/*.h
%files -n liboslcomp%{sufx}
%license LICENSE.md
%{_libdir}/liboslcomp.so.%{sover}*
%files -n liboslexec%{sufx}
%license LICENSE.md
%{_libdir}/liboslexec.so.%{sover}*
%files -n liboslnoise%{sufx}
%license LICENSE.md
%{_libdir}/liboslnoise.so.%{sover}*
%files -n liboslquery%{sufx}
%license LICENSE.md
%{_libdir}/liboslquery.so.%{sover}*
%files -n libtestshade%{sufx}
%license LICENSE.md
%{_libdir}/libtestshade.so.%{sover}*
%files -n OpenImageIO-plugin-osl
%license LICENSE.md
%{_libdir}/osl.imageio.so
%files devel
%license LICENSE.md
%{_includedir}/*
%{_libdir}/lib*.so
%{_libdir}/cmake/OSL
%{_libdir}/pkgconfig/osl*.pc
%changelog

8
_constraints Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<constraints>
<hardware>
<memory>
<size unit="G">4</size>
</memory>
</hardware>
</constraints>

20
fix-install-paths.patch Normal file
View File

@ -0,0 +1,20 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3cc83ff2..04342b26 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -313,13 +313,13 @@ configure_package_config_file ("${PROJECT_SOURCE_DIR}/src/cmake/Config.cmake.in"
install (FILES "${OSL_PROJECT_CONFIG}" "${OSL_VERSION_CONFIG}"
DESTINATION "${OSL_CONFIG_INSTALL_DIR}")
-install (FILES src/cmake/llvm_macros.cmake DESTINATION cmake)
+install (FILES src/cmake/llvm_macros.cmake DESTINATION ${OSL_CONFIG_INSTALL_DIR})
set (PERMISSION_FLAGS OWNER_EXECUTE OWNER_READ OWNER_WRITE
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ)
install (FILES src/build-scripts/serialize-bc.py
- DESTINATION build-scripts
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/build-scripts
PERMISSIONS ${PERMISSION_FLAGS})
# install targets files