[Pkg-tcltk-devel] Bug#1006587: tcltls: FTBFS with OpenSSL 3.0

Sebastian Andrzej Siewior sebastian at breakpoint.cc
Sun Feb 27 23:00:33 GMT 2022


Source: tcltls
Version: 1.7.22-2
Severity: important
Tags: bookworm sid
User: pkg-openssl-devel at lists.alioth.debian.org
Usertags: ftbfs-3.0

Your package is failing to build using OpenSSL 3.0 with the
following error:

| Tests began at Tue Feb 15 07:16:51 UTC 2022
| ciphers.test
| tlsIO.test
| 
| ==== tlsIO-2.2 tcp connection with client port specified FAILED
| ==== Contents of test case:
| 
|     removeFile script
|     set f [open script w]
|     puts $f [list set auto_path $auto_path]
|     puts $f {
| 	package require tls
| 	set timer [after 2000 "set x done"]
|     }
|     puts $f "set f \[tls::socket -server accept -certfile $serverCert -cafile $caCert -keyfile $serverKey 8829 \]"
|     puts $f {
| 	proc accept {sock addr port} {
|             global x
|             puts "[gets $sock] $port"
|             close $sock
|             set x done
| 	}
| 	puts ready
| 	vwait x
| 	after cancel $timer
| 	close $f
|     }
|     close $f
|     set f [open "|[list $::tcltest::tcltest script] 2> /dev/null" r]
|     gets $f x
|     global port
|     if {[catch {tls::socket -myport $port  -certfile $clientCert -cafile $caCert  -keyfile $clientKey 127.0.0.1 8829} sock]} {
|         set x $sock
| 	catch {close [tls::socket 127.0.0.1 8829]}
|     } else {
|         puts $sock hello
| 	flush $sock
|         lappend x [gets $f]
|         close $sock
|     }
|     close $f
|     set x
| 
| ---- Test generated error; Return code was: 1
| ---- Return code should have been one of: 0 2
| ---- errorInfo: error flushing "sock55762fc1f490": software caused connection abort
|     while executing
| "flush $sock"
|     ("uplevel" body line 31)
|     invoked from within
| "uplevel 1 $script"
| ---- errorCode: POSIX ECONNABORTED {software caused connection abort}
| ==== tlsIO-2.2 FAILED
| 
| 
| 
| ==== tlsIO-2.3 tcp connection with client interface specified FAILED
| ==== Contents of test case:
| 
|     removeFile script
|     set f [open script w]
|     puts $f [list set auto_path $auto_path]
|     puts $f {
| 	package require tls
| 	set timer [after 2000 "set x done"]
|     }
|     puts $f "set f \[tls::socket -server accept -certfile $serverCert -cafile $caCert -keyfile $serverKey 8830 \]"
|     puts $f {
| 	proc accept {sock addr port} {
|             global x
|             puts "[gets $sock] $addr"
|             close $sock
|             set x done
| 	}
| 	puts ready
| 	vwait x
| 	after cancel $timer
| 	close $f
|     }
|     close $f
|     set f [open "|[list $::tcltest::tcltest script] 2> /dev/null" r]
|     gets $f x
|     if {[catch {tls::socket -myaddr 127.0.0.1  -certfile $clientCert -cafile $caCert  -keyfile $clientKey 127.0.0.1 8830} sock]} {
|         set x $sock
|     } else {
|         puts $sock hello
| 	catch {flush $sock}
|         lappend x [gets $f]
|         close $sock
|     }
|     close $f
|     set x
| 
| ---- Result was:
| ready {}
| ---- Result should have been (exact matching):
| ready {hello 127.0.0.1}
| ==== tlsIO-2.3 FAILED
| 
| 
| 
| ==== tlsIO-2.4 tcp connection with server interface specified FAILED
| ==== Contents of test case:
| 
|     removeFile script
|     set f [open script w]
|     puts $f [list set auto_path $auto_path]
|     puts $f {
| 	package require tls
| 	set timer [after 2000 "set x done"]
|     }
|     puts $f "set f \[tls::socket -server accept -certfile $serverCert -cafile $caCert -keyfile $serverKey -myaddr localhost 8831 \]"
|     puts $f {
| 	proc accept {sock addr port} {
|             global x
|             puts "[gets $sock]"
|             close $sock
|             set x done
| 	}
| 	puts ready
| 	vwait x
| 	after cancel $timer
| 	close $f
|     }
|     close $f
|     set f [open "|[list $::tcltest::tcltest script] 2> /dev/null" r]
|     gets $f x
|     if {[catch {tls::socket -certfile $clientCert -cafile $caCert  -keyfile $clientKey localhost 8831} sock]} {
|         set x $sock
|     } else {
|         puts $sock hello
| 	flush $sock
|         lappend x [gets $f]
|         close $sock
|     }
|     close $f
|     set x
| 
| ---- Test generated error; Return code was: 1
| ---- Return code should have been one of: 0 2
| ---- errorInfo: error flushing "sock55762fcca440": software caused connection abort
|     while executing
| "flush $sock"
|     ("uplevel" body line 29)
|     invoked from within
| "uplevel 1 $script"
| ---- errorCode: POSIX ECONNABORTED {software caused connection abort}
| ==== tlsIO-2.4 FAILED
| 
| 
| 
| ==== tlsIO-2.5 tcp connection with redundant server port FAILED
| ==== Contents of test case:
| 
|     removeFile script
|     set f [open script w]
|     puts $f [list set auto_path $auto_path]
|     puts $f {
| 	package require tls
| 	set timer [after 2000 "set x done"]
|     }
|     puts $f "set f \[tls::socket -server accept -certfile $serverCert -cafile $caCert -keyfile $serverKey 8832 \]"
|     puts $f {
| 	proc accept {sock addr port} {
|             global x
|             puts "[gets $sock]"
|             close $sock
|             set x done
| 	}
| 	puts ready
| 	vwait x
| 	after cancel $timer
| 	close $f
|     }
|     close $f
|     set f [open "|[list $::tcltest::tcltest script] 2> /dev/null" r]
|     gets $f x
|     if {[catch {tls::socket -certfile $clientCert -cafile $caCert  -keyfile $clientKey 127.0.0.1 8832} sock]} {
|         set x $sock
|     } else {
|         puts $sock hello
| 	flush $sock
|         lappend x [gets $f]
|         close $sock
|     }
|     close $f
|     set x
| 
| ---- Test generated error; Return code was: 1
| ---- Return code should have been one of: 0 2
| ---- errorInfo: error flushing "sock55762fccacc0": software caused connection abort
|     while executing
| "flush $sock"
|     ("uplevel" body line 29)
|     invoked from within
| "uplevel 1 $script"
| ---- errorCode: POSIX ECONNABORTED {software caused connection abort}
| ==== tlsIO-2.5 FAILED
| 
| 
| 
| ==== tlsIO-2.7 echo server, one line FAILED
| ==== Contents of test case:
| 
|     removeFile script
|     set f [open script w]
|     puts $f [list set auto_path $auto_path]
|     puts $f {
| 	package require tls
| 	set timer [after 2000 "set x done"]
|     }
|     puts $f "set f \[tls::socket -server accept -certfile $serverCert -cafile $caCert -keyfile $serverKey 8834 \]"
|     puts $f {
| 	proc accept {s a p} {
|             fileevent $s readable [list echo $s]
| 	    fconfigure $s -translation lf -buffering line
|         }
| 	proc echo {s} {
| 	     set l [gets $s]
|              if {[eof $s]} {
|                  global x
|                  close $s
|                  set x done
|              } else {
|                  puts $s $l
|              }
| 	}
| 	puts ready
| 	vwait x
| 	after cancel $timer
| 	close $f
| 	puts done
|     }
|     close $f
|     set f [open "|[list $::tcltest::tcltest script] 2> /dev/null" r]
|     gets $f
|     set s [tls::socket -certfile $clientCert -cafile $caCert  -keyfile $clientKey 127.0.0.1 8834]
|     fconfigure $s -buffering line -translation lf
|     puts $s "hello abcdefghijklmnop"
|     after 1000
|     set x [gets $s]
|     close $s
|     set y [gets $f]
|     close $f
|     list $x $y
| 
| ---- Test generated error; Return code was: 1
| ---- Return code should have been one of: 0 2
| ---- errorInfo: error writing "sock55762fccb440": software caused connection abort
|     while executing
| "puts $s "hello abcdefghijklmnop""
|     ("uplevel" body line 36)
|     invoked from within
| "uplevel 1 $script"
| ---- errorCode: POSIX ECONNABORTED {software caused connection abort}
| ==== tlsIO-2.7 FAILED
| 
| 
| 
| ==== tlsIO-2.8 echo server, loop 50 times, single connection FAILED
| ==== Contents of test case:
| 
|     set f [open script w]
|     puts $f [list set auto_path $auto_path]
|     puts $f {
|     	package require tls
|     }
|     puts $f "set f \[tls::socket -server accept -certfile $serverCert -cafile $caCert -keyfile $serverKey 8835 \]"
|     puts $f {
| 	proc accept {s a p} {
|             fileevent $s readable [list echo $s]
|             fconfigure $s -buffering line
|         }
| 	proc echo {s} {
| 	     global i
|              set l [gets $s]
|              if {[eof $s]} {
|                  global x
|                  close $s
|                  set x done
|              } else { 
| 	         incr i
|                  puts $s $l
|              }
| 	}
| 	set i 0
| 	puts ready
| 	set timer [after 20000 "set x done"]
| 	vwait x
| 	after cancel $timer
| 	close $f
| 	puts "done $i"
|     }
|     close $f
|     set f [open "|[list $::tcltest::tcltest script] 2> /dev/null" r]
|     gets $f
|     set s [tls::socket -certfile $clientCert -cafile $caCert  -keyfile $clientKey 127.0.0.1 8835]
|     fconfigure $s -buffering line
|     catch {
| 	for {set x 0} {$x < 50} {incr x} {
| 	    puts $s "hello abcdefghijklmnop"
| 	    gets $s
| 	}
|     }
|     close $s
|     catch {set x [gets $f]}
|     close $f
|     set x
| 
| ---- Result was:
| done 0
| ---- Result should have been (exact matching):
| done 50
| ==== tlsIO-2.8 FAILED
| 
| Terminated
| make[1]: *** [Makefile:76: test] Error 143

For more information see:
https://www.openssl.org/docs/man3.0/man7/migration_guide.html

Sebastian



More information about the Pkg-tcltk-devel mailing list