Template Version: @(#)sac_nextcase %I% %G% SMI This information Copyright 2006 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: /usr/bin/xargs and /usr/xpg6/bin/xargs consolidation 1.2. Name of Document Author/Supplier: Author: Carol Fields 1.3 Date of This Document: 08 November, 2006 4. Technical Description Problem ------- Solaris currently ships two versions of the "xargs" utility: one is the standard version located in /usr/bin, and the other is the POSIX version located in /usr/xpg6/bin. The xargs utility allows the use of the -E option to indicate that a different logical "EOF" string can be supplied in the standard input to terminate processing. The sole difference in the POSIX version is that it allows the use of an empty string ("") as an argument to the -E option, which it takes to mean that no logical EOF string is assumed. (I.e., the utility will continue processing until a real EOF is encountered on standard input.) The Sun version will produce an error message and exit code if provided the empty string. We believe that the POSIX behavior can be applied to the Sun code in a manner that is fully backwards compatible with existing usage, unifying this utility, simplifying documentation and removing the need to build and ship a different version of the program. This will also reduce by one the number of variances that the default /usr/bin utilities have against the corresponding POSIX utilities. Proposed Solution ----------------- We propose to eliminate the special check in the code that errors out for non-XPG6 code when "" is supplied as an argument to -E. We also propose to replace the file /usr/xpg6/bin/xargs with a link to /usr/bin/xargs, so that old programs that may have hardcoded the path to the XPG6 version of xargs can continue to operate properly. There will be a minor edit required for the xargs(1) man page to remove references to the XPG6 version of xargs, and to copy the text from the XPG6 version of the -E argument to the stock version. Binding ------- We are seeking patch binding for this change. Interface Taxonomy ------------------ Interface Stability Level Comments -------------------- ---------------------------- ------------------------- /usr/bin/xargs: Committed: See standards(5) /usr/xpg6/bin/xargs: Committed Symlink to /usr/bin/xargs 5. Reference Documents 1. Bug report 6487582: xargs: /usr/bin/xargs should acquire the same /usr/xpg6/bin/xargs behavior 2. updated xargs(1) man page: materials/xargs.1 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: ON 6.5. ARC review type: FastTrack