Hello community, here is the log from the commit of package grub2 for openSUSE:Factory checked in at 2012-05-08 11:14:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/grub2 (Old) and /work/SRC/openSUSE:Factory/.grub2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "grub2", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/grub2/grub2.changes 2012-04-02 11:23:34.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2012-05-08 11:14:43.000000000 +0200 @@ -1,0 +2,14 @@ +Wed May 2 03:17:21 UTC 2012 - mchang@suse.com + +- grub2-automake-1-11-2.patch : fix grub2 build error on newer + autotools (automake >= 1.11.2) +- call ./autogen.sh + +------------------------------------------------------------------- +Thu Apr 19 11:28:44 UTC 2012 - mchang@suse.com + +- grub2-probe-disk-mountby.patch : fix grub2-probe fails on + probing mount-by devices under /dev/disk/by-(id|uuid|path). + (bnc#757746) + +------------------------------------------------------------------- New: ---- grub2-automake-1-11-2.patch grub2-probe-disk-mountby.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ grub2.spec ++++++ --- /var/tmp/diff_new_pack.SIbUAq/_old 2012-05-08 11:14:44.000000000 +0200 +++ /var/tmp/diff_new_pack.SIbUAq/_new 2012-05-08 11:14:44.000000000 +0200 @@ -42,6 +42,8 @@ BuildRequires: lzma BuildRequires: ruby BuildRequires: xz +BuildRequires: autogen +BuildRequires: python # Modules always contain just 32-bit code %define _libdir %{_exec_prefix}/lib @@ -78,6 +80,8 @@ Patch7: grub2-install-opt-skip-fs-probe.patch Patch8: grub2-gcc47.patch Patch9: os-prober_osx.patch +Patch10: grub2-probe-disk-mountby.patch +Patch11: grub2-automake-1-11-2.patch PreReq: perl-Bootloader Requires: gettext-runtime Requires: os-prober @@ -129,7 +133,7 @@ sed 's,@setfilename grub.info,@setfilename grub2.info,' grub-%{version}/docs/grub.texi >grub-%{version}/docs/grub2.texi sed -i 's,grub.texi,grub2.texi,' grub-%{version}/docs/Makefile.am ## fix unifont location so grub-mkfont can create *.pf2 files -sed -i 's|/usr/share/fonts/unifont|/usr/share/fonts/uni|g' grub-%{version}/configure +sed -i 's|/usr/share/fonts/unifont|/usr/share/fonts/uni|g' grub-%{version}/configure.ac cd grub-%{version} %patch0 -p1 %patch2 -p1 @@ -140,6 +144,8 @@ %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -p1 +%patch11 -p1 cd .. # README.openSUSE @@ -151,6 +157,7 @@ %build %ifarch %{efi} cd grub-efi-%{version} +./autogen.sh # we don't want to let rpm to override *FLAGS by bogus ones CFLAGS="-fno-strict-aliasing " CXXFLAGS=" " @@ -173,7 +180,7 @@ cd .. %endif cd grub-%{version} -#./autogen.sh +./autogen.sh # we don't want to let rpm to override *FLAGS by bogus ones CFLAGS="-fno-strict-aliasing " @@ -295,8 +302,9 @@ %files -f grub-%{version}/grub.lang %defattr(-,root,root,-) %{_libdir}/%{name} -%{_libdir}/grub/ %{_sbindir}/%{name}-* +%{_datadir}/%{name} +%{_datadir}/grub %ifarch %{efi} %exclude %{_sbindir}/grub2-efi-* %endif @@ -319,8 +327,6 @@ %doc grub-%{version}/ChangeLog grub-%{version}/README.openSUSE %{_infodir}/grub-dev.info* %{_infodir}/%{name}.info* -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/*.pf2 %ifarch %{efi} @@ -365,7 +371,6 @@ %doc grub-%{version}/COPYING grub-%{version}/NEWS %doc grub-%{version}/README grub-%{version}/THANKS grub-%{version}/TODO %doc grub-%{version}/ChangeLog grub-%{version}/README.openSUSE -%exclude %{_mandir} %dir %{_datadir}/%{name}-efi %{_datadir}/%{name}-efi/*.pf2 %endif ++++++ grub2-automake-1-11-2.patch ++++++ Index: grub-1.99/Makefile.am =================================================================== --- grub-1.99.orig/Makefile.am +++ grub-1.99/Makefile.am @@ -101,8 +101,8 @@ CLEANFILES += widthspec.h # Install config.h into platformdir platform_HEADERS = config.h -pkglib_DATA += grub-mkconfig_lib -pkglib_DATA += update-grub_lib +pkgdata_DATA += grub-mkconfig_lib +pkgdata_DATA += update-grub_lib if COND_i386_coreboot Index: grub-1.99/conf/Makefile.common =================================================================== --- grub-1.99.orig/conf/Makefile.common +++ grub-1.99/conf/Makefile.common @@ -137,7 +137,7 @@ KERNEL_HEADER_FILES = man_MANS = noinst_DATA = -pkglib_DATA = +pkgdata_DATA = bin_SCRIPTS = sbin_SCRIPTS = bin_PROGRAMS = @@ -147,7 +147,7 @@ check_SCRIPTS = grubconf_DATA = check_PROGRAMS = noinst_SCRIPTS = -pkglib_SCRIPTS = +pkgdata_SCRIPTS = noinst_PROGRAMS = grubconf_SCRIPTS = noinst_LIBRARIES = Index: grub-1.99/util/grub-mkconfig.in =================================================================== --- grub-1.99.orig/util/grub-mkconfig.in +++ grub-1.99/util/grub-mkconfig.in @@ -95,7 +95,7 @@ do esac done -. ${libdir}/grub/grub-mkconfig_lib +. ${datadir}/grub/grub-mkconfig_lib if [ "x$EUID" = "x" ] ; then EUID=`id -u` Index: grub-1.99/util/grub.d/00_header.in =================================================================== --- grub-1.99.orig/util/grub.d/00_header.in +++ grub-1.99/util/grub.d/00_header.in @@ -22,10 +22,11 @@ transform="@program_transform_name@" prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ +datadir=@datadir@ locale_dir=`echo ${GRUB_PREFIX}/locale | sed ${transform}` grub_lang=`echo $LANG | cut -d . -f 1` -. ${libdir}/grub/grub-mkconfig_lib +. ${datadir}/grub/grub-mkconfig_lib # Do this as early as possible, since other commands might depend on it. # (e.g. the `loadfont' command might need lvm or raid modules) Index: grub-1.99/util/grub.d/10_hurd.in =================================================================== --- grub-1.99.orig/util/grub.d/10_hurd.in +++ grub-1.99/util/grub.d/10_hurd.in @@ -20,7 +20,8 @@ set -e prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +datadir=@datadir@ +. ${datadir}/grub/grub-mkconfig_lib CLASS="--class gnu --class os" Index: grub-1.99/util/grub.d/10_kfreebsd.in =================================================================== --- grub-1.99.orig/util/grub.d/10_kfreebsd.in +++ grub-1.99/util/grub.d/10_kfreebsd.in @@ -21,7 +21,8 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +datadir=@datadir@ +. ${datadir}/grub/grub-mkconfig_lib export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR=@localedir@ Index: grub-1.99/util/grub.d/10_linux.in =================================================================== --- grub-1.99.orig/util/grub.d/10_linux.in +++ grub-1.99/util/grub.d/10_linux.in @@ -21,7 +21,8 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +datadir=@datadir@ +. ${datadir}/grub/grub-mkconfig_lib export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR=@localedir@ Index: grub-1.99/util/grub.d/10_netbsd.in =================================================================== --- grub-1.99.orig/util/grub.d/10_netbsd.in +++ grub-1.99/util/grub.d/10_netbsd.in @@ -21,7 +21,8 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +datadir=@datadir@ +. ${datadir}/grub/grub-mkconfig_lib export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR=@localedir@ Index: grub-1.99/util/grub.d/10_windows.in =================================================================== --- grub-1.99.orig/util/grub.d/10_windows.in +++ grub-1.99/util/grub.d/10_windows.in @@ -20,7 +20,8 @@ set -e prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +datadir=@datadir@ +. ${datadir}/grub/grub-mkconfig_lib case "`uname 2>/dev/null`" in CYGWIN*) ;; Index: grub-1.99/util/grub.d/20_linux_xen.in =================================================================== --- grub-1.99.orig/util/grub.d/20_linux_xen.in +++ grub-1.99/util/grub.d/20_linux_xen.in @@ -21,7 +21,8 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +datadir=@datadir@ +. ${datadir}/grub/grub-mkconfig_lib export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR=@localedir@ Index: grub-1.99/util/grub.d/30_os-prober.in =================================================================== --- grub-1.99.orig/util/grub.d/30_os-prober.in +++ grub-1.99/util/grub.d/30_os-prober.in @@ -20,8 +20,9 @@ set -e prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ +datadir=@datadir@ -. ${libdir}/grub/grub-mkconfig_lib +. ${datadir}/grub/grub-mkconfig_lib if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then exit 0 Index: grub-1.99/util/update-grub_lib.in =================================================================== --- grub-1.99.orig/util/update-grub_lib.in +++ grub-1.99/util/update-grub_lib.in @@ -18,6 +18,6 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +. ${datadir}/grub/grub-mkconfig_lib grub_warn "update-grub_lib is deprecated, use grub-mkconfig_lib instead" ++++++ grub2-probe-disk-mountby.patch ++++++ Index: grub-1.99/grub-core/kern/emu/hostdisk.c =================================================================== --- grub-1.99.orig/grub-core/kern/emu/hostdisk.c +++ grub-1.99/grub-core/kern/emu/hostdisk.c @@ -1150,10 +1150,14 @@ make_device_name (int drive, int dos_par } static char * -convert_system_partition_to_system_disk (const char *os_dev, struct stat *st) +convert_system_partition_to_system_disk (const char *os_dev, struct stat *st, + int *is_part) { #if defined(__linux__) char *path = xmalloc (PATH_MAX); + + *is_part = 0; + if (! realpath (os_dev, path)) return NULL; @@ -1166,7 +1170,10 @@ convert_system_partition_to_system_disk { p = strstr (p, "part"); if (p) - strcpy (p, "disc"); + { + *is_part = 1; + strcpy (p, "disc"); + } return path; } @@ -1176,7 +1183,10 @@ convert_system_partition_to_system_disk { p = strstr (p, "part"); if (p) - strcpy (p, "disc"); + { + *is_part = 1; + strcpy (p, "disc"); + } return path; } @@ -1187,7 +1197,10 @@ convert_system_partition_to_system_disk /* /dev/rd/c[0-9]+d[0-9]+(p[0-9]+)? */ p = strchr (p, 'p'); if (p) - *p = '\0'; + { + *is_part = 1; + *p = '\0'; + } return path; } @@ -1198,7 +1211,10 @@ convert_system_partition_to_system_disk /* /dev/rd/c[0-9]+d[0-9]+(p[0-9]+)? */ p = strchr (p, 'p'); if (p) - *p = '\0'; + { + *is_part = 1; + *p = '\0'; + } return path; } @@ -1208,7 +1224,10 @@ convert_system_partition_to_system_disk /* /dev/cciss/c[0-9]+d[0-9]+(p[0-9]+)? */ p = strchr (p, 'p'); if (p) - *p = '\0'; + { + *is_part = 1; + *p = '\0'; + } return path; } @@ -1219,7 +1238,10 @@ convert_system_partition_to_system_disk /* /dev/ida/c[0-9]+d[0-9]+(p[0-9]+)? */ p = strchr (p, 'p'); if (p) - *p = '\0'; + { + *is_part = 1; + *p = '\0'; + } return path; } @@ -1228,6 +1250,8 @@ convert_system_partition_to_system_disk if (strncmp ("i2o/hd", p, sizeof ("i2o/hd") - 1) == 0) { /* /dev/i2o/hd[a-z]([0-9]+)? */ + if (p[sizeof ("i2o/hda") - 1]) + *is_part = 1; p[sizeof ("i2o/hda") - 1] = '\0'; return path; } @@ -1238,7 +1262,10 @@ convert_system_partition_to_system_disk /* /dev/mmcblk[0-9]+(p[0-9]+)? */ p = strchr (p, 'p'); if (p) - *p = '\0'; + { + *is_part = 1; + *p = '\0'; + } return path; } @@ -1249,6 +1276,8 @@ convert_system_partition_to_system_disk char *ptr = p + 2; while (*ptr >= '0' && *ptr <= '9') ptr++; + if (*ptr) + *is_part = 1; *ptr = 0; return path; } @@ -1258,6 +1287,8 @@ convert_system_partition_to_system_disk && p[5] >= 'a' && p[5] <= 'z') { /* /dev/vdisk[a-z][0-9]* */ + if (p[6]) + *is_part = 1; p[6] = '\0'; return path; } @@ -1269,6 +1300,8 @@ convert_system_partition_to_system_disk char *pp = p + 2; while (*pp >= 'a' && *pp <= 'z') pp++; + if (*pp) + *is_part = 1; /* /dev/[hsv]d[a-z]+[0-9]* */ *pp = '\0'; return path; @@ -1280,16 +1313,16 @@ convert_system_partition_to_system_disk char *pp = p + 3; while (*pp >= 'a' && *pp <= 'z') pp++; + if (*pp) + *is_part = 1; /* /dev/xvd[a-z]+[0-9]* */ *pp = '\0'; return path; } #ifdef HAVE_DEVICE_MAPPER - /* If this is a DM-RAID device. - Compare os_dev rather than path here, since nodes under - /dev/mapper/ are often symlinks. */ - if ((strncmp ("/dev/mapper/", os_dev, 12) == 0)) + if ((strncmp ("/dev/mapper/", path, sizeof ("/dev/mapper/") - 1) == 0) + || (strncmp ("/dev/dm-", path, sizeof ("/dev/dm-") - 1) == 0)) { struct dm_tree *tree; uint32_t maj, min; @@ -1388,14 +1421,21 @@ devmapper_out: { char *p = strchr (path + 7, 's'); if (p) - *p = '\0'; + { + *is_part = 1; + *p = '\0'; + } } return path; #elif defined(__CYGWIN__) char *path = xstrdup (os_dev); - if (strncmp ("/dev/sd", path, 7) == 0 && 'a' <= path[7] && path[7] <= 'z') - path[8] = 0; + if (strncmp ("/dev/sd", path, 7) == 0 && 'a' <= path[7] && path[7] <= 'z' + && path[8]) + { + *is_part = 1; + path[8] = 0; + } return path; #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) @@ -1404,6 +1444,8 @@ devmapper_out: return xstrdup (os_dev); follow_geom_up (os_dev + sizeof ("/dev/") - 1, NULL, &out); + if (grub_strcmp (os_dev + sizeof ("/dev/") - 1, out) != 0) + *is_part = 1; out2 = xasprintf ("/dev/%s", out); free (out); @@ -1418,7 +1460,10 @@ devmapper_out: { p = strpbrk (p, "sp"); if (p) - *p = '\0'; + { + *is_part = 1; + *p = '\0'; + } break; } } @@ -1445,7 +1490,11 @@ devmapper_out: rawpart = getrawpartition(); # endif /* HAVE_GETRAWPARTITION */ if (rawpart >= 0) - *p = 'a' + rawpart; + { + if (*p != 'a' + rawpart) + *is_part = 1; + *p = 'a' + rawpart; + } } } } @@ -1457,67 +1506,15 @@ devmapper_out: #endif } -#if defined(__linux__) || defined(__CYGWIN__) -static int -device_is_wholedisk (const char *os_dev) -{ - int len = strlen (os_dev); - - if (os_dev[len - 1] < '0' || os_dev[len - 1] > '9') - return 1; - return 0; -} -#endif - -#if defined(__NetBSD__) -/* Try to determine whether a given device name corresponds to a whole disk. - This function should give in most cases a definite answer, but it may - actually give an approximate one in the following sense: if the return - value is 0 then the device name does not correspond to a whole disk. */ -static int -device_is_wholedisk (const char *os_dev) -{ - int len = strlen (os_dev); - int rawpart = -1; - -# ifdef HAVE_GETRAWPARTITION - rawpart = getrawpartition(); -# endif /* HAVE_GETRAWPARTITION */ - if (rawpart < 0) - return 1; - return (os_dev[len - 1] == ('a' + rawpart)); -} -#endif /* defined(__NetBSD__) */ - -#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) -static int -device_is_wholedisk (const char *os_dev) -{ - const char *p; - - if (strncmp (os_dev, "/dev/", sizeof ("/dev/") - 1) != 0) - return 0; - - for (p = os_dev + sizeof ("/dev/") - 1; *p; ++p) - if (grub_isdigit (*p)) - { - if (strchr (p, 's')) - return 0; - break; - } - - return 1; -} -#endif /* defined(__FreeBSD__) || defined(__FreeBSD_kernel__) */ - static int find_system_device (const char *os_dev, struct stat *st, int convert, int add) { unsigned int i; char *os_disk; + int is_part; if (convert) - os_disk = convert_system_partition_to_system_disk (os_dev, st); + os_disk = convert_system_partition_to_system_disk (os_dev, st, &is_part); else os_disk = xstrdup (os_dev); if (! os_disk) @@ -1560,6 +1557,7 @@ grub_util_biosdisk_get_grub_dev (const c { struct stat st; int drive; + int is_part; if (stat (os_dev, &st) < 0) { @@ -1578,7 +1576,7 @@ grub_util_biosdisk_get_grub_dev (const c } if (grub_strcmp (os_dev, - convert_system_partition_to_system_disk (os_dev, &st)) == 0) + convert_system_partition_to_system_disk (os_dev, &st, &is_part)) == 0) return make_device_name (drive, -1, -1); #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__APPLE__) || defined(__NetBSD__) @@ -1645,7 +1643,7 @@ grub_util_biosdisk_get_grub_dev (const c grub_util_info ("%s starts from %lu", os_dev, start); - if (start == 0 && device_is_wholedisk (os_dev)) + if (start == 0 && !is_part) return name; grub_util_info ("opening the device %s", name); -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org