_____________________________________________________________________________ COMMENT Enhancement Request Number 1 Josey:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 1 (rdvk# 7) {AJ-1} Thu, 7 Jun 2007 15:48:18 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1 Line: 40-42 Section: 1 Problem: This section states: "A key difference is that POSIX is a prescriptive standard, while the LSB is a descriptive standard. This means that POSIX was produced by a standards organization (i.e., the IEEE) and is specifically used by UNIX operating system developers to develop each interface, so compliance to POSIX is a result of careful design. If an incompatibility is found after implementation, it is considered a bug that must be fixed." This is not correct, since existing practice comes into play for POSIX too. Action: This needs some rewording. I do not have wording to hand but would like to see this matter discussed so as to come up with some better wording. _____________________________________________________________________________ COMMENT Enhancement Request Number 2 nick:xxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat Introduction (rdvk# 11) {NMS-01} Fri, 15 Jun 2007 20:16:20 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1 Line: 40-41 Section: Introduction Problem: POSIX is produced by three standards organizations, not one. Action: Change This means that POSIX was produced by a standards organization (i.e., the IEEE) to This means that POSIX was produced by standards organizations (the IEEE, The Open Group, and ISO/IEC) _____________________________________________________________________________ OBJECTION Enhancement Request Number 3 nick:xxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat Scope (rdvk# 12) {NMS-02} Fri, 15 Jun 2007 20:24:17 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 3 Line: 112 Section: Scope Problem: The Technical Report describing differences between POSIX and the LSB is a TR, not an IS, and the number is 24715 Action: Change and submitted to ISO as a technical report IS 23660. to and submitted to ISO as a technical report TR 24715. ______________________________________________________________________________________ EDITORIAL Enhancement Request Number 4 lois:xxxxxxxxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 3 (rdvk# 17) {LG-124} Tue, 19 Jun 2007 00:02:51 +0100 (BST) ______________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _______________________________________________________________________________________ Page: 3 Line: 124 Section: 3 Problem: The paper should refer to ISO C rather than ANSI C. See also line 219 (p. 5) and line 758 (p. 17). Action: s/ANSI C/ISO C/ _____________________________________________________________________________________ COMMENT Enhancement Request Number 5 nick:xxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat File Management/fscanf (rdvk# 13) {NMS-03} Fri, 15 Jun 2007 20:46:24 +0100 (BST) _____________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________________ Page: 5 Line: 214-222 Section: File Problem: The LSB currently specifies %a as described here. During the current revision of POSIX, this functionality has been added to POSIX, using the %m modifier. Portable applications should start to move towards this new value. Action: Add after line 224 on page 6 a new paragraph: Developers should note that the next revision of POSIX will probably include similar functionality. However, since ISO C has used the %a conversion specifier for hexadecimal floating point formats, the modifier has been changed from 'a' to 'm'. This change is not yet included in any implementation. ___________________________________________________________________________________ EDITORIAL Enhancement Request Number 6 lois:xxxxxxxxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 3.1 (rdvk# 18) {LG-219} Tue, 19 Jun 2007 00:02:58 +0100 (BST) __________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: __________________________________________________________________________________ Page: 5 Line: 219 Section: 3.1 Problem: The paper should refer to ISO C rather than ANSI C. Action: s/ANSI C/ISO C/http://www.opengroup.org/platform/doc-review/bugreport.html _____________________________________________________________________________________ EDITORIAL Enhancement Request Number 7 lois:xxxxxxxxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat (rdvk# 21) {LG-224} Tue, 19 Jun 2007 00:07:25 +0100 (BST) _____________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________________ Page: 6 Line: 224 Section: 3.1 Problem: incorrect adverb Action: s/of sufficiently size/of sufficient size/ _______________________________________________________________________________________ COMMENT Enhancement Request Number 8 nick:xxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 3.1 File Management/link (rdvk# 14) {NMS-04} Fri, 15 Jun 2007 20:57:31 +0100 (BST) _______________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _______________________________________________________________________________________ Page: 6 Line: 225-232 Section: 3.1 Problem: The difference described here is addressed in the revision by means of linkat(), and Linux has this function today. Action: Add a new paragraph after line 232: Developers should note that the next revision of POSIX will include functionality to address this difference. Recent versions of Linux include a function linkat(), which is also described in the current draft of the POSIX revision document. Portable applications that require to make hard links to symbolic links are encouraged to use linkat(AT_FDCWD, old, AT_FDCWD, new, AT_SYMLINK_FOLLOW) or linkat(AT_FDCWD, old, AT_FDCWD, new, 0) as required. _____________________________________________________________________________________ OBJECTION Enhancement Request Number 9 nick:xxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 3.2 Process Management (rdvk# 15) {NMS-05} Fri, 15 Jun 2007 21:02:11 +0100 (BST) _____________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________________ Page: 6 Line: 235 Section: 3.2 Problem: POSIX does not have a 'spawn()' function. The LSB is adding posix_spawn() to the next revision, and it is present in most distros at this point. Action: Change: Process management in Linux is nearly identical to POSIX. Some optional POSIX interfaces (e.g., spawn()) are not included, but all the mandatory POSIX process functionality is there, including fork(), exec(), wait(), etc. to Process management in Linux is nearly identical to POSIX. Some optional POSIX interfaces (e.g., posix_spawn()) are not included, but all the mandatory POSIX process functionality is there, including fork(), exec(), wait(), etc. The next version of the LSB (3.2) is expected to include posix_spawn(). _____________________________________________________________________________ COMMENT Enhancement Request Number 10 nick:xxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 3.4 Threads (rdvk# 16) {NMS-06} Fri, 15 Jun 2007 21:09:03 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 6 Line: 264 Section: 3.4 Problem: It is not enough to simply set the environment variable LD_ASSUME_KERNEL ... it must be set to a specific version. Doing so will cause an application to not conform to the LSB or to POSIX, and so it should not even be mentioned! All distros have now moved to 2.6 based kernels (at least to my knowledge), Action: Delete the sentence starting on line 261 "Linux 2.6 uses ... variable LD_ASSUME_KERNEL." _____________________________________________________________________________ COMMENT Enhancement Request Number 11 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 3.7 (rdvk# 5) {gwc strptime} Tue, 5 Jun 2007 17:09:27 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 8 Line: 333 Section: 3.7 Problem: The Linux strptime() behaviour for leading zeros is allowed by POSIX (see Austin Group interpretation AI-041). Thus this is not really a Linux-POSIX portability issue, it is something that has to be done for portability between all POSIX systems, and there is no need to mention it. Action: Delete lines 333-339. _____________________________________________________________________________ OBJECTION Enhancement Request Number 12 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 4 (rdvk# 2) {gwc ar} Tue, 5 Jun 2007 17:25:04 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 9 Line: 390 Section: 4 Problem: The text "The utility ar is deprecated in the LSB. Its functionality is generally provided by tar and cpio in Linux systems, and by pax in POSIX systems" is misleading, for two reasons: 1. The ar utility is deprecated "from" the LSB, i.e. it is expected to be removed from a future revision of the standard. The stated rationale is that LSB generally does not include software development utilities. Deprecating the utility from LSB does not mean it is deprecated on Linux systems. 2. Nowadays the ar utility is almost always used only for software development, not as a general archiving tool. When used for software development its functionality is not provided by tar, cpio or pax. In any case, this paragraph is really about tar/cpio/pax, so the reference to ar just confuses the matter and should be deleted. Action: Delete "The utility ar is deprecated in the LSB. Its functionality is generally provided by tar and cpio in Linux systems, and by pax in POSIX systems." _____________________________________________________________________________ OBJECTION Enhancement Request Number 13 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 4 (rdvk# 9) {gwc utility syntax} Mon, 11 Jun 2007 12:47:06 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 9 Line: 390 Section: 4 Problem: The document does not mention the portability issue documented in LSB3.1 section 15.1, namely that Linux utilities generally accept options interspersed with operands. Action: Insert a new bullet item before line 390: "Linux utilities generally accept options interspersed with operands, contrary to the POSIX utility syntax requirements, unless the POSIXLY_CORRECT environment variable is set. The portable application shall either execute POSIX utilities with the "--" end of options marker whenever any argument that appears after an operand might begin with a dash (e.g. as a result of an expansion or substitution), or shall set POSIXLY_CORRECT in the environment on Linux systems (but not on other systems) before executing any POSIX utility." _____________________________________________________________________________ OBJECTION Enhancement Request Number 14 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 4 (rdvk# 4) {gwc pax} Tue, 5 Jun 2007 17:51:50 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 9 Line: 391 Section: 4 Problem: The statement "POSIX identifies tar and cpio as legacy utilities that are optional" is not true. They are not optional in POSIX - they are just not in POSIX at all. The statement "The LSB makes tar and cpio mandatory, but makes pax optional" is not true. Section 15.1 of LSB3.1 clearly mandates pax. The statement "a Linux pax utility can be obtained from an open source project on sourceforge" appears no longer to be true. Searching sourceforge did not find any pax-specific project. There is a pax utility included in the heirloom project (which is hosted at sourceforge), but this is most likely not the one that was meant. (It cannot be installed separately from the dozens of other utilities that heirloom provides). Action: Replace lines 390-401 with: The LSB mandates the pax utility, but in some Linux distributions it is not installed by default. If a specific Linux distribution does not include pax, the tar and cpio utilities can usually provide the needed functionality, with some caveats: * They do not support the format read/written by pax -x pax. * The tar utility does not write POSIX conforming ustar format by default; it needs the --format=posix option. To maintain strict compatibility, the portable application shall not use the pax -x pax format and shall use the tar or cpio utility if pax is not installed. _____________________________________________________________________________ OBJECTION Enhancement Request Number 15 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 4 (rdvk# 1) {gwc df+du} Thu, 7 Jun 2007 11:55:24 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 10 Line: 420 Section: 4 Problem: The output format of the df utility is unspecified by POSIX unless -P is used. A POSIX application which needs df to produce known output has to use df -P or df -Pk. Similarly, the unspecified output for the -t option affects all POSIX applications. Thus using -P (or -Pk) and avoiding -t is not really a Linux-POSIX portability issue, it is something that has to be done for portability between all POSIX systems, and there is no need to mention it. The statement that Linux du reports 1024-byte blocks by default is incorrect. LSB3.1 states that the default unit size is unspecified. Action: Replace lines 420-426 with: Under POSIX, the du utility reports disk space in 512-byte blocks unless the -k option is used; in this case the space is reported in 1024-byte blocks. Under Linux, the du utility reports disk space in unspecified units by default, and 1024-byte blocks when the -k option is used. The portable application shall always use the -k option and shall accept the result only in terms of 1024-byte blocks. _____________________________________________________________________________ COMMENT Enhancement Request Number 16 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 4 (rdvk# 6) {gwc ls} Thu, 7 Jun 2007 12:03:06 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 11 Line: 448 Section: 4 Problem: The behaviour of ls -l substituting major and minor device numbers for the file size for character/block special files is allowed by POSIX, and is the common behaviour on existing POSIX implementations. There is no need to mention it. Action: Replace lines 448-454 with: The Linux ls utility using the -p option may display additional characters for some file types beyond those defined by POSIX. The portable application shall accept some additional characters for some file types when the -p option is used. _____________________________________________________________________________ OBJECTION Enhancement Request Number 17 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat 4 (rdvk# 3) {gwc od} Thu, 7 Jun 2007 12:16:04 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 11 Line: 464 Section: 4 Problem: This entry is not in keeping with the scope of the document, stated in section 2. The additional features of the Linux od utility mentioned here are relevant to "approach 2" in the scope, but not "approach 1" (the approach being taken). (If for some reason the entry is kept, an editorial change is needed on line 465 from "-traditional" to "--traditional".) Action: Delete lines 464-467. _______________________________________________________________________________________ EDITORIAL Enhancement Request Number 18 lois:xxxxxxxxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat Summary and (rdvk# 20) {LG-743} Tue, 19 Jun 2007 00:04:20 +0100 (BST) ______________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: ______________________________________________________________________________________ Page: 17 Line: 743 Section: Summary Problem: word missing Action: s/found to different/found to be different/ __________________________________________________________________________________ EDITORIAL Enhancement Request Number 19 lois:xxxxxxxxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat References (rdvk# 22) {LG-753} Tue, 19 Jun 2007 00:11:48 +0100 (BST) __________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: __________________________________________________________________________________ Page: 17 Line: 753 Section: References Problem: Reference to the technical report should be to the version which was officially approved, not to a 2005 draft. Action: Sorry, I don't have the details to hand, but I am pretty sure that this TR has received ISO/IEC approval. And it certainly has an official number, which should be mentioned. __________________________________________________________________________________ EDITORIAL Enhancement Request Number 20 lois:xxxxxxxxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat References (rdvk# 19) {LG-758} Tue, 19 Jun 2007 00:03:02 +0100 (BST) __________________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: __________________________________________________________________________________ Page: 17 Line: 758 Section: References Problem: The paper should refer to ISO C rather than ANSI C. Furthermore, the reference should refer to C99 and not C90. The footnote appears to reference two different versions of the C standard. Action: s/ISO 9899:1990[1992]/ISO 9899:1999/ _______________________________________________________________________________ OBJECTION Enhancement Request Number 21 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat Appendix_A (rdvk# 10) {gwc getopt} Mon, 11 Jun 2007 12:32:22 +0100 (BST) _______________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: _______________________________________________________________________________ Page: 18 Line: 788 Section: Appendix_A Problem: As per the description of getopt() in LSB3.1, getopt() on Linux systems does not conform to POSIX unless POSIXLY_CORRECT is set in the environment. Listing it as something that has changed from non-conforming to conforming is incorrect. Action: Delete lines 788-791. Add a new numbered item in section 3.7 Other System Interfaces: "The getopt() function in Linux does not conform to POSIX by default. It conforms if the variable POSIXLY_CORRECT is set in the environment; otherwise it accepts options interspersed with operands. This creates two portability issues: a. If an application includes a program that uses getopt() and is executed directly by users, or by shell scripts written by users, then the application's documentation needs to inform users of the problem, and advise them either to use the "--" end of options marker whenever any argument that appears after an operand might begin with a dash (e.g. as a result of an expansion or substitution), or to set the POSIXLY_CORRECT environment variable on Linux systems. b. If an application has an internal program (one that is not executed by users) that uses getopt(), it must execute the program with the "--" end of options marker whenever any argument that appears after an operand might begin with a dash, in order to be portable to Linux." ______________________________________________________________________________ COMMENT Enhancement Request Number 22 g.clare:xxxxxxxxxxxxx Bug in WP_POSIX_Linux_App_Compat Appendix_A (rdvk# 8) {gwc xopen_version} Mon, 11 Jun 2007 15:53:11 +0100 (BST) ______________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_____ Reject_____OPEN Rationale for rejected or partial changes: ______________________________________________________________________________ Page: 18 Line: 793 Section: Appendix_A Problem: POSIX only requires _XOPEN_VERSION to be defined by implementations that support the XSI option. Action: Change: "for conforming implementations" to: "for conforming implementations that support the XSI option"