[grub] update Grub4DOS to 0.4.6a

* Also fix Grub4DOS and Grub2.0 versioning issues
* Also ensures that operation gets canceled on missing download
* Also fix German translation and remove trailing whitespaces in .loc file
* Also fix inverted display status for VMWare disk detection
This commit is contained in:
Pete Batard 2015-02-16 22:29:23 +00:00
parent 24b435648e
commit 1dc55596d5
8 changed files with 88 additions and 87 deletions

View file

@ -46,6 +46,7 @@
#include "badblocks.h"
#include "localization.h"
#include "bled/bled.h"
#include "../res/grub/grub_version.h"
/*
* Globals
@ -1827,7 +1828,7 @@ DWORD WINAPI FormatThread(void* param)
grub4dos_dst[0] = drive_name[0];
uprintf("Installing: %s (Grub4DOS loader)\n", grub4dos_dst);
IGNORE_RETVAL(_chdirU(app_dir));
if (!CopyFileU(FILES_DIR "\\grub4dos\\grldr", grub4dos_dst, FALSE))
if (!CopyFileU(FILES_DIR "\\grub4dos-" GRUB4DOS_VERSION "\\grldr", grub4dos_dst, FALSE))
uprintf("Failed to copy file: %s", WindowsErrorString());
} else if ((dt == DT_ISO) && (image_path != NULL)) {
UpdateProgress(OP_DOS, 0.0f);

View file

@ -1,41 +1,40 @@
/*
* First 432 bytes of MBR from Grub4DOS (Converted from res/grub4dos/grldr.mbr)
* First 416 bytes of MBR from Grub4DOS (Converted from res/grub4dos/grldr.mbr)
*/
unsigned char mbr_grub_0x0[] = {
0xEB, 0x5E, 0x80, 0x00, 0x20, 0x39, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xEB, 0x5E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFA, 0x31, 0xDB, 0x8E, 0xD3, 0xBC, 0x80, 0x05, 0xE8, 0x00, 0x00, 0x5B,
0x81, 0xEB, 0x6B, 0x00, 0xC1, 0xEB, 0x04, 0x8C, 0xC8, 0x01, 0xC3, 0x8E,
0xDB, 0x53, 0x6A, 0x7D, 0xCB, 0x68, 0x00, 0x20, 0x17, 0xBC, 0x00, 0x90,
0xFB, 0x16, 0x07, 0xB9, 0x12, 0x00, 0xB8, 0x01, 0x02, 0x89, 0xCB, 0x4B,
0xC1, 0xE3, 0x09, 0xBA, 0x80, 0x00, 0x51, 0x53, 0xE8, 0xA4, 0x00, 0x5B,
0x59, 0x72, 0x04, 0xE2, 0xE9, 0xF6, 0xDC, 0x0E, 0x1F, 0x9C, 0x31, 0xF6,
0x31, 0xFF, 0xB9, 0xDF, 0x00, 0xFC, 0xF3, 0xA5, 0xBB, 0xFC, 0x1F, 0x66,
0xB8, 0x05, 0x4D, 0xCB, 0x93, 0x66, 0x39, 0x07, 0x75, 0x03, 0xE8, 0x39,
0x1C, 0xEA, 0xC6, 0x00, 0x00, 0x20, 0x16, 0x1F, 0x66, 0x39, 0x07, 0x74,
0x28, 0x66, 0x60, 0xBF, 0x03, 0x00, 0xB8, 0x11, 0x02, 0x99, 0xBB, 0x00,
0x02, 0xB9, 0x02, 0x00, 0xE8, 0x80, 0x00, 0x73, 0x02, 0x75, 0xEF, 0x66,
0x61, 0x66, 0x39, 0x07, 0x75, 0x4D, 0xC7, 0x06, 0x06, 0x00, 0x00, 0xFF,
0x80, 0x26, 0x02, 0x00, 0xFE, 0x9D, 0x72, 0x33, 0x0E, 0x1F, 0xAD, 0x88,
0xE6, 0xAD, 0x89, 0xC1, 0x24, 0x3F, 0x74, 0x14, 0xB0, 0x01, 0xBF, 0x03,
0x00, 0xB4, 0x02, 0x68, 0x00, 0x0D, 0x07, 0x31, 0xDB, 0xE8, 0x4B, 0x00,
0x73, 0x03, 0x75, 0xF1, 0xF9, 0xE8, 0x5C, 0x11, 0x0F, 0x87, 0xF3, 0x1B,
0x83, 0xC6, 0x0C, 0x81, 0xFE, 0xFE, 0x01, 0x72, 0xCF, 0x77, 0x0C, 0xBE,
0xB2, 0x31, 0xB0, 0x04, 0xB9, 0x01, 0x00, 0x31, 0xD2, 0xEB, 0xCF, 0xBE,
0x91, 0x01, 0xE8, 0x4D, 0x00, 0xEB, 0xFE, 0x1E, 0x06, 0x52, 0x56, 0x57,
0x55, 0xF9, 0xCD, 0x13, 0x5D, 0x5F, 0x5E, 0x5A, 0x07, 0x1F, 0xC3, 0xFA,
0xB8, 0x00, 0x20, 0x8E, 0xD0, 0xBC, 0xDC, 0x8F, 0xFB, 0x66, 0x61, 0x07,
0x1F, 0xEB, 0xC1, 0x60, 0x50, 0x53, 0x51, 0xFE, 0xC8, 0x00, 0xC1, 0xD0,
0xE0, 0x00, 0xC7, 0xB0, 0x01, 0xE8, 0xCF, 0xFF, 0x59, 0x5B, 0x58, 0x72,
0x04, 0xFE, 0xC8, 0x75, 0xE7, 0x61, 0x73, 0x09, 0x60, 0x31, 0xC0, 0xE8,
0xBD, 0xFF, 0x61, 0x4F, 0xF9, 0xC3, 0xB4, 0x0E, 0xCD, 0x10, 0x2E, 0xAC,
0x3C, 0x00, 0x75, 0xF6, 0xC3, 0x0D, 0x0A, 0x4D, 0x69, 0x73, 0x73, 0x69,
0x6E, 0x67, 0x20, 0x4D, 0x42, 0x52, 0x2D, 0x68, 0x65, 0x6C, 0x70, 0x65,
0x72, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x20, 0x39, 0xFF, 0xFF,
0x31, 0xDB, 0x8E, 0xD3, 0xBC, 0x80, 0x05, 0xE8, 0x00, 0x00, 0x5B, 0x81,
0xEB, 0x6A, 0x00, 0xC1, 0xEB, 0x04, 0x8C, 0xC8, 0x01, 0xC3, 0x53, 0x68,
0x7B, 0x00, 0xCB, 0x68, 0x00, 0x20, 0x17, 0xBC, 0x00, 0x90, 0x80, 0xFA,
0x00, 0x74, 0x02, 0xB2, 0x80, 0x16, 0x07, 0xB0, 0x10, 0x30, 0xF6, 0x31,
0xDB, 0xE8, 0xBB, 0x00, 0x72, 0x29, 0x0E, 0x1F, 0x31, 0xF6, 0x31, 0xFF,
0xB9, 0xDF, 0x00, 0xFC, 0xF3, 0xA5, 0xBB, 0xFC, 0x1F, 0x66, 0xB8, 0x47,
0x52, 0x55, 0xAA, 0x66, 0x39, 0x07, 0x75, 0x03, 0xE8, 0x98, 0x19, 0xEA,
0xB8, 0x00, 0x00, 0x20, 0x16, 0x1F, 0x66, 0x39, 0x07, 0x74, 0x1F, 0x80,
0xF2, 0x80, 0x68, 0xC0, 0x07, 0x07, 0xB0, 0x10, 0x30, 0xF6, 0x31, 0xDB,
0xE8, 0x80, 0x00, 0x72, 0x05, 0xEA, 0x00, 0x00, 0xC0, 0x07, 0xBE, 0x8B,
0x01, 0xE8, 0xA8, 0x00, 0xEB, 0xFE, 0xBE, 0xBE, 0x01, 0xE8, 0x04, 0x10,
0xF6, 0x06, 0x9D, 0x01, 0x80, 0x0F, 0x84, 0x6C, 0x19, 0x83, 0xC6, 0x0C,
0x81, 0xFE, 0xFE, 0x01, 0x72, 0xEB, 0x77, 0x26, 0xF6, 0x06, 0xA0, 0x01,
0x01, 0x0F, 0x85, 0x1E, 0x17, 0x80, 0x0E, 0xA0, 0x01, 0x01, 0xF6, 0x06,
0xA0, 0x01, 0x02, 0x75, 0xD4, 0x68, 0x00, 0x7C, 0x07, 0xB0, 0x01, 0x30,
0xF6, 0x31, 0xDB, 0xE8, 0x35, 0x00, 0x72, 0xBA, 0xEB, 0xC0, 0xF6, 0x06,
0xA0, 0x01, 0x01, 0x0F, 0x85, 0xF8, 0x16, 0x80, 0x0E, 0xA0, 0x01, 0x01,
0xE9, 0xD9, 0x16, 0x1E, 0x06, 0x52, 0x56, 0x57, 0x55, 0xF9, 0xCD, 0x13,
0x5D, 0x5F, 0x5E, 0x5A, 0x07, 0x1F, 0xC3, 0xFA, 0xB8, 0x00, 0x20, 0x8E,
0xD0, 0xBC, 0xDC, 0x8F, 0xFB, 0x66, 0x61, 0x07, 0x1F, 0xEB, 0x9E, 0xB4,
0x02, 0xBF, 0x03, 0x00, 0xB9, 0x01, 0x00, 0x60, 0x50, 0x53, 0x51, 0xFE,
0xC8, 0x00, 0xC1, 0xD0, 0xE0, 0x00, 0xC7, 0xB0, 0x01, 0xE8, 0xC7, 0xFF,
0x59, 0x5B, 0x58, 0x72, 0x04, 0xFE, 0xC8, 0x75, 0xE7, 0x61, 0x73, 0x0B,
0x60, 0x31, 0xC0, 0xE8, 0xB5, 0xFF, 0x61, 0x4F, 0x75, 0xD9, 0xF9, 0xC3,
0xB4, 0x0E, 0xCD, 0x10, 0x2E, 0xAC, 0x3C, 0x00, 0x75, 0xF6, 0xC3, 0x0D,
0x0A, 0x4D, 0x69, 0x73, 0x73, 0x69, 0x6E, 0x67, 0x20, 0x68, 0x65, 0x6C,
0x70, 0x65, 0x72, 0x2E, 0x00, 0x00, 0x3F, 0xFF
};

