Skip site navigation (1)Skip section navigation (2)
Date:      Mon,  4 Feb 2013 05:35:28 +0100 (CET)
From:      Klaus Aehlig <aehlig@linta.de>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/175812: [patch] misc/findutils update to 4.5.11
Message-ID:  <20130204043528.11ECC385557@howard.linta.de>
Resent-Message-ID: <201302040450.r144o1sQ053536@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         175812
>Category:       ports
>Synopsis:       [patch] misc/findutils update to 4.5.11
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 04 04:50:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Klaus Aehlig
>Release:        FreeBSD 9.1-STABLE amd64
>Organization:
>Environment:
System: FreeBSD howard.linta.de 9.1-STABLE FreeBSD 9.1-STABLE #8 r245129: Mon Jan 7 20:23:56 CET 2013 root@howard.linta.de:/usr/obj/usr/src/sys/GENERIC amd64

>Description:
	Update to Version 4.5.11 [1] plus fix for Bug #38239 [2]

        [1] http://lists.gnu.org/archive/html/bug-findutils/2013-02/msg00013.html
        [2] http://savannah.gnu.org/bugs/?38239

>How-To-Repeat:
	
>Fix:

	Apply the following patch. The file files/patch-locate__locate.c is
	newly added.

--- findutils.diff begins here ---
diff -ruN findutils.orig/Makefile findutils/Makefile
--- findutils.orig/Makefile	2013-02-04 05:20:12.000000000 +0100
+++ findutils/Makefile	2013-02-04 05:24:02.000000000 +0100
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	findutils
-PORTVERSION=	4.5.10
-PORTREVISION=	2
+PORTVERSION=	4.5.11
 CATEGORIES=	misc
 MASTER_SITES=	${MASTER_SITE_GNU_ALPHA}
 MASTER_SITE_SUBDIR=	findutils
@@ -37,7 +36,7 @@
 MAKE_JOBS_SAFE=	yes
 
 INFO=		find find-maint
-MAN1=		gfind.1 gxargs.1 glocate.1 gupdatedb.1
+MAN1=		gfind.1 gxargs.1 glocate.1 gupdatedb.1 goldfind.1
 MAN5=		glocatedb.5
 
 LOCALSTATEDIR?=	/var/db
diff -ruN findutils.orig/distinfo findutils/distinfo
--- findutils.orig/distinfo	2013-02-04 05:20:12.000000000 +0100
+++ findutils/distinfo	2013-02-04 05:24:02.000000000 +0100
@@ -1,4 +1,4 @@
-SHA256 (findutils-4.5.10.tar.gz) = fe24bbce55ac8f136080e01c03e7ae8b5ab395550625c25860efcbbe0641af76
-SIZE (findutils-4.5.10.tar.gz) = 2745375
-SHA256 (findutils-4.5.10.tar.gz.sig) = 072d3b0dee701cddba58088fc271c09d964410054562d666440f187bef47be8b
-SIZE (findutils-4.5.10.tar.gz.sig) = 152
+SHA256 (findutils-4.5.11.tar.gz) = 75e823592d917f1ac853a35cf46d6deeeb3b984240331ad1723f60da1a725d22
+SIZE (findutils-4.5.11.tar.gz) = 3116431
+SHA256 (findutils-4.5.11.tar.gz.sig) = 4fd79ba6ab6acd7e340ad8878ae82112a503ef1f708fd5ba02cb94fe4a66d27f
+SIZE (findutils-4.5.11.tar.gz.sig) = 152
diff -ruN findutils.orig/files/patch-gnulib-lib-fdopendir.c findutils/files/patch-gnulib-lib-fdopendir.c
--- findutils.orig/files/patch-gnulib-lib-fdopendir.c	2013-02-04 05:20:12.000000000 +0100
+++ findutils/files/patch-gnulib-lib-fdopendir.c	2013-02-04 05:24:02.000000000 +0100
@@ -1,5 +1,5 @@
---- gnulib/lib/fdopendir.c.orig	2011-04-02 15:37:38.000000000 +0000
-+++ gnulib/lib/fdopendir.c	2011-05-30 21:05:02.000000000 +0000
+--- gl/lib/fdopendir.c.orig	2012-12-15 14:42:45.000000000 +0100
++++ gl/lib/fdopendir.c	2013-02-02 17:11:52.000000000 +0100
 @@ -182,9 +182,11 @@
  
  # include <errno.h>
@@ -12,4 +12,3 @@
  /* Like fdopendir, but work around GNU/Hurd bug by validating FD.  */
  
  DIR *
