Package: www.debian.org
User: www.debian....@packages.debian.org
Usertag: scripts
Severity: normal
X-Debbugs-CC: a...@debian.org
Hello all
After upgrading www-master from Debian 10 buster (wml 2.12.2) to Debian
11 bullseye (wml 2.32.0), we're experiencing an issue when building the
stats files for the website:
make[4]: Entering directory
'/srv/www.debian.org/webwml/english/devel/website/stats'
wml -q -D CUR_YEAR=2022 -o UNDEFuEN:ar.en.html@g+w -D CUR_LANG=English
-D CUR_ISO_LANG=en -D CUR_LOCALE=en_US.UTF-8 -D CHARSET=utf-8 \
../../../../english/devel/website/stats/ar.wml
ePerl:Error: Perl runtime error (interpreter rc=2)
---- Contents of STDERR channel: ---------
couldn't open ./../../../../index.wml or
/srv/www.debian.org/webwml/english/devel/website/stats/../../../../index.wml:
No such file or directory
Died at /tmp/kZRxwsy3aN/wml.tmp1 line 747.
------------------------------------------
** WML:Break: Error in Pass 3 (rc=1).
Died at /usr/share/wml/TheWML/Frontends/Wml/Runner.pm line 402.
TheWML::Frontends::Wml::Runner::_run_pass(TheWML::Frontends::Wml::Runner=HASH(0x55c872bf8850),
3, SCALAR(0x55c8731471c8), REF(0x55c873147198), REF(0x55c8731471b0)) called at
/usr/share/wml/TheWML/Frontends/Wml/Runner.pm line 440
TheWML::Frontends::Wml::Runner::_passes_loop(TheWML::Frontends::Wml::Runner=HASH(0x55c872bf8850))
called at /usr/share/wml/TheWML/Frontends/Wml/Runner.pm line 727
TheWML::Frontends::Wml::Runner::_output_and_cleanup(TheWML::Frontends::Wml::Runner=HASH(0x55c872bf8850))
called at /usr/share/wml/TheWML/Frontends/Wml/Runner.pm line 932
TheWML::Frontends::Wml::Runner::run_with_ARGV(TheWML::Frontends::Wml::Runner=HASH(0x55c872bf8850),
HASH(0x55c872df9390)) called at /usr/bin/wml line 47
make[4]: *** [Makefile:33: ar.en.html] Error 2
make[4]: Leaving directory
'/srv/www.debian.org/webwml/english/devel/website/stats'
make[3]: [../../../Makefile.common:84: stats-install] Error 2 (ignored)
make[3]: Leaving directory
'/srv/www.debian.org/webwml/english/devel/website'
The error happens with all the files in the "stats" folder, in all the
languages.
I have checked that the source wml files (created with the script
stattrans.pl) are similar with buster and bullseye. It seems the problem
is in how the file is referenced when passed to wml: if I try to build
the file like this:
wml -q -D CUR_YEAR=2022 -o UNDEFuEN:ar.en.html@g+w -D CUR_LANG=English
-D CUR_ISO_LANG=en -D CUR_LOCALE=en_US.UTF-8 -D CHARSET=utf-8 ar.wml
then it builds fine. If I try
wml -q -D CUR_YEAR=2022 -o UNDEFuEN:ar.en.html@g+w -D CUR_LANG=English
-D CUR_ISO_LANG=en -D CUR_LOCALE=en_US.UTF-8 -D CHARSET=utf-8
../stats/ar.wml
again it builds fine, the same with
../../../devel/website/stats/ar.wml but it fails when the file is
referenced as "../../../../english/devel/website/stats/ar.wml"
I am not sure if this happens because with that path are two .wmlrc
files involved, or because the new wml version is buggy about how it
handles long relative paths.
For now, I suggest to workaround the issue changing the corresponding
line in the english/devel/website/stats/Makefile:
-%.$(LANGUAGE).html: $(ENGLISHDIR)/$(CUR_DIR)/%.wml
$(LOCALEDIR)/stats.mo | $(VCSREVCACHE)
+%.$(LANGUAGE).html: %.wml $(LOCALEDIR)/stats.mo | $(VCSREVCACHE)
then the English folders builds fine, but we would need to create
symbolic links in the other languages /devel/website/stats, in a similar
way as it was done with the sitemap.wml in bug #924172, so they can be
built too. I don't know how to do this, though, I've added this code to
/english/devel/website/stats/Makefile:
ifneq "$(LANGUAGE)" "en"
%.wml:
$(shell ln -s $(ENGLISHDIR)/$(CUR_DIR)/*.wml .)
endif
prior to the %.$(LANGUAGE).html recipe, and it seems it works for all
languages except Chinese (variants):
wml -q -D CUR_YEAR=2022 -O1 -o
UNDEFuZH@uCNuCNHKuCNTW:ar.zh-cn.html.tmp@g+w -o
UNDEFuZH@uHKuCNHKuHKTWuTWHK:ar.zh-hk.html.tmp@g+w -o
UNDEFuZH@uTWuCNTWuHKTWuTWHK:ar.zh-t
w.html.tmp@g+w --prolog=../../../bin/format_zh.pl
--epilog=../../../bin/strip_initial_blank_line.sh -D CUR_LANG=Chinese -D
CUR_ISO_LANG=zh -D CUR_LOCALE=zh_CN.UTF-8 -D
CHARSET=UTF-8 \
ar.wml
Can't call method "Clone" on an undefined value at
/usr/share/wml/SliceTermParser.pm line 285.
SliceTermParser::__ANON__(TheWML::Backends::Slice::Main=HASH(0x564e54d0cec8),
HASH(0x564e54d0cf88)) called at /usr/share/wml/TheWML/Backends/Slice/Main.pm
line
600
TheWML::Backends::Slice::Main::pass3(TheWML::Backends::Slice::Main=HASH(0x564e54d0cec8))
called at /usr/share/wml/TheWML/Backends/Slice/Main.pm line 650
TheWML::Backends::Slice::Main::main(TheWML::Backends::Slice::Main=HASH(0x564e54d0cec8))
called at /usr/share/wml/TheWML/Frontends/Wml/PassesManager.pm line 291
TheWML::Frontends::Wml::PassesManager::__ANON__("-o",
"UNDEFuZH\@uCNuCNHKuCNTW:ar.zh-cn.html.tmp\@g+w", "-o",
"UNDEFuZH\@uHKuCNHKuHKTWuTWHK:ar.zh-hk.html.tmp\@
g+w", "-o", "UNDEFuZH\@uTWuCNTWuHKTWuTWHK:ar.zh-tw.html.tmp\@g+w", "-o",
"/tmp/yNBXp5m6Qz/wml.tmp2", ...) called at
/usr/share/wml/TheWML/Frontends/Wml/PassObj.pm line
85
TheWML::Frontends::Wml::PassObj::dosource(TheWML::Frontends::Wml::PassObj=HASH(0x564e54622fb0),
TheWML::Frontends::Wml::PassesManager=HASH(0x564e545526b8), "/u
sr/share/wml/exec/wml_p9_slice", " -o
'UNDEFuZH\@uCNuCNHKuCNTW:ar.zh-cn.html.tmp\@g+w' -o 'UNDEF"...,
CODE(0x564e54a34528)) called at /usr/share/wml/TheWML/Frontends/
Wml/PassesManager.pm line 148
TheWML::Frontends::Wml::PassesManager::_generic_do(TheWML::Frontends::Wml::PassesManager=HASH(0x564e545526b8),
9, "wml_p9_slice", " -o 'UNDEFuZH\@uCNuCNHKuCNT
W:ar.zh-cn.html.tmp\@g+w' -o 'UNDEF"...,
Path::Tiny=ARRAY(0x564e54a70b90), Path::Tiny=ARRAY(0x564e54bc8df0),
CODE(0x564e54a34528)) called at /usr/share/wml/TheWML/Fron
tends/Wml/PassesManager.pm line 293
TheWML::Frontends::Wml::PassesManager::pass9(TheWML::Frontends::Wml::PassesManager=HASH(0x564e545526b8),
" -o 'UNDEFuZH\@uCNuCNHKuCNTW:ar.zh-cn.html.tmp\@g+w'
-o 'UNDEF"..., Path::Tiny=ARRAY(0x564e54a70b90),
Path::Tiny=ARRAY(0x564e54bc8df0), Path::Tiny=ARRAY(0x564e54bc89b8))
called at /usr/share/wml/TheWML/Frontends/Wml/Pas
sesManager.pm line 86
TheWML::Frontends::Wml::PassesManager::__ANON__(TheWML::Frontends::Wml::PassesManager=HASH(0x564e545526b8),
" -o 'UNDEFuZH\@uCNuCNHKuCNTW:ar.zh-cn.html.tmp\@g
+w' -o 'UNDEF"..., Path::Tiny=ARRAY(0x564e54a70b90),
Path::Tiny=ARRAY(0x564e54bc8df0), Path::Tiny=ARRAY(0x564e54bc89b8))
called at /usr/share/wml/TheWML/Frontends/Wml/
Runner.pm line 380
TheWML::Frontends::Wml::Runner::_run_pass(TheWML::Frontends::Wml::Runner=HASH(0x564e545524f0),
9, SCALAR(0x564e54a9f108), REF(0x564e54a9f0d8), REF(0x564e54a9f0
f0)) called at /usr/share/wml/TheWML/Frontends/Wml/Runner.pm line 440
TheWML::Frontends::Wml::Runner::_passes_loop(TheWML::Frontends::Wml::Runner=HASH(0x564e545524f0))
called at /usr/share/wml/TheWML/Frontends/Wml/Runner.pm line
727
TheWML::Frontends::Wml::Runner::_output_and_cleanup(TheWML::Frontends::Wml::Runner=HASH(0x564e545524f0))
called at /usr/share/wml/TheWML/Frontends/Wml/Runner.p
m line 932
TheWML::Frontends::Wml::Runner::run_with_ARGV(TheWML::Frontends::Wml::Runner=HASH(0x564e545524f0),
HASH(0x564e546cbf10)) called at /usr/bin/wml line 47
I'll leave things like this, I hope somebody can help to fix this issue,
if not, I'll give a second thought/try in the following days.
Kind regards,
--
Laura Arjona Reina
https://wiki.debian.org/LauraArjona