#1140284 trurl: FTBFS: Failed! - Failed: 6, Passed: 201, Skipped: 8, Total: 215

Package:
src:trurl
Source:
src:trurl
Submitter:
Santiago Vila
Date:
2026-06-17 16:17:33 UTC
Severity:
normal
Tags:
#1140284#5
Date:
2026-06-17 16:16:08 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202606/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:trurl, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean
   dh_auto_clean
	make -j2 clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
rm -f trurl.o trurl scripts/_trurl.zsh trurl.1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_clean
 debian/rules binary
dh binary
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
   dh_auto_build
	make -j2 INSTALL="install --strip-program=true"
make[1]: Entering directory '/<<PKGBUILDDIR>>'
cc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection $(curl-config --cflags) -W -Wall -Wshadow -pedantic -Wconversion -Wmissing-prototypes -Wwrite-strings -Wsign-compare -Wno-sign-conversion -Werror -g -Wdate-time -D_FORTIFY_SOURCE=2  -c -o trurl.o trurl.c
./scripts/cd2nroff trurl.md > trurl.1
cc -Wl,-z,relro -Wl,-z,now trurl.o -o trurl $(curl-config --libs)
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_auto_test
	make -j2 test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
34: failed	--url 'https://example.com/#%2e%61%13%Fa'
--- stdout --- 
expected:
'https://example.com/#.a%13%fa\n'
got:
'https://example.com/#.a%13%FA\n'
--- stderr --- 
expected:
''
got:
''
--- returncode --- 
expected:
0
got:
0
1: passed	example.com
2: passed	http://example.com
3: passed	https://example.com
4: passed	hp://example.com
5: passed
6: passed	ftp.example.com
7: passed	https://example.com/../moo
8: passed	https://example.com/.././moo
9: passed	https://example.com/test/../moo
10: passed	localhost --append path=moo
11: passed	localhost -a path=moo
12: passed	--set host=moo --set scheme=http
13: passed	-shost=moo -sscheme=http
14: passed	--set=host=moo --set=scheme=http
15: passed	-s host=moo -s scheme=http
16: passed	--set host=moo --set scheme=https --set port=999
17: passed	--set host=moo --set scheme=ftps --set path=/hello
18: passed	--url https://curl.se --set host=example.com
19: passed	--set host=example.com --set scheme=ftp
20: passed	--url https://curl.se/we/are.html --redirect here.html
21: passed	--url https://curl.se/we/../are.html --set port=8080
22: passed	imap://curl.se:22/ -s port=143
23: passed	--keep-port https://curl.se:22/ -s port=443
24: passed	--keep-port https://curl.se:22/ -s port=443 --get '{url}'
25: passed	--url https://curl.se/we/are.html --get '{path}'
26: passed	--url https://curl.se/we/are.html '-g{path}'
27: passed	--default-port --url imap://curl.se/we/are.html --get '{port}'
28: passed	--url https://curl.se/we/are.html --get '{scheme}'
29: passed	--url https://curl.se/we/are.html --get '{:scheme}'
30: passed	--url https://curl.se:55/we/are.html --get '{url:port}'
31: passed	--url https://curl.se/%2e%61%13 --get '{:path}'
32: passed	--url 'https://curl.se?%2e%61%13' --get '{:query}'
33: passed	--url 'https://curl.se/#%2e%61%13' --get '{:fragment}'

