Merge remote-tracking branch 'origin/master'
authorKeith Packard <keithp@keithp.com>
Sun, 15 Jun 2014 23:31:01 +0000 (16:31 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 15 Jun 2014 23:31:01 +0000 (16:31 -0700)
15 files changed:
altosui/Makefile-standalone
altosui/Makefile.am
altosui/altos-windows.nsi.in
altusmetrum.cat [new file with mode: 0644]
altusmetrum.inf [new file with mode: 0755]
icon/Makefile.am
icon/altusmetrum.svg
icon/make-png [deleted file]
icon/micropeak.svg
icon/telegps.svg
micropeak/micropeak-windows.nsi.in
signing-driver [new file with mode: 0644]
telegps/Makefile.am
telegps/telegps-windows.nsi.in
telemetrum.inf [deleted file]

index 23163e40278dbb63f68333d3df861cfc8c0b46f6..cbaf97433c546175151c22b6a213d86063637c4b 100644 (file)
@@ -181,7 +181,7 @@ $(DARWIN_ZIP): $(DARWIN_FILES)
        cp $(DARWIN_EXTRA) darwin/AltOS
        cd darwin && zip -r ../$@ AltosUI.app AltOS
 
-WINDOWS_FILES = $(FAT_FILES) libaltos/altos.dll ../telemetrum.inf $(WINDOWS_ICON)
+WINDOWS_FILES = $(FAT_FILES) libaltos/altos.dll ../altusmetrum.inf $(WINDOWS_ICON)
 
 $(WINDOWS_EXE): $(WINDOWS_FILES) altos-windows.nsi
        rm -f $@
index 0300513e1ddd29fb3fa064ddb8d6976eebb65d16..98a5e193ba900c69d7ae9329efd2535d39567ed4 100644 (file)
@@ -114,7 +114,10 @@ FIRMWARE_TMEGA=$(FIRMWARE_TMEGA_1_0)
 FIRMWARE_EMINI_1_0=$(top_srcdir)/src/easymini-v1.0/easymini-v1.0-$(VERSION).ihx
 FIRMWARE_EMINI=$(FIRMWARE_EMINI_1_0)
 
-FIRMWARE=$(FIRMWARE_TM) $(FIRMWARE_TELEMINI) $(FIRMWARE_TD) $(FIRMWARE_TBT) $(FIRMWARE_TMEGA) $(FIRMWARE_EMINI)
+FIRMWARE_TGPS_1_0=$(top_srcdir)/src/telegps-v1.0/telegps-v1.0-$(VERSION).ihx
+FIRMWARE_TGPS=$(FIRMWARE_TGPS_1_0)
+
+FIRMWARE=$(FIRMWARE_TM) $(FIRMWARE_TELEMINI) $(FIRMWARE_TD) $(FIRMWARE_TBT) $(FIRMWARE_TMEGA) $(FIRMWARE_EMINI) $(FIRMWARE_TGPS)
 
 ALTUSMETRUM_DOC=$(top_srcdir)/doc/altusmetrum.pdf
 ALTOS_DOC=$(top_srcdir)/doc/altos.pdf
@@ -144,7 +147,7 @@ MACOSX_INFO_PLIST=Info.plist
 MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(DOC) ReadMe-Mac.rtf $(MACOSX_ICON)
 MACOSX_EXTRA=$(FIRMWARE)
 
-WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(top_srcdir)/telemetrum.inf $(WINDOWS_ICON)
+WINDOWS_FILES=$(FAT_FILES) $(FIRMWARE) altos.dll altos64.dll $(top_srcdir)/altusmetrum.inf $(top_srcdir)/altusmetrum.cat $(WINDOWS_ICON)
 
 all-local: classes/altosui $(JAR) altosui altosui-test altosui-jdb
 
@@ -334,4 +337,4 @@ $(MACOSX_DIST): $(MACOSX_FILES) $(MACOSX_EXTRA) Makefile
 
 $(WINDOWS_DIST): $(WINDOWS_FILES) altos-windows.nsi
        -rm -f $@
-       makensis -Oaltos-windows.log "-XOutFile $@" "-DVERSION=$(VERSION)" altos-windows.nsi
+       makensis -Oaltos-windows.log "-XOutFile $@" "-DVERSION=$(VERSION)" altos-windows.nsi || (cat altos-windows.log && exit 1)
index 3832e9019dea30de2ddb735f3e75955ce1af1bf6..b72772e290b786fd1777c6e609504f91bfb8852e 100644 (file)
@@ -1,8 +1,10 @@
 !addplugindir Instdrv/NSIS/Plugins
-; Definitions for Java 1.6 Detection
-!define JRE_VERSION "1.6"
-!define JRE_ALTERNATE "1.7"
-!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52247&/jre-6u27-windows-i586-p.exe"
+!include x64.nsh
+; Definitions for Java 1.7 Detection
+!define JRE_VERSION "1.7"
+!define JRE_ALTERNATE "1.6"
+!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83383&/jre-7u51-windows-i586.exe"
+!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83385&/jre-7u51-windows-x64.exe"
 !define PRODUCT_NAME "Altus Metrum Windows Software"
 
 Name "Altus Metrum Installer"
@@ -23,12 +25,34 @@ ShowInstDetails Show
 
 ComponentText "Altus Metrum Software and Driver Installer"
 
+Function .onInit
+       DetailPrint "Checking host operating system"
+       ${If} ${RunningX64}
+               DetailPrint "Installer running on 64-bit host"
+               SetRegView 64
+               StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum"
+               ${DisableX64FSRedirection}
+       ${EndIf}
+FunctionEnd
+
+Var JavaDownload
+Var JavaBits
+
 Function GetJRE
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION} 32-bit, it will now \
-                         be downloaded and installed"
+       ${If} ${RunningX64}
+          StrCpy $JavaDownload ${JRE64_URL}
+          StrCpy $JavaBits "64"
+       ${Else}
+          StrCpy $JavaDownload ${JRE32_URL}
+          StrCpy $JavaBits "32"
+       ${EndIf}
+
+        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, \
+                       $JavaBits bits, it will now \
+                        be downloaded and installed"
 
         StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
