I've updated this case in response to specific feedback (and
   attempted to keep it consistent with 2007/047).

   - Stephen

----

| PSARC/2007/048
| Include GNU coreutils 6.7
  Stephen Hahn (sch at sun.com)
  
  ident "$Hg$ SMI"
  
  1.  Summary
  
      This case adds the GNU/FSF implementations of numerous standard
      commands, collectively known as "coreutils", under the integration
|     guidelines for /usr/gnu [1].  Patch binding is sought for this case.
  
  2.  Discussion
  
      GNU coreutils--the combination of GNU fileutils, GNU shellutils, and
      GUN textutils--provide implementations of many common Unix utilities
      as well as various enhancements and additional related utilities.
      Providing these commands in a supported fashion on OpenSolaris is
      expected to conserve developer time, in that GNU extensions in
      common use on other platforms will be available on OpenSolaris,
      albeit on an alternate path.
  
      The coreutils package includes manual pages for the included
      commands; these will be installed in /usr/gnu/share/man.
  
      Conflicting commands and the complete commands are separated out in
      the interface table below.
  
      A new package, SUNWgnu-coreutils, will be introduced to deliver the
      binaries.
  
|     The initial version provided will be coreutils-6.7.
  
  2.1.  Omission of GNU su(1M)
  
      Although upstream open source software can be integrated with
      waivers on various policies surrounding internationalization or
      accessibility, security policies cannot be waived.  Although the
      current implementation of GNU su is undoubtedly well-tested, it does
      not interact with PAM or BSM auditing and therefore would introduce
|     a setuid-component in violation of architectural policies [3, 4].
|     It is therefore omitted from the delivered components.
  
  2.2.  Apparent provision of 'g'-prefixed GNU install(1)
  
      It turns out that GNU coreutils offers its variant of install(1M) as
      "ginstall"--in the standard installation of the coreutils
      components.  Since it is non-conflicting, ginstall will also be
      provided in /usr/bin but is not considered a precedent-setting
      example of a 'g'-prefixed variant.
  
