diff --git a/common/shlibs b/common/shlibs index 99a87c84dfd..a5a405a45bf 100644 --- a/common/shlibs +++ b/common/shlibs @@ -1677,7 +1677,8 @@ libgtest.so gtest-1.7.0_1 libgtest_main.so gtest-1.7.0_1 libxmlsec1-gcrypt.so.1 xmlsec1-1.2.20_2 libxmlsec1-gnutls.so.1 xmlsec1-1.2.20_2 -libefivar.so.0 libefivar-0.10_1 +libefivar.so.0 libefivar-0.21_1 +libefiboot.so.0 libefivar-0.21_1 libportaudio.so.2 portaudio-19.20140130_1 libportaudiocpp.so.0 portaudio-cpp-19.20140130_1 libdar.so.5000 libdar-2.4.14_1 diff --git a/srcpkgs/efivar/patches/efivar-0.21-initializer.patch b/srcpkgs/efivar/patches/efivar-0.21-initializer.patch new file mode 100644 index 00000000000..93d6a084886 --- /dev/null +++ b/srcpkgs/efivar/patches/efivar-0.21-initializer.patch @@ -0,0 +1,39 @@ +From a3606c02fd271d32e364fcc540e34ba1899309f6 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 14 Jul 2015 09:33:54 -0400 +Subject: [PATCH] Sometimes the compiler doesn't like { 0, } as an + initializer... + +Because it really wants to be { {0, },} or something, and sometimes the +compiler, knowing full well what we're trying to do, likes to complain +about the rigor applied to our technique in doing it. + +memset() the struct ifreq to 0 instead so I don't need to figure out its +internal structure just to zero it out. + +Resolves #28 + +Signed-off-by: Peter Jones +--- + src/linux.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/linux.c src/linux.c +index 57f71f3..817b8e6 100644 +--- src/linux.c ++++ src/linux.c +@@ -847,12 +847,13 @@ ssize_t + __attribute__((__visibility__ ("hidden"))) + make_mac_path(uint8_t *buf, ssize_t size, const char * const ifname) + { +- struct ifreq ifr = { 0, }; ++ struct ifreq ifr; + struct ethtool_drvinfo drvinfo = { 0, }; + int fd, rc; + ssize_t ret = -1, sz, off=0; + char busname[PATH_MAX+1] = ""; + ++ memset(&ifr, 0, sizeof (ifr)); + strncpy(ifr.ifr_name, ifname, IF_NAMESIZE); + drvinfo.cmd = ETHTOOL_GDRVINFO; + ifr.ifr_data = (caddr_t)&drvinfo; diff --git a/srcpkgs/efivar/patches/portability.patch b/srcpkgs/efivar/patches/portability.patch index e8b31dd96ea..f9fc9771e36 100644 --- a/srcpkgs/efivar/patches/portability.patch +++ b/srcpkgs/efivar/patches/portability.patch @@ -1,28 +1,62 @@ -Portability fixes: +From 262acfc7c4fbb4bbc76f4235220336fd41993ca8 Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Tue, 14 Jul 2015 05:53:04 -0600 +Subject: [PATCH 1/2] Remove -fshort-wchar from CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit -- Initialize outbuf with the expected size! fixes a segfault with musl. -- Really use __builtin_va_arg_pack_len(). +-fshort-wchar makes wchar_t 16bit. We are not using wchar_t anywhere, +so we don't need it. Removing it fixes an compilation error with musl +libc: ---- src/makeguids.c 2014-12-28 10:30:36.731270900 +0100 -+++ src/makeguids.c 2014-12-28 10:26:24.743259656 +0100 -@@ -100,7 +100,7 @@ main(int argc, char *argv[]) - err(1, "makeguids: could not read \"%s\"", argv[1]); - - /* strictly speaking, this *has* to be too large. */ -- struct guidname *outbuf = calloc(inlen, sizeof (char)); -+ struct guidname *outbuf = calloc(inlen, sizeof (struct guidname)); - if (!outbuf) - err(1, "makeguids"); +In file included from dp-acpi.c:21:0: +/usr/ligcc/armv7a-hardfloat-linux-musleabi/4.7.4/include/stddef.h:325:24: error: conflicting types for ‘wchar_t’ +In file included from /usr/include/inttypes.h:12:0, + from dp-acpi.c:20: +/usr/include/bits/alltypes.h:18:18: note: previous declaration of ‘wchar_t’ was here +make[1]: *** [dp-acpi.o] Error 1 +make: *** [src] Error 2 +--- + Make.defaults | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) ---- src/efivar.h 2014-12-28 10:30:36.731270900 +0100 -+++ src/efivar.h 2014-12-28 10:26:57.359261112 +0100 -@@ -85,7 +85,7 @@ efi_set_variable(efi_guid_t guid, const - return -1; - } - -- if (__va_arg_pack_len() == 0) -+ if (__builtin_va_arg_pack_len() == 0) - return _efi_set_variable(guid, name, data, data_size, - attributes, 0644); - - +diff --git Make.defaults Make.defaults +index cc2baa9..7f5ae5e 100644 +--- Make.defaults ++++ Make.defaults +@@ -13,7 +13,7 @@ clang_cflags = + gcc_cflags = -Wmaybe-uninitialized + cflags := $(CFLAGS) \ + -Werror -Wall -Wsign-compare -Wstrict-aliasing \ +- -std=gnu11 -fshort-wchar -fPIC \ ++ -std=gnu11 -fPIC \ + -fvisibility=hidden \ + -D_GNU_SOURCE -I${TOPDIR}/src/include/efivar/ \ + $(if $(filter $(CC),clang),$(clang_cflags),) \ + +From 841ae2fc8c911dbac595cbd228be6bfed7881cad Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Tue, 14 Jul 2015 05:56:05 -0600 +Subject: [PATCH 2/2] Use the more portable major() instead of gnu_dev_major() + +Do the same for minor() and gnu_dev_minor() +--- + src/linux.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/linux.c src/linux.c +index c4d099e..0cbd94a 100644 +--- src/linux.c ++++ src/linux.c +@@ -129,8 +129,8 @@ get_partition_number(const char *devpath) + return -1; + } + +- maj = gnu_dev_major(statbuf.st_rdev); +- min = gnu_dev_minor(statbuf.st_rdev); ++ maj = major(statbuf.st_rdev); ++ min = minor(statbuf.st_rdev); + + rc = sysfs_readlink(&linkbuf, "/sys/dev/block/%u:%u", maj, min); + if (rc < 0) diff --git a/srcpkgs/efivar/template b/srcpkgs/efivar/template index 5759ed157ea..f9402aee7d2 100644 --- a/srcpkgs/efivar/template +++ b/srcpkgs/efivar/template @@ -1,32 +1,24 @@ # Template file for 'efivar' pkgname=efivar -version=0.15 -revision=3 -build_style=gnu-configure +version=0.21 +revision=1 +build_pie=yes makedepends="popt-devel" short_desc="Tools to manipulate EFI variables" maintainer="Juan RP " license="LGPL-2.1" -homepage="https://github.com/vathpela/efivar" - +homepage="https://github.com/rhinstaller/efivar" only_for_archs="i686 i686-musl x86_64 x86_64-musl" +distfiles="https://github.com/rhinstaller/efivar/releases/download/${version}/efivar-${version}.tar.bz2" +checksum=04b9b9de9d9a1a013395400438a033daf4a4290f497ec5be04a120e2ac535094 -distfiles="https://github.com/rhinstaller/$pkgname/archive/$version.tar.gz" -checksum=8e5a45ebbd116a96a43176e96b211c73f3ec8452da3bd0ce75a5716f86d4343f - -do_configure() { - sed 's|-rpath=$(TOPDIR)/src/|-rpath=$(libdir)|g' -i src/test/Makefile - sed "s|-O0|${CFLAGS}|g" -i Make.defaults -} do_build() { - make CC=$CC libdir="/usr/lib/" bindir="/usr/bin/" \ - mandir="/usr/share/man/" includedir="/usr/include/" V=1 + sed 's|-rpath=$(TOPDIR)/src/|-rpath=$(libdir)|g' -i src/test/Makefile + make CC=$CC libdir="/usr/lib/" } do_install() { - make -j1 V=1 DESTDIR=${DESTDIR} libdir="/usr/lib/" \ - bindir="/usr/bin/" mandir="/usr/share/man/" \ - includedir="/usr/include/" install - vinstall src/test/tester 755 usr/bin efivar-tester + make DESTDIR=${DESTDIR} libdir="/usr/lib/" install + vbin src/test/tester efivar-tester } libefivar_package() {