+        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
         Pop $R0 ;Get the return value
                 StrCmp $R0 "success" +3
                 MessageBox MB_OK "Download failed: $R0"
@@ -37,10 +61,10 @@ Function GetJRE
         Delete $2
 FunctionEnd
 
-
 Function DetectJRE
   ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
              "CurrentVersion"
+
   StrCmp $2 ${JRE_VERSION} done
 
   StrCmp $2 ${JRE_ALTERNATE} done
@@ -70,15 +94,18 @@ Section "Install Driver" InstDriver
        InstDrv::DeleteOemInfFiles /NOUNLOAD
        InstDrv::CreateDevice /NOUNLOAD
 
-       SetOutPath $TEMP
-       File "../telemetrum.inf"
-       InstDrv::InstallDriver /NOUNLOAD "$TEMP\telemetrum.inf"
-
        SetOutPath $INSTDIR
-       File "../telemetrum.inf"
-
-       SetOutPath $WINDIR\Inf
-       File "../telemetrum.inf"
+       File "../altusmetrum.inf"
+       File "../altusmetrum.cat"
+
+       ${DisableX64FSRedirection}
+       IfFileExists $WINDIR\System32\PnPutil.exe 0 nopnp
+               ${DisableX64FSRedirection}
+               nsExec::ExecToLog '"$WINDIR\System32\PnPutil.exe" -i -a "$INSTDIR\altusmetrum.inf"'
+               Goto done
+nopnp:
+               InstDrv::InstallDriver /NOUNLOAD "$INSTDIR\altusmetrum.inf"
+done:
 
 SectionEnd
 
@@ -119,6 +146,7 @@ Section "TeleMetrum, TeleDongle and TeleBT Firmware"
        File "../src/telemetrum-v1.1/telemetrum-v1.1-${VERSION}.ihx"
        File "../src/telemetrum-v1.2/telemetrum-v1.2-${VERSION}.ihx"
        File "../src/telemini-v1.0/telemini-v1.0-${VERSION}.ihx"
+       File "../src/telegps-v1.0/telegps-v1.0-${VERSION}.ihx"
        File "../src/teledongle-v0.2/teledongle-v0.2-${VERSION}.ihx"
        File "../src/telebt-v1.0/telebt-v1.0-${VERSION}.ihx"
        File "../src/telemega-v1.0/telemega-v1.0-${VERSION}.ihx"
@@ -164,9 +192,6 @@ Section "Uninstall"
        Delete "$INSTDIR\*.*"
        RMDir "$INSTDIR"
 
-       ; Remove .inf file
-       Delete "$WINDIR\Inf\telemetrum.inf"
-
        ; Remove devices
        InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
        InstDrv::DeleteOemInfFiles /NOUNLOAD
diff --git a/altusmetrum.cat b/altusmetrum.cat
new file mode 100644 (file)
index 0000000..2d7e8b2
Binary files /dev/null and b/altusmetrum.cat differ
diff --git a/altusmetrum.inf b/altusmetrum.inf
new file mode 100755 (executable)
index 0000000..45905cc
--- /dev/null
@@ -0,0 +1,170 @@
+; Copyright (C) 2010 Keith Packard (keithp@keithp.com)\r
+; released under GNU General Public License version 2\r
+\r
+[Version]\r
+Signature      = "$Windows NT$"\r
+Class          = Modem\r
+ClassGUID      = {4D36E96D-E325-11CE-BFC1-08002BE10318}\r
+Provider       = %Mfg%\r
+DriverVer      = 06/15/2014,7.1.1.0\r
+PnpLockDown    = 0\r
+DriverPackageDisplayName = %DriverName%\r
+CatalogFile    = altusmetrum.cat\r
+\r
+[DestinationDirs]\r
+FakeModemCopyFileSection = 12\r
+DefaultDestDir = 12\r
+\r
+[ControlFlags]\r
+\r
+[Manufacturer]\r
+%Mfg% = Models, NTx86, NTamd64, NTia64\r
+\r
+[Models]\r
+%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
+%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
+%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
+%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
+%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
+%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
+%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
+%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
+%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
+%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
+%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
+%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
+%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
+%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
+%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
+%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
+%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
+%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
+%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
+%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
+\r
+[Models.NTx86]\r
+%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
+%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
+%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
+%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
+%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
+%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
+%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
+%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
+%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
+%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
+%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
+%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
+%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
+%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
+%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
+%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
+%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
+%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
+%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
+%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
+\r
+[Models.NTamd64]\r
+%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
+%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
+%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
+%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
+%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
+%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
+%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
+%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
+%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
+%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
+%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
+%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
+%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
+%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
+%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
+%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
+%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
+%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
+%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
+%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
+\r
+[Models.NTia64]\r
+%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
+%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
+%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
+%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
+%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
+%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
+%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
+%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
+%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
+%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
+%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
+%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
+%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
+%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
+%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
+%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
+%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
+%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
+%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
+%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
+\r
+;----------------------------------------------------------------------------\r
+; Installation sections\r
+;----------------------------------------------------------------------------\r
+\r
+[AltusMetrum.Install.NT]\r
+include                = mdmcpq.inf\r
+CopyFiles      = FakeModemCopyFileSection\r
+AddReg         = All.AddReg, Modem.AddReg, Uninstall.AddReg\r
+\r
+[AltusMetrum.Install.NT.Services]\r
+include                = mdmcpq.inf\r
+AddService     = usbser, 0x00000000, LowerFilter_Service_Inst\r
+\r
+[AltusMetrum.Install.NT.HW]\r
+include                = mdmcpq.inf\r
+AddReg         = LowerFilterAddReg\r
+\r
+;----------------------------------------------------------------------------\r
+; AddReg sections\r
+;----------------------------------------------------------------------------\r
+\r
+[All.AddReg]\r
+HKR,,FriendlyDriver,,          Unimodem.vxd\r
+HKR,,DevLoader,,               *vcomm\r
+HKR,,ConfigDialog,,            modemui.dll\r
+HKR,,EnumPropPages,,           "modemui.dll,EnumPropPages"\r
+HKR,,PortSubClass, 1,          02\r
+HKR,,DeviceType, 1,            01\r
+\r
+[Modem.AddReg]\r
+HKR,, Properties, 1, C0,01,00,00, 00,00,00,00, FF,00,00,00, 07,00,00,00, 0F,00,00,00, F7,0F,00,00, 00,84,03,00, C0,DA,00,00\r
+\r
+[Uninstall.AddReg]\r
+HKLM,Software\Microsoft\Windows\CurrentVersion\Uninstall\%AltusMetrum%,DisplayName,,"%AltusMetrum%"\r
+\r
+[Strings]\r
+Mfg            = "altusmetrum.org"\r
+AltusMetrum    = "AltusMetrum"\r
+TeleMetrum     = "TeleMetrum"\r
+TeleDongle     = "TeleDongle"\r
+TeleTerra      = "TeleTerra"\r
+TeleBT         = "TeleBT"\r
+TeleLaunch     = "TeleLaunch"\r
+TeleLCO                = "TeleLCO"\r
+TeleScience    = "TeleScience"\r
+TelePyro       = "TelePyro"\r
+TeleShield     = "TeleShield"\r
+TeleMega       = "TeleMega"\r
+MegaDongle     = "MegaDongle"\r
+TeleGPS                = "TeleGPS"\r
+EasyMini       = "EasyMini"\r
+TeleMini       = "TeleMini"\r
+AltusMetrum28  = "AltusMetrum28"\r
+AltusMetrum29  = "AltusMetrum29"\r
+AltusMetrum2a  = "AltusMetrum2a"\r
+AltusMetrum2b  = "AltusMetrum2b"\r
+AltusMetrum2c  = "AltusMetrum2c"\r
+\r
+DriverName     = "Altus Metrum Device Driver"\r
+\r
index 92b5a6e8625fad711a25e7958eed16a94642dd8e..b1c00f4b4e50415ee3b466d431f1ef8f6a05226e 100644 (file)
@@ -38,18 +38,18 @@ clean-local:
 
 $(AM_FILES): altusmetrum.build
 