35: passed	--url https://hello@curl.se/we/are.html --get '{user}'
36: passed	--url https://hello:secret@curl.se/we/are.html --get '{password}'
37: passed	--url 'imap://hello:secret;crazy@curl.se/we/are.html' --get '{options}'
38: passed	--url https://curl.se/we/are.html --get '{host}'
39: passed	--url https://10.1/we/are.html --get '{host}'
40: passed	--url 'https://[fe80::0000:20c:29ff:fe9c:409b]:8080/we/are.html' --get '{host}'
41: passed	--url 'https://[fe80::0000:20c:29ff:fe9c:409b%euth0]:8080/we/are.html' --get '{zoneid}'
42: passed	--url 'https://[fe80::0000:20c:29ff:fe9c:409b%eth0]:8080/we/are.html' --get '{zoneid}'
43: passed	--url 'https://curl.se/we/are.html?user=many#more' --get '{query}'
44: passed	--url 'https://curl.se/we/are.html?user=many#more' --get '{fragment}'
45: passed	--url imap://curl.se/we/are.html -g '{default:port}'
46: passed	--url https://curl.se/hello --append path=you
47: passed	--url https://curl.se/hello --append 'path=you index.html'
48: passed	--url 'https://curl.se?name=hello' --append query=search=string
Test not compatible, skipping test 49
50: passed	--url https://curl.se/hello --set user=hej --set password=secret
51: passed	--url https://curl.se/hello --set query:=user=me
Test not compatible, skipping test 52
53: passed	--url https://curl.se/hello --set query=user=me
54: passed	--url https://curl.se/hello --set 'fragment= hello'
55: passed	--url https://curl.se/hello --set fragment:=%20hello
56: passed	localhost --append query=hello=foo
57: passed	localhost -a query=hello=foo
58: passed	'https://example.com?search=hello&utm_source=tracker' --trim 'query=utm_*'
59: passed	'https://example.com?search=hello&utm_source=tracker' --qtrim 'utm_*'
60: passed	'https://example.com?search=hello&utm_source=tracker&more=data' --trim 'query=utm_*'
61: passed	'https://example.com?search=hello&utm_source=tracker&more=data' --qtrim 'utm_*'
62: passed	'https://example.com?search=hello&more=data' --qtrim 'utm_*'
63: passed	'https://example.com?utm_source=tracker' --trim 'query=utm_*'
64: passed	'https://example.com?search=hello&utm_source=tracker&more=data' --qtrim utm_source
65: passed	'https://example.com?search=hello&utm_source=tracker&more=data' --qtrim utm_source --qtrim more --qtrim search
66: passed	--accept-space --url 'gopher://localhost/ with space'
67: passed	--accept-space --url 'https://localhost/?with space'
68: passed	https://daniel@curl.se:22/ -s port= -s user=
69: passed	'https://example.com?moo&search=hello' --qtrim search
70: passed	'https://example.com?search=hello&moo' --qtrim search
71: passed	'https://example.com?search=hello' --qtrim search --append query=moo
72: passed	--keep-port https://hello:443/foo
73: passed	--keep-port ftp://hello:21/foo
74: passed	https://hello:443/foo -s scheme=ftp
75: passed	--keep-port ftp://hello:443/foo -s scheme=https
76: passed	'https://example.com?utm_source=tra%20cker&address%20=home&here=now&thisthen' -g '{query:utm_source}'
77: passed	'https://example.com?utm_source=tra%20cker&address%20=home&here=now&thisthen' -g '{:query:utm_source}'
78: passed	'https://example.com?utm_source=tra%20cker&address%20=home&here=now&thisthen' -g '{:query:utm_}'
79: passed	'https://example.com?utm_source=tra%20cker&address%20=home&here=now&thisthen' -g '{:query:UTM_SOURCE}'
80: passed	'https://example.com?utm_source=tracker&monkey=123' --sort-query
81: passed	'https://example.com?a=b&c=d&' --sort-query
82: passed	'https://example.com?a=b&c=d&' --sort-query --trim query=a
83: passed	example.com:29 --set port=
84: passed	--url HTTPS://example.com
85: passed	--url https://EXAMPLE.com
86: passed	--url https://example.com/FOO/BAR
87: passed	--url '[2001:0db8:0000:0000:0000:ff00:0042:8329]'
88: passed	'https://example.com?utm=tra%20cker:address%20=home:here=now:thisthen' --sort-query --query-separator :
89: passed	'foo?a=bCd=eCe=f' --query-separator C --trim query=d
90: passed	localhost -g '{scheme} {host'
91: passed	localhost -g '[scheme] [host'
92: passed	localhost -g '\{{scheme}\['
93: passed	localhost -g '\\['
94: passed	'https://u:s@foo?moo' -g '[scheme][user][password][query]'
95: passed	'hej?a=b&a=c&a=d&b=a' -g '{query-all:a}'
96: passed	'https://curl.se?name=mr%00smith' --get '{query:name}'
97: passed	--keep-port https://curl.se --iterate 'port=80 81 443'
98: passed	https://curl.se --iterate 'port=81 443' --iterate 'scheme=sftp moo'
99: passed	https://curl.se --iterate 'port=81 443' --iterate 'scheme=sftp moo' --iterate 'port=2 1'
100: passed	https://curl.se -s host=localhost --iterate 'port=22 23'
101: passed	hello@localhost --iterate 'host=one two' -g '{host} {user}'
102: passed	'https://example.com?utm=tra%20cker&address%20=home&here=now&thisthen' --json
103: passed	'ftp://smith:secret@example.com:33/path?search=me#where' --json
104: passed	example.com --json
105: passed	example.com other.com --json
106: passed	localhost --iterate 'host=one two' --json
107: passed	--json -s scheme=irc -s host=curl.se
108: passed	--json -s host=curl.se
109: passed	--verify --json ftp://example.org '' git://curl.se/
110: passed	-s scheme=imap
111: passed	-g '{query:}' 'http://localhost/?=bar'
112: passed	--json 'https://curl.se/?&&&'
113: passed	--json --trim 'query=f*' 'localhost?foo&bar=ar'
114: passed	'https://example.com?search=hello&utm_source=tracker&utm_block&testing' --trim 'query=utm_*' --json
115: passed	'https://räksmörgås.se' -g '{default:puny:url}'
116: passed	'https://räksmörgås.se' -g '{puny:url}'
117: passed	'https://räksmörgås.se' -g '{puny:host}'
118: passed	'imap://user:password;crazy@[ff00::1234%hello]:1234/path?a=b&c=d#fragment' --json
119: passed	imap://example.com/ --get 'port: {port}, default:port: {default:port}'
120: passed	http://example.com:8080/ --get 'port: {port}, default:port: {default:port}'
121: passed	localhost -s host=foo --iterate 'host=bar baz'
122: passed	emanuele6://curl.se/trurl '' https://example.org
123: passed	--verify --no-guess-scheme hello
124: passed	--verify -f testfiles/test0000.txt
125: passed	-f testfiles/test0001.txt
126: passed	--no-guess-scheme foo hi https://example.org hey git://curl.se
127: passed	-f testfiles/test0002.txt --json
128: passed	--accept-space -s 'query:=x=10&x=2 3' localhost
Test not compatible, skipping test 129
Test not compatible, skipping test 130
Test not compatible, skipping test 131
Test not compatible, skipping test 132
Test not compatible, skipping test 133
134: passed	-s scheme:=http -s host:=localhost -s path:=/ABC%5C%5C -s 'query:=a&b&a%26b'
135: passed	-g '{query:b}\t{query-all:a}\n{:query:b}\t{:query-all:a}' 'https://example.org/foo?a=1&b=%23&a=%26#hello'173: failed	https://example.com/one/t%61o/%2F%42/
--- stdout --- 
expected:
'https://example.com/one/tao/%2fB/\n'
got:
'https://example.com/one/tao/%2FB/\n'
--- stderr --- 
expected:
''
got:
''
--- returncode --- 
expected:
0
got:
0
186: failed	'http://example.com/?a=%5D'
--- stdout --- 
expected:
'http://example.com/?a=%5d\n'
got:
'http://example.com/?a=%5D\n'
--- stderr --- 
expected:
''
got:
''
--- returncode --- 
expected:
0
got:
0
187: failed	'http://example.com/?a=%5D&b=%5D'
--- stdout --- 
expected:
'http://example.com/?a=%5d&b=%5d\n'
got:
'http://example.com/?a=%5D&b=%5D\n'
--- stderr --- 
expected:
''
got:
''
--- returncode --- 
expected:
0
got:
0
188: failed	'sftp://us%65r:pwd;giraffe@odd'
--- stdout --- 
expected:
'sftp://user:pwd%3bgiraffe@odd/\n'
got:
'sftp://user:pwd%3Bgiraffe@odd/\n'
--- stderr --- 
expected:
''
got:
''
--- returncode --- 
expected:
0
got:
0
191: failed	'sftp://us%65r:pwd;giraffe@odd' --get '[:password]'
--- stdout --- 
expected:
'pwd%3bgiraffe\n'
got:
'pwd%3Bgiraffe\n'
--- stderr --- 
expected:
''
got:
''
--- returncode --- 
expected:
0
got:
0

