[arch-commits] Commit in fwupdate/repos (18 files)

Bruno Pagani archange at archlinux.org
Mon Sep 4 00:03:41 UTC 2017


    Date: Monday, September 4, 2017 @ 00:03:40
  Author: archange
Revision: 255625

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

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

---------------------------------------------------+
 /PKGBUILD                                         |   98 +++++++++++++++
 /fix-sprintf-formatting.patch                     |  124 ++++++++++++++++++++
 /fix-uninitialized-variable.patch                 |   74 +++++++++++
 /fwupdate.install                                 |   22 +++
 community-i686/PKGBUILD                           |   46 -------
 community-i686/create-fw-directory.patch          |   62 ++++++++++
 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/create-fw-directory.patch        |   62 ++++++++++
 community-x86_64/fix-sprintf-formatting.patch     |   62 ----------
 community-x86_64/fix-uninitialized-variable.patch |   37 -----
 community-x86_64/fwupdate.install                 |   11 -
 14 files changed, 442 insertions(+), 312 deletions(-)

Deleted: community-i686/PKGBUILD
===================================================================
--- community-i686/PKGBUILD	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-i686/PKGBUILD	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,46 +0,0 @@
-# Maintainer: Bruno Pagani (a.k.a. ArchangeGabriel) <archange at 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/PKGBUILD (from rev 255624, fwupdate/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD	                        (rev 0)
+++ community-i686/PKGBUILD	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,49 @@
+# Maintainer: Bruno Pagani (a.k.a. ArchangeGabriel) <archange at archlinux.org>
+# Contributor: Mirco Tischler <mt-ml at gmx dot de>
+
+pkgname=fwupdate
+pkgver=9
+pkgrel=2
+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'
+        'create-fw-directory.patch')
+sha256sums=('e926a7b33a58f5dbf029a5a687375e88b18a41f0742ba871aff7d1d82d075c87'
+            '56d27c36b7f1178c818c37153e3dbdd0a26036366b3dc935cd169b0c716cb610'
+            '639114a5d98c688f92c59d08aac1b182da705ad443c8b1367160c7a8c4fcd115'
+            'fabe3dd8755cd73955893a4dc22cc9ff8965b5a873e2af7f781421fced3dc0ec')
+install=fwupdate.install
+
+_efidir=arch
+
+prepare() {
+    cd ${pkgname}-${pkgver}
+    patch -p1 -i ../fix-uninitialized-variable.patch
+    patch -p1 -i ../fix-sprintf-formatting.patch
+    patch -p1 -i ../create-fw-directory.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/create-fw-directory.patch (from rev 255624, fwupdate/trunk/create-fw-directory.patch)
===================================================================
--- community-i686/create-fw-directory.patch	                        (rev 0)
+++ community-i686/create-fw-directory.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,62 @@
+From f713884b1766396aab4f0fb75a7cc7b8cb8319bb Mon Sep 17 00:00:00 2001
+From: Mario Limonciello <mario.limonciello at dell.com>
+Date: Tue, 11 Jul 2017 10:35:37 -0500
+Subject: [PATCH] create the 'fw' directory on the ESP if it doesn't exist
+
+---
+ linux/libfwup.c | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/linux/libfwup.c b/linux/libfwup.c
+index 4aa2bf3..d37f644 100644
+--- a/linux/libfwup.c
++++ b/linux/libfwup.c
+@@ -1177,6 +1177,8 @@ get_existing_media_path(update_info *info)
+ static int
+ get_fd_and_media_path(update_info *info, char **path)
+ {
++	struct stat st;
++	char *directory = NULL;
+ 	char *fullpath = NULL;
+ 	int fd = -1;
+ 	int rc;
+@@ -1193,13 +1195,28 @@ get_fd_and_media_path(update_info *info, char **path)
+ 		}
+ 	} else {
+ 		/* fall back to creating a new file from scratch */
+-		rc = asprintf(&fullpath,
+-			      "/boot/efi/EFI/%s/fw/fwupdate-XXXXXX.cap",
++		rc = asprintf(&directory,
++			      "/boot/efi/EFI/%s/fw",
+ 			      FWUP_EFI_DIR_NAME);
+ 		if (rc < 0) {
+-			efi_error("asprintf failed");
++			efi_error("asprintf directory failed");
+ 			return fd;
+ 		}
++		if (stat(directory, &st) != 0 ||
++		    (st.st_mode & S_IFDIR) == 0) {
++			rc = mkdir(directory, 0775);
++			if (rc < 0) {
++				efi_error("failed to make %s", directory);
++				goto out;
++			}
++		}
++		rc = asprintf(&fullpath,
++			      "/boot/efi/EFI/%s/fw/fwupdate-XXXXXX.cap",
++			      directory);
++		if (rc < 0) {
++			efi_error("asprintf fullpath failed");
++			goto out;
++		}
+ 		fd = mkostemps(fullpath, 4, O_CREAT|O_TRUNC|O_CLOEXEC);
+ 		if (fd < 0) {
+ 			efi_error("mkostemps(%s) failed", fullpath);
+@@ -1213,6 +1230,7 @@ get_fd_and_media_path(update_info *info, char **path)
+ 		fullpath = NULL;
+ 	}
+ out:
++	free(directory);
+ 	free(fullpath);
+ 	return fd;
+ }

Deleted: community-i686/fix-sprintf-formatting.patch
===================================================================
--- community-i686/fix-sprintf-formatting.patch	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-i686/fix-sprintf-formatting.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,62 +0,0 @@
-From cd8f7d79f84155d1dfbff3bb169558a8b06fb719 Mon Sep 17 00:00:00 2001
-From: Peter Jones <pjones at 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 <pjones at 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-sprintf-formatting.patch (from rev 255624, fwupdate/trunk/fix-sprintf-formatting.patch)
===================================================================
--- community-i686/fix-sprintf-formatting.patch	                        (rev 0)
+++ community-i686/fix-sprintf-formatting.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,62 @@
+From cd8f7d79f84155d1dfbff3bb169558a8b06fb719 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at 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 <pjones at 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 |

Deleted: community-i686/fix-uninitialized-variable.patch
===================================================================
--- community-i686/fix-uninitialized-variable.patch	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-i686/fix-uninitialized-variable.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,37 +0,0 @@
-From a9bfbb4a082c2a7e8917865877976e8008712ca6 Mon Sep 17 00:00:00 2001
-From: Mirco Tischler <mt-ml at 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/fix-uninitialized-variable.patch (from rev 255624, fwupdate/trunk/fix-uninitialized-variable.patch)
===================================================================
--- community-i686/fix-uninitialized-variable.patch	                        (rev 0)
+++ community-i686/fix-uninitialized-variable.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,37 @@
+From a9bfbb4a082c2a7e8917865877976e8008712ca6 Mon Sep 17 00:00:00 2001
+From: Mirco Tischler <mt-ml at 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
+

Deleted: community-i686/fwupdate.install
===================================================================
--- community-i686/fwupdate.install	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-i686/fwupdate.install	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,11 +0,0 @@
-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-i686/fwupdate.install (from rev 255624, fwupdate/trunk/fwupdate.install)
===================================================================
--- community-i686/fwupdate.install	                        (rev 0)
+++ community-i686/fwupdate.install	2017-09-04 00:03:40 UTC (rev 255625)
@@ -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
+}