-altusmetrum.build: altusmetrum.svg make-png
-       for i in $(RES); do ./make-png altusmetrum.svg $$i altus-metrum-$$i.png; done && touch $@
+altusmetrum.build: altusmetrum.svg
+       for i in $(RES); do rsvg-convert -w $$i -h $$i -o altus-metrum-$$i.png altusmetrum.svg; done && touch $@
 
 $(TG_FILES): telegps.build
 
-telegps.build: telegps.svg make-png
-       for i in $(RES); do ./make-png telegps.svg $$i telegps-$$i.png; done && touch $@
+telegps.build: telegps.svg
+       for i in $(RES); do rsvg-convert -w $$i -h $$i -o telegps-$$i.png telegps.svg; done && touch $@
 
 $(MP_FILES): micropeak.build
 
-micropeak.build: micropeak.svg make-png
-       for i in $(RES); do ./make-png micropeak.svg $$i micropeak-$$i.png; done && touch $@
+micropeak.build: micropeak.svg
+       for i in $(RES); do rsvg-convert -w $$i -h $$i -o micropeak-$$i.png micropeak.svg; done && touch $@
 
 #clean-local:
 #      $(RM) -f $(ICO_FILES)
index 256b8c5aa435ee1ca3183b1f3659dd925ccc2500..e8935a65aaa2fe99ad581664e873963117cafa50 100644 (file)
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    id="svg2"
-   width="191.28"
-   height="245.28"
+   width="214.27165"
+   height="266.00192"
    version="1.0"
    sodipodi:version="0.32"
    inkscape:version="0.48.4 r9939"
-   sodipodi:docname="altusmetrum-only.svg"
+   sodipodi:docname="altusmetrum.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape"
    inkscape:export-filename="/home/keithp/src/cc1111/altus-logo/bottom.png"
    inkscape:export-xdpi="119.89881"
@@ -29,7 +29,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
        fx="951.68713"
        fy="1205.2668"
        r="951.68701" />
+    <filter
+       id="filter3005"
+       inkscape:label="Drop Shadow"
+       color-interpolation-filters="sRGB">
+      <feFlood
+         id="feFlood3007"
+         flood-opacity="0.604"
+         flood-color="rgb(0,0,0)"
+         result="flood" />
+      <feComposite
+         id="feComposite3009"
+         in2="SourceGraphic"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur3011"
+         stdDeviation="80"
+         result="blur" />
+      <feOffset
+         id="feOffset3013"
+         dx="100"
+         dy="100"
+         result="offset" />
+      <feComposite
+         id="feComposite3015"
+         in2="offset"
+         in="SourceGraphic"
+         operator="over"
+         result="composite2" />
+    </filter>
   </defs>
   <sodipodi:namedview
-     inkscape:cy="107.44765"
-     inkscape:cx="270.26251"
-     inkscape:zoom="0.86831672"
-     inkscape:window-height="709"
-     inkscape:window-width="1006"
+     inkscape:cy="128.91168"
+     inkscape:cx="271.89232"
+     inkscape:zoom="2.4559706"
+     inkscape:window-height="1177"
+     inkscape:window-width="1462"
      inkscape:pageshadow="2"
      inkscape:pageopacity="0.0"
      guidetolerance="10.0"
      inkscape:window-x="266"
      inkscape:window-y="43"
      inkscape:current-layer="svg2"
-     inkscape:window-maximized="0" />
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="20"
+     fit-margin-bottom="20" />
   <g
-     transform="matrix(0.1,0,0,0.1,1.1516425,2.6405446)"
+     transform="matrix(0.1,0,0,0.1,1.967113,2.4742836)"
      id="g3"
-     style="fill:url(#radialGradient3175);fill-opacity:1;stroke:url(#radialGradient3171);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none">
+     style="fill:url(#radialGradient3175);fill-opacity:1;stroke:url(#radialGradient3171);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter3005)">
     <g
        transform="translate(20.61545,-27.69425)"
        style="fill:url(#radialGradient3028);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient3030);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
