ports/175812: [patch] misc/findutils update to 4.5.11
Klaus Aehlig
aehlig at linta.de
Mon Feb 4 04:50:01 UTC 2013
>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 at 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:
More information about the freebsd-ports-bugs
mailing list