Hi, Latest Fedora development updates broke Wine compilation on my system. It appears that sed is now locale aware (same thing happened with perl a while ago). I have LANG=en_US.UTF-8 so, for example, the sed invocation in the shell32 makefile will interpret the AUTHORS file as UTF-8, which will produce garbage in the generated authors.c file. This patch fixes all invocations of sed I could find except configure.* and tools/configure.* and some others which are not likely to receive 8 bit characters on input. Most of those are part of autoconf IIRC and should probably be fixed upstream if they need any fixing at all. -Hans Changelog: Make sure sed uses the right locale.
Index: dlls/shell32/Makefile.in =================================================================== RCS file: /home/wine/wine/dlls/shell32/Makefile.in,v retrieving revision 1.75 diff -u -r1.75 Makefile.in --- dlls/shell32/Makefile.in 19 Nov 2003 02:35:31 -0000 1.75 +++ dlls/shell32/Makefile.in 6 Jan 2004 13:53:21 -0000 @@ -75,7 +75,7 @@ $(WINEBUILD) $(DEFS) $(DLLFLAGS) -o $@ --main-module $(MODULE) --res version16.res --spec $(SRCDIR)/shell.spec authors.c: $(TOPSRCDIR)/AUTHORS - (echo 'const char * const SHELL_Authors[] = {' && \ + (LANG=C; echo 'const char * const SHELL_Authors[] = {' && \ sed -e '1,2d' -e 's/\(.*\)/ \"\1\",/' $(TOPSRCDIR)/AUTHORS && \ echo ' 0 };') >$@ || ($(RM) $@ && false) Index: documentation/Makefile.in =================================================================== RCS file: /home/wine/wine/documentation/Makefile.in,v retrieving revision 1.41 diff -u -r1.41 Makefile.in --- documentation/Makefile.in 14 Oct 2003 20:21:05 -0000 1.41 +++ documentation/Makefile.in 6 Jan 2004 13:53:48 -0000 @@ -90,7 +90,7 @@ winelib-user.pdf winelib-user.ps winelib-user.html winelib-user.txt: $(WINELIB_USER_SRCS) wine.man: wine.man.in - sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' $(SRCDIR)/wine.man.in >$@ || ($(RM) $@ && false) + LANG=C; sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' $(SRCDIR)/wine.man.in >$@ || ($(RM) $@ && false) # Rules for distribution tarballs of formatted docs Index: programs/Makefile.in =================================================================== RCS file: /home/wine/wine/programs/Makefile.in,v retrieving revision 1.42 diff -u -r1.42 Makefile.in --- programs/Makefile.in 4 Dec 2003 02:01:40 -0000 1.42 +++ programs/Makefile.in 6 Jan 2004 13:54:03 -0000 @@ -116,10 +116,10 @@ all: wineapploader winelauncher $(SUBDIRS) $(SYMLINKS:%=%$(DLLEXT)) wineapploader: wineapploader.in - sed -e 's,@bindir\@,$(bindir),g' $(SRCDIR)/wineapploader.in >$@ || ($(RM) $@ && false) + LANG=C; sed -e 's,@bindir\@,$(bindir),g' $(SRCDIR)/wineapploader.in >$@ || ($(RM) $@ && false) winelauncher: winelauncher.in - sed -e 's,@bindir\@,$(bindir),g' -e 's,@libdir\@,$(libdir),g' -e 's,@dlldir\@,$(dlldir),g' $(SRCDIR)/winelauncher.in >$@ || ($(RM) $@ && false) + LANG=C; sed -e 's,@bindir\@,$(bindir),g' -e 's,@libdir\@,$(libdir),g' -e 's,@dlldir\@,$(dlldir),g' $(SRCDIR)/winelauncher.in >$@ || ($(RM) $@ && false) # Rules for installation Index: programs/make_progs =================================================================== RCS file: /home/wine/wine/programs/make_progs,v retrieving revision 1.1 diff -u -r1.1 make_progs --- programs/make_progs 30 Nov 2003 06:18:43 -0000 1.1 +++ programs/make_progs 6 Jan 2004 13:54:19 -0000 @@ -147,10 +147,10 @@ all: wineapploader winelauncher \$(SUBDIRS) \$(SYMLINKS:%=%\$(DLLEXT)) wineapploader: wineapploader.in - sed -e 's,\@bindir\\\@,\$(bindir),g' \$(SRCDIR)/wineapploader.in >\$\@ || (\$(RM) \$\@ && false) + LANG=C; sed -e 's,\@bindir\\\@,\$(bindir),g' \$(SRCDIR)/wineapploader.in >\$\@ || (\$(RM) \$\@ && false) winelauncher: winelauncher.in - sed -e 's,\@bindir\\\@,\$(bindir),g' -e 's,\@libdir\\\@,\$(libdir),g' -e 's,\@dlldir\\\@,\$(dlldir),g' \$(SRCDIR)/winelauncher.in >\$\@ || (\$(RM) \$\@ && false) + LANG=C; sed -e 's,\@bindir\\\@,\$(bindir),g' -e 's,\@libdir\\\@,\$(libdir),g' -e 's,\@dlldir\\\@,\$(dlldir),g' \$(SRCDIR)/winelauncher.in >\$\@ || (\$(RM) \$\@ && false) # Rules for installation Index: tools/winebuild/Makefile.in =================================================================== RCS file: /home/wine/wine/tools/winebuild/Makefile.in,v retrieving revision 1.17 diff -u -r1.17 Makefile.in --- tools/winebuild/Makefile.in 23 Jun 2003 19:51:21 -0000 1.17 +++ tools/winebuild/Makefile.in 6 Jan 2004 13:55:13 -0000 @@ -26,7 +26,7 @@ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBPORT) $(LDFLAGS) winebuild.man: winebuild.man.in - sed -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' $(SRCDIR)/winebuild.man.in >$@ || ($(RM) $@ && false) + LANG=C; sed -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' $(SRCDIR)/winebuild.man.in >$@ || ($(RM) $@ && false) install:: $(PROGRAMS) winebuild.man $(MKINSTALLDIRS) $(bindir) $(mandir)/man$(prog_manext)