diff --git a/icon/make-png b/icon/make-png
deleted file mode 100755 (executable)
index d9dde54..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-case $# in
-3)
-       ;;
-*)
-       echo "Usage: $0 <input.svg> <size> <output.png>" 1>&2
-       exit 1
-       ;;
-esac
-
-SVG=$1
-SIZE=$2
-PNG=$3
-
-SHADOW=$(($SIZE / 16))
-
-OPACITY=60
-BLUR=$(($SHADOW / 2))
-
-if [ $BLUR = 0 ]; then
-    BLUR=1
-fi
-
-SHIFT=$(($SHADOW * 3 / 4))
-
-IMAGE=$(($SIZE - $SHIFT - $BLUR))
-
-TMP=image-$$.png
-
-trap "rm $TMP" 0 1 15
-
-rsvg-convert -w $IMAGE -h $IMAGE -o $TMP $SVG
-
-convert $TMP \
-       \( +clone -background black -shadow ${OPACITY}x${BLUR}+${SHIFT}+${SHIFT} \) \
-       +swap -background none -layers merge -crop ${SIZE}x${SIZE}+0+0 +repage $PNG
index e6fbe120bfbfc642efea18ef6f85d6c9a6340bdf..d37130f5df936fdcee2393e4eb477a8d023b2439 100644 (file)
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="45.831875"
-   height="39.638676"
+   width="49.03825"
+   height="43.606411"
    id="svg2"
    version="1.1"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="micropeak-logoonly.svg">
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="micropeak.svg">
   <defs
      id="defs4">
     <linearGradient
        x2="280.61411"
        y2="275.90405"
        gradientUnits="userSpaceOnUse" />
+    <filter
+       id="filter3027"
+       inkscape:label="Drop Shadow"
+       color-interpolation-filters="sRGB">
+      <feFlood
+         id="feFlood3029"
+         flood-opacity="0.604"
+         flood-color="rgb(0,0,0)"
+         result="flood" />
+      <feComposite
+         id="feComposite3031"
+         in2="SourceGraphic"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur3033"
+         stdDeviation="1.6"
+         result="blur" />
+      <feOffset
+         id="feOffset3035"
+         dx="2"
+         dy="2"
+         result="offset" />
+      <feComposite
+         id="feComposite3037"
+         in2="offset"
+         in="SourceGraphic"
+         operator="over"
+         result="composite2" />
+    </filter>
   </defs>
   <sodipodi:namedview
      id="base"
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="16.321712"
-     inkscape:cx="39.30468"
-     inkscape:cy="28.417907"
+     inkscape:zoom="8.160856"
+     inkscape:cx="33.152671"
+     inkscape:cy="27.859227"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
-     inkscape:window-width="1871"
-     inkscape:window-height="1383"
-     inkscape:window-x="653"
-     inkscape:window-y="147"
+     inkscape:window-width="1277"
+     inkscape:window-height="894"
+     inkscape:window-x="543"
+     inkscape:window-y="242"
      inkscape:window-maximized="0"
-     fit-margin-top="0.8"
-     fit-margin-left="0"
-     fit-margin-right="0.8"
+     fit-margin-top="-3"
+     fit-margin-left="-4"
+     fit-margin-right="-1"
      fit-margin-bottom="0" />
   <metadata
      id="metadata7">
      inkscape:label="Layer 1"
      inkscape:groupmode="layer"
      id="layer1"
-     transform="translate(-241.93841,-252.5146)">
+     transform="translate(-241.43522,-252.43073)">
     <g
-       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#7200a4;fill-opacity:1;stroke:none;font-family:Minion Pro;-inkscape-font-specification:Minion Pro"
-       id="text2985">
+       id="g3000"
+       style="filter:url(#filter3027)">
+      <g
+         id="text2985"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#7200a4;fill-opacity:1;stroke:none;font-family:Minion Pro;-inkscape-font-specification:Minion Pro">
+        <path
+           inkscape:connector-curvature="0"
+           id="path3003"
+           style="font-size:36px;font-weight:500;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#7200a4;font-family:ITC Benguiat Gothic Std;-inkscape-font-specification:ITC Benguiat Gothic Std Medium"
+           d="m 257.20241,268.30647 c 0,-1.07999 -0.396,-1.872 -1.584,-1.872 -1.188,0 -1.584,0.79201 -1.584,1.872 l 0,8.676 c 0,2.88 -2.052,5.112 -4.824,5.112 -3.06,0 -4.104,-1.872 -4.104,-5.076 l 0,-8.712 c 0,-1.07999 -0.396,-1.872 -1.584,-1.872 -1.188,0 -1.584,0.79201 -1.584,1.872 l 0,21.924 c 0,1.08 0.396,1.872 1.584,1.872 1.188,0 1.584,-0.792 1.584,-1.872 l 0,-6.156 c 0.792,0.612 2.088,0.972 3.564,0.972 2.304,0 4.428,-0.792 5.652,-2.988 l 0.072,0.072 0,1.26 c 0,0.864 0.54,1.44 1.404,1.44 0.864,0 1.404,-0.576 1.404,-1.44 l 0,-15.084" />
+      </g>
       <path
