This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] setup - help and local dir command line options was "Re: Setup Command Line Options"


>Barry Buchbinder <bbuchbinder@yahoo.com> wrote:

>> In his recent announcement of a new Setup beta,
>> Robbert Collins mentioned new command line options.
>> Are these (both new and old options) documented
>> anywhere?

>Unfortunately not yet. Here's a list. A help option will probably happen
>soon.

Below there are two patches:

1. A patch implementing a help option, it prints it output to the setup.log
(main.cc)

2. Additional a patch to allow setting the local dir from the commandline.
(localdir.cc)


BTW: A few tests of the unattended mode shows me that the default case is to
upgrade all installed packages to the newest release and that there is still
some work needed to get it full running. I have seen some ideas like mvc and
seperating the gui from the core
http://www.cygwin.com/ml/cygwin-apps/2003-01/msg00086.html, so i've got the
idea to send in a proposal for the basic operational and naming of command
line switches. If nobody like this ideas, forget  it.

My proposal is based on the fact, that many unix users knows already rpm or
dpkg and how they do the installing job, so using such interface makes such
things easier.

BTW: I've build a shell script to emulate to -q [-l -f] options of rpm to
retrieve often used informations (see
http://kde-cygwin.sf.net/snapshots/cygfind). I use this script on a daily
base and have designed this script in the mentioned way, because I (probably
others too) don't like to have many different ways to the same thing (in
this case installing).

The KDE-Cygwin team for example is looking for a way how to make it easier
to install cygwin packages together with the KDE-cygwin releases on the fly
from cd or over the net or a local fileserver or whatever else for which a
command line installer would be very nice. This installer could be driven by
another installer like the kde-cygwin one) to make the live easier for the
enduser.

So I've tried to extract some usefull options from rpm and dpkg, may be the
new installer understand both sets.

Usage: rpm [OPTION...]

generic options
  -r, --root=ROOT                  use ROOT as top level directory (default:
"/")

Query options
  -q, --query=<package>+
  -l, --list                       list files in package
  -s, --state                      display the states of the listed files
  -a, --all                        query/verify all packages
  -f, --file                       query/verify package(s) owning file
  -g, --group                      query/verify package(s) in group
(categorie)
  -p, --package                    query/verify a package file
  --whatrequires                   query/verify the package(s) which require
a
                                   dependency
  --whatprovides                   query/verify the package(s) which provide
a
                                   dependency

Install/Upgrade/Erase options:
  -i, --install=<package>+         install package(s)
  -U, --upgrade=<packagefile>+     upgrade package(s)
  -e, --erase=<package>+           erase (uninstall) package
  -F, --freshen=<packagefile>+     upgrade package(s) if already installed
  --ignoresize                     don't check disk space before installing
  --justdb                         update the database, but do not modify
the
                                   filesystem
  --nodeps                         do not verify package dependencies
  --nomd5                          don't verify MD5 digest of files
  --noscripts                      do not execute package scriptlet(s)
  --oldpackage                     upgrade to an old version of the package
                                   (--force on upgrades does this
                                   automatically)
  --percent                        print percentages as package installs
  --prefix=<dir>                   relocate the package to <dir>, if
                                   relocatable
  --replacepkgs                    reinstall if the package is already
present
  --test                           don't install, but tell if it would work
or
                                   not

Verify options (with -V or --verify):
  --nomd5                          don't verify MD5 digest of files
  --nofiles                        don't verify files in package
  --nodeps                         don't verify package dependencies
  --noscript                       don't execute verify script(s)
  -a, --all                        query/verify all packages
  -f, --file                       query/verify package(s) owning file
  -g, --group                      query/verify package(s) in group
  -p, --package                    query/verify a package file
  --specfile                       query a spec file
  --whatrequires                   query/verify the package(s) which require
a
                                   dependency
  --whatprovides                   query/verify the package(s) which provide
a
                                   dependency

package = <single package> | <category>

dpkg:

  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...
  dpkg -r|--remove | -P|--purge <package name> ... | -a|--pending
  dpkg --get-selections [<pattern> ...]    get list of selections to stdout
  dpkg --set-selections                    set package selections from stdin
  dpkg --update-avail <Packages-file>      replace available packages info
  dpkg --merge-avail <Packages-file>       merge with info from file
  dpkg --clear-avail                       erase existing available info
  dpkg -s|--status <package-name> ...      display package status details
  dpkg -p|--print-avail <package-name> ... display available version details
  dpkg -L|--listfiles <package-name> ...   list files `owned' by package(s)
  dpkg -l|--list [<pattern> ...]           list packages concisely
  dpkg -S|--search <pattern> ...           find package(s) owning file(s)
  dpkg -C|--audit                          check for broken package(s)
  dpkg --print-architecture                print target architecture (uses
GCC)
  dpkg --print-gnu-build-architecture      print GNU version of target arch
  dpkg --print-installation-architecture   print host architecture (for
inst'n)
  dpkg --compare-versions <a> <rel> <b>    compare version numbers - see
below
  dpkg --help | --version                  show this help / version number
  dpkg --force-help | -Dh|--debug=help     help on forcing resp. debugging
  dpkg --licence                           print copyright licensing terms

Options:
  --admindir=<directory>     Use <directory> instead of /usr/lib/db
  --root=<directory>         Install on alternative system rooted elsewhere
  --instdir=<directory>      Change inst'n root without changing admin dir
  -O|--selected-only         Skip packages not selected for install/upgrade
  -E|--skip-same-version     Skip packages whose same version is installed
  -G|--refuse-downgrade      Skip packages with earlier version than
installed
  -B|--auto-deconfigure      Install even if it would break some other
package
  --no-debsig                Do no try to verify package signatures
  --no-act                   Just say what we would do - don't do it
  -D|--debug=<octal>         Enable debugging - see -Dhelp or --debug=help
  --ignore-depends=<package>,... Ignore dependencies involving <package>
  --force-...                    Override problems - see --force-help
  --no-force-...|--refuse-...    Stop when problems encountered


setup.exe (with my patches)

 -D --download                          Download from internet
 -L --local-install                     Install from local directory
 -s --site                              Download site
 -R --root                              Root installation directory
 -q --quiet-mode                        Unattended setup mode
 -h --help                              print help
 -p --local-dir                         Local package directory
 -r --no-replaceonreboot                Disable replacing in-use files on
next
                                        reboot.
 -5 --no-md5                            Suppress MD5 checksum verification
 -n --no-shortcuts                      Disable creation of desktop and
start
                                        menu shortcuts
 -N --no-startmenu                      Disable creation of start menu
shortcut
 -d --no-desktop                        Disable creation of desktop shortcut
 -A --disable-buggy-antivirus           Disable known or suspected buggy
anti
                                        virus software packages during
                                        execution.


Ralf



Changelog

2003-10-25  Ralf Habacker  <ralf.habacker@freenet.de>

	* main.cc: Added a help command line options.
	* localdir.cc: Added a command line option for
      setting the local package dir.

Attachment: help_and_local_dir_cmd_options.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]