Author: randy
Date: 2005-10-27 12:35:01 -0600 (Thu, 27 Oct 2005)
New Revision: 1216
Added:
trunk/nss_db/nss_db-2.2-update-2.patch
Removed:
trunk/nss_db/nss_db-2.2-update-1.patch
Log:
Updated nss_db patch
Deleted: trunk/nss_db/nss_db-2.2-update-1.patch
===================================================================
--- trunk/nss_db/nss_db-2.2-update-1.patch 2005-10-26 17:35:07 UTC (rev
1215)
+++ trunk/nss_db/nss_db-2.2-update-1.patch 2005-10-27 18:35:01 UTC (rev
1216)
@@ -1,280 +0,0 @@
-Patch Name: nss_db-2.2-update-1.patch
-Submitted By: Randy McMurchy <LFS-User_at_mcmurchy_dot_com>
-Date: 2004-05-15
-Initial Package Version: 2.2
-Upstream Status: N/A
-Origin: Randy McMurchy
-Description: Fixes building against Glibc-2.3.3
- Updates DB calls to use Berkeley-DB-4.x
- Allows using --localstatedir to point db file location
- Requires running the following auto-tools before
building:
- aclocal
- automake -a
- libtoolize -f
- autoconf
-
-diff -Naur nss_db-2.2-orig/INSTALL nss_db-2.2/INSTALL
---- nss_db-2.2-orig/INSTALL 1999-01-24 20:59:16.000000000 +0000
-+++ nss_db-2.2/INSTALL 2004-05-17 01:15:41.000000000 +0000
-@@ -1,6 +1,39 @@
- Basic Installation
- ==================
-
-+####################################################################
-+Modifications made by Randy McMurchy <LFS-User_at_mcmurchy_dot_com>:
-+
-+--localstatedir is used to create the database files (passwd.db,
-+group.db, etc.) in a desired location. The recommended location is
-+/var/lib/nss_db. If --localstatedir is not passed to the configure
-+command, then the default of /var/db is used.
-+
-+A Makefile will be installed in the --localstatedir directory. To
-+create the db files, issue the following command:
-+
-+make -f /localstatedir_path/Makefile
-+
-+Examples:
-+
-+make -f /var/lib/nss_db/Makefile
-+make -f /var/db/Makefile
-+
-+Update the db files at any time using the same command.
-+
-+The autotools included in the package are quite dated, and the package
-+won't build as is. Run the following commands to update the autotools:
-+
-+ aclocal
-+ automake -a
-+ libtoolize -f
-+ autoconf
-+
-+You may safely disregard any warnings producted by the above commands.
-+
-+End modification Note
-+####################################################################
-+
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-
-diff -Naur nss_db-2.2-orig/rellns-sh nss_db-2.2/rellns-sh
---- nss_db-2.2-orig/rellns-sh 1999-12-18 23:40:25.000000000 +0000
-+++ nss_db-2.2/rellns-sh 2004-05-16 18:39:42.000000000 +0000
-@@ -71,4 +71,4 @@
- from=`echo $from | sed 's%^[^/]*/*%%'`
- done
-
--ln -s $rfrom$to $2
-+ln -sf $rfrom$to $2
-
-diff -Naur nss_db-2.2-orig/configure.in nss_db-2.2/configure.in
---- nss_db-2.2-orig/configure.in 2000-11-10 00:56:04.000000000 +0000
-+++ nss_db-2.2/configure.in 2004-05-16 22:58:46.000000000 +0000
-@@ -94,6 +94,14 @@
- slibdir='${libdir}'
- fi
-
-+echo '#define _PATH_VARDB "DBDIR"' >dbdir.h
-+
-+if test "$localstatedir" = '${prefix}/var'; then
-+ sed -i -e "[EMAIL PROTECTED]@/var/db/@" dbdir.h
-+else
-+ sed -i -e "[EMAIL PROTECTED]@${localstatedir}/@" dbdir.h
-+fi
-+
- AC_SUBST(DB_CFLAGS)
- AC_SUBST(DB_LIBS)
- AC_SUBST(slibdir)
-
-diff -Naur nss_db-2.2-orig/Makefile.am nss_db-2.2/Makefile.am
---- nss_db-2.2-orig/Makefile.am 2000-08-15 14:18:16.000000000 +0000
-+++ nss_db-2.2/Makefile.am 2004-05-17 00:44:12.000000000 +0000
-@@ -14,7 +14,7 @@
-
- noinst_HEADERS = db-compat.h netgroup.h nss_db.h
-
--INCLUDES = @DB_CFLAGS@ -D_LIBC -D_GNU_SOURCE
-+INCLUDES = @DB_CFLAGS@ -D_GNU_SOURCE
-
- slib_LTLIBRARIES = libnss_db.la
- libnss_db_la_SOURCES = db-alias.c db-ethers.c db-netgrp.c db-grp.c db-proto.c
\
-@@ -30,18 +30,32 @@
- makedb_SOURCES = makedb.c db-compat.c
- makedb_LDADD = @DB_LIBS@
-
-+
- # To mimmick the old glibc installation as closely as possible, we
- # shuffle the installed library and the links to it around a bit,
- # removing all traces from libtool in the process.
- install-data-local:
- $(mkinstalldirs) $(DESTDIR)$(libdir)
-- rm $(DESTDIR)$(slibdir)/libnss_db.la
-- rm $(DESTDIR)$(slibdir)/libnss_db.so
-- mv $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE).0.0 \
-- $(DESTDIR)$(slibdir)/libnss_db-$(VERSION).so
-- rm $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE)
-+ if test -f $(DESTDIR)$(slibdir)/libnss_db.la; then \
-+ rm $(DESTDIR)$(slibdir)/libnss_db.la; fi
-+ if test -f $(DESTDIR)$(slibdir)/libnss_db.so; then \
-+ rm $(DESTDIR)$(slibdir)/libnss_db.so; fi
-+ if test -f $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE).0.0; then \
-+ mv $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE).0.0 \
-+ $(DESTDIR)$(slibdir)/libnss_db-$(VERSION).so; fi
-+ if test -f $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE); then \
-+ rm $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE); fi
- $(srcdir)/rellns-sh $(DESTDIR)$(slibdir)/libnss_db-$(VERSION).so \
- $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE)
-- rm -f $(DESTDIR)$(libdir)/libnss_db.so
-+ if test -f $(DESTDIR)$(libdir)/libnss_db.so; then \
-+ rm -f $(DESTDIR)$(libdir)/libnss_db.so; fi
- $(srcdir)/rellns-sh $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE) \
- $(DESTDIR)$(libdir)/libnss_db.so
-+ cp db-Makefile db-Makefile.orig
-+ if test "$(localstatedir)" = '$(prefix)/var'; then \
-+ install -m 644 -D db-Makefile /var/db/Makefile; \
-+ else \
-+ sed -i -e "s@/var/[EMAIL PROTECTED](localstatedir)@"
db-Makefile; \
-+ install -m 644 -D db-Makefile $(localstatedir)/Makefile; fi
-+ cp db-Makefile.orig db-Makefile
-+
-
-diff -Naur nss_db-2.2-orig/db-compat.c nss_db-2.2/db-compat.c
---- nss_db-2.2-orig/db-compat.c 2000-08-09 13:29:06.000000000 +0000
-+++ nss_db-2.2/db-compat.c 2004-05-16 18:12:02.000000000 +0000
-@@ -39,7 +39,11 @@
- if (err)
- return err;
-
-+#if (DB_VERSION_MAJOR > 4) || ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR
>= 1))
-+ err = db->open (db, NULL, file, NULL, type, flags, mode);
-+#else
- err = db->open (db, file, NULL, type, flags, mode);
-+#endif
- if (err)
- {
- db->close (db, 0);
-
-diff -Naur nss_db-2.2-orig/db-XXX.c nss_db-2.2/db-XXX.c
---- nss_db-2.2-orig/db-XXX.c 2000-08-09 13:46:39.000000000 +0000
-+++ nss_db-2.2/db-XXX.c 2004-05-16 21:49:34.000000000 +0000
-@@ -24,7 +24,7 @@
- #include <stdio.h>
- #include <string.h>
-
--#include <bits/libc-lock.h>
-+#include "libc-lock.h"
-
- #include "nss_db.h"
-
-@@ -40,6 +40,10 @@
- #define ENTNAME_r CONCAT(ENTNAME,_r)
-
- #include <paths.h>
-+
-+#undef _PATH_VARDB
-+#include "dbdir.h"
-+
- #define DBFILE _PATH_VARDB DATABASE ".db"
-
- #ifdef NEED_H_ERRNO
-
-diff -Naur nss_db-2.2-orig/db-alias.c nss_db-2.2/db-alias.c
---- nss_db-2.2-orig/db-alias.c 2000-08-08 16:47:33.000000000 +0000
-+++ nss_db-2.2/db-alias.c 2004-05-16 21:50:42.000000000 +0000
-@@ -26,10 +26,13 @@
- #include <stdio.h>
- #include <string.h>
-
--#include <bits/libc-lock.h>
-+#include "libc-lock.h"
-
- #include "nss_db.h"
-
-+#undef _PATH_VARDB
-+#include "dbdir.h"
-+
- /* Locks the static variables in this file. */
- __libc_lock_define_initialized (static, lock)
-
-
-diff -Naur nss_db-2.2-orig/db-netgrp.c nss_db-2.2/db-netgrp.c
---- nss_db-2.2-orig/db-netgrp.c 2000-08-08 17:05:01.000000000 +0000
-+++ nss_db-2.2/db-netgrp.c 2004-05-16 21:51:22.000000000 +0000
-@@ -22,11 +22,13 @@
- #include <fcntl.h>
- #include <netgroup.h>
- #include <string.h>
--#include <bits/libc-lock.h>
-+#include "libc-lock.h"
- #include <paths.h>
-
- #include "nss_db.h"
-
-+#undef _PATH_VARDB
-+#include "dbdir.h"
-
- #define DBFILE _PATH_VARDB "netgroup.db"
-
-diff -Naur nss_db-2.2-orig/db-open.c nss_db-2.2/db-open.c
---- nss_db-2.2-orig/db-open.c 2000-08-09 13:54:14.000000000 +0000
-+++ nss_db-2.2/db-open.c 2004-05-17 03:32:59.000000000 +0000
-@@ -26,6 +26,10 @@
-
- #include "nss_db.h"
-
-+#ifndef __set_errno
-+#define __set_errno(x) errno = x
-+#endif
-+
- /* Set the `FD_CLOEXEC' flag of FD. Return 0 on success, or -1 on
- error with `errno' set. */
- static int
-
-diff -Naur /dev/null nss_db-2.2/libc-lock.h
---- /dev/null 2004-03-14 09:49:25.000000000 +0000
-+++ nss_db-2.2/libc-lock.h 2004-05-17 01:33:41.000000000 +0000
-@@ -0,0 +1,44 @@
-+/* libc-internal interface for mutex locks. LinuxThreads version.
-+ Adapted for nss_db.
-+ Copyright (C) 1996,1997,1998,1999,2000,2001,2002
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public License as
-+ published by the Free Software Foundation; either version 2.1 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA. */
-+
-+#ifndef LIBC_LOCK_H
-+#define LIBC_LOCK_H
-+
-+#include <pthread.h>
-+
-+typedef pthread_mutex_t __libc_lock_t;
-+
-+#if __LT_SPINLOCK_INIT == 0
-+# define __libc_lock_define_initialized(CLASS,NAME) \
-+ CLASS pthread_mutex_t NAME;
-+#else
-+# define __libc_lock_define_initialized(CLASS,NAME) \
-+ CLASS pthread_mutex_t NAME = PTHREAD_MUTEX_INITIALIZER;
-+#endif
-+
-+/* Lock the named lock variable. */
-+#define __libc_lock_lock(NAME) pthread_mutex_lock (&(NAME));
-+
-+/* Unlock the named lock variable. */
-+#define __libc_lock_unlock(NAME) pthread_mutex_unlock (&(NAME));
-+
-+#endif
-+
Added: trunk/nss_db/nss_db-2.2-update-2.patch
===================================================================
--- trunk/nss_db/nss_db-2.2-update-2.patch 2005-10-26 17:35:07 UTC (rev
1215)
+++ trunk/nss_db/nss_db-2.2-update-2.patch 2005-10-27 18:35:01 UTC (rev
1216)
@@ -0,0 +1,675 @@
+Patch Name: nss_db-2.2-update-2.patch
+Submitted By: Randy McMurchy <randy_at_linuxfromscratch_dot_org>
+Date: 2005-10-27
+Initial Package Version: 2.2
+Upstream Status: N/A
+Origin: Randy McMurchy and Red Hat Development CVS
+Description: Fixes building against Glibc-2.3.x
+ Updates DB calls to use Berkeley DB-4.x
+ Allows using --localstatedir to point db file location
+ Requires running the following auto-tools before
building:
+ aclocal
+ automake -a
+ libtoolize -f
+ autoconf
+
+
+diff -Naur nss_db-2.2-orig/INSTALL nss_db-2.2/INSTALL
+--- nss_db-2.2-orig/INSTALL 1999-01-24 20:59:16.000000000 +0000
++++ nss_db-2.2/INSTALL 2005-10-27 02:14:45.000000000 +0000
+@@ -1,6 +1,39 @@
+ Basic Installation
+ ==================
+
++####################################################################
++Modifications made by Randy McMurchy <LFS-User_at_mcmurchy_dot_com>:
++
++--localstatedir is used to create the database files (passwd.db,
++group.db, etc.) in a desired location. The recommended location is
++/var/lib/nss_db. If --localstatedir is not passed to the configure
++command, then the default of /var/db is used.
++
++A Makefile will be installed in the --localstatedir directory. To
++create the db files, issue the following command:
++
++make -f /localstatedir_path/Makefile
++
++Examples:
++
++make -f /var/lib/nss_db/Makefile
++make -f /var/db/Makefile
++
++Update the db files at any time using the same command.
++
++The autotools included in the package are quite dated, and the package
++won't build as is. Run the following commands to update the autotools:
++
++ aclocal
++ automake -a
++ libtoolize -f
++ autoconf
++
++You may safely disregard any warnings producted by the above commands.
++
++End modification Note
++####################################################################
++
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+
+diff -Naur nss_db-2.2-orig/Makefile.am nss_db-2.2/Makefile.am
+--- nss_db-2.2-orig/Makefile.am 2000-08-15 14:18:16.000000000 +0000
++++ nss_db-2.2/Makefile.am 2005-10-27 02:14:45.000000000 +0000
+@@ -14,7 +14,7 @@
+
+ noinst_HEADERS = db-compat.h netgroup.h nss_db.h
+
+-INCLUDES = @DB_CFLAGS@ -D_LIBC -D_GNU_SOURCE
++INCLUDES = @DB_CFLAGS@ -D_GNU_SOURCE
+
+ slib_LTLIBRARIES = libnss_db.la
+ libnss_db_la_SOURCES = db-alias.c db-ethers.c db-netgrp.c db-grp.c db-proto.c
\
+@@ -27,21 +27,38 @@
+ libnss_db_la_LIBADD = @DB_LIBS@ -lnss_files
+
+ bin_PROGRAMS = makedb
+-makedb_SOURCES = makedb.c db-compat.c
++makedb_SOURCES = makedb.c db-compat-copy-makedb.c
+ makedb_LDADD = @DB_LIBS@
++db-compat-copy-makedb.c: db-compat.c
++ cp $^ $@
++ chmod -w $@
++
+
+ # To mimmick the old glibc installation as closely as possible, we
+ # shuffle the installed library and the links to it around a bit,
+ # removing all traces from libtool in the process.
+ install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+- rm $(DESTDIR)$(slibdir)/libnss_db.la
+- rm $(DESTDIR)$(slibdir)/libnss_db.so
+- mv $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE).0.0 \
+- $(DESTDIR)$(slibdir)/libnss_db-$(VERSION).so
+- rm $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE)
++ if test -f $(DESTDIR)$(slibdir)/libnss_db.la; then \
++ rm $(DESTDIR)$(slibdir)/libnss_db.la; fi
++ if test -f $(DESTDIR)$(slibdir)/libnss_db.so; then \
++ rm $(DESTDIR)$(slibdir)/libnss_db.so; fi
++ if test -f $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE).0.0; then \
++ mv $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE).0.0 \
++ $(DESTDIR)$(slibdir)/libnss_db-$(VERSION).so; fi
++ if test -f $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE); then \
++ rm $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE); fi
+ $(srcdir)/rellns-sh $(DESTDIR)$(slibdir)/libnss_db-$(VERSION).so \
+ $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE)
+- rm -f $(DESTDIR)$(libdir)/libnss_db.so
++ if test -f $(DESTDIR)$(libdir)/libnss_db.so; then \
++ rm -f $(DESTDIR)$(libdir)/libnss_db.so; fi
+ $(srcdir)/rellns-sh $(DESTDIR)$(slibdir)/libnss_db.so.$(INTERFACE) \
+ $(DESTDIR)$(libdir)/libnss_db.so
++ cp db-Makefile db-Makefile.orig
++ if test "$(localstatedir)" = '$(prefix)/var'; then \
++ install -m 644 -D db-Makefile /var/db/Makefile; \
++ else \
++ sed -i -e "s@/var/[EMAIL PROTECTED](localstatedir)@"
db-Makefile; \
++ install -m 644 -D db-Makefile $(localstatedir)/Makefile; fi
++ cp db-Makefile.orig db-Makefile
++
+
+diff -Naur nss_db-2.2-orig/Makefile.in nss_db-2.2/Makefile.in
+--- nss_db-2.2-orig/Makefile.in 2000-08-15 14:18:26.000000000 +0000
++++ nss_db-2.2/Makefile.in 2005-10-27 02:14:45.000000000 +0000
+@@ -86,7 +86,7 @@
+
+ noinst_HEADERS = db-compat.h netgroup.h nss_db.h
+
+-INCLUDES = @DB_CFLAGS@ -D_LIBC -D_GNU_SOURCE
++INCLUDES = @DB_CFLAGS@ -D_GNU_SOURCE
+
+ slib_LTLIBRARIES = libnss_db.la
+ libnss_db_la_SOURCES = db-alias.c db-ethers.c db-netgrp.c db-grp.c db-proto.c
db-pwd.c db-rpc.c db-service.c db-spwd.c db-compat.c db-open.c
+
+diff -Naur nss_db-2.2-orig/configure.in nss_db-2.2/configure.in
+--- nss_db-2.2-orig/configure.in 2000-11-10 00:56:04.000000000 +0000
++++ nss_db-2.2/configure.in 2005-10-27 02:14:45.000000000 +0000
+@@ -94,6 +94,14 @@
+ slibdir='${libdir}'
+ fi
+
++echo '#define _PATH_VARDB "DBDIR"' >dbdir.h
++
++if test "$localstatedir" = '${prefix}/var'; then
++ sed -i -e "[EMAIL PROTECTED]@/var/db/@" dbdir.h
++else
++ sed -i -e "[EMAIL PROTECTED]@${localstatedir}/@" dbdir.h
++fi
++
+ AC_SUBST(DB_CFLAGS)
+ AC_SUBST(DB_LIBS)
+ AC_SUBST(slibdir)
+
+diff -Naur nss_db-2.2-orig/db-XXX.c nss_db-2.2/db-XXX.c
+--- nss_db-2.2-orig/db-XXX.c 2000-08-09 13:46:39.000000000 +0000
++++ nss_db-2.2/db-XXX.c 2005-10-27 02:15:57.000000000 +0000
+@@ -21,11 +21,10 @@
+ #include <ctype.h>
+ #include <db.h>
+ #include <netdb.h>
++#include <pthread.h>
+ #include <stdio.h>
+ #include <string.h>
+
+-#include <bits/libc-lock.h>
+-
+ #include "nss_db.h"
+
+ /* These symbols are defined by the including source file:
+@@ -40,6 +39,10 @@
+ #define ENTNAME_r CONCAT(ENTNAME,_r)
+
+ #include <paths.h>
++
++#undef _PATH_VARDB
++#include "dbdir.h"
++
+ #define DBFILE _PATH_VARDB DATABASE ".db"
+
+ #ifdef NEED_H_ERRNO
+@@ -53,7 +56,7 @@
+ #endif
+
+ /* Locks the static variables in this file. */
+-__libc_lock_define_initialized (static, lock)
++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+
+ /* Maintenance of the shared handle open on the database. */
+
+@@ -68,7 +71,7 @@
+ {
+ enum nss_status status;
+
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+ status = internal_setent (DBFILE, &db);
+
+@@ -78,7 +81,7 @@
+ /* Reset the sequential index. */
+ entidx = 0;
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return status;
+ }
+@@ -88,14 +91,14 @@
+ enum nss_status
+ CONCAT(_nss_db_end,ENTNAME) (void)
+ {
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+ internal_endent (&db);
+
+ /* Reset STAYOPEN flag. */
+ keep_db = 0;
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return NSS_STATUS_SUCCESS;
+ }
+@@ -103,7 +106,7 @@
+ /* Do a database lookup for KEY. */
+ static enum nss_status
+ lookup (DBT *key, struct STRUCTURE *result,
+- void *buffer, size_t buflen, int *errnop H_ERRNO_PROTO EXTRA_ARGS_DECL)
++ void *buffer, size_t buflen H_ERRNO_PROTO EXTRA_ARGS_DECL)
+ {
+ char *p;
+ enum nss_status status;
+@@ -116,7 +119,6 @@
+ status = internal_setent (DBFILE, &db);
+ if (status != NSS_STATUS_SUCCESS)
+ {
+- *errnop = errno;
+ H_ERRNO_SET (NETDB_INTERNAL);
+ return status;
+ }
+@@ -129,7 +131,7 @@
+ {
+ if (err > 0)
+ {
+- *errnop = err;
++ errno = err;
+ H_ERRNO_SET (NETDB_INTERNAL);
+ status = NSS_STATUS_UNAVAIL;
+ }
+@@ -152,7 +154,7 @@
+ else if (buflen < value.size)
+ {
+ /* No room to copy the data to. */
+- *errnop = ERANGE;
++ errno = ERANGE;
+ H_ERRNO_SET (NETDB_INTERNAL);
+ status = NSS_STATUS_TRYAGAIN;
+ }
+@@ -165,7 +167,7 @@
+ while (isspace (*p))
+ ++p;
+
+- err = parse_line (p, result, buffer, buflen, errnop EXTRA_ARGS);
++ err = parse_line (p, result, buffer, buflen EXTRA_ARGS);
+
+ if (err == 0)
+ {
+@@ -219,18 +221,18 @@
+ enum nss_status
\
+ _nss_db_get##name##_r (proto, \
+ struct STRUCTURE *result, \
+- char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO)\
++ char *buffer, size_t buflen H_ERRNO_PROTO) \
+ { \
+ DBT key; \
+ enum nss_status status; \
+ const size_t size = (keysize) + 1; \
++ memset(&key, 0, sizeof(key));
\
+ key.data = alloca (size); \
+ key.size = KEYPRINTF keypattern; \
+ key.flags = 0; \
+- __libc_lock_lock (lock); \
+- status = lookup (&key, result, buffer, buflen, errnop H_ERRNO_ARG \
+- EXTRA_ARGS_VALUE); \
+- __libc_lock_unlock (lock); \
++ pthread_mutex_lock (&lock);
\
++ status = lookup (&key, result, buffer, buflen H_ERRNO_ARG
EXTRA_ARGS_VALUE);\
++ pthread_mutex_unlock (&lock);
\
+ return status; \
+ }
+
+@@ -242,14 +244,14 @@
+ /* Return the next entry from the database file, doing locking. */
+ enum nss_status
+ CONCAT(_nss_db_get,ENTNAME_r) (struct STRUCTURE *result, char *buffer,
+- size_t buflen, int *errnop H_ERRNO_PROTO)
++ size_t buflen H_ERRNO_PROTO)
+ {
+ /* Return next entry in host file. */
+ enum nss_status status;
+ char buf[20];
+ DBT key;
+
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+ /* Loop until we find a valid entry or hit EOF. See above for the
+ special meaning of the status value. */
+@@ -257,20 +259,19 @@
+ {
+ key.size = snprintf (key.data = buf, sizeof buf, "0%u", entidx++);
+ key.flags = 0;
+- status = lookup (&key, result, buffer, buflen, errnop H_ERRNO_ARG
+- EXTRA_ARGS_VALUE);
++ status = lookup (&key, result, buffer, buflen H_ERRNO_ARG
EXTRA_ARGS_VALUE);
+ if (status == NSS_STATUS_TRYAGAIN
+ #ifdef NEED_H_ERRNO
+ && *herrnop == NETDB_INTERNAL
+ #endif
+- && *errnop == ERANGE)
++ && errno == ERANGE)
+ /* Give the user a chance to get the same entry with a larger
+ buffer. */
+ --entidx;
+ }
+ while (status == NSS_STATUS_RETURN);
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return status;
+ }
+
+diff -Naur nss_db-2.2-orig/db-alias.c nss_db-2.2/db-alias.c
+--- nss_db-2.2-orig/db-alias.c 2000-08-08 16:47:33.000000000 +0000
++++ nss_db-2.2/db-alias.c 2005-10-27 02:14:45.000000000 +0000
+@@ -23,15 +23,17 @@
+ #include <ctype.h>
+ #include <errno.h>
+ #include <paths.h>
++#include <pthread.h>
+ #include <stdio.h>
+ #include <string.h>
+
+-#include <bits/libc-lock.h>
+-
+ #include "nss_db.h"
+
++#undef _PATH_VARDB
++#include "dbdir.h"
++
+ /* Locks the static variables in this file. */
+-__libc_lock_define_initialized (static, lock)
++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+
+ /* Maintenance of the shared handle open on the database. */
+
+@@ -46,7 +48,7 @@
+ {
+ enum nss_status status;
+
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+ status = internal_setent (_PATH_VARDB "aliases.db", &db);
+
+@@ -57,7 +59,7 @@
+ /* Reset the sequential index. */
+ entidx = 0;
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return status;
+ }
+@@ -67,14 +69,14 @@
+ enum nss_status
+ _nss_db_endaliasent (void)
+ {
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+ internal_endent (&db);
+
+ /* Reset STAYOPEN flag. */
+ keep_db = 0;
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return NSS_STATUS_SUCCESS;
+ }
+@@ -85,7 +87,7 @@
+ the result. */
+ static enum nss_status
+ lookup (DBT *key, struct aliasent *result, char *buffer,
+- size_t buflen, int *errnop)
++ size_t buflen)
+ {
+ enum nss_status status;
+ DBT value;
+@@ -95,10 +97,7 @@
+ {
+ status = internal_setent (_PATH_VARDB "aliases.db", &db);
+ if (status != NSS_STATUS_SUCCESS)
+- {
+- *errnop = errno;
+- return status;
+- }
++ return status;
+ }
+
+ value.flags = 0;
+@@ -114,7 +113,7 @@
+ if (buflen < key->size + 1)
+ {
+ no_more_room:
+- *errnop = ERANGE;
++ __set_errno(ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+
+@@ -172,22 +171,18 @@
+ }
+
+ enum nss_status
+-_nss_db_getaliasent_r (struct aliasent *result, char *buffer, size_t buflen,
+- int *errnop)
++_nss_db_getaliasent_r (struct aliasent *result, char *buffer, size_t buflen)
+ {
+ /* Return next entry in alias file. */
+ enum nss_status status;
+ char buf[20];
+ DBT key;
+
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+ key.size = snprintf (key.data = buf, sizeof buf, "0%u", entidx++);
+ key.flags = 0;
+- status = lookup (&key, result, buffer, buflen, errnop);
+- if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE)
+- /* Give the user a chance to get the same entry with a larger buffer. */
+- --entidx;
+- __libc_lock_unlock (lock);
++ status = lookup (&key, result, buffer, buflen);
++ pthread_mutex_unlock (&lock);
+
+ return status;
+ }
+@@ -195,7 +190,7 @@
+
+ enum nss_status
+ _nss_db_getaliasbyname_r (const char *name, struct aliasent *result,
+- char *buffer, size_t buflen, int *errnop)
++ char *buffer, size_t buflen)
+ {
+ DBT key;
+ enum nss_status status;
+@@ -207,9 +202,9 @@
+ memcpy (&((char *) key.data)[1], name, key.size - 1);
+ key.flags = 0;
+
+- __libc_lock_lock (lock);
+- status = lookup (&key, result, buffer, buflen, errnop);
+- __libc_lock_unlock (lock);
++ pthread_mutex_lock (&lock);
++ status = lookup (&key, result, buffer, buflen);
++ pthread_mutex_unlock (&lock);
+
+ return status;
+ }
+
+diff -Naur nss_db-2.2-orig/db-compat.c nss_db-2.2/db-compat.c
+--- nss_db-2.2-orig/db-compat.c 2000-08-09 13:29:06.000000000 +0000
++++ nss_db-2.2/db-compat.c 2005-10-27 02:14:45.000000000 +0000
+@@ -39,7 +39,11 @@
+ if (err)
+ return err;
+
++#if (DB_VERSION_MAJOR > 4) || ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR
>= 1))
++ err = db->open (db, NULL, file, NULL, type, flags, mode);
++#else
+ err = db->open (db, file, NULL, type, flags, mode);
++#endif
+ if (err)
+ {
+ db->close (db, 0);
+
+diff -Naur nss_db-2.2-orig/db-netgrp.c nss_db-2.2/db-netgrp.c
+--- nss_db-2.2-orig/db-netgrp.c 2000-08-08 17:05:01.000000000 +0000
++++ nss_db-2.2/db-netgrp.c 2005-10-27 02:16:18.000000000 +0000
+@@ -21,18 +21,20 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <netgroup.h>
++#include <pthread.h>
+ #include <string.h>
+-#include <bits/libc-lock.h>
+ #include <paths.h>
+
+ #include "nss_db.h"
+
++#undef _PATH_VARDB
++#include "dbdir.h"
+
+ #define DBFILE _PATH_VARDB "netgroup.db"
+
+
+ /* Locks the static variables in this file. */
+-__libc_lock_define_initialized (static, lock)
++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+
+ /* Maintenance of the shared handle open on the database. */
+ static DB *db;
+@@ -44,7 +46,7 @@
+ {
+ enum nss_status status;
+
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+ status = internal_setent (DBFILE, &db);
+
+@@ -60,7 +62,7 @@
+ cursor = entry = value.data;
+ }
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return status;
+
+@@ -70,11 +72,11 @@
+ enum nss_status
+ _nss_db_endnetgrent (void)
+ {
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+ internal_endent (&db);
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return NSS_STATUS_SUCCESS;
+ }
+@@ -82,20 +84,18 @@
+
+ extern enum nss_status _nss_netgroup_parseline (char **cursor,
+ struct __netgrent *result,
+- char *buffer, size_t buflen,
+- int *errnop);
++ char *buffer, size_t buflen);
+
+ enum nss_status
+-_nss_db_getnetgrent_r (struct __netgrent *result, char *buffer, size_t buflen,
+- int *errnop)
++_nss_db_getnetgrent_r (struct __netgrent *result, char *buffer, size_t buflen)
+ {
+ int status;
+
+- __libc_lock_lock (lock);
++ pthread_mutex_lock (&lock);
+
+- status = _nss_netgroup_parseline (&cursor, result, buffer, buflen, errnop);
++ status = _nss_netgroup_parseline (&cursor, result, buffer, buflen);
+
+- __libc_lock_unlock (lock);
++ pthread_mutex_unlock (&lock);
+
+ return status;
+ }
+
+diff -Naur nss_db-2.2-orig/db-open.c nss_db-2.2/db-open.c
+--- nss_db-2.2-orig/db-open.c 2000-08-09 13:54:14.000000000 +0000
++++ nss_db-2.2/db-open.c 2005-10-27 02:14:45.000000000 +0000
+@@ -26,6 +26,10 @@
+
+ #include "nss_db.h"
+
++#ifndef __set_errno
++#define __set_errno(x) errno = x
++#endif
++
+ /* Set the `FD_CLOEXEC' flag of FD. Return 0 on success, or -1 on
+ error with `errno' set. */
+ static int
+@@ -58,7 +62,7 @@
+ if (err != 0)
+ {
+ if (err > 0)
+- __set_errno (err);
++ errno = err;
+ return NSS_STATUS_UNAVAIL;
+ }
+
+@@ -75,7 +79,7 @@
+ fail:
+ db->close (db, 0);
+ if (err > 0)
+- __set_errno (err);
++ errno = err;
+ return NSS_STATUS_UNAVAIL;
+ }
+
+
+diff -Naur nss_db-2.2-orig/files-parse.c nss_db-2.2/files-parse.c
+--- nss_db-2.2-orig/files-parse.c 2000-07-23 20:44:22.000000000 +0000
++++ nss_db-2.2/files-parse.c 2005-10-27 02:14:45.000000000 +0000
+@@ -79,7 +79,7 @@
+
+ /* The parser is defined in a different module. */
+ extern int parse_line (char *line, struct STRUCTURE *result,
+- struct parser_data *data, size_t datalen, int *errnop
++ struct parser_data *data, size_t datalen
+ EXTRA_ARGS_DECL);
+
+ # define LINE_PARSER(EOLSET, BODY) /* Do nothing */
+@@ -91,7 +91,7 @@
+ # define LINE_PARSER(EOLSET, BODY) \
+ parser_stclass int \
+ parse_line (char *line, struct STRUCTURE *result, \
+- struct parser_data *data, size_t datalen, int *errnop \
++ struct parser_data *data, size_t datalen \
+ EXTRA_ARGS_DECL) \
+ { \
+ ENTDATA_DECL (data) \
+@@ -160,7 +160,7 @@
+
+ # define TRAILING_LIST_PARSER
\
+ { \
+- char **list = parse_list (line, data, datalen, errnop); \
++ char **list = parse_list (line, data, datalen); \
+ if (list) \
+ result->TRAILING_LIST_MEMBER = list; \
+ else
\
+@@ -168,7 +168,7 @@
+ }
+
+ static inline char **
+-parse_list (char *line, struct parser_data *data, size_t datalen, int *errnop)
++parse_list (char *line, struct parser_data *data, size_t datalen)
+ {
+ char *eol, **list, **p;
+
+@@ -195,7 +195,7 @@
+ if ((size_t) ((char *) &p[1] - (char *) data) > datalen)
+ {
+ /* We cannot fit another pointer in the buffer. */
+- *errnop = ERANGE;
++ __set_errno(ERANGE);
+ return NULL;
+ }
+ if (*line == '\0')
+
+diff -Naur nss_db-2.2-orig/netgroup.h nss_db-2.2/netgroup.h
+--- nss_db-2.2-orig/netgroup.h 1997-12-08 02:33:09.000000000 +0000
++++ nss_db-2.2/netgroup.h 2005-10-27 02:14:45.000000000 +0000
+@@ -65,6 +65,6 @@
+ extern void __internal_endnetgrent (struct __netgrent *datap);
+ extern int __internal_getnetgrent_r (char **hostp, char **userp,
+ char **domainp, struct __netgrent *datap,
+- char *buffer, size_t buflen, int *errnop);
++ char *buffer, size_t buflen);
+
+ #endif /* netgroup.h */
+
+diff -Naur nss_db-2.2-orig/rellns-sh nss_db-2.2/rellns-sh
+--- nss_db-2.2-orig/rellns-sh 1999-12-18 23:40:25.000000000 +0000
++++ nss_db-2.2/rellns-sh 2005-10-27 02:14:45.000000000 +0000
+@@ -71,4 +71,4 @@
+ from=`echo $from | sed 's%^[^/]*/*%%'`
+ done
+
+-ln -s $rfrom$to $2
++ln -sf $rfrom$to $2
--
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page