You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(56) |
Sep
(40) |
Oct
(30) |
Nov
(144) |
Dec
(23) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(41) |
Feb
(29) |
Mar
(31) |
Apr
(39) |
May
(193) |
Jun
(45) |
Jul
(19) |
Aug
(3) |
Sep
(23) |
Oct
(83) |
Nov
(92) |
Dec
(123) |
2007 |
Jan
(90) |
Feb
(267) |
Mar
(120) |
Apr
(51) |
May
(40) |
Jun
(121) |
Jul
(109) |
Aug
(173) |
Sep
(77) |
Oct
(52) |
Nov
(121) |
Dec
(62) |
2008 |
Jan
(76) |
Feb
(53) |
Mar
(98) |
Apr
(87) |
May
(26) |
Jun
(27) |
Jul
(23) |
Aug
(136) |
Sep
(79) |
Oct
(68) |
Nov
(29) |
Dec
(14) |
2009 |
Jan
(7) |
Feb
(2) |
Mar
(11) |
Apr
(75) |
May
(1) |
Jun
(95) |
Jul
(19) |
Aug
(4) |
Sep
(8) |
Oct
(93) |
Nov
(43) |
Dec
(21) |
2010 |
Jan
(20) |
Feb
(23) |
Mar
(18) |
Apr
(6) |
May
(20) |
Jun
(23) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
(2) |
Feb
(6) |
Mar
(15) |
Apr
(5) |
May
(9) |
Jun
(14) |
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(2) |
Jun
(17) |
Jul
(37) |
Aug
|
Sep
(1) |
Oct
(6) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(5) |
Apr
(2) |
May
(7) |
Jun
(11) |
Jul
(8) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(7) |
Aug
(2) |
Sep
|
Oct
(5) |
Nov
(2) |
Dec
(4) |
2015 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(9) |
Jul
(1) |
Aug
|
Sep
|
Oct
(4) |
Nov
(1) |
Dec
|
2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
(3) |
Mar
(3) |
Apr
(7) |
May
(2) |
Jun
(2) |
Jul
(5) |
Aug
(1) |
Sep
(2) |
Oct
(17) |
Nov
(4) |
Dec
(7) |
2018 |
Jan
(5) |
Feb
(14) |
Mar
(2) |
Apr
(5) |
May
(2) |
Jun
(5) |
Jul
|
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(5) |
Dec
|
2019 |
Jan
(4) |
Feb
(2) |
Mar
(3) |
Apr
(1) |
May
(8) |
Jun
(14) |
Jul
(2) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(15) |
Dec
(2) |
2020 |
Jan
(10) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(9) |
Jun
(4) |
Jul
(16) |
Aug
(10) |
Sep
(4) |
Oct
(3) |
Nov
|
Dec
|
2021 |
Jan
(11) |
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
|
Oct
(6) |
Nov
(4) |
Dec
(4) |
2022 |
Jan
(4) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(6) |
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(5) |
Jun
(1) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(13) |
Dec
|
2024 |
Jan
(1) |
Feb
|
Mar
(5) |
Apr
|
May
(10) |
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
(14) |
2025 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
(2) |
Oct
(2) |
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1
(18) |
2
(13) |
3
(7) |
4
(2) |
5
|
6
|
7
(3) |
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
|
|
|
|
|
From: Wesley T. <we...@ml...> - 2009-11-07 13:32:37
|
Lines that are too long generate a lintian warning. ---------------------------------------------------------------------- U mlton/trunk/package/debian/changelog ---------------------------------------------------------------------- Modified: mlton/trunk/package/debian/changelog =================================================================== --- mlton/trunk/package/debian/changelog 2009-11-07 16:32:06 UTC (rev 7365) +++ mlton/trunk/package/debian/changelog 2009-11-07 21:32:35 UTC (rev 7366) @@ -2,7 +2,7 @@ * gcc-4.4 miscompiles more than just fpclassify. It is unusable. * gcc-4.1 ICEs so also not an option. - * => on mips we must use gcc-4.3, despite an off-by-one bug in branch generation + * => use gcc-4.3, despite an off-by-one bug in mips branch generation * Using -fPIC to compile changes the assembler enough to get past #552341 -- Wesley W. Terpstra (Debian) <ter...@de...> Sat, 07 Nov 2009 17:26:11 +0100 |
From: Wesley T. <we...@ml...> - 2009-11-07 08:32:07
|
Try another build to solve the mips issue. ---------------------------------------------------------------------- U mlton/trunk/package/debian/changelog U mlton/trunk/package/debian/control A mlton/trunk/package/debian/patches/00-fpic-on-mips.patch D mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch U mlton/trunk/package/debian/rules ---------------------------------------------------------------------- Modified: mlton/trunk/package/debian/changelog =================================================================== --- mlton/trunk/package/debian/changelog 2009-11-07 16:24:24 UTC (rev 7364) +++ mlton/trunk/package/debian/changelog 2009-11-07 16:32:06 UTC (rev 7365) @@ -1,3 +1,12 @@ +mlton (20091107) unstable; urgency=low + + * gcc-4.4 miscompiles more than just fpclassify. It is unusable. + * gcc-4.1 ICEs so also not an option. + * => on mips we must use gcc-4.3, despite an off-by-one bug in branch generation + * Using -fPIC to compile changes the assembler enough to get past #552341 + + -- Wesley W. Terpstra (Debian) <ter...@de...> Sat, 07 Nov 2009 17:26:11 +0100 + mlton (20091104) unstable; urgency=low * Two more regressions disabled on hurd (thread2 and world5) Modified: mlton/trunk/package/debian/control =================================================================== --- mlton/trunk/package/debian/control 2009-11-07 16:24:24 UTC (rev 7364) +++ mlton/trunk/package/debian/control 2009-11-07 16:32:06 UTC (rev 7365) @@ -2,12 +2,12 @@ Section: devel Priority: optional Maintainer: Wesley W. Terpstra (Debian) <ter...@de...> -Build-Depends: mlton (>= 20070826), gcc-4.4 [mips mipsel], htmldoc, libgmp3-dev (>= 4.0.1), texlive-latex-base, procps, debhelper (>= 7.0.0), cdbs (>= 0.4.52) +Build-Depends: mlton (>= 20070826), htmldoc, libgmp3-dev (>= 4.0.1), texlive-latex-base, procps, debhelper (>= 7.0.0), cdbs (>= 0.4.52) Standards-Version: 3.8.3.0 Package: mlton Architecture: alpha amd64 hppa hurd-i386 i386 ia64 kfreebsd-i386 kfreebsd-amd64 mips mipsel powerpc s390 sparc -Depends: ${shlibs:Depends}, ${misc:Depends}, gcc, gcc-4.4 [mips mipsel], libc6-dev, libgmp3-dev (>= 4.0.1) +Depends: ${shlibs:Depends}, ${misc:Depends}, gcc, libc6-dev, libgmp3-dev (>= 4.0.1) Homepage: http://mlton.org/ Description: Optimizing compiler for Standard ML MLton is a whole-program optimizing compiler Added: mlton/trunk/package/debian/patches/00-fpic-on-mips.patch =================================================================== --- mlton/trunk/package/debian/patches/00-fpic-on-mips.patch 2009-11-07 16:24:24 UTC (rev 7364) +++ mlton/trunk/package/debian/patches/00-fpic-on-mips.patch 2009-11-07 16:32:06 UTC (rev 7365) @@ -0,0 +1,25 @@ +diff -Nur -x '*.orig' -x '*~' mlton/bin/mlton-script mlton.new/bin/mlton-script +--- mlton/bin/mlton-script 2009-11-07 17:29:05.000000000 +0100 ++++ mlton.new/bin/mlton-script 2009-11-07 17:31:43.000000000 +0100 +@@ -115,6 +115,7 @@ + -target-cc-opt openbsd '-I/usr/local/include' \ + -target-cc-opt aix '-maix64' \ + -target-cc-opt ia64 "$ia64hpux -mtune=itanium2" \ ++ -target-cc-opt mips '-fPIC' \ + -target-cc-opt sparc '-m32 -mcpu=v8 -Wa,-xarch=v8plusa' \ + -target-cc-opt x86 \ + '-m32 +diff -Nur -x '*.orig' -x '*~' mlton/runtime/Makefile mlton.new/runtime/Makefile +--- mlton/runtime/Makefile 2009-11-01 18:36:04.000000000 +0100 ++++ mlton.new/runtime/Makefile 2009-11-07 17:31:14.000000000 +0100 +@@ -84,6 +84,10 @@ + AR := ar -X 64 rc + endif + ++ifeq ($(TARGET_ARCH), mips) ++FLAGS += -fPIC ++endif ++ + ifeq ($(TARGET_ARCH), sparc) + FLAGS += -m32 -mcpu=v8 -Wa,-xarch=v8plusa + endif Deleted: mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch =================================================================== --- mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch 2009-11-07 16:24:24 UTC (rev 7364) +++ mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch 2009-11-07 16:32:06 UTC (rev 7365) @@ -1,19 +0,0 @@ -diff -Nur -x '*.orig' -x '*~' mlton/bin/mlton-script mlton.new/bin/mlton-script ---- mlton/bin/mlton-script 2009-11-01 18:37:00.000000000 +0100 -+++ mlton.new/bin/mlton-script 2009-11-01 18:45:26.000000000 +0100 -@@ -7,7 +7,14 @@ - dir=`dirname "$0"` - lib=`cd "$dir/../lib" && pwd` - eval `"$lib/platform"` --gcc='gcc' -+case "$HOST_ARCH" in -+mips*) -+ gcc='gcc-4.4' -+;; -+*) -+ gcc='gcc' -+;; -+esac - case "$HOST_OS" in - mingw) - exe='.exe' Modified: mlton/trunk/package/debian/rules =================================================================== --- mlton/trunk/package/debian/rules 2009-11-07 16:24:24 UTC (rev 7364) +++ mlton/trunk/package/debian/rules 2009-11-07 16:32:06 UTC (rev 7365) @@ -6,14 +6,8 @@ HEAPSIZE := $(shell . debian/heap-size) -ifeq (,$(findstring mips, $(DEB_HOST_ARCH_CPU))) -CC := gcc -else -CC := gcc-4.4 -endif - # MLton compiles optimized, debug, and pic versions on its own. -DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) make -C $(DEB_BUILDDIR) CC="$(CC) -std=gnu99" +DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) make -C $(DEB_BUILDDIR) # The MLton guide is html. Don't compress example .sml files. DEB_COMPRESS_EXCLUDE = mlton/guide .sml |
From: Wesley T. <we...@ml...> - 2009-11-07 08:24:26
|
This mips special case isn't needed for gcc4.3 and gcc4.4 miscompiles more code than just this. Therefore disabling fpclassify doesn't help that much. ---------------------------------------------------------------------- U mlton/trunk/runtime/platform/linux.h ---------------------------------------------------------------------- Modified: mlton/trunk/runtime/platform/linux.h =================================================================== --- mlton/trunk/runtime/platform/linux.h 2009-11-04 15:27:22 UTC (rev 7363) +++ mlton/trunk/runtime/platform/linux.h 2009-11-07 16:24:24 UTC (rev 7364) @@ -36,11 +36,7 @@ #else #define HAS_FEROUND TRUE #endif -#if defined(__mips__) -#define HAS_FPCLASSIFY FALSE -#else #define HAS_FPCLASSIFY TRUE -#endif #define HAS_MSG_DONTWAIT TRUE #define HAS_REMAP TRUE #define HAS_SIGALTSTACK TRUE |
From: Wesley T. <we...@ml...> - 2009-11-04 07:27:29
|
Disable fpclassify on mips ---------------------------------------------------------------------- U mlton/trunk/package/debian/changelog U mlton/trunk/package/debian/control D mlton/trunk/package/debian/patches/00-gcc-4.1-mips.patch A mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch U mlton/trunk/package/debian/rules U mlton/trunk/runtime/platform/linux.h ---------------------------------------------------------------------- Modified: mlton/trunk/package/debian/changelog =================================================================== --- mlton/trunk/package/debian/changelog 2009-11-04 11:04:01 UTC (rev 7362) +++ mlton/trunk/package/debian/changelog 2009-11-04 15:27:22 UTC (rev 7363) @@ -1,3 +1,12 @@ +mlton (20091104) unstable; urgency=low + + * Two more regressions disabled on hurd (thread2 and world5) + * Switch mips back to gcc-4.4 + * Found the cause of the segfault: fpclassify is broken on mips + * Disable its on linux/mips and use the MLton IEEE work-around code + + -- Wesley W. Terpstra (Debian) <ter...@de...> Wed, 04 Nov 2009 12:04:36 +0100 + mlton (20091101) unstable; urgency=low * The mips saga continues Modified: mlton/trunk/package/debian/control =================================================================== --- mlton/trunk/package/debian/control 2009-11-04 11:04:01 UTC (rev 7362) +++ mlton/trunk/package/debian/control 2009-11-04 15:27:22 UTC (rev 7363) @@ -2,12 +2,12 @@ Section: devel Priority: optional Maintainer: Wesley W. Terpstra (Debian) <ter...@de...> -Build-Depends: mlton (>= 20070826), gcc-4.1 [mips mipsel], htmldoc, libgmp3-dev (>= 4.0.1), texlive-latex-base, procps, debhelper (>= 7.0.0), cdbs (>= 0.4.52) +Build-Depends: mlton (>= 20070826), gcc-4.4 [mips mipsel], htmldoc, libgmp3-dev (>= 4.0.1), texlive-latex-base, procps, debhelper (>= 7.0.0), cdbs (>= 0.4.52) Standards-Version: 3.8.3.0 Package: mlton Architecture: alpha amd64 hppa hurd-i386 i386 ia64 kfreebsd-i386 kfreebsd-amd64 mips mipsel powerpc s390 sparc -Depends: ${shlibs:Depends}, ${misc:Depends}, gcc, gcc-4.1 [mips mipsel], libc6-dev, libgmp3-dev (>= 4.0.1) +Depends: ${shlibs:Depends}, ${misc:Depends}, gcc, gcc-4.4 [mips mipsel], libc6-dev, libgmp3-dev (>= 4.0.1) Homepage: http://mlton.org/ Description: Optimizing compiler for Standard ML MLton is a whole-program optimizing compiler Deleted: mlton/trunk/package/debian/patches/00-gcc-4.1-mips.patch =================================================================== --- mlton/trunk/package/debian/patches/00-gcc-4.1-mips.patch 2009-11-04 11:04:01 UTC (rev 7362) +++ mlton/trunk/package/debian/patches/00-gcc-4.1-mips.patch 2009-11-04 15:27:22 UTC (rev 7363) @@ -1,19 +0,0 @@ -diff -Nur -x '*.orig' -x '*~' mlton/bin/mlton-script mlton.new/bin/mlton-script ---- mlton/bin/mlton-script 2009-11-01 18:37:00.000000000 +0100 -+++ mlton.new/bin/mlton-script 2009-11-01 18:45:26.000000000 +0100 -@@ -7,7 +7,14 @@ - dir=`dirname "$0"` - lib=`cd "$dir/../lib" && pwd` - eval `"$lib/platform"` --gcc='gcc' -+case "$HOST_ARCH" in -+mips*) -+ gcc='gcc-4.1' -+;; -+*) -+ gcc='gcc' -+;; -+esac - case "$HOST_OS" in - mingw) - exe='.exe' Added: mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch =================================================================== --- mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch 2009-11-04 11:04:01 UTC (rev 7362) +++ mlton/trunk/package/debian/patches/00-gcc-4.4-mips.patch 2009-11-04 15:27:22 UTC (rev 7363) @@ -0,0 +1,19 @@ +diff -Nur -x '*.orig' -x '*~' mlton/bin/mlton-script mlton.new/bin/mlton-script +--- mlton/bin/mlton-script 2009-11-01 18:37:00.000000000 +0100 ++++ mlton.new/bin/mlton-script 2009-11-01 18:45:26.000000000 +0100 +@@ -7,7 +7,14 @@ + dir=`dirname "$0"` + lib=`cd "$dir/../lib" && pwd` + eval `"$lib/platform"` +-gcc='gcc' ++case "$HOST_ARCH" in ++mips*) ++ gcc='gcc-4.4' ++;; ++*) ++ gcc='gcc' ++;; ++esac + case "$HOST_OS" in + mingw) + exe='.exe' Modified: mlton/trunk/package/debian/rules =================================================================== --- mlton/trunk/package/debian/rules 2009-11-04 11:04:01 UTC (rev 7362) +++ mlton/trunk/package/debian/rules 2009-11-04 15:27:22 UTC (rev 7363) @@ -9,7 +9,7 @@ ifeq (,$(findstring mips, $(DEB_HOST_ARCH_CPU))) CC := gcc else -CC := gcc-4.1 +CC := gcc-4.4 endif # MLton compiles optimized, debug, and pic versions on its own. Modified: mlton/trunk/runtime/platform/linux.h =================================================================== --- mlton/trunk/runtime/platform/linux.h 2009-11-04 11:04:01 UTC (rev 7362) +++ mlton/trunk/runtime/platform/linux.h 2009-11-04 15:27:22 UTC (rev 7363) @@ -36,7 +36,11 @@ #else #define HAS_FEROUND TRUE #endif +#if defined(__mips__) +#define HAS_FPCLASSIFY FALSE +#else #define HAS_FPCLASSIFY TRUE +#endif #define HAS_MSG_DONTWAIT TRUE #define HAS_REMAP TRUE #define HAS_SIGALTSTACK TRUE |
From: Wesley T. <we...@ml...> - 2009-11-04 03:04:04
|
These two regressions also hang on hurd due to the sigaction bug. ---------------------------------------------------------------------- U mlton/trunk/bin/regression ---------------------------------------------------------------------- Modified: mlton/trunk/bin/regression =================================================================== --- mlton/trunk/bin/regression 2009-11-03 14:39:47 UTC (rev 7361) +++ mlton/trunk/bin/regression 2009-11-04 11:04:01 UTC (rev 7362) @@ -159,7 +159,7 @@ hurd) # Work-around hurd bug (http://bugs.debian.org/551470) case "$f" in - mutex|prodcons|signals|signals2|suspend|timeout) + mutex|prodcons|signals|signals2|suspend|thread2|timeout|world5) continue ;; esac |
From: Wesley T. <we...@ml...> - 2009-11-03 06:39:48
|
Keep the temporary msi files in an easy to clean location. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-03 14:24:40 UTC (rev 7360) +++ mlton/trunk/package/mingw/Makefile 2009-11-03 14:39:47 UTC (rev 7361) @@ -18,19 +18,20 @@ MLton-$(VERSION).exe: 7zS.sfx MLton.conf data.7z cat $^ > $@ -data.7z: staging/MLton-$(VERSION).msi +data.7z: 7z/MLton-$(VERSION).msi rm -f $@ - cd staging; 7z a ../$@ -mx9 -mmt $(<F) + cd 7z; 7z a ../$@ -mx9 -mmt $(<F) .INTERMEDIATE: MLton.msi -staging/MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) +7z/MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) + mkdir -p $(@D) light -dcl:none -cultures:en-us -ext WixUIExtension -out $@ $^ MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -dcl:high -cultures:en-us -ext WixUIExtension -out $@ $^ .PHONY: clean distclean clean: - rm -rf staging MLton.msi data.7z *.wixpdb *.wixobj *.wxs + rm -rf staging 7z MLton.conf data.7z *.wixpdb *.wixobj *.wxs rm -f guid.exe files2cmp.exe dirs2wix.exe files2wix.exe rm -f $(PKG_LST) distclean: clean |
From: Wesley T. <we...@ml...> - 2009-11-03 06:24:41
|
We need to change the config file to reference the consistent msi name. ---------------------------------------------------------------------- D mlton/trunk/package/mingw/MLton.conf A mlton/trunk/package/mingw/MLton.conf.in U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Deleted: mlton/trunk/package/mingw/MLton.conf =================================================================== --- mlton/trunk/package/mingw/MLton.conf 2009-11-03 13:56:11 UTC (rev 7359) +++ mlton/trunk/package/mingw/MLton.conf 2009-11-03 14:24:40 UTC (rev 7360) @@ -1,3 +0,0 @@ -;!@Install@!UTF-8! -ExecuteFile="MLton.msi" -;!@InstallEnd@! Copied: mlton/trunk/package/mingw/MLton.conf.in (from rev 7353, mlton/trunk/package/mingw/MLton.conf) =================================================================== --- mlton/trunk/package/mingw/MLton.conf 2009-11-02 23:05:23 UTC (rev 7353) +++ mlton/trunk/package/mingw/MLton.conf.in 2009-11-03 14:24:40 UTC (rev 7360) @@ -0,0 +1,3 @@ +;!@Install@!UTF-8! +ExecuteFile="MLton-@VERSION@.msi" +;!@InstallEnd@! Property changes on: mlton/trunk/package/mingw/MLton.conf.in ___________________________________________________________________ Name: svn:mergeinfo + Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-03 13:56:11 UTC (rev 7359) +++ mlton/trunk/package/mingw/Makefile 2009-11-03 14:24:40 UTC (rev 7360) @@ -15,8 +15,8 @@ all: MLton-$(VERSION).exe MLton-$(VERSION).msi -MLton-$(VERSION).exe: data.7z - cat 7zS.sfx MLton.conf data.7z > $@ +MLton-$(VERSION).exe: 7zS.sfx MLton.conf data.7z + cat $^ > $@ data.7z: staging/MLton-$(VERSION).msi rm -f $@ @@ -42,9 +42,13 @@ %.exe: %.sml $(MLTON) $< +# Cannot use a pattern rule b/c %.wxs already exists. mlton.wxs: mlton.wxs.in guid.exe sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g" < $< | \ sed "s/@GUID1@/`./guid $(VERSION).1`/g;s/@GUID2@/`./guid $(VERSION).2`/g" > $@ +MLton.conf: MLton.conf.in guid.exe + sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g" < $< | \ + sed "s/@GUID1@/`./guid $(VERSION).1`/g;s/@GUID2@/`./guid $(VERSION).2`/g" > $@ self32.lst: rm -rf staging |
From: Wesley T. <we...@ml...> - 2009-11-03 05:56:11
|
MSI filenames must match for windows to be able to work. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-03 12:58:22 UTC (rev 7358) +++ mlton/trunk/package/mingw/Makefile 2009-11-03 13:56:11 UTC (rev 7359) @@ -18,12 +18,12 @@ MLton-$(VERSION).exe: data.7z cat 7zS.sfx MLton.conf data.7z > $@ -data.7z: MLton.msi +data.7z: staging/MLton-$(VERSION).msi rm -f $@ - 7z a $@ -mx9 -mmt $< + cd staging; 7z a ../$@ -mx9 -mmt $(<F) .INTERMEDIATE: MLton.msi -MLton.msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) +staging/MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -dcl:none -cultures:en-us -ext WixUIExtension -out $@ $^ MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -dcl:high -cultures:en-us -ext WixUIExtension -out $@ $^ |
From: Wesley T. <we...@ml...> - 2009-11-03 04:58:25
|
Keep only guid chars. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/files2wix.sml ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/files2wix.sml =================================================================== --- mlton/trunk/package/mingw/files2wix.sml 2009-11-03 12:55:49 UTC (rev 7357) +++ mlton/trunk/package/mingw/files2wix.sml 2009-11-03 12:58:22 UTC (rev 7358) @@ -65,7 +65,7 @@ | SOME s => s val _ = MLton.Process.reap guid in - out + String.substring (out, 0, 36) end fun tail path = String.substring (path, 0, String.size path - 1) |
From: Wesley T. <we...@ml...> - 2009-11-03 04:55:50
|
Fixup dependencies. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile U mlton/trunk/package/mingw/files2wix.sml ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-03 12:36:36 UTC (rev 7356) +++ mlton/trunk/package/mingw/Makefile 2009-11-03 12:55:49 UTC (rev 7357) @@ -94,6 +94,6 @@ dirs.wxs: dirs2wix.exe $(PKG_LST) cd staging; find * -type d | ../dirs2wix > ../$@.tmp mv $@.tmp $@ -files.wxs: files2wix.exe $(PKG_LST) +files.wxs: files2wix.exe guid.exe $(PKG_LST) cat $(PKG_LST) | sort | uniq | ./files2wix > ./$@.tmp mv $@.tmp $@ Modified: mlton/trunk/package/mingw/files2wix.sml =================================================================== --- mlton/trunk/package/mingw/files2wix.sml 2009-11-03 12:36:36 UTC (rev 7356) +++ mlton/trunk/package/mingw/files2wix.sml 2009-11-03 12:55:49 UTC (rev 7357) @@ -53,7 +53,7 @@ MLton.Process.create { args = [path], env = NONE, - path = "./guid", + path = "guid.exe", stdin = MLton.Process.Param.null, stderr = MLton.Process.Param.self, stdout = MLton.Process.Param.pipe |
From: Wesley T. <we...@ml...> - 2009-11-03 04:36:37
|
Ahem. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-03 12:32:43 UTC (rev 7355) +++ mlton/trunk/package/mingw/Makefile 2009-11-03 12:36:36 UTC (rev 7356) @@ -43,9 +43,8 @@ $(MLTON) $< mlton.wxs: mlton.wxs.in guid.exe - sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g" | \ - sed "s/@GUID1@/`./guid $(VERSION).1`/g;s/@GUID2@/`./guid $(VERSION).2`/g" \ - < $< > $@ + sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g" < $< | \ + sed "s/@GUID1@/`./guid $(VERSION).1`/g;s/@GUID2@/`./guid $(VERSION).2`/g" > $@ self32.lst: rm -rf staging |
From: Wesley T. <we...@ml...> - 2009-11-03 04:32:43
|
A more complete understanding of windows component rules has led me to discover that a component's GUID must depend only on its path, not content. Gah. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile U mlton/trunk/package/mingw/files2wix.sml U mlton/trunk/package/mingw/mlton.wxs.in ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-03 02:19:33 UTC (rev 7354) +++ mlton/trunk/package/mingw/Makefile 2009-11-03 12:32:43 UTC (rev 7355) @@ -43,7 +43,8 @@ $(MLTON) $< mlton.wxs: mlton.wxs.in guid.exe - sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g;s/@GUID@/`./guid $(VERSION)`/g" \ + sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g" | \ + sed "s/@GUID1@/`./guid $(VERSION).1`/g;s/@GUID2@/`./guid $(VERSION).2`/g" \ < $< > $@ self32.lst: @@ -95,5 +96,5 @@ cd staging; find * -type d | ../dirs2wix > ../$@.tmp mv $@.tmp $@ files.wxs: files2wix.exe $(PKG_LST) - cat $(PKG_LST) | sort | uniq | ./files2wix `which md5sum` > ./$@.tmp + cat $(PKG_LST) | sort | uniq | ./files2wix > ./$@.tmp mv $@.tmp $@ Modified: mlton/trunk/package/mingw/files2wix.sml =================================================================== --- mlton/trunk/package/mingw/files2wix.sml 2009-11-03 02:19:33 UTC (rev 7354) +++ mlton/trunk/package/mingw/files2wix.sml 2009-11-03 12:32:43 UTC (rev 7355) @@ -1,9 +1,3 @@ -val md5sum = - case CommandLine.arguments () of - [md5sum] => md5sum - | _ => (print "Specify path to md5sum executable\n"; - OS.Process.exit OS.Process.failure) - val prefix = "\ \<?xml version='1.0' encoding='windows-1252'?>\n\ \<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n\ @@ -49,49 +43,29 @@ \Guid='" ^ guid ^ "'>\n\ \ <File Id='file." ^ uglypath ^ "' \ \Name='" ^ file ^ "' DiskId='1' Vital='yes' \ - \Source='staging/" ^ path ^ "' />\n\ + \Source='staging/" ^ path ^ "' KeyPath='yes' />\n\ \ </Component>\n\ \ </DirectoryRef>\n" end and guid path = let - val md5sum = + val guid = MLton.Process.create { - args = ["staging/" ^ path], + args = [path], env = NONE, - path = md5sum, + path = "./guid", stdin = MLton.Process.Param.null, stderr = MLton.Process.Param.self, stdout = MLton.Process.Param.pipe } - val input = MLton.Process.Child.textIn (MLton.Process.getStdout md5sum) - val md5 = + val input = MLton.Process.Child.textIn (MLton.Process.getStdout guid) + val out = case TextIO.inputLine input of - NONE => raise Fail "md5sum provided no hash" + NONE => raise Fail "guid provided no hash" | SOME s => s - val _ = MLton.Process.reap md5sum - - (* Compute the GUID as the combiniation of content hash + path hash *) - val pathHash = foldl hash 0w0 (explode path) - val contentHash = valOf (Word64.fromString (String.substring (md5, 0, 16))) - val xor = Word64.xorb (pathHash, contentHash) - - val zero = "00000000" - fun pad i s = String.substring (zero, 0, i - String.size s) ^ s - val c32 = pad 8 o Word32.toString o Word32.fromLarge o Word64.toLarge - val c16 = pad 4 o Word16.toString o Word16.fromLarge o Word64.toLarge - fun s32 i = String.substring (md5, i, 8) - fun s16 i = String.substring (md5, i, 4) - val s = Word64.>> - - val a32 = c32 (s (xor, 0w32)) - val b16 = c16 (s (xor, 0w16)) - val c16 = c16 xor - val d16 = s16 16 - val e16 = s16 20 - val f32 = s32 24 + val _ = MLton.Process.reap guid in - concat [a32, "-", b16, "-", c16, "-", d16, "-", e16, f32 ] + out end fun tail path = String.substring (path, 0, String.size path - 1) Modified: mlton/trunk/package/mingw/mlton.wxs.in =================================================================== --- mlton/trunk/package/mingw/mlton.wxs.in 2009-11-03 02:19:33 UTC (rev 7354) +++ mlton/trunk/package/mingw/mlton.wxs.in 2009-11-03 12:32:43 UTC (rev 7355) @@ -1,23 +1,27 @@ <?xml version='1.0' encoding='windows-1252'?> <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> - <Product Name='MLton @VERSION@' Id='@GUID@' + <Product Name='MLton @VERSION@' Id='@GUID1@' UpgradeCode='C353A6D5-4A30-D7CF-62E2-04D98AF8A864' Language='1033' Codepage='1252' Version='@WINVERSION@' Manufacturer='MLton.org'> - <Package Id='*' Keywords='Installer' + <Package Id='@GUID2@' Keywords='Installer' Description="MLton Installer @VERSION@" Comments='MLton is an open-source, whole-program, optimizing Standard ML compiler.' Manufacturer='MLton.org' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> <Upgrade Id='C353A6D5-4A30-D7CF-62E2-04D98AF8A864'> + <UpgradeVersion OnlyDetect='yes' Property='BADFOUND' + Maximum='9.11.2' IncludeMaximum='yes' /> <UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' Minimum='@WINVERSION@' IncludeMinimum='no' /> <UpgradeVersion OnlyDetect='no' Property='PREVIOUSFOUND' Maximum='@WINVERSION@' IncludeMaximum='no' /> </Upgrade> <CustomAction Id='NoDowngrade' Error='A newer version of MLton is already installed. If you want to downgrade, remove the newer version manually and try again.' /> + <CustomAction Id='BrokenVersion' Error='The version of MLton installed on this machine cannot be upgraded. Please manually remove it and run the installer again.' /> <InstallExecuteSequence> <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom> + <Custom Action='BrokenVersion' After='FindRelatedProducts'>BADFOUND</Custom> <RemoveExistingProducts After='InstallFinalize'/> </InstallExecuteSequence> |
From: Wesley T. <we...@ml...> - 2009-11-02 18:19:41
|
A straggler file from the clean rule! ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 23:05:23 UTC (rev 7353) +++ mlton/trunk/package/mingw/Makefile 2009-11-03 02:19:33 UTC (rev 7354) @@ -30,7 +30,7 @@ .PHONY: clean distclean clean: - rm -rf staging MLton.msi *.wixpdb *.wixobj *.wxs + rm -rf staging MLton.msi data.7z *.wixpdb *.wixobj *.wxs rm -f guid.exe files2cmp.exe dirs2wix.exe files2wix.exe rm -f $(PKG_LST) distclean: clean |
From: Wesley T. <we...@ml...> - 2009-11-02 15:05:28
|
Improve cleaning rules now that the build process has changed. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 22:43:22 UTC (rev 7352) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 23:05:23 UTC (rev 7353) @@ -28,9 +28,14 @@ MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -dcl:high -cultures:en-us -ext WixUIExtension -out $@ $^ +.PHONY: clean distclean clean: - rm -rf staging MLton.msi *.wixpdb *.wixobj *.exe $(PKG_WXS) $(PKG_LST) files.wxs dirs.wxs - + rm -rf staging MLton.msi *.wixpdb *.wixobj *.wxs + rm -f guid.exe files2cmp.exe dirs2wix.exe files2wix.exe + rm -f $(PKG_LST) +distclean: clean + rm -f MLton-*.exe MLton-*.msi dl/*.7z + %.wixobj: %.wxs candle -ext WixUIExtension $< |
From: Wesley T. <we...@ml...> - 2009-11-02 14:43:25
|
Control compression level from Makefile instead of wxs. => Can build msi and exe with one pass ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile U mlton/trunk/package/mingw/mlton.wxs.in ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 21:49:53 UTC (rev 7351) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 22:43:22 UTC (rev 7352) @@ -19,11 +19,12 @@ cat 7zS.sfx MLton.conf data.7z > $@ data.7z: MLton.msi - 7z a data.7z -mx=9 $< + rm -f $@ + 7z a $@ -mx9 -mmt $< .INTERMEDIATE: MLton.msi MLton.msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) - light -cultures:en-us -ext WixUIExtension -out $@ $^ + light -dcl:none -cultures:en-us -ext WixUIExtension -out $@ $^ MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -dcl:high -cultures:en-us -ext WixUIExtension -out $@ $^ @@ -36,7 +37,6 @@ %.exe: %.sml $(MLTON) $< -.PHONY: mlton.wxs mlton.wxs: mlton.wxs.in guid.exe sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g;s/@GUID@/`./guid $(VERSION)`/g" \ < $< > $@ Modified: mlton/trunk/package/mingw/mlton.wxs.in =================================================================== --- mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 21:49:53 UTC (rev 7351) +++ mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 22:43:22 UTC (rev 7352) @@ -21,7 +21,7 @@ <RemoveExistingProducts After='InstallFinalize'/> </InstallExecuteSequence> - <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' CompressionLevel="none" /> + <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' /> <Property Id='DiskPrompt' Value="MLton Installation CD [1]" /> <Property Id="ARPPRODUCTICON" Value="mlton.ico" /> <Icon Id="mlton.ico" SourceFile="mlton.ico" /> |
From: Wesley T. <we...@ml...> - 2009-11-02 13:50:00
|
Re-order identifiers to trick windows cabinet into making a good decision. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/dirs2wix.sml U mlton/trunk/package/mingw/files2cmp.sml U mlton/trunk/package/mingw/files2wix.sml U mlton/trunk/package/mingw/mlton.wxs.in ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/dirs2wix.sml =================================================================== --- mlton/trunk/package/mingw/dirs2wix.sml 2009-11-02 19:53:58 UTC (rev 7350) +++ mlton/trunk/package/mingw/dirs2wix.sml 2009-11-02 21:49:53 UTC (rev 7351) @@ -8,12 +8,29 @@ \ </Fragment>\n\ \</Wix>\n" +(* Identifiers must be unique per path. + * => Therefore we include a 64-bit hash. + * + Careful: / and \ must hash the same. + * They must also be alphanumeric and less than 78 bytes. + * => We convert non-alnums to _ + * => We trim the filename to the last 40 bytes. + * + * The contents of the installer cab are sorted by the identifier we choose. + * Similar files compress better when they are near each other. + * => Use: rev(filename).hash as the identifier + * + Sorts first by file-type + * + Same-named files (in different directories) get clumped together. + *) fun slashes c = if c = #"\\" then #"/" else c fun hash (c, w) = w * 0w5746711073709751657 + Word64.fromInt (Char.ord (slashes c)) fun alnum c = if Char.isAlphaNum c orelse c = #"." then c else #"_" fun trim s = if String.size s > 40 then String.substring (s, 0, 40) else s -fun escape s = Word64.toString (foldl hash 0w0 (explode s)) ^ "." ^ - trim (CharVector.map alnum (#file (OS.Path.splitDirFile s))) +fun rev s = + let val len = CharVector.length s in + CharVector.tabulate (len, fn i => CharVector.sub (s, len-1-i)) end +fun escape s = + (trim o rev o CharVector.map alnum o #file o OS.Path.splitDirFile) s + ^ "." ^ Word64.toString (foldl hash 0w0 (explode s)) val depth = ref 3 fun pad () = CharVector.tabulate (!depth * 2, fn _ => #" ") Modified: mlton/trunk/package/mingw/files2cmp.sml =================================================================== --- mlton/trunk/package/mingw/files2cmp.sml 2009-11-02 19:53:58 UTC (rev 7350) +++ mlton/trunk/package/mingw/files2cmp.sml 2009-11-02 21:49:53 UTC (rev 7351) @@ -14,12 +14,29 @@ \ </Fragment>\n\ \</Wix>\n" +(* Identifiers must be unique per path. + * => Therefore we include a 64-bit hash. + * + Careful: / and \ must hash the same. + * They must also be alphanumeric and less than 78 bytes. + * => We convert non-alnums to _ + * => We trim the filename to the last 40 bytes. + * + * The contents of the installer cab are sorted by the identifier we choose. + * Similar files compress better when they are near each other. + * => Use: rev(filename).hash as the identifier + * + Sorts first by file-type + * + Same-named files (in different directories) get clumped together. + *) fun slashes c = if c = #"\\" then #"/" else c fun hash (c, w) = w * 0w5746711073709751657 + Word64.fromInt (Char.ord (slashes c)) fun alnum c = if Char.isAlphaNum c orelse c = #"." then c else #"_" fun trim s = if String.size s > 40 then String.substring (s, 0, 40) else s -fun escape s = Word64.toString (foldl hash 0w0 (explode s)) ^ "." ^ - trim (CharVector.map alnum (#file (OS.Path.splitDirFile s))) +fun rev s = + let val len = CharVector.length s in + CharVector.tabulate (len, fn i => CharVector.sub (s, len-1-i)) end +fun escape s = + (trim o rev o CharVector.map alnum o #file o OS.Path.splitDirFile) s + ^ "." ^ Word64.toString (foldl hash 0w0 (explode s)) fun component path = case OS.Path.splitDirFile path of {file, dir} => Modified: mlton/trunk/package/mingw/files2wix.sml =================================================================== --- mlton/trunk/package/mingw/files2wix.sml 2009-11-02 19:53:58 UTC (rev 7350) +++ mlton/trunk/package/mingw/files2wix.sml 2009-11-02 21:49:53 UTC (rev 7351) @@ -12,12 +12,29 @@ \ </Fragment>\n\ \</Wix>\n" +(* Identifiers must be unique per path. + * => Therefore we include a 64-bit hash. + * + Careful: / and \ must hash the same. + * They must also be alphanumeric and less than 78 bytes. + * => We convert non-alnums to _ + * => We trim the filename to the last 40 bytes. + * + * The contents of the installer cab are sorted by the identifier we choose. + * Similar files compress better when they are near each other. + * => Use: rev(filename).hash as the identifier + * + Sorts first by file-type + * + Same-named files (in different directories) get clumped together. + *) fun slashes c = if c = #"\\" then #"/" else c fun hash (c, w) = w * 0w5746711073709751657 + Word64.fromInt (Char.ord (slashes c)) fun alnum c = if Char.isAlphaNum c orelse c = #"." then c else #"_" fun trim s = if String.size s > 40 then String.substring (s, 0, 40) else s -fun escape s = Word64.toString (foldl hash 0w0 (explode s)) ^ "." ^ - trim (CharVector.map alnum (#file (OS.Path.splitDirFile s))) +fun rev s = + let val len = CharVector.length s in + CharVector.tabulate (len, fn i => CharVector.sub (s, len-1-i)) end +fun escape s = + (trim o rev o CharVector.map alnum o #file o OS.Path.splitDirFile) s + ^ "." ^ Word64.toString (foldl hash 0w0 (explode s)) fun dirEntry path = let Modified: mlton/trunk/package/mingw/mlton.wxs.in =================================================================== --- mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 19:53:58 UTC (rev 7350) +++ mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 21:49:53 UTC (rev 7351) @@ -48,14 +48,14 @@ <Directory Id="DesktopFolder" Name="Desktop" /> </Directory> - <DirectoryRef Id='dir.5CF63DEB372EF117.mlton'> + <DirectoryRef Id='dir.notlm.5CF63DEB372EF117'> <Component Id='component.documentation' Guid='1E019F99-0424-8133-D4F6-C7DDA0882798'> <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\docs' Type='string' Value='' KeyPath='yes' /> <Shortcut Id='start_docs' Directory='ProgramMenuDir' Name='Documentation' Description='The MLton documentation folder'/> </Component> </DirectoryRef> - <DirectoryRef Id='dir.7746DD2CF59E4101.bin'> + <DirectoryRef Id='dir.nib.7746DD2CF59E4101'> <Component Id='component.path' Guid='5B06C123-B426-3D4D-BE48-4D07BAD8A6BA'> <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\path' Type='string' Value='' KeyPath='yes' /> <Environment Id='env.path' Name='PATH' Action='set' Part='last' System='yes' Value='[dir.bin]' /> |
From: Wesley T. <we...@ml...> - 2009-11-02 11:54:10
|
Support md5sum in different locations. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile U mlton/trunk/package/mingw/files2wix.sml ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 19:42:48 UTC (rev 7349) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 19:53:58 UTC (rev 7350) @@ -90,5 +90,5 @@ cd staging; find * -type d | ../dirs2wix > ../$@.tmp mv $@.tmp $@ files.wxs: files2wix.exe $(PKG_LST) - cat $(PKG_LST) | sort | uniq | ./files2wix > ./$@.tmp + cat $(PKG_LST) | sort | uniq | ./files2wix `which md5sum` > ./$@.tmp mv $@.tmp $@ Modified: mlton/trunk/package/mingw/files2wix.sml =================================================================== --- mlton/trunk/package/mingw/files2wix.sml 2009-11-02 19:42:48 UTC (rev 7349) +++ mlton/trunk/package/mingw/files2wix.sml 2009-11-02 19:53:58 UTC (rev 7350) @@ -1,3 +1,9 @@ +val md5sum = + case CommandLine.arguments () of + [md5sum] => md5sum + | _ => (print "Specify path to md5sum executable\n"; + OS.Process.exit OS.Process.failure) + val prefix = "\ \<?xml version='1.0' encoding='windows-1252'?>\n\ \<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n\ @@ -36,7 +42,7 @@ MLton.Process.create { args = ["staging/" ^ path], env = NONE, - path = "md5sum", + path = md5sum, stdin = MLton.Process.Param.null, stderr = MLton.Process.Param.self, stdout = MLton.Process.Param.pipe |
From: Wesley T. <we...@ml...> - 2009-11-02 11:42:52
|
Show users who inspect the package the version we'd like them to see, ie. 20091102, not the windows version hack 9.11.2. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile U mlton/trunk/package/mingw/mlton.wxs.in ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 19:38:57 UTC (rev 7348) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 19:42:48 UTC (rev 7349) @@ -38,7 +38,7 @@ .PHONY: mlton.wxs mlton.wxs: mlton.wxs.in guid.exe - sed "s/@VERSION@/$(WINVERSION)/g;s/@GUID@/`./guid $(VERSION)`/g" \ + sed "s/@VERSION@/$(VERSION)/g;s/@WINVERSION@/$(WINVERSION)/g;s/@GUID@/`./guid $(VERSION)`/g" \ < $< > $@ self32.lst: Modified: mlton/trunk/package/mingw/mlton.wxs.in =================================================================== --- mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 19:38:57 UTC (rev 7348) +++ mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 19:42:48 UTC (rev 7349) @@ -2,18 +2,18 @@ <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> <Product Name='MLton @VERSION@' Id='@GUID@' UpgradeCode='C353A6D5-4A30-D7CF-62E2-04D98AF8A864' - Language='1033' Codepage='1252' Version='@VERSION@' Manufacturer='MLton.org'> + Language='1033' Codepage='1252' Version='@WINVERSION@' Manufacturer='MLton.org'> <Package Id='*' Keywords='Installer' - Description="MLton Installer v@VERSION@" + Description="MLton Installer @VERSION@" Comments='MLton is an open-source, whole-program, optimizing Standard ML compiler.' Manufacturer='MLton.org' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> <Upgrade Id='C353A6D5-4A30-D7CF-62E2-04D98AF8A864'> <UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' - Minimum='@VERSION@' IncludeMinimum='no' /> + Minimum='@WINVERSION@' IncludeMinimum='no' /> <UpgradeVersion OnlyDetect='no' Property='PREVIOUSFOUND' - Maximum='@VERSION@' IncludeMaximum='no' /> + Maximum='@WINVERSION@' IncludeMaximum='no' /> </Upgrade> <CustomAction Id='NoDowngrade' Error='A newer version of MLton is already installed. If you want to downgrade, remove the newer version manually and try again.' /> <InstallExecuteSequence> |
From: Wesley T. <we...@ml...> - 2009-11-02 11:39:02
|
Compute the GUIDs from a combination of md5sum and path. This way an upgrade doesn't need to rewrite any unchanged files. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/files2wix.sml ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/files2wix.sml =================================================================== --- mlton/trunk/package/mingw/files2wix.sml 2009-11-02 18:53:05 UTC (rev 7347) +++ mlton/trunk/package/mingw/files2wix.sml 2009-11-02 19:38:57 UTC (rev 7348) @@ -32,14 +32,43 @@ end and guid path = let - val w32 = Word32.fromLarge o Word.toLarge o MLton.Random.rand - val w16 = Word16.fromLarge o Word.toLarge o MLton.Random.rand + val md5sum = + MLton.Process.create { + args = ["staging/" ^ path], + env = NONE, + path = "md5sum", + stdin = MLton.Process.Param.null, + stderr = MLton.Process.Param.self, + stdout = MLton.Process.Param.pipe + } + val input = MLton.Process.Child.textIn (MLton.Process.getStdout md5sum) + val md5 = + case TextIO.inputLine input of + NONE => raise Fail "md5sum provided no hash" + | SOME s => s + val _ = MLton.Process.reap md5sum + + (* Compute the GUID as the combiniation of content hash + path hash *) + val pathHash = foldl hash 0w0 (explode path) + val contentHash = valOf (Word64.fromString (String.substring (md5, 0, 16))) + val xor = Word64.xorb (pathHash, contentHash) + val zero = "00000000" fun pad i s = String.substring (zero, 0, i - String.size s) ^ s - val w32 = pad 8 o Word32.toString o w32 - val w16 = pad 4 o Word16.toString o w16 + val c32 = pad 8 o Word32.toString o Word32.fromLarge o Word64.toLarge + val c16 = pad 4 o Word16.toString o Word16.fromLarge o Word64.toLarge + fun s32 i = String.substring (md5, i, 8) + fun s16 i = String.substring (md5, i, 4) + val s = Word64.>> + + val a32 = c32 (s (xor, 0w32)) + val b16 = c16 (s (xor, 0w16)) + val c16 = c16 xor + val d16 = s16 16 + val e16 = s16 20 + val f32 = s32 24 in - w32 () ^"-"^ w16 () ^"-"^ w16 () ^"-"^ w16 () ^"-"^ w16 () ^ w32 () + concat [a32, "-", b16, "-", c16, "-", d16, "-", e16, f32 ] end fun tail path = String.substring (path, 0, String.size path - 1) @@ -55,4 +84,3 @@ val () = print prefix val () = loop () val () = print suffix - |
From: Wesley T. <we...@ml...> - 2009-11-02 10:53:08
|
Removing the old MLton after installing the new MLton allows us to skip upgrading files that have not changed. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/mlton.wxs.in ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/mlton.wxs.in =================================================================== --- mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 18:43:29 UTC (rev 7346) +++ mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 18:53:05 UTC (rev 7347) @@ -18,6 +18,7 @@ <CustomAction Id='NoDowngrade' Error='A newer version of MLton is already installed. If you want to downgrade, remove the newer version manually and try again.' /> <InstallExecuteSequence> <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom> + <RemoveExistingProducts After='InstallFinalize'/> </InstallExecuteSequence> <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' CompressionLevel="none" /> |
From: Wesley T. <we...@ml...> - 2009-11-02 10:43:30
|
Hack the windows version ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 18:25:14 UTC (rev 7345) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 18:43:29 UTC (rev 7346) @@ -6,12 +6,15 @@ PKG_WIXOBJ=$(patsubst %,%.wixobj,$(PKG)) ifeq (,$(VERSION)) -all: - @echo Specific a release VERSION. -else -all: MLton-$(VERSION).exe MLton-$(VERSION).msi +VERSION := $(shell date +%Y%m%d) endif +# Windows versions have to be (0-255).(0-255).(0-65536) +# So lets just use YY.MM.DD for the version (leading 0s stripped) +WINVERSION := $(shell echo $(VERSION) | sed -r 's/20(..)(..)(..)/\1.\2.\3/;s/0*([1-9]+)/\1/g') + +all: MLton-$(VERSION).exe MLton-$(VERSION).msi + MLton-$(VERSION).exe: data.7z cat 7zS.sfx MLton.conf data.7z > $@ @@ -35,7 +38,8 @@ .PHONY: mlton.wxs mlton.wxs: mlton.wxs.in guid.exe - sed "s/@VERSION@/$(VERSION)/g;s/@GUID@/`./guid $(VERSION)`/g" < $< > $@ + sed "s/@VERSION@/$(WINVERSION)/g;s/@GUID@/`./guid $(VERSION)`/g" \ + < $< > $@ self32.lst: rm -rf staging |
From: Wesley T. <we...@ml...> - 2009-11-02 10:25:29
|
Add support for upgrading the package ---------------------------------------------------------------------- U mlton/trunk/package/mingw/Makefile A mlton/trunk/package/mingw/guid.sml D mlton/trunk/package/mingw/mlton.wxs A mlton/trunk/package/mingw/mlton.wxs.in ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 15:03:54 UTC (rev 7344) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 18:25:14 UTC (rev 7345) @@ -5,15 +5,24 @@ PKG_WXS=$(patsubst %,%.wxs,$(PKG)) PKG_WIXOBJ=$(patsubst %,%.wixobj,$(PKG)) -MLton.exe: data.7z +ifeq (,$(VERSION)) +all: + @echo Specific a release VERSION. +else +all: MLton-$(VERSION).exe MLton-$(VERSION).msi +endif + +MLton-$(VERSION).exe: data.7z cat 7zS.sfx MLton.conf data.7z > $@ -.PRECIOUS: data.7z data.7z: MLton.msi 7z a data.7z -mx=9 $< +.INTERMEDIATE: MLton.msi MLton.msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -cultures:en-us -ext WixUIExtension -out $@ $^ +MLton-$(VERSION).msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) + light -dcl:high -cultures:en-us -ext WixUIExtension -out $@ $^ clean: rm -rf staging MLton.msi *.wixpdb *.wixobj *.exe $(PKG_WXS) $(PKG_LST) files.wxs dirs.wxs @@ -24,6 +33,10 @@ %.exe: %.sml $(MLTON) $< +.PHONY: mlton.wxs +mlton.wxs: mlton.wxs.in guid.exe + sed "s/@VERSION@/$(VERSION)/g;s/@GUID@/`./guid $(VERSION)`/g" < $< > $@ + self32.lst: rm -rf staging $(MAKE) -C ../.. PREFIX= install Added: mlton/trunk/package/mingw/guid.sml =================================================================== --- mlton/trunk/package/mingw/guid.sml 2009-11-02 15:03:54 UTC (rev 7344) +++ mlton/trunk/package/mingw/guid.sml 2009-11-02 18:25:14 UTC (rev 7345) @@ -0,0 +1,28 @@ +val version = + case CommandLine.arguments () of + [version] => version + | _ => (print "Specific version as argument\n"; + OS.Process.exit OS.Process.failure) + +fun hash x (c, w) = w * x + Word64.fromInt (Char.ord c) +fun escape x = hash x (#"\000", foldl (hash x) 0w0 (explode version)) + +val w32 = Word32.fromLarge o Word64.toLarge o escape +val w16 = Word16.fromLarge o Word64.toLarge o escape +val zero = "00000000" +fun pad i s = String.substring (zero, 0, i - String.size s) ^ s +val w32 = pad 8 o Word32.toString o w32 +val w16 = pad 4 o Word16.toString o w16 + +(* Some fat prime numbers *) +val a = 0w5746711073709751657 +val b = 0w1892735987235987253 +val c = 0w2098509180985089227 +val d = 0w15198712489180714177 +val e = 0w8904928971259057927 +val f = 0w7690819081905790867 + +val () = + print (concat [ + w32 a, "-", w16 b, "-", w16 c, "-", w16 d, "-", w16 e, w32 f, "\n" + ]) Deleted: mlton/trunk/package/mingw/mlton.wxs =================================================================== --- mlton/trunk/package/mingw/mlton.wxs 2009-11-02 15:03:54 UTC (rev 7344) +++ mlton/trunk/package/mingw/mlton.wxs 2009-11-02 18:25:14 UTC (rev 7345) @@ -1,136 +0,0 @@ -<?xml version='1.0' encoding='windows-1252'?> -<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> - <Product Name='MLton' Id='E78E6DFD-5738-B137-DD2A-EA81A1A841EC' - UpgradeCode='C353A6D5-4A30-D7CF-62E2-04D98AF8A864' - Language='1033' Codepage='1252' Version='1.0' Manufacturer='MLton.org'> - - <Package Id='*' Keywords='Installer' - Description="MLton Installer" - Comments='MLton is an open-source, whole-program, optimizing Standard ML compiler.' Manufacturer='MLton.org' - InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> - - <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' CompressionLevel="none" DiskPrompt="CD-ROM #1" /> - <Property Id='DiskPrompt' Value="MLton Installation CD [1]" /> - <Property Id="ARPPRODUCTICON" Value="mlton.ico" /> - <Icon Id="mlton.ico" SourceFile="mlton.ico" /> - - <Directory Id='TARGETDIR' Name='SourceDir'> - <Directory Id='ProgramFilesFolder' Name='PFiles'> - <Directory Id='INSTALLDIR' Name='MLton' /> - </Directory> - - <Directory Id="ProgramMenuFolder" Name="Programs"> - <Directory Id="ProgramMenuDir" Name='MLton'> - <Component Id='component.download.url' Guid='A9C0D185-9520-45FF-1B52-02894D3EAA54'> - <RemoveFolder Id='ProgramMenuDir' On='uninstall'/> - <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\download' Type='string' Value='' KeyPath='yes' /> - <File Id='file.menu_download.url' Name='Download.URL' Source='Download.URL' DiskId='1' Vital='yes' /> - </Component> - <Component Id='component.readme.txt' Guid='1FC6B351-547C-A5AB-7F0E-FB153F721170'> - <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\readme' Type='string' Value='' KeyPath='yes' /> - <File Id='file.menu_readme.txt' Name='Readme.rtf' Source='Readme.rtf' DiskId='1' Vital='yes' /> - </Component> - </Directory> - </Directory> - - <Directory Id="DesktopFolder" Name="Desktop" /> - </Directory> - - <DirectoryRef Id='dir.5CF63DEB372EF117.mlton'> - <Component Id='component.documentation' Guid='1E019F99-0424-8133-D4F6-C7DDA0882798'> - <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\docs' Type='string' Value='' KeyPath='yes' /> - <Shortcut Id='start_docs' Directory='ProgramMenuDir' Name='Documentation' Description='The MLton documentation folder'/> - </Component> - </DirectoryRef> - - <DirectoryRef Id='dir.7746DD2CF59E4101.bin'> - <Component Id='component.path' Guid='5B06C123-B426-3D4D-BE48-4D07BAD8A6BA'> - <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\path' Type='string' Value='' KeyPath='yes' /> - <Environment Id='env.path' Name='PATH' Action='set' Part='last' System='yes' Value='[dir.bin]' /> - </Component> - <Component Id='component.bin_mlton.bat' Guid='A2E613BD-41F8-1CF7-D5EA-0C41674D78AC'> - <File Id='file.bin_mlton.bat' Name='mlton.bat' Source='mlton.bat' DiskId='1' Vital='yes' /> - <File Id='file.bin_sml.ico' Name='sml.ico' Source='sml.ico' DiskId='1' Vital='yes' /> - <File Id='file.bin_mlb.ico' Name='mlb.ico' Source='mlb.ico' DiskId='1' Vital='yes' /> - <ProgId Id='MLton.mlbFile' Description='Standard ML basis file' Icon='file.bin_mlb.ico'> - <Extension Id='mlb' ContentType='application/mlb'> - <Verb Id='buildMLB' Command='Compile' TargetFile='file.bin_mlton.bat' Argument='-pause -verbose 1 "%1"' /> - </Extension> - </ProgId> - <ProgId Id='MLton.smlFile' Description='Standard ML source file' Icon='file.bin_sml.ico'> - <Extension Id='sml' ContentType='application/sml'> - <Verb Id='buildSML' Command='Compile' TargetFile='file.bin_mlton.bat' Argument='-pause -verbose 1 "%1"' /> - </Extension> - </ProgId> - </Component> - <Component Id='component.bin_msys.bat' Guid='9C492AB5-3C90-66AF-E442-D6B96A9890C4'> - <File Id='file.bin_msys.bat' Name='msys.bat' Source='msys.bat' DiskId='1' Vital='yes' /> - </Component> - <Component Id='component.start_msys' Guid='9C4163A5-3C90-6BAF-E442-D6B9619890C2'> - <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\msys' Type='string' Value='' KeyPath='yes' /> - <Shortcut Id='start_msys' Directory='ProgramMenuDir' Name='MSYS' Description='Unix-like system shell' Icon='msys.ico' Target='[#file.bin_msys.bat]'> - <Icon Id='msys.ico' SourceFile='staging/msys.ico'/> - </Shortcut> - </Component> - </DirectoryRef> - - <Feature Id='MLton32' Title='MLton32' Description='A whole-program optimizing Standard ML compiler.' Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.self32' /> - <ComponentRef Id='component.bin_mlton.bat' /> - <ComponentRef Id='component.path' /> - <ComponentRef Id='component.download.url' /> - <ComponentRef Id='component.readme.txt' /> - <ComponentRef Id='component.documentation' /> - <Feature Id='MinGW32' Title='MinGW32' Description='The minimalist GNU for Windows C compiler toolchain, targetting Win32.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.mingw32' /> - </Feature> - <Feature Id='GMP32' Title='GMP32' Description='An arbitrary precision integer artihmetic library.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.gmp32' /> - </Feature> - <Feature Id='dlfcn32' Title='Dlfcn32' Description='An implementation of the POSIX dynamic linking loader API for Windows 32.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.dlfcn32' /> - </Feature> - </Feature> - - <Feature Id='MLton64' Title='MLton64' Description='A whole-program optimizing Standard ML compiler.' Display='expand' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.self64' /> - <ComponentRef Id='component.bin_mlton.bat' /> - <ComponentRef Id='component.path' /> - <ComponentRef Id='component.download.url' /> - <ComponentRef Id='component.readme.txt' /> - <ComponentRef Id='component.documentation' /> - <Feature Id='MinGW64' Title='MinGW64' Description='The minimalist GNU for Windows C compiler toolchain, targetting Win64.' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.mingw64' /> - </Feature> - <Feature Id='GMP64' Title='GMP64' Description='An arbitrary precision integer artihmetic library.' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.gmp64' /> - </Feature> - <Feature Id='dlfcn64' Title='Dlfcn64' Description='An implementation of the POSIX dynamic linking loader API for Windows 64.' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> - <ComponentGroupRef Id='component.dlfcn64' /> - </Feature> - </Feature> - - <Feature Id='MSYS' Title='MSYS' Description='A system shell along with UNIX-style command-line utilities.' Level='1' AllowAdvertise='no'> - <ComponentRef Id='component.start_msys' /> - <ComponentRef Id='component.bin_msys.bat' /> - <ComponentRef Id='component.path' /> - <ComponentGroupRef Id='component.msys' /> - </Feature> - - <Feature Id='WGet' Title='WGet' Description='A command-line tool for retrieving files from the web.' Level='10' AllowAdvertise='no'> - <ComponentRef Id='component.path' /> - <ComponentGroupRef Id='component.wget' /> - </Feature> - - <Feature Id='zip7' Title='7Zip' Description='A command-line tool for decompressing files.' Level='10' AllowAdvertise='no'> - <ComponentRef Id='component.path' /> - <ComponentGroupRef Id='component.7zip' /> - </Feature> - - <UIRef Id="WixUI_Mondo" /> - <WixVariable Id="WixUIBannerBmp" Value="Bitmaps/bannrbmp.bmp" /> - <WixVariable Id="WixUIDialogBmp" Value="Bitmaps/dlgbmp.bmp" /> - <WixVariable Id="WixUILicenseRtf" Value="License.rtf" /> - <Property Id='WIXUI_INSTALLDIR' Value='INSTALLDIR' /> - </Product> -</Wix> Copied: mlton/trunk/package/mingw/mlton.wxs.in (from rev 7344, mlton/trunk/package/mingw/mlton.wxs) =================================================================== --- mlton/trunk/package/mingw/mlton.wxs 2009-11-02 15:03:54 UTC (rev 7344) +++ mlton/trunk/package/mingw/mlton.wxs.in 2009-11-02 18:25:14 UTC (rev 7345) @@ -0,0 +1,147 @@ +<?xml version='1.0' encoding='windows-1252'?> +<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> + <Product Name='MLton @VERSION@' Id='@GUID@' + UpgradeCode='C353A6D5-4A30-D7CF-62E2-04D98AF8A864' + Language='1033' Codepage='1252' Version='@VERSION@' Manufacturer='MLton.org'> + + <Package Id='*' Keywords='Installer' + Description="MLton Installer v@VERSION@" + Comments='MLton is an open-source, whole-program, optimizing Standard ML compiler.' Manufacturer='MLton.org' + InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> + + <Upgrade Id='C353A6D5-4A30-D7CF-62E2-04D98AF8A864'> + <UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' + Minimum='@VERSION@' IncludeMinimum='no' /> + <UpgradeVersion OnlyDetect='no' Property='PREVIOUSFOUND' + Maximum='@VERSION@' IncludeMaximum='no' /> + </Upgrade> + <CustomAction Id='NoDowngrade' Error='A newer version of MLton is already installed. If you want to downgrade, remove the newer version manually and try again.' /> + <InstallExecuteSequence> + <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom> + </InstallExecuteSequence> + + <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' CompressionLevel="none" /> + <Property Id='DiskPrompt' Value="MLton Installation CD [1]" /> + <Property Id="ARPPRODUCTICON" Value="mlton.ico" /> + <Icon Id="mlton.ico" SourceFile="mlton.ico" /> + + <Directory Id='TARGETDIR' Name='SourceDir'> + <Directory Id='ProgramFilesFolder' Name='PFiles'> + <Directory Id='INSTALLDIR' Name='MLton' /> + </Directory> + + <Directory Id="ProgramMenuFolder" Name="Programs"> + <Directory Id="ProgramMenuDir" Name='MLton'> + <Component Id='component.download.url' Guid='A9C0D185-9520-45FF-1B52-02894D3EAA54'> + <RemoveFolder Id='ProgramMenuDir' On='uninstall'/> + <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\download' Type='string' Value='' KeyPath='yes' /> + <File Id='file.menu_download.url' Name='Download.URL' Source='Download.URL' DiskId='1' Vital='yes' /> + </Component> + <Component Id='component.readme.txt' Guid='1FC6B351-547C-A5AB-7F0E-FB153F721170'> + <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\readme' Type='string' Value='' KeyPath='yes' /> + <File Id='file.menu_readme.txt' Name='Readme.rtf' Source='Readme.rtf' DiskId='1' Vital='yes' /> + </Component> + </Directory> + </Directory> + + <Directory Id="DesktopFolder" Name="Desktop" /> + </Directory> + + <DirectoryRef Id='dir.5CF63DEB372EF117.mlton'> + <Component Id='component.documentation' Guid='1E019F99-0424-8133-D4F6-C7DDA0882798'> + <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\docs' Type='string' Value='' KeyPath='yes' /> + <Shortcut Id='start_docs' Directory='ProgramMenuDir' Name='Documentation' Description='The MLton documentation folder'/> + </Component> + </DirectoryRef> + + <DirectoryRef Id='dir.7746DD2CF59E4101.bin'> + <Component Id='component.path' Guid='5B06C123-B426-3D4D-BE48-4D07BAD8A6BA'> + <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\path' Type='string' Value='' KeyPath='yes' /> + <Environment Id='env.path' Name='PATH' Action='set' Part='last' System='yes' Value='[dir.bin]' /> + </Component> + <Component Id='component.bin_mlton.bat' Guid='A2E613BD-41F8-1CF7-D5EA-0C41674D78AC'> + <File Id='file.bin_mlton.bat' Name='mlton.bat' Source='mlton.bat' DiskId='1' Vital='yes' /> + <File Id='file.bin_sml.ico' Name='sml.ico' Source='sml.ico' DiskId='1' Vital='yes' /> + <File Id='file.bin_mlb.ico' Name='mlb.ico' Source='mlb.ico' DiskId='1' Vital='yes' /> + <ProgId Id='MLton.mlbFile' Description='Standard ML basis file' Icon='file.bin_mlb.ico'> + <Extension Id='mlb' ContentType='application/mlb'> + <Verb Id='buildMLB' Command='Compile' TargetFile='file.bin_mlton.bat' Argument='-pause -verbose 1 "%1"' /> + </Extension> + </ProgId> + <ProgId Id='MLton.smlFile' Description='Standard ML source file' Icon='file.bin_sml.ico'> + <Extension Id='sml' ContentType='application/sml'> + <Verb Id='buildSML' Command='Compile' TargetFile='file.bin_mlton.bat' Argument='-pause -verbose 1 "%1"' /> + </Extension> + </ProgId> + </Component> + <Component Id='component.bin_msys.bat' Guid='9C492AB5-3C90-66AF-E442-D6B96A9890C4'> + <File Id='file.bin_msys.bat' Name='msys.bat' Source='msys.bat' DiskId='1' Vital='yes' /> + </Component> + <Component Id='component.start_msys' Guid='9C4163A5-3C90-6BAF-E442-D6B9619890C2'> + <RegistryValue Root='HKCU' Key='SOFTWARE\MLton.org\MLton\msys' Type='string' Value='' KeyPath='yes' /> + <Shortcut Id='start_msys' Directory='ProgramMenuDir' Name='MSYS' Description='Unix-like system shell' Icon='msys.ico' Target='[#file.bin_msys.bat]'> + <Icon Id='msys.ico' SourceFile='staging/msys.ico'/> + </Shortcut> + </Component> + </DirectoryRef> + + <Feature Id='MLton32' Title='MLton32' Description='A whole-program optimizing Standard ML compiler.' Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.self32' /> + <ComponentRef Id='component.bin_mlton.bat' /> + <ComponentRef Id='component.path' /> + <ComponentRef Id='component.download.url' /> + <ComponentRef Id='component.readme.txt' /> + <ComponentRef Id='component.documentation' /> + <Feature Id='MinGW32' Title='MinGW32' Description='The minimalist GNU for Windows C compiler toolchain, targetting Win32.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.mingw32' /> + </Feature> + <Feature Id='GMP32' Title='GMP32' Description='An arbitrary precision integer artihmetic library.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.gmp32' /> + </Feature> + <Feature Id='dlfcn32' Title='Dlfcn32' Description='An implementation of the POSIX dynamic linking loader API for Windows 32.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.dlfcn32' /> + </Feature> + </Feature> + + <Feature Id='MLton64' Title='MLton64' Description='A whole-program optimizing Standard ML compiler.' Display='expand' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.self64' /> + <ComponentRef Id='component.bin_mlton.bat' /> + <ComponentRef Id='component.path' /> + <ComponentRef Id='component.download.url' /> + <ComponentRef Id='component.readme.txt' /> + <ComponentRef Id='component.documentation' /> + <Feature Id='MinGW64' Title='MinGW64' Description='The minimalist GNU for Windows C compiler toolchain, targetting Win64.' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.mingw64' /> + </Feature> + <Feature Id='GMP64' Title='GMP64' Description='An arbitrary precision integer artihmetic library.' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.gmp64' /> + </Feature> + <Feature Id='dlfcn64' Title='Dlfcn64' Description='An implementation of the POSIX dynamic linking loader API for Windows 64.' Level='10' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'> + <ComponentGroupRef Id='component.dlfcn64' /> + </Feature> + </Feature> + + <Feature Id='MSYS' Title='MSYS' Description='A system shell along with UNIX-style command-line utilities.' Level='1' AllowAdvertise='no'> + <ComponentRef Id='component.start_msys' /> + <ComponentRef Id='component.bin_msys.bat' /> + <ComponentRef Id='component.path' /> + <ComponentGroupRef Id='component.msys' /> + </Feature> + + <Feature Id='WGet' Title='WGet' Description='A command-line tool for retrieving files from the web.' Level='10' AllowAdvertise='no'> + <ComponentRef Id='component.path' /> + <ComponentGroupRef Id='component.wget' /> + </Feature> + + <Feature Id='zip7' Title='7Zip' Description='A command-line tool for decompressing files.' Level='10' AllowAdvertise='no'> + <ComponentRef Id='component.path' /> + <ComponentGroupRef Id='component.7zip' /> + </Feature> + + <UIRef Id="WixUI_Mondo" /> + <WixVariable Id="WixUIBannerBmp" Value="Bitmaps/bannrbmp.bmp" /> + <WixVariable Id="WixUIDialogBmp" Value="Bitmaps/dlgbmp.bmp" /> + <WixVariable Id="WixUILicenseRtf" Value="License.rtf" /> + <Property Id='WIXUI_INSTALLDIR' Value='INSTALLDIR' /> + </Product> +</Wix> Property changes on: mlton/trunk/package/mingw/mlton.wxs.in ___________________________________________________________________ Name: svn:mergeinfo + |
From: Wesley T. <we...@ml...> - 2009-11-02 07:04:11
|
Don't prompt, just do. ---------------------------------------------------------------------- U mlton/trunk/package/mingw/MLton.conf U mlton/trunk/package/mingw/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/MLton.conf =================================================================== --- mlton/trunk/package/mingw/MLton.conf 2009-11-02 14:47:57 UTC (rev 7343) +++ mlton/trunk/package/mingw/MLton.conf 2009-11-02 15:03:54 UTC (rev 7344) @@ -1,5 +1,3 @@ ;!@Install@!UTF-8! -Title="MLton Installation" -BeginPrompt="Do you want to install MLton?" ExecuteFile="MLton.msi" ;!@InstallEnd@! Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 14:47:57 UTC (rev 7343) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 15:03:54 UTC (rev 7344) @@ -5,10 +5,13 @@ PKG_WXS=$(patsubst %,%.wxs,$(PKG)) PKG_WIXOBJ=$(patsubst %,%.wixobj,$(PKG)) -MLton.exe: MLton.msi - 7z a data.7z -mx=9 $< +MLton.exe: data.7z cat 7zS.sfx MLton.conf data.7z > $@ +.PRECIOUS: data.7z +data.7z: MLton.msi + 7z a data.7z -mx=9 $< + MLton.msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -cultures:en-us -ext WixUIExtension -out $@ $^ |
From: Wesley T. <we...@ml...> - 2009-11-02 06:47:59
|
Keep the pretty GUI during install ---------------------------------------------------------------------- U mlton/trunk/package/mingw/MLton.conf ---------------------------------------------------------------------- Modified: mlton/trunk/package/mingw/MLton.conf =================================================================== --- mlton/trunk/package/mingw/MLton.conf 2009-11-02 14:37:31 UTC (rev 7342) +++ mlton/trunk/package/mingw/MLton.conf 2009-11-02 14:47:57 UTC (rev 7343) @@ -1,6 +1,5 @@ ;!@Install@!UTF-8! Title="MLton Installation" BeginPrompt="Do you want to install MLton?" -ExecuteFile="msiexec.exe" -ExecuteParameters="/i setup.msi /qb" +ExecuteFile="MLton.msi" ;!@InstallEnd@! |
From: Wesley T. <we...@ml...> - 2009-11-02 06:37:35
|
Make the msi a self-extracting installer. Half the size! ---------------------------------------------------------------------- A mlton/trunk/package/mingw/7zS.sfx A mlton/trunk/package/mingw/MLton.conf U mlton/trunk/package/mingw/Makefile U mlton/trunk/package/mingw/mlton.wxs ---------------------------------------------------------------------- Added: mlton/trunk/package/mingw/7zS.sfx =================================================================== (Binary files differ) Property changes on: mlton/trunk/package/mingw/7zS.sfx ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: mlton/trunk/package/mingw/MLton.conf =================================================================== --- mlton/trunk/package/mingw/MLton.conf 2009-11-02 00:55:09 UTC (rev 7341) +++ mlton/trunk/package/mingw/MLton.conf 2009-11-02 14:37:31 UTC (rev 7342) @@ -0,0 +1,6 @@ +;!@Install@!UTF-8! +Title="MLton Installation" +BeginPrompt="Do you want to install MLton?" +ExecuteFile="msiexec.exe" +ExecuteParameters="/i setup.msi /qb" +;!@InstallEnd@! Modified: mlton/trunk/package/mingw/Makefile =================================================================== --- mlton/trunk/package/mingw/Makefile 2009-11-02 00:55:09 UTC (rev 7341) +++ mlton/trunk/package/mingw/Makefile 2009-11-02 14:37:31 UTC (rev 7342) @@ -5,6 +5,10 @@ PKG_WXS=$(patsubst %,%.wxs,$(PKG)) PKG_WIXOBJ=$(patsubst %,%.wixobj,$(PKG)) +MLton.exe: MLton.msi + 7z a data.7z -mx=9 $< + cat 7zS.sfx MLton.conf data.7z > $@ + MLton.msi: mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ) light -cultures:en-us -ext WixUIExtension -out $@ $^ Modified: mlton/trunk/package/mingw/mlton.wxs =================================================================== --- mlton/trunk/package/mingw/mlton.wxs 2009-11-02 00:55:09 UTC (rev 7341) +++ mlton/trunk/package/mingw/mlton.wxs 2009-11-02 14:37:31 UTC (rev 7342) @@ -9,7 +9,7 @@ Comments='MLton is an open-source, whole-program, optimizing Standard ML compiler.' Manufacturer='MLton.org' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> - <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' CompressionLevel="high" DiskPrompt="CD-ROM #1" /> + <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' CompressionLevel="none" DiskPrompt="CD-ROM #1" /> <Property Id='DiskPrompt' Value="MLton Installation CD [1]" /> <Property Id="ARPPRODUCTICON" Value="mlton.ico" /> <Icon Id="mlton.ico" SourceFile="mlton.ico" /> |