ports/178333: [new port] net/libnss-pgsql: allow user accounts to be stored in postgresql

Berend de Boer berend at pobox.com
Tue May 14 22:10:02 UTC 2013


The following reply was made to PR ports/178333; it has been noted by GNATS.

From: Berend de Boer <berend at pobox.com>
To: bug-followup at FreeBSD.org, berend at pobox.com
Cc:  
Subject: Re: ports/178333: [new port] net/libnss-pgsql: allow user accounts
 to be stored in postgresql
Date: Wed, 15 May 2013 10:04:03 +1200

 This is a multi-part message in MIME format.
 --------------040902070105040001070805
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 The port didn't install the link /usr/local/lib/nss_pgsql.so.1 which is 
 essential to make this work.
 
 This update fixes that.
 
 
 --------------040902070105040001070805
 Content-Type: application/x-shar;
  name="libnss-pgsql.shar"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="libnss-pgsql.shar"
 
 # This is a shell archive.  Save it in a file, remove anything before
 # this line, and then unpack it by entering "sh file".  Note, it may
 # create directories; files and directories will be owned by you and
 # have default permissions.
 #
 # This archive contains:
 #
 #	libnss-pgsql/
 #	libnss-pgsql/files
 #	libnss-pgsql/files/patch-configure.in
 #	libnss-pgsql/files/patch-backend.c
 #	libnss-pgsql/files/patch-nss-pgsql.h
 #	libnss-pgsql/files/patch-freebsd.sym
 #	libnss-pgsql/files/patch-interface.c
 #	libnss-pgsql/files/patch-src-Makefile.am
 #	libnss-pgsql/Makefile
 #	libnss-pgsql/distinfo
 #	libnss-pgsql/pkg-descr
 #	libnss-pgsql/pkg-plist
 #
 echo c - libnss-pgsql/
 mkdir -p libnss-pgsql/ > /dev/null 2>&1
 echo c - libnss-pgsql/files
 mkdir -p libnss-pgsql/files > /dev/null 2>&1
 echo x - libnss-pgsql/files/patch-configure.in
 sed 's/^X//' >libnss-pgsql/files/patch-configure.in << '5b1b9743b35f2ea07dfc43c2d86b1e83'
 X--- configure.ac	2006-01-10 15:35:34.000000000 +1300
 X+++ configure.ac	2013-05-04 15:03:26.000000000 +1200
 X@@ -26,7 +26,7 @@
 X
 X # Checks for header files.
 X AC_HEADER_STDC
 X-AC_CHECK_HEADERS([stdlib.h string.h unistd.h nss.h])
 X+AC_CHECK_HEADERS([stdlib.h string.h unistd.h nss.h shadow.h])
 X
 X # Checks for typedefs, structures, and compiler characteristics.
 X AC_C_CONST
 5b1b9743b35f2ea07dfc43c2d86b1e83
 echo x - libnss-pgsql/files/patch-backend.c
 sed 's/^X//' >libnss-pgsql/files/patch-backend.c << 'd72dd59247c8f83f38a967e2ce1b4626'
 X--- src/backend.c	2008-08-19 21:44:37.000000000 +1200
 X+++ src/backend.c	2013-04-27 21:05:16.000000000 +1200
 X@@ -11,7 +11,7 @@
 X  */
 X
 X #include "nss-pgsql.h"
 X-#include <postgresql/libpq-fe.h>
 X+#include <libpq-fe.h>
 X #include <stdlib.h>
 X #include <string.h>
 X #include <stdio.h>
 d72dd59247c8f83f38a967e2ce1b4626
 echo x - libnss-pgsql/files/patch-nss-pgsql.h
 sed 's/^X//' >libnss-pgsql/files/patch-nss-pgsql.h << 'a689ec8ebd67804f9764de8cc5400e02'
 X--- src/nss-pgsql.h	2006-01-10 11:33:07.000000000 +1300
 X+++ src/nss-pgsql.h	2013-05-04 15:07:33.000000000 +1200
 X@@ -15,9 +15,30 @@
 X
 X #  include <pwd.h>
 X #  include <grp.h>
 X+#ifdef HAVE_SHADOW_H
 X #  include <shadow.h>
 X+#endif
 X #  include <sys/types.h>
 X
 X+#ifndef HAVE_SHADOW_H
 X+/* Structure of the password file.  */
 X+struct spwd
 X+  {
 X+    char *sp_namp;		/* Login name.  */
 X+    char *sp_pwdp;		/* Encrypted password.  */
 X+    long int sp_lstchg;		/* Date of last change.  */
 X+    long int sp_min;		/* Minimum number of days between changes.  */
 X+    long int sp_max;		/* Maximum number of days between changes.  */
 X+    long int sp_warn;		/* Number of days to warn user to change
 X+				   the password.  */
 X+    long int sp_inact;		/* Number of days the account may be
 X+				   inactive.  */
 X+    long int sp_expire;		/* Number of days since 1970-01-01 until
 X+				   account expires.  */
 X+    unsigned long int sp_flag;	/* Reserved.  */
 X+  };
 X+#endif
 X+
 X #define CFGFILE SYSCONFDIR"/nss-pgsql.conf"
 X #define CFGROOTFILE SYSCONFDIR"/nss-pgsql-root.conf"
 X
 a689ec8ebd67804f9764de8cc5400e02
 echo x - libnss-pgsql/files/patch-freebsd.sym
 sed 's/^X//' >libnss-pgsql/files/patch-freebsd.sym << '64a3be747f3d733b40fee405f82c7371'
 X--- src/freebsd.sym	1970-01-01 12:00:00.000000000 +1200
 X+++ src/freebsd.sym	2004-04-12 11:02:12.000000000 +1200
 X@@ -0,0 +1 @@
 X+nss_module_register
 64a3be747f3d733b40fee405f82c7371
 echo x - libnss-pgsql/files/patch-interface.c
 sed 's/^X//' >libnss-pgsql/files/patch-interface.c << 'cb3fcae78a0be37fda871e16db8d1af7'
 X--- /usr/ports/net/libnss-pgsql/work/libnss-pgsql-1.5.0-beta/src/interface.c	2008-08-19 21:44:37.000000000 +1200
 X+++ src/interface.c	2013-05-04 14:30:42.000000000 +1200
 X@@ -285,3 +285,57 @@
 X 
 X 	return retval;
 X }
 X+
 X+/* Thanks to Clement Laforet for most of this */
 X+#if defined(__FreeBSD__)
 X+
 X+NSS_METHOD_PROTOTYPE(__nss_compat_getpwnam_r);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_getpwuid_r);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_getpwent_r);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_setpwent);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_endpwent);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_getgrnam_r);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_getgrgid_r);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_getgrent_r);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_setgrent);
 X+NSS_METHOD_PROTOTYPE(__nss_compat_endgrent);
 X+
 X+enum nss_status _nss_pgsql_getpwnam_r (const char *, struct passwd *, char *,
 X+                                  size_t, int *);
 X+enum nss_status _nss_pgsql_getpwuid_r (uid_t, struct passwd *, char *,
 X+                                  size_t, int *);
 X+enum nss_status _nss_pgsql_getpwent_r (struct passwd *, char *, size_t, int *);
 X+enum nss_status _nss_pgsql_setpwent (void);
 X+enum nss_status _nss_pgsql_endpwent (void);
 X+
 X+enum nss_status _nss_pgsql_getgrnam_r (const char *, struct group *, char *,
 X+                                  size_t, int *);
 X+enum nss_status _nss_pgsql_getgrgid_r (gid_t, struct group *, char *,
 X+                                  size_t, int *);
 X+enum nss_status _nss_pgsql_getgrent_r (struct group *, char *, size_t, int *);
 X+enum nss_status _nss_pgsql_setgrent (void);
 X+enum nss_status _nss_pgsql_endgrent (void);
 X+
 X+static ns_mtab methods[] = {
 X+    { NSDB_PASSWD, "getpwnam_r", __nss_compat_getpwnam_r, _nss_pgsql_getpwnam_r },
 X+    { NSDB_PASSWD, "getpwuid_r", __nss_compat_getpwuid_r, _nss_pgsql_getpwuid_r },
 X+    { NSDB_PASSWD, "getpwent_r", __nss_compat_getpwent_r, _nss_pgsql_getpwent_r },
 X+    { NSDB_PASSWD, "endpwent",   __nss_compat_setpwent,   _nss_pgsql_setpwent },
 X+    { NSDB_PASSWD, "setpwent",   __nss_compat_endpwent,   _nss_pgsql_endpwent },
 X+    { NSDB_GROUP,  "getgrnam_r", __nss_compat_getgrnam_r, _nss_pgsql_getgrnam_r },
 X+    { NSDB_GROUP,  "getgrgid_r", __nss_compat_getgrgid_r, _nss_pgsql_getgrgid_r },
 X+    { NSDB_GROUP,  "getgrent_r", __nss_compat_getgrent_r, _nss_pgsql_getgrent_r },
 X+    { NSDB_GROUP,  "endgrent",   __nss_compat_setgrent,   _nss_pgsql_setgrent },
 X+    { NSDB_GROUP,  "setgrent",   __nss_compat_endgrent,   _nss_pgsql_endgrent },
 X+};
 X+
 X+ns_mtab *
 X+nss_module_register (const char *name, unsigned int *size,
 X+                     nss_module_unregister_fn *unregister)
 X+{
 X+    *size = sizeof (methods) / sizeof (methods[0]);
 X+    *unregister = NULL;
 X+    return (methods);
 X+}
 X+
 X+#endif /* defined(__FreeBSD__) */
 cb3fcae78a0be37fda871e16db8d1af7
 echo x - libnss-pgsql/files/patch-src-Makefile.am
 sed 's/^X//' >libnss-pgsql/files/patch-src-Makefile.am << '2a3adefac0281151caaf5c6797d7bea8'
 X--- src/Makefile.am	2006-01-10 13:07:32.000000000 +1300
 X+++ src/Makefile.am	2013-05-04 15:02:08.000000000 +1200
 X@@ -1,5 +1,4 @@
 X lib_LTLIBRARIES = libnss_pgsql.la
 X libnss_pgsql_la_SOURCES = interface.c config.c backend.c util.c
 X-libnss_pgsql_la_LDFLAGS = -module -version-info 2
 X+libnss_pgsql_la_LDFLAGS = -module -version-info 2 -export-symbols $(srcdir)/freebsd.sym
 X EXTRA_DIST = nss-pgsql.h
 X-
 2a3adefac0281151caaf5c6797d7bea8
 echo x - libnss-pgsql/Makefile
 sed 's/^X//' >libnss-pgsql/Makefile << '11a997cc07f18b86271f02b244bc060d'
 X# Created by: Berend de Boer <berend at pobox.com>
 X# $FreeBSD$
 X#
 X
 XPORTNAME=	libnss-pgsql
 XPORTVERSION=	1.5.0
 XPORTREVISION=	1
 XCATEGORIES=	security net
 XMASTER_SITES=	http://pgfoundry.org/frs/download.php/1878/
 XDISTNAME=	${PORTNAME}-${PORTVERSION}-beta
 X
 XMAINTAINER=	berend at pobox.com
 XCOMMENT=	NSS module using a PostgreSQL database for backend
 X
 XBUILD_DEPENDS=	${LOCALBASE}/bin/xmlto:${PORTSDIR}/textproc/xmlto
 X
 XUSE_PGSQL=	yes
 XUSE_AUTOTOOLS=	libtool autoconf
 XCONFIGURE_ARGS=	--sysconfdir=${PREFIX}/etc --includedir=${PREFIX}/include --libdir=${PREFIX}/lib
 XUSE_LDCONFIG=	yes
 XGNU_CONFIGURE=	yes
 XUSE_GMAKE=	yes
 XUSE_PGSQL=	yes
 X
 Xpost-install:
 X.if !defined(PORT_OPTIONS:MDOCS)
 X	@${MKDIR} ${DOCSDIR}
 X	@${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
 X.endif
 X	@${INSTALL_DATA} ${WRKSRC}/conf/nss-pgsql-root.conf ${PREFIX}/etc/nss-pgsql-root.conf.dist
 X	@${INSTALL_DATA} ${WRKSRC}/conf/nss-pgsql.conf ${PREFIX}/etc/nss-pgsql.conf.dist
 X	@${LN} ${PREFIX}/lib/libnss_pgsql.so.2 ${PREFIX}/lib/nss_pgsql.so.1
 X
 X.include <bsd.port.mk>
 11a997cc07f18b86271f02b244bc060d
 echo x - libnss-pgsql/distinfo
 sed 's/^X//' >libnss-pgsql/distinfo << '394b14bef0d8a841bf6abda7ac83ea56'
 XSHA256 (libnss-pgsql-1.5.0-beta.tar.gz) = 84808c47fd21a09e2c487a0efc72cc18b352275082335be8c6de39d325e6c000
 XSIZE (libnss-pgsql-1.5.0-beta.tar.gz) = 305543
 394b14bef0d8a841bf6abda7ac83ea56
 echo x - libnss-pgsql/pkg-descr
 sed 's/^X//' >libnss-pgsql/pkg-descr << '8abaaed3ac781e358ba0af8fa990d1b6'
 XlibNSS-PostgreSQL allows you to authenticate UNIX groups and users
 Xusing a PostgreSQL database. It uses the NSS API which provides an
 Xabstraction layer between the UNIX authentication API and the related
 Xdata. NSS-PostgreSQL currently supports the passwd and groups services.
 X
 XNote that on FreeBSD the order in /etc/nssswitch must be:
 X
 X  group: pgsql files
 X  passwd: pgsql files
 X
 XSo pgsql must be first, files last.
 X
 XWWW: http://pgfoundry.org/projects/sysauth/
 8abaaed3ac781e358ba0af8fa990d1b6
 echo x - libnss-pgsql/pkg-plist
 sed 's/^X//' >libnss-pgsql/pkg-plist << '1e51cc1ba5abdaff5929bd79ca921ae7'
 Xetc/nss-pgsql.conf.dist
 Xetc/nss-pgsql-root.conf.dist
 Xlib/libnss_pgsql.a
 Xlib/libnss_pgsql.la
 Xlib/libnss_pgsql.so
 Xlib/libnss_pgsql.so.2
 Xlib/nss_pgsql.so.1
 1e51cc1ba5abdaff5929bd79ca921ae7
 exit
 
 
 --------------040902070105040001070805--


More information about the freebsd-ports-bugs mailing list