diff --git a/Win32/.gitignore b/Win32/.gitignore deleted file mode 100644 index 5aa0538d..00000000 --- a/Win32/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -* -!*/ - -!*.h -!*.cpp - -!*.bat - -!*.sln -!*.vcproj -!*.vcxproj -!*.vcxproj.filters -!*.iss -!.gitignore diff --git a/Win32/DaemonWin32.cpp b/Win32/DaemonWin32.cpp index 6eb43dc0..698cf390 100644 --- a/Win32/DaemonWin32.cpp +++ b/Win32/DaemonWin32.cpp @@ -60,7 +60,6 @@ namespace i2p } else LogPrint(eLogDebug, "Daemon: running as user"); - return true; } @@ -71,10 +70,10 @@ namespace i2p SetConsoleOutputCP(1251); setlocale(LC_ALL, "Russian"); #ifdef WIN32_APP - if (!i2p::win32::StartWin32App ()) return false; + if (!i2p::win32::StartWin32App ()) return false; - // override log - i2p::config::SetOption("log", std::string ("file")); + // override log + i2p::config::SetOption("log", std::string ("file")); #endif bool ret = Daemon_Singleton::start(); if (ret && i2p::log::Logger().GetLogType() == eLogFile) @@ -92,24 +91,22 @@ namespace i2p bool DaemonWin32::stop() { #ifdef WIN32_APP - i2p::win32::StopWin32App (); + i2p::win32::StopWin32App (); #endif return Daemon_Singleton::stop(); } void DaemonWin32::run () - { + { #ifdef WIN32_APP - i2p::win32::RunWin32App (); + i2p::win32::RunWin32App (); #else while (running) { std::this_thread::sleep_for (std::chrono::seconds(1)); } - #endif - } + } } } - #endif diff --git a/Win32/Itoopie.cmd b/Win32/Itoopie.cmd deleted file mode 100644 index f7d895c8..00000000 --- a/Win32/Itoopie.cmd +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -convert Itoopie.svg ^ - -fuzz 90%% -fill transparent -floodfill 2x2 white -fuzz 20%% -fill #AE0E99 -opaque red ^ - -fill #FBBC11 -opaque yellow ^ - ( -clone 0 -resize 256x256 ) ^ - ( -clone 0 -resize 128x128 ) ^ - ( -clone 0 -resize 64x64 ) ^ - ( -clone 0 -resize 48x48 ) ^ - ( -clone 0 -resize 32x32 ) ^ - ( -clone 0 -resize 24x24 ) ^ - ( -clone 0 -resize 16x16 ) ^ - ( -size 150x57 xc:white -clone 0 -geometry 57x57+46+0 -composite -gravity center -write BMP3:ictoopie.bmp +delete ) ^ - ( -clone 0 -write Itoopie_purple.png +delete ) ^ - -delete 0 ictoopie.ico diff --git a/Win32/PurpleI2P.nsi b/Win32/PurpleI2P.nsi deleted file mode 100644 index 7aa69daf..00000000 --- a/Win32/PurpleI2P.nsi +++ /dev/null @@ -1,282 +0,0 @@ -# NSIS Installer script. (Tested with NSIS 2.64 on Windows 7) -# Author: Mikal Villa (Meeh) -# Version: 1.1 -Name PurpleI2P - -RequestExecutionLevel highest -SetCompressor /SOLID lzma -ShowInstDetails show - -# General Symbol Definitions -!define REGKEY "SOFTWARE\$(^Name)" -!define VERSION 0.3.0.0 -!define COMPANY "The Privacy Solutions Project" -!define URL "https://i2p.io" - -# MUI Symbol Definitions -!define MUI_ICON "mask.ico" -#!define MUI_WELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp" -!define MUI_HEADERIMAGE -!define MUI_HEADERIMAGE_RIGHT -#!define MUI_HEADERIMAGE_BITMAP "../share/pixmaps/nsis-header.bmp" -!define MUI_FINISHPAGE_NOAUTOCLOSE -!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM -!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY} -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup -!define MUI_STARTMENUPAGE_DEFAULTFOLDER PurpleI2P -!define MUI_FINISHPAGE_RUN $INSTDIR\i2pd.exe -!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\Readme.txt - - -!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" -!define MUI_UNWELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp" -!define MUI_UNFINISHPAGE_NOAUTOCLOSE - -# Included files -!include Sections.nsh -!include MUI2.nsh -!include nsDialogs.nsh -!include winmessages.nsh -!include logiclib.nsh -# Local included files -!include nsi\helper_readme.nsh -;!include nsi\servicelib.nsh - -# Variables -Var StartMenuGroup - -# Installer pages -# Execution flow of installer windows -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_README "../Readme.md" -!insertmacro MUI_PAGE_DIRECTORY -# Disabled for now. Use the bat -;Page custom mode_selection # Meeh's hack for installing and starting service. -!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_PAGE_FINISH - -# Uninstall pages -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - -# Installer languages -!insertmacro MUI_LANGUAGE English - -# Installer attributes -OutFile PurpleI2P-0.3.0.0-win32-setup.exe -InstallDir $PROGRAMFILES\PurpleI2P -CRCCheck on -XPStyle on -BrandingText " " -ShowInstDetails show -VIProductVersion 0.3.0.0 -VIAddVersionKey ProductName PurpleI2P -VIAddVersionKey ProductVersion "${VERSION}" -VIAddVersionKey CompanyName "${COMPANY}" -VIAddVersionKey CompanyWebsite "${URL}" -VIAddVersionKey FileVersion "${VERSION}" -VIAddVersionKey FileDescription "" -VIAddVersionKey LegalCopyright "" -InstallDirRegKey HKCU "${REGKEY}" Path -ShowUninstDetails show - -# Readme definitions - -;-------------------------------- -;Languages - ;Set up install lang strings for 1st lang - ${ReadmeLanguage} "${LANG_ENGLISH}" \ - "Read Me" \ - "Please review the following important information." \ - "About $(^name):" \ - "$\n Click on scrollbar arrows or press Page Down to review the entire text." - - ;Add 2nd language - !insertmacro MUI_LANGUAGE "Norwegian" - - ;set up install lang strings for second lang - ${ReadmeLanguage} "${LANG_NORWEGIAN}" \ - "Les meg!" \ - "Vennligst les informasjonen om hvordan du skal bruke PurpleI2P." \ - "Om $(^name):" \ - "$\n Klikk på scrollbaren til høyre for å se hele innholdet." - -;-------------------------------- - -# Installer sections -Section -Main SEC0000 - SetOutPath $INSTDIR - SetOverwrite on - File /oname=i2pd.exe Release\i2pd.exe - File /oname=install_service.bat install_service.bat - File /oname=uninstall_service.bat uninstall_service.bat - File /oname=LICENSE.txt ..\LICENSE - File /oname=Readme.txt ..\README.md - SetOutPath $INSTDIR\src - File /r /x *.nsi /x *.rc /x *.exe /x *.obj /x *.nsh /x *.sln /x *.vcxproj /x *.tlog /x *.log /x *.res /x *.pdb /x *.suo /x *.opensdf /x *.filters /x *.sdf /x *.iss /x *.aps /x .gitignore /x *.o ../\*.* - SetOutPath $INSTDIR - RMDir /r /REBOOTOK $INSTDIR\src\.git # Remove git directory - RMDir /r /REBOOTOK $INSTDIR\src\Win32\Release # Removing release directory - RMDir /r /REBOOTOK $INSTDIR\src\Win32\nsi - WriteRegStr HKCU "${REGKEY}\Components" Main 1 -SectionEnd - -Section -post SEC0001 - WriteRegStr HKCU "${REGKEY}" Path $INSTDIR - SetOutPath $INSTDIR - WriteUninstaller $INSTDIR\uninstall.exe - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory $SMPROGRAMS\$StartMenuGroup - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\PurpleI2P.lnk" $INSTDIR\i2pd.exe - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Install PurpleI2P Service.lnk" $INSTDIR\install_service.bat - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall PurpleI2P Service.lnk" $INSTDIR\uninstall_service.bat - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall PurpleI2P.lnk" $INSTDIR\uninstall.exe - !insertmacro MUI_STARTMENU_WRITE_END - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe - WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1 - WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1 - WriteRegStr HKCR "i2pd" "URL Protocol" "" - WriteRegStr HKCR "i2pd" "" "URL:i2pd" # TODO: if a instance of own is found, relaunch with a proxyfied browser to open webage. (e.g i2pd://meeh.i2p) - WriteRegStr HKCR "i2pd\DefaultIcon" "" $INSTDIR\i2pd.exe - WriteRegStr HKCR "i2pd\shell\open\command" "" '"$INSTDIR\i2pd.exe" "%1"' -SectionEnd - -# Macro for selecting uninstaller sections -!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID - Push $R0 - ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}" - StrCmp $R0 1 0 next${UNSECTION_ID} - !insertmacro SelectSection "${UNSECTION_ID}" - GoTo done${UNSECTION_ID} -next${UNSECTION_ID}: - !insertmacro UnselectSection "${UNSECTION_ID}" -done${UNSECTION_ID}: - Pop $R0 -!macroend - - -# Uninstaller sections -Section /o -un.Main UNSEC0000 - Delete /REBOOTOK $INSTDIR\i2pd.exe - Delete /REBOOTOK $INSTDIR\LICENSE.txt - Delete /REBOOTOK $INSTDIR\Readme.txt - Delete /REBOOTOK $INSTDIR\install_service.bat - Delete /REBOOTOK $INSTDIR\uninstall_service.bat - RMDir /r /REBOOTOK $INSTDIR\src - DeleteRegValue HKCU "${REGKEY}\Components" Main -SectionEnd - -Section -un.post UNSEC0001 - DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall PurpleI2P.lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\PurpleI2P.lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Install PurpleI2P Service.lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\UnInstall PurpleI2P Service.lnk" - Delete /REBOOTOK "$SMSTARTUP\PurpleI2P.lnk" - Delete /REBOOTOK $INSTDIR\uninstall.exe - Delete /REBOOTOK $INSTDIR\debug.log - DeleteRegValue HKCU "${REGKEY}" StartMenuGroup - DeleteRegValue HKCU "${REGKEY}" Path - DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components" - DeleteRegKey /IfEmpty HKCU "${REGKEY}" - DeleteRegKey HKCR "i2pd" - RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup - RmDir /REBOOTOK $INSTDIR - Push $R0 - StrCpy $R0 $StartMenuGroup 1 - StrCmp $R0 ">" no_smgroup -no_smgroup: - Pop $R0 -SectionEnd - -; var hwndExecModeRadio -; var hwndRunServiceNowRadio - -; Function mode_selection -; nsDialogs::Create 1018 -; Pop $0 -; ${NSD_CreateLabel} 0 10 75% 20u "How would you like PurpleI2P (i2pd) to run?" -; Pop $0 - -; ${NSD_CreateRadioButton} 20 60 80% 25u "Service Mode" -; Pop $hwndExecModeRadio -; ${NSD_AddStyle} $hwndExecModeRadio ${WS_GROUP} - -; ${NSD_CreateRadioButton} 20 90 80% 25u "Command line Mode" -; Pop $0 - -; ${NSD_CreateButton} 20 150 -40 14u "Do it!" -; Pop $0 -; ${NSD_OnClick} $0 perform_mode - -; nsDialogs::Show -; FunctionEnd - -; Function start_now_selection -; nsDialogs::Create 1018 -; Pop $0 -; ${NSD_CreateLabel} 0 10 75% 20u "Enable the service now?" -; Pop $0 - -; ${NSD_CreateRadioButton} 20 60 80% 25u "Yes" -; Pop $hwndRunServiceNowRadio -; ${NSD_AddStyle} $hwndRunServiceNowRadio ${WS_GROUP} - -; ${NSD_CreateRadioButton} 20 90 80% 25u "No" -; Pop $0 - -; ${NSD_CreateButton} 20 150 -40 14u "Do it!" -; Pop $0 -; ${NSD_OnClick} $0 perform_mode - -; nsDialogs::Show -; FunctionEnd - -; Function perform_mode -; ${NSD_GetState} $hwndExecModeRadio $0 -; ${If} $0 = ${BST_CHECKED} -; Call service_mode -; ${EndIF} -; FunctionEnd - -; Function start_now -; ${NSD_GetState} $hwndRunServiceNowRadio $0 -; ${If} $0 = ${BST_CHECKED} -; Call start_now_selection -; ${EndIF} -; FunctionEnd - -; Function service_mode -; Push "create" -; Push "PurpleI2P Service" -; Push "$INSTDIR\i2pd.exe;autostart=1;display=PurpleI2P" -; Call Service -; Pop $0 ; Actually more to write than !insertmacro, but much more fun :D -; Push "start" -; Push "PurpleI2P Service" -; Call Service -; Pop $0 -; Call start_now -; !define MUI_FINISHPAGE_RUN_NOTCHECKED -; !define MUI_FINISHPAGE_RUN_TEXT "No need to run now since we already installed and launched it as a Windows service!" -; FunctionEnd - -# Installer functions -Function .onInit - InitPluginsDir - !insertmacro MUI_LANGDLL_DISPLAY -FunctionEnd - -# Uninstaller functions -Function un.onInit - ReadRegStr $INSTDIR HKCU "${REGKEY}" Path - !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup - !insertmacro SELECT_UNSECTION Main ${UNSEC0000} - !insertmacro MUI_UNGETLANGUAGE -FunctionEnd \ No newline at end of file diff --git a/Win32/Resource.rc b/Win32/Resource.rc index cca1c16e..5d394d1a 100644 --- a/Win32/Resource.rc +++ b/Win32/Resource.rc @@ -1,73 +1,36 @@ -// Microsoft Visual C++ generated resource script. -// #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// #include "winres.h" - -///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - 1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include ""winres.h""\r\n" "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" END +#endif // APSTUDIO_INVOKED -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -MAINICON ICON "mask.ico" -//MAINICON ICON "anke.ico" - -#endif // English (United States) resources -///////////////////////////////////////////////////////////////////////////// - - +MAINICON ICON "mask.ico" +#endif // English (United States) resources #ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - #include "Resource.rc2" - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED +#endif // not APSTUDIO_INVOKED diff --git a/Win32/Resource.rc2 b/Win32/Resource.rc2 index b001be82..6a4f481d 100644 --- a/Win32/Resource.rc2 +++ b/Win32/Resource.rc2 @@ -1,18 +1,9 @@ -// -// Resource.RC2 - resources Microsoft Visual C++ does not edit directly -// - #ifdef APSTUDIO_INVOKED #error this file is not editable by Microsoft Visual C++ #endif //APSTUDIO_INVOKED #include "../libi2pd/version.h" -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - VS_VERSION_INFO VERSIONINFO FILEVERSION I2PD_VERSION_MAJOR,I2PD_VERSION_MINOR,I2PD_VERSION_MICRO,I2PD_VERSION_PATCH PRODUCTVERSION I2P_VERSION_MAJOR,I2P_VERSION_MINOR,I2P_VERSION_MICRO,I2P_VERSION_PATCH @@ -34,7 +25,7 @@ BEGIN VALUE "FileDescription", "C++ I2P daemon" VALUE "FileVersion", I2PD_VERSION VALUE "InternalName", CODENAME - VALUE "LegalCopyright", "Copyright (C) 2013-2015, The PurpleI2P Project" + VALUE "LegalCopyright", "Copyright (C) 2013-2017, The PurpleI2P Project" VALUE "OriginalFilename", "i2pd" VALUE "ProductName", "Purple I2P" VALUE "ProductVersion", I2P_VERSION diff --git a/Win32/Win32App.cpp b/Win32/Win32App.cpp index 8f0f7abd..e66b5f08 100644 --- a/Win32/Win32App.cpp +++ b/Win32/Win32App.cpp @@ -38,7 +38,7 @@ namespace win32 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_CONSOLE, "Open &console"); InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_APP, "Show app"); InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_ABOUT, "&About..."); - InsertMenu (hPopup, -1, MF_BYPOSITION | MF_SEPARATOR, NULL, NULL); + InsertMenu (hPopup, -1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_GRACEFUL_SHUTDOWN, "&Graceful shutdown"); InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_EXIT, "E&xit"); SetMenuDefaultItem (hPopup, ID_CONSOLE, FALSE); diff --git a/Win32/Win32Service.h b/Win32/Win32Service.h index 097cb111..95cad3b5 100644 --- a/Win32/Win32Service.h +++ b/Win32/Win32Service.h @@ -7,10 +7,10 @@ #ifdef _WIN32 // Internal name of the service -#define SERVICE_NAME "i2pService" +#define SERVICE_NAME "i2pdService" // Displayed name of the service -#define SERVICE_DISPLAY_NAME "i2p router service" +#define SERVICE_DISPLAY_NAME "i2pd router service" // Service start options. #define SERVICE_START_TYPE SERVICE_DEMAND_START diff --git a/Win32/i2pd.sln b/Win32/i2pd.sln deleted file mode 100644 index 4606b24b..00000000 --- a/Win32/i2pd.sln +++ /dev/null @@ -1,30 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "i2pd", "i2pd.vcxproj", "{930568EC-31C9-406A-AD1C-9636DF5D8FAA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Debug|Win32.ActiveCfg = Debug|Win32 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Debug|Win32.Build.0 = Debug|Win32 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Debug|Win32.Deploy.0 = Debug|Win32 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Debug|x64.ActiveCfg = Debug|x64 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Debug|x64.Build.0 = Debug|x64 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Release|Win32.ActiveCfg = Release|Win32 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Release|Win32.Build.0 = Release|Win32 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Release|Win32.Deploy.0 = Release|Win32 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Release|x64.ActiveCfg = Release|x64 - {930568EC-31C9-406A-AD1C-9636DF5D8FAA}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Win32/i2pd.vcxproj b/Win32/i2pd.vcxproj deleted file mode 100644 index 6426af09..00000000 --- a/Win32/i2pd.vcxproj +++ /dev/null @@ -1,292 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {930568EC-31C9-406A-AD1C-9636DF5D8FAA} - i2pd - - - - Application - true - v120_xp - NotSet - - - Application - true - v120_xp - NotSet - - - Application - false - v120_xp - true - NotSet - - - Application - false - v120_xp - true - NotSet - - - - - - - - - - - - - - - - - - - ./..;$(IncludePath);$(BOOST);$(CRYPTOPP);C:\build-lib\cryptopp;C:\build-lib\boost_1_57_0\ - $(BOOST)\stage\lib;C:\build-lib\cryptopp;C:\build-lib\boost_1_57_0\stage\lib;$(CRYPTOPP)\cryptopp\$(Platform)\Output\$(Configuration);$(LibraryPath) - ./..;$(VC_SourcePath); - $(ProjectName)_d - - - ./..;$(IncludePath);$(BOOST);$(CRYPTOPP) - $(BOOST)\stage\lib;$(CRYPTOPP)\cryptopp\$(Platform)\Output\$(Configuration);$(LibraryPath) - ./..;$(VC_SourcePath); - $(ProjectName)_d - - - ./..;$(IncludePath);$(BOOST);C:\build-lib\boost_1_57_0\;C:\build-lib - C:\build-lib\boost_1_57_0\stage\lib;C:\build-lib\cryptopp\$(Platform)\Output\$(Configuration);$(LibraryPath) - ./..;$(VC_SourcePath); - - - ./..;$(IncludePath);$(BOOST);$(CRYPTOPP) - $(BOOST)\stage\lib;$(CRYPTOPP)\cryptopp\$(Platform)\Output\$(Configuration);$(LibraryPath) - ./..;$(VC_SourcePath); - - - - Level3 - Disabled - true - MultiThreadedDebug - _MBCS;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions) - - - true - cryptlib.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - AsInvoker - 0.2 - Console - - - - - Level3 - Disabled - true - MultiThreadedDebug - _MBCS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions) - - - true - cryptlib.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - AsInvoker - 0.2 - Console - - - - - Level2 - MaxSpeed - true - true - MultiThreaded - _WIN32_WINNT=0x0501;%(PreprocessorDefinitions) - true - true - - - false - true - false - cryptlib.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - AsInvoker - - - Console - 5.01 - NoErrorReport - - - - - - - - - - - Level3 - MaxSpeed - true - true - MultiThreaded - _WIN32_WINNT=0x0502;%(PreprocessorDefinitions) - true - true - - - false - true - false - cryptlib.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - AsInvoker - - - Console - 5.02 - NoErrorReport - - - - - - - - - - - - diff --git a/Win32/i2pd.vcxproj.filters b/Win32/i2pd.vcxproj.filters deleted file mode 100644 index 4402ec7a..00000000 --- a/Win32/i2pd.vcxproj.filters +++ /dev/null @@ -1,302 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {a880a08c-16b8-4243-82ea-6bfc63bb7dab} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Win32 - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Win32 - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Source Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/Win32/ictoopie.bmp b/Win32/ictoopie.bmp deleted file mode 100644 index c92f7c58..00000000 Binary files a/Win32/ictoopie.bmp and /dev/null differ diff --git a/Win32/ictoopie.ico b/Win32/ictoopie.ico deleted file mode 100644 index 077479a2..00000000 Binary files a/Win32/ictoopie.ico and /dev/null differ diff --git a/Win32/inno_installer.iss b/Win32/inno_installer.iss deleted file mode 100644 index 67acc431..00000000 --- a/Win32/inno_installer.iss +++ /dev/null @@ -1,149 +0,0 @@ - -#define I2Pd_AppName "i2pd" -#define I2Pd_ver "0.2" - -[Setup] -AppName={#I2Pd_AppName} -AppVersion={#I2Pd_ver} -DefaultDirName={pf}\I2Pd -DefaultGroupName=I2Pd -UninstallDisplayIcon={app}\I2Pd.exe -Compression=lzma2 -SolidCompression=yes -OutputDir=. -LicenseFile=.\..\LICENSE -OutputBaseFilename=setup_{#I2Pd_AppName}_v{#I2Pd_ver} -ArchitecturesInstallIn64BitMode=x64 - - -[Files] -Source: "x64\Release\i2pd.exe"; DestDir: "{app}"; DestName: "i2pd.exe"; Check: Is64BitInstallMode -Source: "Release\i2pd.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode -Source: "..\README.md"; DestDir: "{app}"; DestName: "Readme.txt"; AfterInstall: ConvertLineEndings - -[Icons] -Name: "{group}\I2Pd"; Filename: "{app}\i2pd.exe" -Name: "{group}\Readme"; Filename: "{app}\Readme.txt" - - -[Registry] -Root: HKCU; Subkey: "Environment"; ValueName: "Path"; ValueType: "string"; ValueData: "{app};{olddata}"; Check: NotOnPathAlready(); Flags: preservestringtype; - -[Code] - -var - DefaultTop, - DefaultLeft, - DefaultHeight, - DefaultBackTop, - DefaultNextTop, - DefaultCancelTop, - DefaultBevelTop, - DefaultOuterHeight: Integer; - -const - LicenseHeight = 400; - LF = #10; - CR = #13; - CRLF = CR + LF; - -procedure ConvertLineEndings(); - var - FilePath : String; - FileContents : String; -begin - FilePath := ExpandConstant(CurrentFileName) - LoadStringFromFile(FilePath, FileContents); - StringChangeEx(FileContents, LF, CRLF, False); - SaveStringToFile(FilePath, FileContents, False); -end; - -procedure InitializeWizard(); -begin - DefaultTop := WizardForm.Top; - DefaultLeft := WizardForm.Left; - DefaultHeight := WizardForm.Height; - DefaultBackTop := WizardForm.BackButton.Top; - DefaultNextTop := WizardForm.NextButton.Top; - DefaultCancelTop := WizardForm.CancelButton.Top; - DefaultBevelTop := WizardForm.Bevel.Top; - DefaultOuterHeight := WizardForm.OuterNotebook.Height; - - WizardForm.InnerPage.Height := WizardForm.InnerPage.Height + (LicenseHeight - DefaultHeight); - WizardForm.InnerNotebook.Height := WizardForm.InnerNotebook.Height + (LicenseHeight - DefaultHeight); - WizardForm.LicensePage.Height := WizardForm.LicensePage.Height + (LicenseHeight - DefaultHeight); - WizardForm.LicenseMemo.Height := WizardForm.LicenseMemo.Height + (LicenseHeight - DefaultHeight); - WizardForm.LicenseNotAcceptedRadio.Top := WizardForm.LicenseNotAcceptedRadio.Top + (LicenseHeight - DefaultHeight); - WizardForm.LicenseAcceptedRadio.Top := WizardForm.LicenseAcceptedRadio.Top + (LicenseHeight - DefaultHeight); - -end; - -procedure CurPageChanged(CurPageID: Integer); -begin - if CurPageID = wpLicense then - begin - WizardForm.Top := DefaultTop - (LicenseHeight - DefaultHeight) div 2; - WizardForm.Height := LicenseHeight; - WizardForm.OuterNotebook.Height := WizardForm.OuterNotebook.Height + (LicenseHeight - DefaultHeight); - WizardForm.CancelButton.Top := DefaultCancelTop + (LicenseHeight - DefaultHeight); - WizardForm.NextButton.Top := DefaultNextTop + (LicenseHeight - DefaultHeight); - WizardForm.BackButton.Top := DefaultBackTop + (LicenseHeight - DefaultHeight); - WizardForm.Bevel.Top := DefaultBevelTop + (LicenseHeight - DefaultHeight); - end - else - begin - WizardForm.Top := DefaultTop; - WizardForm.Left := DefaultLeft; - WizardForm.Height := DefaultHeight; - WizardForm.OuterNotebook.Height := DefaultOuterHeight; - WizardForm.CancelButton.Top := DefaultCancelTop; - WizardForm.NextButton.Top := DefaultNextTop; - WizardForm.BackButton.Top := DefaultBackTop; - WizardForm.Bevel.Top := DefaultBevelTop; - end; -end; - -function NotOnPathAlready(): Boolean; -var - BinDir, Path: String; -begin - Log('Checking if i2pd dir is already in the %PATH%'); - if RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'Path', Path) then - begin // Successfully read the value - Log('HKCUEnvironmentPATH = ' + Path); - BinDir := ExpandConstant('{app}'); - Log('Looking for i2pd dir in %PATH%: ' + BinDir + ' in ' + Path); - if Pos(LowerCase(BinDir), Lowercase(Path)) = 0 then - begin - Log('Did not find i2pd dir in %PATH% so I will add it'); - Result := True; - end - else - begin - Log('Found i2pd dir in %PATH% so will not add it again'); - Result := False; - end - end - else // The key probably doesn't exist - begin - Log('Could not access HKCUEnvironmentPATH so I assume that it is OK to add it'); - Result := True; - end; -end; - - -procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); -var - BinDir, Path: String; -begin - if (CurUninstallStep = usPostUninstall) - and (RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path)) then - begin - BinDir := ExpandConstant('{app}'); - if Pos(LowerCase(BinDir) + ';', Lowercase(Path)) <> 0 then - begin - StringChange(Path, BinDir + ';', ''); - RegWriteStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path); - end; - end; -end; diff --git a/Win32/install_service.bat b/Win32/install_service.bat deleted file mode 100644 index b03c11b6..00000000 --- a/Win32/install_service.bat +++ /dev/null @@ -1 +0,0 @@ -i2pd --service=install \ No newline at end of file diff --git a/Win32/nsi/helper_readme.nsh b/Win32/nsi/helper_readme.nsh deleted file mode 100644 index a3baaca1..00000000 --- a/Win32/nsi/helper_readme.nsh +++ /dev/null @@ -1,57 +0,0 @@ -!verbose push -!verbose 3 - -!ifndef _MUI_EXTRAPAGES_NSH -!define _MUI_EXTRAPAGES_NSH - -!ifmacrondef MUI_EXTRAPAGE_README & MUI_PAGE_README & MUI_UNPAGE_README & ReadmeLangStrings - -!macro MUI_EXTRAPAGE_README UN ReadmeFile -!verbose push -!verbose 3 - !define MUI_PAGE_HEADER_TEXT "$(${UN}ReadmeHeader)" - !define MUI_PAGE_HEADER_SUBTEXT "$(${UN}ReadmeSubHeader)" - !define MUI_LICENSEPAGE_TEXT_TOP "$(${UN}ReadmeTextTop)" - !define MUI_LICENSEPAGE_TEXT_BOTTOM "$(${UN}ReadmeTextBottom)" - !define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)" - !insertmacro MUI_${UN}PAGE_LICENSE "${ReadmeFile}" -!verbose pop -!macroend - -!define ReadmeRun "!insertmacro MUI_EXTRAPAGE_README" - - -!macro MUI_PAGE_README ReadmeFile -!verbose push -!verbose 3 - ${ReadmeRun} "" "${ReadmeFile}" -!verbose pop -!macroend - - -!macro MUI_UNPAGE_README ReadmeFile -!verbose push -!verbose 3 - ${ReadmeRun} "UN" "${ReadmeFile}" -!verbose pop -!macroend - - -!macro ReadmeLangStrings UN MUI_LANG ReadmeHeader ReadmeSubHeader ReadmeTextTop ReadmeTextBottom -!verbose push -!verbose 3 - LangString ${UN}ReadmeHeader ${MUI_LANG} "${ReadmeHeader}" - LangString ${UN}ReadmeSubHeader ${MUI_LANG} "${ReadmeSubHeader}" - LangString ${UN}ReadmeTextTop ${MUI_LANG} "${ReadmeTextTop}" - LangString ${UN}ReadmeTextBottom ${MUI_LANG} "${ReadmeTextBottom}" -!verbose pop -!macroend - -!define ReadmeLanguage `!insertmacro ReadmeLangStrings ""` - -!define Un.ReadmeLanguage `!insertmacro ReadmeLangStrings "UN"` - -!endif -!endif - -!verbose pop \ No newline at end of file diff --git a/Win32/nsi/servicelib.nsh b/Win32/nsi/servicelib.nsh deleted file mode 100644 index 7f4b5861..00000000 --- a/Win32/nsi/servicelib.nsh +++ /dev/null @@ -1,419 +0,0 @@ -; NSIS SERVICE LIBRARY - servicelib.nsh -; Version 1.8.1 - Jun 21th, 2013 -; Questions/Comments - dselkirk@hotmail.com -; -; Description: -; Provides an interface to window services -; -; Inputs: -; action - systemlib action ie. create, delete, start, stop, pause, -; continue, installed, running, status -; name - name of service to manipulate -; param - action parameters; usage: var1=value1;var2=value2;...etc. -; (don't forget to add a ';' after the last value!) -; -; Actions: -; create - creates a new windows service -; Parameters: -; path - path to service executable -; autostart - automatically start with system ie. 1|0 -; interact - interact with the desktop ie. 1|0 -; depend - service dependencies -; user - user that runs the service -; password - password of the above user -; display - display name in service's console -; description - Description of service -; starttype - start type (supersedes autostart) -; servicetype - service type (supersedes interact) -; -; delete - deletes a windows service -; start - start a stopped windows service -; stop - stops a running windows service -; pause - pauses a running windows service -; continue - continues a paused windows service -; installed - is the provided service installed -; Parameters: -; action - if true then invokes the specified action -; running - is the provided service running -; Parameters: -; action - if true then invokes the specified action -; status - check the status of the provided service -; -; Usage: -; Method 1: -; Push "action" -; Push "name" -; Push "param" -; Call Service -; Pop $0 ;response -; -; Method 2: -; !insertmacro SERVICE "action" "name" "param" -; -; History: -; 1.0 - 09/15/2003 - Initial release -; 1.1 - 09/16/2003 - Changed &l to i, thx brainsucker -; 1.2 - 02/29/2004 - Fixed documentation. -; 1.3 - 01/05/2006 - Fixed interactive flag and pop order (Kichik) -; 1.4 - 12/07/2006 - Added display and depend, fixed datatypes (Vitoco) -; 1.5 - 06/25/2008 - Added description of service.(DeSafe.com/liuqixing#gmail.com) -; 1.5.1 - 06/12/2009 - Added use of __UNINSTALL__ -; 1.6 - 08/02/2010 - Fixed description implementation (Anders) -; 1.7 - 04/11/2010 - Added get running service process id (Nico) -; 1.8 - 24/03/2011 - Added starttype and servicetype (Sergius) -; 1.8.1 - 21/06/2013 - Added dynamic ASCII & Unicode support (Zinthose) - -!ifndef SERVICELIB - !define SERVICELIB - - !define SC_MANAGER_ALL_ACCESS 0x3F - !define SC_STATUS_PROCESS_INFO 0x0 - !define SERVICE_ALL_ACCESS 0xF01FF - - !define SERVICE_CONTROL_STOP 1 - !define SERVICE_CONTROL_PAUSE 2 - !define SERVICE_CONTROL_CONTINUE 3 - - !define SERVICE_STOPPED 0x1 - !define SERVICE_START_PENDING 0x2 - !define SERVICE_STOP_PENDING 0x3 - !define SERVICE_RUNNING 0x4 - !define SERVICE_CONTINUE_PENDING 0x5 - !define SERVICE_PAUSE_PENDING 0x6 - !define SERVICE_PAUSED 0x7 - - !define SERVICE_KERNEL_DRIVER 0x00000001 - !define SERVICE_FILE_SYSTEM_DRIVER 0x00000002 - !define SERVICE_WIN32_OWN_PROCESS 0x00000010 - !define SERVICE_WIN32_SHARE_PROCESS 0x00000020 - !define SERVICE_INTERACTIVE_PROCESS 0x00000100 - - - !define SERVICE_BOOT_START 0x00000000 - !define SERVICE_SYSTEM_START 0x00000001 - !define SERVICE_AUTO_START 0x00000002 - !define SERVICE_DEMAND_START 0x00000003 - !define SERVICE_DISABLED 0x00000004 - - ## Added by Zinthose for Native Unicode Support - !ifdef NSIS_UNICODE - !define APITAG "W" - !else - !define APITAG "A" - !endif - - !macro SERVICE ACTION NAME PARAM - Push '${ACTION}' - Push '${NAME}' - Push '${PARAM}' - !ifdef __UNINSTALL__ - Call un.Service - !else - Call Service - !endif - !macroend - - !macro FUNC_GETPARAM - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $5 - Push $6 - Push $7 - Exch 8 - Pop $1 ;name - Exch 8 - Pop $2 ;source - StrCpy $0 "" - StrLen $7 $2 - StrCpy $3 0 - lbl_loop: - IntCmp $3 $7 0 0 lbl_done - StrLen $4 "$1=" - StrCpy $5 $2 $4 $3 - StrCmp $5 "$1=" 0 lbl_next - IntOp $5 $3 + $4 - StrCpy $3 $5 - lbl_loop2: - IntCmp $3 $7 0 0 lbl_done - StrCpy $6 $2 1 $3 - StrCmp $6 ";" 0 lbl_next2 - IntOp $6 $3 - $5 - StrCpy $0 $2 $6 $5 - Goto lbl_done - lbl_next2: - IntOp $3 $3 + 1 - Goto lbl_loop2 - lbl_next: - IntOp $3 $3 + 1 - Goto lbl_loop - lbl_done: - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Exch 2 - Pop $6 - Pop $7 - Exch $0 - !macroend - - !macro CALL_GETPARAM VAR NAME DEFAULT LABEL - Push $1 - Push ${NAME} - Call ${UN}GETPARAM - Pop $6 - StrCpy ${VAR} "${DEFAULT}" - StrCmp $6 "" "${LABEL}" 0 - StrCpy ${VAR} $6 - !macroend - - !macro FUNC_SERVICE UN - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $5 - Push $6 - Push $7 - Exch 8 - Pop $1 ;param - Exch 8 - Pop $2 ;name - Exch 8 - Pop $3 ;action - ;$0 return - ;$4 OpenSCManager - ;$5 OpenService - - StrCpy $0 "false" - System::Call 'advapi32::OpenSCManager${APITAG}(n, n, i ${SC_MANAGER_ALL_ACCESS}) i.r4' - IntCmp $4 0 lbl_done - StrCmp $3 "create" lbl_create - System::Call 'advapi32::OpenService${APITAG}(i r4, t r2, i ${SERVICE_ALL_ACCESS}) i.r5' - IntCmp $5 0 lbl_done - - lbl_select: - StrCmp $3 "delete" lbl_delete - StrCmp $3 "start" lbl_start - StrCmp $3 "stop" lbl_stop - StrCmp $3 "pause" lbl_pause - StrCmp $3 "continue" lbl_continue - StrCmp $3 "installed" lbl_installed - StrCmp $3 "running" lbl_running - StrCmp $3 "status" lbl_status - StrCmp $3 "processid" lbl_processid - Goto lbl_done - - ; create service - lbl_create: - Push $R1 ;depend - Push $R2 ;user - Push $R3 ;password - Push $R4 ;servicetype/interact - Push $R5 ;starttype/autostart - Push $R6 ;path - Push $R7 ;display - Push $R8 ;description - - !insertmacro CALL_GETPARAM $R1 "depend" "n" "lbl_depend" - StrCpy $R1 't "$R1"' - lbl_depend: - StrCmp $R1 "n" 0 lbl_machine ;old name of depend param - !insertmacro CALL_GETPARAM $R1 "machine" "n" "lbl_machine" - StrCpy $R1 't "$R1"' - lbl_machine: - - !insertmacro CALL_GETPARAM $R2 "user" "n" "lbl_user" - StrCpy $R2 't "$R2"' - lbl_user: - - !insertmacro CALL_GETPARAM $R3 "password" "n" "lbl_password" - StrCpy $R3 't "$R3"' - lbl_password: - - !insertmacro CALL_GETPARAM $R4 "interact" "${SERVICE_WIN32_OWN_PROCESS}" "lbl_interact" - StrCpy $6 ${SERVICE_WIN32_OWN_PROCESS} - IntCmp $R4 0 +2 - IntOp $6 $6 | ${SERVICE_INTERACTIVE_PROCESS} - StrCpy $R4 $6 - lbl_interact: - - !insertmacro CALL_GETPARAM $R4 "servicetype" "$R4" "lbl_servicetype" - lbl_servicetype: - - !insertmacro CALL_GETPARAM $R5 "autostart" "${SERVICE_DEMAND_START}" "lbl_autostart" - StrCpy $6 ${SERVICE_DEMAND_START} - IntCmp $R5 0 +2 - StrCpy $6 ${SERVICE_AUTO_START} - StrCpy $R5 $6 - lbl_autostart: - - !insertmacro CALL_GETPARAM $R5 "starttype" "$R5" "lbl_starttype" - lbl_starttype: - - !insertmacro CALL_GETPARAM $R6 "path" "n" "lbl_path" - lbl_path: - - !insertmacro CALL_GETPARAM $R7 "display" "$2" "lbl_display" - lbl_display: - - !insertmacro CALL_GETPARAM $R8 "description" "$2" "lbl_description" - lbl_description: - - System::Call 'advapi32::CreateService${APITAG}(i r4, t r2, t R7, i ${SERVICE_ALL_ACCESS}, \ - i R4, i R5, i 0, t R6, n, n, $R1, $R2, $R3) i.r6' - - ; write description of service (SERVICE_CONFIG_DESCRIPTION) - System::Call 'advapi32::ChangeServiceConfig2${APITAG}(ir6,i1,*t "$R8")i.R7' - strcmp $R7 "error" 0 lbl_descriptioncomplete - WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\$2" "Description" $R8 - lbl_descriptioncomplete: - - Pop $R8 - Pop $R7 - Pop $R6 - Pop $R5 - Pop $R4 - Pop $R3 - Pop $R2 - Pop $R1 - StrCmp $6 0 lbl_done lbl_good - - ; delete service - lbl_delete: - System::Call 'advapi32::DeleteService(i r5) i.r6' - StrCmp $6 0 lbl_done lbl_good - - ; start service - lbl_start: - System::Call 'advapi32::StartService${APITAG}(i r5, i 0, i 0) i.r6' - StrCmp $6 0 lbl_done lbl_good - - ; stop service - lbl_stop: - Push $R1 - System::Call '*(i,i,i,i,i,i,i) i.R1' - System::Call 'advapi32::ControlService(i r5, i ${SERVICE_CONTROL_STOP}, i $R1) i' - System::Free $R1 - Pop $R1 - StrCmp $6 0 lbl_done lbl_good - - ; pause service - lbl_pause: - Push $R1 - System::Call '*(i,i,i,i,i,i,i) i.R1' - System::Call 'advapi32::ControlService(i r5, i ${SERVICE_CONTROL_PAUSE}, i $R1) i' - System::Free $R1 - Pop $R1 - StrCmp $6 0 lbl_done lbl_good - - ; continue service - lbl_continue: - Push $R1 - System::Call '*(i,i,i,i,i,i,i) i.R1' - System::Call 'advapi32::ControlService(i r5, i ${SERVICE_CONTROL_CONTINUE}, i $R1) i' - System::Free $R1 - Pop $R1 - StrCmp $6 0 lbl_done lbl_good - - ; is installed - lbl_installed: - !insertmacro CALL_GETPARAM $7 "action" "" "lbl_good" - StrCpy $3 $7 - Goto lbl_select - - ; is service running - lbl_running: - Push $R1 - System::Call '*(i,i,i,i,i,i,i) i.R1' - System::Call 'advapi32::QueryServiceStatus(i r5, i $R1) i' - System::Call '*$R1(i, i.r6)' - System::Free $R1 - Pop $R1 - IntFmt $6 "0x%X" $6 - StrCmp $6 ${SERVICE_RUNNING} 0 lbl_done - !insertmacro CALL_GETPARAM $7 "action" "" "lbl_good" - StrCpy $3 $7 - Goto lbl_select - - lbl_status: - Push $R1 - System::Call '*(i,i,i,i,i,i,i) i.R1' - System::Call 'advapi32::QueryServiceStatus(i r5, i $R1) i' - System::Call '*$R1(i, i .r6)' - System::Free $R1 - Pop $R1 - IntFmt $6 "0x%X" $6 - StrCpy $0 "running" - IntCmp $6 ${SERVICE_RUNNING} lbl_done - StrCpy $0 "stopped" - IntCmp $6 ${SERVICE_STOPPED} lbl_done - StrCpy $0 "start_pending" - IntCmp $6 ${SERVICE_START_PENDING} lbl_done - StrCpy $0 "stop_pending" - IntCmp $6 ${SERVICE_STOP_PENDING} lbl_done - StrCpy $0 "running" - IntCmp $6 ${SERVICE_RUNNING} lbl_done - StrCpy $0 "continue_pending" - IntCmp $6 ${SERVICE_CONTINUE_PENDING} lbl_done - StrCpy $0 "pause_pending" - IntCmp $6 ${SERVICE_PAUSE_PENDING} lbl_done - StrCpy $0 "paused" - IntCmp $6 ${SERVICE_PAUSED} lbl_done - StrCpy $0 "unknown" - Goto lbl_done - - lbl_processid: - Push $R1 - Push $R2 - System::Call '*(i,i,i,i,i,i,i,i,i) i.R1' - System::Call '*(i 0) i.R2' - System::Call "advapi32::QueryServiceStatusEx(i r5, i ${SC_STATUS_PROCESS_INFO}, i $R1, i 36, i $R2) i" - System::Call "*$R1(i,i,i,i,i,i,i, i .r0)" - System::Free $R2 - System::Free $R1 - Pop $R2 - Pop $R1 - Goto lbl_done - - lbl_good: - StrCpy $0 "true" - lbl_done: - IntCmp $5 0 +2 - System::Call 'advapi32::CloseServiceHandle(i r5) n' - IntCmp $4 0 +2 - System::Call 'advapi32::CloseServiceHandle(i r4) n' - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Exch 3 - Pop $5 - Pop $7 - Pop $6 - Exch $0 - !macroend - - Function Service - !insertmacro FUNC_SERVICE "" - FunctionEnd - - Function un.Service - !insertmacro FUNC_SERVICE "un." - FunctionEnd - - Function GetParam - !insertmacro FUNC_GETPARAM - FunctionEnd - - Function un.GetParam - !insertmacro FUNC_GETPARAM - FunctionEnd - - !undef APITAG -!endif \ No newline at end of file diff --git a/Win32/resource.h b/Win32/resource.h index a8309c8b..3b188481 100644 --- a/Win32/resource.h +++ b/Win32/resource.h @@ -1,16 +1,11 @@ //{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Resource.rc -// -#define MAINICON 101 +#define MAINICON 101 -// Next default values for new objects -// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/Win32/uninstall_service.bat b/Win32/uninstall_service.bat deleted file mode 100644 index 0289c24a..00000000 --- a/Win32/uninstall_service.bat +++ /dev/null @@ -1 +0,0 @@ -i2pd --service=remove \ No newline at end of file diff --git a/build/cmake_modules/NSIS.template.in b/build/cmake_modules/NSIS.template.in deleted file mode 100644 index f7d5a7f7..00000000 --- a/build/cmake_modules/NSIS.template.in +++ /dev/null @@ -1,978 +0,0 @@ -; CPack install script designed for a nmake build - -;-------------------------------- -; You must define these values - - !define VERSION "@CPACK_PACKAGE_VERSION@" - !define PATCH "@CPACK_PACKAGE_VERSION_PATCH@" - !define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@" - -;-------------------------------- -;Variables - - Var MUI_TEMP - Var STARTMENU_FOLDER - Var SV_ALLUSERS - Var START_MENU - Var DO_NOT_ADD_TO_PATH - Var ADD_TO_PATH_ALL_USERS - Var ADD_TO_PATH_CURRENT_USER - Var INSTALL_DESKTOP - Var IS_DEFAULT_INSTALLDIR -;-------------------------------- -;Include Modern UI - - !include "MUI.nsh" - - ;Default installation folder - InstallDir "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" - -;-------------------------------- -;General - - ;Name and file - Name "@CPACK_NSIS_PACKAGE_NAME@" - OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@" - - ;Set compression - SetCompressor @CPACK_NSIS_COMPRESSOR@ - - ;Require administrator access - RequestExecutionLevel admin - -@CPACK_NSIS_DEFINES@ - - !include Sections.nsh - -;--- Component support macros: --- -; The code for the add/remove functionality is from: -; http://nsis.sourceforge.net/Add/Remove_Functionality -; It has been modified slightly and extended to provide -; inter-component dependencies. -Var AR_SecFlags -Var AR_RegFlags -@CPACK_NSIS_SECTION_SELECTED_VARS@ - -; Loads the "selected" flag for the section named SecName into the -; variable VarName. -!macro LoadSectionSelectedIntoVar SecName VarName - SectionGetFlags ${${SecName}} $${VarName} - IntOp $${VarName} $${VarName} & ${SF_SELECTED} ;Turn off all other bits -!macroend - -; Loads the value of a variable... can we get around this? -!macro LoadVar VarName - IntOp $R0 0 + $${VarName} -!macroend - -; Sets the value of a variable -!macro StoreVar VarName IntValue - IntOp $${VarName} 0 + ${IntValue} -!macroend - -!macro InitSection SecName - ; This macro reads component installed flag from the registry and - ;changes checked state of the section on the components page. - ;Input: section index constant name specified in Section command. - - ClearErrors - ;Reading component status from registry - ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" "Installed" - IfErrors "default_${SecName}" - ;Status will stay default if registry value not found - ;(component was never installed) - IntOp $AR_RegFlags $AR_RegFlags & ${SF_SELECTED} ;Turn off all other bits - SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading default section flags - IntOp $AR_SecFlags $AR_SecFlags & 0xFFFE ;Turn lowest (enabled) bit off - IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags ;Change lowest bit - - ; Note whether this component was installed before - !insertmacro StoreVar ${SecName}_was_installed $AR_RegFlags - IntOp $R0 $AR_RegFlags & $AR_RegFlags - - ;Writing modified flags - SectionSetFlags ${${SecName}} $AR_SecFlags - - "default_${SecName}:" - !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected -!macroend - -!macro FinishSection SecName - ; This macro reads section flag set by user and removes the section - ;if it is not selected. - ;Then it writes component installed flag to registry - ;Input: section index constant name specified in Section command. - - SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading section flags - ;Checking lowest bit: - IntOp $AR_SecFlags $AR_SecFlags & ${SF_SELECTED} - IntCmp $AR_SecFlags 1 "leave_${SecName}" - ;Section is not selected: - ;Calling Section uninstall macro and writing zero installed flag - !insertmacro "Remove_${${SecName}}" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \ - "Installed" 0 - Goto "exit_${SecName}" - - "leave_${SecName}:" - ;Section is selected: - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \ - "Installed" 1 - - "exit_${SecName}:" -!macroend - -!macro RemoveSection_CPack SecName - ; This macro is used to call section's Remove_... macro - ;from the uninstaller. - ;Input: section index constant name specified in Section command. - - !insertmacro "Remove_${${SecName}}" -!macroend - -; Determine whether the selection of SecName changed -!macro MaybeSelectionChanged SecName - !insertmacro LoadVar ${SecName}_selected - SectionGetFlags ${${SecName}} $R1 - IntOp $R1 $R1 & ${SF_SELECTED} ;Turn off all other bits - - ; See if the status has changed: - IntCmp $R0 $R1 "${SecName}_unchanged" - !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected - - IntCmp $R1 ${SF_SELECTED} "${SecName}_was_selected" - !insertmacro "Deselect_required_by_${SecName}" - goto "${SecName}_unchanged" - - "${SecName}_was_selected:" - !insertmacro "Select_${SecName}_depends" - - "${SecName}_unchanged:" -!macroend -;--- End of Add/Remove macros --- - -;-------------------------------- -;Interface Settings - - !define MUI_HEADERIMAGE - !define MUI_ABORTWARNING - -;-------------------------------- -; path functions - -!verbose 3 -!include "WinMessages.NSH" -!verbose 4 - -;---------------------------------------- -; based upon a script of "Written by KiCHiK 2003-01-18 05:57:02" -;---------------------------------------- -!verbose 3 -!include "WinMessages.NSH" -!verbose 4 -;==================================================== -; get_NT_environment -; Returns: the selected environment -; Output : head of the stack -;==================================================== -!macro select_NT_profile UN -Function ${UN}select_NT_profile - StrCmp $ADD_TO_PATH_ALL_USERS "1" 0 environment_single - DetailPrint "Selected environment for all users" - Push "all" - Return - environment_single: - DetailPrint "Selected environment for current user only." - Push "current" - Return -FunctionEnd -!macroend -!insertmacro select_NT_profile "" -!insertmacro select_NT_profile "un." -;---------------------------------------------------- -!define NT_current_env 'HKCU "Environment"' -!define NT_all_env 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"' - -!ifndef WriteEnvStr_RegKey - !ifdef ALL_USERS - !define WriteEnvStr_RegKey \ - 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"' - !else - !define WriteEnvStr_RegKey 'HKCU "Environment"' - !endif -!endif - -; AddToPath - Adds the given dir to the search path. -; Input - head of the stack -; Note - Win9x systems requires reboot - -Function AddToPath - Exch $0 - Push $1 - Push $2 - Push $3 - - # don't add if the path doesn't exist - IfFileExists "$0\*.*" "" AddToPath_done - - ReadEnvStr $1 PATH - ; if the path is too long for a NSIS variable NSIS will return a 0 - ; length string. If we find that, then warn and skip any path - ; modification as it will trash the existing path. - StrLen $2 $1 - IntCmp $2 0 CheckPathLength_ShowPathWarning CheckPathLength_Done CheckPathLength_Done - CheckPathLength_ShowPathWarning: - Messagebox MB_OK|MB_ICONEXCLAMATION "Warning! PATH too long installer unable to modify PATH!" - Goto AddToPath_done - CheckPathLength_Done: - Push "$1;" - Push "$0;" - Call StrStr - Pop $2 - StrCmp $2 "" "" AddToPath_done - Push "$1;" - Push "$0\;" - Call StrStr - Pop $2 - StrCmp $2 "" "" AddToPath_done - GetFullPathName /SHORT $3 $0 - Push "$1;" - Push "$3;" - Call StrStr - Pop $2 - StrCmp $2 "" "" AddToPath_done - Push "$1;" - Push "$3\;" - Call StrStr - Pop $2 - StrCmp $2 "" "" AddToPath_done - - Call IsNT - Pop $1 - StrCmp $1 1 AddToPath_NT - ; Not on NT - StrCpy $1 $WINDIR 2 - FileOpen $1 "$1\autoexec.bat" a - FileSeek $1 -1 END - FileReadByte $1 $2 - IntCmp $2 26 0 +2 +2 # DOS EOF - FileSeek $1 -1 END # write over EOF - FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n" - FileClose $1 - SetRebootFlag true - Goto AddToPath_done - - AddToPath_NT: - StrCmp $ADD_TO_PATH_ALL_USERS "1" ReadAllKey - ReadRegStr $1 ${NT_current_env} "PATH" - Goto DoTrim - ReadAllKey: - ReadRegStr $1 ${NT_all_env} "PATH" - DoTrim: - StrCmp $1 "" AddToPath_NTdoIt - Push $1 - Call Trim - Pop $1 - StrCpy $0 "$1;$0" - AddToPath_NTdoIt: - StrCmp $ADD_TO_PATH_ALL_USERS "1" WriteAllKey - WriteRegExpandStr ${NT_current_env} "PATH" $0 - Goto DoSend - WriteAllKey: - WriteRegExpandStr ${NT_all_env} "PATH" $0 - DoSend: - SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 - - AddToPath_done: - Pop $3 - Pop $2 - Pop $1 - Pop $0 -FunctionEnd - - -; RemoveFromPath - Remove a given dir from the path -; Input: head of the stack - -Function un.RemoveFromPath - Exch $0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $5 - Push $6 - - IntFmt $6 "%c" 26 # DOS EOF - - Call un.IsNT - Pop $1 - StrCmp $1 1 unRemoveFromPath_NT - ; Not on NT - StrCpy $1 $WINDIR 2 - FileOpen $1 "$1\autoexec.bat" r - GetTempFileName $4 - FileOpen $2 $4 w - GetFullPathName /SHORT $0 $0 - StrCpy $0 "SET PATH=%PATH%;$0" - Goto unRemoveFromPath_dosLoop - - unRemoveFromPath_dosLoop: - FileRead $1 $3 - StrCpy $5 $3 1 -1 # read last char - StrCmp $5 $6 0 +2 # if DOS EOF - StrCpy $3 $3 -1 # remove DOS EOF so we can compare - StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine - StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine - StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine - StrCmp $3 "" unRemoveFromPath_dosLoopEnd - FileWrite $2 $3 - Goto unRemoveFromPath_dosLoop - unRemoveFromPath_dosLoopRemoveLine: - SetRebootFlag true - Goto unRemoveFromPath_dosLoop - - unRemoveFromPath_dosLoopEnd: - FileClose $2 - FileClose $1 - StrCpy $1 $WINDIR 2 - Delete "$1\autoexec.bat" - CopyFiles /SILENT $4 "$1\autoexec.bat" - Delete $4 - Goto unRemoveFromPath_done - - unRemoveFromPath_NT: - StrCmp $ADD_TO_PATH_ALL_USERS "1" unReadAllKey - ReadRegStr $1 ${NT_current_env} "PATH" - Goto unDoTrim - unReadAllKey: - ReadRegStr $1 ${NT_all_env} "PATH" - unDoTrim: - StrCpy $5 $1 1 -1 # copy last char - StrCmp $5 ";" +2 # if last char != ; - StrCpy $1 "$1;" # append ; - Push $1 - Push "$0;" - Call un.StrStr ; Find `$0;` in $1 - Pop $2 ; pos of our dir - StrCmp $2 "" unRemoveFromPath_done - ; else, it is in path - # $0 - path to add - # $1 - path var - StrLen $3 "$0;" - StrLen $4 $2 - StrCpy $5 $1 -$4 # $5 is now the part before the path to remove - StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove - StrCpy $3 $5$6 - - StrCpy $5 $3 1 -1 # copy last char - StrCmp $5 ";" 0 +2 # if last char == ; - StrCpy $3 $3 -1 # remove last char - - StrCmp $ADD_TO_PATH_ALL_USERS "1" unWriteAllKey - WriteRegExpandStr ${NT_current_env} "PATH" $3 - Goto unDoSend - unWriteAllKey: - WriteRegExpandStr ${NT_all_env} "PATH" $3 - unDoSend: - SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 - - unRemoveFromPath_done: - Pop $6 - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 -FunctionEnd - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Uninstall sutff -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -########################################### -# Utility Functions # -########################################### - -;==================================================== -; IsNT - Returns 1 if the current system is NT, 0 -; otherwise. -; Output: head of the stack -;==================================================== -; IsNT -; no input -; output, top of the stack = 1 if NT or 0 if not -; -; Usage: -; Call IsNT -; Pop $R0 -; ($R0 at this point is 1 or 0) - -!macro IsNT un -Function ${un}IsNT - Push $0 - ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion - StrCmp $0 "" 0 IsNT_yes - ; we are not NT. - Pop $0 - Push 0 - Return - - IsNT_yes: - ; NT!!! - Pop $0 - Push 1 -FunctionEnd -!macroend -!insertmacro IsNT "" -!insertmacro IsNT "un." - -; StrStr -; input, top of stack = string to search for -; top of stack-1 = string to search in -; output, top of stack (replaces with the portion of the string remaining) -; modifies no other variables. -; -; Usage: -; Push "this is a long ass string" -; Push "ass" -; Call StrStr -; Pop $R0 -; ($R0 at this point is "ass string") - -!macro StrStr un -Function ${un}StrStr -Exch $R1 ; st=haystack,old$R1, $R1=needle - Exch ; st=old$R1,haystack - Exch $R2 ; st=old$R1,old$R2, $R2=haystack - Push $R3 - Push $R4 - Push $R5 - StrLen $R3 $R1 - StrCpy $R4 0 - ; $R1=needle - ; $R2=haystack - ; $R3=len(needle) - ; $R4=cnt - ; $R5=tmp - loop: - StrCpy $R5 $R2 $R3 $R4 - StrCmp $R5 $R1 done - StrCmp $R5 "" done - IntOp $R4 $R4 + 1 - Goto loop -done: - StrCpy $R1 $R2 "" $R4 - Pop $R5 - Pop $R4 - Pop $R3 - Pop $R2 - Exch $R1 -FunctionEnd -!macroend -!insertmacro StrStr "" -!insertmacro StrStr "un." - -Function Trim ; Added by Pelaca - Exch $R1 - Push $R2 -Loop: - StrCpy $R2 "$R1" 1 -1 - StrCmp "$R2" " " RTrim - StrCmp "$R2" "$\n" RTrim - StrCmp "$R2" "$\r" RTrim - StrCmp "$R2" ";" RTrim - GoTo Done -RTrim: - StrCpy $R1 "$R1" -1 - Goto Loop -Done: - Pop $R2 - Exch $R1 -FunctionEnd - -Function ConditionalAddToRegisty - Pop $0 - Pop $1 - StrCmp "$0" "" ConditionalAddToRegisty_EmptyString - WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \ - "$1" "$0" - ;MessageBox MB_OK "Set Registry: '$1' to '$0'" - DetailPrint "Set install registry entry: '$1' to '$0'" - ConditionalAddToRegisty_EmptyString: -FunctionEnd - -;-------------------------------- - -!ifdef CPACK_USES_DOWNLOAD -Function DownloadFile - IfFileExists $INSTDIR\* +2 - CreateDirectory $INSTDIR - Pop $0 - - ; Skip if already downloaded - IfFileExists $INSTDIR\$0 0 +2 - Return - - StrCpy $1 "@CPACK_DOWNLOAD_SITE@" - - try_again: - NSISdl::download "$1/$0" "$INSTDIR\$0" - - Pop $1 - StrCmp $1 "success" success - StrCmp $1 "Cancelled" cancel - MessageBox MB_OK "Download failed: $1" - cancel: - Return - success: -FunctionEnd -!endif - -;-------------------------------- -; Installation types -@CPACK_NSIS_INSTALLATION_TYPES@ - -;-------------------------------- -; Component sections -@CPACK_NSIS_COMPONENT_SECTIONS@ - -;-------------------------------- -; Define some macro setting for the gui -@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@ -@CPACK_NSIS_INSTALLER_ICON_CODE@ -@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@ -@CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@ - -;-------------------------------- -;Pages - !insertmacro MUI_PAGE_WELCOME - - !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@" - Page custom InstallOptionsPage - !insertmacro MUI_PAGE_DIRECTORY - - ;Start Menu Folder Page Configuration - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" - !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - !define MUI_STARTMENUPAGE_DEFAULTFOLDER "Purple I2P" - !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER - - @CPACK_NSIS_PAGE_COMPONENTS@ - - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_PAGE_FINISH - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" ;first language is the default language - !insertmacro MUI_LANGUAGE "Albanian" - !insertmacro MUI_LANGUAGE "Arabic" - !insertmacro MUI_LANGUAGE "Basque" - !insertmacro MUI_LANGUAGE "Belarusian" - !insertmacro MUI_LANGUAGE "Bosnian" - !insertmacro MUI_LANGUAGE "Breton" - !insertmacro MUI_LANGUAGE "Bulgarian" - !insertmacro MUI_LANGUAGE "Croatian" - !insertmacro MUI_LANGUAGE "Czech" - !insertmacro MUI_LANGUAGE "Danish" - !insertmacro MUI_LANGUAGE "Dutch" - !insertmacro MUI_LANGUAGE "Estonian" - !insertmacro MUI_LANGUAGE "Farsi" - !insertmacro MUI_LANGUAGE "Finnish" - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "German" - !insertmacro MUI_LANGUAGE "Greek" - !insertmacro MUI_LANGUAGE "Hebrew" - !insertmacro MUI_LANGUAGE "Hungarian" - !insertmacro MUI_LANGUAGE "Icelandic" - !insertmacro MUI_LANGUAGE "Indonesian" - !insertmacro MUI_LANGUAGE "Irish" - !insertmacro MUI_LANGUAGE "Italian" - !insertmacro MUI_LANGUAGE "Japanese" - !insertmacro MUI_LANGUAGE "Korean" - !insertmacro MUI_LANGUAGE "Kurdish" - !insertmacro MUI_LANGUAGE "Latvian" - !insertmacro MUI_LANGUAGE "Lithuanian" - !insertmacro MUI_LANGUAGE "Luxembourgish" - !insertmacro MUI_LANGUAGE "Macedonian" - !insertmacro MUI_LANGUAGE "Malay" - !insertmacro MUI_LANGUAGE "Mongolian" - !insertmacro MUI_LANGUAGE "Norwegian" - !insertmacro MUI_LANGUAGE "Polish" - !insertmacro MUI_LANGUAGE "Portuguese" - !insertmacro MUI_LANGUAGE "PortugueseBR" - !insertmacro MUI_LANGUAGE "Romanian" - !insertmacro MUI_LANGUAGE "Russian" - !insertmacro MUI_LANGUAGE "Serbian" - !insertmacro MUI_LANGUAGE "SerbianLatin" - !insertmacro MUI_LANGUAGE "SimpChinese" - !insertmacro MUI_LANGUAGE "Slovak" - !insertmacro MUI_LANGUAGE "Slovenian" - !insertmacro MUI_LANGUAGE "Spanish" - !insertmacro MUI_LANGUAGE "Swedish" - !insertmacro MUI_LANGUAGE "Thai" - !insertmacro MUI_LANGUAGE "TradChinese" - !insertmacro MUI_LANGUAGE "Turkish" - !insertmacro MUI_LANGUAGE "Ukrainian" - !insertmacro MUI_LANGUAGE "Welsh" - - -;-------------------------------- -;Reserve Files - - ;These files should be inserted before other files in the data block - ;Keep these lines before any File command - ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) - - ReserveFile "NSIS.InstallOptions.ini" - !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS - -;-------------------------------- -;Installer Sections - -Section "-Core installation" - ;Use the entire tree produced by the INSTALL target. Keep the - ;list of directories here in sync with the RMDir commands below. - SetOutPath "$INSTDIR" - @CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@ - @CPACK_NSIS_FULL_INSTALL@ - - ;Store installation folder - WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - Push "DisplayName" - Push "@CPACK_NSIS_DISPLAY_NAME@" - Call ConditionalAddToRegisty - Push "DisplayVersion" - Push "@CPACK_PACKAGE_VERSION@" - Call ConditionalAddToRegisty - Push "Publisher" - Push "@CPACK_PACKAGE_VENDOR@" - Call ConditionalAddToRegisty - Push "UninstallString" - Push "$INSTDIR\Uninstall.exe" - Call ConditionalAddToRegisty - Push "NoRepair" - Push "1" - Call ConditionalAddToRegisty - - !ifdef CPACK_NSIS_ADD_REMOVE - ;Create add/remove functionality - Push "ModifyPath" - Push "$INSTDIR\AddRemove.exe" - Call ConditionalAddToRegisty - !else - Push "NoModify" - Push "1" - Call ConditionalAddToRegisty - !endif - - ; Optional registration - Push "DisplayIcon" - Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@" - Call ConditionalAddToRegisty - Push "HelpLink" - Push "@CPACK_NSIS_HELP_LINK@" - Call ConditionalAddToRegisty - Push "URLInfoAbout" - Push "@CPACK_NSIS_URL_INFO_ABOUT@" - Call ConditionalAddToRegisty - Push "Contact" - Push "@CPACK_NSIS_CONTACT@" - Call ConditionalAddToRegisty - !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State" - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - - ;Create shortcuts - CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" -@CPACK_NSIS_CREATE_ICONS@ -@CPACK_NSIS_CREATE_ICONS_EXTRA@ - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - - ;Read a value from an InstallOptions INI file - !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State" - !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State" - !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State" - - ; Write special uninstall registry entries - Push "StartMenu" - Push "$STARTMENU_FOLDER" - Call ConditionalAddToRegisty - Push "DoNotAddToPath" - Push "$DO_NOT_ADD_TO_PATH" - Call ConditionalAddToRegisty - Push "AddToPathAllUsers" - Push "$ADD_TO_PATH_ALL_USERS" - Call ConditionalAddToRegisty - Push "AddToPathCurrentUser" - Push "$ADD_TO_PATH_CURRENT_USER" - Call ConditionalAddToRegisty - Push "InstallToDesktop" - Push "$INSTALL_DESKTOP" - Call ConditionalAddToRegisty - - !insertmacro MUI_STARTMENU_WRITE_END - -@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ - -SectionEnd - -Section "-Add to path" - Push $INSTDIR\bin - StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 doNotAddToPath - StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0 - Call AddToPath - doNotAddToPath: -SectionEnd - -;-------------------------------- -; Create custom pages -Function InstallOptionsPage - !insertmacro MUI_HEADER_TEXT "Install Options" "Choose options for installing @CPACK_NSIS_PACKAGE_NAME@" - !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini" - -FunctionEnd - -;-------------------------------- -; determine admin versus local install -Function un.onInit - - ClearErrors - UserInfo::GetName - IfErrors noLM - Pop $0 - UserInfo::GetAccountType - Pop $1 - StrCmp $1 "Admin" 0 +3 - SetShellVarContext all - ;MessageBox MB_OK 'User "$0" is in the Admin group' - Goto done - StrCmp $1 "Power" 0 +3 - SetShellVarContext all - ;MessageBox MB_OK 'User "$0" is in the Power Users group' - Goto done - - noLM: - ;Get installation folder from registry if available - - done: - -FunctionEnd - -;--- Add/Remove callback functions: --- -!macro SectionList MacroName - ;This macro used to perform operation on multiple sections. - ;List all of your components in following manner here. -@CPACK_NSIS_COMPONENT_SECTION_LIST@ -!macroend - -Section -FinishComponents - ;Removes unselected components and writes component status to registry - !insertmacro SectionList "FinishSection" - -!ifdef CPACK_NSIS_ADD_REMOVE - ; Get the name of the installer executable - System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1' - StrCpy $R3 $R0 - - ; Strip off the last 13 characters, to see if we have AddRemove.exe - StrLen $R1 $R0 - IntOp $R1 $R0 - 13 - StrCpy $R2 $R0 13 $R1 - StrCmp $R2 "AddRemove.exe" addremove_installed - - ; We're not running AddRemove.exe, so install it - CopyFiles $R3 $INSTDIR\AddRemove.exe - - addremove_installed: -!endif -SectionEnd -;--- End of Add/Remove callback functions --- - -;-------------------------------- -; Component dependencies -Function .onSelChange - !insertmacro SectionList MaybeSelectionChanged -FunctionEnd - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - ReadRegStr $START_MENU SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu" - ;MessageBox MB_OK "Start menu is in: $START_MENU" - ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "DoNotAddToPath" - ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathAllUsers" - ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathCurrentUser" - ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS" - ReadRegStr $INSTALL_DESKTOP SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "InstallToDesktop" - ;MessageBox MB_OK "Install to desktop: $INSTALL_DESKTOP " - -@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@ - - ;Remove files we installed. - ;Keep the list of directories here in sync with the File commands above. -@CPACK_NSIS_DELETE_FILES@ -@CPACK_NSIS_DELETE_DIRECTORIES@ - -!ifdef CPACK_NSIS_ADD_REMOVE - ;Remove the add/remove program - Delete "$INSTDIR\AddRemove.exe" -!endif - - ;Remove the uninstaller itself. - Delete "$INSTDIR\Uninstall.exe" - DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" - - ;Remove the installation directory if it is empty. - RMDir "$INSTDIR" - - ; Remove the registry entries. - DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" - - ; Removes all optional components - !insertmacro SectionList "RemoveSection_CPack" - - !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" -@CPACK_NSIS_DELETE_ICONS@ -@CPACK_NSIS_DELETE_ICONS_EXTRA@ - - ;Delete empty start menu parent diretories - StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" - - startMenuDeleteLoop: - ClearErrors - RMDir $MUI_TEMP - GetFullPathName $MUI_TEMP "$MUI_TEMP\.." - - IfErrors startMenuDeleteLoopDone - - StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop - startMenuDeleteLoopDone: - - ; If the user changed the shortcut, then untinstall may not work. This should - ; try to fix it. - StrCpy $MUI_TEMP "$START_MENU" - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" -@CPACK_NSIS_DELETE_ICONS_EXTRA@ - - ;Delete empty start menu parent diretories - StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" - - secondStartMenuDeleteLoop: - ClearErrors - RMDir $MUI_TEMP - GetFullPathName $MUI_TEMP "$MUI_TEMP\.." - - IfErrors secondStartMenuDeleteLoopDone - - StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop - secondStartMenuDeleteLoopDone: - - DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" - - Push $INSTDIR\bin - StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0 - Call un.RemoveFromPath - doNotRemoveFromPath: -SectionEnd - -;-------------------------------- -; determine admin versus local install -; Is install for "AllUsers" or "JustMe"? -; Default to "JustMe" - set to "AllUsers" if admin or on Win9x -; This function is used for the very first "custom page" of the installer. -; This custom page does not show up visibly, but it executes prior to the -; first visible page and sets up $INSTDIR properly... -; Choose different default installation folder based on SV_ALLUSERS... -; "Program Files" for AllUsers, "My Documents" for JustMe... - -Function .onInit - StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst - - ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "UninstallString" - StrCmp $0 "" inst - - MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \ - "@CPACK_NSIS_PACKAGE_NAME@ is already installed. $\n$\nDo you want to uninstall the old version before installing the new one?" \ - IDYES uninst IDNO inst - Abort - -;Run the uninstaller -uninst: - ClearErrors - StrLen $2 "\Uninstall.exe" - StrCpy $3 $0 -$2 # remove "\Uninstall.exe" from UninstallString to get path - ExecWait '$0 _?=$3' ;Do not copy the uninstaller to a temp file - - IfErrors uninst_failed inst -uninst_failed: - MessageBox MB_OK|MB_ICONSTOP "Uninstall failed." - Abort - - -inst: - ; Reads components status for registry - !insertmacro SectionList "InitSection" - - ; check to see if /D has been used to change - ; the install directory by comparing it to the - ; install directory that is expected to be the - ; default - StrCpy $IS_DEFAULT_INSTALLDIR 0 - StrCmp "$INSTDIR" "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2 - StrCpy $IS_DEFAULT_INSTALLDIR 1 - - StrCpy $SV_ALLUSERS "JustMe" - ; if default install dir then change the default - ; if it is installed for JustMe - StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2 - StrCpy $INSTDIR "$DOCUMENTS\@CPACK_PACKAGE_INSTALL_DIRECTORY@" - - ClearErrors - UserInfo::GetName - IfErrors noLM - Pop $0 - UserInfo::GetAccountType - Pop $1 - StrCmp $1 "Admin" 0 +4 - SetShellVarContext all - ;MessageBox MB_OK 'User "$0" is in the Admin group' - StrCpy $SV_ALLUSERS "AllUsers" - Goto done - StrCmp $1 "Power" 0 +4 - SetShellVarContext all - ;MessageBox MB_OK 'User "$0" is in the Power Users group' - StrCpy $SV_ALLUSERS "AllUsers" - Goto done - - noLM: - StrCpy $SV_ALLUSERS "AllUsers" - ;Get installation folder from registry if available - - done: - StrCmp $SV_ALLUSERS "AllUsers" 0 +3 - StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2 - StrCpy $INSTDIR "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" - - StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage - !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini" - - noOptionsPage: -FunctionEnd diff --git a/libi2pd/FS.cpp b/libi2pd/FS.cpp index 713d6ca6..bceda568 100644 --- a/libi2pd/FS.cpp +++ b/libi2pd/FS.cpp @@ -56,7 +56,7 @@ namespace fs { else { // otherwise %appdata% - SHGetFolderPath(NULL, CSIDL_APPDATA, 0, NULL, localAppData); + SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, localAppData); dataDir = std::string(localAppData) + "\\" + appName; } return;