mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[syslinux] partially improve support for openSuse based live ISOs
* Using /syslinux.cfg creates issues, so we force the use of /boot/[i386|x86_64]/loader/isolinux.cfg * IMPORTANT: This does NOT fix openSuse based live ISO support as the openSuse boot scripts are NOT designed to handle anything else but an ISO9660 filesystem. Especially, they cannot handle FAT. * Closes #478 * Also set rufus-next to 2.2
This commit is contained in:
		
							parent
							
								
									eee9458984
								
							
						
					
					
						commit
						8ab3847694
					
				
					 5 changed files with 45 additions and 23 deletions
				
			
		
							
								
								
									
										20
									
								
								configure
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								configure
									
										
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,6 @@ | ||||||
| #! /bin/sh | #! /bin/sh | ||||||
| # Guess values for system-dependent variables and create Makefiles. | # Guess values for system-dependent variables and create Makefiles. | ||||||
| # Generated by GNU Autoconf 2.69 for rufus 2.1. | # Generated by GNU Autoconf 2.69 for rufus 2.2. | ||||||
| # | # | ||||||
| # Report bugs to <https://github.com/pbatard/rufus/issues>. | # Report bugs to <https://github.com/pbatard/rufus/issues>. | ||||||
| # | # | ||||||
|  | @ -580,8 +580,8 @@ MAKEFLAGS= | ||||||
| # Identity of this package. | # Identity of this package. | ||||||
| PACKAGE_NAME='rufus' | PACKAGE_NAME='rufus' | ||||||
| PACKAGE_TARNAME='rufus' | PACKAGE_TARNAME='rufus' | ||||||
| PACKAGE_VERSION='2.1' | PACKAGE_VERSION='2.2' | ||||||
| PACKAGE_STRING='rufus 2.1' | PACKAGE_STRING='rufus 2.2' | ||||||
| PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues' | PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues' | ||||||
| PACKAGE_URL='http://rufus.akeo.ie' | PACKAGE_URL='http://rufus.akeo.ie' | ||||||
| 
 | 
 | ||||||
