- update to 4.5.11, see changelog [1]

- add upstream bug-fix that preventing some segfaults [2]

while here:
- trim Makefile header
- remove indefinite article from COMMENT
- convert to optionsng (NLS case)

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

PR:		175812
Submitted by:	Klaus Aehlig <aehlig@linta.de> (maintainer)
This commit is contained in:
Ruslan Makhmatkhanov 2013-02-17 05:33:16 +00:00
parent f1ca6e4a16
commit 284e2d97a1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=312401
4 changed files with 167 additions and 17 deletions

View File

@ -1,13 +1,8 @@
# New ports collection makefile for: findutils
# Date created: 29 March 2000
# Whom: Robert Withrow <witr@rwwa.com>
#
# Created by: Robert Withrow <witr@rwwa.com>
# $FreeBSD$
#
PORTNAME= findutils
PORTVERSION= 4.5.10
PORTREVISION= 2
PORTVERSION= 4.5.11
CATEGORIES= misc
MASTER_SITES= ${MASTER_SITE_GNU_ALPHA}
MASTER_SITE_SUBDIR= findutils
@ -15,7 +10,7 @@ DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DISTNAME}${EXTRACT_SUFX}.sig
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= aehlig@linta.de
COMMENT= The GNU find utilities
COMMENT= GNU find utilities
SIG_FILES= ${DISTNAME}${EXTRACT_SUFX}.sig
GNU_CONFIGURE= yes
@ -24,7 +19,9 @@ LDFLAGS+= -L${LOCALBASE}/lib
USE_GMAKE= yes
.if !defined(WITHOUT_NLS)
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MNLS}
USE_GETTEXT= yes
PLIST_SUB+= NLS=""
.else
@ -37,7 +34,7 @@ MAKE_ARGS= INSTALL_SCRIPT="${INSTALL_SCRIPT}"
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

View File

@ -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

View File

@ -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 *

View File

@ -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)