Bug#898561: libmarc-transform-perl: FTBFS with libyaml-perl >= 1.25-1 (test failures)
Niko Tyni
ntyni at debian.org
Thu May 17 09:41:37 BST 2018
On Thu, May 17, 2018 at 01:16:17AM +0300, Niko Tyni wrote:
> On Sun, May 13, 2018 at 04:52:06PM +0200, gregor herrmann wrote:
> > Source: libmarc-transform-perl
> > Version: 0.003006-2
> > Severity: serious
> > Tags: upstream buster sid
> > Justification: fails to build from source
>
> > libmarc-transform-perl's testsuite fails, both during build and
> > autopkgtest, with libyaml-perl >= 1.25-1:
> >
> >
> > perl Build test --verbose 1
> > Hexadecimal number > 0xffffffff non-portable at (eval 28) line 1.
> > Number found where operator expected at (eval 29) line 8, near ""I want) {$boolcond=1;$boolcondint=1; eval{ create("605"
> > (Missing operator before 605?)
>
> This regressed with
>
> https://github.com/ingydotnet/yaml-pm/commit/a2231746743e9bb2939c063ab440ac658c226c4e
It looks to me like this is something that needs to be fixed in
MARC::Transform. It is about YAML quoting: documents like
---
foo: bar "foobar #"
get parsed differently with the new YAML.pm than the old one.
AFAICS MARC::Transform uses the hash sign as an escape character
and relies on the old behaviour.
# old
% perl -MYAML=Load -le 'print Load(qq(---\nfoo: bar "foobar #"))->{foo}'
bar "foobar #"
# new
% perl -MYAML=Load -le 'print Load(qq(---\nfoo: bar "foobar #"))->{foo}'
bar "foobar
The new behaviour seems to be consistent with YAML::XS, YAML::Tiny and
yaml.py in python3.
% perl -MYAML::XS=Load -le 'print Load(qq(---\nfoo: bar "foobar #"))->{foo}'
bar "foobar
% perl -MYAML::Tiny=Load -le 'print Load(qq(---\nfoo: bar "foobar #"))->{foo}'
bar "foobar
% python3
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import yaml
>>> print(yaml.load('---\nfoo: bar "foobar #"')['foo'])
bar "foobar
--
Niko Tyni ntyni at debian.org
More information about the pkg-perl-maintainers
mailing list