View file

@ -136,8 +136,6 @@ int dialog_showing = 0;
uint16_t rufus_version[3], embedded_sl_version[2];
char embedded_sl_version_str[2][12] = { "?.??", "?.??" };
char embedded_sl_version_ext[2][32];
char embedded_grub_version[] = GRUB4DOS_VERSION;
char embedded_grub2_version[] = GRUB2_PACKAGE_VERSION;
RUFUS_UPDATE update = { {0,0,0}, {0,0}, NULL, NULL};
StrArray DriveID, DriveLabel;
extern char* szStatusMessage;
@ -1272,7 +1270,7 @@ static BOOL BootCheck(void)
}
if ((iso_report.has_grub2) && (iso_report.grub2_version[0] != 0) &&
(strcmp(iso_report.grub2_version, embedded_grub2_version) != 0)) {
(strcmp(iso_report.grub2_version, GRUB2_PACKAGE_VERSION) != 0)) {
// We may have to download a different Grub2 version if we can find one
IGNORE_RETVAL(_chdirU(app_dir));
IGNORE_RETVAL(_mkdir(FILES_DIR));
@ -1296,7 +1294,7 @@ static BOOL BootCheck(void)
}
fclose(fd);
} else {
r = MessageBoxU(hMainDialog, lmprintf(MSG_116, iso_report.grub2_version, embedded_grub2_version),
r = MessageBoxU(hMainDialog, lmprintf(MSG_116, iso_report.grub2_version, GRUB2_PACKAGE_VERSION),
lmprintf(MSG_115), MB_YESNOCANCEL|MB_ICONWARNING|MB_IS_RTL);
if (r == IDCANCEL)
return FALSE;
@ -1447,7 +1445,8 @@ static BOOL BootCheck(void)
IGNORE_RETVAL(_mkdir(tmp));
static_sprintf(tmp, "%s/%s-%s/%s.%s", FILES_URL, syslinux, embedded_sl_version_str[1], ldlinux, ldlinux_ext[2]);
PrintInfo(0, MSG_085, tmp);
DownloadFile(tmp, &tmp[sizeof(FILES_URL)], hMainDialog);
if (DownloadFile(tmp, &tmp[sizeof(FILES_URL)], hMainDialog))
return FALSE;
}
}
} else if (dt == DT_WINME) {
@ -1460,7 +1459,7 @@ static BOOL BootCheck(void)
IGNORE_RETVAL(_chdirU(app_dir));
IGNORE_RETVAL(_mkdir(FILES_DIR));
IGNORE_RETVAL(_chdir(FILES_DIR));
static_sprintf(tmp, "grub4dos/grldr");
static_sprintf(tmp, "grub4dos-%s/grldr", GRUB4DOS_VERSION);
fd = fopenU(tmp, "rb");
if (fd != NULL) {
uprintf("Will reuse './%s/%s' for Grub4DOS installation\n", FILES_DIR, tmp);
@ -1473,10 +1472,13 @@ static BOOL BootCheck(void)
if (r == IDCANCEL)
return FALSE;
if (r == IDYES) {
IGNORE_RETVAL(_mkdir("grub4dos"));
static_sprintf(tmp, "%s/grub4dos/grldr", FILES_URL);
static_sprintf(tmp, "grub4dos-%s", GRUB4DOS_VERSION);
IGNORE_RETVAL(_mkdir(tmp));
static_sprintf(tmp, "%s/grub4dos-%s/grldr", FILES_URL, GRUB4DOS_VERSION);
PrintInfo(0, MSG_085, tmp);
DownloadFile(tmp, &tmp[sizeof(FILES_URL)], hMainDialog);
uprintf("URL = %s", tmp);
if (DownloadFile(tmp, &tmp[sizeof(FILES_URL)], hMainDialog) == 0)
return FALSE;
}
}
}
@ -1613,7 +1615,7 @@ void InitDialog(HWND hDlg)
uprintf("Windows version: %s", WindowsVersionStr);
uprintf("Syslinux versions: %s%s, %s%s", embedded_sl_version_str[0], embedded_sl_version_ext[0],
embedded_sl_version_str[1], embedded_sl_version_ext[1]);
uprintf("Grub versions: %s, %s", embedded_grub_version, embedded_grub2_version);
uprintf("Grub versions: %s, %s", GRUB4DOS_VERSION, GRUB2_PACKAGE_VERSION);
uprintf("Locale ID: 0x%04X", GetUserDefaultUILanguage());
SetClusterSizeLabels();
@ -1798,8 +1800,10 @@ void SetBoot(int fs, int bt)
static_sprintf(tmp, "Syslinux %s", embedded_sl_version_str[1]);
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType, tmp), DT_SYSLINUX_V6));
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType, "ReactOS"), DT_REACTOS));
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType, "Grub 2.00-22"), DT_GRUB2));
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType, "Grub4DOS 0.4.5"), DT_GRUB4DOS));
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType,
"Grub " GRUB2_PACKAGE_VERSION), DT_GRUB2));
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType,
"Grub4DOS " GRUB4DOS_VERSION), DT_GRUB4DOS));
}
if ((!advanced_mode) && (selection_default >= DT_SYSLINUX_V4)) {
selection_default = DT_FREEDOS;
@ -2789,7 +2793,7 @@ relaunch:
// Alt-W => Enable VMWare disk detection
if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'W')) {
enable_vmdk = !enable_vmdk;
PrintStatus2000(lmprintf(MSG_265), !enable_vmdk);
PrintStatus2000(lmprintf(MSG_265), enable_vmdk);
GetUSBDevices(0);
continue;
}