-         d="m 257.20241,268.30647 c 0,-1.07999 -0.396,-1.872 -1.584,-1.872 -1.188,0 -1.584,0.79201 -1.584,1.872 l 0,8.676 c 0,2.88 -2.052,5.112 -4.824,5.112 -3.06,0 -4.104,-1.872 -4.104,-5.076 l 0,-8.712 c 0,-1.07999 -0.396,-1.872 -1.584,-1.872 -1.188,0 -1.584,0.79201 -1.584,1.872 l 0,21.924 c 0,1.08 0.396,1.872 1.584,1.872 1.188,0 1.584,-0.792 1.584,-1.872 l 0,-6.156 c 0.792,0.612 2.088,0.972 3.564,0.972 2.304,0 4.428,-0.792 5.652,-2.988 l 0.072,0.072 0,1.26 c 0,0.864 0.54,1.44 1.404,1.44 0.864,0 1.404,-0.576 1.404,-1.44 l 0,-15.084"
-         style="font-size:36px;font-weight:500;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#7200a4;font-family:ITC Benguiat Gothic Std;-inkscape-font-specification:ITC Benguiat Gothic Std Medium"
-         id="path3003"
-         inkscape:connector-curvature="0" />
+         sodipodi:nodetypes="cssc"
+         inkscape:connector-curvature="0"
+         id="path2991"
+         d="m 256.93561,290.70327 c 3.04022,-0.24413 4.30317,-2.66932 5.38268,-5.56604 1.68059,-4.50963 3.67214,-15.86904 8.62227,-20.55527 4.0668,-3.85 8.22354,-3.46656 8.22354,-3.46656"
+         style="fill:none;stroke:url(#linearGradient5349);stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" />
+      <path
+         inkscape:transform-center-y="-0.40889198"
+         inkscape:transform-center-x="-0.29194889"
+         d="m 282.7522,267.42614 -3.93403,-2.77705 -4.51792,1.66641 1.42544,-4.59964 -2.98096,-3.78185 4.815,-0.0657 2.67559,-4.00372 1.55039,4.55904 4.63457,1.30742 -3.85681,2.88333 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="1.7014539"
+         sodipodi:arg1="1.0731354"
+         sodipodi:r2="3.6257365"
+         sodipodi:r1="7.2514729"
+         sodipodi:cy="261.05426"
+         sodipodi:cx="279.29056"
+         sodipodi:sides="5"
+         id="path5341"
+         style="fill:none;stroke:#da7000;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
     </g>
-    <path
-       style="fill:none;stroke:url(#linearGradient5349);stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none"
-       d="m 256.93561,290.70327 c 3.04022,-0.24413 4.30317,-2.66932 5.38268,-5.56604 1.68059,-4.50963 3.67214,-15.86904 8.62227,-20.55527 4.0668,-3.85 8.22354,-3.46656 8.22354,-3.46656"
-       id="path2991"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cssc" />
-    <path
-       sodipodi:type="star"
-       style="fill:none;stroke:#da7000;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path5341"
-       sodipodi:sides="5"
-       sodipodi:cx="279.29056"
-       sodipodi:cy="261.05426"
-       sodipodi:r1="7.2514729"
-       sodipodi:r2="3.6257365"
-       sodipodi:arg1="1.0731354"
-       sodipodi:arg2="1.7014539"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="m 282.7522,267.42614 -3.93403,-2.77705 -4.51792,1.66641 1.42544,-4.59964 -2.98096,-3.78185 4.815,-0.0657 2.67559,-4.00372 1.55039,4.55904 4.63457,1.30742 -3.85681,2.88333 z"
-       inkscape:transform-center-x="-0.29194889"
-       inkscape:transform-center-y="-0.40889198" />
   </g>
 </svg>
index a14267bc417b78eef4d2b57dd7199d24f24760fa..1e390f3bbcdfeaa5394ccf004f36aefe46b8a972 100644 (file)
@@ -10,8 +10,8 @@
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="141.19534"
-   height="135.41844"
+   width="151.43401"
+   height="144.50209"
    id="svg2"
    version="1.1"
    inkscape:version="0.48.4 r9939"
        r="70.597672"
        gradientTransform="matrix(1,0,0,0.95908583,137.14286,74.776711)"
        gradientUnits="userSpaceOnUse" />
+    <filter
+       id="filter3238"
+       inkscape:label="Drop Shadow"
+       color-interpolation-filters="sRGB">
+      <feFlood
+         id="feFlood3240"
+         flood-opacity="0.604"
+         flood-color="rgb(0,0,0)"
+         result="flood" />
+      <feComposite
+         id="feComposite3242"
+         in2="SourceGraphic"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur3244"
+         stdDeviation="4"
+         result="blur" />
+      <feOffset
+         id="feOffset3246"
+         dx="5"
+         dy="5"
+         result="offset" />
+      <feComposite
+         id="feComposite3248"
+         in2="offset"
+         in="SourceGraphic"
+         operator="over"
+         result="composite2" />
+    </filter>
   </defs>
   <sodipodi:namedview
      id="base"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="3.959798"
-     inkscape:cx="89.129775"
-     inkscape:cy="34.623372"
+     inkscape:cx="91.754359"
+     inkscape:cy="68.172898"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="2560"
-     inkscape:window-height="1582"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1" />
+     fit-margin-top="-12"
+     fit-margin-left="-12"
+     fit-margin-right="-6"
+     fit-margin-bottom="-6"
+     inkscape:window-width="996"
+     inkscape:window-height="970"
+     inkscape:window-x="930"
+     inkscape:window-y="553"
+     inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
     <rdf:RDF>
      inkscape:label="Layer 1"
      inkscape:groupmode="layer"
      id="layer1"
-     transform="translate(-261.09094,-353.45446)">
+     transform="translate(-258.97144,-351.91262)">
     <path
