diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2021-10-04 14:55:49 +0000 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2021-10-05 08:46:57 +0000 |
commit | 1a244b7814ed4ddb4a02a262e1a61022a506b963 (patch) | |
tree | 5fa013863a64d1002fe9717a397b324f2fedafc1 /gnu/packages/patches | |
parent | 9211d4324c2f981ce8aa83c2906cbce6aeb99f7b (diff) | |
download | guix-patches-1a244b7814ed4ddb4a02a262e1a61022a506b963.tar guix-patches-1a244b7814ed4ddb4a02a262e1a61022a506b963.tar.gz |
gnu: p11-kit: Fix Hurd build.
* gnu/packages/patches/p11-kit-hurd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/tls.scm (p11-kit)[native-inputs]: Add autoconf, automake,
gettext and libtool when targeting Hurd.
[inputs]: Add libbsd and hurd-patch when targeting hurd.
[arguments]: Add 'apply-hurd-patch and 'bootstrap phases when targeting Hurd.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/p11-kit-hurd.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gnu/packages/patches/p11-kit-hurd.patch b/gnu/packages/patches/p11-kit-hurd.patch new file mode 100644 index 0000000000..01699882c4 --- /dev/null +++ b/gnu/packages/patches/p11-kit-hurd.patch @@ -0,0 +1,46 @@ +Taken from: https://groups.google.com/g/linux.debian.bugs.dist/c/mX4GpUJih4k. + +--- a/configure.ac ++++ b/configure.ac +@@ -132,6 +132,16 @@ if test "$os_unix" = "yes"; then + AC_CHECK_FUNCS([getpeereid]) + AC_CHECK_FUNCS([getpeerucred]) + AC_CHECK_FUNCS([issetugid]) ++ case "$host_os" in ++ kfreebsd*-gnu | gnu*) ++ have_getpeereid=no ++ AC_CHECK_LIB(bsd, getpeereid, have_getpeereid=yes) ++ if test "x$have_getpeereid" = "xyes"; then ++ AC_DEFINE([HAVE_GETPEEREID], [1], [have getpeereid]) ++ AC_SEARCH_LIBS([getpeereid], [bsd]) ++ fi ++ ;; ++ esac + + AC_CACHE_CHECK([for thread-local storage class], + [ac_cv_tls_keyword], + +--- a/common/unix-peer.c ++++ b/common/unix-peer.c +@@ -47,6 +47,11 @@ + # include <ucred.h> + #endif + ++#ifdef HAVE_GETPEEREID ++/* Declare getpeereid from /usr/include/bsd/unistd.h */ ++extern int getpeereid(int s, uid_t *euid, gid_t *egid); ++#endif ++ + /* Returns the unix domain socket peer information. + * Returns zero on success. + */ +@@ -73,7 +78,8 @@ p11_get_upeer_id (int cfd, uid_t *uid, u + *pid = cr.pid; + + #elif defined(HAVE_GETPEEREID) +- /* *BSD/MacOSX */ ++ /* *BSD/MacOSX/kFreeBSD/Hurd */ ++ + uid_t euid; + gid_t egid; +
\ No newline at end of file |