View file

@ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG DIALOGEX 12, 12, 242, 376
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Rufus 2.0.624"
CAPTION "Rufus 2.0.625"
FONT 8, "Segoe UI", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Start",IDC_START,127,339,50,14
@ -157,7 +157,7 @@ END
IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Rufus 2.0.624"
CAPTION "Rufus 2.0.625"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Start",IDC_START,127,339,50,14
@ -283,7 +283,7 @@ END
IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
CAPTION "Rufus 2.0.624"
CAPTION "Rufus 2.0.625"
FONT 8, "Segoe UI", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Start",IDC_START,127,339,50,14
@ -415,7 +415,7 @@ END
IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
CAPTION "Rufus 2.0.624"
CAPTION "Rufus 2.0.625"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Start",IDC_START,127,339,50,14
@ -671,8 +671,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,0,624,0
PRODUCTVERSION 2,0,624,0
FILEVERSION 2,0,625,0
PRODUCTVERSION 2,0,625,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -689,13 +689,13 @@ BEGIN
BEGIN
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
VALUE "FileDescription", "Rufus"
VALUE "FileVersion", "2.0.624"
VALUE "FileVersion", "2.0.625"
VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
VALUE "OriginalFilename", "rufus.exe"
VALUE "ProductName", "Rufus"
VALUE "ProductVersion", "2.0.624"
VALUE "ProductVersion", "2.0.625"
END
END
BLOCK "VarFileInfo"