Date: Tuesday, June 13, 2017 @ 21:03:30
  Author: archange
Revision: 236697

archrelease: copy trunk to community-i686, community-x86_64

Added:
  fwupdate/repos/community-i686/
  fwupdate/repos/community-i686/PKGBUILD
    (from rev 236696, fwupdate/trunk/PKGBUILD)
  fwupdate/repos/community-i686/fix-sprintf-formatting.patch
    (from rev 236696, fwupdate/trunk/fix-sprintf-formatting.patch)
  fwupdate/repos/community-i686/fix-uninitialized-variable.patch
    (from rev 236696, fwupdate/trunk/fix-uninitialized-variable.patch)
  fwupdate/repos/community-i686/fwupdate.install
    (from rev 236696, fwupdate/trunk/fwupdate.install)
  fwupdate/repos/community-x86_64/
  fwupdate/repos/community-x86_64/PKGBUILD
    (from rev 236696, fwupdate/trunk/PKGBUILD)
  fwupdate/repos/community-x86_64/fix-sprintf-formatting.patch
    (from rev 236696, fwupdate/trunk/fix-sprintf-formatting.patch)
  fwupdate/repos/community-x86_64/fix-uninitialized-variable.patch
    (from rev 236696, fwupdate/trunk/fix-uninitialized-variable.patch)
  fwupdate/repos/community-x86_64/fwupdate.install
    (from rev 236696, fwupdate/trunk/fwupdate.install)

---------------------------------------------------+
 community-i686/PKGBUILD                           |   46 ++++++++++++++
 community-i686/fix-sprintf-formatting.patch       |   62 ++++++++++++++++++++
 community-i686/fix-uninitialized-variable.patch   |   37 +++++++++++
 community-i686/fwupdate.install                   |   11 +++
 community-x86_64/PKGBUILD                         |   46 ++++++++++++++
 community-x86_64/fix-sprintf-formatting.patch     |   62 ++++++++++++++++++++
 community-x86_64/fix-uninitialized-variable.patch |   37 +++++++++++
 community-x86_64/fwupdate.install                 |   11 +++
 8 files changed, 312 insertions(+)