136: passed	--urlencode -g '{query:b}\t{query-all:a}\n{:query:b}\t{:query-all:a}' 'https://example.org/foo?a=1&b=%23&a=%26#hello'
137: passed	-a query=c=moo --sort-query 'https://example.org/foo?x=hi#rye'
138: passed	--qtrim a -a query=a=ciao -a query=b=salve 'https://example.org/foo?a=hi&b=hello&x=y'
139: passed	'http://example.com/?q=mr%00smith' --json --urlencode
140: passed	'http://example.com/?q=mr%00sm%00ith' --json --urlencode
141: passed	'http://example.com/?q=mr%00%00%00smith' --json --urlencode
142: passed	--url 'https://curl.se/we/are.html?*=moo&user=many#more' --qtrim '\*'
143: passed	--url http://xn--rksmrgs-5wao1o/ --as-idn
144: passed	--url http://xn--rksmrgs-5wao1o/ -g '{idn:host}'
145: passed	--url http://xn-----/ --as-idn --quiet
146: passed	--url http://xn-----/ --as-idn
147: passed	--verify -f testfiles/test0000.txt --quiet
148: passed	--curl --verify foo://bar
149: passed	'http://test.org/?key=val' --replace key=foo
150: passed	'http://test.org/?that=thing&key=val' --replace key=foo
151: passed	'http://test.org/?that=thing&key' --replace key=foo
152: passed	'http://test.org/?that=thing&key=foo' --replace key
153: passed	'https://example.com?a=123&b=321&b=987' --replace b=foo
154: passed	'example.org/?quest=best' --replace quest=%00 --json --urlencode
155: passed	example.com --replace
156: passed	'http://test.org/?that=thing' --force-replace key=foo
157: passed	'http://test.org/?that=thing' --replace-append key=foo
158: passed	'0?00%000000000000000000000=0000000000'
159: passed	--json '0?0%000000000000000000000000000000000' --urlencode
160: passed	--json '0?0%000000000000000000000000000000000=000%0000000000' --urlencode
161: passed	example.com --set 'host=[::1]'
162: passed	example.com:88 --set 'port?=99'
163: passed	example.com --set 'port?=99'
164: passed	example.com --append query=add --iterate 'scheme=http ftp'
165: passed	example.com --append path=add --iterate 'scheme=http ftp'
166: passed	example.com --append path=add --append path=two
167: passed	'https://curl.se?name=mr%00smith' --get '{query}'
168: passed	'https://curl.se?name=mr%00smith' --get '{strict:query}'
169: passed	example.com --set 'scheme?=https'
170: passed	ftp://example.com --set 'scheme?=https'
171: passed	http://example.org/%18 --json
172: passed	http://example.org/%18 --json --urlencode

