Well, there is a fair bit of naming legacy involved. I tried x86_64 builds, but macros are about WIN32. But probably more nuances are possible about various WINNT numbers, WIN64 if there is such a thing, API method names per newer platform?..
On Fri, Jun 24, 2022, 07:47 Ted Mittelstaedt via Nut-upsdev < [email protected]> wrote: > Am I correct in assuming this is all Win32 code still? > > Ted > On 6/23/2022 2:52 PM, Jim Klimov via Nut-upsdev wrote: > > Hello all, > > After a hectic month in private life, as a byproduct I've got a viable > merger of last released NUT 2.6.5 based Windows-ready codebase (thanks to > the giants active a dozen years ago, on whose shoulders I stood today) and > modern 2.8.x/master, fixing the merge conflicts and build warnings. Some > details were tracked in discussion of > https://github.com/networkupstools/nut/issues/5 > > There are caveats, e.g. in a few files code was just hidden by `#ifndef > WIN32` so making it "appear" would be a future trick, and some "silly" > fallbacks for missing methods were hacked to make it build but probably are > not thread-safe etc... but at least binaries do appear and some do run > without crashing on Windows - e.g. usbhid-ups and nut-scanner did see my > test UPS. Fixes originally made for libusb-0.1 were applied to libusb1.c > too, but not tried yet. > > Builds are possible, mostly scripted and documented, see: > > * `docs/config-prereq.txt` and `ci_build.sh` for MSYS2 (includes MinGW) > natively on Windows, > * `scripts/Windows/README` and a build script nearby for using mingw > cross-building packages on Ubuntu Linux. > > Both of these produce lots of standalone usable binaries installable as a > typical NUT directory tree, which (with copies of DLLs for third-party > projects) "just work". > > The adventure starts with: > > :; git clone -b Windows-v2.8.0-1 https://github.com/networkupstools/nut > nut-win > > I really hope that the community members more interested and better versed > in the platform can pick it up from here, to discover and fix the missing > and flawed bits, make sense of the installer, etc. and eventually make this > codebase part of common NUT, multi-platform as it is. > > Sone points of interest OTOH: > * c++ and a few drivers are currently effectively "neutered" > * fcntl() code to avoid FD leaks to forked children, is it doable on > Windows? > * loading dlls from one dir, without copies near every exe (see common.c) > * automatically tracking major version number X (from client/Makefile.am) > for LTDL discovery of libupsclient-X.dll without hardcoding it > * localtime_r, gmtime_r use ugly fallbacks where unavoidable > * usb close_dev() crashes > * not all dependencies were tried, probably more build warnings are > lurking to clean up > * installer not investigated > * code mostly looks at "WIN32" macro as a big switch; there should be more > specific configure-script tests for different versions, toolkits, build > envs, IDEs... that are possible. Supported or not, WIN XP may still be a > big thing... > * clean up what `make install` does (e.g. no systemd/SMF on win) > * automate copying third-party dlls for `make install DESTDIR=...` > (recursive ldd?) > * make sure that Linux/Mac/Solaris/BSD/... builds from this branch are not > broken by that big code merge. > > On my side, curiosity is satisfied, itch scratched and bogus achievement > achieved, so I plan to rest and then do other things. Really looking > forward to you the reader to make the next iterations. > > When this codebase gets "good enough" to at least not fail to build > against more and more third-party projects, I'll look at covering this in > NUT CI so it does not regress with future evolution. This milestone is > actually already viable now, just I'm leaving for vacation :-) > > _______________________________________________ > Nut-upsdev mailing > [email protected]https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsdev > > _______________________________________________ > Nut-upsdev mailing list > [email protected] > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsdev >
_______________________________________________ Nut-upsdev mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsdev
