From 7f3527d33f19150dff5cfc9d6dbef51532a78da2 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 13 Feb 2018 11:03:07 -0600 Subject: [PATCH] libexecinfo: fetch patches, add meta, maintain --- .../libraries/libexecinfo/10-execinfo.patch | 64 ------------------- .../libexecinfo/20-define-gnu-source.patch | 24 ------- .../libexecinfo/30-linux-makefile.patch | 44 ------------- .../libraries/libexecinfo/default.nix | 27 ++++++-- 4 files changed, 23 insertions(+), 136 deletions(-) delete mode 100644 pkgs/development/libraries/libexecinfo/10-execinfo.patch delete mode 100644 pkgs/development/libraries/libexecinfo/20-define-gnu-source.patch delete mode 100644 pkgs/development/libraries/libexecinfo/30-linux-makefile.patch diff --git a/pkgs/development/libraries/libexecinfo/10-execinfo.patch b/pkgs/development/libraries/libexecinfo/10-execinfo.patch deleted file mode 100644 index 03b5af0ca20..00000000000 --- a/pkgs/development/libraries/libexecinfo/10-execinfo.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- execinfo.c.orig -+++ execinfo.c -@@ -69,7 +69,8 @@ - char ** - backtrace_symbols(void *const *buffer, int size) - { -- int i, clen, alen, offset; -+ size_t clen, alen; -+ int i, offset; - char **rval; - char *cp; - Dl_info info; -@@ -78,7 +79,6 @@ - rval = malloc(clen); - if (rval == NULL) - return NULL; -- (char **)cp = &(rval[size]); - for (i = 0; i < size; i++) { - if (dladdr(buffer[i], &info) != 0) { - if (info.dli_sname == NULL) -@@ -92,14 +92,14 @@ - 2 + /* " <" */ - strlen(info.dli_sname) + /* "function" */ - 1 + /* "+" */ -- D10(offset) + /* "offset */ -+ 10 + /* "offset */ - 5 + /* "> at " */ - strlen(info.dli_fname) + /* "filename" */ - 1; /* "\0" */ - rval = realloc_safe(rval, clen + alen); - if (rval == NULL) - return NULL; -- snprintf(cp, alen, "%p <%s+%d> at %s", -+ snprintf((char *) rval + clen, alen, "%p <%s+%d> at %s", - buffer[i], info.dli_sname, offset, info.dli_fname); - } else { - alen = 2 + /* "0x" */ -@@ -108,12 +108,15 @@ - rval = realloc_safe(rval, clen + alen); - if (rval == NULL) - return NULL; -- snprintf(cp, alen, "%p", buffer[i]); -+ snprintf((char *) rval + clen, alen, "%p", buffer[i]); - } -- rval[i] = cp; -- cp += alen; -+ rval[i] = (char *) clen; -+ clen += alen; - } - -+ for (i = 0; i < size; i++) -+ rval[i] += (long) rval; -+ - return rval; - } - -@@ -155,6 +158,6 @@ - return; - snprintf(buf, len, "%p\n", buffer[i]); - } -- write(fd, buf, len - 1); -+ write(fd, buf, strlen(buf)); - } - } diff --git a/pkgs/development/libraries/libexecinfo/20-define-gnu-source.patch b/pkgs/development/libraries/libexecinfo/20-define-gnu-source.patch deleted file mode 100644 index 0ba1fc1f7e6..00000000000 --- a/pkgs/development/libraries/libexecinfo/20-define-gnu-source.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- execinfo.c.orig -+++ execinfo.c -@@ -26,6 +26,7 @@ - * $Id: execinfo.c,v 1.3 2004/07/19 05:21:09 sobomax Exp $ - */ - -+#define _GNU_SOURCE - #include - #include - #include ---- stacktraverse.c.orig -+++ stacktraverse.c -@@ -1,3 +1,4 @@ -+#define _GNU_SOURCE - #include - - #include "stacktraverse.h" ---- test.c.orig -+++ test.c -@@ -1,3 +1,4 @@ -+#define _GNU_SOURCE - #include - #include - diff --git a/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch b/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch deleted file mode 100644 index 3bc89279547..00000000000 --- a/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- Makefile.orig -+++ Makefile -@@ -23,24 +23,25 @@ - # SUCH DAMAGE. - # - # $Id: Makefile,v 1.3 2004/07/19 05:19:55 sobomax Exp $ -+# -+# Linux Makefile by Matt Smith , 2011/01/04 - --LIB= execinfo -+CC=cc -+AR=ar -+EXECINFO_CFLAGS=$(CFLAGS) -O2 -pipe -fno-strict-aliasing -std=gnu99 -fstack-protector -c -+EXECINFO_LDFLAGS=$(LDFLAGS) - --SRCS= stacktraverse.c stacktraverse.h execinfo.c execinfo.h -+all: static dynamic - --INCS= execinfo.h -+static: -+ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -+ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -+ $(AR) rcs libexecinfo.a stacktraverse.o execinfo.o - --SHLIB_MAJOR= 1 --SHLIB_MINOR= 0 -+dynamic: -+ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -o stacktraverse.So -+ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -o execinfo.So -+ $(CC) -shared -Wl,-soname,libexecinfo.so.1 -o libexecinfo.so.1 stacktraverse.So execinfo.So - --NOPROFILE= yes -- --DPADD= ${LIBM} --LDADD= -lm -- --#WARNS?= 4 -- --#stacktraverse.c: gen.py --# ./gen.py > stacktraverse.c -- --.include -+clean: -+ rm -rf *.o *.So *.a *.so diff --git a/pkgs/development/libraries/libexecinfo/default.nix b/pkgs/development/libraries/libexecinfo/default.nix index 15c4cb2661f..14d5f7f45df 100644 --- a/pkgs/development/libraries/libexecinfo/default.nix +++ b/pkgs/development/libraries/libexecinfo/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ stdenv, fetchurl, fetchpatch }: stdenv.mkDerivation rec { name = "libexecinfo-${version}"; @@ -10,9 +10,21 @@ stdenv.mkDerivation rec { }; patches = [ - ./10-execinfo.patch - ./20-define-gnu-source.patch - ./30-linux-makefile.patch + (fetchpatch { + name = "10-execinfo.patch"; + url = https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/10-execinfo.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1; + sha256 = "0lnphrad4vspyljnvmm62dyxj98vgp3wabj4w3vfzfph7j8piw7g"; + }) + (fetchpatch { + name = "20-define-gnu-source.patch"; + url = https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/20-define-gnu-source.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1; + sha256 = "1mp8mc639b0h2s69m5z6s2h3q3n1zl298j9j0plzj7f979j76302"; + }) + (fetchpatch { + name = "30-linux-makefile.patch"; + url = https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/30-linux-makefile.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1; + sha256 = "1jwjz22z5cjy5h2bfghn62yl9ar8jiqhdvbwrcfavv17ihbhwcaf"; + }) ]; patchFlags = "-p0"; @@ -22,4 +34,11 @@ stdenv.mkDerivation rec { install -Dm755 libexecinfo.{a,so.1} -t $out/lib ln -s $out/lib/libexecinfo.so{.1,} ''; + + meta = with stdenv.lib; { + description = "Library for inspecting program's backtrace"; + license = licenses.bsd2; + homepage = https://www.freshports.org/devel/libexecinfo; + maintainers = with maintainers; [ dtzWill ]; + }; }