Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 08 Jul 2017 12:54:34 +0200
From:      Matthew Rezny <rezny@freebsd.org>
To:        Jan Beich <jbeich@freebsd.org>
Cc:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   Re: svn commit: r445076 - in head/x11-servers: xorg-nestserver/files xorg-server xorg-server/files xorg-vfbserver/files xwayland/files
Message-ID:  <1759815.Tk37oZ9O8z@workstation.reztek>
In-Reply-To: <201707051241.v65CfvFD096993@repo.freebsd.org>
References:  <201707051241.v65CfvFD096993@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 05 July 2017 12:41:57 Jan Beich wrote:
> Author: jbeich
> Date: Wed Jul  5 12:41:57 2017
> New Revision: 445076
> URL: https://svnweb.freebsd.org/changeset/ports/445076
> 
> Log:
>   x11-servers/xorg-server: close-on-exec for MIT-SHM (like Linux)
> 
>   This is similar to what x11/libxshmfence already does.
> 
>   MFH:		2017Q3
> 
> Added:
>   head/x11-servers/xorg-nestserver/files/
>   head/x11-servers/xorg-nestserver/files/patch-Xext_shm.c   (contents, props
> changed) head/x11-servers/xorg-nestserver/files/patch-configure  
> (contents, props changed)
> head/x11-servers/xorg-nestserver/files/patch-include_dix-config.h.in  
> (contents, props changed)
> head/x11-servers/xorg-server/files/patch-Xext_shm.c   (contents, props
> changed) head/x11-servers/xorg-server/files/patch-include_dix-config.h.in  
> (contents, props changed) head/x11-servers/xorg-vfbserver/files/
>   head/x11-servers/xorg-vfbserver/files/patch-Xext_shm.c   (contents, props
> changed) head/x11-servers/xorg-vfbserver/files/patch-configure   (contents,
> props changed)
> head/x11-servers/xorg-vfbserver/files/patch-include_dix-config.h.in  
> (contents, props changed) head/x11-servers/xwayland/files/
>   head/x11-servers/xwayland/files/patch-Xext_shm.c   (contents, props
> changed) head/x11-servers/xwayland/files/patch-configure   (contents, props
> changed) head/x11-servers/xwayland/files/patch-include_dix-config.h.in  
> (contents, props changed) Modified:
>   head/x11-servers/xorg-server/Makefile   (contents, props changed)
>   head/x11-servers/xorg-server/files/patch-configure   (contents, props
> changed)
> 
> Added: head/x11-servers/xorg-nestserver/files/patch-Xext_shm.c
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-nestserver/files/patch-Xext_shm.c	Wed Jul  5
> 12:41:57 2017	(r445076) @@ -0,0 +1,14 @@
> +--- Xext/shm.c.orig	2016-07-19 17:14:21 UTC
> ++++ Xext/shm.c
> +@@ -1210,7 +1210,11 @@ shm_tmpfile(void)
> + 	}
> + 	ErrorF ("Not using O_TMPFILE\n");
> + #endif
> ++#ifdef HAVE_MKOSTEMP
> ++	fd = mkostemp(template, O_CLOEXEC);
> ++#else
> + 	fd = mkstemp(template);
> ++#endif
> + 	if (fd < 0)
> + 		return -1;
> + 	unlink(template);
> 
> Added: head/x11-servers/xorg-nestserver/files/patch-configure
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-nestserver/files/patch-configure	Wed Jul  5
> 12:41:57 2017	(r445076) @@ -0,0 +1,10 @@
> +--- configure.orig	2017-01-11 21:16:40 UTC
> ++++ configure
> +@@ -22758,6 +22758,7 @@ fi
> + for ac_func in backtrace ffs geteuid getuid issetugid getresuid \
> + 	getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
> + 	mmap posix_fallocate seteuid shmctl64 strncasecmp vasprintf vsnprintf \
> ++	mkostemp \
> + 	walkcontext setitimer poll epoll_create1
> + do :
> +   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
> 
> Added: head/x11-servers/xorg-nestserver/files/patch-include_dix-config.h.in
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-nestserver/files/patch-include_dix-config.h.in	
Wed
> Jul  5 12:41:57 2017	(r445076) @@ -0,0 +1,12 @@
> +--- include/dix-config.h.in.orig	2016-07-19 17:07:29 UTC
> ++++ include/dix-config.h.in
> +@@ -140,6 +140,9 @@
> + /* Define to 1 if you have the <linux/fb.h> header file. */
> + #undef HAVE_LINUX_FB_H
> +
> ++/* Define to 1 if you have the `mkostemp' function. */
> ++#undef HAVE_MKOSTEMP
> ++
> + /* Define to 1 if you have the `mmap' function. */
> + #undef HAVE_MMAP
> +
> 
> Modified: head/x11-servers/xorg-server/Makefile
> ============================================================================
> == --- head/x11-servers/xorg-server/Makefile	Wed Jul  5 12:41:43
> 2017	(r445075) +++ head/x11-servers/xorg-server/Makefile	Wed Jul  5
> 12:41:57 2017	(r445076) @@ -3,7 +3,7 @@
> 
>  PORTNAME?=	xorg-server
>  PORTVERSION?=	1.18.4
> -PORTREVISION?=	1
> +PORTREVISION?=	2
>  PORTEPOCH?=	1
>  CATEGORIES=	x11-servers
>  MASTER_SITES=	XORG/individual/xserver
> 
> Added: head/x11-servers/xorg-server/files/patch-Xext_shm.c
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-server/files/patch-Xext_shm.c	Wed Jul  5 12:41:57
> 2017	(r445076) @@ -0,0 +1,14 @@
> +--- Xext/shm.c.orig	2016-07-19 17:14:21 UTC
> ++++ Xext/shm.c
> +@@ -1210,7 +1210,11 @@ shm_tmpfile(void)
> + 	}
> + 	ErrorF ("Not using O_TMPFILE\n");
> + #endif
> ++#ifdef HAVE_MKOSTEMP
> ++	fd = mkostemp(template, O_CLOEXEC);
> ++#else
> + 	fd = mkstemp(template);
> ++#endif
> + 	if (fd < 0)
> + 		return -1;
> + 	unlink(template);
> 
> Modified: head/x11-servers/xorg-server/files/patch-configure
> ============================================================================
> == --- head/x11-servers/xorg-server/files/patch-configure	Wed Jul  5
> 12:41:43 2017	(r445075) +++
> head/x11-servers/xorg-server/files/patch-configure	Wed Jul  5 12:41:57
> 2017	(r445076) @@ -1,5 +1,13 @@
>  --- configure.orig	2016-07-19 17:27:31 UTC
>  +++ configure
> +@@ -22742,6 +22742,7 @@ fi
> + for ac_func in backtrace ffs geteuid getuid issetugid getresuid \
> + 	getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
> + 	mmap posix_fallocate seteuid shmctl64 strncasecmp vasprintf vsnprintf \
> ++	mkostemp \
> + 	walkcontext
> + do :
> +   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
>  @@ -23168,9 +23168,14 @@ $as_echo "#define USE_ALPHA_PIO 1" >>con
>   	esac
>   	GLX_ARCH_DEFINES="-D__GLX_ALIGN64 -mieee"
> 
> Added: head/x11-servers/xorg-server/files/patch-include_dix-config.h.in
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-server/files/patch-include_dix-config.h.in	Wed Jul
>  5 12:41:57 2017	(r445076) @@ -0,0 +1,12 @@
> +--- include/dix-config.h.in.orig	2016-07-19 17:07:29 UTC
> ++++ include/dix-config.h.in
> +@@ -140,6 +140,9 @@
> + /* Define to 1 if you have the <linux/fb.h> header file. */
> + #undef HAVE_LINUX_FB_H
> +
> ++/* Define to 1 if you have the `mkostemp' function. */
> ++#undef HAVE_MKOSTEMP
> ++
> + /* Define to 1 if you have the `mmap' function. */
> + #undef HAVE_MMAP
> +
> 
> Added: head/x11-servers/xorg-vfbserver/files/patch-Xext_shm.c
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-vfbserver/files/patch-Xext_shm.c	Wed Jul  5
> 12:41:57 2017	(r445076) @@ -0,0 +1,14 @@
> +--- Xext/shm.c.orig	2016-07-19 17:14:21 UTC
> ++++ Xext/shm.c
> +@@ -1210,7 +1210,11 @@ shm_tmpfile(void)
> + 	}
> + 	ErrorF ("Not using O_TMPFILE\n");
> + #endif
> ++#ifdef HAVE_MKOSTEMP
> ++	fd = mkostemp(template, O_CLOEXEC);
> ++#else
> + 	fd = mkstemp(template);
> ++#endif
> + 	if (fd < 0)
> + 		return -1;
> + 	unlink(template);
> 
> Added: head/x11-servers/xorg-vfbserver/files/patch-configure
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-vfbserver/files/patch-configure	Wed Jul  5
> 12:41:57 2017	(r445076) @@ -0,0 +1,10 @@
> +--- configure.orig	2017-01-11 21:16:40 UTC
> ++++ configure
> +@@ -22758,6 +22758,7 @@ fi
> + for ac_func in backtrace ffs geteuid getuid issetugid getresuid \
> + 	getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
> + 	mmap posix_fallocate seteuid shmctl64 strncasecmp vasprintf vsnprintf \
> ++	mkostemp \
> + 	walkcontext setitimer poll epoll_create1
> + do :
> +   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
> 
> Added: head/x11-servers/xorg-vfbserver/files/patch-include_dix-config.h.in
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xorg-vfbserver/files/patch-include_dix-config.h.in	Wed
> Jul  5 12:41:57 2017	(r445076) @@ -0,0 +1,12 @@
> +--- include/dix-config.h.in.orig	2016-07-19 17:07:29 UTC
> ++++ include/dix-config.h.in
> +@@ -140,6 +140,9 @@
> + /* Define to 1 if you have the <linux/fb.h> header file. */
> + #undef HAVE_LINUX_FB_H
> +
> ++/* Define to 1 if you have the `mkostemp' function. */
> ++#undef HAVE_MKOSTEMP
> ++
> + /* Define to 1 if you have the `mmap' function. */
> + #undef HAVE_MMAP
> +
> 
> Added: head/x11-servers/xwayland/files/patch-Xext_shm.c
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xwayland/files/patch-Xext_shm.c	Wed Jul  5 12:41:57
> 2017	(r445076) @@ -0,0 +1,14 @@
> +--- Xext/shm.c.orig	2016-07-19 17:14:21 UTC
> ++++ Xext/shm.c
> +@@ -1210,7 +1210,11 @@ shm_tmpfile(void)
> + 	}
> + 	ErrorF ("Not using O_TMPFILE\n");
> + #endif
> ++#ifdef HAVE_MKOSTEMP
> ++	fd = mkostemp(template, O_CLOEXEC);
> ++#else
> + 	fd = mkstemp(template);
> ++#endif
> + 	if (fd < 0)
> + 		return -1;
> + 	unlink(template);
> 
> Added: head/x11-servers/xwayland/files/patch-configure
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xwayland/files/patch-configure	Wed Jul  5 12:41:57
> 2017	(r445076) @@ -0,0 +1,10 @@
> +--- configure.orig	2017-01-11 21:16:40 UTC
> ++++ configure
> +@@ -22758,6 +22758,7 @@ fi
> + for ac_func in backtrace ffs geteuid getuid issetugid getresuid \
> + 	getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
> + 	mmap posix_fallocate seteuid shmctl64 strncasecmp vasprintf vsnprintf \
> ++	mkostemp \
> + 	walkcontext setitimer poll epoll_create1
> + do :
> +   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
> 
> Added: head/x11-servers/xwayland/files/patch-include_dix-config.h.in
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/x11-servers/xwayland/files/patch-include_dix-config.h.in	Wed Jul  5
> 12:41:57 2017	(r445076) @@ -0,0 +1,12 @@
> +--- include/dix-config.h.in.orig	2016-07-19 17:07:29 UTC
> ++++ include/dix-config.h.in
> +@@ -140,6 +140,9 @@
> + /* Define to 1 if you have the <linux/fb.h> header file. */
> + #undef HAVE_LINUX_FB_H
> +
> ++/* Define to 1 if you have the `mkostemp' function. */
> ++#undef HAVE_MKOSTEMP
> ++
> + /* Define to 1 if you have the `mmap' function. */
> + #undef HAVE_MMAP
> +

Please revert this unauthorized non-maintainer commit promptly. There was no 
PR or review. Had there been, it would have been pointed out that the patch is 
neither necessary nor correctly implemented in any sense.

excerpt of original code for reference:
        fd = mkstemp(template);
        if (fd < 0)
                return -1;
        unlink(template);
        flags = fcntl(fd, F_GETFD);
        if (flags != -1) {
                flags |= FD_CLOEXEC;
                (void) fcntl(fd, F_SETFD, &flags);
        }
        return fd

Since fcntl is used to add FD_CLOEXEC after the unlink, there is zero 
functional difference between using mkstemp and mkostemp with O_CLOEXEC. 
Therefore, the the patch is entirely unnecessary cruft.

Had the patch been needed, duplicating it into the slaves is not the correct 
approach, nor is altering patch-configure (generated) without bothering to 
update the patch to configure.ac.




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