| 2.3.  Conflicts with /usr/ucb variants
| 
|     printenv(1B), users(1B), and whoami(1B) conflict with the variants
|     provided in the coreutils package.  As each of the GNU variant
|     implementations are upwards compatible with the /usr/ucb variants,
|     this case proposes placing the non-conflicting GNU variants in
|     /usr/bin.
| 
| 2.4.  Hash digest commands
| 
|     The hash digest commands will be integrated in /usr/bin, and
|     supersede interface declarations made in PSARC/2005/530 [5].  The
|     project team will coordinate with other contributors to attempt to
|     use the libmd(3LIB) implementation in ON; the absence of such a
|     change will be treated as a defect.
| 
| 2.5.  Provision of shred(1)
| 
|     The coreutils package contains a command, shred(1), that relies on
|     filesystem implementation to operate correctly.  For the most part,
|     the disclaimers in the shred usage message and in the shred manual
|     page can be enhanced to include additional disclaimers regarding
|     specific OpenSolaris functionality, such as ZFS.  Elimination of the
|     command, although considered, appears to result in an unsatisfactory
|     deviation from the default installation, and loss of functionality
|     useful on devices.
| 
|     The proposed amendment would be similar to
| 
|       The following are examples of file systems on which shred is not
|       effective, or is not guaranteed to be effective in all file
|       system modes:
| 
|       * log-structured or journaled file systems, such as those
|       supplied with AIX and Solaris (and JFS, ReiserFS, XFS, Ext3,
|       etc.)
| 
|       * file systems that write redundant data and carry on even if
| +     some writes fail, such as RAID-based file systems and ZFS
|       
| +     * file systems with copy-on-write semantics, such as ZFS
|       
| +     * file systems that make snapshots, such as ZFS and Network
|         Appliance's NFS server
| 
|     Further text of this kind can be added as appropriate.
| 
  3.  Interfaces
  
  3.1.  Non-conflicting commands.
  
      /usr/bin/
        [
        base64
        dir
        dircolors
|       ginstall
|       md5sum
        pinky
        printenv
        ptx
        readlink
        seq
|       sha1sum
|       sha224sum
|       sha256sum
|       sha384sum
|       sha512sum
        shred
        shuf
        stat
        tac
        users
        vdir
        whoami
                Location                Uncommitted
                Invocation              Uncommitted
|               Human-readable output   Not an Interface
  
  3.2.  All commands.
  
      /usr/gnu/bin/
        [
        base64
        basename
        cat
        chgrp
        chmod
        chown
        chroot
        cksum
        comm
        cp
        csplit
        cut
        date
        dd
        df
        dir
        dircolors
        dirname
        du
        echo
        env
        expand
        expr
        factor
        false
        fmt
        fold
        groups
        head
        hostid
        hostname
        id
        install
        join
        kill
        link
        ln
        logname
        ls
        mkdir
        mkfifo
        mknod
        mv
        nice
        nl
        nohup
        od
        paste
        pathchk
        pinky
        pr
        printenv
        printf
        ptx
        pwd
        readlink
        rm
        rmdir
        seq
        shred
        shuf
        sleep
        sort
        split
        stat
        stty
        sum
        sync
        tac
        tail
        tee
        test
        touch
        tr
        true
        tsort
        tty
        uname
        unexpand
        uniq
        unlink
        uptime
        users
        vdir
        wc
        who
        whoami
        yes
                Location                Uncommitted
                Invocation              Uncommitted
|               Human-readable output   Not an Interface
  
      /usr/share/info/coreutils.info
        Location                        Uncommitted
  
      /usr/gnu/share/man/man1/
        base64.1
        basename.1
        cat.1
        chgrp.1
        chmod.1
        chown.1
        chroot.1
        cksum.1
        comm.1
        cp.1
        csplit.1
        cut.1
        date.1
        dd.1
        df.1
        dir.1
        dircolors.1
        dirname.1
        du.1
        echo.1
        env.1
        expand.1
        expr.1
        factor.1
        false.1
        fmt.1
        fold.1
        groups.1
        head.1
        hostid.1
        hostname.1
        id.1
        install.1
        join.1
        kill.1
        link.1
        ln.1
        logname.1
        ls.1
        md5sum.1
        mkdir.1
        mkfifo.1
        mknod.1
        mv.1
        nice.1
        nl.1
        nohup.1
        od.1
        paste.1
        pathchk.1
        pinky.1
        pr.1
        printenv.1
        printf.1
        ptx.1
        pwd.1
        readlink.1
        rm.1
        rmdir.1
        seq.1
        sha1sum.1
        sha224sum.1
        sha256sum.1
        sha384sum.1
        sha512sum.1
        shred.1
        shuf.1
        sleep.1
        sort.1
        split.1
        stat.1
        stty.1
        su.1
        sum.1
        sync.1
        tac.1
        tail.1
        tee.1
        test.1
        touch.1
        tr.1
        true.1
        tsort.1
        tty.1
        uname.1
        unexpand.1
        uniq.1
        unlink.1
        uptime.1
        users.1
        vdir.1
        wc.1
        who.1
        whoami.1
        yes.1
        Location                        Uncommitted
  
  4.  References
  
| [1] S. Hahn, B. Smaalders, and R. Orth, PSARC/2007/047: /usr/gnu, 2007.
| 
| [2] S. Hahn, PSARC/2007/049:  Including GNU which, 2007.
| 
| [3] "PAM Policy", http://opensolaris.org/os/community/arc/policies/PAM/,
|     2004.
| 
| [4] "Draft Audit Policy",
|     http://opensolaris.org/os/community/arc/policies/audit-policy/,
|     2006.
| 
| [5] A. Muffett, PSARC/2005/530:  digest(1) md5/md5sum compatibility,
|     2005.
-- 
Stephen Hahn, PhD  Solaris Kernel Development, Sun Microsystems
stephen.hahn at sun.com  http://blogs.sun.com/sch/

Reply via email to