Yeah, agreed. I'm not exactly sure why Foundry took this step in seemingly
the wrong direction.

On Wed, Jul 1, 2020, 18:47 Larry Gritz <l...@larrygritz.com> wrote:

> Aha, outstanding!
>
> Glad that's all it took.
>
> Aside: Now that everybody's on C++11 or later, it's best to use
> std::shared_ptr, not boost nor tr1.
>
> -- lg
>
>
> On Jul 1, 2020, at 5:33 PM, Zac Coster <zac.cos...@rsp.com.au> wrote:
>
> You Geniuses!
>
> I rebuilt ocio/1.1.1 with  the -DOCIO_USE_BOOST_PTR=ON  and now everything
> is working fine in Nuke12.1
>
> Thank you so much for the help!!!
>
>
> ------------------------------
> *From: *"Zac Coster" <zac.cos...@rsp.com.au>
> *To: *"oiio-dev" <oiio-dev@lists.openimageio.org>
> *Sent: *Thursday, 2 July, 2020 9:12:05 AM
> *Subject: *Re: [Oiio-dev] Do the tx plugins support Nuke12+?
>
> Many Thanks Nathan & Larry,
>
> Apologies for the late reply, i was not at work. I'll take a look at
> fixing this up now.
>
> Appreciate your help!
>
>
> ------------------------------
> *From: *"Larry Gritz" <l...@larrygritz.com>
> *To: *"oiio-dev" <oiio-dev@lists.openimageio.org>
> *Sent: *Wednesday, 1 July, 2020 3:27:49 PM
> *Subject: *Re: [Oiio-dev] Do the tx plugins support Nuke12+?
>
> Pro tip for apps out there:
>
> If you are embedding or shipping your own build of a commonly-used library
> and use a custom namespace (yes, please do!) you should either link
> statically, or ALSO make sure the shared library itself also has a custom
> name.
>
> Pro tip for library authors:
>
> Your build system should allow customizing of both the namespace and the
> library name. (For OIIO, those build options are controlled by
> -DOIIO_NAMESPACE=... and -DOIIO_LIBNAME_SUFFIX=...)
>
>
> On Jun 30, 2020, at 10:31 PM, Nathan Rusch <nathanru...@gmail.com> wrote:
>
> OK, I think the OpenColorIO symbol lookup error was the missing link here
> (pun very much intended). I should mention that we don’t currently build
> OIIO against OCIO because static linkage won’t work without backporting
> some OCIO build changes from the 2.x development branch, so that would
> explain why I don’t encounter anything like this issue.
>
> Nuke ships with its own OCIO library that uses a custom outer symbol
> namespace of FnOpenColorIO (which is what you’re seeing in your loader
> error), but the library name is not customized (it’s just
> libOpenColorIO.so). Because of this, the runtime OCIO requirement for
> your compiled libOpenImageIO.so is going to resolve to the
> libOpenColorIO.so that ships with Nuke.
>
> The smoking gun is that the OCIO library they ship in 12.x uses
> boost::shared_ptr, while Nuke 11.3 and prior used std::tr1::shared_ptr
> (and I’m guessing the OCIO build you’re using for OIIO does as well). This
> would explain where the symbol mismatch is coming from, and why the plugins
> work in 11.3. Thus, you’ll likely need to produce an alternate OCIO build
> (or at least configure and install a new set of headers and find a way to
> link against the libOpenColorIO.so that ships with Nuke) in order to
> build against 12.x.
>
> Hope this helps.
>
> -Nathan
>
> On Tue, Jun 30, 2020 at 8:04 PM Zac Coster <zac.cos...@rsp.com.au> wrote:
>
>
> Hi Larry,
>>
>> Many Thanks for taking a look!
>>
>> When i drop a Read Node down in Nuke. I get a red banner appear with the
>> below error after i try to read a .tx file
>>
>> Read1: ${tx_file_name}.tx: Read error:
>> /home/zacc/dev/junk/build_test/oiio/oiio-rb-2.2.3/oiio-RB-2.2.3/install/lib64/txReader.so:plugin
>> did not define txReader
>>
>> (*Not sure if this part is relevant)
>> If i then try to import txReader via the python scriptEditor, it returns.
>>
>> import txReader
>> # Result: Traceback (most recent call last):
>>   File "<string>", line 1, in <module>
>> ImportError: dynamic module does not define init function (inittxReader)
>>
>> Interestingly if i try the same import, however without first creating a
>> read node, i actually get an OCIO symbol error.
>>
>> import txReader
>> # Result: Traceback (most recent call last):
>>   File "<string>", line 1, in <module>
>> ImportError:
>> /home/zacc/dev/junk/build_test/oiio/oiio-rb-2.2.3/oiio-RB-2.2.3/install/lib64/libOpenImageIO.so.2.2.3:
>> undefined symbol:
>> _ZNK13FnOpenColorIO2v16Config12getProcessorERKNSt3tr110shared_ptrIKNS0_7ContextEEERKNS3_IKNS0_9TransformEEENS0_18TransformDirectionE
>>
>> Using C++Filt results in
>> FnOpenColorIO::v1::Config::getProcessor(std::tr1::shared_ptr<FnOpenColorIO::v1::Context
>> const> const&, std::tr1::shared_ptr<FnOpenColorIO::v1::Transform const>
>> const&, FnOpenColorIO::v1::TransformDirection) const
>>
>> (Strace results from forced plugin reload)
>>
>> I also see the below strace
>> if i try to forcefully load all of Nuke's plugins
>> import nuke
>> nuke.nodeTypes(True)
>>
>> open("/home/zacc/dev/junk/build_test/oiio/oiio-rb-2.2.3/oiio-RB-2.2.3/install/lib64/txWriter.so",
>> O_RDONLY|O_CLOEXEC) = 118
>> read(118,
>> "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\242\0\0\0\0\0\0"...,
>> 832) = 832
>> fstat(118, {st_mode=S_IFREG|0755, st_size=186872, ...}) = 0
>> mmap(NULL, 2251928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 118,
>> 0) = 0x7f88e758a000
>> mprotect(0x7f88e75af000, 2093056, PROT_NONE) = 0
>> mmap(0x7f88e77ae000, 8192, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 118, 0x24000) = 0x7f88e77ae000
>> close(118)                              = 0
>> mprotect(0x7f88e77ae000, 4096, PROT_READ) = 0
>> openat(AT_FDCWD, "/sys/devices/system/cpu",
>> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 118
>> brk(NULL)                               = 0xcec3000
>> brk(0xcee7000)                          = 0xcee7000
>> getdents(118, /* 42 entries */, 32768)  = 1248
>> getdents(118, /* 0 entries */, 32768)   = 0
>> close(118)                              = 0
>> sched_getaffinity(29347, 8, [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
>> 18 19 20 21 22 23]) = 8
>> futex(0x7f8a2c3f8678, FUTEX_WAKE_PRIVATE, 2147483647) = 0
>> futex(0x7f8a2c3f8678, FUTEX_WAKE_PRIVATE, 2147483647) = 0
>> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xad8f6} ---
>> rt_sigaction(SIGSEGV, NULL, {0x451580, [ILL ABRT BUS FPE SEGV],
>> SA_RESTORER|SA_STACK|SA_SIGINFO, 0x7f8b4d7365f0}, 8) = 0
>> prctl(PR_SET_DUMPABLE, 1)               = 0
>> gettid()                                = 29347
>> socketpair(AF_LOCAL, SOCK_STREAM, 0, [118, 119]) = 0
>> sendmsg(11, {msg_name(0)=NULL,
>> msg_iov(1)=[{"\v\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\366\330\n\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
>> 1584}], msg_controllen=24, [{cmsg_len=20, cmsg_level=SOL_SOCKET,
>> cmsg_type=SCM_RIGHTS, [119]}], msg_flags=0}, 0) = 1584
>> close(119)                              = 0
>> read(118, "B", 1)                       = 1
>> close(118)                              = 0
>> rt_sigaction(SIGSEGV, {SIG_DFL, [SEGV], SA_RESTORER|SA_RESTART,
>> 0x7f8b4b6d03b0}, {0x451580, [ILL ABRT BUS FPE SEGV],
>> SA_RESTORER|SA_STACK|SA_SIGINFO, 0x7f8b4d7365f0}, 8) = 0
>> gettid()                                = 29347
>> tgkill(29347, 29347, SIGSEGV)           = 0
>> rt_sigreturn({mask=[]})                 = 0
>> --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_TKILL, si_pid=29347,
>> si_uid=50242} ---
>> +++ killed by SIGSEGV +++
>> Segmentation fault
>>
>> Apologies, i wish i knew more. This is what i have found so far.
>>
>>
>>
>> ------------------------------
>> *From: *"Larry Gritz" <l...@larrygritz.com>
>> *To: *"oiio-dev" <oiio-dev@lists.openimageio.org>
>> *Sent: *Wednesday, 1 July, 2020 11:51:02 AM
>> *Subject: *Re: [Oiio-dev] Do the tx plugins support Nuke12+?
>>
>> Zac, what error message do you get, exactly?
>>
>
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>
>
> --
> Larry Gritz
> l...@larrygritz.com
>
>
>
>
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>
>
> --
> Larry Gritz
> l...@larrygritz.com
>
>
>
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>
_______________________________________________
Oiio-dev mailing list
Oiio-dev@lists.openimageio.org
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to