Here's a patch to import the md5 module from gnulib into Emacs. I haven't committed this yet, as I would like to test it more, but thought I'd give a heads-up. For Windows, I expect the hand-generated makefiles will need to be changed to compile lib/md5.c instead of src/md5.c, since the file was moved. The patch that I wrote is below. I'm attaching the full patch (including automatically generated changes), as a compressed file. Import crypto/md5 module from gnulib. * Makefile.in (MAKEFILE_MODULES): Add crypto/md5. * admin/notes/copyright: Remove src/md5.c and src/md5.h as special cases. * src/Makefile.in (base_obj): Remove md5.o, since this file is in lib now. * src/deps.mk (md5.o): Remove. * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4: Regenerate. * lib/md5.c: Regenerate. This renames the file from src/md5.c, and adds some porting improvements from gnulib. * lib/md5.h: Regenerate, likwise; rename from src/md5.h. * m4/md5.m4: New file, from gnulib. === modified file 'Makefile.in' --- Makefile.in 2011-02-16 01:35:20 +0000 +++ Makefile.in 2011-02-18 07:45:14 +0000 @@ -330,7 +330,8 @@ # Update modules from gnulib, for maintainers, who should have it in # $(gnulib_srcdir) (relative to $(srcdir) and should have build tools # as per $(gnulib_srcdir)/DEPENDENCIES. -GNULIB_MODULES = dtoastr getloadavg getopt-gnu ignore-value mktime strftime +GNULIB_MODULES = \ + crypto/md5 dtoastr getloadavg getopt-gnu ignore-value mktime strftime GNULIB_TOOL_FLAGS = \ --import --no-changelog --no-vc-files --makefile-name=gnulib.mk sync-from-gnulib: $(gnulib_srcdir) === modified file 'admin/notes/copyright' --- admin/notes/copyright 2011-02-16 01:35:20 +0000 +++ admin/notes/copyright 2011-02-18 07:45:14 +0000 @@ -632,8 +632,6 @@ lib/*.[ch] lib/gnulib.mk src/gmalloc.c - src/md5.c - src/md5.h src/termcap.c src/tparam.c === modified file 'src/Makefile.in' --- src/Makefile.in 2011-02-10 03:20:52 +0000 +++ src/Makefile.in 2011-02-18 07:45:14 +0000 @@ -354,7 +354,7 @@ syntax.o $(UNEXEC_OBJ) bytecode.o \ process.o gnutls.o callproc.o \ region-cache.o sound.o atimer.o \ - doprnt.o intervals.o textprop.o composite.o md5.o xml.o \ + doprnt.o intervals.o textprop.o composite.o xml.o \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) obj = $(base_obj) $(NS_OBJC_OBJ) === modified file 'src/deps.mk' --- src/deps.mk 2011-02-16 01:35:20 +0000 +++ src/deps.mk 2011-02-18 07:45:14 +0000 @@ -144,7 +144,6 @@ ralloc.o: ralloc.c lisp.h $(config_h) vm-limit.o: vm-limit.c mem-limits.h lisp.h globals.h $(config_h) marker.o: marker.c buffer.h character.h lisp.h globals.h $(config_h) -md5.o: md5.c md5.h $(config_h) minibuf.o: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \ buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h \ termhooks.h lisp.h globals.h $(config_h) coding.h