Hey,

Thanks for this! I haven't had time yet to look closely. I'll throw out a
few sentences to maybe start a convo:

I think this is the third or fourth windows port. Usually they come out,
run for a few versions, then the maintainer gets distracted and it stops.

Often the patches are huge/unwieldy or simply replace code so it won't run
on anything _but_ windows.

In that spirit, do you have any interest in finding what code can be
upstreamed to either minimize the size of the fork to something managable
longer term, or at least fiddle in that direction?

My thought would be (though again I haven't at all looked at what
you've done) is to break down the changes into small chunks to be
individually reviewed and upstreamed so that the fork simply shrinks with
time. There should be some changes that're easier than others to upstream.

thanks,
-Dormando

On Sat, 4 Apr 2020, Jefty Negapatan wrote:

> Hello Memcached community!
> Just an update:
>
> Again, the unsupported options/features (may support in the future):
>
>  1. sasl (Upstream support since v1.4.3)
>  2. extstore (Upstream support since v1.5.4) Now supported! All tests passed!
>  3. -u/user (Better use Windows runas command, Windows explorer's Run as 
> different user context
>     menu, or other Windows built-in tools)
>  4. -s/unix-socket
>  5. -k/lock-memory
>  6. -r/coredumps
>  7. seccomp
>
> Build/Tests/Artifacts: https://ci.appveyor.com/project/jefty/memcached-windows
>
> Alternative Downloads: 
> https://bintray.com/jefty/generic/memcached-windows/_latestVersion
>
> Regards,
> Jefty
>
> On Tuesday, March 31, 2020 at 9:35:47 PM UTC+2, Jefty Negapatan wrote:
>
>       Hello Memcached community!
>
>
>       Just an update (v1.6.3):
>
>
>       Unsupported/Disabled options/features (may support in the future):
>
>       tls (Upstream support since v1.5.13) Now supported! Built and tested 
> with latest OpenSSL
>       (1.1.1d). Built and tested with latest BoringSSL (chromium-stable). 
> BoringSSL reduced
>       the statically-linked executable size by ~34% (Win64 2.94MB -> 1.94MB). 
> BoringSSL
>       already rejects peer renegotiations by default so the unsupported 
> OpenSSL-only
>       SSL_in_before API used in memcached is no longer necessary. I just 
> disabled it using
>       OPENSSL_IS_BORINGSSL macro.
>
>       Testing:
>
>       NOTE: Since Perl-based test suite is not executed, test is lacking on 
> some areas. Use at
>       your own risk! Perl-based test suite is now ported and it was able to 
> detect issues and
>       I already fixed! Majority of the test suite change is only disabling 
> the unsupported
>       unix socket connection but no changes in test cases/scenarios. All 
> tests PASSED! This
>       will now give Windows users the confidence to use the native Windows 
> port.
>
>       GitHub Release: 
> https://github.com/jefyt/memcached-windows/releases/tag/1.6.3_mingw
>
>       Build/Test/Artifacts:
>       https://ci.appveyor.com/project/jefty/memcached-windows/builds/31859470
>
>       Again, the unsupported options/features (may support in the future):
>
>        1. sasl (Upstream support since v1.4.3)
>        2. extstore (Upstream support since v1.5.4)
>        3. -u/user (Can use Windows runas command or Windows explorer's Run as 
> different user
>           context menu)
>        4. -s/unix-socket
>        5. -k/lock-memory
>        6. -r/coredumps
>        7. seccomp
>
>
>       Regards,
> Jefty
>
> On Friday, March 27, 2020 at 10:25:05 PM UTC+1, Jefty Negapatan wrote:
>       Hello Memcached community!
> Just an update:
>
> Unsupported/Disabled options/features (may support in the future):
>  1. tls (Upstream support since v1.5.13) Now supported! Built and tested with 
> latest
>     OpenSSL (1.1.1d).
> Just like cURL and Google Chrome for Windows, TLS library is statically 
> linked.
> Statically-linked exe size: 327KB -> 3,008KB
>
> Regards,
> Jefty
>
> On Tuesday, March 24, 2020 at 11:26:13 PM UTC+1, Jefty Negapatan wrote:
>       Hello Memcached community!
>
> Just wanna share that I've ported the latest memcached (1.6.2) to Windows. 
> Based
> on my search if I'm not mistaken, the last native Windows build (not via
> Cygwin/WSL) is already outdated (1.4.5).
>
> Unsupported/Disabled options/features (may support in the future):
>  1. sasl (Upstream support since v1.4.3)
>  2. extstore (Upstream support since v1.5.4)
>  3. tls (Upstream support since v1.5.13)
>  4. -u/user (Can use Windows runas command or Windows explorer's Run as 
> different
>     user context menu)
>  5. -s/unix-socket (Windows does not currently support Unix domain socket)
>  6. -k/lock-memory (Windows does not currently support locking of all paged
>     memory)
>  7. -r/coredumps (mingw-w64 currently doesn't support postmortem but gdb 
> debugging
>     without coredump is possible)
>  8. seccomp (Linux-specific)
>
> Testing:
>  1. memcached's testapp is also ported to easily verify that the port is 
> working
>     as expected (all 57 tests are OK)
>  2. make test will only execute testapp.exe and sizes.exe but not the 
> Perl-based
>     test suite (at least currently)
>  3. mc-crusher test is also performed (although not really for hours/days).
>  4. Maximum connection limit concurrency testing is also performed using
>     libMemcached's memcslap.
>  5. NOTE: Since Perl-based test suite is not executed, test is lacking on some
>     areas. Use at your own risk!
>
> Since the ideal target is to be merged upstream although not really a 
> priority and
> just depends on the maintainer, the codes are carefully written (and of course
> tested!) not to cause major merge conflicts with the base code. You can 
> confirm
> this with the diffs. Building with changes for non-Windows target is just like
> building the original codes as changes are all protected with preprocessor 
> macros
> (e.g. DISABLE_UNIX_SOCKET) and build env. Main logic is same as the official
> except for the necessary Windows-specific changes mostly implemented in 
> separate
> files (see mingw folder).
> https://github.com/jefyt/memcached-windows#implementation-notes-for-devs 
> contains
> the summary of changes.
>
> Just refer to https://github.com/jefyt/memcached-windows (mingw branch) for 
> more
> details (e.g. building, binaries, notes).
>
> If you know anyone asking for Windows binaries or just interested to 
> try/test/take
> a look, you can refer to this port.
>
> Thanks!
>
> Regards,
> Jefty
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups 
> "memcached" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to
> memcached+unsubscr...@googlegroups.com.
> To view this discussion on the web 
> visithttps://groups.google.com/d/msgid/memcached/32ae9fed-3165-4ce4-b5d2-7e5c2f7ecae8%40googlegroups.com
> .
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"memcached" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to memcached+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/memcached/alpine.DEB.2.21.2004041510540.14551%40dskull.

Reply via email to