Hi On Thu, 17 Jul 2025 at 09:01, Nazir Bilal Yavuz <byavu...@gmail.com> wrote:
> Hi, > > On Thu, 10 Jul 2025 at 07:34, Thomas Munro <thomas.mu...@gmail.com> wrote: > > > > On Thu, Jul 10, 2025 at 3:45 PM Thomas Munro <thomas.mu...@gmail.com> > wrote: > > > [03:28:24.318] Program msgfmt found: NO > > > > Correction, that ^ is the reason it's not reached on the MSVC task, > > while -Dnls=disabled is the reason for the MinGW task. But the > > conclusion is the same: MinGW is the easiest way to test this code > > on CI, if you're hacking on it. > > > > Given that the build farm also doesn't test Windows + NLS, it's a > > small miracle that it even compiles. Hmm, I guess that the EDB > > installer build must have it enabled, so I suppose they'd tell us if > > we broke it. I guess that because sometimes we see reports of > > encoded-garbled error messages in other languages on the lists, which > > also tells us that it might have bugs in that department. What I > > don't recall is whether they looked like the > > "some-contexts-have-no-defined-encoding" problem (that exists on Unix > > too but no one cares anymore since we all switched everything to UTF-8 > > ages ago), or something else... > > I spent some time on enabling NLS on MSVC: > > x86: > > * x86 files are available here [1]. I downloaded 'Complete package, > except sources' from this page, installed it and set related bin_dir, > extra_include_dirst and extra_lib_dirs. Then I was able to compile > Postgres with nls being enabled. I did not run tests as it was taking > too much time on the Windows VM instance (not CI instance, regular > Google Cloud VM created by using our Windows CI images). > > x64: > > * I downloaded Dave Page's Windows gettext artifact from [2]. I am > able to configure Postgres with nls being enabled but then compilation > failed with: > ``` > [349/2500] Building translation > src/interfaces/libpq/po/cs/LC_MESSAGES/libpq5-19-cs.mo > FAILED: src/interfaces/libpq/po/cs/LC_MESSAGES/libpq5-19.mo > "C:\Users\byavuz81\Downloads\gettext-0.25-win64\bin\msgfmt.EXE" "-o" > "src/interfaces/libpq/po/cs/LC_MESSAGES/libpq5-19.mo" > "../src/interfaces/libpq/po/cs.po" > C:\Users\byavuz81\Downloads\gettext-0.25-win64\bin\msgfmt.EXE: iconv > failure: No error > [354/2500] Compiling C object > src/interfaces/libpq/libpq.dll.p/fe-auth-oauth.c.obj > That build of gettext seems to work fine with the PostgreSQL builds in the winpgbuild repo, so there must be something different in your environment. I do remember spending some time trying to resolve the "iconv failure: No error" message myself though, but unfortunately I was just messing around in the GitHub editor trying to get it to work for giggles at the time with a bunch of trial and error builds with no useful commit messages so couldn't tell you what the issue was now :-/ I do also recall that gettext was the component that took me by far the longest to get working on that project. -- Dave Page pgAdmin: https://www.pgadmin.org PostgreSQL: https://www.postgresql.org pgEdge: https://www.pgedge.com