-       style="fill:url(#radialGradient4101);fill-opacity:1"
+       style="fill:url(#radialGradient4101);fill-opacity:1;filter:url(#filter3238)"
        d="m 261.09094,466.61035 1.9122,-1.69399 39.0721,-36.4688 20.74158,22.05252 -40.71991,38.37279 z m 36.24983,1.34654 -14.08636,-15.38433 -15.33887,14.40857 14.50759,15.23741 z m 18.98704,-17.58715 -14.47613,-15.53942 -14.95191,14.42099 14.19976,15.37575 z m 43.2565,3.24033 -5.69326,-6.00917 -2.76929,1.85727 c -5.01515,3.36349 -10.61773,4.75193 -13.55344,3.35884 -0.90785,-0.4308 -11.20677,-10.85557 -16.46128,-16.61505 -6.3177,-6.92484 -17.77225,-18.68338 -18.08204,-21.53696 l -0.25491,-2.34789 -6.68224,-3.00173 -6.68224,-3.00173 -0.12416,-2.54849 c -0.24316,-4.99109 2.61694,-11.66135 7.10652,-16.57368 6.51922,-7.13306 14.23173,-10.81215 21.4071,-10.21178 l 2.49577,0.20881 2.34108,7.3087 2.34109,7.3087 2.0542,0.21626 c 1.12981,0.11895 2.29245,0.36702 2.58364,0.55127 0.29119,0.18424 11.17756,11.55849 16.63562,17.46044 5.67391,6.13537 16.35301,17.71615 16.74619,18.65715 1.36492,3.26672 -0.56522,9.34479 -4.44838,14.00803 -0.92939,1.1161 -1.6875,2.14976 -1.6847,2.29703 0.003,0.14726 2.44601,2.88431 5.42933,6.08233 2.98332,3.19801 5.42421,6.02814 5.42421,6.28919 0,0.66794 -0.91528,1.72591 -1.73982,2.01104 -0.50334,0.17406 -2.27007,-1.42112 -6.38899,-5.76858 z m -13.8944,-6.52384 c 0.96195,-0.49074 2.46683,-1.3673 3.34417,-1.94791 l 1.59519,-1.05564 -1.69025,-1.72225 c -1.71532,-1.74777 -2.09589,-2.99732 -1.1891,-3.90412 0.98407,-0.98406 2.33559,-0.53387 3.9423,1.31314 l 1.57825,1.81431 1.43638,-1.7099 c 1.7115,-2.03742 3.3933,-5.47555 3.39008,-6.9304 -0.0104,-4.68327 -7.01613,-2.68794 -13.36898,3.80766 -4.26282,4.35861 -6.32786,9.57528 -4.26584,10.77629 1.19252,0.69458 3.36009,0.51166 5.2278,-0.44118 z m -37.53066,-44.39022 c 2.23934,-2.70633 7.29399,-6.99375 10.13666,-8.59806 1.69887,-0.95877 2.21231,-1.46174 2.04152,-1.99985 -0.1255,-0.3954 -1.05734,-3.0661 -2.07077,-5.93487 l -1.84259,-5.21596 -1.60649,0.12825 c -4.1301,0.32972 -9.06228,2.86043 -13.29918,6.82384 -4.03277,3.77245 -7.7843,10.20829 -7.89014,13.53572 l -0.0463,1.4539 5.4085,2.47197 5.4085,2.47197 1.02919,-1.54008 c 0.56606,-0.84704 1.79503,-2.46562 2.73105,-3.59683 z m 32.91039,-10.47213 40.55794,-38.76942 c 7.09795,7.71166 14.5366,15.63755 20.65837,22.2503 l -40.53088,38.2414 z m 35.73645,1.02093 -14.2595,-15.3791 -15.29495,14.35785 14.65467,15.14661 z m 18.6801,-17.55816 -14.10162,-15.40128 -15.32812,14.3973 14.52992,15.24342 z"
        id="path3063"
        inkscape:connector-curvature="0"
index 656f8af3e4757d2e43c83ef5f516a74cb387a384..6dc9d8c15ebedd739ed59cd6a7e4359f62c69cd6 100644 (file)
@@ -1,8 +1,10 @@
 !addplugindir Instdrv/NSIS/Plugins
-; Definitions for Java 1.6 Detection
-!define JRE_VERSION "1.6"
-!define JRE_ALTERNATE "1.7"
-!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52247&/jre-6u27-windows-i586-p.exe"
+!include x64.nsh
+; Definitions for Java 1.7 Detection
+!define JRE_VERSION "1.7"
+!define JRE_ALTERNATE "1.6"
+!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83383&/jre-7u51-windows-i586.exe"
+!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83385&/jre-7u51-windows-x64.exe"
 !define PRODUCT_NAME "Altus Metrum Windows Software"
 
 Name "Altus Metrum MicroPeak Installer"
@@ -23,12 +25,34 @@ ShowInstDetails Show
 
 ComponentText "Altus Metrum MicroPeak Software Installer"
 
+Function .onInit
+       DetailPrint "Checking host operating system"
+       ${If} ${RunningX64}
+               DetailPrint "Installer running on 64-bit host"
+               SetRegView 64
+               StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum"
+               ${DisableX64FSRedirection}
+       ${EndIf}
+FunctionEnd
+
+Var JavaDownload
+Var JavaBits
+
 Function GetJRE
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION} 32-bit, it will now \
-                         be downloaded and installed"
+       ${If} ${RunningX64}
+          StrCpy $JavaDownload ${JRE64_URL}
+          StrCpy $JavaBits "64"
+       ${Else}
+          StrCpy $JavaDownload ${JRE32_URL}
+          StrCpy $JavaBits "32"
+       ${EndIf}
+
+        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, \
+                       $JavaBits bits, it will now \
+                        be downloaded and installed"
 
         StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
+        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
         Pop $R0 ;Get the return value
                 StrCmp $R0 "success" +3
                 MessageBox MB_OK "Download failed: $R0"
@@ -37,7 +61,6 @@ Function GetJRE
         Delete $2
 FunctionEnd
 
-
 Function DetectJRE
   ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
              "CurrentVersion"
diff --git a/signing-driver b/signing-driver
new file mode 100644 (file)
index 0000000..177c507
--- /dev/null
@@ -0,0 +1,20 @@
+Notes on getting a signing key for driver signing
+
+http://technet.microsoft.com/en-us/library/dd919238%28v=ws.10%29.aspx
+
+# use MMC to add the certificates snap-in for ComputerAccount on Local computer
+
+Run console as Administrator:
+
+makecert -r -n "CN=AltusMetrum" -ss AltusMetrumCertStore -sr LocalMachine
+
+# <path> contains the altusmetrum.inf file we ship. Make sure <path>
+# is otherwise empty or inf2cat will get confused
+
+inf2cat /driver:<path> /os:7_X86,7_X64,8_X86,8_X64
+
+signtool sign /s AltusMetrumCertStore /n “AltusMetrum"
+         /t http://timestamp.verisign.com/scripts/timestamp.dll
+         altusmetrum.cat
+
+pnputil -i -a altusmetrum.inf
index 5812756fc3cf8e865eb24cde20280cb69f6d755b..7b550e9eccd00573c9b53be1d8d78045944c2080 100644 (file)
@@ -128,7 +128,7 @@ MACOSX_README=ReadMe-Mac.rtf
 MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_README) $(DOC) $(MACOSX_ICON)
 MACOSX_EXTRA=$(FIRMWARE)
 
-WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(top_srcdir)/telemetrum.inf $(DOC) $(WINDOWS_ICON)
+WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(top_srcdir)/altusmetrum.inf $(top_srcdir)/altusmetrum.cat $(DOC) $(WINDOWS_ICON)
 
 if FATINSTALL
 
