Date: Sunday, January 27, 2013 @ 10:30:45 Author: tpowa Revision: 176066
upgpkg: efibootmgr 0.6.0-1 bump to latest version Modified: efibootmgr/trunk/PKGBUILD Deleted: efibootmgr/trunk/efibootmgr_after_0.5.4_git.patch efibootmgr/trunk/efibootmgr_default_to_grub2.patch -----------------------------------+ PKGBUILD | 14 --- efibootmgr_after_0.5.4_git.patch | 159 ------------------------------------ efibootmgr_default_to_grub2.patch | 45 ---------- 3 files changed, 4 insertions(+), 214 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-01-27 09:20:55 UTC (rev 176065) +++ PKGBUILD 2013-01-27 09:30:45 UTC (rev 176066) @@ -4,8 +4,8 @@ # Contributor: Keshav P R <skodabenz at rocketmail dot com> pkgname=efibootmgr -pkgver=0.5.4 -pkgrel=3 +pkgver=0.6.0 +pkgrel=1 pkgdesc="Tool to modify UEFI Firmware Boot Manager Variables." arch=('i686' 'x86_64') url="http://linux.dell.com/efibootmgr/" @@ -15,9 +15,7 @@ provides=() options=(strip purge docs zipman !emptydirs) -source=("http://linux.dell.com/efibootmgr/permalink/${pkgname}-${pkgver}.tar.gz" - 'efibootmgr_after_0.5.4_git.patch' - 'efibootmgr_default_to_grub2.patch') +source=("http://linux.dell.com/efibootmgr/permalink/${pkgname}-${pkgver}.tar.gz") build () { rm -rf ${srcdir}/efibootmgr-${pkgver}_build/ || true @@ -26,8 +24,6 @@ cd ${srcdir}/efibootmgr-${pkgver}_build/ - patch -Np1 -i ${srcdir}/efibootmgr_after_0.5.4_git.patch - patch -Np1 -i ${srcdir}/efibootmgr_default_to_grub2.patch echo CFLAGS= make @@ -47,6 +43,4 @@ install -D -m644 ${srcdir}/efibootmgr-${pkgver}_build/src/man/man8/efibootmgr.8 ${pkgdir}/usr/share/man/man8/efibootmgr.8 } -md5sums=('cfcf24752d6461b73f7ba964bbf73169' - '29730052de0d6911457a26011f8ddb6e' - 'b99b8f79842b96c241a0b0fcfb75c778') +md5sums=('9e9a31d79e579644de83a14139b66d10') Deleted: efibootmgr_after_0.5.4_git.patch =================================================================== --- efibootmgr_after_0.5.4_git.patch 2013-01-27 09:20:55 UTC (rev 176065) +++ efibootmgr_after_0.5.4_git.patch 2013-01-27 09:30:45 UTC (rev 176066) @@ -1,159 +0,0 @@ -diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c -index 5db0d9e..199af39 100644 ---- a/src/efibootmgr/efibootmgr.c -+++ b/src/efibootmgr/efibootmgr.c -@@ -328,6 +328,7 @@ add_to_boot_order(uint16_t num) - /* Now new_data has what we need */ - memcpy(&(boot_order.Data), new_data, new_data_size); - boot_order.DataSize = new_data_size; -+ free(new_data); - return create_or_edit_variable(&boot_order); - } - -diff --git a/src/include/disk.h b/src/include/disk.h -index eb93d10..8aa37d7 100644 ---- a/src/include/disk.h -+++ b/src/include/disk.h -@@ -65,6 +65,9 @@ enum _interface_type {interface_type_unknown, - ata, atapi, scsi, usb, - i1394, fibre, i2o, md}; - -+ -+unsigned int lcm(unsigned int x, unsigned int y); -+ - int disk_get_pci(int fd, - unsigned char *bus, - unsigned char *device, -diff --git a/src/lib/disk.c b/src/lib/disk.c -index 883864f..8ad590b 100644 ---- a/src/lib/disk.c -+++ b/src/lib/disk.c -@@ -55,7 +55,7 @@ disk_info_from_fd(int fd, - return 1; - } - major = buf.st_dev >> 8; -- minor = buf.st_dev && 0xFF; -+ minor = buf.st_dev & 0xFF; - - /* IDE disks can have up to 64 partitions, or 6 bits worth, - * and have one bit for the disk number. -@@ -420,6 +420,27 @@ get_sector_size(int filedes) - return sector_size; - } - -+/************************************************************ -+ * lcm -+ * Requires: -+ * - numbers of which to find the lowest common multiple -+ * Modifies: nothing -+ * Returns: -+ * lowest common multiple of x and y -+ ************************************************************/ -+unsigned int -+lcm(unsigned int x, unsigned int y) -+{ -+ unsigned int m = x, n = y, o; -+ -+ while ((o = m % n)) { -+ m = n; -+ n = o; -+ } -+ -+ return (x / n) * y; -+} -+ - /** - * disk_get_partition_info() - * @fd - open file descriptor to disk -@@ -442,26 +463,27 @@ disk_get_partition_info (int fd, - uint8_t *mbr_type, uint8_t *signature_type) - { - legacy_mbr *mbr; -- void *mbr_unaligned; -+ void *mbr_sector; -+ size_t mbr_size; - off_t offset; - int this_bytes_read = 0; - int gpt_invalid=0, mbr_invalid=0; - int rc=0; - int sector_size = get_sector_size(fd); - -- if (sizeof(*mbr) != sector_size) -- return 1; -- mbr_unaligned = malloc(sizeof(*mbr)+sector_size-1); -- mbr = (legacy_mbr *) -- (((unsigned long)mbr_unaligned + sector_size - 1) & -- ~(unsigned long)(sector_size-1)); -- memset(mbr, 0, sizeof(*mbr)); -+ -+ mbr_size = lcm(sizeof(*mbr), sector_size); -+ if ((rc = posix_memalign(&mbr_sector, sector_size, mbr_size)) != 0) -+ goto error; -+ memset(mbr_sector, '\0', mbr_size); -+ - offset = lseek(fd, 0, SEEK_SET); -- this_bytes_read = read(fd, mbr, sizeof(*mbr)); -+ this_bytes_read = read(fd, mbr_sector, mbr_size); - if (this_bytes_read < sizeof(*mbr)) { - rc=1; - goto error_free_mbr; - } -+ mbr = (legacy_mbr *)mbr_sector; - gpt_invalid = gpt_disk_get_partition_info(fd, num, - start, size, - signature, -@@ -479,7 +501,8 @@ disk_get_partition_info (int fd, - } - } - error_free_mbr: -- free(mbr_unaligned); -+ free(mbr_sector); -+ error: - return rc; - } - -diff --git a/src/lib/gpt.c b/src/lib/gpt.c -index d90ddaf..83e7a94 100644 ---- a/src/lib/gpt.c -+++ b/src/lib/gpt.c -@@ -215,26 +215,24 @@ read_lastoddsector(int fd, uint64_t lba, void *buffer, size_t count) - static ssize_t - read_lba(int fd, uint64_t lba, void *buffer, size_t bytes) - { -- int sector_size = get_sector_size(fd); -- off_t offset = lba * sector_size; -+ int sector_size = get_sector_size(fd); -+ off_t offset = lba * sector_size; - ssize_t bytesread; -- void *aligned; -- void *unaligned; -- -- if (bytes % sector_size) -- return EINVAL; -+ void *iobuf; -+ size_t iobuf_size; -+ int rc; - -- unaligned = malloc(bytes+sector_size-1); -- aligned = (void *) -- (((unsigned long)unaligned + sector_size - 1) & -- ~(unsigned long)(sector_size-1)); -- memset(aligned, 0, bytes); -+ iobuf_size = lcm(bytes, sector_size); -+ rc = posix_memalign(&iobuf, sector_size, iobuf_size); -+ if (rc) -+ return rc; -+ memset(iobuf, 0, bytes); - - -- lseek(fd, offset, SEEK_SET); -- bytesread = read(fd, aligned, bytes); -- memcpy(buffer, aligned, bytesread); -- free(unaligned); -+ lseek(fd, offset, SEEK_SET); -+ bytesread = read(fd, iobuf, iobuf_size); -+ memcpy(buffer, iobuf, bytes); -+ free(iobuf); - - /* Kludge. This is necessary to read/write the last - block of an odd-sized disk, until Linux 2.5.x kernel fixes. Deleted: efibootmgr_default_to_grub2.patch =================================================================== --- efibootmgr_default_to_grub2.patch 2013-01-27 09:20:55 UTC (rev 176065) +++ efibootmgr_default_to_grub2.patch 2013-01-27 09:30:45 UTC (rev 176066) @@ -1,45 +0,0 @@ -diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c -index 199af39..3826e03 100644 ---- a/src/efibootmgr/efibootmgr.c -+++ b/src/efibootmgr/efibootmgr.c -@@ -18,7 +18,7 @@ - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -- This must tie the EFI_DEVICE_PATH to /boot/efi/elilo.efi -+ This must tie the EFI_DEVICE_PATH to /boot/efi/EFI/arch_grub/grubx64.efi - The EFI_DEVICE_PATH will look something like: - ACPI device path, length 12 bytes - Hardware Device Path, PCI, length 6 bytes -@@ -26,7 +26,7 @@ - Media Device Path, Hard Drive, partition XX, length 30 bytes - Media Device Path, File Path, length ?? - End of Hardware Device Path, length 4 -- Arguments passed to elilo, as UCS-2 characters, length ?? -+ Arguments passed to grub2, as UCS-2 characters, length ?? - - */ - -@@ -780,8 +780,8 @@ usage() - printf("\t-g | --gpt force disk with invalid PMBR to be treated as GPT\n"); - printf("\t-H | --acpi_hid XXXX set the ACPI HID (used with -i)\n"); - printf("\t-i | --iface name create a netboot entry for the named interface\n"); -- printf("\t-l | --loader name (defaults to \\elilo.efi)\n"); -- printf("\t-L | --label label Boot manager display label (defaults to \"Linux\")\n"); -+ printf("\t-l | --loader name (defaults to \\EFI\\arch_grub\\grubx64.efi)\n"); -+ printf("\t-L | --label label Boot manager display label (defaults to \"Arch Linux (GRUB2)\")\n"); - printf("\t-n | --bootnext XXXX set BootNext to XXXX (hex)\n"); - printf("\t-N | --delete-bootnext delete BootNext\n"); - printf("\t-o | --bootorder XXXX,YYYY,ZZZZ,... explicitly set BootOrder (hex)\n"); -@@ -808,8 +808,8 @@ set_default_opts() - opts.active = -1; /* Don't set it */ - opts.timeout = -1; /* Don't set it */ - opts.edd10_devicenum = 0x80; -- opts.loader = "\\elilo.efi"; -- opts.label = "Linux"; -+ opts.loader = "\\EFI\\arch_grub\\grubx64.efi"; -+ opts.label = "Arch Linux (GRUB2)"; - opts.disk = "/dev/sda"; - opts.iface = NULL; - opts.part = 1; -