patches/glibc/ports-2.13/300-nscd-one-fork.patch
author Esben Haabendal <esben.haabendal@prevas.dk>
Fri Oct 07 15:06:44 2011 +0200 (2011-10-07)
changeset 2721 7b64746b0ab3
permissions -rw-r--r--
scripts/functions: Fix CT_ExtractGit function.

Change CT_ExtractGit so that it clones the repository, instead of just
symlinking it. After cloning, any given ref is checked out, or if no
ref is given, the HEAD of the repository is checked out.

This makes CT_Extract behave similar for git repositories as it does
for tarballs, so that it for example can be used for passing glibc-ports
as a git repository.

Signed-off-by: "Esben Haabendal" <esben.haabendal@prevas.dk>
[yann.morin.1998@anciens.enib.fr: fix incomplete var rename]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@2438
     1
only fork one to assist in stop-start-daemon assumptions about daemon behavior
yann@2438
     2
yann@2438
     3
http://bugs.gentoo.org/190785
yann@2438
     4
yann@2438
     5
diff -durN glibc-2.13.orig/nscd/nscd.c glibc-2.13/nscd/nscd.c
yann@2438
     6
--- glibc-2.13.orig/nscd/nscd.c	2009-02-06 21:10:27.000000000 +0100
yann@2438
     7
+++ glibc-2.13/nscd/nscd.c	2009-11-13 00:50:24.000000000 +0100
yann@2438
     8
@@ -182,6 +182,9 @@
yann@2438
     9
       if (pid != 0)
yann@2438
    10
 	exit (0);
yann@2438
    11
 
yann@2438
    12
+       if (write_pid (_PATH_NSCDPID) < 0)
yann@2438
    13
+	dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
yann@2438
    14
+
yann@2438
    15
       int nullfd = open (_PATH_DEVNULL, O_RDWR);
yann@2438
    16
       if (nullfd != -1)
yann@2438
    17
 	{
yann@2438
    18
@@ -231,12 +234,6 @@
yann@2438
    19
 	for (i = min_close_fd; i < getdtablesize (); i++)
yann@2438
    20
 	  close (i);
yann@2438
    21
 
yann@2438
    22
-      pid = fork ();
yann@2438
    23
-      if (pid == -1)
yann@2438
    24
-	error (EXIT_FAILURE, errno, _("cannot fork"));
yann@2438
    25
-      if (pid != 0)
yann@2438
    26
-	exit (0);
yann@2438
    27
-
yann@2438
    28
       setsid ();
yann@2438
    29
 
yann@2438
    30
       if (chdir ("/") != 0)
yann@2438
    31
@@ -245,9 +242,6 @@
yann@2438
    32
 
yann@2438
    33
       openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON);
yann@2438
    34
 
yann@2438
    35
-      if (write_pid (_PATH_NSCDPID) < 0)
yann@2438
    36
-	dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
yann@2438
    37
-
yann@2438
    38
       if (!init_logfile ())
yann@2438
    39
 	dbg_log (_("Could not create log file"));
yann@2438
    40