-
diff -ruN findutils.orig/files/patch-locate__locate.c findutils/files/patch-locate__locate.c
--- findutils.orig/files/patch-locate__locate.c	1970-01-01 01:00:00.000000000 +0100
+++ findutils/files/patch-locate__locate.c	2013-02-04 05:24:02.000000000 +0100
@@ -0,0 +1,154 @@
+diff locate/locate.c.orig locate/locate.c
+--- locate/locate.c.orig
++++ locate/locate.c
+@@ -1546,12 +1546,19 @@ opendb (const char *name)
+   return fd;
+ }
+ 
++static void
++cleanup_quote_opts (void)
++{
++  free (quote_opts);
++}
++
++
+ int
+ dolocate (int argc, char **argv, int secure_db_fd)
+ {
+-  char *path_element;
++  char *path_element = NULL;
+   size_t path_element_pos, path_element_len;
+-  const char *locate_path;
++  const char *user_selected_locate_path;
+   const char *db_name;
+   const char *path_separators = ":";
+   unsigned long int found = 0uL;
+@@ -1565,7 +1572,6 @@ dolocate (int argc, char **argv, int secure_db_fd)
+   int stats = 0;
+   int op_and = 0;
+   FILE *fp;
+-  int they_chose_db = 0;
+   bool did_stdin = false;       /* Set to prevent rereading stdin. */
+ 
+   if (argv[0])
+@@ -1580,19 +1586,19 @@ dolocate (int argc, char **argv, int secure_db_fd)
+   textdomain (PACKAGE);
+   atexit (close_stdout);
+ 
++  quote_opts = clone_quoting_options (NULL);
++  atexit (cleanup_quote_opts);
++
+   limits.limit = 0;
+   limits.items_accepted = 0;
+ 
+-  quote_opts = clone_quoting_options (NULL);
+   print_quoted_filename = true;
+ 
+   /* We cannot simultaneously trust $LOCATE_PATH and use the
+    * setuid-access-controlled database,, since that could cause a leak
+    * of private data.
+    */
+-  locate_path = getenv ("LOCATE_PATH");
+-  if (locate_path)
+-    they_chose_db = 1;
++  user_selected_locate_path = getenv ("LOCATE_PATH");
+ 
+   check_existence = ACCEPT_EITHER;
+ 
+@@ -1624,8 +1630,8 @@ dolocate (int argc, char **argv, int secure_db_fd)
+           break;
+ 
+         case 'd':
+-          locate_path = optarg;
+-          they_chose_db = 1;
++          user_selected_locate_path = optarg;
++	  assert (optarg != NULL);
+           break;
+ 
+         case 'e':
+@@ -1715,7 +1721,7 @@ dolocate (int argc, char **argv, int secure_db_fd)
+   /* If the user gave the -d option or set LOCATE_PATH,
+    * relinquish access to the secure database.
+    */
+-  if (they_chose_db)
++  if (user_selected_locate_path)
+     {
+       if (secure_db_fd >= 0)
+         {
+@@ -1741,15 +1747,16 @@ dolocate (int argc, char **argv, int secure_db_fd)
+         }
+     }
+ 
+-
+   if (1 == isatty (STDOUT_FILENO))
+     stdout_is_a_tty = true;
+   else
+     stdout_is_a_tty = false;
+ 
+-  if (they_chose_db)
+-    splitstring (locate_path, path_separators, true,
+-                 &path_element_pos, &path_element_len);
++  if (user_selected_locate_path)
++    {
++      splitstring (user_selected_locate_path, path_separators, true,
++		   &path_element_pos, &path_element_len);
++    }
+ 
+   /* Bail out early if limit already reached. */
+   while (!use_limit || limits.limit > limits.items_accepted)
+@@ -1765,10 +1772,11 @@ dolocate (int argc, char **argv, int secure_db_fd)
+       statistics.newline_count =
+       statistics.highbit_filename_count = 0u;
+ 
+-      if (they_chose_db)
++      if (user_selected_locate_path)
+         {
+           /* Take the next element from the list of databases */
+-          if (1 == path_element_len && '-' == locate_path[path_element_pos])
++          if (1 == path_element_len
++	      && '-' == user_selected_locate_path[path_element_pos])
+             {
+               if (did_stdin)
+                 {
+@@ -1787,13 +1795,13 @@ dolocate (int argc, char **argv, int secure_db_fd)
+             {
+               if (0 == path_element_len
+                   || (1 == path_element_len
+-                      && '.' == locate_path[path_element_pos]))
++                      && '.' == user_selected_locate_path[path_element_pos]))
+                 {
+                   db_name = LOCATE_DB;
+                 }
+               else
+                 {
+-                  path_element = strndup (&locate_path[path_element_pos],
++                  path_element = strndup (&user_selected_locate_path[path_element_pos],
+                                           path_element_len);
+                   db_name = path_element;
+                 }
+@@ -1889,11 +1897,20 @@ dolocate (int argc, char **argv, int secure_db_fd)
+           free (path_element);
+           path_element = NULL;
+         }
+-      if (!splitstring (locate_path, path_separators, false,
+-                        &path_element_pos, &path_element_len))
+-        {
+-          break;
+-        }
++
++       if (!user_selected_locate_path)
++	 {
++	   /* We're not actually iterating through the values in
++	      $LOCATE_PATH so we don't want to check for the next
++	      element in user_selected_locate_path (since we manually set db_name =
++	      LOCATE_DB without using user_selected_locate_path). */
++	   break;
++	 }
++       else if (!splitstring (user_selected_locate_path, path_separators, false,
++			      &path_element_pos, &path_element_len))
++	 {
++	   break;
++	 }
+     }
+ 
+   if (just_count)
--- findutils.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130204043528.11ECC385557>