Deleted: community-x86_64/PKGBUILD
===================================================================
--- community-x86_64/PKGBUILD	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-x86_64/PKGBUILD	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,46 +0,0 @@
-# Maintainer: Bruno Pagani (a.k.a. ArchangeGabriel) <archange at 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/PKGBUILD (from rev 255624, fwupdate/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD	                        (rev 0)
+++ community-x86_64/PKGBUILD	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,49 @@
+# Maintainer: Bruno Pagani (a.k.a. ArchangeGabriel) <archange at archlinux.org>
+# Contributor: Mirco Tischler <mt-ml at gmx dot de>
+
+pkgname=fwupdate
+pkgver=9
+pkgrel=2
+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'
+        'create-fw-directory.patch')
+sha256sums=('e926a7b33a58f5dbf029a5a687375e88b18a41f0742ba871aff7d1d82d075c87'
+            '56d27c36b7f1178c818c37153e3dbdd0a26036366b3dc935cd169b0c716cb610'
+            '639114a5d98c688f92c59d08aac1b182da705ad443c8b1367160c7a8c4fcd115'
+            'fabe3dd8755cd73955893a4dc22cc9ff8965b5a873e2af7f781421fced3dc0ec')
+install=fwupdate.install
+
+_efidir=arch
+
+prepare() {
+    cd ${pkgname}-${pkgver}
+    patch -p1 -i ../fix-uninitialized-variable.patch
+    patch -p1 -i ../fix-sprintf-formatting.patch
+    patch -p1 -i ../create-fw-directory.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/create-fw-directory.patch (from rev 255624, fwupdate/trunk/create-fw-directory.patch)
===================================================================
--- community-x86_64/create-fw-directory.patch	                        (rev 0)
+++ community-x86_64/create-fw-directory.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,62 @@
+From f713884b1766396aab4f0fb75a7cc7b8cb8319bb Mon Sep 17 00:00:00 2001
+From: Mario Limonciello <mario.limonciello at dell.com>
+Date: Tue, 11 Jul 2017 10:35:37 -0500
+Subject: [PATCH] create the 'fw' directory on the ESP if it doesn't exist
+
+---
+ linux/libfwup.c | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/linux/libfwup.c b/linux/libfwup.c
+index 4aa2bf3..d37f644 100644
+--- a/linux/libfwup.c
++++ b/linux/libfwup.c
+@@ -1177,6 +1177,8 @@ get_existing_media_path(update_info *info)
+ static int
+ get_fd_and_media_path(update_info *info, char **path)
+ {
++	struct stat st;
++	char *directory = NULL;
+ 	char *fullpath = NULL;
+ 	int fd = -1;
+ 	int rc;
+@@ -1193,13 +1195,28 @@ get_fd_and_media_path(update_info *info, char **path)
+ 		}
+ 	} else {
+ 		/* fall back to creating a new file from scratch */
+-		rc = asprintf(&fullpath,
+-			      "/boot/efi/EFI/%s/fw/fwupdate-XXXXXX.cap",
++		rc = asprintf(&directory,
++			      "/boot/efi/EFI/%s/fw",
+ 			      FWUP_EFI_DIR_NAME);
+ 		if (rc < 0) {
+-			efi_error("asprintf failed");
++			efi_error("asprintf directory failed");
+ 			return fd;
+ 		}
++		if (stat(directory, &st) != 0 ||
++		    (st.st_mode & S_IFDIR) == 0) {
++			rc = mkdir(directory, 0775);
++			if (rc < 0) {
++				efi_error("failed to make %s", directory);
++				goto out;
++			}
++		}
++		rc = asprintf(&fullpath,
++			      "/boot/efi/EFI/%s/fw/fwupdate-XXXXXX.cap",
++			      directory);
++		if (rc < 0) {
++			efi_error("asprintf fullpath failed");
++			goto out;
++		}
+ 		fd = mkostemps(fullpath, 4, O_CREAT|O_TRUNC|O_CLOEXEC);
+ 		if (fd < 0) {
+ 			efi_error("mkostemps(%s) failed", fullpath);
+@@ -1213,6 +1230,7 @@ get_fd_and_media_path(update_info *info, char **path)
+ 		fullpath = NULL;
+ 	}
+ out:
++	free(directory);
+ 	free(fullpath);
+ 	return fd;
+ }

Deleted: community-x86_64/fix-sprintf-formatting.patch
===================================================================
--- community-x86_64/fix-sprintf-formatting.patch	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-x86_64/fix-sprintf-formatting.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,62 +0,0 @@
-From cd8f7d79f84155d1dfbff3bb169558a8b06fb719 Mon Sep 17 00:00:00 2001
-From: Peter Jones <pjones at 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 <pjones at 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-sprintf-formatting.patch (from rev 255624, fwupdate/trunk/fix-sprintf-formatting.patch)
===================================================================
--- community-x86_64/fix-sprintf-formatting.patch	                        (rev 0)
+++ community-x86_64/fix-sprintf-formatting.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,62 @@
+From cd8f7d79f84155d1dfbff3bb169558a8b06fb719 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at 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 <pjones at 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 |

Deleted: community-x86_64/fix-uninitialized-variable.patch
===================================================================
--- community-x86_64/fix-uninitialized-variable.patch	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-x86_64/fix-uninitialized-variable.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,37 +0,0 @@
-From a9bfbb4a082c2a7e8917865877976e8008712ca6 Mon Sep 17 00:00:00 2001
-From: Mirco Tischler <mt-ml at 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/fix-uninitialized-variable.patch (from rev 255624, fwupdate/trunk/fix-uninitialized-variable.patch)
===================================================================
--- community-x86_64/fix-uninitialized-variable.patch	                        (rev 0)
+++ community-x86_64/fix-uninitialized-variable.patch	2017-09-04 00:03:40 UTC (rev 255625)
@@ -0,0 +1,37 @@
+From a9bfbb4a082c2a7e8917865877976e8008712ca6 Mon Sep 17 00:00:00 2001
+From: Mirco Tischler <mt-ml at 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
+

Deleted: community-x86_64/fwupdate.install
===================================================================
--- community-x86_64/fwupdate.install	2017-09-04 00:02:35 UTC (rev 255624)
+++ community-x86_64/fwupdate.install	2017-09-04 00:03:40 UTC (rev 255625)
@@ -1,11 +0,0 @@
-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/fwupdate.install (from rev 255624, fwupdate/trunk/fwupdate.install)
===================================================================
--- community-x86_64/fwupdate.install	                        (rev 0)
+++ community-x86_64/fwupdate.install	2017-09-04 00:03:40 UTC (rev 255625)
@@ -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
+}



More information about the arch-commits mailing list