index 92b509748092eacade7f2c46f18fe17f19a127b5..e6798c46783cba7cd9fe6bbc311e28c33df5e169 100644 (file)
@@ -1,11 +1,13 @@
 !addplugindir ../altosui/Instdrv/NSIS/Plugins
-; Definitions for Java 1.6 Detection
-!define JRE_VERSION "1.6"
-!define JRE_ALTERNATE "1.7"
-!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52247&/jre-6u27-windows-i586-p.exe"
-!define PRODUCT_NAME "Altus Metrum Windows Software"
+!include x64.nsh
+; Definitions for Java 1.7 Detection
+!define JRE_VERSION "1.7"
+!define JRE_ALTERNATE "1.6"
+!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83383&/jre-7u51-windows-i586.exe"
+!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83385&/jre-7u51-windows-x64.exe"
+!define PRODUCT_NAME "TeleGPS Windows Software"
 
-Name "Altus Metrum TeleGPS Installer"
+Name "TeleGPS Installer"
 
 ; Default install directory
 InstallDir "$PROGRAMFILES\AltusMetrum"
@@ -21,14 +23,36 @@ RequestExecutionLevel admin
 
 ShowInstDetails Show
 
-ComponentText "Altus Metrum TeleGPS Software Installer"
+ComponentText "TeleGPS Software Installer"
+
+Function .onInit
+       DetailPrint "Checking host operating system"
+       ${If} ${RunningX64}
+               DetailPrint "Installer running on 64-bit host"
+               SetRegView 64
+               StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum"
+               ${DisableX64FSRedirection}
+       ${EndIf}
+FunctionEnd
+
+Var JavaDownload
+Var JavaBits
 
 Function GetJRE
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION} 32-bit, it will now \
-                         be downloaded and installed"
+       ${If} ${RunningX64}
+          StrCpy $JavaDownload ${JRE64_URL}
+          StrCpy $JavaBits "64"
+       ${Else}
+          StrCpy $JavaDownload ${JRE32_URL}
+          StrCpy $JavaBits "32"
+       ${EndIf}
+
+        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, \
+                       $JavaBits bits, it will now \
+                        be downloaded and installed"
 
         StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
+        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
         Pop $R0 ;Get the return value
                 StrCmp $R0 "success" +3
                 MessageBox MB_OK "Download failed: $R0"
@@ -37,10 +61,10 @@ Function GetJRE
         Delete $2
 FunctionEnd
 
-
 Function DetectJRE
   ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
              "CurrentVersion"
+
   StrCmp $2 ${JRE_VERSION} done
 
   StrCmp $2 ${JRE_ALTERNATE} done
@@ -70,15 +94,18 @@ Section "Install Driver" InstDriver
        InstDrv::DeleteOemInfFiles /NOUNLOAD
        InstDrv::CreateDevice /NOUNLOAD
 
-       SetOutPath $TEMP
-       File "../telemetrum.inf"
-       InstDrv::InstallDriver /NOUNLOAD "$TEMP\telemetrum.inf"
-
        SetOutPath $INSTDIR
-       File "../telemetrum.inf"
-
-       SetOutPath $WINDIR\Inf
-       File "../telemetrum.inf"
+       File "../altusmetrum.inf"
+       File "../altusmetrum.cat"
+
+       ${DisableX64FSRedirection}
+       IfFileExists $WINDIR\System32\PnPutil.exe 0 nopnp
+               ${DisableX64FSRedirection}
+               nsExec::ExecToLog '"$WINDIR\System32\PnPutil.exe" -i -a "$INSTDIR\altusmetrum.inf"'
+               Goto done
+nopnp:
+               InstDrv::InstallDriver /NOUNLOAD "$INSTDIR\altusmetrum.inf"
+done:
 
 SectionEnd
 
@@ -111,13 +138,14 @@ Section "TeleGPS Desktop Shortcut"
        CreateShortCut "$DESKTOP\TeleGPS.lnk" "$INSTDIR\telegps-fat.jar"  "" "$INSTDIR\telegps.ico"
 SectionEnd
 
-Section "TeleGPS Firmware"
+Section "TeleGPS, TeleDongle and TeleBT Firmware"
 
        SetOutPath $INSTDIR
 
        File "../src/telegps-v1.0/telegps-v1.0-${VERSION}.ihx"
        File "../src/teledongle-v0.2/teledongle-v0.2-${VERSION}.ihx"
        File "../src/telebt-v1.0/telebt-v1.0-${VERSION}.ihx"
+
 SectionEnd
 
 Section "Documentation"
@@ -154,6 +182,11 @@ Section "Uninstall"
        Delete "$INSTDIR\*.*"
        RMDir "$INSTDIR"
 
+       ; Remove devices
+       InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
+       InstDrv::DeleteOemInfFiles /NOUNLOAD
+       InstDrv::RemoveAllDevices
+
        ; Remove shortcuts, if any
        Delete "$SMPROGRAMS\TeleGPS.lnk"
        Delete "$DESKTOP\TeleGPS.lnk"
