Subject: bug#25923: closed (Re: bug#25923: pkgsrc patches: improve mkostemp support)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 14 Mar 2017 11:33:02 +0000

Your bug report

#25923: pkgsrc patches: improve mkostemp support

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
25923: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25923
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#25923: pkgsrc patches: improve mkostemp support
From: Andy Wingo <[email-masked]>
To: Thomas Klausner <[email-masked]>
Cc: [email-masked], Greg Troxel <[email-masked]>
Date: Tue, 14 Mar 2017 12:32:02 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On Wed 01 Mar 2017 21:29, Thomas Klausner <[email-masked]> writes:

> --- libguile/filesys.c.orig	2016-12-15 00:03:33.000000000 +0000
> +++ libguile/filesys.c
> @@ -1486,6 +1486,15 @@ SCM_DEFINE (scm_i_mkstemp, "mkstemp!", 1
>        mode_bits = scm_i_mode_bits (mode);
>      }
>  
> +#ifdef __APPLE__
> +  /* https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23 */
> +  open_flags &= O_APPEND|O_SHLOCK|O_EXLOCK|O_CLOEXEC;
> +#endif
> +#ifdef __NetBSD__
> +  /* Restrict to list of flags documented in man page. */
> +  open_flags &= O_APPEND|O_DIRECT|O_SHLOCK|O_EXLOCK|O_SYNC|O_CLOEXEC;
> +#endif
> +
>    SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags));
>    if (rv == -1)
>      SCM_SYSERROR;

I believe this was fixed in 2.1.6 as well so you can drop this one too.

Cheers,

Andy

Subject: pkgsrc patches: improve mkostemp support
From: Thomas Klausner <[email-masked]>
To: [email-masked]
Cc: Greg Troxel <[email-masked]>
Date: Wed, 1 Mar 2017 21:29:26 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

And the final pkgsrc patch tries to use only the flags for mkostemp
that are supported on the operating system, in particular for Darwin
and NetBSD.

Please merge this one as well.

Thanks,
 Thomas
$NetBSD: patch-libguile_filesys.c,v 1.3 2017/02/21 15:55:28 gdt Exp $

When using mkostemp (an interface not defined by POSIX), restrict
flags to the set defined by the documentation of particular operating
systems.

See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23 for discussion.

This patch has not yet been sent upstream.

--- libguile/filesys.c.orig	2016-12-15 00:03:33.000000000 +0000
+++ libguile/filesys.c
@@ -1486,6 +1486,15 @@ SCM_DEFINE (scm_i_mkstemp, "mkstemp!", 1
       mode_bits = scm_i_mode_bits (mode);
     }
 
+#ifdef __APPLE__
+  /* https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23 */
+  open_flags &= O_APPEND|O_SHLOCK|O_EXLOCK|O_CLOEXEC;
+#endif
+#ifdef __NetBSD__
+  /* Restrict to list of flags documented in man page. */
+  open_flags &= O_APPEND|O_DIRECT|O_SHLOCK|O_EXLOCK|O_SYNC|O_CLOEXEC;
+#endif
+
   SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags));
   if (rv == -1)
     SCM_SYSERROR;