Copied: fwupdate/repos/community-i686/PKGBUILD (from rev 236696, 
fwupdate/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD                             (rev 0)
+++ community-i686/PKGBUILD     2017-06-13 21:03:30 UTC (rev 236697)
@@ -0,0 +1,46 @@
+# Maintainer: Bruno Pagani (a.k.a. ArchangeGabriel) <archa...@archlinux.org>
+# Contributor: Mirco Tischler <mt-ml at gmx dot de>
+
+pkgname=fwupdate
+pkgver=9
+pkgrel=1
+pkgdesc="Tools for using the ESRT and UpdateCapsule() to apply firmware 
updates"
+arch=('i686' 'x86_64')
+url="https://github.com/rhinstaller/fwupdate";
+license=('GPL2')
+depends=('efivar' 'libsmbios' 'bash')
+makedepends=('pesign' 'gnu-efi-libs')
+source=("${url}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
+           'fix-uninitialized-variable.patch'
+           'fix-sprintf-formatting.patch')
+sha256sums=('e926a7b33a58f5dbf029a5a687375e88b18a41f0742ba871aff7d1d82d075c87'
+            '56d27c36b7f1178c818c37153e3dbdd0a26036366b3dc935cd169b0c716cb610'
+            '639114a5d98c688f92c59d08aac1b182da705ad443c8b1367160c7a8c4fcd115')
+install=fwupdate.install
+
+_efidir=arch
+
+prepare() {
+    cd ${pkgname}-${pkgver}
+    patch -p1 -i ../fix-uninitialized-variable.patch
+    patch -p1 -i ../fix-sprintf-formatting.patch
+}
+
+build() {
+    cd ${pkgname}-${pkgver}
+    make EFIDIR="${_efidir}" GNUEFIDIR=/usr/lib
+}
+
+package() {
+    cd ${pkgname}-${pkgver}
+
+    make LIBDIR=/usr/lib EFIDIR="${_efidir}" DESTDIR="${pkgdir}" 
libexecdir=/usr/lib/ install
+
+    # Do not install anything under /boot. Copy files to /usr/lib/fwupdate for 
manual installation.
+    install -d ${pkgdir}/usr/lib/fwupdate
+    mv ${pkgdir}/boot/efi/EFI ${pkgdir}/usr/lib/fwupdate/EFI
+    rm -rf ${pkgdir}/boot
+    rm -rf ${pkgdir}/usr/src
+    rm -rf ${pkgdir}/usr/lib/debug
+    rmdir  ${pkgdir}/usr/share/fwupdate
+}

Copied: fwupdate/repos/community-i686/fix-sprintf-formatting.patch (from rev 
236696, fwupdate/trunk/fix-sprintf-formatting.patch)
===================================================================
--- community-i686/fix-sprintf-formatting.patch                         (rev 0)
+++ community-i686/fix-sprintf-formatting.patch 2017-06-13 21:03:30 UTC (rev 
236697)
@@ -0,0 +1,62 @@
+From cd8f7d79f84155d1dfbff3bb169558a8b06fb719 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjo...@redhat.com>
+Date: Fri, 19 May 2017 16:39:56 -0400
+Subject: [PATCH] Fix sprintf formatting for Boot####.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If you give it enough compiler flags, gcc believes the following:
+-----------------------
+    libfwup.c: In function ‘set_up_boot_next’:
+    libfwup.c:1049:27: error: ‘__builtin___sprintf_chk’ may write a 
terminating nul past the end of the destination [-Werror=format-overflow=]
+       sprintf(boot_next_name, "Boot%04X", boot_next);
+                               ^~~~~~~~~~
+    In file included from /usr/include/stdio.h:939:0,
+                     from libfwup.c:17:
+    /usr/include/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output 
between 9 and 10 bytes into a destination of size 9
+       return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
+              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+           __bos (__s), __fmt, __va_arg_pack ());
+           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    cc1: all warnings being treated as errors
+    make[1]: *** [Makefile:70: libfwup.o] Error 1
+    make[1]: Leaving directory 
'/home/pjones/devel/rhel/fwupdate/fwupdate-9/linux'
+    make: *** [Makefile:10: all] Error 2
+-----------------------
+
+The code in question is:
+-----------------------
+               if (boot_next >= 0x10000) {
+                       efi_error("no free boot variables!");
+                       goto out;
+               }
+
+               sprintf(boot_next_name, "Boot%04X", boot_next);
+-----------------------
+
+It really should know it can't be a higher value than 0xffff.  Even
+so, while it's not true that this can happen, since we never get to that
+code if boot_next is > 0xffff, the compiler can't figure that out, so
+it's complaining about an int being crammed into 4 bytes of hex.
+
+So this patch just tells it the maximum value is 0xffff.
+
+Signed-off-by: Peter Jones <pjo...@redhat.com>
+---
+ linux/libfwup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/linux/libfwup.c b/linux/libfwup.c
+index 929c106..1b9b72a 100644
+--- a/linux/libfwup.c
++++ b/linux/libfwup.c
+@@ -1046,7 +1046,7 @@ set_up_boot_next(void)
+                       goto out;
+               }
+ 
+-              sprintf(boot_next_name, "Boot%04X", boot_next);
++              sprintf(boot_next_name, "Boot%04hX", boot_next & 0xffff);
+               rc = efi_set_variable(efi_guid_global, boot_next_name, opt,
+                                     opt_size,
+                                     EFI_VARIABLE_NON_VOLATILE |

Copied: fwupdate/repos/community-i686/fix-uninitialized-variable.patch (from 
rev 236696, fwupdate/trunk/fix-uninitialized-variable.patch)
===================================================================
--- community-i686/fix-uninitialized-variable.patch                             
(rev 0)
+++ community-i686/fix-uninitialized-variable.patch     2017-06-13 21:03:30 UTC 
(rev 236697)
@@ -0,0 +1,37 @@
+From a9bfbb4a082c2a7e8917865877976e8008712ca6 Mon Sep 17 00:00:00 2001
+From: Mirco Tischler <mt...@gmx.de>
+Date: Mon, 6 Mar 2017 23:45:46 +0100
+Subject: [PATCH] Fix uninitialized variable.
+
+If boot_order_size is 0, i was never set. On gcc-6.3.1, this broke the
+build if compiled with -O2 (-Werror=maybe_uninitialized). This is the
+error:
+
+libfwup.c: In function 'set_up_boot_next':
+libfwup.c:818:16: error: 'i' may be used uninitialized in this function 
[-Werror=maybe-uninitialized]
+  new_boot_order[i] = boot_entry;
+                ^
+libfwup.c:780:15: note: 'i' was declared here
+  unsigned int i;
+               ^
+cc1: all warnings being treated as errors
+---
+ linux/libfwup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/linux/libfwup.c b/linux/libfwup.c
+index fe4ece4..2cc03c0 100644
+--- a/linux/libfwup.c
++++ b/linux/libfwup.c
+@@ -777,7 +777,7 @@ add_to_boot_order(uint16_t boot_entry)
+       size_t boot_order_size = 0;
+       uint32_t attr;
+       int rc;
+-      unsigned int i;
++      unsigned int i = 0;
+ 
+       rc = efi_get_variable_size(efi_guid_global, "BootOrder",
+                                  &boot_order_size);
+-- 
+2.12.0
+

Copied: fwupdate/repos/community-i686/fwupdate.install (from rev 236696, 
fwupdate/trunk/fwupdate.install)
===================================================================
--- community-i686/fwupdate.install                             (rev 0)
+++ community-i686/fwupdate.install     2017-06-13 21:03:30 UTC (rev 236697)
@@ -0,0 +1,11 @@
+post_install() {
+       echo
+       echo "To use the efi fimware update executable, copy the"
+       echo "content of /usr/lib/fwupdate/EFI/ to your EFI partition,"
+       echo "usually /boot/EFI."
+       echo
+}
+
+post_upgrade() {
+       post_install
+}

Copied: fwupdate/repos/community-x86_64/PKGBUILD (from rev 236696, 
fwupdate/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD                           (rev 0)
+++ community-x86_64/PKGBUILD   2017-06-13 21:03:30 UTC (rev 236697)
@@ -0,0 +1,46 @@
+# Maintainer: Bruno Pagani (a.k.a. ArchangeGabriel) <archa...@archlinux.org>
+# Contributor: Mirco Tischler <mt-ml at gmx dot de>
+
+pkgname=fwupdate
+pkgver=9
+pkgrel=1
+pkgdesc="Tools for using the ESRT and UpdateCapsule() to apply firmware 
updates"
+arch=('i686' 'x86_64')
+url="https://github.com/rhinstaller/fwupdate";
+license=('GPL2')
+depends=('efivar' 'libsmbios' 'bash')
+makedepends=('pesign' 'gnu-efi-libs')
+source=("${url}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
+           'fix-uninitialized-variable.patch'
+           'fix-sprintf-formatting.patch')
+sha256sums=('e926a7b33a58f5dbf029a5a687375e88b18a41f0742ba871aff7d1d82d075c87'
+            '56d27c36b7f1178c818c37153e3dbdd0a26036366b3dc935cd169b0c716cb610'
+            '639114a5d98c688f92c59d08aac1b182da705ad443c8b1367160c7a8c4fcd115')
+install=fwupdate.install
+
+_efidir=arch
+
+prepare() {
+    cd ${pkgname}-${pkgver}
+    patch -p1 -i ../fix-uninitialized-variable.patch
+    patch -p1 -i ../fix-sprintf-formatting.patch
+}
+
+build() {
+    cd ${pkgname}-${pkgver}
+    make EFIDIR="${_efidir}" GNUEFIDIR=/usr/lib
+}
+
+package() {
+    cd ${pkgname}-${pkgver}
+
+    make LIBDIR=/usr/lib EFIDIR="${_efidir}" DESTDIR="${pkgdir}" 
libexecdir=/usr/lib/ install
+
+    # Do not install anything under /boot. Copy files to /usr/lib/fwupdate for 
manual installation.
+    install -d ${pkgdir}/usr/lib/fwupdate
+    mv ${pkgdir}/boot/efi/EFI ${pkgdir}/usr/lib/fwupdate/EFI
+    rm -rf ${pkgdir}/boot
+    rm -rf ${pkgdir}/usr/src
+    rm -rf ${pkgdir}/usr/lib/debug
+    rmdir  ${pkgdir}/usr/share/fwupdate
+}

Copied: fwupdate/repos/community-x86_64/fix-sprintf-formatting.patch (from rev 
236696, fwupdate/trunk/fix-sprintf-formatting.patch)
===================================================================
--- community-x86_64/fix-sprintf-formatting.patch                               
(rev 0)
+++ community-x86_64/fix-sprintf-formatting.patch       2017-06-13 21:03:30 UTC 
(rev 236697)
@@ -0,0 +1,62 @@
+From cd8f7d79f84155d1dfbff3bb169558a8b06fb719 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjo...@redhat.com>
+Date: Fri, 19 May 2017 16:39:56 -0400
+Subject: [PATCH] Fix sprintf formatting for Boot####.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If you give it enough compiler flags, gcc believes the following:
+-----------------------
+    libfwup.c: In function ‘set_up_boot_next’:
+    libfwup.c:1049:27: error: ‘__builtin___sprintf_chk’ may write a 
terminating nul past the end of the destination [-Werror=format-overflow=]
+       sprintf(boot_next_name, "Boot%04X", boot_next);
+                               ^~~~~~~~~~
+    In file included from /usr/include/stdio.h:939:0,
+                     from libfwup.c:17:
+    /usr/include/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output 
between 9 and 10 bytes into a destination of size 9
+       return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
+              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+           __bos (__s), __fmt, __va_arg_pack ());
+           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    cc1: all warnings being treated as errors
+    make[1]: *** [Makefile:70: libfwup.o] Error 1
+    make[1]: Leaving directory 
'/home/pjones/devel/rhel/fwupdate/fwupdate-9/linux'
+    make: *** [Makefile:10: all] Error 2
+-----------------------
+
+The code in question is:
+-----------------------
+               if (boot_next >= 0x10000) {
+                       efi_error("no free boot variables!");
+                       goto out;
+               }
+
+               sprintf(boot_next_name, "Boot%04X", boot_next);
+-----------------------
+
+It really should know it can't be a higher value than 0xffff.  Even
+so, while it's not true that this can happen, since we never get to that
+code if boot_next is > 0xffff, the compiler can't figure that out, so
+it's complaining about an int being crammed into 4 bytes of hex.
+
+So this patch just tells it the maximum value is 0xffff.
+
+Signed-off-by: Peter Jones <pjo...@redhat.com>
+---
+ linux/libfwup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/linux/libfwup.c b/linux/libfwup.c
+index 929c106..1b9b72a 100644
+--- a/linux/libfwup.c
++++ b/linux/libfwup.c
+@@ -1046,7 +1046,7 @@ set_up_boot_next(void)
+                       goto out;
+               }
+ 
+-              sprintf(boot_next_name, "Boot%04X", boot_next);
++              sprintf(boot_next_name, "Boot%04hX", boot_next & 0xffff);
+               rc = efi_set_variable(efi_guid_global, boot_next_name, opt,
+                                     opt_size,
+                                     EFI_VARIABLE_NON_VOLATILE |

Copied: fwupdate/repos/community-x86_64/fix-uninitialized-variable.patch (from 
rev 236696, fwupdate/trunk/fix-uninitialized-variable.patch)
===================================================================
--- community-x86_64/fix-uninitialized-variable.patch                           
(rev 0)
+++ community-x86_64/fix-uninitialized-variable.patch   2017-06-13 21:03:30 UTC 
(rev 236697)
@@ -0,0 +1,37 @@
+From a9bfbb4a082c2a7e8917865877976e8008712ca6 Mon Sep 17 00:00:00 2001
+From: Mirco Tischler <mt...@gmx.de>
+Date: Mon, 6 Mar 2017 23:45:46 +0100
+Subject: [PATCH] Fix uninitialized variable.
+
+If boot_order_size is 0, i was never set. On gcc-6.3.1, this broke the
+build if compiled with -O2 (-Werror=maybe_uninitialized). This is the
+error:
+
+libfwup.c: In function 'set_up_boot_next':
+libfwup.c:818:16: error: 'i' may be used uninitialized in this function 
[-Werror=maybe-uninitialized]
+  new_boot_order[i] = boot_entry;
+                ^
+libfwup.c:780:15: note: 'i' was declared here
+  unsigned int i;
+               ^
+cc1: all warnings being treated as errors
+---
+ linux/libfwup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/linux/libfwup.c b/linux/libfwup.c
+index fe4ece4..2cc03c0 100644
+--- a/linux/libfwup.c
++++ b/linux/libfwup.c
+@@ -777,7 +777,7 @@ add_to_boot_order(uint16_t boot_entry)
+       size_t boot_order_size = 0;
+       uint32_t attr;
+       int rc;
+-      unsigned int i;
++      unsigned int i = 0;
+ 
+       rc = efi_get_variable_size(efi_guid_global, "BootOrder",
+                                  &boot_order_size);
+-- 
+2.12.0
+

Copied: fwupdate/repos/community-x86_64/fwupdate.install (from rev 236696, 
fwupdate/trunk/fwupdate.install)
===================================================================
--- community-x86_64/fwupdate.install                           (rev 0)
+++ community-x86_64/fwupdate.install   2017-06-13 21:03:30 UTC (rev 236697)
@@ -0,0 +1,11 @@
+post_install() {
+       echo
+       echo "To use the efi fimware update executable, copy the"
+       echo "content of /usr/lib/fwupdate/EFI/ to your EFI partition,"
+       echo "usually /boot/EFI."
+       echo
+}
+
+post_upgrade() {
+       post_install
+}

Reply via email to