CONTRIB(1)                                             CONTRIB(1)

     NAME
          create, install, list, pull, push, remove - trivial package
          management

     SYNOPSIS
          contrib/create [ -d dependency ] [ -f ] [ -r root ] [ -u
          user ] [ -x exclude ] name name.proto
          contrib/install [ -f ] [ -r root ] user/name
          contrib/list [ -c | -v ] [ user | user/name ]
          contrib/pull [ -c file ] [ -s file ] name
          contrib/push name
          contrib/remove name

     DESCRIPTION
          Contrib is a simple package management system based on
          replica(1). It can be used to create, install, upgrade and
          remove software packages in the sources repository. To cre-
          ate a package and become its maintainer it is necessary to
          have an authenticated sources account and a contrib direc-
          tory /n/sources/contrib/$user.

          Contrib/create
               Create builds a new package name, and performs an ini-
               tial push to sources. The file structure is defined by
               name.proto. The -f option can be used to force the
               recreation of the package.  Dependencies can be speci-
               fied with the -d name option.  If the package is staged
               away from its final destination a root directory for
               the published package may be specified with -r root. If
               the user has a different name for their sources account
               from their current user account then this may be speci-
               fied with the -u user option. Use the -x option to
               exclude the exclude files from the synchronization.

               When create runs it puts the current window into hold
               mode and reads text describing the package.  The first
               line of this text is printed by contrib/list and should
               be a short summary of the package's contents.

          Contrib/install
               Install the package name maintained by the user user to
               the local file system. The -f option forces the instal-
               lation to continue irrespective of missing dependent
               packages. Packages are normally installed at / however
               an alternative root directory may be specified with -r
               root.

          Contrib/list
               List the available packages and a one line description
               of each. The -v option produces a more verbose multi-

     Page 1                       Plan 9            (printed 12/21/24)

     CONTRIB(1)                                             CONTRIB(1)

               line form.  The -c option lists changes to the packages
               since the last pull if installed or the its creation if
               not.

          Contrib/pull
               Update the local package name from sources. Locally
               modified files cause a warning and are not overwritten
               unless the -c or -s options are used - as described in
               replica(1).

          Contrib/push
               Used by the package maintainer to update the package
               name on sources from the local system.

               When push runs it puts the current window into hold
               mode and reads text describing the changes to the pack-
               age.

          Contrib/remove
               Print the commands necessary to remove the package
               name, this allows the commands to be edited before they
               are sent to the shell.  The commands printed for files
               which have been modified with respect to the repository
               are commented out.

     EXAMPLE
          Install the abaco web browser.

          % contrib/install fgb/abaco

     FILES
          /usr/$user/lib/replica          databases of packages cre-
                                          ated locally.
          /dist/replica/*                 databases of packages
                                          installed locally.
          /n/sources/contrib/rob/replica  database of rob's packages.
          /n/sources/contrib/rob/root     files representing in rob's
                                          packages.

     SOURCE
          /rc/bin/contrib

     SEE ALSO
          proto(2), replica(1), replica(8)

     BUGS
          Send bug reports to benavento@gmail.com

     Page 2                       Plan 9            (printed 12/21/24)