Test not compatible, skipping test 174
175: passed	https://example.com/one/t%61o/%2F%42/ --append path=%61
176: passed	'https://ex%61mple.com/h%61s/?wh%61t'
177: passed	https://example.com/ --get '{must:query}'
178: passed	'https://example.com/?' --get '{must:query}'
179: passed	https://example.com/ --get '{must:fragment}'
180: passed	http://example.org/%18 --get '{path}'
181: passed	'http://example.org/?a=&b=1'
182: passed	'http://example.org/?a=1&b='
183: passed	'http://example.org/?a=1&b=&c=2'
184: passed	'http://example.org/?a=1&b=&c=2' --json
185: passed	'http://example.org/?=1&b=2&c=&=3'



189: passed	'imap://us%65r:pwd;gir%41ffe@odd'
190: passed	'sftp://us%65r:pwd;giraffe@odd' --get '[password]'

192: passed	--url 'http://åäö/' --punycode -s port=21
193: passed	sftp://odd --set port=144 --set port=145
194: passed	sftp://odd --get '[port]' --get '{port}'
195: passed	url -f testfiles/test0000.txt -f testfiles/test0000.txt
196: passed	--url
197: passed	url --set
198: passed	url --redirect
199: passed	url --get
200: passed	url --replace
201: passed	url --replace-append
202: passed	url --append
203: passed	url --query-separator ''"'"''"'"''
204: passed	url --query-separator aa
205: passed	url --json --get '{port}'
206: passed	url --get '{port}' --json
207: passed	'e?e&&'
208: passed	'e?e&'
209: passed	'e?e&&&&&&&&&&&&&&&&&&&&&'
210: passed	'e?e&&&&&&&&&&a&&&&&&&&&&&'
211: passed	-s 'path=\\' --json localhost
212: passed	-s 'path=\\' -g '{path}\n{:path}' --urlencode localhost
213: passed	-s 'path=abc\\' -s 'query:=a&b&a%26b' --urlencode --json localhost
214: passed	--url https://curl.se/hello --set user=:hej:
215: passed	-s 'path=\\' -g '{path}\n{:path}' localhost
Finished:
Failed! - Failed: 6, Passed: 201, Skipped: 8, Total: 215
make[1]: *** [Makefile:76: test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_test: error: make -j2 test returned exit code 2
make: *** [debian/rules:7: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------