diff --git a/telemetrum.inf b/telemetrum.inf
deleted file mode 100755 (executable)
index 220069b..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-; Copyright (C) 2010 Keith Packard (keithp@keithp.com)\r
-; released under GNU General Public License version 2\r
-\r
-[Version]\r
-Signature      = "$Windows NT$"\r
-Class          = Modem\r
-ClassGUID      = {4D36E96D-E325-11CE-BFC1-08002BE10318}\r
-Provider       = %Mfg%\r
-DriverVer      = 08/05/2010,7.1.1.0\r
-PnpLockDown    = 0\r
-DriverPackageDisplayName = %DriverName%\r
-\r
-[DestinationDirs]\r
-FakeModemCopyFileSection = 12\r
-DefaultDestDir = 12\r
-\r
-[ControlFlags]\r
-\r
-[Manufacturer]\r
-%Mfg% = Models, NTx86, NTamd64, NTia64\r
-\r
-[Models]\r
-%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
-%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
-%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
-%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
-%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
-%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
-%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
-%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
-%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
-%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
-%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
-%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
-%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
-%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
-%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
-%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
-%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
-%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
-%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
-%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
-\r
-[Models.NTx86]\r
-%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
-%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
-%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
-%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
-%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
-%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
-%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
-%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
-%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
-%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
-%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
-%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
-%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
-%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
-%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
-%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
-%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
-%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
-%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
-%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
-\r
-[Models.NTamd64]\r
-%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
-%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
-%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
-%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
-%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
-%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
-%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
-%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
-%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
-%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
-%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
-%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
-%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
-%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
-%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
-%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
-%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
-%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
-%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
-%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
-\r
-[Models.NTia64]\r
-%AltusMetrum%  = AltusMetrum.Install, USB\VID_FFFE&PID_000A, AltusMetrumSerial\r
-%TeleMetrum%   = AltusMetrum.Install, USB\VID_FFFE&PID_000B, AltusMetrumSerial\r
-%TeleDongle%   = AltusMetrum.Install, USB\VID_FFFE&PID_000C, AltusMetrumSerial\r
-%TeleTerra%    = AltusMetrum.Install, USB\VID_FFFE&PID_000D, AltusMetrumSerial\r
-%TeleBT%       = AltusMetrum.Install, USB\VID_FFFE&PID_000e, AltusMetrumSerial\r
-%TeleLaunch%   = AltusMetrum.Install, USB\VID_FFFE&PID_000f, AltusMetrumSerial\r
-%TeleLCO%      = AltusMetrum.Install, USB\VID_FFFE&PID_0010, AltusMetrumSerial\r
-%TeleScience%  = AltusMetrum.Install, USB\VID_FFFE&PID_0011, AltusMetrumSerial\r
-%TelePyro%     = AltusMetrum.Install, USB\VID_FFFE&PID_0012, AltusMetrumSerial\r
-%TeleShield%   = AltusMetrum.Install, USB\VID_FFFE&PID_0013, AltusMetrumSerial\r
-%TeleMega%     = AltusMetrum.Install, USB\VID_FFFE&PID_0023, AltusMetrumSerial\r
-%MegaDongle    = AltusMetrum.Install, USB\VID_FFFE&PID_0024, AltusMetrumSerial\r
-%TeleGPS%      = AltusMetrum.Install, USB\VID_FFFE&PID_0025, AltusMetrumSerial\r
-%EasyMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0026, AltusMetrumSerial\r
-%TeleMini%     = AltusMetrum.Install, USB\VID_FFFE&PID_0027, AltusMetrumSerial\r
-%AltusMetrum28%        = AltusMetrum.Install, USB\VID_FFFE&PID_0028, AltusMetrumSerial\r
-%AltusMetrum29%        = AltusMetrum.Install, USB\VID_FFFE&PID_0029, AltusMetrumSerial\r
-%AltusMetrum2a%        = AltusMetrum.Install, USB\VID_FFFE&PID_002a, AltusMetrumSerial\r
-%AltusMetrum2b%        = AltusMetrum.Install, USB\VID_FFFE&PID_002b, AltusMetrumSerial\r
-%AltusMetrum2c%        = AltusMetrum.Install, USB\VID_FFFE&PID_002c, AltusMetrumSerial\r
-\r
-;----------------------------------------------------------------------------\r
-; Installation sections\r
-;----------------------------------------------------------------------------\r
-\r
-[AltusMetrum.Install.NT]\r
-include                = mdmcpq.inf\r
-CopyFiles      = FakeModemCopyFileSection\r
-AddReg         = All.AddReg, Modem.AddReg, Uninstall.AddReg\r
-\r
-[AltusMetrum.Install.NT.Services]\r
-include                = mdmcpq.inf\r
-AddService     = usbser, 0x00000000, LowerFilter_Service_Inst\r
-\r
-[AltusMetrum.Install.NT.HW]\r
-include                = mdmcpq.inf\r
-AddReg         = LowerFilterAddReg\r
-\r
-;----------------------------------------------------------------------------\r
-; AddReg sections\r
-;----------------------------------------------------------------------------\r
-\r
-[All.AddReg]\r
-HKR,,FriendlyDriver,,          Unimodem.vxd\r
-HKR,,DevLoader,,               *vcomm\r
-HKR,,ConfigDialog,,            modemui.dll\r
-HKR,,EnumPropPages,,           "modemui.dll,EnumPropPages"\r
-HKR,,PortSubClass, 1,          02\r
-HKR,,DeviceType, 1,            01\r
-\r
-[Modem.AddReg]\r
-HKR,, Properties, 1, C0,01,00,00, 00,00,00,00, FF,00,00,00, 07,00,00,00, 0F,00,00,00, F7,0F,00,00, 00,84,03,00, C0,DA,00,00\r
-\r
-[Uninstall.AddReg]\r
-HKLM,Software\Microsoft\Windows\CurrentVersion\Uninstall\%AltusMetrum%,DisplayName,,"%AltusMetrum%"\r
-\r
-[Strings]\r
-Mfg            = "altusmetrum.org"\r
-AltusMetrum    = "AltusMetrum"\r
-TeleMetrum     = "TeleMetrum"\r
-TeleDongle     = "TeleDongle"\r
-TeleTerra      = "TeleTerra"\r
-TeleBT         = "TeleBT"\r
-TeleLaunch     = "TeleLaunch"\r
-TeleLCO                = "TeleLCO"\r
-TeleScience    = "TeleScience"\r
-TelePyro       = "TelePyro"\r
-TeleShield     = "TeleShield"\r
-TeleMega       = "TeleMega"\r
-MegaDongle     = "MegaDongle"\r
-TeleGPS                = "TeleGPS"\r
-EasyMini       = "EasyMini"\r
-TeleMini       = "TeleMini"\r
-AltusMetrum28  = "AltusMetrum28"\r
-AltusMetrum29  = "AltusMetrum29"\r
-AltusMetrum2a  = "AltusMetrum2a"\r
-AltusMetrum2b  = "AltusMetrum2b"\r
-AltusMetrum2c  = "AltusMetrum2c"\r
-\r
-DriverName     = "Altus Metrum Device Driver"\r
-\r