~ubuntu-branches/ubuntu/jaunty/gnupg2/jaunty-security

« back to all changes in this revision

Viewing changes to doc/gnupg.info-1

  • Committer: Bazaar Package Importer
  • Author(s): Eric Dorland
  • Date: 2008-04-28 03:22:20 UTC
  • mfrom: (1.1.10 upstream)
  • mto: This revision was merged to the branch mainline in revision 6.
  • Revision ID: james.westby@ubuntu.com-20080428032220-a8rl6klzavd4nvr4
Tags: 2.0.9-2
* The "I've neglected you too long" release.

* debian/control: 
  - Add recommends on gnupg-agent for gpgsm and gnupg2, since they need 
    it under most circumstances. (Closes: #459462, #477691)
  - Depend on pinentry instead of recommend, and move pinentry-gtk2 to the 
    front of the alternatives list. (Closes: #462951)
* keyserver/gpgkeys_curl.c, keyserver/gpgkeys_hkp.c: Fix FTBFS with gcc
  4.3 strictness on bitfields combined with curl. (Closes: #476999)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
This is gnupg.info, produced by makeinfo version 4.8 from gnupg.texi.
2
2
 
3
 
   This is the `The GNU Privacy Guard Manual' (version 2.0.7,
4
 
August 2007).
 
3
   This is the `The GNU Privacy Guard Manual' (version 2.0.9,
 
4
March 2008).
5
5
 
6
6
   Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software Foundation,
7
7
Inc.
24
24
Using the GNU Privacy Guard
25
25
***************************
26
26
 
27
 
This is the `The GNU Privacy Guard Manual' (version 2.0.7, August 2007).
 
27
This is the `The GNU Privacy Guard Manual' (version 2.0.9, March 2008).
28
28
 
29
29
   Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software Foundation,
30
30
Inc.
165
165
 
166
166
   Please make sure that a proper pinentry program has been installed
167
167
under the default filename (which is system dependant) or use the
168
 
option `pinentry-pgm' to specify the full name of that program.  It is
169
 
often useful to install a symbolic link from the actual used pinentry
170
 
(e.g. `/usr/bin/pinentry-gtk') to the expected one (e.g.
 
168
option `pinentry-program' to specify the full name of that program.  It
 
169
is often useful to install a symbolic link from the actual used
 
170
pinentry (e.g. `/usr/bin/pinentry-gtk') to the expected one (e.g.
171
171
`/usr/bin/pinentry').
172
172
 
173
173
*Note Option Index::,for an index to `GPG-AGENT''s commands and options.
187
187
2.1 Commands
188
188
============
189
189
 
190
 
Commands are not distinguished from options execpt for the fact that
191
 
only one one command is allowed.
 
190
Commands are not distinguished from options except for the fact that
 
191
only one command is allowed.
192
192
 
193
193
`--version'
194
194
     Print the program version and licensing information.  Not that you
274
274
          all of the debug messages you can get
275
275
 
276
276
     How these messages are mapped to the actual debugging flags is not
277
 
     specified and may change with newer releaes of this program. They
 
277
     specified and may change with newer releases of this program. They
278
278
     are however carefully selected to best aid in debugging.
279
279
 
280
280
`--debug FLAGS'
318
318
     attach a debugger.
319
319
 
320
320
`--no-detach'
321
 
     Don't detach the process from the console.  This is manly usefule
 
321
     Don't detach the process from the console.  This is mainly useful
322
322
     for debugging.
323
323
 
324
324
`-s'
326
326
`-c'
327
327
`--csh'
328
328
     Format the info output in daemon mode for use with the standard
329
 
     Bourne shell respective the C-shell . The default is to guess it
330
 
     based on the environment variable `SHELL' which is in almost all
331
 
     cases sufficient.
 
329
     Bourne shell or the C-shell respectively.  The default is to guess
 
330
     it based on the environment variable `SHELL' which is correct in
 
331
     almost all cases.
332
332
 
333
333
`--write-env-file FILE'
334
334
     Often it is required to connect to the agent from a process not
343
343
          eval `cut -d= -f 1 < FILE | xargs echo export`
344
344
 
345
345
`--no-grab'
346
 
     Tell the pinentryo not to grab the keyboard and mouse.  This option
347
 
     should in general not be used to avaoid X-sniffing attacks.
 
346
     Tell the pinentry not to grab the keyboard and mouse.  This option
 
347
     should in general not be used to avoid X-sniffing attacks.
348
348
 
349
349
`--log-file FILE'
350
350
     Append all logging output to FILE.  This is very helpful in seeing
353
353
`--allow-mark-trusted'
354
354
     Allow clients to mark keys as trusted, i.e. put them into the
355
355
     `trustlist.txt' file.  This is by default not allowed to make it
356
 
     harder for users to inadvertly accept Root-CA keys.
 
356
     harder for users to inadvertently accept Root-CA keys.
357
357
 
358
358
`--ignore-cache-for-signing'
359
359
     This option will let `gpg-agent' bypass the passphrase cache for
362
362
     takes precedence.
363
363
 
364
364
`--default-cache-ttl N'
365
 
     Set the time a cache entry is valid to N seconds.  The default are
 
365
     Set the time a cache entry is valid to N seconds.  The default is
366
366
     600 seconds.
367
367
 
368
368
`--default-cache-ttl-ssh N'
369
369
     Set the time a cache entry used for SSH keys is valid to N
370
 
     seconds.  The default are 1800 seconds.
 
370
     seconds.  The default is 1800 seconds.
371
371
 
372
372
`--max-cache-ttl N'
373
373
     Set the maximum time a cache entry is valid to N seconds.  After
374
 
     this time a cache entry will get expired even if it has been
375
 
     accessed recently.  The default are 2 hours (7200 seconds).
 
374
     this time a cache entry will be expired even if it has been
 
375
     accessed recently.  The default is 2 hours (7200 seconds).
376
376
 
377
377
`--max-cache-ttl-ssh N'
378
378
     Set the maximum time a cache entry used for SSH keys is valid to N
379
 
     seconds.  After this time a cache entry will get expired even if
380
 
     it has been accessed recently.  The default are 2 hours (7200
381
 
     seconds).
 
379
     seconds.  After this time a cache entry will be expired even if it
 
380
     has been accessed recently.  The default is 2 hours (7200 seconds).
382
381
 
383
382
`--enforce-passphrase-constraints'
384
383
     Enforce the passphrase constraints by not allowing the user to
405
404
     list of pattern or even against a complete dictionary is not very
406
405
     effective to enforce good passphrases.  Users will soon figure up
407
406
     ways to bypass such a policy.  A better policy is to educate users
408
 
     on good security behavior and optional to run a passphrase cracker
409
 
     regularly on all users passphrases t catch the very simple ones.
 
407
     on good security behavior and optionally to run a passphrase
 
408
     cracker regularly on all users passphrases to catch the very
 
409
     simple ones.
410
410
 
411
411
`--max-passphrase-days N'
412
412
     Ask the user to change the passphrase if N days have passed since
418
418
 
419
419
`--pinentry-program FILENAME'
420
420
     Use program FILENAME as the PIN entry.  The default is installation
421
 
     dependend and can be shown with the `--version' command.
 
421
     dependent and can be shown with the `--version' command.
422
422
 
423
423
`--pinentry-touch-file FILENAME'
424
 
     By default the file name of the socket gpg-agent is listening for
 
424
     By default the filename of the socket gpg-agent is listening for
425
425
     requests is passed to Pinentry, so that it can touch that file
426
426
     before exiting (it does this only in curses mode).  This option
427
427
     changes the file passed to Pinentry to FILENAME.  The special name
431
431
 
432
432
`--scdaemon-program FILENAME'
433
433
     Use program FILENAME as the Smartcard daemon.  The default is
434
 
     installation dependend and can be shown with the `--version'
 
434
     installation dependent and can be shown with the `--version'
435
435
     command.
436
436
 
437
437
`--disable-scdaemon'
446
446
     named `S.gpg-agent', located in the home directory, and not create
447
447
     a random socket below a temporary directory.  Tools connecting to
448
448
     `gpg-agent' should first try to connect to the socket given in
449
 
     environment variable GPG_AGENT_INFO and the fall back to this
 
449
     environment variable GPG_AGENT_INFO and then fall back to this
450
450
     socket.  This option may not be used if the home directory is
451
451
     mounted as a remote file system.  Note, that
452
452
     `--use-standard-socket' is the default on Windows systems.
456
456
`--ttytype STRING'
457
457
`--lc-type STRING'
458
458
`--lc-messages STRING'
 
459
`--xauthority STRING'
459
460
     These options are used with the server mode to pass localization
460
461
     information.
461
462
 
462
463
`--keep-tty'
463
464
`--keep-display'
464
 
     Ignore requests to change change the current `tty' respective the X
465
 
     window system's `DISPLAY' variable.  This is useful to lock the
 
465
     Ignore requests to change the current `tty' or X window system's
 
466
     `DISPLAY' variable respectively.  This is useful to lock the
466
467
     pinentry to pop up at the `tty' or display you started the agent.
467
468
 
468
469
`--enable-ssh-support'
470
471
 
471
472
     In this mode of operation, the agent does not only implement the
472
473
     gpg-agent protocol, but also the agent protocol used by OpenSSH
473
 
     (through a seperate socket).  Consequently, it should possible to
474
 
     use the gpg-agent as a drop-in replacement for the well known
 
474
     (through a separate socket).  Consequently, it should be possible
 
475
     to use the gpg-agent as a drop-in replacement for the well known
475
476
     ssh-agent.
476
477
 
477
478
     SSH Keys, which are to be used through the agent, need to be added
482
483
     for encrypting the newly received key and storing it in a
483
484
     gpg-agent specific directory.
484
485
 
485
 
     Once, a key has been added to the gpg-agent this way, the gpg-agent
 
486
     Once a key has been added to the gpg-agent this way, the gpg-agent
486
487
     will be ready to use the key.
487
488
 
488
489
     Note: in case the gpg-agent receives a signature request, the user
491
492
     contain a mechanism for telling the agent on which
492
493
     display/terminal it is running, gpg-agent's ssh-support will use
493
494
     the TTY or X display where gpg-agent has been started.  To switch
494
 
     this display to the current one, the follwing command may be used:
 
495
     this display to the current one, the following command may be used:
495
496
 
496
497
          echo UPDATESTARTUPTTY | gpg-connect-agent
497
498
 
569
570
     This file is used when support for the secure shell agent protocol
570
571
     has been enabled (*note option --enable-ssh-support::). Only keys
571
572
     present in this file are used in the SSH protocol.  The `ssh-add'
572
 
     tool y be used to add new entries to this file; you may also add
 
573
     tool may be used to add new entries to this file; you may also add
573
574
     them manually.  Comment lines, indicated by a leading hash mark,
574
575
     as well as empty lines are ignored.  An entry starts with optional
575
 
     white spaces, followed by the keygrip of the key given as 40 hex
 
576
     whitespace, followed by the keygrip of the key given as 40 hex
576
577
     digits, optionally followed by the caching TTL in seconds and
577
 
     another optional field for arbitrary flags.  A `!' may be
578
 
     prepended to the keygrip to disable this entry.
 
578
     another optional field for arbitrary flags.  The keygrip may be
 
579
     prefixed with a `!' to disable this entry.
579
580
 
580
 
     The follwoing example lists exactly one key.  Note that keys
 
581
     The following example lists exactly one key.  Note that keys
581
582
     available through a OpenPGP smartcard in the active smartcard
582
 
     reader are implictly added to this list; i.e. there is no need to
 
583
     reader are implicitly added to this list; i.e. there is no need to
583
584
     list them.
584
585
 
585
586
            # Key added on 2005-02-25 15:08:29
594
595
   Note that on larger installations, it is useful to put predefined
595
596
files into the directory `/etc/skel/.gnupg/' so that newly created
596
597
users start up with a working configuration.  For existing users the a
597
 
small helper script is provied to create these files (*note
 
598
small helper script is provided to create these files (*note
598
599
addgnupghome::).
599
600
 
600
601
 
609
610
   Here is a list of supported signals:
610
611
 
611
612
`SIGHUP'
612
 
     This signal flushes all chached passphrases and if the program has
 
613
     This signal flushes all cached passphrases and if the program has
613
614
     been started with a configuration file, the configuration file is
614
615
     read again.  Only certain options are honored: `quiet', `verbose',
615
616
     `debug', `debug-all', `debug-level', `no-grab',
646
647
 
647
648
   An alternative way is by replacing `ssh-agent' with `gpg-agent'.  If
648
649
for example `ssh-agent' is started as part of the Xsession
649
 
intialization you may simply replace `ssh-agent' by a script like:
 
650
initialization, you may simply replace `ssh-agent' by a script like:
650
651
 
651
652
     #!/bin/sh
652
653
 
1132
1133
`version'
1133
1134
     Return the version of the program.
1134
1135
 
 
1136
`pid'
 
1137
     Return the process id of the process.
 
1138
 
1135
1139
`socket_name'
1136
1140
     Return the name of the socket used to connect the agent.
1137
1141
 
1179
1183
3.1 Commands
1180
1184
============
1181
1185
 
1182
 
Commands are not distinguished from options execpt for the fact that
 
1186
Commands are not distinguished from options except for the fact that
1183
1187
only one command is allowed.
1184
1188
 
1185
1189
   `gpg2' may be run with no commands, in which case it will perform a
1817
1821
3.2.1 How to change the configuration
1818
1822
-------------------------------------
1819
1823
 
1820
 
These options are used to change the configuraton and are usually found
 
1824
These options are used to change the configuration and are usually found
1821
1825
in the option file.
1822
1826
 
1823
1827
`--default-key NAME'
2034
2038
     Set the name of the native character set. This is used to convert
2035
2039
     some informational strings like user IDs to the proper UTF-8
2036
2040
     encoding.  Note that this has nothing to do with the character set
2037
 
     of data to be encrypted or signed; GnuPG does not recode user
2038
 
     supplied data. If this option is not used, the default character
2039
 
     set is determined from the current locale. A verbosity level of 3
2040
 
     shows the chosen set.  Valid values for `name' are:
 
2041
     of data to be encrypted or signed; GnuPG does not recode
 
2042
     user-supplied data. If this option is not used, the default
 
2043
     character set is determined from the current locale. A verbosity
 
2044
     level of 3 shows the chosen set.  Valid values for `name' are:
2041
2045
 
2042
2046
    iso-8859-1
2043
2047
          This is the Latin 1 set.
2188
2192
     following arguments, in the order they are to be tried:
2189
2193
 
2190
2194
    cert
2191
 
          locate a key using DNS CERT, as specified in 2538bis
2192
 
          (currently in draft): http://www.josefsson.org/rfc2538bis/
 
2195
          locate a key using DNS CERT, as specified in rfc4398.
2193
2196
 
2194
2197
    pka
2195
2198
          locate a key using DNS PKA.
2677
2680
     OpenPGP states that an implementation should generate v4 signatures
2678
2681
     but PGP versions 5 through 7 only recognize v4 signatures on key
2679
2682
     material. This option forces v3 signatures for signatures on data.
2680
 
     Note that this option overrides `--ask-sig-expire', as v3
2681
 
     signatures cannot have expiration dates. `--no-force-v3-sigs'
2682
 
     disables this option.
 
2683
     Note that this option implies `--ask-sig-expire',
 
2684
     `--sig-policy-url', `--sig-notation', and `--sig-keyserver-url',
 
2685
     as these features cannot be used with v3 signatures.
 
2686
     `--no-force-v3-sigs' disables this option.
2683
2687
 
2684
2688
`--force-v4-certs'
2685
2689
`--no-force-v4-certs'
2769
2773
`--openpgp'
2770
2774
     Reset all packet, cipher and digest options to strict OpenPGP
2771
2775
     behavior. Use this option to reset all previous options like
2772
 
     `--rfc1991', `--force-v3-sigs', `--s2k-*', `--cipher-algo',
2773
 
     `--digest-algo' and `--compress-algo' to OpenPGP compliant values.
2774
 
     All PGP workarounds are disabled.
 
2776
     `--s2k-*', `--cipher-algo', `--digest-algo' and `--compress-algo'
 
2777
     to OpenPGP compliant values. All PGP workarounds are disabled.
 
2778
 
 
2779
`--rfc4880'
 
2780
     Reset all packet, cipher and digest options to strict RFC-4880
 
2781
     behavior. Note that this is currently the same thing as
 
2782
     `--openpgp'.
2775
2783
 
2776
2784
`--rfc2440'
2777
2785
     Reset all packet, cipher and digest options to strict RFC-2440
2778
 
     behavior. Note that this is currently the same thing as
2779
 
     `--openpgp'.
 
2786
     behavior.
2780
2787
 
2781
2788
`--rfc1991'
2782
2789
     Try to be more RFC-1991 (PGP 2.x) compliant.
2790
2797
     common baseline.
2791
2798
 
2792
2799
     This option implies `--rfc1991 --disable-mdc --no-force-v4-certs
2793
 
     --no-sk-comment --escape-from-lines --force-v3-sigs
2794
 
     --no-ask-sig-expire --no-ask-cert-expire --cipher-algo IDEA
2795
 
     --digest-algo MD5 --compress-algo 1'. It also disables
 
2800
     --no-sk-comment --escape-from-lines --force-v3-sigs --cipher-algo
 
2801
     IDEA --digest-algo MD5 --compress-algo ZIP'. It also disables
2796
2802
     `--textmode' when encrypting.
2797
2803
 
2798
2804
`--pgp6'
2804
2810
     does not understand signatures made by signing subkeys.
2805
2811
 
2806
2812
     This option implies `--disable-mdc --no-sk-comment
2807
 
     --escape-from-lines --force-v3-sigs --no-ask-sig-expire'.
 
2813
     --escape-from-lines --force-v3-sigs'.
2808
2814
 
2809
2815
`--pgp7'
2810
2816
     Set up all options to be as PGP 7 compliant as possible. This is
2864
2870
`--logger-fd `n''
2865
2871
     Write log output to file descriptor `n' and not to stderr.
2866
2872
 
 
2873
`--log-file `file''
2867
2874
`--logger-file `file''
2868
2875
     Same as `--logger-fd', except the logger data is written to file
2869
 
     `file'.
 
2876
     `file'.  Note that `--log-file' is only implemented for GnuPG-2.
2870
2877
 
2871
2878
`--attribute-fd `n''
2872
2879
     Write attribute subpackets to the file descriptor `n'. This is most
2951
2958
 
2952
2959
`--for-your-eyes-only'
2953
2960
`--no-for-your-eyes-only'
2954
 
     Set the `for your eyes only' flag in the message. This causes GnuPG
2955
 
     to refuse to save the file unless the `--output' option is given,
2956
 
     and PGP to use the "secure viewer" with a Tempest-resistant font to
2957
 
     display the message. This option overrides `--set-filename'.
2958
 
     `--no-for-your-eyes-only' disables this option.
 
2961
     Set the `for your eyes only' flag in the message. This causes
 
2962
     GnuPG to refuse to save the file unless the `--output' option is
 
2963
     given, and PGP to use a "secure viewer" with a claimed
 
2964
     Tempest-resistant font to display the message. This option
 
2965
     overrides `--set-filename'.  `--no-for-your-eyes-only' disables
 
2966
     this option.
2959
2967
 
2960
2968
`--use-embedded-filename'
2961
2969
`--no-use-embedded-filename'
3253
3261
     with `--with-colons' set.
3254
3262
 
3255
3263
`--gpgconf-list'
3256
 
     This command is simliar to `--list-config' but in general only
 
3264
     This command is similar to `--list-config' but in general only
3257
3265
     internally used by the `gpgconf' tool.
3258
3266
 
3259
3267
`--gpgconf-test'
3260
3268
     This is more or less dummy action.  However it parses the
3261
 
     configuration file and returns with failure if the configuraion
 
3269
     configuration file and returns with failure if the configuration
3262
3270
     file would prevent `gpg' from startup.  Thus it may be used to run
3263
3271
     a syntax check on the configuration file.
3264
3272
 
3322
3330
start up with a working configuration.  For existing users the a small
3323
3331
helper script is provided to create these files (*note addgnupghome::).
3324
3332
 
3325
 
   For internal purposes `gpg2' creates and maintaines a few other
 
3333
   For internal purposes `gpg2' creates and maintains a few other
3326
3334
files; They all live in in the current home directory (*note option
3327
3335
--homedir::).  Only the `gpg2' may modify these files.
3328
3336
 
3370
3378
     its documentation, this variable is set to the correct value. The
3371
3379
     option `--gpg-agent-info' can be used to override it.
3372
3380
 
 
3381
PINENTRY_USER_DATA
 
3382
     This value is passed via gpg-agent to pinentry.  It is useful to
 
3383
     convey extra information to a custom pinentry
 
3384
 
3373
3385
COLUMNS
3374
3386
LINES
3375
3387
     Used to size some displays to the full size of the screen.
3381
3393
     the file with the translation is loaded from
3382
3394
     `GPGDIR/gnupg.nls/LANGID.mo'.  Here GPGDIR is the directory out of
3383
3395
     which the gpg binary has been laoded.  If it can't be loaded the
3384
 
     Registry is tried as a fallback.
 
3396
     Registry is tried and as last resort the native Windows locale
 
3397
     system is used.
3385
3398
 
3386
3399
 
3387
3400
 
3516
3529
4.1 Commands
3517
3530
============
3518
3531
 
3519
 
Commands are not distinguished from options execpt for the fact that
 
3532
Commands are not distinguished from options except for the fact that
3520
3533
only one command is allowed.
3521
3534
 
3522
3535
* Menu:
3755
3768
     not work.  Under Windows this option is ignored because the system
3756
3769
     dirmngr is always used.
3757
3770
 
 
3771
`--disable-dirmngr'
 
3772
     Entirely disable the use of the Dirmngr.
 
3773
 
3758
3774
`--no-secmem-warning'
3759
3775
     Don't print a warning when the so called "secure memory" can't be
3760
3776
     used.
3804
3820
 
3805
3821
`--enable-ocsp'
3806
3822
`--disable-ocsp'
3807
 
     Be default OCSP checks are disabled.  The enable opton may be used
3808
 
     to enable OCSP checks via Dirmngr.  If CRL checks are also
 
3823
     Be default OCSP checks are disabled.  The enable option may be
 
3824
     used to enable OCSP checks via Dirmngr.  If CRL checks are also
3809
3825
     enabled, CRLs will be used as a fallback if for some reason an
3810
3826
     OCSP request won't succeed.  Note, that you have to allow OCSP
3811
3827
     requests in Dirmngr's configuration too (option `--allow-ocsp' and
3812
3828
     configure dirmngr properly.  If you don't do so you will get the
3813
3829
     error code `Not supported'.
3814
3830
 
 
3831
`--auto-issuer-key-retrieve'
 
3832
     If a required certificate is missing while validating the chain of
 
3833
     certificates, try to load that certificate from an external
 
3834
     location.  This usually means that Dirmngr is employed t search
 
3835
     for the certificate.  Note that this option makes a "web bug" like
 
3836
     behavior possible.  LDAP server operators can see which keys you
 
3837
     request, so by sending you a message signed by a brand new key
 
3838
     (which you naturally will not have on your local keybox), the
 
3839
     operator can tell both your IP address and the time when you
 
3840
     verified the signature.
 
3841
 
3815
3842
`--validation-model NAME'
3816
3843
     This option changes the default validation model.  The only
3817
3844
     possible values are "shell" (which is the default) and "chain"
3922
3949
4.2.5 Doing things one usually don't want to do.
3923
3950
------------------------------------------------
3924
3951
 
 
3952
`--extra-digest-algo NAME'
 
3953
     Sometimes signatures are broken in that they announce a different
 
3954
     digest algorithm than actually used.  `gpgsm' uses a one-pass data
 
3955
     processing model and thus needs to rely on the announcde digest
 
3956
     algorithms to properly hash the data.  As a workaround this option
 
3957
     may be used to tell gpg to also hash the data using the algorithm
 
3958
     NAME; this slows processing down a little bit but allows to verify
 
3959
     such broken signatures.  If `gpgsm' prints an error like "digest
 
3960
     algo 8 has not been enabled" you may want to try this option, with
 
3961
     `SHA256' for NAME.
 
3962
 
3925
3963
`--faked-system-time EPOCH'
3926
3964
     This option is only useful for testing; it sets the system time
3927
3965
     back or forth to EPOCH which is the number of seconds elapsed
3951
3989
          all of the debug messages you can get
3952
3990
 
3953
3991
     How these messages are mapped to the actual debugging flags is not
3954
 
     specified and may change with newer releaes of this program. They
 
3992
     specified and may change with newer releases of this program. They
3955
3993
     are however carefully selected to best aid in debugging.
3956
3994
 
3957
3995
`--debug FLAGS'
4012
4050
     is only useful for the regression tests included with this package
4013
4051
     and may be revised or removed at any time without notice.
4014
4052
 
 
4053
`--no-common-certs-import'
 
4054
     Suppress the import of common certificates on keybox creation.
 
4055
 
4015
4056
 
4016
4057
   All the long options may also be given in the configuration file
4017
4058
after stripping off the two leading dashes.
4054
4095
     signatures are.  Comments start with a hash mark and empty lines
4055
4096
     are ignored.  Lines do have a length limit but this is not a
4056
4097
     serious limitation as the format of the entries is fixed and
4057
 
     checked by gpgsm: A non-comment line starts with optional white
4058
 
     spaces, followed by exactly 40 hex character, white space and a
4059
 
     lowercased 2 letter country code.  Additional data delimited with
 
4098
     checked by gpgsm: A non-comment line starts with optional
 
4099
     whitespace, followed by exactly 40 hex character, white space and
 
4100
     a lowercased 2 letter country code.  Additional data delimited with
4060
4101
     by a white space is current ignored but might late be used for
4061
4102
     other purposes.
4062
4103
 
4063
4104
     Note that even if a certificate is listed in this file, this does
4064
 
     not mean that thecertificate is trusted; in general the
 
4105
     not mean that the certificate is trusted; in general the
4065
4106
     certificates listed in this file need to be listed also in
4066
4107
     `trustlist.txt'.
4067
4108
 
4086
4127
     certificates, appropriate notices will be shown to indicate this
4087
4128
     fact.
4088
4129
 
 
4130
`help.txt'
 
4131
     This is plain text file with a few help entries used with
 
4132
     `pinentry' as well as a large list of help items for `gpg' and
 
4133
     `gpgsm'.  The standard file has English help texts; to install
 
4134
     localized versions use filenames like `help.LL.txt' with LL
 
4135
     denoting the locale.  GnuPG comes with a set of predefined help
 
4136
     files in the data directory (e.g. `/usr/share/gnupg/help.de.txt')
 
4137
     and allows overriding of any help item by help files stored in the
 
4138
     system configuration directory (e.g. `/etc/gnupg/help.de.txt').
 
4139
     For a reference of the help file's syntax, please see the installed
 
4140
     `help.txt' file.
 
4141
 
4089
4142
 
4090
4143
   Note that on larger installations, it is useful to put predefined
4091
4144
files into the directory `/etc/skel/.gnupg/' so that newly created users
4212
4265
* GPGSM EXPORT::          Export certificates.
4213
4266
* GPGSM IMPORT::          Import certificates.
4214
4267
* GPGSM DELETE::          Delete certificates.
 
4268
* GPGSM GETINFO::         Information about the process
4215
4269
 
4216
4270
 
4217
4271
File: gnupg.info,  Node: GPGSM ENCRYPT,  Next: GPGSM DECRYPT,  Up: GPGSM Protocol
4459
4513
keys; a helper program is used for that.
4460
4514
 
4461
4515
 
4462
 
File: gnupg.info,  Node: GPGSM DELETE,  Prev: GPGSM IMPORT,  Up: GPGSM Protocol
 
4516
File: gnupg.info,  Node: GPGSM DELETE,  Next: GPGSM GETINFO,  Prev: GPGSM IMPORT,  Up: GPGSM Protocol
4463
4517
 
4464
4518
4.7.9 Delete certificates
4465
4519
-------------------------
4466
4520
 
4467
 
To delete certificate the command
 
4521
To delete a certificate the command
4468
4522
 
4469
4523
       DELKEYS PATTERN
4470
4524
 
4476
4530
is returned.
4477
4531
 
4478
4532
 
 
4533
File: gnupg.info,  Node: GPGSM GETINFO,  Prev: GPGSM DELETE,  Up: GPGSM Protocol
 
4534
 
 
4535
4.7.10 Return information about the process
 
4536
-------------------------------------------
 
4537
 
 
4538
This is a multipurpose function to return a variety of information.
 
4539
 
 
4540
     GETINFO WHAT
 
4541
 
 
4542
   The value of WHAT specifies the kind of information returned:
 
4543
`version'
 
4544
     Return the version of the program.
 
4545
 
 
4546
`pid'
 
4547
     Return the process id of the process.
 
4548
 
 
4549
 
4479
4550
File: gnupg.info,  Node: Invoking SCDAEMON,  Next: Specify a User ID,  Prev: Invoking GPGSM,  Up: Top
4480
4551
 
4481
4552
5 Invoking the SCDAEMON
4502
4573
5.1 Commands
4503
4574
============
4504
4575
 
4505
 
Commands are not distinguished from options execpt for the fact that
4506
 
only one one command is allowed.
 
4576
Commands are not distinguished from options except for the fact that
 
4577
only one command is allowed.
4507
4578
 
4508
4579
`--version'
4509
4580
     Print the program version and licensing information.  Not that you
4578
4649
          all of the debug messages you can get
4579
4650
 
4580
4651
     How these messages are mapped to the actual debugging flags is not
4581
 
     specified and may change with newer releaes of this program. They
 
4652
     specified and may change with newer releases of this program. They
4582
4653
     are however carefully selected to best aid in debugging.
4583
4654
 
4584
4655
          Note: All debugging options are subject to change and thus
4641
4712
     directory to `/tmp' when running in `--server' mode.
4642
4713
 
4643
4714
`--no-detach'
4644
 
     Don't detach the process from the console.  This is manly usefule
 
4715
     Don't detach the process from the console.  This is mainly useful
4645
4716
     for debugging.
4646
4717
 
4647
4718
`--log-file FILE'
5049
5120
   Send an APDU to the current reader.  This command bypasses the high
5050
5121
level functions and sends the data directly to the card.  HEXSTRING is
5051
5122
expected to be a proper APDU.  If HEXSTRING is not given no commands
5052
 
are send to the card; However the command will implictly check whether
 
5123
are send to the card; However the command will implicitly check whether
5053
5124
the card is ready for use.
5054
5125
 
5055
5126
   Using the option `--atr' returns the ATR of the card as a status
5149
5220
          #/CN=Root Cert,O=Poets,L=Paris,C=FR
5150
5221
 
5151
5222
   * By exact match on serial number and issuer's DN.  This is
5152
 
     indicated by a hash mark, followed by the hexadecmal
 
5223
     indicated by a hash mark, followed by the hexadecimal
5153
5224
     representation of the serial number, then followed by a slash and
5154
5225
     the RFC-2253 encoded DN of the issuer. See note above.
5155
5226
 
5383
5454
 
5384
5455
* Menu:
5385
5456
 
5386
 
* Invoking gpgconf::      List of all commands and options.
5387
 
* Format conventions::    Formatting conventions relevant for all commands.
5388
 
* Listing components::    List all gpgconf components.
5389
 
* Checking programs::     Check all programs know to gpgconf.
5390
 
* Listing options::       List all options of a component.
5391
 
* Changing options::      Changing options of a component.
5392
 
* Files used by gpgconf:: What files are used by gpgconf.
 
5457
* Invoking gpgconf::       List of all commands and options.
 
5458
* Format conventions::     Formatting conventions relevant for all commands.
 
5459
* Listing components::     List all gpgconf components.
 
5460
* Checking programs::      Check all programs know to gpgconf.
 
5461
* Listing options::        List all options of a component.
 
5462
* Changing options::       Changing options of a component.
 
5463
* Listing global options:: List all global options.
 
5464
* Files used by gpgconf::  What files are used by gpgconf.
5393
5465
 
5394
5466
   ---------- Footnotes ----------
5395
5467
 
5425
5497
     Update all configuration files with values taken from the global
5426
5498
     configuration file (usually `/etc/gnupg/gpgconf.conf').
5427
5499
 
 
5500
`--list-config [FILENAME]'
 
5501
     List the global configuration file in a colon separated format.  If
 
5502
     FILENAME is given, check that file instead.
 
5503
 
5428
5504
`--check-config [FILENAME]'
5429
5505
     Run a syntax check on the global configuration file.  If FILENAME
5430
5506
     is given, check that file instead.
5810
5886
 
5811
5887
          `HOSTNAME:PORT:USERNAME:PASSWORD:BASE_DN'
5812
5888
 
 
5889
    `key fingerprint (34)'
 
5890
          A _string_ with a 40 digit fingerprint specifying a
 
5891
          certificate.
 
5892
 
 
5893
    `pub key (35)'
 
5894
          A _string_ that describes a certificate by user ID, key ID or
 
5895
          fingerprint.
 
5896
 
 
5897
    `sec key (36)'
 
5898
          A _string_ that describes a certificate with a key by user ID,
 
5899
          key ID or fingerprint.
 
5900
 
5813
5901
     More types will be added in the future.  Please see the ALT-TYPE
5814
5902
     field for information on how to cope with unknown types.
5815
5903
 
5832
5920
     not known.
5833
5921
 
5834
5922
DEFAULT
5835
 
     This field is defined only for options.  Its format is that of an
5836
 
     _option argument_ (*Note Format conventions::, for details).  If
5837
 
     the default value is empty, then no default is known.  Otherwise,
5838
 
     the value specifies the default value for this option.  Note that
5839
 
     this field is also meaningful if the option itself does not take a
5840
 
     real argument.
 
5923
     This field is defined only for options for which the `default' or
 
5924
     `default desc' flag is set.  If the `default' flag is set, its
 
5925
     format is that of an _option argument_ (*Note Format
 
5926
     conventions::, for details).  If the default value is empty, then
 
5927
     no default is known.  Otherwise, the value specifies the default
 
5928
     value for this option.  If the `default desc' flag is set, the
 
5929
     field is either empty or contains a description of the effect if
 
5930
     the option is not given.
5841
5931
 
5842
5932
ARGDEF
5843
5933
     This field is defined only for options for which the `optional
5845
5935
     format is that of an _option argument_ (*Note Format
5846
5936
     conventions::, for details).  If the default value is empty, then
5847
5937
     no default is known.  Otherwise, the value specifies the default
5848
 
     value for this option.  If the `no arg desc' flag is set, the
 
5938
     argument for this option.  If the `no arg desc' flag is set, the
5849
5939
     field is either empty or contains a description of the effect of
5850
 
     this option if no argument is given.  Note that this field is also
5851
 
     meaningful if the option itself does not take a real argument.
 
5940
     this option if no argument is given.
5852
5941
 
5853
5942
VALUE
5854
5943
     This field is defined only for options.  Its format is that of an
5856
5945
     explicitely set in the current configuration, and the default
5857
5946
     applies (if any).  Otherwise, it contains the current value of the
5858
5947
     option.  Note that this field is also meaningful if the option
5859
 
     itself does not take a real argument.
 
5948
     itself does not take a real argument (in this case, it contains
 
5949
     the number of times the option appears).
5860
5950
 
5861
5951
 
5862
 
File: gnupg.info,  Node: Changing options,  Next: Files used by gpgconf,  Prev: Listing options,  Up: gpgconf
 
5952
File: gnupg.info,  Node: Changing options,  Next: Listing global options,  Prev: Listing options,  Up: gpgconf
5863
5953
 
5864
5954
7.4.6 Changing options
5865
5955
----------------------
5904
5994
   The `--runtime' option can influence when the changes take effect.
5905
5995
 
5906
5996
 
5907
 
File: gnupg.info,  Node: Files used by gpgconf,  Prev: Changing options,  Up: gpgconf
5908
 
 
5909
 
7.4.7 Files used by gpgconf
 
5997
File: gnupg.info,  Node: Listing global options,  Next: Files used by gpgconf,  Prev: Changing options,  Up: gpgconf
 
5998
 
 
5999
7.4.7 Listing global options
 
6000
----------------------------
 
6001
 
 
6002
Sometimes it is useful for applications to look at the global options
 
6003
file `gpgconf.conf'.  The colon separated listing format is record
 
6004
oriented and uses the first field to identify the record type:
 
6005
 
 
6006
`k'
 
6007
     This describes a key record to start the definition of a new
 
6008
     ruleset for a user/group.  The format of a key record is:
 
6009
 
 
6010
     `k:USER:GROUP:'
 
6011
 
 
6012
    USER
 
6013
          This is the user field of the key.  It is percent escaped.
 
6014
          See the definition of the gpgconf.conf format for details.
 
6015
 
 
6016
    GROUP
 
6017
          This is the group field of the key.  It is percent escaped.
 
6018
 
 
6019
`r'
 
6020
     This describes a rule record. All rule records up to the next key
 
6021
     record make up a rule set for that key.  The format of a rule
 
6022
     record is:
 
6023
 
 
6024
     `r:::COMPONENT:OPTION:FLAGS:VALUE:'
 
6025
 
 
6026
    COMPONENT
 
6027
          This is the component part of a rule.  It is a plain string.
 
6028
 
 
6029
    OPTION
 
6030
          This is the option part of a rule.  It is a plain string.
 
6031
 
 
6032
    FLAG
 
6033
          This is the flags part of a rule.  There may be only one flag
 
6034
          per rule but by using the same component and option, several
 
6035
          flags may be assigned to an option.  It is a plain string.
 
6036
 
 
6037
    VALUE
 
6038
          This is the optional value for the option.  It is a percent
 
6039
          escaped string with a single quotation mark to indicate a
 
6040
          string.  The quotation mark is only required to distinguish
 
6041
          between no value specified and an empty string.
 
6042
 
 
6043
 
 
6044
Unknown record typs should be ignored.  Note that there is intentionally
 
6045
no feature to change the global option file through `gpgconf'.
 
6046
 
 
6047
 
 
6048
File: gnupg.info,  Node: Files used by gpgconf,  Prev: Listing global options,  Up: gpgconf
 
6049
 
 
6050
7.4.8 Files used by gpgconf
5910
6051
---------------------------
5911
6052
 
5912
6053
`/etc/gnupg/gpgconf.conf'
6072
6213
     assuan server in extended mode to allow descriptor passing.  This
6073
6214
     option makes it use the old mode.
6074
6215
 
 
6216
`--run FILE'
 
6217
     Run the commands from FILE at startup and then continue with the
 
6218
     regular input method.
 
6219
 
 
6220
`-s'
 
6221
`--subst'
 
6222
     Run the command `/subst' at startup.
 
6223
 
6075
6224
`--hex'
6076
6225
     Print data lines in a hex format and the ASCII representation of
6077
6226
     non-control characters.
6094
6243
`/echo ARGS'
6095
6244
     Just print ARGS.
6096
6245
 
 
6246
`/let NAME VALUE'
 
6247
     Set the variable NAME to VALUE.  Variables are only substituted on
 
6248
     the input if the `/subst' has been used.  Variables are referenced
 
6249
     by prefixing the name with a dollr sign and optionally include the
 
6250
     name in curly braces.  The rules for a valid name are idnetically
 
6251
     to those of the standard bourne shell.  This is not yet enforced
 
6252
     but may be in the future.  When used with curly braces no leading
 
6253
     or trailing white space is allowed.
 
6254
 
 
6255
     If a variable is not found, it is searched in the environment and
 
6256
     if found copied to the table of variables.
 
6257
 
 
6258
     Variable functions are available: The name of the function must be
 
6259
     followed by at least one space and the at least one argument.  The
 
6260
     following functions are available:
 
6261
 
 
6262
    `get'
 
6263
          Return a value described by the argument.  Available
 
6264
          arguments are:
 
6265
 
 
6266
         `cwd'
 
6267
               The current working directory.
 
6268
 
 
6269
         `homedir'
 
6270
               The gnupg homedir.
 
6271
 
 
6272
         `sysconfdir'
 
6273
               GnuPG's system configuration directory.
 
6274
 
 
6275
         `bindir'
 
6276
               GnuPG's binary directory.
 
6277
 
 
6278
         `libdir'
 
6279
               GnuPG's library directory.
 
6280
 
 
6281
         `libexecdir'
 
6282
               GnuPG's library directory for executable files.
 
6283
 
 
6284
         `datadir'
 
6285
               GnuPG's data directory.
 
6286
 
 
6287
         `serverpid'
 
6288
               The PID of the current server. Command `/serverpid' must
 
6289
               have been given to return a useful value.
 
6290
 
 
6291
    `unescape ARGS'
 
6292
          Remove C-style escapes from ARGS.  Note that `\0' and `\x00'
 
6293
          terminate the returned string implicitly.  The string to be
 
6294
          converted are the entire arguments right behind the
 
6295
          delimiting space of the function name.
 
6296
 
 
6297
    `unpercent ARGS'
 
6298
    `unpercent+ ARGS'
 
6299
          Remove percent style ecaping from ARGS.  Note that `%00'
 
6300
          terminates the string implicitly.  The string to be converted
 
6301
          are the entire arguments right behind the delimiting space of
 
6302
          the function name. `unpercent+' also maps plus signs to a
 
6303
          spaces.
 
6304
 
 
6305
    `percent ARGS'
 
6306
    `percent+ ARGS'
 
6307
          Escape the ARGS using percent style ecaping.  Tabs, formfeeds,
 
6308
          linefeeds, carriage returns and colons are escaped.
 
6309
          `percent+' also maps spaces to plus signs.
 
6310
 
 
6311
    `errcode ARG'
 
6312
    `errsource ARG'
 
6313
    `errstring ARG'
 
6314
          Assume ARG is an integer and evaluate it using `strtol'.
 
6315
          Return the gpg-error error code, error source or a formatted
 
6316
          string with the error code and error source.
 
6317
 
 
6318
    `+'
 
6319
    `-'
 
6320
    `*'
 
6321
    `/'
 
6322
    `%'
 
6323
          Evaluate all arguments as long integers using `strtol' and
 
6324
          apply this operator.  A division by zero yields an empty
 
6325
          string.
 
6326
 
 
6327
    `!'
 
6328
    `|'
 
6329
    `&'
 
6330
          Evaluate all arguments as long integers using `strtol' and
 
6331
          apply the logical oeprators NOT, OR or AND.  The NOT operator
 
6332
          works on the last argument only.
 
6333
 
 
6334
 
 
6335
`/definq NAME VAR'
 
6336
     Use content of the variable VAR for inquiries with NAME.  NAME may
 
6337
     be an asterisk (`*') to match any inquiry.
 
6338
 
6097
6339
`/definqfile NAME FILE'
6098
6340
     Use content of FILE for inquiries with NAME.  NAME may be an
6099
 
     asterisk (`*' to match any inquiry.
 
6341
     asterisk (`*') to match any inquiry.
6100
6342
 
6101
6343
`/definqprog NAME PROG'
6102
6344
     Run PROG for inquiries matching NAME and pass the entire line to
6103
 
     it as command line arguments
 
6345
     it as command line arguments.
6104
6346
 
6105
6347
`/showdef'
6106
6348
     Print all definitions
6117
6359
`/recvfd'
6118
6360
     Not yet implemented.
6119
6361
 
 
6362
`/open VAR FILE [MODE]'
 
6363
     Open FILE and assign the file descriptor to VAR.  Warning: This
 
6364
     command is experimental and might change in future versions.
 
6365
 
 
6366
`/close FD'
 
6367
     Close the file descriptor FD.  Warning: This command is
 
6368
     experimental and might change in future versions.
 
6369
 
 
6370
`/showopen'
 
6371
     Show a listy of open files.
 
6372
 
 
6373
`/serverpid'
 
6374
     Send the Assuan command `GETINFO pid' to the server and store the
 
6375
     returned PID for internal purposes.
 
6376
 
 
6377
`/sleep'
 
6378
     Sleep for a second.
 
6379
 
6120
6380
`/hex'
6121
6381
`/nohex'
6122
6382
     Same as the command line option `--hex'.
6125
6385
`/nodecode'
6126
6386
     Same as the command line option `--decode'.
6127
6387
 
 
6388
`/subst'
 
6389
`/nosubst'
 
6390
     Enable and disable variable substitution.  It defaults to disabled
 
6391
     unless the command line option `--subst' has been used.  If /subst
 
6392
     as been enabled once, leading whitespace is removed from input
 
6393
     lines which makes scripts easier to read.
 
6394
 
 
6395
`/while CONDITION'
 
6396
`/end'
 
6397
     These commands provide a way for executing loops.  All lines
 
6398
     between the `while' and the corresponding `end' are executed as
 
6399
     long as the evaluation of CONDITION yields a non-zero value.  The
 
6400
     evaluation is done by passing CONDITION to the `strtol' function.
 
6401
     Example:
 
6402
 
 
6403
            /subst
 
6404
            /let i 3
 
6405
            /while $i
 
6406
              /echo loop couter is $i
 
6407
              /let i ${- $i 1}
 
6408
            /end
 
6409
 
 
6410
`/run FILE'
 
6411
     Run commands from FILE.
 
6412
 
 
6413
`/bye'
 
6414
     Terminate the connection and the program
 
6415
 
6128
6416
`/help'
6129
6417
     Print a list of available control commands.
6130
6418
 
6574
6862
 
6575
6863
* Menu:
6576
6864
 
6577
 
* Debugging Tools::       Description of some useful tools
 
6865
* Debugging Tools::       Description of some useful tools.
 
6866
* Debugging Hints::       Various hints on debugging.
6578
6867
* Common Problems::       Commonly seen problems.
6579
6868
* Architecture Details::  How the whole thing works internally.
6580
6869
 
6581
6870
 
6582
 
File: gnupg.info,  Node: Debugging Tools,  Next: Common Problems,  Up: Debugging
 
6871
File: gnupg.info,  Node: Debugging Tools,  Next: Debugging Hints,  Up: Debugging
6583
6872
 
6584
6873
10.1 Debugging Tools
6585
6874
====================
6642
6931
keyring file `pubring.gpg'
6643
6932
 
6644
6933
 
6645
 
File: gnupg.info,  Node: Common Problems,  Next: Architecture Details,  Prev: Debugging Tools,  Up: Debugging
6646
 
 
6647
 
10.2 Commonly Seen Problems
 
6934
File: gnupg.info,  Node: Debugging Hints,  Next: Common Problems,  Prev: Debugging Tools,  Up: Debugging
 
6935
 
 
6936
10.2 Various hints on debugging.
 
6937
================================
 
6938
 
 
6939
   * How to find the IP address of a keyserver
 
6940
 
 
6941
     If a round robin URL of is used for a keyserver (e.g.
 
6942
     subkeys.gnupg.org); it is not easy to see what server is actually
 
6943
     used.  Using the keyserver debug option as in
 
6944
 
 
6945
           gpg --keyserver-options debug=1 -v --refresh-key 1E42B367
 
6946
 
 
6947
     is thus often helpful.  Note that the actual output depends on the
 
6948
     backend and may change from release to release.
 
6949
 
 
6950
 
 
6951
 
 
6952
File: gnupg.info,  Node: Common Problems,  Next: Architecture Details,  Prev: Debugging Hints,  Up: Debugging
 
6953
 
 
6954
10.3 Commonly Seen Problems
6648
6955
===========================
6649
6956
 
6650
6957
   * Error code `Not supported' from Dirmngr
6726
7033
     fingerprint and this flag may only be added manually to
6727
7034
     `trustlist.txt'.
6728
7035
 
 
7036
   * Error message: "digest algorithm N has not been enabled"
 
7037
 
 
7038
     The signature is broken.  You may try the option
 
7039
     `--extra-digest-algo SHA256' to workaround the problem.  The
 
7040
     number N is the internal algorighm indentifier; for example 8
 
7041
     refers to SHA-256.
 
7042
 
6729
7043
 
6730
7044
 
6731
7045
File: gnupg.info,  Node: Architecture Details,  Prev: Common Problems,  Up: Debugging
6732
7046
 
6733
 
10.3 How the whole thing works internally.
 
7047
10.4 How the whole thing works internally.
6734
7048
==========================================
6735
7049
 
6736
7050
* Menu:
6740
7054
 
6741
7055
File: gnupg.info,  Node: GnuPG-1 and GnuPG-2,  Up: Architecture Details
6742
7056
 
6743
 
10.3.1 Relationship between the two branches.
 
7057
10.4.1 Relationship between the two branches.
6744
7058
---------------------------------------------
6745
7059
 
6746
7060
Here is a little picture showing how the components work together:
6751
7065
 
6752
7066
   TO BE DONE.
6753
7067
 
6754
 
 
6755
 
File: gnupg.info,  Node: Copying,  Next: Contributors,  Prev: Debugging,  Up: Top
6756
 
 
6757
 
GNU General Public License
6758
 
**************************
6759
 
 
6760
 
                        Version 3, 29 June 2007
6761
 
 
6762
 
     Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'
6763
 
 
6764
 
     Everyone is permitted to copy and distribute verbatim copies of this
6765
 
     license document, but changing it is not allowed.
6766
 
 
6767
 
Preamble
6768
 
========
6769
 
 
6770
 
The GNU General Public License is a free, copyleft license for software
6771
 
and other kinds of works.
6772
 
 
6773
 
   The licenses for most software and other practical works are designed
6774
 
to take away your freedom to share and change the works.  By contrast,
6775
 
the GNU General Public License is intended to guarantee your freedom to
6776
 
share and change all versions of a program-to make sure it remains free
6777
 
software for all its users.  We, the Free Software Foundation, use the
6778
 
GNU General Public License for most of our software; it applies also to
6779
 
any other work released this way by its authors.  You can apply it to
6780
 
your programs, too.
6781
 
 
6782
 
   When we speak of free software, we are referring to freedom, not
6783
 
price.  Our General Public Licenses are designed to make sure that you
6784
 
have the freedom to distribute copies of free software (and charge for
6785
 
them if you wish), that you receive source code or can get it if you
6786
 
want it, that you can change the software or use pieces of it in new
6787
 
free programs, and that you know you can do these things.
6788
 
 
6789
 
   To protect your rights, we need to prevent others from denying you
6790
 
these rights or asking you to surrender the rights.  Therefore, you
6791
 
have certain responsibilities if you distribute copies of the software,
6792
 
or if you modify it: responsibilities to respect the freedom of others.
6793
 
 
6794
 
   For example, if you distribute copies of such a program, whether
6795
 
gratis or for a fee, you must pass on to the recipients the same
6796
 
freedoms that you received.  You must make sure that they, too, receive
6797
 
or can get the source code.  And you must show them these terms so they
6798
 
know their rights.
6799
 
 
6800
 
   Developers that use the GNU GPL protect your rights with two steps:
6801
 
(1) assert copyright on the software, and (2) offer you this License
6802
 
giving you legal permission to copy, distribute and/or modify it.
6803
 
 
6804
 
   For the developers' and authors' protection, the GPL clearly explains
6805
 
that there is no warranty for this free software.  For both users' and
6806
 
authors' sake, the GPL requires that modified versions be marked as
6807
 
changed, so that their problems will not be attributed erroneously to
6808
 
authors of previous versions.
6809
 
 
6810
 
   Some devices are designed to deny users access to install or run
6811
 
modified versions of the software inside them, although the
6812
 
manufacturer can do so.  This is fundamentally incompatible with the
6813
 
aim of protecting users' freedom to change the software.  The
6814
 
systematic pattern of such abuse occurs in the area of products for
6815
 
individuals to use, which is precisely where it is most unacceptable.
6816
 
Therefore, we have designed this version of the GPL to prohibit the
6817
 
practice for those products.  If such problems arise substantially in
6818
 
other domains, we stand ready to extend this provision to those domains
6819
 
in future versions of the GPL, as needed to protect the freedom of
6820
 
users.
6821
 
 
6822
 
   Finally, every program is threatened constantly by software patents.
6823
 
States should not allow patents to restrict development and use of
6824
 
software on general-purpose computers, but in those that do, we wish to
6825
 
avoid the special danger that patents applied to a free program could
6826
 
make it effectively proprietary.  To prevent this, the GPL assures that
6827
 
patents cannot be used to render the program non-free.
6828
 
 
6829
 
   The precise terms and conditions for copying, distribution and
6830
 
modification follow.
6831
 
 
6832
 
                         TERMS AND CONDITIONS
6833
 
  0. Definitions.
6834
 
 
6835
 
     "This License" refers to version 3 of the GNU General Public
6836
 
     License.
6837
 
 
6838
 
     "Copyright" also means copyright-like laws that apply to other
6839
 
     kinds of works, such as semiconductor masks.
6840
 
 
6841
 
     "The Program" refers to any copyrightable work licensed under this
6842
 
     License.  Each licensee is addressed as "you".  "Licensees" and
6843
 
     "recipients" may be individuals or organizations.
6844
 
 
6845
 
     To "modify" a work means to copy from or adapt all or part of the
6846
 
     work in a fashion requiring copyright permission, other than the
6847
 
     making of an exact copy.  The resulting work is called a "modified
6848
 
     version" of the earlier work or a work "based on" the earlier work.
6849
 
 
6850
 
     A "covered work" means either the unmodified Program or a work
6851
 
     based on the Program.
6852
 
 
6853
 
     To "propagate" a work means to do anything with it that, without
6854
 
     permission, would make you directly or secondarily liable for
6855
 
     infringement under applicable copyright law, except executing it
6856
 
     on a computer or modifying a private copy.  Propagation includes
6857
 
     copying, distribution (with or without modification), making
6858
 
     available to the public, and in some countries other activities as
6859
 
     well.
6860
 
 
6861
 
     To "convey" a work means any kind of propagation that enables other
6862
 
     parties to make or receive copies.  Mere interaction with a user
6863
 
     through a computer network, with no transfer of a copy, is not
6864
 
     conveying.
6865
 
 
6866
 
     An interactive user interface displays "Appropriate Legal Notices"
6867
 
     to the extent that it includes a convenient and prominently visible
6868
 
     feature that (1) displays an appropriate copyright notice, and (2)
6869
 
     tells the user that there is no warranty for the work (except to
6870
 
     the extent that warranties are provided), that licensees may
6871
 
     convey the work under this License, and how to view a copy of this
6872
 
     License.  If the interface presents a list of user commands or
6873
 
     options, such as a menu, a prominent item in the list meets this
6874
 
     criterion.
6875
 
 
6876
 
  1. Source Code.
6877
 
 
6878
 
     The "source code" for a work means the preferred form of the work
6879
 
     for making modifications to it.  "Object code" means any
6880
 
     non-source form of a work.
6881
 
 
6882
 
     A "Standard Interface" means an interface that either is an
6883
 
     official standard defined by a recognized standards body, or, in
6884
 
     the case of interfaces specified for a particular programming
6885
 
     language, one that is widely used among developers working in that
6886
 
     language.
6887
 
 
6888
 
     The "System Libraries" of an executable work include anything,
6889
 
     other than the work as a whole, that (a) is included in the normal
6890
 
     form of packaging a Major Component, but which is not part of that
6891
 
     Major Component, and (b) serves only to enable use of the work
6892
 
     with that Major Component, or to implement a Standard Interface
6893
 
     for which an implementation is available to the public in source
6894
 
     code form.  A "Major Component", in this context, means a major
6895
 
     essential component (kernel, window system, and so on) of the
6896
 
     specific operating system (if any) on which the executable work
6897
 
     runs, or a compiler used to produce the work, or an object code
6898
 
     interpreter used to run it.
6899
 
 
6900
 
     The "Corresponding Source" for a work in object code form means all
6901
 
     the source code needed to generate, install, and (for an executable
6902
 
     work) run the object code and to modify the work, including
6903
 
     scripts to control those activities.  However, it does not include
6904
 
     the work's System Libraries, or general-purpose tools or generally
6905
 
     available free programs which are used unmodified in performing
6906
 
     those activities but which are not part of the work.  For example,
6907
 
     Corresponding Source includes interface definition files
6908
 
     associated with source files for the work, and the source code for
6909
 
     shared libraries and dynamically linked subprograms that the work
6910
 
     is specifically designed to require, such as by intimate data
6911
 
     communication or control flow between those subprograms and other
6912
 
     parts of the work.
6913
 
 
6914
 
     The Corresponding Source need not include anything that users can
6915
 
     regenerate automatically from other parts of the Corresponding
6916
 
     Source.
6917
 
 
6918
 
     The Corresponding Source for a work in source code form is that
6919
 
     same work.
6920
 
 
6921
 
  2. Basic Permissions.
6922
 
 
6923
 
     All rights granted under this License are granted for the term of
6924
 
     copyright on the Program, and are irrevocable provided the stated
6925
 
     conditions are met.  This License explicitly affirms your unlimited
6926
 
     permission to run the unmodified Program.  The output from running
6927
 
     a covered work is covered by this License only if the output,
6928
 
     given its content, constitutes a covered work.  This License
6929
 
     acknowledges your rights of fair use or other equivalent, as
6930
 
     provided by copyright law.
6931
 
 
6932
 
     You may make, run and propagate covered works that you do not
6933
 
     convey, without conditions so long as your license otherwise
6934
 
     remains in force.  You may convey covered works to others for the
6935
 
     sole purpose of having them make modifications exclusively for
6936
 
     you, or provide you with facilities for running those works,
6937
 
     provided that you comply with the terms of this License in
6938
 
     conveying all material for which you do not control copyright.
6939
 
     Those thus making or running the covered works for you must do so
6940
 
     exclusively on your behalf, under your direction and control, on
6941
 
     terms that prohibit them from making any copies of your
6942
 
     copyrighted material outside their relationship with you.
6943
 
 
6944
 
     Conveying under any other circumstances is permitted solely under
6945
 
     the conditions stated below.  Sublicensing is not allowed; section
6946
 
     10 makes it unnecessary.
6947
 
 
6948
 
  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
6949
 
 
6950
 
     No covered work shall be deemed part of an effective technological
6951
 
     measure under any applicable law fulfilling obligations under
6952
 
     article 11 of the WIPO copyright treaty adopted on 20 December
6953
 
     1996, or similar laws prohibiting or restricting circumvention of
6954
 
     such measures.
6955
 
 
6956
 
     When you convey a covered work, you waive any legal power to forbid
6957
 
     circumvention of technological measures to the extent such
6958
 
     circumvention is effected by exercising rights under this License
6959
 
     with respect to the covered work, and you disclaim any intention
6960
 
     to limit operation or modification of the work as a means of
6961
 
     enforcing, against the work's users, your or third parties' legal
6962
 
     rights to forbid circumvention of technological measures.
6963
 
 
6964
 
  4. Conveying Verbatim Copies.
6965
 
 
6966
 
     You may convey verbatim copies of the Program's source code as you
6967
 
     receive it, in any medium, provided that you conspicuously and
6968
 
     appropriately publish on each copy an appropriate copyright notice;
6969
 
     keep intact all notices stating that this License and any
6970
 
     non-permissive terms added in accord with section 7 apply to the
6971
 
     code; keep intact all notices of the absence of any warranty; and
6972
 
     give all recipients a copy of this License along with the Program.
6973
 
 
6974
 
     You may charge any price or no price for each copy that you convey,
6975
 
     and you may offer support or warranty protection for a fee.
6976
 
 
6977
 
  5. Conveying Modified Source Versions.
6978
 
 
6979
 
     You may convey a work based on the Program, or the modifications to
6980
 
     produce it from the Program, in the form of source code under the
6981
 
     terms of section 4, provided that you also meet all of these
6982
 
     conditions:
6983
 
 
6984
 
       a. The work must carry prominent notices stating that you
6985
 
          modified it, and giving a relevant date.
6986
 
 
6987
 
       b. The work must carry prominent notices stating that it is
6988
 
          released under this License and any conditions added under
6989
 
          section 7.  This requirement modifies the requirement in
6990
 
          section 4 to "keep intact all notices".
6991
 
 
6992
 
       c. You must license the entire work, as a whole, under this
6993
 
          License to anyone who comes into possession of a copy.  This
6994
 
          License will therefore apply, along with any applicable
6995
 
          section 7 additional terms, to the whole of the work, and all
6996
 
          its parts, regardless of how they are packaged.  This License
6997
 
          gives no permission to license the work in any other way, but
6998
 
          it does not invalidate such permission if you have separately
6999
 
          received it.
7000
 
 
7001
 
       d. If the work has interactive user interfaces, each must display
7002
 
          Appropriate Legal Notices; however, if the Program has
7003
 
          interactive interfaces that do not display Appropriate Legal
7004
 
          Notices, your work need not make them do so.
7005
 
 
7006
 
     A compilation of a covered work with other separate and independent
7007
 
     works, which are not by their nature extensions of the covered
7008
 
     work, and which are not combined with it such as to form a larger
7009
 
     program, in or on a volume of a storage or distribution medium, is
7010
 
     called an "aggregate" if the compilation and its resulting
7011
 
     copyright are not used to limit the access or legal rights of the
7012
 
     compilation's users beyond what the individual works permit.
7013
 
     Inclusion of a covered work in an aggregate does not cause this
7014
 
     License to apply to the other parts of the aggregate.
7015
 
 
7016
 
  6. Conveying Non-Source Forms.
7017
 
 
7018
 
     You may convey a covered work in object code form under the terms
7019
 
     of sections 4 and 5, provided that you also convey the
7020
 
     machine-readable Corresponding Source under the terms of this
7021
 
     License, in one of these ways:
7022
 
 
7023
 
       a. Convey the object code in, or embodied in, a physical product
7024
 
          (including a physical distribution medium), accompanied by the
7025
 
          Corresponding Source fixed on a durable physical medium
7026
 
          customarily used for software interchange.
7027
 
 
7028
 
       b. Convey the object code in, or embodied in, a physical product
7029
 
          (including a physical distribution medium), accompanied by a
7030
 
          written offer, valid for at least three years and valid for
7031
 
          as long as you offer spare parts or customer support for that
7032
 
          product model, to give anyone who possesses the object code
7033
 
          either (1) a copy of the Corresponding Source for all the
7034
 
          software in the product that is covered by this License, on a
7035
 
          durable physical medium customarily used for software
7036
 
          interchange, for a price no more than your reasonable cost of
7037
 
          physically performing this conveying of source, or (2) access
7038
 
          to copy the Corresponding Source from a network server at no
7039
 
          charge.
7040
 
 
7041
 
       c. Convey individual copies of the object code with a copy of
7042
 
          the written offer to provide the Corresponding Source.  This
7043
 
          alternative is allowed only occasionally and noncommercially,
7044
 
          and only if you received the object code with such an offer,
7045
 
          in accord with subsection 6b.
7046
 
 
7047
 
       d. Convey the object code by offering access from a designated
7048
 
          place (gratis or for a charge), and offer equivalent access
7049
 
          to the Corresponding Source in the same way through the same
7050
 
          place at no further charge.  You need not require recipients
7051
 
          to copy the Corresponding Source along with the object code.
7052
 
          If the place to copy the object code is a network server, the
7053
 
          Corresponding Source may be on a different server (operated
7054
 
          by you or a third party) that supports equivalent copying
7055
 
          facilities, provided you maintain clear directions next to
7056
 
          the object code saying where to find the Corresponding Source.
7057
 
          Regardless of what server hosts the Corresponding Source, you
7058
 
          remain obligated to ensure that it is available for as long
7059
 
          as needed to satisfy these requirements.
7060
 
 
7061
 
       e. Convey the object code using peer-to-peer transmission,
7062
 
          provided you inform other peers where the object code and
7063
 
          Corresponding Source of the work are being offered to the
7064
 
          general public at no charge under subsection 6d.
7065
 
 
7066
 
 
7067
 
     A separable portion of the object code, whose source code is
7068
 
     excluded from the Corresponding Source as a System Library, need
7069
 
     not be included in conveying the object code work.
7070
 
 
7071
 
     A "User Product" is either (1) a "consumer product", which means
7072
 
     any tangible personal property which is normally used for personal,
7073
 
     family, or household purposes, or (2) anything designed or sold for
7074
 
     incorporation into a dwelling.  In determining whether a product
7075
 
     is a consumer product, doubtful cases shall be resolved in favor of
7076
 
     coverage.  For a particular product received by a particular user,
7077
 
     "normally used" refers to a typical or common use of that class of
7078
 
     product, regardless of the status of the particular user or of the
7079
 
     way in which the particular user actually uses, or expects or is
7080
 
     expected to use, the product.  A product is a consumer product
7081
 
     regardless of whether the product has substantial commercial,
7082
 
     industrial or non-consumer uses, unless such uses represent the
7083
 
     only significant mode of use of the product.
7084
 
 
7085
 
     "Installation Information" for a User Product means any methods,
7086
 
     procedures, authorization keys, or other information required to
7087
 
     install and execute modified versions of a covered work in that
7088
 
     User Product from a modified version of its Corresponding Source.
7089
 
     The information must suffice to ensure that the continued
7090
 
     functioning of the modified object code is in no case prevented or
7091
 
     interfered with solely because modification has been made.
7092
 
 
7093
 
     If you convey an object code work under this section in, or with,
7094
 
     or specifically for use in, a User Product, and the conveying
7095
 
     occurs as part of a transaction in which the right of possession
7096
 
     and use of the User Product is transferred to the recipient in
7097
 
     perpetuity or for a fixed term (regardless of how the transaction
7098
 
     is characterized), the Corresponding Source conveyed under this
7099
 
     section must be accompanied by the Installation Information.  But
7100
 
     this requirement does not apply if neither you nor any third party
7101
 
     retains the ability to install modified object code on the User
7102
 
     Product (for example, the work has been installed in ROM).
7103
 
 
7104
 
     The requirement to provide Installation Information does not
7105
 
     include a requirement to continue to provide support service,
7106
 
     warranty, or updates for a work that has been modified or
7107
 
     installed by the recipient, or for the User Product in which it
7108
 
     has been modified or installed.  Access to a network may be denied
7109
 
     when the modification itself materially and adversely affects the
7110
 
     operation of the network or violates the rules and protocols for
7111
 
     communication across the network.
7112
 
 
7113
 
     Corresponding Source conveyed, and Installation Information
7114
 
     provided, in accord with this section must be in a format that is
7115
 
     publicly documented (and with an implementation available to the
7116
 
     public in source code form), and must require no special password
7117
 
     or key for unpacking, reading or copying.
7118
 
 
7119
 
  7. Additional Terms.
7120
 
 
7121
 
     "Additional permissions" are terms that supplement the terms of
7122
 
     this License by making exceptions from one or more of its
7123
 
     conditions.  Additional permissions that are applicable to the
7124
 
     entire Program shall be treated as though they were included in
7125
 
     this License, to the extent that they are valid under applicable
7126
 
     law.  If additional permissions apply only to part of the Program,
7127
 
     that part may be used separately under those permissions, but the
7128
 
     entire Program remains governed by this License without regard to
7129
 
     the additional permissions.
7130
 
 
7131
 
     When you convey a copy of a covered work, you may at your option
7132
 
     remove any additional permissions from that copy, or from any part
7133
 
     of it.  (Additional permissions may be written to require their own
7134
 
     removal in certain cases when you modify the work.)  You may place
7135
 
     additional permissions on material, added by you to a covered work,
7136
 
     for which you have or can give appropriate copyright permission.
7137
 
 
7138
 
     Notwithstanding any other provision of this License, for material
7139
 
     you add to a covered work, you may (if authorized by the copyright
7140
 
     holders of that material) supplement the terms of this License
7141
 
     with terms:
7142
 
 
7143
 
       a. Disclaiming warranty or limiting liability differently from
7144
 
          the terms of sections 15 and 16 of this License; or
7145
 
 
7146
 
       b. Requiring preservation of specified reasonable legal notices
7147
 
          or author attributions in that material or in the Appropriate
7148
 
          Legal Notices displayed by works containing it; or
7149
 
 
7150
 
       c. Prohibiting misrepresentation of the origin of that material,
7151
 
          or requiring that modified versions of such material be
7152
 
          marked in reasonable ways as different from the original
7153
 
          version; or
7154
 
 
7155
 
       d. Limiting the use for publicity purposes of names of licensors
7156
 
          or authors of the material; or
7157
 
 
7158
 
       e. Declining to grant rights under trademark law for use of some
7159
 
          trade names, trademarks, or service marks; or
7160
 
 
7161
 
       f. Requiring indemnification of licensors and authors of that
7162
 
          material by anyone who conveys the material (or modified
7163
 
          versions of it) with contractual assumptions of liability to
7164
 
          the recipient, for any liability that these contractual
7165
 
          assumptions directly impose on those licensors and authors.
7166
 
 
7167
 
     All other non-permissive additional terms are considered "further
7168
 
     restrictions" within the meaning of section 10.  If the Program as
7169
 
     you received it, or any part of it, contains a notice stating that
7170
 
     it is governed by this License along with a term that is a further
7171
 
     restriction, you may remove that term.  If a license document
7172
 
     contains a further restriction but permits relicensing or
7173
 
     conveying under this License, you may add to a covered work
7174
 
     material governed by the terms of that license document, provided
7175
 
     that the further restriction does not survive such relicensing or
7176
 
     conveying.
7177
 
 
7178
 
     If you add terms to a covered work in accord with this section, you
7179
 
     must place, in the relevant source files, a statement of the
7180
 
     additional terms that apply to those files, or a notice indicating
7181
 
     where to find the applicable terms.
7182
 
 
7183
 
     Additional terms, permissive or non-permissive, may be stated in
7184
 
     the form of a separately written license, or stated as exceptions;
7185
 
     the above requirements apply either way.
7186
 
 
7187
 
  8. Termination.
7188
 
 
7189
 
     You may not propagate or modify a covered work except as expressly
7190
 
     provided under this License.  Any attempt otherwise to propagate or
7191
 
     modify it is void, and will automatically terminate your rights
7192
 
     under this License (including any patent licenses granted under
7193
 
     the third paragraph of section 11).
7194
 
 
7195
 
     However, if you cease all violation of this License, then your
7196
 
     license from a particular copyright holder is reinstated (a)
7197
 
     provisionally, unless and until the copyright holder explicitly
7198
 
     and finally terminates your license, and (b) permanently, if the
7199
 
     copyright holder fails to notify you of the violation by some
7200
 
     reasonable means prior to 60 days after the cessation.
7201
 
 
7202
 
     Moreover, your license from a particular copyright holder is
7203
 
     reinstated permanently if the copyright holder notifies you of the
7204
 
     violation by some reasonable means, this is the first time you have
7205
 
     received notice of violation of this License (for any work) from
7206
 
     that copyright holder, and you cure the violation prior to 30 days
7207
 
     after your receipt of the notice.
7208
 
 
7209
 
     Termination of your rights under this section does not terminate
7210
 
     the licenses of parties who have received copies or rights from
7211
 
     you under this License.  If your rights have been terminated and
7212
 
     not permanently reinstated, you do not qualify to receive new
7213
 
     licenses for the same material under section 10.
7214
 
 
7215
 
  9. Acceptance Not Required for Having Copies.
7216
 
 
7217
 
     You are not required to accept this License in order to receive or
7218
 
     run a copy of the Program.  Ancillary propagation of a covered work
7219
 
     occurring solely as a consequence of using peer-to-peer
7220
 
     transmission to receive a copy likewise does not require
7221
 
     acceptance.  However, nothing other than this License grants you
7222
 
     permission to propagate or modify any covered work.  These actions
7223
 
     infringe copyright if you do not accept this License.  Therefore,
7224
 
     by modifying or propagating a covered work, you indicate your
7225
 
     acceptance of this License to do so.
7226
 
 
7227
 
 10. Automatic Licensing of Downstream Recipients.
7228
 
 
7229
 
     Each time you convey a covered work, the recipient automatically
7230
 
     receives a license from the original licensors, to run, modify and
7231
 
     propagate that work, subject to this License.  You are not
7232
 
     responsible for enforcing compliance by third parties with this
7233
 
     License.
7234
 
 
7235
 
     An "entity transaction" is a transaction transferring control of an
7236
 
     organization, or substantially all assets of one, or subdividing an
7237
 
     organization, or merging organizations.  If propagation of a
7238
 
     covered work results from an entity transaction, each party to that
7239
 
     transaction who receives a copy of the work also receives whatever
7240
 
     licenses to the work the party's predecessor in interest had or
7241
 
     could give under the previous paragraph, plus a right to
7242
 
     possession of the Corresponding Source of the work from the
7243
 
     predecessor in interest, if the predecessor has it or can get it
7244
 
     with reasonable efforts.
7245
 
 
7246
 
     You may not impose any further restrictions on the exercise of the
7247
 
     rights granted or affirmed under this License.  For example, you
7248
 
     may not impose a license fee, royalty, or other charge for
7249
 
     exercise of rights granted under this License, and you may not
7250
 
     initiate litigation (including a cross-claim or counterclaim in a
7251
 
     lawsuit) alleging that any patent claim is infringed by making,
7252
 
     using, selling, offering for sale, or importing the Program or any
7253
 
     portion of it.
7254
 
 
7255
 
 11. Patents.
7256
 
 
7257
 
     A "contributor" is a copyright holder who authorizes use under this
7258
 
     License of the Program or a work on which the Program is based.
7259
 
     The work thus licensed is called the contributor's "contributor
7260
 
     version".
7261
 
 
7262
 
     A contributor's "essential patent claims" are all patent claims
7263
 
     owned or controlled by the contributor, whether already acquired or
7264
 
     hereafter acquired, that would be infringed by some manner,
7265
 
     permitted by this License, of making, using, or selling its
7266
 
     contributor version, but do not include claims that would be
7267
 
     infringed only as a consequence of further modification of the
7268
 
     contributor version.  For purposes of this definition, "control"
7269
 
     includes the right to grant patent sublicenses in a manner
7270
 
     consistent with the requirements of this License.
7271
 
 
7272
 
     Each contributor grants you a non-exclusive, worldwide,
7273
 
     royalty-free patent license under the contributor's essential
7274
 
     patent claims, to make, use, sell, offer for sale, import and
7275
 
     otherwise run, modify and propagate the contents of its
7276
 
     contributor version.
7277
 
 
7278
 
     In the following three paragraphs, a "patent license" is any
7279
 
     express agreement or commitment, however denominated, not to
7280
 
     enforce a patent (such as an express permission to practice a
7281
 
     patent or covenant not to sue for patent infringement).  To
7282
 
     "grant" such a patent license to a party means to make such an
7283
 
     agreement or commitment not to enforce a patent against the party.
7284
 
 
7285
 
     If you convey a covered work, knowingly relying on a patent
7286
 
     license, and the Corresponding Source of the work is not available
7287
 
     for anyone to copy, free of charge and under the terms of this
7288
 
     License, through a publicly available network server or other
7289
 
     readily accessible means, then you must either (1) cause the
7290
 
     Corresponding Source to be so available, or (2) arrange to deprive
7291
 
     yourself of the benefit of the patent license for this particular
7292
 
     work, or (3) arrange, in a manner consistent with the requirements
7293
 
     of this License, to extend the patent license to downstream
7294
 
     recipients.  "Knowingly relying" means you have actual knowledge
7295
 
     that, but for the patent license, your conveying the covered work
7296
 
     in a country, or your recipient's use of the covered work in a
7297
 
     country, would infringe one or more identifiable patents in that
7298
 
     country that you have reason to believe are valid.
7299
 
 
7300
 
     If, pursuant to or in connection with a single transaction or
7301
 
     arrangement, you convey, or propagate by procuring conveyance of, a
7302
 
     covered work, and grant a patent license to some of the parties
7303
 
     receiving the covered work authorizing them to use, propagate,
7304
 
     modify or convey a specific copy of the covered work, then the
7305
 
     patent license you grant is automatically extended to all
7306
 
     recipients of the covered work and works based on it.
7307
 
 
7308
 
     A patent license is "discriminatory" if it does not include within
7309
 
     the scope of its coverage, prohibits the exercise of, or is
7310
 
     conditioned on the non-exercise of one or more of the rights that
7311
 
     are specifically granted under this License.  You may not convey a
7312
 
     covered work if you are a party to an arrangement with a third
7313
 
     party that is in the business of distributing software, under
7314
 
     which you make payment to the third party based on the extent of
7315
 
     your activity of conveying the work, and under which the third
7316
 
     party grants, to any of the parties who would receive the covered
7317
 
     work from you, a discriminatory patent license (a) in connection
7318
 
     with copies of the covered work conveyed by you (or copies made
7319
 
     from those copies), or (b) primarily for and in connection with
7320
 
     specific products or compilations that contain the covered work,
7321
 
     unless you entered into that arrangement, or that patent license
7322
 
     was granted, prior to 28 March 2007.
7323
 
 
7324
 
     Nothing in this License shall be construed as excluding or limiting
7325
 
     any implied license or other defenses to infringement that may
7326
 
     otherwise be available to you under applicable patent law.
7327
 
 
7328
 
 12. No Surrender of Others' Freedom.
7329
 
 
7330
 
     If conditions are imposed on you (whether by court order,
7331
 
     agreement or otherwise) that contradict the conditions of this
7332
 
     License, they do not excuse you from the conditions of this
7333
 
     License.  If you cannot convey a covered work so as to satisfy
7334
 
     simultaneously your obligations under this License and any other
7335
 
     pertinent obligations, then as a consequence you may not convey it
7336
 
     at all.  For example, if you agree to terms that obligate you to
7337
 
     collect a royalty for further conveying from those to whom you
7338
 
     convey the Program, the only way you could satisfy both those
7339
 
     terms and this License would be to refrain entirely from conveying
7340
 
     the Program.
7341
 
 
7342
 
 13. Use with the GNU Affero General Public License.
7343
 
 
7344
 
     Notwithstanding any other provision of this License, you have
7345
 
     permission to link or combine any covered work with a work licensed
7346
 
     under version 3 of the GNU Affero General Public License into a
7347
 
     single combined work, and to convey the resulting work.  The terms
7348
 
     of this License will continue to apply to the part which is the
7349
 
     covered work, but the special requirements of the GNU Affero
7350
 
     General Public License, section 13, concerning interaction through
7351
 
     a network will apply to the combination as such.
7352
 
 
7353
 
 14. Revised Versions of this License.
7354
 
 
7355
 
     The Free Software Foundation may publish revised and/or new
7356
 
     versions of the GNU General Public License from time to time.
7357
 
     Such new versions will be similar in spirit to the present
7358
 
     version, but may differ in detail to address new problems or
7359
 
     concerns.
7360
 
 
7361
 
     Each version is given a distinguishing version number.  If the
7362
 
     Program specifies that a certain numbered version of the GNU
7363
 
     General Public License "or any later version" applies to it, you
7364
 
     have the option of following the terms and conditions either of
7365
 
     that numbered version or of any later version published by the
7366
 
     Free Software Foundation.  If the Program does not specify a
7367
 
     version number of the GNU General Public License, you may choose
7368
 
     any version ever published by the Free Software Foundation.
7369
 
 
7370
 
     If the Program specifies that a proxy can decide which future
7371
 
     versions of the GNU General Public License can be used, that
7372
 
     proxy's public statement of acceptance of a version permanently
7373
 
     authorizes you to choose that version for the Program.
7374
 
 
7375
 
     Later license versions may give you additional or different
7376
 
     permissions.  However, no additional obligations are imposed on any
7377
 
     author or copyright holder as a result of your choosing to follow a
7378
 
     later version.
7379
 
 
7380
 
 15. Disclaimer of Warranty.
7381
 
 
7382
 
     THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
7383
 
     APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE
7384
 
     COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
7385
 
     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
7386
 
     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
7387
 
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE
7388
 
     RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
7389
 
     SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
7390
 
     NECESSARY SERVICING, REPAIR OR CORRECTION.
7391
 
 
7392
 
 16. Limitation of Liability.
7393
 
 
7394
 
     IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
7395
 
     WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES
7396
 
     AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
7397
 
     FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
7398
 
     CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
7399
 
     THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
7400
 
     BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
7401
 
     PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
7402
 
     PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
7403
 
     THE POSSIBILITY OF SUCH DAMAGES.
7404
 
 
7405
 
 17. Interpretation of Sections 15 and 16.
7406
 
 
7407
 
     If the disclaimer of warranty and limitation of liability provided
7408
 
     above cannot be given local legal effect according to their terms,
7409
 
     reviewing courts shall apply local law that most closely
7410
 
     approximates an absolute waiver of all civil liability in
7411
 
     connection with the Program, unless a warranty or assumption of
7412
 
     liability accompanies a copy of the Program in return for a fee.
7413
 
 
7414
 
                        END OF TERMS AND CONDITIONS
7415
 
How to Apply These Terms to Your New Programs
7416
 
=============================================
7417
 
 
7418
 
     If you develop a new program, and you want it to be of the greatest
7419
 
possible use to the public, the best way to achieve this is to make it
7420
 
free software which everyone can redistribute and change under these
7421
 
terms.
7422
 
 
7423
 
     To do so, attach the following notices to the program.  It is
7424
 
safest to attach them to the start of each source file to most
7425
 
effectively state the exclusion of warranty; and each file should have
7426
 
at least the "copyright" line and a pointer to where the full notice is
7427
 
found.
7428
 
          ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
7429
 
          Copyright (C) YEAR NAME OF AUTHOR
7430
 
 
7431
 
          This program is free software: you can redistribute it and/or modify
7432
 
          it under the terms of the GNU General Public License as published by
7433
 
          the Free Software Foundation, either version 3 of the License, or (at
7434
 
          your option) any later version.
7435
 
 
7436
 
          This program is distributed in the hope that it will be useful, but
7437
 
          WITHOUT ANY WARRANTY; without even the implied warranty of
7438
 
          MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7439
 
          General Public License for more details.
7440
 
 
7441
 
          You should have received a copy of the GNU General Public License
7442
 
          along with this program.  If not, see `http://www.gnu.org/licenses/'.
7443
 
 
7444
 
     Also add information on how to contact you by electronic and paper
7445
 
mail.
7446
 
 
7447
 
     If the program does terminal interaction, make it output a short
7448
 
notice like this when it starts in an interactive mode:
7449
 
 
7450
 
          PROGRAM Copyright (C) YEAR NAME OF AUTHOR
7451
 
          This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
7452
 
          This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
7453
 
 
7454
 
     The hypothetical commands `show w' and `show c' should show the
7455
 
appropriate parts of the General Public License.  Of course, your
7456
 
program's commands might be different; for a GUI interface, you would
7457
 
use an "about box".
7458
 
 
7459
 
     You should also get your employer (if you work as a programmer) or
7460
 
school, if any, to sign a "copyright disclaimer" for the program, if
7461
 
necessary.  For more information on this, and how to apply and follow
7462
 
the GNU GPL, see `http://www.gnu.org/licenses/'.
7463
 
 
7464
 
     The GNU General Public License does not permit incorporating your
7465
 
program into proprietary programs.  If your program is a subroutine
7466
 
library, you may consider it more useful to permit linking proprietary
7467
 
applications with the library.  If this is what you want to do, use the
7468
 
GNU Lesser General Public License instead of this License.  But first,
7469
 
please read `http://www.gnu.org/philosophy/why-not-lgpl.html'.
7470
 
 
7471