libnsl: Add alpine patches to fix w/musl

This commit is contained in:
Will Dietz 2017-12-07 12:47:37 -06:00
parent 8fa7634819
commit 6c2e8b36cf
3 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,30 @@
--- a/src/rpcsvc/nislib.h
+++ b/src/rpcsvc/nislib.h
@@ -19,6 +19,7 @@
#ifndef __RPCSVC_NISLIB_H__
#define __RPCSVC_NISLIB_H__
+#include <sys/cdefs.h>
#include <features.h>
__BEGIN_DECLS
--- a/src/rpcsvc/ypclnt.h
+++ b/src/rpcsvc/ypclnt.h
@@ -20,6 +20,7 @@
#ifndef __RPCSVC_YPCLNT_H__
#define __RPCSVC_YPCLNT_H__
+#include <sys/cdefs.h>
#include <features.h>
/* Some defines */
--- a/src/rpcsvc/ypupd.h
+++ b/src/rpcsvc/ypupd.h
@@ -33,6 +33,7 @@
#ifndef __RPCSVC_YPUPD_H__
#define __RPCSVC_YPUPD_H__
+#include <sys/cdefs.h>
#include <features.h>
#include <rpc/rpc.h>

View File

@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ libtirpc ]; buildInputs = [ libtirpc ];
patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [ ./cdefs.patch ./nis_h.patch ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Client interface library for NIS(YP) and NIS+"; description = "Client interface library for NIS(YP) and NIS+";
homepage = https://github.com/thkukuk/libnsl; homepage = https://github.com/thkukuk/libnsl;

View File

@ -0,0 +1,45 @@
--- a/src/rpcsvc/nis.h
+++ b/src/rpcsvc/nis.h
@@ -32,6 +32,7 @@
#ifndef _RPCSVC_NIS_H
#define _RPCSVC_NIS_H 1
+#include <sys/cdefs.h>
#include <features.h>
#include <rpc/rpc.h>
#include <rpcsvc/nis_tags.h>
@@ -56,6 +57,34 @@
* <kukuk@suse.de>
*/
+#ifndef rawmemchr
+#define rawmemchr(s,c) memchr((s),(size_t)-1,(c))
+#endif
+
+#ifndef __asprintf
+#define __asprintf asprintf
+#endif
+
+#ifndef __mempcpy
+#define __mempcpy mempcpy
+#endif
+
+#ifndef __strtok_r
+#define __strtok_r strtok_r
+#endif
+
+#ifndef __always_inline
+#define __always_inline __attribute__((__always_inline__))
+#endif
+
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(exp) ({ \
+typeof (exp) _rc; \
+ do { \
+ _rc = (exp); \
+ } while (_rc == -1 && errno == EINTR); \
+ _rc; })
+#endif
#ifndef __nis_object_h
#define __nis_object_h