lol

libexecinfo: fetch patches, add meta, maintain

+23 -136
-64
pkgs/development/libraries/libexecinfo/10-execinfo.patch
··· 1 - --- execinfo.c.orig 2 - +++ execinfo.c 3 - @@ -69,7 +69,8 @@ 4 - char ** 5 - backtrace_symbols(void *const *buffer, int size) 6 - { 7 - - int i, clen, alen, offset; 8 - + size_t clen, alen; 9 - + int i, offset; 10 - char **rval; 11 - char *cp; 12 - Dl_info info; 13 - @@ -78,7 +79,6 @@ 14 - rval = malloc(clen); 15 - if (rval == NULL) 16 - return NULL; 17 - - (char **)cp = &(rval[size]); 18 - for (i = 0; i < size; i++) { 19 - if (dladdr(buffer[i], &info) != 0) { 20 - if (info.dli_sname == NULL) 21 - @@ -92,14 +92,14 @@ 22 - 2 + /* " <" */ 23 - strlen(info.dli_sname) + /* "function" */ 24 - 1 + /* "+" */ 25 - - D10(offset) + /* "offset */ 26 - + 10 + /* "offset */ 27 - 5 + /* "> at " */ 28 - strlen(info.dli_fname) + /* "filename" */ 29 - 1; /* "\0" */ 30 - rval = realloc_safe(rval, clen + alen); 31 - if (rval == NULL) 32 - return NULL; 33 - - snprintf(cp, alen, "%p <%s+%d> at %s", 34 - + snprintf((char *) rval + clen, alen, "%p <%s+%d> at %s", 35 - buffer[i], info.dli_sname, offset, info.dli_fname); 36 - } else { 37 - alen = 2 + /* "0x" */ 38 - @@ -108,12 +108,15 @@ 39 - rval = realloc_safe(rval, clen + alen); 40 - if (rval == NULL) 41 - return NULL; 42 - - snprintf(cp, alen, "%p", buffer[i]); 43 - + snprintf((char *) rval + clen, alen, "%p", buffer[i]); 44 - } 45 - - rval[i] = cp; 46 - - cp += alen; 47 - + rval[i] = (char *) clen; 48 - + clen += alen; 49 - } 50 - 51 - + for (i = 0; i < size; i++) 52 - + rval[i] += (long) rval; 53 - + 54 - return rval; 55 - } 56 - 57 - @@ -155,6 +158,6 @@ 58 - return; 59 - snprintf(buf, len, "%p\n", buffer[i]); 60 - } 61 - - write(fd, buf, len - 1); 62 - + write(fd, buf, strlen(buf)); 63 - } 64 - }
-24
pkgs/development/libraries/libexecinfo/20-define-gnu-source.patch
··· 1 - --- execinfo.c.orig 2 - +++ execinfo.c 3 - @@ -26,6 +26,7 @@ 4 - * $Id: execinfo.c,v 1.3 2004/07/19 05:21:09 sobomax Exp $ 5 - */ 6 - 7 - +#define _GNU_SOURCE 8 - #include <sys/types.h> 9 - #include <sys/uio.h> 10 - #include <dlfcn.h> 11 - --- stacktraverse.c.orig 12 - +++ stacktraverse.c 13 - @@ -1,3 +1,4 @@ 14 - +#define _GNU_SOURCE 15 - #include <stddef.h> 16 - 17 - #include "stacktraverse.h" 18 - --- test.c.orig 19 - +++ test.c 20 - @@ -1,3 +1,4 @@ 21 - +#define _GNU_SOURCE 22 - #include <stdio.h> 23 - #include <stdlib.h> 24 -
-44
pkgs/development/libraries/libexecinfo/30-linux-makefile.patch
··· 1 - --- Makefile.orig 2 - +++ Makefile 3 - @@ -23,24 +23,25 @@ 4 - # SUCH DAMAGE. 5 - # 6 - # $Id: Makefile,v 1.3 2004/07/19 05:19:55 sobomax Exp $ 7 - +# 8 - +# Linux Makefile by Matt Smith <mcs@darkregion.net>, 2011/01/04 9 - 10 - -LIB= execinfo 11 - +CC=cc 12 - +AR=ar 13 - +EXECINFO_CFLAGS=$(CFLAGS) -O2 -pipe -fno-strict-aliasing -std=gnu99 -fstack-protector -c 14 - +EXECINFO_LDFLAGS=$(LDFLAGS) 15 - 16 - -SRCS= stacktraverse.c stacktraverse.h execinfo.c execinfo.h 17 - +all: static dynamic 18 - 19 - -INCS= execinfo.h 20 - +static: 21 - + $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c 22 - + $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c 23 - + $(AR) rcs libexecinfo.a stacktraverse.o execinfo.o 24 - 25 - -SHLIB_MAJOR= 1 26 - -SHLIB_MINOR= 0 27 - +dynamic: 28 - + $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -o stacktraverse.So 29 - + $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -o execinfo.So 30 - + $(CC) -shared -Wl,-soname,libexecinfo.so.1 -o libexecinfo.so.1 stacktraverse.So execinfo.So 31 - 32 - -NOPROFILE= yes 33 - - 34 - -DPADD= ${LIBM} 35 - -LDADD= -lm 36 - - 37 - -#WARNS?= 4 38 - - 39 - -#stacktraverse.c: gen.py 40 - -# ./gen.py > stacktraverse.c 41 - - 42 - -.include <bsd.lib.mk> 43 - +clean: 44 - + rm -rf *.o *.So *.a *.so
+23 -4
pkgs/development/libraries/libexecinfo/default.nix
··· 1 - { stdenv, fetchurl }: 1 + { stdenv, fetchurl, fetchpatch }: 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "libexecinfo-${version}"; ··· 10 10 }; 11 11 12 12 patches = [ 13 - ./10-execinfo.patch 14 - ./20-define-gnu-source.patch 15 - ./30-linux-makefile.patch 13 + (fetchpatch { 14 + name = "10-execinfo.patch"; 15 + url = https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/10-execinfo.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1; 16 + sha256 = "0lnphrad4vspyljnvmm62dyxj98vgp3wabj4w3vfzfph7j8piw7g"; 17 + }) 18 + (fetchpatch { 19 + name = "20-define-gnu-source.patch"; 20 + url = https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/20-define-gnu-source.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1; 21 + sha256 = "1mp8mc639b0h2s69m5z6s2h3q3n1zl298j9j0plzj7f979j76302"; 22 + }) 23 + (fetchpatch { 24 + name = "30-linux-makefile.patch"; 25 + url = https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/30-linux-makefile.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1; 26 + sha256 = "1jwjz22z5cjy5h2bfghn62yl9ar8jiqhdvbwrcfavv17ihbhwcaf"; 27 + }) 16 28 ]; 17 29 18 30 patchFlags = "-p0"; ··· 22 34 install -Dm755 libexecinfo.{a,so.1} -t $out/lib 23 35 ln -s $out/lib/libexecinfo.so{.1,} 24 36 ''; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Library for inspecting program's backtrace"; 40 + license = licenses.bsd2; 41 + homepage = https://www.freshports.org/devel/libexecinfo; 42 + maintainers = with maintainers; [ dtzWill ]; 43 + }; 25 44 }