|  | @ -1227,7 +1227,7 @@ if test "$ac_init_help" = "long"; then | ||||||
|   # Omit some internal or obsolete options to make the list less imposing. |   # Omit some internal or obsolete options to make the list less imposing. | ||||||
|   # This message is too long to be a string in the A/UX 3.1 sh. |   # This message is too long to be a string in the A/UX 3.1 sh. | ||||||
|   cat <<_ACEOF |   cat <<_ACEOF | ||||||
| \`configure' configures rufus 2.1 to adapt to many kinds of systems. | \`configure' configures rufus 2.2 to adapt to many kinds of systems. | ||||||
| 
 | 
 | ||||||
| Usage: $0 [OPTION]... [VAR=VALUE]... | Usage: $0 [OPTION]... [VAR=VALUE]... | ||||||
| 
 | 
 | ||||||
|  | @ -1293,7 +1293,7 @@ fi | ||||||
| 
 | 
 | ||||||
| if test -n "$ac_init_help"; then | if test -n "$ac_init_help"; then | ||||||
|   case $ac_init_help in |   case $ac_init_help in | ||||||
|      short | recursive ) echo "Configuration of rufus 2.1:";; |      short | recursive ) echo "Configuration of rufus 2.2:";; | ||||||
|    esac |    esac | ||||||
|   cat <<\_ACEOF |   cat <<\_ACEOF | ||||||
| 
 | 
 | ||||||
|  | @ -1383,7 +1383,7 @@ fi | ||||||
| test -n "$ac_init_help" && exit $ac_status | test -n "$ac_init_help" && exit $ac_status | ||||||
| if $ac_init_version; then | if $ac_init_version; then | ||||||
|   cat <<\_ACEOF |   cat <<\_ACEOF | ||||||
| rufus configure 2.1 | rufus configure 2.2 | ||||||
| generated by GNU Autoconf 2.69 | generated by GNU Autoconf 2.69 | ||||||
| 
 | 
 | ||||||
| Copyright (C) 2012 Free Software Foundation, Inc. | Copyright (C) 2012 Free Software Foundation, Inc. | ||||||
|  | @ -1438,7 +1438,7 @@ cat >config.log <<_ACEOF | ||||||
| This file contains any messages produced by compilers while | This file contains any messages produced by compilers while | ||||||
| running configure, to aid debugging if configure makes a mistake. | running configure, to aid debugging if configure makes a mistake. | ||||||
| 
 | 
 | ||||||
| It was created by rufus $as_me 2.1, which was | It was created by rufus $as_me 2.2, which was | ||||||
| generated by GNU Autoconf 2.69.  Invocation command line was | generated by GNU Autoconf 2.69.  Invocation command line was | ||||||
| 
 | 
 | ||||||
|   $ $0 $@ |   $ $0 $@ | ||||||
|  | @ -2301,7 +2301,7 @@ fi | ||||||
| 
 | 
 | ||||||
| # Define the identity of the package. | # Define the identity of the package. | ||||||
|  PACKAGE='rufus' |  PACKAGE='rufus' | ||||||
|  VERSION='2.1' |  VERSION='2.2' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| cat >>confdefs.h <<_ACEOF | cat >>confdefs.h <<_ACEOF | ||||||
|  | @ -4466,7 +4466,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||||||
| # report actual input values of CONFIG_FILES etc. instead of their | # report actual input values of CONFIG_FILES etc. instead of their | ||||||
| # values after options handling. | # values after options handling. | ||||||
| ac_log=" | ac_log=" | ||||||
| This file was extended by rufus $as_me 2.1, which was | This file was extended by rufus $as_me 2.2, which was | ||||||
| generated by GNU Autoconf 2.69.  Invocation command line was | generated by GNU Autoconf 2.69.  Invocation command line was | ||||||
| 
 | 
 | ||||||
|   CONFIG_FILES    = $CONFIG_FILES |   CONFIG_FILES    = $CONFIG_FILES | ||||||
|  | @ -4520,7 +4520,7 @@ _ACEOF | ||||||
| cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||||||
| ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | ||||||
| ac_cs_version="\\ | ac_cs_version="\\ | ||||||
| rufus config.status 2.1 | rufus config.status 2.2 | ||||||
| configured by $0, generated by GNU Autoconf 2.69, | configured by $0, generated by GNU Autoconf 2.69, | ||||||
|   with options \\"\$ac_cs_config\\" |   with options \\"\$ac_cs_config\\" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| AC_INIT([rufus], [2.1], [https://github.com/pbatard/rufus/issues], [rufus], [http://rufus.akeo.ie]) | AC_INIT([rufus], [2.2], [https://github.com/pbatard/rufus/issues], [rufus], [http://rufus.akeo.ie]) | ||||||
| AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies]) | AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies]) | ||||||
| AC_CONFIG_SRCDIR([src/rufus.c]) | AC_CONFIG_SRCDIR([src/rufus.c]) | ||||||
| AC_CONFIG_MACRO_DIR([m4]) | AC_CONFIG_MACRO_DIR([m4]) | ||||||
|  |  | ||||||
							
								
								
									
										29
									
								
								src/iso.c
									
										
									
									
									
								
							
							
						
						
									
										29
									
								
								src/iso.c
									
										
									
									
									
								
							|  | @ -600,7 +600,7 @@ BOOL ExtractISO(const char* src_iso, const char* dest_dir, BOOL scan) | ||||||
| 	udf_t* p_udf = NULL;  | 	udf_t* p_udf = NULL;  | ||||||
| 	udf_dirent_t* p_udf_root; | 	udf_dirent_t* p_udf_root; | ||||||
| 	char *tmp, *buf, *ext; | 	char *tmp, *buf, *ext; | ||||||
| 	char path[MAX_PATH]; | 	char path[MAX_PATH], path2[16]; | ||||||
| 	const char* basedir[] = { "i386", "minint" }; | 	const char* basedir[] = { "i386", "minint" }; | ||||||
| 	const char* tmp_sif = ".\\txtsetup.sif~"; | 	const char* tmp_sif = ".\\txtsetup.sif~"; | ||||||
| 	iso_extension_mask_t iso_extension_mask = ISO_EXTENSION_ALL; | 	iso_extension_mask_t iso_extension_mask = ISO_EXTENSION_ALL; | ||||||
|  | @ -698,8 +698,22 @@ out: | ||||||
| 		// If multiple config files exist, choose the one with the shortest path
 | 		// If multiple config files exist, choose the one with the shortest path
 | ||||||
| 		// (so that a '/syslinux.cfg' is preferred over a '/isolinux/isolinux.cfg')
 | 		// (so that a '/syslinux.cfg' is preferred over a '/isolinux/isolinux.cfg')
 | ||||||
| 		if (!IsStrArrayEmpty(config_path)) { | 		if (!IsStrArrayEmpty(config_path)) { | ||||||
| 			safe_strcpy(iso_report.cfg_path, sizeof(iso_report.cfg_path), config_path.String[0]); | 			// Set the iso_report.cfg_path string to maximum length, so that we don't have to
 | ||||||
| 			for (i=1; i<config_path.Index; i++) { | 			// do a special case for StrArray entry 0.
 | ||||||
|  | 			memset(iso_report.cfg_path, '_', sizeof(iso_report.cfg_path)-1); | ||||||
|  | 			iso_report.cfg_path[sizeof(iso_report.cfg_path)-1] = 0; | ||||||
|  | 			for (i=0; i<config_path.Index; i++) { | ||||||
|  | 				// OpenSuse based Live image have a /syslinux.cfg that doesn't work, so we enforce
 | ||||||
|  | 				// the use of the one in '/boot/[i386|x86_64]/loader/isolinux.cfg' if present.
 | ||||||
|  | 				// Note that, because the openSuse live script are not designed to handle anything but
 | ||||||
|  | 				// an ISO9660 filesystem for the live device, this still won't allow for proper boot.
 | ||||||
|  | 				// See https://github.com/openSUSE/kiwi/issues/354
 | ||||||
|  | 				if ( (_stricmp(config_path.String[i], "/boot/i386/loader/isolinux.cfg") == 0) || | ||||||
|  | 					 (_stricmp(config_path.String[i], "/boot/x86_64/loader/isolinux.cfg") == 0)) { | ||||||
|  | 					safe_strcpy(iso_report.cfg_path, sizeof(iso_report.cfg_path), config_path.String[i]); | ||||||
|  | 					iso_report.needs_syslinux_overwrite = TRUE; | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
| 				// Tails uses an '/EFI/BOOT/isolinux.cfg' along with a '/isolinux/isolinux.cfg'
 | 				// Tails uses an '/EFI/BOOT/isolinux.cfg' along with a '/isolinux/isolinux.cfg'
 | ||||||
| 				// which are the exact same length. However, only the /isolinux one will work,
 | 				// which are the exact same length. However, only the /isolinux one will work,
 | ||||||
| 				// so for now, at equal length, always pick the latest.
 | 				// so for now, at equal length, always pick the latest.
 | ||||||
|  | @ -708,7 +722,7 @@ out: | ||||||
| 				if (safe_strlen(iso_report.cfg_path) >= safe_strlen(config_path.String[i])) | 				if (safe_strlen(iso_report.cfg_path) >= safe_strlen(config_path.String[i])) | ||||||
| 					safe_strcpy(iso_report.cfg_path, sizeof(iso_report.cfg_path), config_path.String[i]); | 					safe_strcpy(iso_report.cfg_path, sizeof(iso_report.cfg_path), config_path.String[i]); | ||||||
| 			} | 			} | ||||||
| 			uprintf("Will use %s for Syslinux\n", iso_report.cfg_path); | 			uprintf("Will use '%s' for Syslinux\n", iso_report.cfg_path); | ||||||
| 			// Extract all of the isolinux.bin files we found to identify their versions
 | 			// Extract all of the isolinux.bin files we found to identify their versions
 | ||||||
| 			for (i=0; i<isolinux_path.Index; i++) { | 			for (i=0; i<isolinux_path.Index; i++) { | ||||||
| 				size = (size_t)ExtractISOFile(src_iso, isolinux_path.String[i], dot_isolinux_bin, FILE_ATTRIBUTE_NORMAL); | 				size = (size_t)ExtractISOFile(src_iso, isolinux_path.String[i], dot_isolinux_bin, FILE_ATTRIBUTE_NORMAL); | ||||||
|  | @ -803,6 +817,13 @@ out: | ||||||
| 		safe_sprintf(path, sizeof(path), "%s\\syslinux.cfg", dest_dir); | 		safe_sprintf(path, sizeof(path), "%s\\syslinux.cfg", dest_dir); | ||||||
| 		// Create a /syslinux.cfg (if none exists) that points to the existing isolinux cfg
 | 		// Create a /syslinux.cfg (if none exists) that points to the existing isolinux cfg
 | ||||||
| 		fd = fopen(path, "r"); | 		fd = fopen(path, "r"); | ||||||
|  | 		if (fd != NULL && iso_report.needs_syslinux_overwrite) { | ||||||
|  | 			fclose(fd); | ||||||
|  | 			fd = NULL; | ||||||
|  | 			safe_sprintf(path2, sizeof(path2), "%s\\syslinux.org", dest_dir); | ||||||
|  | 			uprintf("Renaming: %s ⇨ %s", path, path2); | ||||||
|  | 			rename(path, path2); | ||||||
|  | 		} | ||||||
| 		if (fd == NULL) { | 		if (fd == NULL) { | ||||||
| 			fd = fopen(path, "w");	// No "/syslinux.cfg" => create a new one
 | 			fd = fopen(path, "w");	// No "/syslinux.cfg" => create a new one
 | ||||||
| 			if (fd == NULL) { | 			if (fd == NULL) { | ||||||
|  |  | ||||||
|  | @ -262,6 +262,7 @@ typedef struct { | ||||||
| 	BOOL has_old_c32[NB_OLD_C32]; | 	BOOL has_old_c32[NB_OLD_C32]; | ||||||
| 	BOOL has_old_vesamenu; | 	BOOL has_old_vesamenu; | ||||||
| 	BOOL has_efi_syslinux; | 	BOOL has_efi_syslinux; | ||||||
|  | 	BOOL needs_syslinux_overwrite; | ||||||
| 	BOOL has_grub4dos; | 	BOOL has_grub4dos; | ||||||
| 	BOOL has_grub2; | 	BOOL has_grub2; | ||||||
| 	BOOL has_kolibrios; | 	BOOL has_kolibrios; | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL | ||||||
| 
 | 
 | ||||||
| IDD_DIALOG DIALOGEX 12, 12, 242, 376 | IDD_DIALOG DIALOGEX 12, 12, 242, 376 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||||
| CAPTION "Rufus 2.1.649" | CAPTION "Rufus 2.2.650" | ||||||
| FONT 8, "Segoe UI", 400, 0, 0x1 | FONT 8, "Segoe UI", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -157,7 +157,7 @@ END | ||||||
| 
 | 
 | ||||||
| IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376 | IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||||
| CAPTION "Rufus 2.1.649" | CAPTION "Rufus 2.2.650" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -283,7 +283,7 @@ END | ||||||
| IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376 | IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | 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 | EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | ||||||
| CAPTION "Rufus 2.1.649" | CAPTION "Rufus 2.2.650" | ||||||
| FONT 8, "Segoe UI", 400, 0, 0x1 | FONT 8, "Segoe UI", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -415,7 +415,7 @@ END | ||||||
| IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376 | IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | 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 | EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | ||||||
| CAPTION "Rufus 2.1.649" | CAPTION "Rufus 2.2.650" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -671,8 +671,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 2,1,649,0 |  FILEVERSION 2,2,650,0 | ||||||
|  PRODUCTVERSION 2,1,649,0 |  PRODUCTVERSION 2,2,650,0 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -689,13 +689,13 @@ BEGIN | ||||||
|         BEGIN |         BEGIN | ||||||
|             VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" |             VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" | ||||||
|             VALUE "FileDescription", "Rufus" |             VALUE "FileDescription", "Rufus" | ||||||
|             VALUE "FileVersion", "2.1.649" |             VALUE "FileVersion", "2.2.650" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)" | ||||||
|             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" |             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" | ||||||
|             VALUE "OriginalFilename", "rufus.exe" |             VALUE "OriginalFilename", "rufus.exe" | ||||||
|             VALUE "ProductName", "Rufus" |             VALUE "ProductName", "Rufus" | ||||||
|             VALUE "ProductVersion", "2.1.649" |             VALUE "ProductVersion", "2.2.650" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue