[MacPorts] #58729: legacy-support missing futimens() (and utimensat)

MacPorts noreply at macports.org
Tue Jul 16 13:44:08 UTC 2019


#58729: legacy-support missing futimens() (and utimensat)
-----------------------------+--------------------
  Reporter:  RJVB            |      Owner:  (none)
      Type:  enhancement     |     Status:  new
  Priority:  Normal          |  Milestone:
 Component:  ports           |    Version:
Resolution:                  |   Keywords:
      Port:  legacy-support  |
-----------------------------+--------------------
Description changed by RJVB:

Old description:

> From `man futimens` on Linux:
>
> {{{
> NAME
>        utimensat, futimens - change file timestamps with nanosecond
> precision
>
> SYNOPSIS
>        #include <fcntl.h> /* Definition of AT_* constants */
>        #include <sys/stat.h>
>
>        int utimensat(int dirfd, const char *pathname,
>                      const struct timespec times[2], int flags);
>
>        int futimens(int fd, const struct timespec times[2]);
>
>    Feature Test Macro Requirements for glibc (see
> feature_test_macros(7)):
>
>        utimensat():
>            Since glibc 2.10:
>                _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
>            Before glibc 2.10:
>                _ATFILE_SOURCE
>        futimens():
>            Since glibc 2.10:
>                   _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
>            Before glibc 2.10:
>                   _GNU_SOURCE
> }}}
>
> I just encountered futimens() trying to build a new kf5-kio version. It
> was easy enough to emulate using futimes().
>
> What I do not know is whether this function is available on any Darwin
> version, nor what the project policy is for such situations (so feel free
> to close this is the function isn't acceptable).

New description:

 From `man futimens` on Linux:

 {{{
 NAME
        utimensat, futimens - change file timestamps with nanosecond
 precision

 SYNOPSIS
        #include <fcntl.h> /* Definition of AT_* constants */
        #include <sys/stat.h>

        int utimensat(int dirfd, const char *pathname,
                      const struct timespec times[2], int flags);

        int futimens(int fd, const struct timespec times[2]);

    Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

        utimensat():
            Since glibc 2.10:
                _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
            Before glibc 2.10:
                _ATFILE_SOURCE
        futimens():
            Since glibc 2.10:
                   _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
            Before glibc 2.10:
                   _GNU_SOURCE
 }}}

 I just encountered futimens() trying to build a new kf5-kio version. It
 was easy enough to emulate using futimes().

 What I do not know is whether this function is available on any Darwin
 version, nor what the project policy is for such situations (so feel free
 to close this if the function isn't acceptable).

--

-- 
Ticket URL: <https://trac.macports.org/ticket/58729#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list