[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Status of dh-r and problems building r-cran-yaml



 >>> However, yesterday I stumbled upon r-cran-yaml[1] which causes a
problem
>>> I was not able to solve quickly.  Upstream has injected an additional
>>> declaration to the code copy of libyaml which I injected via quilt patch
>>> right into the C code which now enables building the code.  Strangely
>>> enough the resulting library does not end up in the target directory
>>> location - or at least R can't find it there and the issue is hard to
>>> debug since at the point when the build process gets control again and I
>>> get a shell the files in questions are just removed by the Makefile:
>>>
>>> ** libs
>>> make[1]: Entering directory '/build/r-cran-yaml-2.1.14+dfsg/src'
>>> gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I. -DNDEBUG     -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.3.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -
>>> gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I. -DNDEBUG     -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.3.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -
>>> gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-z,relro -o yaml.so implicit.o r-ext.o -lyaml -L/usr/lib/R/lib -lR
>>> make[1]: Leaving directory '/build/r-cran-yaml-2.1.14+dfsg/src'
>>> make[1]: Entering directory '/build/r-cran-yaml-2.1.14+dfsg/src'
>>> make[1]: Leaving directory '/build/r-cran-yaml-2.1.14+dfsg/src'
>>> installing to /build/r-cran-yaml-2.1.14+dfsg/debian/r-cran-yaml/usr/lib/R/site-library/yaml/libs
>>> ** R
>>> ** inst
>>> ** preparing package for lazy loading
>>> ** help
>>> *** installing help indices
>>> ** building package indices
>>> ** testing if installed package can be loaded
>>> Error in dyn.load(file, DLLpath = DLLpath, ...) :.
>>>   unable to load shared object '/build/r-cran-yaml-2.1.14+dfsg/debian/r-cran-yaml/usr/lib/R/site-library/yaml/libs/yaml.so':
>>>   /build/r-cran-yaml-2.1.14+dfsg/debian/r-cran-yaml/usr/lib/R/site-library/yaml/libs/yaml.so: undefined symbol: yaml_emitter_set_indent_mapping_sequence
>>> Error: loading failed
>>> Execution halted
>>> ERROR: loading failed
>>> * removing '/build/r-cran-yaml-2.1.14+dfsg/debian/r-cran-yaml/usr/lib/R/site-library/yaml'
>>>
>>>
>>> I admit my poor wisdom ends here.  Any clue?
>>
>> Nothing from a quick look. I'll have a longer look tonight or tomorrow
>> and see if I can spot anything.
> 
> That would be really nice.
> 

The problem is that other files which are being removed in d/copyright
Files-Excluded include local changes - both api.c and emitter.c, in
addition to the changes you caught in yaml.h and yaml_private.h

api.c includes a definition of yaml_emitter_set_indent_mapping_sequence
emitter.c modifies yaml_emitter_emit_block_sequence_item

It would be possible to disentangle this (remove these files, provide a
new c file containing these functions, link with libyaml), but given
they are patching the libyaml source linking against vanilla seems
likely to cause ABI issues in future. I would consider reverting the
DFSG version and just building all the included source files. Thoughts?

Gordon


Reply to: