Minutes of the 11th July 2022 Teleconference Austin-1235 Page 1 of 1 Submitted by Andrew Josey, The Open Group. 13th July 2022 Attendees: Don Cragun, IEEE PASC OR Nick Stoughton, Logitech/USENIX, ISO/IEC JTC 1/SC 22 OR Eric Ackermann, HPI, University of Potsdam Andrew Josey, The Open Group Geoff Clare, The Open Group Mark Ziegast, SHware Systems Dev. Eric Blake, Red Hat, The Open Group OR Apologies Tom Thompson, IEEE * General news This was a call dedicated to general bugs. * Current Business Bug 1122: POSIX should include gettext() and friends OPEN and https://posix.rhansen.org/p/gettext_draft Also https://austingroupbugs.net/file_download.php?file_id=64&type=bug To be discussed again when comments are raised. Bug 1560: clarify wording of command substitution https://austingroupbugs.net/view.php?id=1560 Leave this and related bugs 1561 and 1564 open awaiting reviews/discussion. Bug 1279: non-name=value should not be an ASSIGNMENT_WORD Accepted as Marked https://austingroupbugs.net/view.php?id=1279 This item is tagged for TC3-2008. Line numbers are for Issue 8 draft 2.1. Change line 75831 from: Otherwise it is unspecified whether rule 1 is applied or ASSIGNMENT_WORD is returned. to: Otherwise, it is implementation-defined whether rule 1 is applied, ASSIGNMENT_WORD is returned, or the TOKEN is processed in some other way. Change the paragraph at line 75834 from: Assignment to the name within a returned ASSIGNMENT_WORD token shall occur as specified in [xref to 2.9.1]. to: If a returned ASSIGNMENT_WORD token begins with a valid name, assignment of the value after the first to the name shall occur as specified in [xref to 2.9.1]. If a returned ASSIGNMENT_WORD token does not begin with a valid name, the way in which the token is processed is unspecified. Bug 1276: incorrect resolution in 0000839 Accepted as Marked https://austingroupbugs.net/view.php?id=1276 This item is tagged for TC3-2008 Line numbers are for Issue 8 draft 2.1 Change line 75820 from: If the TOKEN does not contain the character '=', rule 1 is applied. Otherwise, 7b shall be applied. to: If the TOKEN is exactly a reserved word, the token identifier for that reserved word shall result. Otherwise, 7b shall be applied. Change line 75827 from: If the TOKEN begins with '=', then rule 1 shall be applied. to: If the TOKEN begins with '=', then the token WORD shall be returned. After applying bug 1279, change line 75831 from: Otherwise, it is implementation-defined whether rule 1 is applied, ASSIGNMENT_WORD is returned, or the TOKEN is processed in some other way. to: Otherwise, it is implementation-defined whether the token WORD or ASSIGNMENT_WORD is returned, or the TOKEN is processed in some other way. Change line 75833 from: Otherwise, rule 1 shall be applied. to: Otherwise, the token WORD shall be returned. Bug 1275: pathname expansion errors Accepted as Marked https://austingroupbugs.net/view.php?id=1275 This item is tagged for TC3-2008. Make the changes in the Desired Action to implement option 2. Bug 1274: pid_t must fit in an int for definition of fcntl to be consistent. Accepted as Marked https://austingroupbugs.net/view.php?id=1274 This item is tagged for Issue 8. New proposed changes that use "int type" in struct f_owner_ex ... On page 238 line 8002 section , add: The header shall define the f_owner_ex structure, which shall include at least the following members: int type Discriminator for pid pid_t pid Process ID or process group ID On page 238 line 8016 section , change: F_GETOWN Get process or process group ID to receive SIGURG signals. F_SETOWN Set process or process group ID to receive SIGURG signals. to: F_GETOWN Get process or process group ID to receive SIGURG signals, via int type. F_GETOWN_EX Get process or process group ID to receive SIGURG signals, via pid_t type. F_SETOWN Set process or process group ID to receive SIGURG signals, via int type. F_SETOWN_EX Set process or process group ID to receive SIGURG signals, via pid_t type. On page 238 line 8026 section , add: The header shall also define the following symbolic constants for the type member of the f_owner_ex structure. The values shall be unique. F_OWNER_PID The pid member of f_owner_ex holds a process ID. F_OWNER_PGRP The pid member of f_owner_ex holds a process group ID. On page 821 line 27817 section fnctl(), add: F_GETOWN_EX If fildes refers to a socket, get the process ID or process group ID specified to receive SIGURG signals when out-of-band data is available, by setting the type and pid members of the f_owner_ex structure pointed to by the third argument, arg. The value of type shall be F_OWNER_PID or F_OWNER_PGRP to indicate that pid contains a process ID or a process group ID, respectively. The value of pid shall be zero if no SIGURG signals are to be sent. If fildes does not refer to a socket, the results are unspecified. F_SETOWN_EX If fildes refers to a socket, set the process ID or process group ID specified to receive SIGURG signals when out-of-band data is available, using the value of the third argument, arg, taken as type pointer to struct f_owner_ex. The type and pid members of this structure shall be used as follows: A pid value of zero shall indicate that no SIGURG signals are to be sent. A type value of F_OWNER_PID and a positive pid value shall indicate that SIGURG signals are to be sent to the process ID specified in pid. A type value of F_OWNER_PGRP and a positive pid value shall indicate that SIGURG signals are to be sent to the process group ID specified in pid. If fildes does not refer to a socket, the results are unspecified. Move the text from the F_SETOWN description on lines 27803-27816, beginning "Each time a SIGURG signal is sent" and ending "or by other means", to a separate paragraph after the F_SETOWN_EX description, and in it change: Each time a SIGURG signal is sent to: For F_SETOWN and F_SETOWN_EX, each time a SIGURG signal is sent On page 823 line 27923 section fcntl() (EINVAL shall fail), change: The cmd argument is invalid, or the cmd argument is F_DUPFD or F_DUPFD_CLOEXEC and arg is negative or greater than or equal to {OPEN_MAX}, or the cmd argument is F_GETLK, F_SETLK, or F_SETLKW and the data pointed to by arg is not valid, or fildes refers to a file that does not support locking. to: The cmd argument is invalid; or the cmd argument is F_DUPFD or F_DUPFD_CLOEXEC and arg is negative or is greater than or equal to {OPEN_MAX}; or the cmd argument is F_SETOWN_EX and the type member of the f_owner_ex structure pointed to by arg is invalid, or the pid member is negative and the type member is F_OWNER_PID or F_OWNER_PGRP; or the cmd argument is F_GETLK, F_SETLK, or F_SETLKW and the data pointed to by arg is not valid, or fildes refers to a file that does not support locking. On page 824 line 27938 section fcntl() (ESRCH), change: F_SETOWN to: F_SETOWN or F_SETOWN_EX On page 824 line 27944 section fcntl() (EINVAL may fail), change: The cmd argument is F_SETOWN and the value of the argument is not valid as a process or process group identifier. to: The cmd argument is F_SETOWN and the value of arg is positive and is not valid as a process ID or the value of arg is negative and its absolute value is not valid as a process group ID; or the cmd argument is F_SETOWN_EX, the value of the type member of the f_owner_ex structure pointed to by arg is F_OWNER_PID, and the value of the pid member is not valid as a process ID; or the cmd argument is F_SETOWN_EX, the value of the type member of the f_owner_ex structure pointed to by arg is F_OWNER_PGRP, and the value of the pid member is not valid as a process group ID. On page 824 line 27946 section fcntl() (EPERM), change: F_SETOWN to: F_SETOWN or F_SETOWN_EX On page 825 line 28011 section fcntl() APPLICATION USAGE, change: On systems which do not perform permission checks at the time of an fcntl() call with F_SETOWN, ... to: On implementations where process IDs can be greater than INT_MAX, F_SETOWN cannot be used with process IDs greater than INT_MAX or process group IDs greater than INT_MAX+1 because the value is passed to fcntl() in an argument of type int. In this situation, F_SETOWN_EX should be used instead. Similarly, if a process ID greater than INT_MAX or a process group ID greater than INT_MAX+1 has been set to receive SIGURG signals (using F_SETOWN_EX), F_GETOWN cannot be used to obtain the value because fcntl() returns the value as type int and will thus give an [EOVERFLOW] error for such values. F_GETOWN_EX should be used instead. Note that the convention of negating a process group ID is only used with F_SETOWN and F_GETOWN; the pid member of the f_owner_ex structure used with F_SETOWN_EX and F_GETOWN_EX is not negated when it specifies a process group ID. On systems which do not perform permission checks at the time of an fcntl() call with F_SETOWN or F_SETOWN_EX, ... On page 827 line 28077 section fcntl() RATIONALE, add a new paragraph: The F_SETOWN_EX and F_GETOWN_EX values for cmd and the associated f_owner_ex structure were adopted from the GNU C library. In addition to the values F_OWNER_PID and F_OWNER_PGRP for the type member, this also has F_OWNER_TID to specify that the pid member contains a thread ID. However, this relies on thread IDs being representable in a pid_t and so was not included in POSIX.1-20xx. The aim of adding F_SETOWN_EX and F_GETOWN_EX was to address the inability of F_SETOWN and F_GETOWN to handle process IDs greater than INT_MAX and process group IDs greater than INT_MAX+1, and this need is satisfied without including F_OWNER_TID. Bug 1273: glob()'s GLOB_ERR/errfunc and non-directory files OPEN https://austingroupbugs.net/view.php?id=1273 We will continue this next time. Next Steps ---------- The next calls are on: Thu 2022-07-14 (general bugs) Mon 2022-07-18 (general bugs) gettext is complete, but may be discussed again if comments are added The calls are for 90 minutes Calls are anchored on US time. (8am Pacific) Please check the calendar invites for dial in details. Bugs are at: https://austingroupbugs.net An etherpad is usually up for the meeting, with a URL using the date format as below: https://posix.rhansen.org/p/20xx-mm-dd (For write access this uses The Open Group single sign on, for those individuals with gitlab.opengroup.org accounts. Please contact Andrew if you need to be setup)