golang: Build SWIG and include it into Go build environment
Even if we don't use swig in our go projects, if hosting environment has swig, but incorrectly installed, then Go build will fail as: --- FAIL: TestScript (0.03s) --- FAIL: TestScript/list_swigcxx (0.46s) script_test.go:252: # go list should not report SWIG-generated C++ files in CompiledGoFiles. (0.001s) # CompiledGoFiles should contain 4 files: # a.go # a.swigcxx.go # _cgo_gotypes.go # a.cgo1.go (0.421s) > go list -f '{{.CompiledGoFiles}}' -compiled=true example/swig [stdout] [] [stderr] # example/swig :1: Error: Unable to find 'swig.swg' :3: Error: Unable to find 'go.swg' [exit status 2] FAIL: testdata/script/list_swigcxx.txt:12: unexpected command failure Such broken environment, in particular, is present on our testnodes, because there swig program is being included into slapos-node package, slapos command includes it into $PATH for spawned programs https://lab.nexedi.com/nexedi/slapos/blob/99cf4bfd/component/slapos/buildout.cfg#L22-30 https://lab.nexedi.com/nexedi/slapos/blob/99cf4bfd/component/slapos/buildout.cfg#L74-88 but the swig binary itself is configured to look into its supporting files in the wrong place: slapuser91@vifibcloud-rapidspace-hosting-007:~/t/swig$ /opt/slapos/parts/swig/bin/swig -swiglib /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10 slapuser91@vifibcloud-rapidspace-hosting-007:~/t/swig$ ll /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10 ls: cannot access '/usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10': No such file or directory which leads to SWIG being broken: slapuser91@vifibcloud-rapidspace-hosting-007:~/t/swig$ /opt/slapos/parts/swig/bin/swig -v -go -intgosize 64 a.swigcxx Language subdirectory: go Search paths: ./ ./swig_lib/go/ /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10/go/ ./swig_lib/ /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10/ Preprocessing... :1: Error: Unable to find 'swig.swg' :3: Error: Unable to find 'go.swg' -> Fix it by building SWIG ourselves and using that built swig to build go and in the Go environment provided to users. See "Troubleshooting" in http://www.swig.org/Release/README for details. /cc @luke, @jerome, @romain
Status | Job ID | Name | Coverage | ||||||
---|---|---|---|---|---|---|---|---|---|
External | |||||||||
passed |
#259384
external
|
SlapOS.Eggs.UnitTest-Master.Python2 |
00:10:28
|
||||||
passed |
#259401
external
|
SlapOS.Eggs.UnitTest-Master.Python3 |
00:38:04
|
||||||
passed |
#259118
external
|
SlapOS.SlapRunner.ResilienceTest-Master |
00:23:00
|
||||||
failed |
#259398
external
|
SlapOS.SlapRunner.ResilienceTest-Master.ERP5 |
00:42:22
|
||||||
passed |
#259134
external
|
SlapOS.SoftwareReleases.IntegrationTest-Master.Python2 |
07:21:27
|
||||||
failed |
#259137
external
|
SlapOS.SoftwareReleases.IntegrationTest-Master.Python3 |
22:37:01
|
||||||
passed |
#259108
external
retried
|
SlapOS.Eggs.UnitTest-Master.Python2 |
00:20:00
|
||||||
passed |
#259304
external
retried
|
SlapOS.Eggs.UnitTest-Master.Python2 |
00:26:54
|
||||||
passed |
#259096
external
retried
|
SlapOS.Eggs.UnitTest-Master.Python3 |
00:15:54
|
||||||
passed |
#259292
external
retried
|
SlapOS.Eggs.UnitTest-Master.Python3 |
00:13:25
|
||||||
failed |
#259121
external
retried
|
SlapOS.SlapRunner.ResilienceTest-Master.ERP5 |
00:59:44
|
||||||