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