--- usepackage-1.6.3.orig/debian/changelog +++ usepackage-1.6.3/debian/changelog @@ -0,0 +1,30 @@ +usepackage (1.6.3-1) unstable; urgency=low + + * New upstream release + + -- Luca Filipozzi Sat, 5 Apr 2003 20:23:07 -0800 + +usepackage (1.6.2-2) unstable; urgency=low + + * moved usepackage.conf from /usr/etc/ to /etc/usepackage/ + + -- Luca Filipozzi Fri, 12 Jul 2002 12:37:41 -0700 + +usepackage (1.6.2-1) unstable; urgency=low + + * New upstream release + + -- Luca Filipozzi Mon, 17 Jun 2002 21:10:51 -0700 + +usepackage (1.6-2) unstable; urgency=low + + * debian/control: added build dep on flex and bison (Closes: Bug#148709) + + -- Luca Filipozzi Sun, 2 Jun 2002 21:12:27 -0700 + +usepackage (1.6-1) unstable; urgency=low + + * Initial Release. + + -- Luca Filipozzi Sun, 26 May 2002 22:44:34 -0700 + --- usepackage-1.6.3.orig/debian/watch +++ usepackage-1.6.3/debian/watch @@ -0,0 +1,2 @@ +version=2 +http://www.onegoodidea.com/download/usepackage-([\d\.]+).tar.gz --- usepackage-1.6.3.orig/debian/conffiles +++ usepackage-1.6.3/debian/conffiles @@ -0,0 +1 @@ +/etc/usepackage/usepackage.conf --- usepackage-1.6.3.orig/debian/docs +++ usepackage-1.6.3/debian/docs @@ -0,0 +1 @@ +README --- usepackage-1.6.3.orig/debian/control +++ usepackage-1.6.3/debian/control @@ -0,0 +1,25 @@ +Source: usepackage +Section: utils +Priority: optional +Maintainer: Luca Filipozzi +Build-Depends: debhelper (>> 3.0.0), flex, bison +Standards-Version: 3.5.2 + +Package: usepackage +Architecture: any +Depends: ${shlibs:Depends} +Description: utility to manage environment variables from within dotfiles + Usepackage is a tool for managing the Unix environment for a multi-tool, + multi-platform site. It is designed to simplify login scripts and allow + administrators to control users' environments centrally. This tool should be + considered primarily designed for sites where users have to deal with a number + of different tools, or versions of tools, that are installed in different + locations and require environment variables to be set. This is particularly a + problem for developers, or anyone who has to manage a large toolset across + multiple platforms (e.g. different versions of the Sun JDK which require + various environment variables to be set correctly). One or more central + configuration files control a number of different "packages" and their + associated environment and dependencies for different platforms (this includes + the standard PATH, MANPATH, and LD_LIBRARY_PATH variables). A single user + command, use, can be invoked to source the appropriate environment information + into the users' current shell. --- usepackage-1.6.3.orig/debian/copyright +++ usepackage-1.6.3/debian/copyright @@ -0,0 +1,28 @@ +This package was debianized by Luca Filipozzi on +Sun, 26 May 2002 22:44:34 -0700. + +It was downloaded from +http://freshmeat.net/redir/usepackage/29869/url_tgz/usepackage-1.6.tar.gz + +Upstream Author: Jonathan AH Hogg + +Copyright: + * Copyright (C) 2001 Jonathan Hogg + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + On Debian systems, the full text of the GNU General Public License + may be found in /usr/share/common-licenses/GPL. + --- usepackage-1.6.3.orig/debian/rules +++ usepackage-1.6.3/debian/rules @@ -0,0 +1,62 @@ +#!/usr/bin/make -f + +#export DH_VERBOSE=1 +export DH_COMPAT=3 + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) +CFLAGS+=-g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) +INSTALL_PROGRAM+=-s +endif + +config.status: configure + dh_testdir + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --sysconfdir=/etc/usepackage + +build: build-stamp +build-stamp: config.status + dh_testdir + $(MAKE) DEFAULT_PACKAGE_PATH=/etc/usepackage + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + -$(MAKE) distclean + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + $(MAKE) install DESTDIR=$(PWD)/debian/usepackage/ + install -m 644 debian/usepackage.conf \ + $(PWD)/debian/usepackage/etc/usepackage + +binary-indep: build install + +binary-arch: build install + dh_testdir + dh_testroot + dh_installdocs + dh_installman + dh_installchangelogs + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install --- usepackage-1.6.3.orig/debian/dirs +++ usepackage-1.6.3/debian/dirs @@ -0,0 +1 @@ +etc/usepackage --- usepackage-1.6.3.orig/debian/usepackage.conf +++ usepackage-1.6.3/debian/usepackage.conf @@ -0,0 +1 @@ +# intentionally empty --- usepackage-1.6.3.orig/usepackage.1 +++ usepackage-1.6.3/usepackage.1 @@ -0,0 +1,600 @@ +.TH USE 1 "$Date: 2001/09/17 22:27:55 $" "Usepackage" "User Commands" +.SH NAME +use \- environment management program +.SH SYNOPSIS +.TP +.I csh and derivatives: + source INSTALL_DIR/lib/usepackage/use.csh +.TP +.I bourne shell and derivatives: + source INSTALL_DIR/lib/usepackage/use.bsh +.TP +.I korn shell: + . INSTALL_DIR/lib/usepackage/use.ksh +.PP +.B use +[\-vscb] [\-f +.IR file ] +.I package ... +.PP +.B use +\-l +.SH DESCRIPTION +.I Usepackage +is an environment management program. It is based on the principle of +.I packages +\- collections of executables that share a common set of necessary +environment variables, such as PATH, MANPATH or LD_LIBRARY_PATH. +.PP +For each given +.IR package , +.B use +sources the appropriate environment information into the current shell. +The environment information is specified in packages files, see +.IR PACKAGES . +.SS OPTIONS +.TP +.I \-v +Output verbose information to the standard error stream. +.TP +.I \-s +Silence warnings for un-matched packages. The is useful in a shell +.I rc +script when a package is known not to be available on all architectures that +the shell is used on, see +.IR PACKAGES . +.TP +.I \-c +Force +.I csh +style environment output (this is used only in the underlying sourcing +mechanism). +.TP +.I \-b +Force bourne shell style environment output (this is used only in the +underlying sourcing mechanism). +.TP +.I \-f file +Specify an alternate master packages file, see +.IR PACKAGES . +.TP +.I \-l +List available packages and groups, see +.IR ANNOTATIONS +and +.IR GROUPS . +.SH PACKAGES +.I Usepackage +reads package environment information from package files as follows: +.SS LOAD ORDER +The first packages file to be read-in is the master packages file, the name +of this file may be given on the command line (see +.IR OPTIONS ) +or otherwise defaults to the builtin name "packages.master" (see +.IR FILES ). +This file is located by searching along a path which defaults to: +.PP +.nf + DEFAULT_PACKAGE_PATH +.fi +.PP +This path may be overridden with the PACKAGES_PATH environment variable +(see +.IR ENVIRONMENT ). +A packages file may contain inclusion directives which cause the sourcing of +other files at a given points. An inclusion directive looks like: +.PP +.nf + (`include' file-name) +.fi +.PP +The same location mechanism is used to find "file-name" as for the master +packages file. A package file name may also be given as an absolute file name +or may be shell-style tilde (~), user directory, relative. +.SS SYNTAX +A package file consists of comments, delimited by a leading hash (#), +or package definitions of the form: +.PP +.nf + package platform os version host [<= requires ...] : + variable-def [, variable-def ...] ; +.fi +.PP +The +.IR package , +.IR arch , +.IR os , +.IR release +and +.I host +parts may be simple shell-style patterns of the form: +.TP 15 +* +matches anything. +.TP +foo* +matches "foo", "foobar" etc. +.TP +{foo,bar} +matches "foo" or "bar". +.PP +When +.I Usepackage +searches for the definition for a particular package, it compares each line +in the packages file against the name of the package given (package) and +system-dependant information for the execution host, as obtained by +.IR uname (2). +This information is the hardware implementation (platform), the operating +system name (os), the operating system version (version) and the hostname +(host). Comparisons are case-insensitive. If a match is obtained then the +given variable definitions are processed to modify the environment. A +variable definition may be one of three forms: +.PP +.nf + var-name = "string" + var-name = path-list + var-name += path-list + var-name += "string" +.fi +.PP +The first sets the given variable to a literal string value, the +second sets the given variable to a path list, the third prepends the +current value of a variable with the given path list, and the fourth +interprets the literal string as a path list and prepends it to the current +value of the variable. Path lists are colon (:) separated lists of +directories and may contain shell-style tilde (~), user-relative, directories +which will be expanded automatically (except when the path list is given as a +literal string). When pre-pending paths to a variable, duplicate paths are +removed from the original value first. +.PP +The +.I requires +list specifies the names of other packages which must be sourced into the +environment before the following variables when this line is matched. +.SS GROUPS +In addition to the package definitions in a packages file, there may also be +group definitions. These have the following syntax: +.PP +.nf + group := package [, package ...] ; +.fi +.PP +.I Usepackage +searches for a given package name in the defined groups first, if the given +name matchs a group name then the packages defined as part of that group are +sourced into the environment together. A group definition may not reference +other groups and may not contain patterns. +.SS ANNOTATIONS +In order to give useful package information to the user, annotations may be +placed in the packages file that give summaries of packages. These annotations +have the form: +.PP +.nf + >> name : "description" << +.fi +.PP +.I Usepackage +collects these annotations together and displays them when called with the +.I -l +flag, see +.IR OPTIONS . +These annotations have no impact on the package mechanism and need not +necessarily be beside or correspond to the package definitions (although +this is the sensible way to arrange things). +.SS EXAMPLE +The following fragment of a packages file illustrates the main features: +.PP +.nf + # GNU software is available everywhere: + + >> GNU : "The GNU project software" << + + GNU * * * * : PATH += /usr/local/gnu/bin, + MANPATH += /usr/local/gnu/man ; + + # CVS requires RCS which is found in the GNU package, but + # is only available on SPARC Solaris machines: + + >> CVS : "Concurrent Versions System revision control" << + + CVS sun4* SunOS 5.* * <= GNU : + CVSROOT = /usr/src/cvsroot, + CVSEDITOR = "vi", + PATH += /usr/local/cvs/bin, + MANPATH += /usr/local/cvs/man ; + + # User bin directories (Solaris will run SunOS 4 binaries): + + >> user : "User's own programs" << + + user sun4* SunOS * * : PATH += ~/bin/sun4 ; + user sun4* SunOS 5.* * : PATH += ~/bin/solaris ; + user alpha OSF * * : PATH += ~/bin/alpha ; + + # include standard packages: + + (`include' packages.standard) + + # security hole: + + dot * * * * : PATH += . ; + + # groups: + + user-setup := standard, user ; + programmer-setup := standard, CVS, user, dot ; +.fi +.PP +Note the use of Operating System version numbers to distinguish between +SunOS 4 and Solaris (SunOS 5), the use of "sun4*" to match the multiple +different platform versions of SPARC machines (sun4m, sun4c, etc.) and the +fact that package "user" on a SPARC Solaris machine will match both of the +first two lines of the "user" package section, resulting in the "solaris" +directory and the "sun4" directory being added into the PATH. +.PP +Assuming the appropriate shell setup script has been sources (see +.IR SYNOPSIS ), +then the following command will cause the CVS environment (including the +GNU environment) to be sourced: +.PP +.nf + $ use CVS +.fi +.PP +Note that on a DEC Alpha machine, this will generate a warning like: +.PP +.nf + $ use CVS + warning: no match for package `CVS' on this host. +.fi +.PP +In a shell script which is executed on a number of different platforms (such +as the shell startup script). These warnings may be silenced (see +.IR OPTIONS ). +.SH FILES +.TP 15 +.SB DEFAULT_PACKAGE_PATH/packages.master +The default master packages file. +.TP +.SB INSTALL_DIR/lib/usepackage/use.csh +Shell setup for csh and derivatives. +.TP +.SB INSTALL_DIR/lib/usepackage/use.bsh +Shell setup for bourne shell and derivatives. +.TP +.SB INSTALL_DIR/lib/usepackage/use.ksh +Shell setup for ksh. +.TP +.SB INSTALL_DIR/bin/usepackage +The underlying +.I Usepackage +executable. +.SH ENVIRONMENT +Other than the reading and re-definition of environment variables for package +setup, +.B use +also uses the following environment variables for user configuration: +.TP 15 +.SB PACKAGES_PATH +Colon-separated path list giving the directories to search for the master +packages file and included files. Shell-style tilde (~) user-directory +escapes are expanded. +.SH COPYRIGHT +Copyright (C) 1995-2001 Jonathan Hogg. +.PP +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +.PP +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +.SH SEE ALSO +csh(1), sh(1), ksh(1), env(1), environ(5), getenv(3C), uname(1), +uname(2) + +.TH USE 1 "2002/06/17 14:21:41" "Usepackage" "User Commands" +.SH NAME +usepackage \- +.I Usepackage +Environment Manager +.SH SYNOPSIS +See +.IR use(1) . +.SH DESCRIPTION +.I Usepackage +is an environment management program. It is based on the principle of +.I packages +\- collections of executables that share a common set of necessary +environment variables, such as PATH, MANPATH or LD_LIBRARY_PATH. +.PP +For each given +.IR package , +.B use +sources the appropriate environment information into the current shell. +The environment information is specified in packages files, see +.IR PACKAGES . +.PP +The +.B usepackage +executable is the backend program used to generate environment information +suitable for sourcing into a running shell. The +.B use +frontend should be invoked to actually effect changes to the environment, +see +.IR use(1) . +.SS OPTIONS +.TP +.I \-v +Output verbose information to the standard error stream. +.TP +.I \-s +Silence warnings for un-matched packages. This is useful in a shell +.I rc +script when a package is known not to be available on all architectures that +the shell is used on, see +.IR PACKAGES . +.TP +.I \-c +Force +.I csh +style environment output. +.TP +.I \-b +Force bourne shell style environment output. +.TP +.I \-f file +Specify an alternate initial configuration file, see +.IR PACKAGES . +.TP +.I \-l +List available packages and groups, see +.IR ANNOTATIONS +and +.IR GROUPS . +.SH PACKAGES +.I Usepackage +reads package environment information from the configuration file as follows: +.SS LOAD ORDER +When +.I Usepackage +starts up, it loads an initial configutation file, the name of this file may +be given on the command line (see +.IR OPTIONS ), +otherwise it defaults to the builtin name "usepackage.conf" (see +.IR FILES ). +This file is located by searching along a path which defaults to: +.PP +.nf + /usr/etc:~:. +.fi +.PP +This path may be overridden with the PACKAGES_PATH environment variable +(see +.IR ENVIRONMENT ). +A packages file may contain inclusion directives which cause the sourcing of +other files at a given points. An inclusion directive looks like: +.PP +.nf + (include file-name) +.fi +.PP +The same location mechanism is used to find "file-name" as for the initial +configuration file. A package file name may also be given as an absolute file +name or may be shell-style user directory, tilde (~), relative. +.SS SYNTAX +A package file consists of comments, delimited by a leading hash (#), +or package definitions of the form: +.PP +.nf + package platform os version host [<= requires ...] : + variable-def [, variable-def ...] ; +.fi +.PP +The +.IR package , +.IR arch , +.IR os , +.IR release +and +.I host +parts may be simple shell-style patterns of the form: +.TP 15 +* +matches anything. +.TP +foo* +matches "foo", "foobar" etc. +.TP +{foo,bar} +matches "foo" or "bar". +.PP +When +.I Usepackage +searches for the definition for a particular package, it compares each line +in the packages file against the name of the package given (package) and +system-dependant information for the execution host, as obtained by +.IR uname (2). +This information is the hardware implementation (platform), the operating +system name (os), the operating system version (version) and the hostname +(host). Comparisons are case-insensitive. If a match is obtained then the +given variable definitions are processed to modify the environment. A +variable definition may be one of three forms: +.PP +.nf + var-name = "string" + var-name = path-list + var-name += path-list + var-name += "string" +.fi +.PP +The first sets the given variable to a literal string value, the +second sets the given variable to a path list, the third prepends the +current value of a variable with the given path list, and the fourth +interprets the literal string as a path list and prepends it to the current +value of the variable. Path lists are colon (:) separated lists of +directories and may contain shell-style tilde (~), user-relative, directories +which will be expanded automatically (except when the path list is given as a +literal string). When pre-pending paths to a variable, duplicate paths are +removed from the original value first. +.PP +The +.I requires +list specifies the names of other packages which must be sourced into the +environment before the following variables when this line is matched. +.SS GROUPS +In addition to the package definitions in a packages file, there may also be +group definitions. These have the following syntax: +.PP +.nf + group := package [, package ...] ; +.fi +.PP +.I Usepackage +searches for a given package name in the defined groups first, if the given +name matchs a group name then the packages defined as part of that group are +sourced into the environment together. A group definition may not reference +other groups and may not contain patterns. +.SS ANNOTATIONS +In order to give useful package information to the user, annotations may be +placed in the packages file that give summaries of packages. These annotations +have the form: +.PP +.nf + >> name : "description" << +.fi +.PP +.I Usepackage +collects these annotations together and displays them when called with the +.I -l +flag, see +.IR OPTIONS . +These annotations have no impact on the package mechanism and need not +necessarily be beside or correspond to the package definitions (although +this is the sensible way to arrange things). +.SS EXAMPLE +The following fragment of a packages file illustrates the main features: +.PP +.nf + # GNU software is available everywhere: + + >> GNU : "The GNU project software" << + + GNU * * * * : PATH += /usr/local/gnu/bin, + MANPATH += /usr/local/gnu/man ; + + # CVS requires RCS which is found in the GNU package, but + # is only available on SPARC Solaris machines: + + >> CVS : "Concurrent Versions System revision control" << + + CVS sun4* SunOS 5.* * <= GNU : + CVSROOT = /usr/src/cvsroot, + CVSEDITOR = "vi", + PATH += /usr/local/cvs/bin, + MANPATH += /usr/local/cvs/man ; + + # User bin directories (Solaris will run SunOS 4 binaries): + + >> user : "User's own programs" << + + user sun4* SunOS * * : PATH += ~/bin/sun4 ; + user sun4* SunOS 5.* * : PATH += ~/bin/solaris ; + user alpha OSF * * : PATH += ~/bin/alpha ; + + # include standard packages: + + (include packages.standard) + + # security hole: + + dot * * * * : PATH += . ; + + # groups: + + user-setup := standard, user ; + programmer-setup := standard, CVS, user, dot ; +.fi +.PP +Note the use of Operating System version numbers to distinguish between +SunOS 4 and Solaris (SunOS 5), the use of "sun4*" to match the multiple +different platform versions of SPARC machines (sun4m, sun4c, etc.) and the +fact that package "user" on a SPARC Solaris machine will match both of the +first two lines of the "user" package section, resulting in the "solaris" +directory and the "sun4" directory being added into the PATH. +.PP +Assuming the appropriate shell setup script has been sources (see +.IR SYNOPSIS ), +then the following command will cause the CVS environment (including the +GNU environment) to be sourced: +.PP +.nf + $ use CVS +.fi +.PP +Note that on a DEC Alpha machine, this will generate a warning like: +.PP +.nf + $ use CVS + warning: no match for package `CVS' on this host. +.fi +.PP +In a shell script which is executed on a number of different platforms (such +as the shell startup script). These warnings may be silenced (see +.IR OPTIONS ). +.SH FILES +.TP 15 +.SB /usr/share/usepackage/usepackage.conf +The default master packages file. +.TP +.SB /usr/share/usepackage/use.csh +Shell setup for csh and derivatives. +.TP +.SB /usr/share/usepackage/use.bsh +Shell setup for bourne shell and derivatives. +.TP +.SB /usr/share/usepackage/use.ksh +Shell setup for ksh. +.TP +.SB /usr/bin/usepackage +The underlying +.I Usepackage +executable. +.SH ENVIRONMENT +Other than the reading and re-definition of environment variables for package +setup, +.B use +also uses the following environment variables for user configuration: +.TP 15 +.SB PACKAGES_PATH +Colon-separated path list giving the directories to search for configuration +files. Shell-style tilde (~) user-directory escapes are expanded. +.SH COPYRIGHT +.nf +Usepackage Environment Manager +Copyright (C) 1995-2002 Jonathan Hogg +.fi +.PP +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +.PP +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +.SH SEE ALSO +use(1), csh(1), sh(1), ksh(1), env(1), environ(5), getenv(3C), uname(1), +uname(2) +