Date: Sun, 10 Apr 2016 12:27:48 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r412926 - in head/net: . libnss-pgsql libnss-pgsql/files Message-ID: <201604101227.u3ACRmBN093119@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pi Date: Sun Apr 10 12:27:48 2016 New Revision: 412926 URL: https://svnweb.freebsd.org/changeset/ports/412926 Log: New port: net/libnss-pgsql libNSS-PostgreSQL allows you to authenticate UNIX groups and users using a PostgreSQL database. It uses the NSS API which provides an abstraction layer between the UNIX authentication API and the related data. NSS-PostgreSQL currently supports the passwd and groups services. WWW: https://ftp.postgresql.org/pub/projects/pgFoundry/sysauth/NSS/ PR: 178333 Submitted by: berend@pobox.com, felix@userspace.com.au Reviewed by: lippe, robak Added: head/net/libnss-pgsql/ head/net/libnss-pgsql/Makefile (contents, props changed) head/net/libnss-pgsql/distinfo (contents, props changed) head/net/libnss-pgsql/files/ head/net/libnss-pgsql/files/nsswitch.conf (contents, props changed) head/net/libnss-pgsql/files/patch-configure.ac (contents, props changed) head/net/libnss-pgsql/files/patch-src_backend.c (contents, props changed) head/net/libnss-pgsql/files/patch-src_interface.c (contents, props changed) head/net/libnss-pgsql/files/patch-src_nss-pgsql.h (contents, props changed) head/net/libnss-pgsql/pkg-descr (contents, props changed) head/net/libnss-pgsql/pkg-plist (contents, props changed) Modified: head/net/Makefile Modified: head/net/Makefile ============================================================================== --- head/net/Makefile Sun Apr 10 12:17:04 2016 (r412925) +++ head/net/Makefile Sun Apr 10 12:27:48 2016 (r412926) @@ -331,6 +331,7 @@ SUBDIR += libnids SUBDIR += libnss-cache SUBDIR += libnss-mysql + SUBDIR += libnss-pgsql SUBDIR += liboauth SUBDIR += libopennet SUBDIR += liboping Added: head/net/libnss-pgsql/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/Makefile Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,28 @@ +# Created by: Felix Hanley <felix@userspace.com.au> +# $FreeBSD$ + +PORTNAME= libnss-pgsql +PORTVERSION= 1.5.0 +CATEGORIES= net +MASTER_SITES= ${MASTER_SITE_PGSQL} +MASTER_SITE_SUBDIR= projects/pgFoundry/sysauth/NSS/nss1.5.0-beta +DISTNAME= ${PORTNAME}-${PORTVERSION}-beta + +MAINTAINER= felix@userspace.com.au +COMMENT= NSS module using a PostgreSQL database for backend + +LICENSE= GPLv2 + +BUILD_DEPENDS= xmlto:${PORTSDIR}/textproc/xmlto + +USES= autoreconf gmake libtool pgsql tar:tgz +CONFIGURE_ARGS= --sysconfdir=${PREFIX}/etc --includedir=${PREFIX}/include --libdir=${PREFIX}/lib --with-docdir=${DOCSDIR} +USE_LDCONFIG= yes +GNU_CONFIGURE= yes + +post-install: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README ${WRKSRC}/conf/* ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} files/nsswitch.conf ${STAGEDIR}${DOCSDIR} + +.include <bsd.port.mk> Added: head/net/libnss-pgsql/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/distinfo Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,2 @@ +SHA256 (libnss-pgsql-1.5.0-beta.tgz) = 84808c47fd21a09e2c487a0efc72cc18b352275082335be8c6de39d325e6c000 +SIZE (libnss-pgsql-1.5.0-beta.tgz) = 305543 Added: head/net/libnss-pgsql/files/nsswitch.conf ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/files/nsswitch.conf Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,17 @@ +# +# nsswitch.conf(5) - name service switch configuration file +# $FreeBSD$ +# +#group: compat +group: files [notfound=continue] pgsql +group_compat: nis +hosts: files dns +networks: files +#passwd: compat +passwd: files [notfound=continue] pgsql +passwd_compat: nis +shells: files +services: compat +services_compat: nis +protocols: files +rpc: files Added: head/net/libnss-pgsql/files/patch-configure.ac ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/files/patch-configure.ac Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,11 @@ +--- configure.ac.orig 2015-12-21 07:52:02 UTC ++++ configure.ac +@@ -26,7 +26,7 @@ AC_CHECK_LIB([pq], [PQsetdbLogin]) + + # Checks for header files. + AC_HEADER_STDC +-AC_CHECK_HEADERS([stdlib.h string.h unistd.h nss.h]) ++AC_CHECK_HEADERS([stdlib.h string.h unistd.h nss.h shadow.h]) + + # Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST Added: head/net/libnss-pgsql/files/patch-src_backend.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/files/patch-src_backend.c Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,11 @@ +--- src/backend.c.orig 2015-12-21 07:40:53 UTC ++++ src/backend.c +@@ -11,7 +11,7 @@ + */ + + #include "nss-pgsql.h" +-#include <postgresql/libpq-fe.h> ++#include <libpq-fe.h> + #include <stdlib.h> + #include <string.h> + #include <stdio.h> Added: head/net/libnss-pgsql/files/patch-src_interface.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/files/patch-src_interface.c Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,60 @@ +--- src/interface.c.orig 2015-12-21 07:49:44 UTC ++++ src/interface.c +@@ -285,3 +285,57 @@ _nss_pgsql_getspnam_r(const char *spnam, + + return retval; + } ++ ++/* Thanks to Clement Laforet for most of this */ ++#if defined(__FreeBSD__) ++ ++NSS_METHOD_PROTOTYPE(__nss_compat_getpwnam_r); ++NSS_METHOD_PROTOTYPE(__nss_compat_getpwuid_r); ++NSS_METHOD_PROTOTYPE(__nss_compat_getpwent_r); ++NSS_METHOD_PROTOTYPE(__nss_compat_setpwent); ++NSS_METHOD_PROTOTYPE(__nss_compat_endpwent); ++NSS_METHOD_PROTOTYPE(__nss_compat_getgrnam_r); ++NSS_METHOD_PROTOTYPE(__nss_compat_getgrgid_r); ++NSS_METHOD_PROTOTYPE(__nss_compat_getgrent_r); ++NSS_METHOD_PROTOTYPE(__nss_compat_setgrent); ++NSS_METHOD_PROTOTYPE(__nss_compat_endgrent); ++ ++enum nss_status _nss_pgsql_getpwnam_r (const char *, struct passwd *, char *, ++ size_t, int *); ++enum nss_status _nss_pgsql_getpwuid_r (uid_t, struct passwd *, char *, ++ size_t, int *); ++enum nss_status _nss_pgsql_getpwent_r (struct passwd *, char *, size_t, int *); ++enum nss_status _nss_pgsql_setpwent (void); ++enum nss_status _nss_pgsql_endpwent (void); ++ ++enum nss_status _nss_pgsql_getgrnam_r (const char *, struct group *, char *, ++ size_t, int *); ++enum nss_status _nss_pgsql_getgrgid_r (gid_t, struct group *, char *, ++ size_t, int *); ++enum nss_status _nss_pgsql_getgrent_r (struct group *, char *, size_t, int *); ++enum nss_status _nss_pgsql_setgrent (void); ++enum nss_status _nss_pgsql_endgrent (void); ++ ++static ns_mtab methods[] = { ++ { NSDB_PASSWD, "getpwnam_r", __nss_compat_getpwnam_r, _nss_pgsql_getpwnam_r }, ++ { NSDB_PASSWD, "getpwuid_r", __nss_compat_getpwuid_r, _nss_pgsql_getpwuid_r }, ++ { NSDB_PASSWD, "getpwent_r", __nss_compat_getpwent_r, _nss_pgsql_getpwent_r }, ++ { NSDB_PASSWD, "endpwent", __nss_compat_setpwent, _nss_pgsql_setpwent }, ++ { NSDB_PASSWD, "setpwent", __nss_compat_endpwent, _nss_pgsql_endpwent }, ++ { NSDB_GROUP, "getgrnam_r", __nss_compat_getgrnam_r, _nss_pgsql_getgrnam_r }, ++ { NSDB_GROUP, "getgrgid_r", __nss_compat_getgrgid_r, _nss_pgsql_getgrgid_r }, ++ { NSDB_GROUP, "getgrent_r", __nss_compat_getgrent_r, _nss_pgsql_getgrent_r }, ++ { NSDB_GROUP, "endgrent", __nss_compat_setgrent, _nss_pgsql_setgrent }, ++ { NSDB_GROUP, "setgrent", __nss_compat_endgrent, _nss_pgsql_endgrent }, ++}; ++ ++ns_mtab * ++nss_module_register (const char *name, unsigned int *size, ++ nss_module_unregister_fn *unregister) ++{ ++ *size = sizeof (methods) / sizeof (methods[0]); ++ *unregister = NULL; ++ return (methods); ++} ++ ++#endif /* defined(__FreeBSD__) */ Added: head/net/libnss-pgsql/files/patch-src_nss-pgsql.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/files/patch-src_nss-pgsql.h Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,33 @@ +--- src/nss-pgsql.h.orig 2015-12-21 07:47:28 UTC ++++ src/nss-pgsql.h +@@ -15,9 +15,30 @@ + + # include <pwd.h> + # include <grp.h> ++#ifdef HAVE_SHADOW_H + # include <shadow.h> ++#endif + # include <sys/types.h> + ++#ifndef HAVE_SHADOW_H ++/* Structure of the password file. */ ++struct spwd ++ { ++ char *sp_namp; /* Login name. */ ++ char *sp_pwdp; /* Encrypted password. */ ++ long int sp_lstchg; /* Date of last change. */ ++ long int sp_min; /* Minimum number of days between changes. */ ++ long int sp_max; /* Maximum number of days between changes. */ ++ long int sp_warn; /* Number of days to warn user to change ++ the password. */ ++ long int sp_inact; /* Number of days the account may be ++ inactive. */ ++ long int sp_expire; /* Number of days since 1970-01-01 until ++ account expires. */ ++ unsigned long int sp_flag; /* Reserved. */ ++ }; ++#endif ++ + #define CFGFILE SYSCONFDIR"/nss-pgsql.conf" + #define CFGROOTFILE SYSCONFDIR"/nss-pgsql-root.conf" + Added: head/net/libnss-pgsql/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/pkg-descr Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,6 @@ +libNSS-PostgreSQL allows you to authenticate UNIX groups and users +using a PostgreSQL database. It uses the NSS API which provides an +abstraction layer between the UNIX authentication API and the related +data. NSS-PostgreSQL currently supports the passwd and groups services. + +WWW: https://ftp.postgresql.org/pub/projects/pgFoundry/sysauth/NSS/ Added: head/net/libnss-pgsql/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/libnss-pgsql/pkg-plist Sun Apr 10 12:27:48 2016 (r412926) @@ -0,0 +1,11 @@ +lib/libnss_pgsql.a +lib/libnss_pgsql.so +lib/libnss_pgsql.so.2 +lib/libnss_pgsql.so.2.0.0 +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/caution.png +%%PORTDOCS%%%%DOCSDIR%%/dbschema.sql +%%PORTDOCS%%%%DOCSDIR%%/nss-pgsql-root.conf +%%PORTDOCS%%%%DOCSDIR%%/nss-pgsql.conf +%%PORTDOCS%%%%DOCSDIR%%/nss-pgsql.html +%%PORTDOCS%%%%DOCSDIR%%/nsswitch.conf
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604101227.u3ACRmBN093119>