Hi Will, yes, you are right. I seperated the sm build dir and didn't copied the dll's into the $VCPK_BIN directory. Now, i copied the dll's into the bin dir and couchjs should work. The problem is, that the library 'priv/couch_ejson_compare' isn't found and Jan and I have no ideas how to fix that library loading error. Maybe we need some interactive help...
Log file: https://pastebin.com/DakNMrVM Cheers, Ronny Florian Beckert & Ronny Berndt GbR Saalstr. 3 07743 Jena Tel. 03641 - 6391110 Fax. 03641 - 219637 E-Mail: p...@kioskkinder.com Am Do., 25. Nov. 2021 um 15:12 Uhr schrieb Will Young < lostnetwork...@gmail.com>: > Hi Ronny, > > I think the issue is the glazier is packaging up the dlls from > $VCPKG_BIN in couchdb's \bin for the runtime which don't correspond to > the paths you are indicating. You could probably copy the dlls into > $vcpkg_bin or add lines to copy the dlls from your icu and mozjs to > the build_installer.ps1. > > Cheers, > Will > > Am Do., 25. Nov. 2021 um 13:00 Uhr schrieb Ronny Berndt > <ro...@kioskkinder.com.invalid>: > > > > Hi Will, > > > > i played a little bit with the paths and set it explicit in > > src/couch/rebar.config.script : > > > > {JS_CFLAGS, JS_LDFLAGS} = case os:type() of > > {win32, _} when SMVsn == "1.8.5" -> > > { > > "/DXP_WIN", > > "mozjs185-1.0.lib" > > }; > > {unix, _} when SMVsn == "1.8.5" -> > > { > > "-DXP_UNIX -I/usr/include/js -I/usr/local/include/js", > > "-L/usr/local/lib -lmozjs185 -lm" > > }; > > {win32, _} when SMVsn == "60" -> > > { > > "/IC:\\relax\\esr60-obj-opt-x86_64-pc-mingw32\\dist\\include > > /DXP_WIN", > > > > "/LIBPATH:\"C:\\relax\\esr60-obj-opt-x86_64-pc-mingw32\\js\\src\\build\" > > mozjs-60.lib" > > ... > > ... > > ... > > > > IcuWinEnv = [{"CFLAGS", "$DRV_CFLAGS > > /IC:\\Users\\User\\Downloads\\icu4c-60_3-src\\icu\\include /DXP_WIN"}, > > {"LDFLAGS", > > "/LIBPATH:\"C:\\Users\\User\\Downloads\\icu4c-60_3-src\\icu\\lib64\" > > icuin.lib icudt.lib icuuc.lib"}]. > > > > > > It's compiling again, but with another error when starting > ".\dev\runc.cmd" > > > > https://pastebin.com/vqzhR4Zk > > > > Cheers, Ronny > > > > Florian Beckert & Ronny Berndt GbR > > Saalstr. 3 > > 07743 Jena > > > > Tel. 03641 - 6391110 > > Fax. 03641 - 219637 > > E-Mail: p...@kioskkinder.com > > > > > > Am Do., 25. Nov. 2021 um 10:49 Uhr schrieb Will Young < > > lostnetwork...@gmail.com>: > > > > > Hi Ronny, > > > > > > If you follow its configuration here: > > > > > > > > > > https://github.com/apache/couchdb/blob/main/src/couch/rebar.config.script#L197 > > > to IcuWinEnv, it doesn't set any search paths like other OSes since it > is > > > expecting these paths to already be setup in the environment. > > > > > > From your earlier email I saw: > > > > > > ERROR: sh(cmd /q /c link.exe > priv/couch_ejson_compare/couch_ejson_compare.o > > > icuin.lib icudt.lib icuuc.lib /DLL /LIBPATH:"c:/Program > > > Files/erl9.3.3.14/lib/erl_interface-3.10.2.2/lib" ei.lib > > > /OUT:priv/couch_ejson_compare.dll) > > > > > > I'm not sure why the vcpkg setup from glazier isn't applying library > paths > > > to the environment, (dumping the env with set(?) might help identify > the > > > cause) but in IcuWinEnv you could try adding a /LIBPATH before the ICU > > > libraries with their location to get a clean build of this nif which > > > hopefully then runs.. I think order might also not be important to > window's > > > linker so an alternative is to just jam a copy of the vcpkg directories > > > into that erl_interface directory. > > > Cheers, > > > Will Young > > > > > > > > > Am Mi., 24. Nov. 2021 um 17:50 Uhr schrieb Ronny Berndt > > > <ro...@kioskkinder.com.invalid>: > > > > > > > > Hi, > > > > > > > > today I hacked manually the missing unresolved symbols for sm 60 in > and > > > > compiled the icu lib by myself. So I was able to create the > > > > couchdb v3.2.1 executable and the installer. > > > > > > > > Side note: running the tests wasn't successful! > > > > > > > > I can run .\dev\run.cmd or the installed version. If I click on > "Verify > > > > Installation" I get the following error messages, see > > > > https://pastebin.com/55kyfint > > > > > > > > Jan and I running out of the origin of the problem... > > > > > > > > Cheers, Ronny > > > > > > > > > > > > Florian Beckert & Ronny Berndt GbR > > > > Saalstr. 3 > > > > 07743 Jena > > > > > > > > Tel. 03641 - 6391110 > > > > Fax. 03641 - 219637 > > > > E-Mail: p...@kioskkinder.com > > > > > > > > > > > > Am Mi., 17. Nov. 2021 um 23:13 Uhr schrieb Will Young < > > > > lostnetwork...@gmail.com>: > > > > > > > > > Hi, > > > > > > > > > > Are you sure these PS shells are running from the glazier > > > > > bin/shell1.ps usually referred to as the same powershell in the > docs? > > > > > > > > > > Looking at the pastebin it looks like libicu is being passed to > the > > > > > windows linker in UNIX proper style so it is being ignored, so the > > > > > pkg-config setup didn't really change that all the icu symbols are > > > > > going to be missing. In the later make for couch with the copied > mozjs > > > > > binaries, it also looks like the vcpkg paths are not in the > linker's > > > > > "LIBPATH" and so it makes sense that the missing symbols are again > > > > > from libraries being added there. > > > > > > > > > > I don't think you need to add pkg-conf (or don't want to give it a > > > > > real configuration), rather glazier's bin/shell.ps1 launched by or > > > > > after the bin/install_dependencies.ps1 has all the necessary path > > > > > settings. (AFAIK windows does some dll's search voodoo so only > having > > > > > the paths is important and explicit -llibname like options simply > > > > > aren't used.) > > > > > > > > > > I've not really tried glazier and don't actually have windows > locally, > > > > > I am just using it as a guide for wsl in github actions, so my > > > > > apologies if I'm way off on how it works.. > > > > > Will Young > > > > > > > > >