svn commit: r538386 - in head/devel/gmake: . files
Tijl Coosemans
tijl at FreeBSD.org
Wed Jun 10 10:54:25 UTC 2020
Author: tijl
Date: Wed Jun 10 10:54:24 2020
New Revision: 538386
URL: https://svnweb.freebsd.org/changeset/ports/538386
Log:
Fix broken patch (missing @) by using the upstream version now that it's
available.
PR: 246615
Reported by: jkim
Obtained from: https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commit;h=6e6abd0cdfe4bb96f6412aebc511f10bf254a820
Added:
head/devel/gmake/files/patch-10-6e6abd0c
- copied, changed from r538385, head/devel/gmake/files/patch-10-4c1009ec
Deleted:
head/devel/gmake/files/patch-10-4c1009ec
Modified:
head/devel/gmake/Makefile
Modified: head/devel/gmake/Makefile
==============================================================================
--- head/devel/gmake/Makefile Wed Jun 10 10:37:48 2020 (r538385)
+++ head/devel/gmake/Makefile Wed Jun 10 10:54:24 2020 (r538386)
@@ -3,7 +3,7 @@
PORTNAME= gmake
PORTVERSION= 4.3
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= devel
MASTER_SITES= GNU/make
DISTNAME= make-${PORTVERSION}
Copied and modified: head/devel/gmake/files/patch-10-6e6abd0c (from r538385, head/devel/gmake/files/patch-10-4c1009ec)
==============================================================================
--- head/devel/gmake/files/patch-10-4c1009ec Wed Jun 10 10:37:48 2020 (r538385, copy source)
+++ head/devel/gmake/files/patch-10-6e6abd0c Wed Jun 10 10:54:24 2020 (r538386)
@@ -1,8 +1,22 @@
-Backport of gnulib git commit 4c1009ec93e12ee34acd27f6d7e25442bedc16f2.
+From: Bruno Haible <bruno at clisp.org>
+Date: Sat, 23 May 2020 10:19:34 +0000 (+0200)
+Subject: findprog-in: Ignore directories.
+X-Git-Url: https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff_plain;h=6e6abd0cdfe4bb96f6412aebc511f10bf254a820
-When the file found in a PATH element is a directory, continue searching.
+findprog-in: Ignore directories.
---- lib/findprog-in.c.orig 2020-01-19 20:34:01 UTC
+Reported by Frederick Eaton via Dmitry Goncharov in
+<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00003.html>.
+
+* lib/findprog-in.c (find_in_given_path): When the file found is a
+directory, set errno to EACCES and, during a PATH search, continue
+searching.
+* modules/findprog-in (Depends-on): Add sys_stat, stat.
+---
+
+diff --git a/lib/findprog-in.c b/lib/findprog-in.c
+index c254f2f..0f76e36 100644
+--- lib/findprog-in.c
+++ lib/findprog-in.c
@@ -26,6 +26,7 @@
#include <stdlib.h>
@@ -12,21 +26,102 @@ When the file found in a PATH element is a directory,
#include "filename.h"
#include "concat-filename.h"
-@@ -190,6 +191,7 @@ find_in_given_path (const char *progname, const char *
- dir = ".";
+@@ -58,8 +59,8 @@ static const char * const suffixes[] =
+ /* Note: The cmd.exe program does a different lookup: It searches according
+ to the PATHEXT environment variable.
+ See <https://stackoverflow.com/questions/7839150/>.
+- Also, it executes files ending .bat and .cmd directly without letting the
+- kernel interpret the program file. */
++ Also, it executes files ending in .bat and .cmd directly without letting
++ the kernel interpret the program file. */
+ #elif defined __CYGWIN__
+ "", ".exe", ".com"
+ #elif defined __EMX__
+@@ -136,14 +137,26 @@ find_in_given_path (const char *progname, const char *path,
+ call access() despite its design flaw. */
+ if (eaccess (progpathname, X_OK) == 0)
+ {
+- /* Found! */
+- if (strcmp (progpathname, progname) == 0)
++ /* Check that the progpathname does not point to a
++ directory. */
++ struct stat statbuf;
++
++ if (stat (progpathname, &statbuf) >= 0)
+ {
+- free (progpathname);
+- return progname;
++ if (! S_ISDIR (statbuf.st_mode))
++ {
++ /* Found! */
++ if (strcmp (progpathname, progname) == 0)
++ {
++ free (progpathname);
++ return progname;
++ }
++ else
++ return progpathname;
++ }
++
++ errno = EACCES;
+ }
+- else
+- return progpathname;
+ }
- /* Try all platform-dependent suffixes. */
-+ struct stat st;
- for (i = 0; i < sizeof (suffixes) / sizeof (suffixes[0]); i++)
- {
- const char *suffix = suffixes[i];
-@ -208,7 +210,8 @@ find_in_given_path (const char *progname, const char *
- use it. On other systems, let's hope that this program
- is not installed setuid or setgid, so that it is ok to
+ if (errno != ENOENT)
+@@ -210,25 +223,37 @@ find_in_given_path (const char *progname, const char *path,
call access() despite its design flaw. */
-- if (eaccess (progpathname, X_OK) == 0)
-+ if (eaccess (progpathname, X_OK) == 0 &&
-+ stat(progpathname, &st) == 0 && ! S_ISDIR(st.st_mode))
+ if (eaccess (progpathname, X_OK) == 0)
{
- /* Found! */
- if (strcmp (progpathname, progname) == 0)
+- /* Found! */
+- if (strcmp (progpathname, progname) == 0)
++ /* Check that the progpathname does not point to a
++ directory. */
++ struct stat statbuf;
++
++ if (stat (progpathname, &statbuf) >= 0)
+ {
+- free (progpathname);
+-
+- /* Add the "./" prefix for real, that
+- xconcatenated_filename() optimized away. This
+- avoids a second PATH search when the caller uses
+- execl/execv/execlp/execvp. */
+- progpathname =
+- XNMALLOC (2 + strlen (progname) + 1, char);
+- progpathname[0] = '.';
+- progpathname[1] = NATIVE_SLASH;
+- memcpy (progpathname + 2, progname,
+- strlen (progname) + 1);
+- }
++ if (! S_ISDIR (statbuf.st_mode))
++ {
++ /* Found! */
++ if (strcmp (progpathname, progname) == 0)
++ {
++ free (progpathname);
++
++ /* Add the "./" prefix for real, that
++ xconcatenated_filename() optimized away.
++ This avoids a second PATH search when the
++ caller uses execl/execv/execlp/execvp. */
++ progpathname =
++ XNMALLOC (2 + strlen (progname) + 1, char);
++ progpathname[0] = '.';
++ progpathname[1] = NATIVE_SLASH;
++ memcpy (progpathname + 2, progname,
++ strlen (progname) + 1);
++ }
++
++ free (path_copy);
++ return progpathname;
++ }
+
+- free (path_copy);
+- return progpathname;
++ errno = EACCES;
++ }
+ }
+
+ if (errno != ENOENT)
More information about the svn-ports-all
mailing list