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
> > > > >
> > >
>

Reply via email to