1REPREPRO(1)                        REPREPRO                        REPREPRO(1)
2
3
4

NAME

6       reprepro  - produce, manage and sync a local repository of Debian pack‐
7       ages
8

SYNOPSIS

10       reprepro --help
11
12       reprepro [ options ] command [ per-command-arguments ]
13

DESCRIPTION

15       reprepro is a tool to manage a repository  of  Debian  packages  (.deb,
16       .udeb,  .dsc,  ...).  It stores files either being injected manually or
17       downloaded from some other repository (partially) mirrored into a pool/
18       hierarchy.   Managed  packages  and  checksums of files are stored in a
19       Berkeley DB database file, so no database server is  needed.   Checking
20       signatures of mirrored repositories and creating signatures of the gen‐
21       erated Package indices is supported.
22
23       Former working title of this program was mirrorer.
24

GLOBAL OPTIONS

26       Options can be specified before the command. Each affects  a  different
27       subset of commands and is ignored by other commands.
28
29       -h --help
30              Displays a short list of options and commands with description.
31
32       -v, -V, --verbose
33              Be more verbose. Can be applied multiple times. One uppercase -V
34              counts as five lowercase -v.
35
36       --silent
37              Be less verbose. Can be applied multiple times. One -v  and  one
38              -s cancel each other out.
39
40       -f, --force
41              This option is ignored, as it no longer exists.
42
43       -b, --basedir basedir
44              Sets the base-dir all other default directories are relative to.
45              If none is supplied and the REPREPRO_BASE_DIR environment  vari‐
46              able is not set either, the current directory will be used.
47
48       --outdir outdir
49              Sets  the  base-dir  of the repository to manage, i.e. where the
50              pool/ subdirectory resides. And in which the dists/ directory is
51              placed by default.  If this starts with '+b/', it is relative to
52              basedir.
53
54              The default for this is basedir.
55
56       --confdir confdir
57              Sets the directory where the configuration is searched in.
58
59              If this starts with '+b/', it is relative to basedir.
60
61              If none is given, +b/conf (i.e. basedir/conf) will be used.
62
63       --distdir distdir
64              Sets the directory to generate index files relatively to.  (i.e.
65              things like Packages.gz, Sources.gz and Release.gpg)
66
67              If  this starts with '+b/', it is relative to basedir, if start‐
68              ing with '+o/' relative to outdir.
69
70              If none is given, +o/dists (i.e. outdir/dists) is used.
71
72              Note: apt has dists hard-coded in it, so  this  is  mostly  only
73              useful  for  testing or when your webserver pretends another di‐
74              rectory structure than your physical layout.
75
76              Warning: Beware when changing this forth and  back  between  two
77              values not ending in the same directory.  Reprepro only looks if
78              files it wants are there. If nothing of the content changed  and
79              there  is a file it will not touch it, assuming it is the one it
80              wrote last time, assuming any different --distdir ended  in  the
81              same  directory.   So  either  clean  a directory before setting
82              --distdir to it or do an export with the new one first to have a
83              consistent state.
84
85       --logdir logdir
86              The  directory  where  files generated by the Log: directive are
87              stored if they have no absolute path.
88
89              If this starts with '+b/', it is relative to basedir, if  start‐
90              ing  with  '+o/'  relative  to  outdir,  with  '+c/' relative to
91              confdir.
92
93              If none is given, +b/logs (i.e. basedir/logs) is used.
94
95       --dbdir dbdir
96              Sets the directory where reprepro keeps its databases.
97
98              If this starts with '+b/', it is relative to basedir, if  start‐
99              ing  with  '+o/'  relative  to  outdir,  with  '+c/' relative to
100              confdir.
101
102              If none is given, +b/db (i.e. basedir/db) is used.
103
104              Note: This is permanent data, no cache. One has almost to regen‐
105              erate the whole repository when this is lost.
106
107       --listdir listdir
108              Sets  the directory where it downloads indices to when importing
109              from other repositories. This  is  temporary  data  and  can  be
110              safely deleted when not in an update run.
111
112              If  this starts with '+b/', it is relative to basedir, if start‐
113              ing with '+o/'  relative  to  outdir,  with  '+c/'  relative  to
114              confdir.
115
116              If none is given, +b/lists (i.e. basedir/lists) is used.
117
118       --morguedir morguedir
119              Files deleted from the pool are stored into morguedir.
120
121              If  this starts with '+b/', it is relative to basedir, if start‐
122              ing with '+o/'  relative  to  outdir,  with  '+c/'  relative  to
123              confdir.
124
125              If none is given, deleted files are just deleted.
126
127       --methoddir methoddir
128              Look in methoddir instead of /usr/lib/apt/methods for methods to
129              call when importing from other repositories.
130
131       -C, --component components
132              Limit the specified command to this components only.  This  will
133              force added packages to this components, limit removing packages
134              from this components, only list  packages  in  this  components,
135              and/or  otherwise  only look at packages in this components, de‐
136              pending on the command in question.
137
138              Multiple components are specified by separating them with |,  as
139              in -C 'main|contrib'.
140
141       -A, --architecture architectures
142              Limit  the  specified command to this architectures only.  (i.e.
143              only list such packages, only remove packages from the specified
144              architectures,  or  otherwise only look at/act on this architec‐
145              tures depending on the specific command).
146
147              Multiple architectures are specified by separating them with  |,
148              as in -A 'sparc|i386'.
149
150              Note  that architecture all packages can be included to each ar‐
151              chitecture but are then handled separately.  Thus by using -A in
152              a  specific  way one can have different versions of an architec‐
153              ture all package in different architectures of the same  distri‐
154              bution.
155
156       -T, --type dsc|deb|udeb
157              Limit  the  specified  command to this packagetypes only.  (i.e.
158              only list such packages, only remove such packages, only include
159              such packages, ...)
160
161       -S, --section section
162              Overrides  the  section  of  inclusions. (Also override possible
163              override files)
164
165       -P, --priority priority
166              Overrides the priority of inclusions.  (Also  override  possible
167              override files)
168
169       --export=(silent-never|never|changed|lookedat|force)
170              This option specify whether and how the high level actions (e.g.
171              install, update, pull, delete) should export the index files  of
172              the distributions they work with.
173
174       --export=lookedat
175              In  this  mode every distribution the action handled will be ex‐
176              ported, unless there was an error possibly corrupting it.
177              Note that only missing files and files  whose  intended  content
178              changed between before and after the action will be written.  To
179              get a guaranteed current export, use the export action.
180              For backwards compatibility, lookedat is  also  available  under
181              the  old name normal.  The name normal is deprecated and will be
182              removed in future versions.
183
184       --export=changed
185              In this mode every distribution actually  changed  will  be  ex‐
186              ported, unless there was an error possibly corrupting it.  (i.e.
187              if nothing changed, not even missing files will be created.)
188              Note that only missing files and files  whose  intended  content
189              changed between before and after the action will be written.  To
190              get a guaranteed current export, use the export action.
191
192       --export=force
193              Always export all distributions looked at,  even  if  there  was
194              some error possibly bringing it into a inconsistent state.
195
196       --export=never
197              No index files are exported. You will have to call export later.
198              Note  that  you most likely additionally need the --keepunrefer‐
199              encedfiles option, if you do not want some of the files  pointed
200              to by the untouched index files to vanish.
201
202       --export=silent-never
203              Like never, but suppress most output about that.
204
205       --ignore=what
206              Ignore  errors  of type what. See the section ERROR IGNORING for
207              possible values.
208
209       --nolistsdownload
210              When running update, checkupdate or predelete  do  not  download
211              any  Release  or index files.  This is hardly useful except when
212              you just run one of those command for  the  same  distributions.
213              And even then reprepro is usually good in not downloading except
214              Release and Release.gpg files again.
215
216       --nothingiserror
217              If nothing was done, return with exitcode 1 instead of the usual
218              0.
219
220              Note  that  "nothing  was done" means the primary purpose of the
221              action in question.  Auxiliary actions (opening and closing  the
222              database,  exporting  missing files with --export=lookedat, ...)
223              usually do not count.  Also note that  this  is  not  very  well
224              tested.   If  you  find an action that claims to have done some‐
225              thing in some cases where you think it should not, please let me
226              know.
227
228       --keeptemporaries
229              Do not delete temporary .new files when exporting a distribution
230              fails.  (reprepro first create .new files in the dists directory
231              and  only  if  everything  is  generated, all files are put into
232              their final place at once.  If this option is not specified  and
233              something fails, all are deleted to keep dists clean).
234
235       --keepunreferencedfiles
236              Do  not delete files that are no longer used because the package
237              they are from is deleted/replaced with a newer version from  the
238              last distribution it was in.
239
240       --keepunusednewfiles
241              The  include,  includedsc, includedeb and processincoming by de‐
242              fault delete any file they added to the pool that is not  marked
243              used  at  the  end  of the operation.  While this keeps the pool
244              clean and allows changing before trying to add again, this needs
245              copying  and  checksum calculation every time one tries to add a
246              file.
247
248       --keepdirectories
249              Do not try to rmdir parent directories after files  or  directo‐
250              ries  have been removed from them.  (Do this if your directories
251              have special permissions you  want  keep,  do  not  want  to  be
252              pestered  with  warnings  about errors to remove them, or have a
253              buggy rmdir call deleting non-empty directories.)
254
255       --ask-passphrase
256              Ask for passphrases when signing things and one is needed.  This
257              is  a  quick and dirty and unsafe implementation using the obso‐
258              lete getpass(3) function with the description gpgme  is  supply‐
259              ing.   So  the  prompt  will  look  quite  funny and support for
260              passphrases with more than 8 characters  depend  on  your  libc.
261              Use of this option is not recommended. Use gpg-agent with pinen‐
262              try instead.
263
264              (With current versions of gnupg you need  to  set  pinentry-mode
265              loopback  in  your .gnupg/gpg.conf file to use --ask-passphrase.
266              Without that option gnupg uses the much  safer  and  recommended
267              pinentry instead).
268
269       --noskipold
270              When  updating  do not skip targets where no new index files and
271              no files marked as already processed are available.
272
273              If you changed a script to preprocess downloaded index files  or
274              changed a Listfilter, you most likely want to call reprepro with
275              --noskipold.
276
277       --waitforlock count
278              If there is a lockfile indicating another instance  of  reprepro
279              is currently using the database, retry count times after waiting
280              for 10 seconds each time.  The default is 0 and means  to  error
281              out instantly.
282
283       --spacecheck full|none
284              The default is full:
285              In  the  update  commands, check for every to be downloaded file
286              which filesystem it is on and how much space is left.
287              To disable this behaviour, use none.
288
289       --dbsafetymargin bytes-count
290              If checking for free space,  reserve  byte-count  bytes  on  the
291              filesystem   containing  the  db/  directory.   The  default  is
292              104857600 (i.e. 100MB), which is quite large.  But as  there  is
293              no  way to know in advance how large the databases will grow and
294              libdb is extremely touchy in that regard, lower  only  when  you
295              know what you do.
296
297       --safetymargin bytes-count
298              If checking for free space, reserve byte-count bytes on filesys‐
299              tems not containing the db/ directory.  The default  is  1048576
300              (i.e. 1MB).
301
302       --noguessgpgtty
303              Don't  set the environment variable GPG_TTY, even when it is not
304              set, stdin is terminal and /proc/self/fd/0 is  a  readable  sym‐
305              bolic link.
306
307       --gnupghome
308              Set the GNUPGHOME evnironment variable to the given directory as
309              argument to this option.  And your gpg will most likely use  the
310              content  of this variable instead of "~/.gnupg".  Take a look at
311              gpg(1) to be sure.  This option in the command line  is  usually
312              not  very useful, as it is possible to set the environment vari‐
313              able directly.  Its main reason for existence is that it can  be
314              used in conf/options.
315
316       --gunzip gz-uncompressor
317              While  reprepro links against libz, it will look for the program
318              given with this option (or gunzip if not  given)  and  use  that
319              when  uncompressing  index  files  while downloading from remote
320              repositories.  (So that downloading and uncompression can happen
321              at the same time).  If the program is not found or is NONE (all-
322              uppercase) then uncompressing will  always  be  done  using  the
323              built  in  uncompression  method.  The program has to accept the
324              compressed file as stdin and write the  uncompressed  file  into
325              stdout.
326
327       --bunzip2 bz2-uncompressor
328              When  uncompressing  downloaded  index  files  or  if not linked
329              against libbz2 reprepro will use this program to uncompress .bz2
330              files.   The  default  value  is bunzip2.  If the program is not
331              found or is NONE (all-uppercase) then uncompressing will  always
332              be done using the built in uncompression method or not be possi‐
333              ble if not linked against libbz2.  The program has to accept the
334              compressed  file  as  stdin and write the uncompressed file into
335              stdout.
336
337       --unlzma lzma-uncompressor
338              When uncompressing downloaded  index  files  or  if  not  linked
339              against  liblzma  reprepro  will  use this program to uncompress
340              .lzma files.  The default value is unlzma.  If  the  program  is
341              not  found  or  is  NONE (all-uppercase) then uncompressing lzma
342              files will always be  done  using  the  built  in  uncompression
343              method  or  not  be possible if not linked against liblzma.  The
344              program has to accept the compressed file as stdin and write the
345              uncompressed file into stdout.
346
347       --unxz xz-uncompressor
348              When  uncompressing  downloaded  index  files  or  if not linked
349              against liblzma reprepro will use this program to uncompress .xz
350              files.   The default value is unxz.  If the program is not found
351              or is NONE (all-uppercase) then uncompressing xz files will  al‐
352              ways  be  done using the built in uncompression method or not be
353              possible if not linked against liblzma.  The program has to  ac‐
354              cept  the  compressed  file  as stdin and write the uncompressed
355              file into stdout.
356
357       --lunzip lzip-uncompressor
358              When trying to uncompress or read lzip  compressed  files,  this
359              program will be used.  The default value is lunzip.  If the pro‐
360              gram is not found or is NONE (all-uppercase) then  uncompressing
361              lz  files  will  not be possible.  The program has to accept the
362              compressed file as stdin and write the  uncompressed  file  into
363              stdout.  Note that .lz support is DEPRECATED and will be removed
364              in the future.
365
366       --list-max count
367              Limits the output of list, listmatched  and  listfilter  to  the
368              first count results.  The default is 0, which means unlimited.
369
370       --list-skip count
371              Omitts  the  first  count results from the output of list, list‐
372              matched and listfilter.
373
374       --list-format format
375              Set the output format of list, listmatched and  listfilter  com‐
376              mands.   The  format  is  similar  to dpkg-query's --showformat:
377              fields are specified  as  ${fieldname}  or  ${fieldname;length}.
378              Zero length or no length means unlimited.  Positive numbers mean
379              fill with spaces right, negative fill with spaces left.
380
381              \n, \r, \t, \0  are  new-line,  carriage-return,  tabulator  and
382              zero-byte.   Backslash  (\) can be used to escape every non-let‐
383              ter-or-digit.
384
385              The special field names $identifier, $architecture,  $component,
386              $type, $codename denote where the package was found.
387
388              The  special  field  names $source and $sourceversion denote the
389              source  and  source  version  a  package  belongs   to.    (i.e.
390              ${$source}  will either be the same as ${source} (without a pos‐
391              sible version in parentheses at the end) or the same as  ${pack‐
392              age}.
393
394              The  special  field  names $basename, $filekey and $fullfilename
395              denote the first package file part of this entry  (i.e.  usually
396              the  .deb, .udeb or .dsc file) as basename, as filekey (filename
397              relative to the  outdir)  and  the  full  filename  with  outdir
398              prepended  (i.e.  as  relative  or  absolute  as your outdir (or
399              basedir if you did not set outdir) is).
400
401              When --list-format is not given or NONE,  then  the  default  is
402              equivalent to
403              ${$identifier} ${package} ${version}\n.
404
405              Escaping  digits or letters not in above list, using dollars not
406              escaped outside specified constructs, or  any  field  names  not
407              listed  as  special  and not consisting entirely out of letters,
408              digits and minus signs have undefined behaviour and might change
409              meaning without any further notice.
410
411              If you give this option on the command line, don't forget that $
412              is also interpreted by your shell.  So you have to properly  es‐
413              cape   it.   For  example  by  putting  the  whole  argument  to
414              --list-format in single quotes.
415
416       --show-percent
417              When downloading packages, show each completed percent  of  com‐
418              pleted  package  downloads  together with the size of completely
419              downloaded packages.  (Repeating this option increases the  fre‐
420              quency of this output).
421
422       --onlysmalldeletes
423              The  pull  and  update  commands will skip every distribution in
424              which one target loses more than 20% of  its  packages  (and  at
425              least 10).
426
427              Using this option (or putting it in the options config file) can
428              avoid removing large quantities of data but means you might  of‐
429              ten give --noonlysmalldeletes to override it.
430
431       --restrict src[=version|:type]
432              Restrict  a  pull or update to only act on packages belonging to
433              source-package src.  Any other package will not be updated  (un‐
434              less  it  matches  a  --restrict-bin).  Only packages that would
435              otherwise be updated or are at least marked with hold in a  Fil‐
436              terList or FilerSrcList will be updated.
437
438              The  action  can be restricted to a source version using a equal
439              sign or changed to another type (see FilterList) using a colon.
440
441              This option can be given multiple times to list  multiple  pack‐
442              ages,  but  each package may only be named once (even when there
443              are different versions or types).
444
445       --restrict-binary name[=version|:type]
446              Like --restrict  but  restrict  to  binary  packages  (.deb  and
447              .udeb).   Source packages are not upgraded unless they appear in
448              a --restrict.
449
450       --restrict-file filename
451              Like --restrict but read a whole file in the FilterSrcList  for‐
452              mat.
453
454       --restrict-file-bin filename
455              Like --restrict-bin but read a whole file in the FilterList for‐
456              mat.
457
458       --endhook hookscript
459
460              Run the specified hookscript once reprepro exits.  It  will  get
461              the  usual  REPREPRO_*  environment variables set (or unset) and
462              additionally a variable REPREPRO_EXIT_CODE that is the exit code
463              with which reprepro would have exited (the hook is always called
464              once the initial parsing of global options and the command  name
465              is  done,  no matter if reprepro did anything or not).  Reprepro
466              will return to the calling process with  the  exitcode  of  this
467              script.   Reprepro  has closed all its databases and removed all
468              its locks, so you can run reprepro again in this script  (unless
469              someone else did so in the same repository before, of course).
470
471              The only advantage over running that command always directly af‐
472              ter reprepro is that you can some environment variables set  and
473              cannot so easily forget it if this option is in conf/options.
474
475              The script is supposed to be located relative to confdir, unless
476              its name starts with /, ./, +b/, +o/, or +c/ and  the  name  may
477              not start (except in the cases given before) with a +.
478
479              An example script looks like:
480               #!/bin/sh
481
482               if [ "$REPREPRO_EXIT_CODE" -ne 0 ] ; then
483                   exit "$REPREPRO_EXIT_CODE"
484               fi
485
486               echo "congratulations, reprepro with arguments: $*"
487               echo "seems to have run successfully. REPREPRO_ part of the en‐
488              vironment is:"
489               set | grep ^REPREPRO_
490
491               exit 0
492
493
494       --outhook hookscript
495              hookscript is called with a .outlog file as argument (located in
496              logdir) containing a description of all changes made to outdir.
497
498              The script is supposed to be located relative to confdir, unless
499              its name starts with /, ./, +b/, +o/, or +c/ and  the  name  may
500              not start (except in the cases given before) with a +.
501
502              For  a format of the .outlog files generated for this script see
503              the manual.html shipped with reprepro.
504

COMMANDS

506       export [ codenames ]
507              Generate all index files for the specified distributions.
508
509              This regenerates all files unconditionally.  It is  only  useful
510              if  you  want  to  be  sure dists is up to date, you called some
511              other actions with --export=never before or you want  to  create
512              an initial empty but fully equipped dists/codename directory.
513
514        [ --delete ] createsymlinks [ codenames ]
515              Creates suite symbolic links in the dists/-directory pointing to
516              the corresponding codename.
517
518              It will not create links, when multiple of the  given  codenames
519              would be linked from the same suite name, or if the link already
520              exists (though when --delete is given it will delete already ex‐
521              isting symlinks)
522
523       list codename [ packagename ]
524              List  all  packages  (source and binary, except when -T or -A is
525              given) with the given name in all components (except when -C  is
526              given) and architectures (except when -A is given) of the speci‐
527              fied distribution.  If no package name  is  given,  list  every‐
528              thing.  The format of the output can be changed with --list-for‐
529              mat.  To only get  parts  of  the  result,  use  --list-max  and
530              --list-skip.
531
532       listmatched codename glob
533              as  list,  but  does not list a single package, but all packages
534              matching the given shell-like glob.  (i.e. *, ? and [chars]  are
535              allowed).
536
537              Examples:
538
539              reprepro  -b  .  listmatched  test2 'linux-*' lists all packages
540              starting with linux-.
541
542
543       listfilter codename condition
544              as list, but does not list a single package,  but  all  packages
545              matching the given condition.
546
547              The  format  of the formulas is those of the dependency lines in
548              Debian packages' control files with some extras.  That  means  a
549              formula  consists  of  names of fields with a possible condition
550              for its content in parentheses.  These  atoms  can  be  combined
551              with  an  exclamation  mark '!' (meaning not), a pipe symbol '|'
552              (meaning or) and a comma ',' (meaning and).  Additionally paren‐
553              theses  can  be used to change binding (otherwise '!' binds more
554              than '|' than ',').
555
556              The values given in the search expression are directly alphabet‐
557              ically  compared  to  the  headers in the respective index file.
558              That means that each part Fieldname (cmp value) of  the  formula
559              will  be true for exactly those package that have in the Package
560              or Sources file a line starting with fieldname and  a  value  is
561              alphabetically cmp to value.
562
563              Additionally  since reprepro 3.11.0, '%' can be used as compari‐
564              son operator, denoting matching a name with shell like  wildcard
565              (with '*', '?' and '[..]').
566
567              The  special  field names starting with '$' have special meaning
568              (available since 3.11.1):
569
570              $Version
571
572              The version of the package, comparison  is  not  alphabetically,
573              but as Debian version strings.
574
575              $Source
576
577              The source name of the package.
578
579              $SourceVersion
580
581              The source version of the package.
582
583              $Architecture
584
585              The  architecture  the  package  is in (listfilter) or to be put
586              into.
587
588              $Component
589
590              The component the package is in (listfilter) or to be put into.
591
592              $Packagetype
593
594              The packagetype of the package.
595
596              Examples:
597
598              reprepro -b . listfilter test2 'Section (==  admin)'  will  list
599              all  packages in distribution test2 with a Section field and the
600              value of that field being admin.
601
602              reprepro -b . -T deb listfilter test2  'Source  (==  blub)  |  (
603              !Source  , Package (== blub) )' will find all .deb Packages with
604              either a Source field blub or no  Source  field  and  a  Package
605              field blub.  (That means all package generated by a source pack‐
606              age blub, except those also specifying a version number with its
607              Source).
608
609              reprepro  -b  . -T deb listfilter test2 '$Source (==blub) is the
610              better way to do this (but only available since 3.11.1).
611
612              reprepro -b . listfilter test2  '$PackageType  (==deb),  $Source
613              (==blub) is another (less efficient) way.
614
615              reprepro  -b . listfilter test2 'Package (% linux-*-2.6*)' lists
616              all packages with names starting with linux- and later having an
617              -2.6.
618
619       ls package-name
620              List the versions of the specified package in all distributions.
621
622       lsbycomponent package-name
623              Like ls, but group by component (and print component names).
624
625       remove codename package-names[=version] ...
626              Delete packages in the specified distribution, that have package
627              name listed as argument.  Package versions must be specified  by
628              appending '=' and the version to the name (without spaces). When
629              no version is specified, the latest package version is removed.
630
631              Note that like any other operation removing or replacing a pack‐
632              age,  the  old  package's files are unreferenced and thus may be
633              automatically deleted if this was their last  reference  and  no
634              --keepunreferencedfiles specified.
635
636       removematched codename glob
637              Delete  all  packages  listmatched with the same arguments would
638              list.
639
640       removefilter codename condition
641              Delete all packages listfilter with  the  same  arguments  would
642              list.
643
644       removesrc codename source-name [version]
645              Remove all packages in distribution codename belonging to source
646              package source-name.  (Limited to those with source version ver‐
647              sion if specified).
648
649              If  package  tracking is activated, it will use that information
650              to find the packages, otherwise it traverses all package indices
651              for the distribution.
652
653       removesrcs codename source-name[=version] ...
654              Like  removesrc,  but  can  be  given  multiple source names and
655              source versions must be specified by appending '=' and the  ver‐
656              sion to the name (without spaces).
657
658       update [ codenames ]
659              Sync  the  specified distributions (all if none given) as speci‐
660              fied in the config with their upstreams. See the description  of
661              conf/updates below.
662
663       checkupdate [ codenames ]
664              Same  like  update, but will show what it will change instead of
665              actually changing it.
666
667       dumpupdate [ codenames ]
668              Same like checkupdate, but less suiteable for  humans  and  more
669              suitable for computers.
670
671       predelete [ codenames ]
672              This  will determine which packages a update would delete or re‐
673              place and remove those packages.  This can be useful for  reduc‐
674              ing  space  needed  while upgrading, but there will be some time
675              where packages are vanished from the lists so clients will  mark
676              them as obsolete.  Plus if you cannot download a updated package
677              in the (hopefully) following update run, you will end up with no
678              package  at  all  instead of an old one.  This will also blow up
679              .diff files if you are using the pdiff example or something sim‐
680              ilar.   So  be careful when using this option or better get some
681              more space so that update works.
682
683       cleanlists
684              Delete all files in listdir (default basedir/lists) that do  not
685              belong  to any update rule for any distribution.  I.e. all files
686              are deleted in that directory that no update command in the cur‐
687              rent  configuration can use.  (The files are usually left there,
688              so if they are needed again they do not need  to  be  downloaded
689              again.  Though  in  many easy cases not even those files will be
690              needed.)
691
692       pull [ codenames ]
693              pull in newer packages into the specified distributions (all  if
694              none  given)  from  other  distributions in the same repository.
695              See the description of conf/pulls below.
696
697       checkpull [ codenames ]
698              Same like pull, but will show what it will change instead of ac‐
699              tually changing it.
700
701       dumppull [ codenames ]
702              Same  like  checkpull,  but  less  suiteable for humans and more
703              suitable for computers.
704
705       includedeb codename .deb-filename
706              Include the given binary Debian package (.deb) in the  specified
707              distribution,  applying  override  information  and guessing all
708              values not given and guessable.
709
710       includeudeb codename .udeb-filename
711              Same like includedeb, but for .udeb files.
712
713       includedsc codename .dsc-filename
714              Include the given Debian source package (.dsc,  including  other
715              files  like .orig.tar.gz, .tar.gz and/or .diff.gz) in the speci‐
716              fied distribution, applying override  information  and  guessing
717              all values not given and guessable.
718
719              Note that .dsc files do not contain section or priority, but the
720              Sources.gz file needs them.  reprepro tries to parse  .diff  and
721              .tar  files  for it, but is only able to resolve easy cases.  If
722              reprepro fails to extract those automatically, you have  to  ei‐
723              ther specify a DscOverride or give them via -S and -P
724
725       include codename .changes-filename
726              Include  in  the  specified  distribution all packages found and
727              suitable in the .changes  file,  applying  override  information
728              guessing all values not given and guessable.
729
730       processincoming rulesetname [.changes-file]
731              Scan  an incoming directory and process the .changes files found
732              there.  If a filename is supplied, processing is limited to that
733              file.   rulesetname  identifies  which rule-set in conf/incoming
734              determines which incoming directory to use and in what distribu‐
735              tions  to  allow packages into.  See the section about this file
736              for more information.
737
738       check [ codenames ]
739              Check if all packages in the specified  distributions  have  all
740              files needed properly registered.
741
742       checkpool [ fast ]
743              Check if all files believed to be in the pool are actually still
744              there and have the known md5sum. When fast is  specified  md5sum
745              is not checked.
746
747       collectnewchecksums
748              Calculate  all  supported  checksums  for all files in the pool.
749              (Versions prior to 3.3 did only store md5sums, 3.3  added  sha1,
750              3.5 added sha256).
751
752       translatelegacychecksums
753              Remove  the  legacy files.db file after making sure all informa‐
754              tion is also found in the new checksums.db file.  (Alternatively
755              you  can  call  collecnewchecksums  and  remove the file on your
756              own.)
757
758       rereference
759              Forget which files are needed and recollect this information.
760
761       dumpreferences
762              Print out which files are marked to be needed by whom.
763
764       dumpunreferenced
765              Print a list of all filed believed to be in the pool,  that  are
766              not known to be needed.
767
768       deleteunreferenced
769              Remove  all known files (and forget them) in the pool not marked
770              to be needed by anything.
771
772       deleteifunreferenced [ filekeys ]
773              Remove the given files (and forget them) in the pool if they are
774              not marked to be used by anything.  If no command line arguments
775              are given, stdin is read and every line treated as one  filekey.
776              This  is  mostly  useful  together  with  --keepunreferenced  in
777              conf/options or in situations where one does  not  want  to  run
778              deleteunreferenced,  which  removes  all  files  eligible  to be
779              deleted with this command.
780
781       reoverride [ codenames ]
782              Reapply the override files to the given distributions  (Or  only
783              parts thereof given by -A,-C or -T).
784
785              Note:  only  the control information is changed. Changing a sec‐
786              tion to a value,  that  would  cause  another  component  to  be
787              guessed, will not cause any warning.
788
789       redochecksums [ codenames ]
790              Readd  the  information  about file checksums to the package in‐
791              dices.
792
793              Usually the package's control information is created  at  inclu‐
794              sion  time  or  imported from some remote source and not changed
795              later.  This command  modifies  it  to  readd  missing  checksum
796              types.
797
798              Only  checksums  already known are used.  To update known check‐
799              sums about files run collectnewchecksums first.
800
801
802       dumptracks [ codenames ]
803              Print out all information about tracked source packages  in  the
804              given distributions.
805
806       retrack [ codenames ]
807              Recreate  a  tracking  database for the specified distributions.
808              This contains ouf of three steps.  First  all  files  marked  as
809              part  of a source package are set to unused.  Then all files ac‐
810              tually used are marked as thus.  Finally  tidytracks  is  called
811              remove  everything  no  longer  needed  with the new information
812              about used files.
813
814              (This behaviour, though a bit longsome, keeps  even  files  only
815              kept  because of tracking mode keep and files not otherwise used
816              but kept due to includechanges or its relatives.  Before version
817              3.0.0 such files were lost by running retrack).
818
819       removealltracks [ codenames ]
820              Removes  all  source  package tracking information for the given
821              distributions.
822
823       removetrack   codename   sourcename   version
824              Remove the trackingdata of the given version of  a  given  sour‐
825              cepackage  from a given distribution. This also removes the ref‐
826              erences for all used files.
827
828       tidytracks [ codenames ]
829              Check all source package tracking information for the given dis‐
830              tributions for files no longer to keep.
831
832       copy destination-codename source-codename package[=version] ...
833              Copy  the  given packages from one distribution to another.  The
834              packages are copied verbatim, no override files  are  consulted.
835              Only  components and architectures present in the source distri‐
836              bution are copied. Package versions must be specified by append‐
837              ing  '='  and  the version to the name (without spaces). When no
838              version is specified, the latest package version is copied.
839
840       copysrc destination-codename source-codename source-package [versions]
841              look at each package (where package means, as usual, every pack‐
842              age  be  it  dsc,  deb or udeb) in the distribution specified by
843              source-codename and identifies the relevant source  package  for
844              each.   All  packages matching the specified source-package name
845              (and any version if specified) are copied to the destination-co‐
846              dename distribution.  The packages are copied verbatim, no over‐
847              ride files are consulted.   Only  components  and  architectures
848              present in the source distribution are copied.
849
850       copymatched destination-codename source-codename glob
851              Copy packages matching the given glob (see listmatched).
852
853              The  packages  are  copied  verbatim, no override files are con‐
854              sulted.  Only components and architectures present in the source
855              distribution are copied.
856
857       copyfilter destination-codename source-codename formula
858              Copy packages matching the given formula (see listfilter).  (all
859              versions if no version is specified).  The packages  are  copied
860              verbatim,  no override files are consulted.  Only components and
861              architectures present in the source distribution are copied.
862
863       move destination-codename source-codename package[=version] ...
864              Move the given packages from one distribution to  another.   The
865              packages  are  moved  verbatim, no override files are consulted.
866              Only components and architectures present in the source  distri‐
867              bution  are moved. Package versions must be specified by append‐
868              ing '=' and the version to the name (without  spaces).  When  no
869              version is specified, the latest package version is moved.
870
871       movesrc destination-codename source-codename source-package [versions]
872              look at each package (where package means, as usual, every pack‐
873              age be it dsc, deb or udeb) in  the  distribution  specified  by
874              source-codename  and  identifies the relevant source package for
875              each.  All packages matching the specified  source-package  name
876              (and  any version if specified) are moved to the destination-co‐
877              dename distribution.  The packages are moved verbatim, no  over‐
878              ride  files  are  consulted.   Only components and architectures
879              present in the source distribution are moved.
880
881       movematched destination-codename source-codename glob
882              Move packages matching the given glob (see listmatched).
883
884              The packages are moved verbatim,  no  override  files  are  con‐
885              sulted.  Only components and architectures present in the source
886              distribution are moved.
887
888       movefilter destination-codename source-codename formula
889              Move packages matching the given formula (see listfilter).  (all
890              versions  if  no  version is specified).  The packages are moved
891              verbatim, no override files are consulted.  Only components  and
892              architectures present in the source distribution are moved.
893
894       restore codename snapshot packages...
895
896       restoresrc codename snapshot source-epackage [versions]
897
898       restorefilter destination-codename snapshot formula
899
900       restorematched destination-codename snapshot glob
901              Like  the  copy commands, but do not copy from another distribu‐
902              tion, but from a snapshot generated with gensnapshot.  Note that
903              this blindly trusts the contents of the files in your dists/ di‐
904              rectory and does no checking.
905
906       clearvanished
907              Remove all package databases that no longer appear in  conf/dis‐
908              tributions.  If --delete is specified, it will not stop if there
909              are still packages left.  Even without --delete it will unrefer‐
910              ence  files still marked as needed by this target.  (Use --keep‐
911              unreferenced to not delete them if that was the last reference.)
912
913              Do not forget to remove all exported package indices manually.
914
915       gensnapshot   codename   directoryname
916              Generate a snapshot of the distribution specified by codename in
917              the directory dists/codename/snapshots/directoryname/ and refer‐
918              ence all needed files in the pool as needed by that.  No Content
919              files are generated and no export hooks are run.
920
921              Note  that  there  is  currently no automated way to remove that
922              snapshot again (not even clearvanished will  unlock  the  refer‐
923              enced  files  after the distribution itself vanished).  You will
924              have to remove the directory yourself and tell reprepro  to  un‐
925              referencesnapshot  codename  directoryname before deleteunrefer‐
926              enced will delete the files from the pool locked by this.
927
928              To access such a snapshot with apt, add something like the  fol‐
929              lowing to your sources.list file:
930              deb method://as/without/snapshot codename/snapshots/name main
931
932       unreferencesnapshot   codename   directoryname
933              Remove  all references generated by an genshapshot with the same
934              arguments.  This allows the next deleteunferenced call to delete
935              those  files.   (The indicies in dists/ for the snapshot are not
936              removed.)
937
938       rerunnotifiers [ codenames ]
939              Run all external scripts specified in the Log:  options  of  the
940              specified distributions.
941
942       build-needing codename architecture [ glob ]
943              List source packages (matching glob) that likely need a build on
944              the given architecture.
945
946              List all source package in the given distribution without a  bi‐
947              nary  package  of the given architecture built from that version
948              of the source, without a .changes or .log file for the given ar‐
949              chitecture,  with  an  Architecture  field including any, os-any
950              (with os being the part before the hyphen in the architecture or
951              linux  if  there  is no hyphen) or the architecture and at least
952              one package in the Binary field not yet available.
953
954              If instead of architecture the term any is used,  all  architec‐
955              tures  are  iterated  and  the architecture is printed as fourth
956              field in every line.
957
958              If the architecture is all, then only source  packages  with  an
959              Architecture  field  including all are considered (i.e. as above
960              with real architectures but any does not  suffice).   Note  that
961              dpkg-dev << 1.16.1 does not both set any and all so source pack‐
962              ages building both architecture dependent and independent  pack‐
963              ages  will  never  show  up  unless  built  with  a  new  enough
964              dpkg-source).
965
966
967       translatefilelists
968              Translate the file list cache within  db/contents.cache.db  into
969              the new format used since reprepro 3.0.0.
970
971              Make  sure  you  have  at least half of the space of the current
972              db/contents.cache.db file size available in that partition.
973
974       flood distribution [architecture]
975              For each architecture of distribution (or for the one specified)
976              add  architecture all packages from other architectures (but the
977              same component or packagetype) under the following conditions:
978
979               Packages are only upgraded, never downgraded.
980               If there is a package not being architecture all,  then  archi‐
981              tecture  all  packages  of  the same source from the same source
982              version are preferred over those that have no such  binary  sib‐
983              ling.
984               Otherwise the package with the highest version wins.
985
986              You  can restrict with architectures are looked for architecture
987              all packages using  -A  and  which  components/packagetypes  are
988              flooded by -C/-T as usual.
989
990              There are mostly two use cases for this command: If you added an
991              new architecture to an distribution and want to copy all  archi‐
992              tecture  all  packages to it.  Or if you included some architec‐
993              ture all packages only to some architectures using -A  to  avoid
994              breaking  the  other architectures for which the binary packages
995              were still missing and now want to copy it  to  those  architec‐
996              tures  were they are unlikely to break something (because a new‐
997              binary is already available).
998
999       unusedsources [distributions]
1000              List all source packages for which no binary package build  from
1001              them is found.
1002
1003       sourcemissing [distributions]
1004              List  all  binary  packages for which no source package is found
1005              (the source package must be in the same distribution, but source
1006              packages only kept by package tracking is enough).
1007
1008       reportcruft [distributions]
1009              List all source package versions that either have a source pack‐
1010              age and no longer a binary package or binary packages left with‐
1011              out source package in the index. (Unless sourcemissing also list
1012              packages where the source package in only in the pool due to en‐
1013              abled tracking but no longer in the index).
1014
1015       sizes [ codenames ]
1016              List  the size of all packages in the distributions specified or
1017              in all distributions.
1018
1019              Each row contains 4 numbers, each being a number of bytes  in  a
1020              set  of  packages,  which are: The packages in this distribution
1021              (including anything only kept because of tracking), the packages
1022              only  in  this distribution (anything in this distribution and a
1023              snapshot of this distribution counts as only in  this  distribu‐
1024              tion),  the packages in this distribution and its snapshots, the
1025              packages only in this distribution or its snapshots.
1026
1027              If more than one distribution is selected, also list  a  sum  of
1028              those (in which 'Only' means only in selected ones, and not only
1029              only in one of the selected ones).
1030
1031
1032       repairdescriptions [ codenames ]
1033              Look for binary packages only having a short description and try
1034              to  get the long description from the .deb file (and also remove
1035              a possible Description-md5 in this case).
1036
1037   internal commands
1038       These are hopefully never needed, but allow manual intervention.  WARN‐
1039       ING:  Is  is  quite  easy  to get into an inconsistent and/or unfixable
1040       state.
1041
1042       _detect [ filekeys ]
1043              Look for the files, which filekey is given as argument or  as  a
1044              line  of  the  input (when run without arguments), and calculate
1045              their md5sum and add them to the list of known files.  (Warning:
1046              this is a low level operation, no input validation or normaliza‐
1047              tion is done.)
1048
1049       _forget [ filekeys ]
1050              Like _detect but remove the given filekey from the list of known
1051              files.   (Warning: this is a low level operation, no input vali‐
1052              dation or normalization is done.)
1053
1054       _listmd5sums
1055              Print a list of all known files and their md5sums.
1056
1057       _listchecksums
1058              Print a list of all known files and their recorded checksums.
1059
1060       _addmd5sums
1061              alias for the newer
1062
1063       _addchecksums
1064              Add information of known files (without any check done)  in  the
1065              strict format of _listchecksums output (i.e. don't dare to use a
1066              single space anywhere more than needed).
1067
1068       _dumpcontents identifier
1069              Printout all the stored information of the specified part of the
1070              repository.  (Or  in  other words, the content the corresponding
1071              Packages or Sources file would get)
1072
1073              This command is deprecated and will be removed in a future  ver‐
1074              sion.
1075
1076       _addreference filekey identifier
1077              Manually mark filekey to be needed by identifier
1078
1079       _addreferences identifier [ filekeys ]
1080              Manually  mark  one or more filekeys to be needed by identifier.
1081              If no command line arguments are given, stdin is read and  every
1082              line treated as one filekey.
1083
1084       _removereference identifier filekey
1085              Manually  remove  the given mark that the file is needed by this
1086              identifier.
1087
1088       _removereferences identifier
1089              Remove all references what is needed by identifier.
1090
1091       __extractcontrol .deb-filename
1092              Look what reprepro believes to be the  content  of  the  control
1093              file of the specified .deb-file.
1094
1095       __extractfilelist .deb-filename
1096              Look what reprepro believes to be the list of files of the spec‐
1097              ified .deb-file.
1098
1099       _fakeemptyfilelist filekey
1100              Insert an empty filelist for filekey. This is a evil hack around
1101              broken .deb files that cannot be read by reprepro.
1102
1103       _addpackage codenam filename packages...
1104              Add packages from the specified filename to part specified by -C
1105              -A and -T of the specified distribution.   Very  strange  things
1106              can happen if you use it improperly.
1107
1108       __dumpuncompressors
1109              List what compressions format can be uncompressed and how.
1110
1111       __uncompress format compressed-file uncompressed-file
1112              Use  builtin  or external uncompression to uncompress the speci‐
1113              fied file of the specified format into the specified target.
1114
1115       _listcodenames
1116              Print - on per line - the codenames of all configured  distribu‐
1117              tions.
1118
1119       _listconfidentifiers identifier [ distributions... ]
1120              Print  -  one  per line - all identifiers of subdatabases as de‐
1121              rived from the configuration.  If a  list  of  distributions  is
1122              given, only identifiers of those are printed.
1123
1124
1125       _listdbidentifiers identifier [ distributions... ]
1126              Print  -  one  per line - all identifiers of subdatabases in the
1127              current database.  This will be a subset of the ones printed  by
1128              _listconfidentifiers  or  most  commands  but clearvanished will
1129              refuse to run, and depending on the database compatibility  ver‐
1130              sion,  will include all those if reprepro was run since the con‐
1131              fig was last changed.
1132
1133

CONFIG FILES

1135       reprepo uses three config files, which are searched  in  the  directory
1136       specified with --confdir or in the conf/ subdirectory of the basedir.
1137
1138       If  a file options exists, it is parsed line by line.  Each line can be
1139       the long name of a command line option (without the --) plus  an  argu‐
1140       ment,  where  possible.  Those are handled as if they were command line
1141       options given before (and thus lower priority than) any  other  command
1142       line option.  (and also lower priority than any environment variable).
1143
1144       To  allow  command  line options to override options file options, most
1145       boolean options also have a corresponding form starting with --no.
1146
1147       (The only exception is when the path to look for config files  changes,
1148       the options file will only opened once and of course before any options
1149       within the options file are parsed.)
1150
1151       The file distributions is always needed and  describes  what  distribu‐
1152       tions  to manage, while updates is only needed when syncing with exter‐
1153       nal repositories and pulls is only needed when syncing  with  reposito‐
1154       ries in the same reprepro database.
1155
1156       The  last  three are in the format control files in Debian are in, i.e.
1157       paragraphs separated by empty lines consisting of  fields.  Each  field
1158       consists  of  a fieldname, followed by a colon, possible whitespace and
1159       the data. A field ends with a newline not followed by a space or tab.
1160
1161       Lines starting with # as first character are ignored,  while  in  other
1162       lines  the # character and everything after it till the newline charac‐
1163       ter are ignored.
1164
1165       A paragraph can also consist of only a single field  "!include:"  which
1166       causes  the  named  file  (relative to confdir unless starting with ~/,
1167       +b/, +c/ or / ) to be read as if it was found at this place.
1168
1169       Each of the three files or a file included as described above can  also
1170       be  a  directory,  in  which case all files it contains with a filename
1171       ending in .conf and not starting with .  are read.
1172
1173   conf/distributions
1174       Codename
1175              This required field is the unique identifier of  a  distribution
1176              and  used as directory name within dists/ It is also copied into
1177              the Release files.
1178
1179              Note that this name is not supposed to change.  You most  likely
1180              never  ever  want  a name like testing or stable here (those are
1181              suite names  and  supposed  to  point  to  another  distribution
1182              later).
1183
1184       Suite  This  optional field is simply copied into the Release files. In
1185              Debian it contains names like stable, testing  or  unstable.  To
1186              create  symlinks  from  the  Suite to the Codename, use the cre‐
1187              atesymlinks command of reprepro.
1188
1189       FakeComponentPrefix
1190              If this field is present, its argument is added - separated by a
1191              slash -  before every Component written to the main Release file
1192              (unless the component already starts with it), and removed  from
1193              the  end of the Codename and Suite fields in that file.  Also if
1194              a component starts with it, its directory in the  dists  dir  is
1195              shortened by this.
1196              So
1197
1198               Codename: bla/updates
1199               Suite: foo/updates
1200               FakeComponentPrefix: updates
1201               Components: main bad
1202
1203              will create a Release file with
1204
1205               Codename: bla
1206               Suite: foo
1207               Components: updates/main updates/bad
1208
1209              in it, but otherwise nothing is changed, while
1210
1211               Codename: bla/updates
1212               Suite: foo/updates
1213               FakeComponentPrefix: updates
1214               Components: updates/main updates/bad
1215
1216              will also create a Release file with
1217
1218               Codename: bla
1219               Suite: foo
1220               Components: updates/main updates/bad
1221
1222              but the packages will actually be in the components updates/main
1223              and updates/bad, most likely causing the same file using  dupli‐
1224              cate storage space.
1225
1226              This makes the distribution look more like Debian's security ar‐
1227              chive, thus work around  problems  with  apt's  workarounds  for
1228              that.
1229
1230       AlsoAcceptFor
1231              A  list  of distribution names.  When a .changes file is told to
1232              be included into this distribution with the include command  and
1233              the  distribution  header  of that file is neither the codename,
1234              nor the suite name, nor any name from the list, a wrongdistribu‐
1235              tion error is generated.  The process_incoming command will also
1236              use this field, see the description of Allow  and  Default  from
1237              the conf/incoming file for more information.
1238
1239       Version
1240              This optional field is simply copied into the Release files.
1241
1242       Origin This optional field is simply copied into the Release files.
1243
1244       Label  This optional field is simply copied into the Release files.
1245
1246       NotAutomatic
1247              This  optional  field  is  simply copied into the Release files.
1248              (The value is handled as an arbitrary  string,  though  anything
1249              but yes does not make much sense right now.)
1250
1251       ButAutomaticUpgrades
1252              This  optional  field  is  simply copied into the Release files.
1253              (The value is handled as an arbitrary  string,  though  anything
1254              but yes does not make much sense right now.)
1255
1256       Description
1257              This optional field is simply copied into the Release files.
1258
1259       Architectures
1260              This  required  field lists the binary architectures within this
1261              distribution and if it contains source (i.e. if there is an item
1262              source  in  this  line  this  Distribution has source. All other
1263              items specify things to be put after "binary-" to form directory
1264              names and be checked against "Architecture:" fields.)
1265
1266              This will also be copied into the Release files. (With exception
1267              of the source item, which will not occur in the topmost  Release
1268              file whether it is present here or not)
1269
1270       Components
1271              This  required  field lists the component of a distribution. See
1272              GUESSING for rules which component packages are included into by
1273              default. This will also be copied into the Release files.
1274
1275       DDebComponents
1276              List of components containing .ddebs.
1277
1278       UDebComponents
1279              Components   with  a  debian-installer  subhierarchy  containing
1280              .udebs.  (E.g. simply "main")
1281
1282       Update When this field is present, it describes which update rules  are
1283              used for this distribution. There also can be a magic rule minus
1284              ("-"), see below.
1285
1286       Pull   When this field is present, it describes which  pull  rules  are
1287              used  for  this distribution.  Pull rules are like Update rules,
1288              but get their stuff from other distributions and not from exter‐
1289              nal sources.  See the description for conf/pulls.
1290
1291       SignWith
1292              When  this  field  is present, a Release.gpg file will be gener‐
1293              ated.  If the value is "yes" or "default", the  default  key  of
1294              gpg is used.  If the field starts with an exlamation mark ("!"),
1295              the given script is executed to do the signing.   Otherwise  the
1296              value will be given to libgpgme to determine to key to use.
1297
1298              If there are problems with signing, you can try
1299              gpg --list-secret-keys value
1300              to see how gpg could interprete the value.  If that command does
1301              not list any keys or multiple ones, try to find some other value
1302              (like  the  keyid),  that  gpg  can more easily associate with a
1303              unique key.
1304
1305              If this key has a passphrase, you need to use gpg-agent  or  the
1306              insecure option --ask-passphrase.
1307
1308              A '!' hook script is looked for in the confdir, unless it starts
1309              with ~/, ./, +b/, +o/, +c/ or / .  Is gets  three  command  line
1310              arguments:  The filename to sign, an empty argument or the file‐
1311              name to create with an inline signature (i.e. InRelease) and  an
1312              empty  argument  or the filename to create an detached signature
1313              (i.e. Release.gpg).  The script may generate no Release.gpg file
1314              if it choses to (then the repository will look like unsigned for
1315              older clients), but  generating  empty  files  is  not  allowed.
1316              Reprepro  waits  for the script to finish and will abort the ex‐
1317              porting of the distribution this signing is part of  unless  the
1318              scripts  returns normally with exit code 0.  Using a space after
1319              ! is recommended to avoid incompatibilities with possible future
1320              extensions.
1321
1322       DebOverride
1323              When  this field is present, it describes the override file used
1324              when including .deb files.
1325
1326       UDebOverride
1327              When this field is present, it describes the override file  used
1328              when including .udeb files.
1329
1330       DscOverride
1331              When  this field is present, it describes the override file used
1332              when including .dsc files.
1333
1334       DebIndices, UDebIndices, DscIndices
1335              Choose what kind of Index files to export. The  first  part  de‐
1336              scribes  what  the Index file shall be called.  The second argu‐
1337              ment determines the name of a Release file to generate or not to
1338              generate  if missing.  Then at least one of ".", ".gz", ".xz" or
1339              ".bz2"  specifying  whether  to  generate  uncompressed  output,
1340              gzipped  output,  bzip2ed  output or any combination.  (bzip2 is
1341              only available when compiled with bzip2 support, so it might not
1342              be  available  when you compiled it on your own, same for xz and
1343              liblzma).  If an argument not starting with dot follows, it will
1344              be executed after all index files are generated.  (See the exam‐
1345              ples for what argument this gets).  The default is:
1346              DebIndices: Packages Release . .gz
1347              UDebIndices: Packages . .gz
1348              DscIndices: Sources Release .gz
1349
1350       ExportOptions
1351              Options to modify how and if exporting is done:
1352              noexport Never export this distribution.  That means there  will
1353              be  no  directory below dists/ generated and the distribution is
1354              only useful to copy packages to other distributions.
1355              keepunknown Ignore unknown files and directories in the exported
1356              directory.   This is currently the only available option and the
1357              default, but might change in the future, so it  can  already  be
1358              requested explicitly.
1359
1360       Contents
1361              Enable  the  creation  of  Contents  files listing all the files
1362              within the binary packages of a distribution.  (Which  is  quite
1363              slow, you have been warned).
1364
1365              In  earlier  versions, the first argument was a rate at which to
1366              extract file lists.  As this did not work and was no longer eas‐
1367              ily  possible  after  some factorisation, this is no longer sup‐
1368              ported.
1369
1370              The arguments of this field is a space  separated  list  of  op‐
1371              tions.   If there is a udebs keyword, .udebs are also listed (in
1372              a file called uContents-architecture.)  If  there  is  a  nodebs
1373              keyword,  .debs  are  not  listed.   (Only  useful together with
1374              udebs) If there is at least one of  the  keywords  .,  .gz,  .xz
1375              and/or  .bz2,  the  Contents  files  are  written  uncompressed,
1376              gzipped and/or bzip2ed instead of only gzipped.
1377
1378              If there is a percomponent then one Contents-arch file per  com‐
1379              ponent  is created.  If there is a allcomponents then one global
1380              Contents-arch file is generated.  If both are  given,  both  are
1381              created.   If  none  of  both  is specified then percomponent is
1382              taken as default (earlier versions had other defaults).
1383
1384              The switches compatsymlink or nocompatsymlink (only possible  if
1385              allcomponents  was  not  specified explicitly) control whether a
1386              compatibility symlink is created so  old  versions  of  apt-file
1387              looking for the component independent filenames at least see the
1388              contents of the first component.
1389
1390              Unless allcomponents is given, compatsymlinks currently  is  the
1391              default,  but that will change in some future (current estimate:
1392              after wheezy was released)
1393
1394
1395       ContentsArchitectures
1396              Limit generation of Contents files to the  architectures  given.
1397              If this field is not there, all architectures are processed.  An
1398              empty field means no architectures are processed, thus not  very
1399              useful.
1400
1401       ContentsComponents
1402              Limit  what components are processed for the Contents-arch files
1403              to the components given.  If this field is not there, all compo‐
1404              nents  are  processed.   An empty field is equivalent to specify
1405              nodebs in the Contents field, while a non-empty field  overrides
1406              a nodebs there.
1407
1408       ContentsUComponents
1409              Limit  what  components are processed for the uContents files to
1410              the components given.  If this field is not there and  there  is
1411              the  udebs keyword in the Contents field, all .udebs of all com‐
1412              ponents are put in the uContents.arch files.  If this  field  is
1413              not  there  and there is no udebs keyword in the Contents field,
1414              no uContents-arch files  are  generated  at  all.   A  non-empty
1415              fields implies generation of uContents-arch files (just like the
1416              udebs keyword in the Contents field), while an empty one  causes
1417              no uContents-arch files to be generated.
1418
1419       Uploaders
1420              Specifies  a  file (relative to confdir if not starting with ~/,
1421              +b/, +c/ or / ) to specify who is allowed  to  upload  packages.
1422              Without  this  there are no limits, and this file can be ignored
1423              via --ignore=uploaders.  See the section UPLOADERS FILES below.
1424
1425       Tracking
1426              Enable the (experimental) tracking of source packages.  The  ar‐
1427              gument list needs to contain exactly one of the following:
1428              keep  Keeps  all  files of a given source package, until that is
1429              deleted explicitly via removetrack. This is currently  the  only
1430              possibility  to keep older packages around when all indices con‐
1431              tain newer files.
1432              all Keep all files belonging to a given source package until the
1433              last file of it is no longer used within that distribution.
1434              minimal Remove files no longer included in the tracked distribu‐
1435              tion.  (Remove changes, logs and  includebyhand  files  once  no
1436              file is in any part of the distribution).
1437              And any number of the following (or none):
1438              includechanges  Add  the .changes file to the tracked files of a
1439              source package.  Thus it is also put into the pool.
1440              includebyhand Add byhand and raw-* files to  the  tracked  files
1441              and thus in the pool.
1442              includebuildinfos  Add  buildinfo files to the tracked files and
1443              thus in the pool.
1444              includelogs Add log files to the tracked files and thus  in  the
1445              pool.   (Not that putting log files in changes files is a repre‐
1446              pro extension not found in normal changes files)
1447              embargoalls Not yet implemented.
1448              keepsources Even when using minimal mode, do not  remove  source
1449              files until no file is needed any more.
1450              needsources Not yet implemented.
1451
1452       Limit  Limit  the number of versions of a package per distribution, ar‐
1453              chitecture, component, and type. The limit must be a number.  If
1454              the  number  is  positive,  all  old package version that exceed
1455              these limit will be removed or archived  (see  Archive  option),
1456              when  a  new  package version is added. If the number is zero or
1457              negative, all package version will be kept. By default only  one
1458              package version will be kept.
1459
1460       Archive
1461              Specify  a  codename  which  must  be  declared before (to avoid
1462              loops). When packages exceed the version count limit  (specified
1463              in Limit), these packages will be moved to the specified distri‐
1464              bution instead of being removed.
1465
1466       Log    Specify a file to log additions and removals of  this  distribu‐
1467              tion  into  and/or  external  scripts  to call when something is
1468              added or removed.  The rest of the Log: line  is  the  filename,
1469              every  following  line  (as  usual,  have to begin with a single
1470              space) the name of a script to call.  The name of the script may
1471              be  preceded  with  options  of  the form --type=(dsc|deb|udeb),
1472              --architecture=name or --component=name to only call the  script
1473              for  some  parts  of  the distribution.  An script with argument
1474              --changes is called when a .changes file was accepted by include
1475              or  processincoming  (and  with  other arguments).  Both type of
1476              scripts can have a --via=command specified, in which case it  is
1477              only called when caused by reprepro command command.
1478
1479              For  information  how it is called and some examples take a look
1480              at manual.html in reprepro's source or /usr/share/doc/reprepro/
1481
1482              If the filename for the log files does not start with  a  slash,
1483              it  is  relative  to  the directory specified with --logdir, the
1484              scripts are relative to --confdir unless starting with ~/,  +b/,
1485              +c/ or /.
1486
1487       ValidFor
1488              If this field exists, an Valid-Until field is put into generated
1489              Release files for this distribution with an date as much in  the
1490              future as the argument specifies.
1491
1492              The argument has to be an number followed by one of the units d,
1493              m or y, where d means days, m means 31  days  and  y  means  365
1494              days.  So ValidFor: 1m 11 d causes the generation of a Valid-Un‐
1495              til: header in Release files that points 42 days  into  the  fu‐
1496              ture.
1497
1498       ReadOnly
1499              Disallow all modifications of this distribution or its directory
1500              in dists/codename (with the exception  of  snapshot  subdirecto‐
1501              ries).
1502
1503       ByHandHooks
1504              This species hooks to call for handling byhand/raw files by pro‐
1505              cessincoming (and in future versions perhaps by include).
1506
1507              Each line consists out of 4 arguments: A glob  pattern  for  the
1508              section  (clasically  byhand,  though Ubuntu uses raw-*), a glob
1509              pattern for the priority (not usually used), and a glob  pattern
1510              for the filename.
1511
1512              The  4th  argument  is  the  script to be called when all of the
1513              above match.  It gets 5 arguments: the codename of the distribu‐
1514              tion,  the  section (usually byhand), the priority (usually only
1515              -), the filename in the changes file and the full filename (with
1516              processincoming in the secure TempDir).
1517
1518       Signed-By
1519              This optional field is simply copied into the Release files.  It
1520              is used to tell apt which keys to trust for this Release in  the
1521              future.   (see SignWith for how to tell reprepro whether and how
1522              to sign).
1523
1524   conf/updates
1525       Name   The name of this update-upstream as it can be used in the Update
1526              field in conf/distributions.
1527
1528       Method An  URI  as  one  could  also  give it apt, e.g.  http://ftp.de
1529              bian.de/debian  which  is  simply  given  to  the  corresponding
1530              apt-get  method.  (So either apt-get has to be installed, or you
1531              have to point with --methoddir to a place where such methods are
1532              found.
1533
1534       Fallback
1535              (Still  experimental:) A fallback URI, where all files are tried
1536              that failed the first one. They are given to the same method  as
1537              the  previous  URI  (e.g. both http://), and the fallback-server
1538              must have everything at the same  place.   No  recalculation  is
1539              done, but single files are just retried from this location.
1540
1541       Config This can contain any number of lines, each in the format apt-get
1542              --option would expect. (Multiple lines ‐ as always ‐ marked with
1543              leading spaces).
1544
1545       For example: Config: Acquire::Http::Proxy=http://proxy.yours.org:8080
1546
1547       From   The  name  of  another update rule this rules derives from.  The
1548              rule containing the From may not  contain  Method,  Fallback  or
1549              Config.   All  other fields are used from the rule referenced in
1550              From, unless found in this containing the From.  The rule refer‐
1551              enced in From may itself contain a From.  Reprepro will only as‐
1552              sume two remote index files are the  same,  if  both  get  their
1553              Method information from the same rule.
1554
1555       Suite  The  suite  to update from. If this is not present, the codename
1556              of the distribution using this one is used. Also "*/whatever" is
1557              replaced by "<codename>/whatever"
1558
1559       Components
1560              The  components to update. Each item can be either the name of a
1561              component or a pair of a upstream component and a  local  compo‐
1562              nent   separated   with   ">".   (e.g.   "main>all   contrib>all
1563              non-free>notall")
1564
1565              If this field is not there, all components from the distribution
1566              to update are tried.
1567
1568              An  empty  field means no source or .deb packages are updated by
1569              this rule, but only .udeb packages, if there are any.
1570
1571              A rule might list components not available in all  distributions
1572              using  this  rule.  In this case unknown components are silently
1573              ignored.  (Unless you start reprepro with the --fast option,  it
1574              will  warn  about components unusable in all distributions using
1575              that rule. As exceptions, unusable components  called  none  are
1576              never  warned  about,  for  compatibility with versions prior to
1577              3.0.0 where and empty field had a different meaning.)
1578
1579       Architectures
1580              The architectures to update. If omitted all from  the  distribu‐
1581              tion  to  update  from.  (As with components, you can use ">" to
1582              download from one architecture and add into another  one.  (This
1583              only determine in which Package list they land, it neither over‐
1584              writes the Architecture line in its description, nor the one  in
1585              the  filename determined from this one. In other words, it is no
1586              really useful without additional filtering))
1587
1588       UDebComponents
1589              Like Components but for the udebs.
1590
1591       VerifyRelease
1592              Download the Release.gpg file and check if it is a signature  of
1593              the  Releasefile with the key given here. (In the Format as "gpg
1594              --with-colons --list-key" prints it, i.e. the last 16 hex digits
1595              of the fingerprint) Multiple keys can be specified by separating
1596              them with a "|" sign. Then finding a signature from one  of  the
1597              will  suffice.   To allow revoked or expired keys, add a "!" be‐
1598              hind a key.  (but to accept  such  signatures,  the  appropriate
1599              --ignore  is also needed).  To also allow subkeys of a specified
1600              key, add a "+" behind a key.
1601
1602       IgnoreRelease: yes
1603              If this is present, no InRelease or Release file will  be  down‐
1604              loaded and thus the md5sums of the other index files will not be
1605              checked.
1606
1607       GetInRelease: no
1608              IF this is present, no InRelease file is downloaded but only Re‐
1609              lease (and Release.gpg ) are tried.
1610
1611       Flat   If  this field is in an update rule, it is supposed to be a flat
1612              repository, i.e. a repository without a dists dir and no  subdi‐
1613              rectories   for   the   index   files.   (If  the  corresponding
1614              sources.list line has the suite end with a slash, then you might
1615              need  this one.)  The argument for the Flat: field is the Compo‐
1616              nent to put those packages into.  No  Components  or  UDebCompo‐
1617              nents  fields  are allowed in a flat update rule.  If the Archi‐
1618              tecture field has any > items, the part left of the ">"  is  ig‐
1619              nored.
1620              For example the sources.list line
1621               deb http://cran.r-project.org/bin/linux/debian etch-cran/
1622              would translate to
1623               Name: R
1624               Method: http://cran.r-project.org/bin/linux/debian
1625               Suite: etch-cran
1626               Flat: whatevercomponentyoudlikethepackagesin
1627
1628       IgnoreHashes
1629              This  directive tells reprepro to not check the listed hashes in
1630              the downloaded Release file (and  only  in  the  Release  file).
1631              Possible values are currently md5, sha1 and sha256.
1632
1633              Note that this does not speed anything up in any measurable way.
1634              The only reason to specify this if the Release file of the  dis‐
1635              tribution you want to mirror from uses a faulty algorithm imple‐
1636              mentation.  Otherwise you will gain nothing and only lose  secu‐
1637              rity.
1638
1639       FilterFormula
1640              This  can  be a formula to specify which packages to accept from
1641              this source. The format is misusing the parser intended for  De‐
1642              pendency  lines.  To get only architecture all packages use "ar‐
1643              chitecture (== all)", to get only at  least  important  packages
1644              use "priority (==required) | priority (==important)".
1645
1646              See  the description of the listfilter command for the semantics
1647              of formulas.
1648
1649       FilterList, FilterSrcList
1650              These two options each take at least two  arguments:  The  first
1651              argument  is the fallback (default) action.  All following argu‐
1652              ments are treated as file names of lists.
1653
1654              The filenames are considered to be relative to --confdir, if not
1655              starting with ~/, +b/, +c/ or /.
1656
1657              Each list file consists of lines with a package name followed by
1658              whitespaced followed by an action.
1659
1660              Each list may only contain a single line  for  a  given  package
1661              name.   The  action  to  be taken is the action specified by the
1662              first file mentioning that package.  If no list file mentions  a
1663              package, the fallback action is used instead.
1664
1665              This  format  is inspired by dpkg --get-selections before multi‐
1666              arch and the names of the actions likely only make sense if  you
1667              imagine the file to be the output of this command of an existing
1668              system.
1669
1670              For each package available in the  distribution  to  be  updated
1671              from/pulled  from this action is determined and affects the cur‐
1672              rent decision what to do to the target distribution.  (Only  af‐
1673              ter  all  update/pull rules for a given target distribution have
1674              been processed something is actually done).
1675
1676              The possible action keywords are:
1677
1678              install
1679                     mark the available package to be added to the target dis‐
1680                     tribution  unless the same version or a higher version is
1681                     already marked as to be added/kept.  (Note that without a
1682                     prior  delete  rule  (-)  or  supersede action, this will
1683                     never downgrade a package as the already existing version
1684                     is marked to be kept).
1685
1686              upgradeonly
1687                     like install but will not add new packages to a distribu‐
1688                     tion.
1689
1690              supersede
1691                     unless the current package version  is  higher  than  the
1692                     available package version, mark the package to be deleted
1693                     in the target distribution.  (Useful to  remove  packages
1694                     in  add-on  distributions once they reached the base dis‐
1695                     tribution).
1696
1697              deinstall or purge
1698                     ignore the newly available package.
1699
1700              warning
1701                     print a warning message to stderr if a new  package/newer
1702                     version  is  available.  Otherwise ignore the new package
1703                     (like with deinstall or purge).
1704
1705              hold   the new package is ignored, but every  previous  decision
1706                     to  downgrade or delete the package in the target distri‐
1707                     bution is reset.
1708
1709              error  abort the whole upgrade/pull if a new package/newer  ver‐
1710                     sion is available
1711
1712              = version
1713                     If  the  candidate  package has the given version, behave
1714                     like install.  Otherwise continue as if  this  list  file
1715                     did  not mention this package (i.e. look in the remaining
1716                     list files or use the fallback action).   Only  one  such
1717                     entry  per package is currently supported and the version
1718                     is currently compared as string.
1719
1720              If there is both FilterList and FilterSrcList then the first  is
1721              used for .deb and .udeb and the second for .dsc packages.
1722
1723              If there is only FilterList that is applied to everything.
1724
1725              If  there  is  only FilterSrcList that is applied to everything,
1726              too, but the source package name (and source version) is used to
1727              do the lookup.
1728
1729       OmitExtraSourceOnly
1730              This  field  controls whether source packages with Extra-Source-
1731              Only set are ignore when getting source packages.  Without  this
1732              option  or  if  it  is  true, those source packages are ignored,
1733              while if set to no or false, those source packages are also con‐
1734              didates  if no other filter excludes them.  (The default of true
1735              will likely change once reprepro supports multiple versions of a
1736              package or has other means to keep the source packages around).
1737
1738       ListHook
1739              If  this is given, it is executed for all downloaded index files
1740              with the downloaded list as first and a filename  that  will  be
1741              used  instead  of this. (e.g. "ListHook: /bin/cp" works but does
1742              nothing.)
1743
1744              If a file will be read multiple times, it is processed  multiple
1745              times,  with the environment variables REPREPRO_FILTER_CODENAME,
1746              REPREPRO_FILTER_PACKAGETYPE,    REPREPRO_FILTER_COMPONENT    and
1747              REPREPRO_FILTER_ARCHITECTURE  set to the where this file will be
1748              added and REPREPRO_FILTER_PATTERN to the name of the update rule
1749              causing it.
1750
1751
1752       ListShellHook
1753              This  is  like  ListHook, but the whole argument is given to the
1754              shell as argument, and the input and output file are  stdin  and
1755              stdout.
1756
1757              i.e.:
1758              ListShellHook: cat
1759              works but does nothing but useless use of a shell and cat, while
1760              ListShellHook:  grep-dctrl -X -S apt -o -X -S dpkg || [ $? -eq 1
1761              ]
1762              will limit the update rule to packages from the specified source
1763              packages.
1764
1765       DownloadListsAs
1766              The  arguments  of this field specify which index files reprepro
1767              will download.
1768
1769              Allowed values are ., .gz, .bz2, .lzma,  .xz,  .diff,  force.gz,
1770              force.bz2, force.lzma, force.xz, and force.diff.
1771
1772              Reprepro will try the first supported variant in the list given:
1773              Only compressions compiled in or for which an  uncompressor  was
1774              found are used.  Unless the value starts with force., it is only
1775              tried if is found in the Release or InRelease file.
1776
1777              The default value is .diff .xz .lzma .bz2 .gz ., i.e.   download
1778              Packages.diff if listed in the Release file, otherwise or if not
1779              usable download .xz if listed in the Release file and there is a
1780              way to uncompress it, then .lzma if usable, then .bz2 if usable,
1781              then .gz and then uncompressed).
1782
1783              Note there is no way to see if an uncompressed  variant  of  the
1784              file is available (as the Release file always lists their check‐
1785              sums, even if not there), so putting '.'  anywhere  but  as  the
1786              last  argument  can mean trying to download a file that does not
1787              exist.
1788
1789              Together with IgnoreRelease reprepro will download the first  in
1790              this  list that could be unpacked (i.e. force is always assumed)
1791              and the default value is .gz .bzip2 . .lzma .xz.
1792
1793   conf/pulls
1794       This file contains the rules for pulling packages from one distribution
1795       to  another.   While  this can also be done with update rules using the
1796       file or copy method and using the exported indices of that  other  dis‐
1797       tribution,  this  way is faster.  It also ensures the current files are
1798       used and no copies are made.  (This also leads to the  limitation  that
1799       pulling from one component to another is not possible.)
1800
1801       Each rule consists out of the following fields:
1802
1803       Name   The  name  of this pull rule as it can be used in the Pull field
1804              in conf/distributions.
1805
1806       From   The codename of the distribution to pull packages from.
1807
1808       Components
1809              The components of the distribution to get from.
1810
1811              If this field is not there, all components from the distribution
1812              to  update are tried.
1813
1814              A  rule might list components not available in all distributions
1815              using this rule. In this case unknown  components  are  silently
1816              ignored.   (Unless you start reprepro with the --fast option, it
1817              will warn about components unusable in all  distributions  using
1818              that  rule.   As  exception, unusable components called none are
1819              never warned about, for compatibility  with  versions  prior  to
1820              3.0.0 where and empty field had a different meaning.)
1821
1822       Architectures
1823              The  architectures to update.  If omitted all from the distribu‐
1824              tion to pull from.  As in conf/updates, you can use ">" to down‐
1825              load from one architecture and add into another one. (And again,
1826              only useful with filtering to avoid  packages  not  architecture
1827              all to migrate).
1828
1829       UDebComponents
1830              Like Components but for the udebs.
1831
1832       FilterFormula
1833
1834       FilterList
1835
1836       FilterSrcList
1837              The same as with update rules.
1838

OVERRIDE FILES

1840       The  format  of override files used by reprepro should resemble the ex‐
1841       tended ftp-archive format, to be specific it is:
1842
1843       packagename field name new value
1844
1845       For example:
1846       kernel-image-2.4.31-yourorga Section protected/base
1847       kernel-image-2.4.31-yourorga Priority standard
1848       kernel-image-2.4.31-yourorga Maintainer That's me <me@localhost>
1849       reprepro Priority required
1850
1851       All fields of a given package will be replaced by the new value  speci‐
1852       fied in the override file with the exception of special fields starting
1853       with a dollar sign ($).  While the field name is compared case-insensi‐
1854       tive,  it  is  copied  in  exactly the form in the override file there.
1855       (Thus I suggest to keep to the exact case it is normally found in index
1856       files  in case some other tool confuses them.)  More than copied is the
1857       Section header (unless -S is supplied), which is also used to guess the
1858       component (unless -C is there).
1859
1860       Some  values  like  Package, Filename, Size or MD5sum are forbidden, as
1861       their usage would severely confuse reprepro.
1862
1863       As an extension reprepro also supports  patterns  instead  of  package‐
1864       names.   If the package name contains '*', '[' or '?', it is considered
1865       a pattern and applied to each package that is not matched by  any  non-
1866       pattern override nor by any previous pattern.
1867
1868       Fieldnames starting with a dollar ($) are not be placed in the exported
1869       control data but have special meaning.  Unknown  ones  are  loudly  ig‐
1870       nored.  Special fields are:
1871
1872        $Component:  includedeb,  includedsc, include and processincoming will
1873       put the package in the component given as value (unless itself overrid‐
1874       den  with -C).  Note that the proper way to specify the component is by
1875       setting the section field and using this  extension  will  most  likely
1876       confuse people and/or tools.
1877
1878        $Delete:  the value is treated a fieldname and fields of that name are
1879       removed.  (This way one can remove fields previously added without  re‐
1880       moving  and  readding  the package.  And fields already included in the
1881       package can be removed, too).
1882
1883
1884   conf/incoming
1885       Every chunk is a rule set for the process_incoming  command.   Possible
1886       fields are:
1887
1888       Name   The  name  of the rule-set, used as argument to the scan command
1889              to specify to use this rule.
1890
1891       IncomingDir
1892              The Name of the directory to scan for .changes files.
1893
1894       TempDir
1895              A directory where the files listed  in  the  processed  .changes
1896              files  are copied into before they are read.  You can avoid some
1897              copy operations by placing this directory within the same  moint
1898              point the pool hierarchy is (at least partially) in.
1899
1900       LogDir A  directory  where .changes files, .log files, .buildinfo files
1901              and otherwise unused .byhand files are stored upon procession.
1902
1903       Allow  Each argument is either a pair name1>name2 or simply name  which
1904              is  short  for  name>name.  Each name2 must identify a distribu‐
1905              tion, either by being Codename, a unique Suite, or a unique  Al‐
1906              soAcceptFor  from conf/distributions.  Each upload has each item
1907              in its Distribution: header compared first  to  last  with  each
1908              name1  in  the  rules and is put in the first one accepting this
1909              package.  e.g.:
1910              Allow: local unstable>sid
1911              or
1912              Allow: stable>security-updates stable>proposed-updates
1913              (Note that this makes only sense if Multiple is set to  true  or
1914              if  there  are people only allowed to upload to proposed-updates
1915              but not to security-updates).
1916
1917       Default distribution
1918              Every upload not put into any other distribution because  of  an
1919              Allow argument is put into distribution if that accepts it.
1920
1921       Multiple
1922              Old form of Options: multiple_distributions.
1923
1924       Options
1925              A list of options
1926              multiple_distributions
1927              Allow including a upload in multiple distributions.
1928
1929              If  a  .changes file lists multiple distributions, then reprepro
1930              will start with the first name given, check all Accept  and  De‐
1931              fault  options  till  it finds a distribution this upload can go
1932              into.
1933
1934              If this found no distribution  or  if  this  option  was  given,
1935              reprepro will then do the same with the second distribution name
1936              given in the .changes file and so on.
1937              limit_arch_all
1938              If an upload contains binaries from some architecture and archi‐
1939              tecture all packages, the architecture all packages are only put
1940              into the architectures within this upload.   Useful  to  combine
1941              with the flood command.
1942
1943       Permit A list of options to allow things otherwise causing errors:
1944              unused_files
1945              Do not stop with error if there are files listed in the .changes
1946              file if it lists files not belonging to any package in it.
1947              older_version
1948              Ignore a package not added because there already is  a  strictly
1949              newer version available instead of treating this as an error.
1950              unlisted_binaries
1951              Do  not  abort  with  an  error if a .changes file contains .deb
1952              files that are not listed in the Binaries header.
1953
1954       Cleanup options
1955              A list of options to cause more files in the incoming  directory
1956              to be deleted:
1957              unused_files
1958              If  there is unused_files in Permit then also delete those files
1959              when the package is deleted after successful processing.
1960              unused_buildinfo_files
1961              If .buildinfo files of processed .changes  files  are  not  used
1962              (neither  stored by LogDir nor with Tracking: includebuildinfos)
1963              then delete them from the incoming dir.  (This option has no ad‐
1964              ditional effect if unused_files is already used.)
1965              on_deny
1966              If  a .changes file is denied processing because of missing sig‐
1967              natures or allowed distributions to be put in, delete it and all
1968              the files it references.
1969              on_error
1970              If a .changes file causes errors while processing, delete it and
1971              the files it references.
1972
1973              Note that allowing cleanup  in  publically  accessible  incoming
1974              queues  allows  a denial of service by sending in .changes files
1975              deleting other peoples files before they are  completed.   Espe‐
1976              cially  when .changes files are handled directly (e.g. by inoti‐
1977              coming).
1978
1979
1980       MorgueDir
1981              If files are to be deleted by Cleanup, they are instead moved to
1982              a  subdirectory  of  the directory given as value to this field.
1983              This directory has to be on the same partition as  the  incoming
1984              directory  and  files  are moved (i.e. owner and permission stay
1985              the same) and never copied.
1986
1987

UPLOADERS FILES

1989       These files specified by the Uploaders header in the distribution defi‐
1990       nition  as  explained  above describe what key a .changes file as to be
1991       signed with to be included in that distribution.
1992
1993       Empty lines and lines starting with a hash  are  ignored,  every  other
1994       line  must  be  of one of the following nine forms or an include direc‐
1995       tive:
1996
1997       allow condition by anybody
1998              which allows everyone to upload packages matching condition,
1999
2000       allow condition by unsigned
2001              which allows everything matching that has no pgp/gpg header,
2002
2003       allow condition by any key
2004              which allows everything matching with any valid signature in or
2005
2006       allow condition by key key-id
2007              which allows everything matching signed by this  key-id  (to  be
2008              specified  without  any  spaces).   If  the key-id ends with a +
2009              (plus), a signature with a subkey of this primary key also  suf‐
2010              fices.
2011
2012              key-id must be a suffix of the id libgpgme uses to identify this
2013              key, i.e. a number of hexdigits from the end of the  fingerprint
2014              of  the  key, but no more than what libgpgme uses.  (The maximal
2015              number should be what gpg --list-key --with-colons prints, as of
2016              the time of this writing that is at most 16 hex-digits).
2017
2018       allow condition by group groupname
2019              which allows every member of group groupname.  Groups can be ma‐
2020              nipulated by
2021
2022       group groupname add key-id
2023              to add a key-id (see above for details) to this group, or
2024
2025       group groupname contains groupname
2026              to add a whole group to a group.
2027
2028              To avoid warnings in incomplete config files there is also
2029
2030       group groupname empty
2031              to declare a group has no members (avoids warnings  that  it  is
2032              used without those) and
2033
2034       group groupname unused
2035              to  declare that a group is not yet used (avoid warnings that it
2036              is not used).
2037
2038       A line starting with include causes the rest of the line to  be  inter‐
2039       preted  as  filename,  which is opened and processed before the rest of
2040       the file is processed.
2041
2042       The only conditions currently supported are:
2043
2044       *      which means any package,
2045
2046       source 'name'
2047              which means any package with source name.  ('*', '?' and  '[..]'
2048              are treated as in shell wildcards).
2049
2050       sections 'name'(|'name')*
2051              matches an upload in which each section matches one of the names
2052              given.  As upload conditions are checked very early, this is the
2053              section  listed in the .changes file, not the one from the over‐
2054              ride file.  (But this might change in the future,  if  you  have
2055              the need for the one or the other behavior, let me know).
2056
2057       sections contain 'name'(|'name')*
2058              The  same,  but not all sections must be from the given set, but
2059              at least one source or binary package needs to have one of those
2060              given.
2061
2062       binaries 'name'(|'name')*
2063              matches  an  upload  in  which  each  binary  (type deb or udeb)
2064              matches one of the names given.
2065
2066       binaries contain 'name'(|'name')*
2067              again only at least one instead of all is required.
2068
2069       architectures 'architecture'(|'name')*
2070              matches an upload in which each package has  only  architectures
2071              from the given set.  source and all are treated as unique archi‐
2072              tectures.  Wildcards are not allowed.
2073
2074       architectures contain 'architecture'(|'architecture')*
2075              again only at least one instead of all is required.
2076
2077       byhand matches an upload with at least one byhand  file  (i.e.  a  file
2078              with section byhand or raw-something).
2079
2080       byhand 'section'(|'section')*
2081              matches  an  upload with at least one byhand file and all byhand
2082              files having a section listed in  the  list  of  given  section.
2083              (i.e.  byhand  'byhand'|'raw-*'  is currently is the same as by‐
2084              hand).
2085
2086       distribution 'codename'
2087              which means any package when it is to be included  in  codename.
2088              As  the  uploaders  file  is given by distribution, this is only
2089              useful to reuse a complex uploaders file for multiple  distribu‐
2090              tions.
2091
2092       Putting  not in front of a condition, inverses it's meaning.  For exam‐
2093       ple
2094       allow not source 'r*' by anybody
2095       means anybody may upload packages which source name does not start with
2096       an 'r'.
2097
2098       Multiple  conditions  can be connected with and and or, with or binding
2099       stronger (but both weaker than not).  That means
2100       allow source 'r*' and source '*xxx' or source '*o' by anybody
2101       is equivalent to
2102       allow source 'r*xxx' by anybody
2103       allow source 'r*o' by anybody
2104
2105       (Other conditions will follow once somebody tells me what  restrictions
2106       are useful.  Currently planned is only something for architectures).
2107

ERROR IGNORING

2109       With  --ignore  on  the  command  line or an ignore line in the options
2110       file, the following type of errors can be ignored:
2111
2112       brokenold (hopefully never seen)
2113              If there are errors parsing an installed version of package,  do
2114              not  error  out,  but assume it is older than anything else, has
2115              not files or no source name.
2116
2117       brokensignatures
2118              If a .changes or .dsc file contains at least one invalid  signa‐
2119              ture and no valid signature (not even expired or from an expired
2120              or revoked key), reprepro assumes the file got corrupted and re‐
2121              fuses to use it unless this ignore directive is given.
2122
2123       brokenversioncmp (hopefully never seen)
2124              If  comparing  old  and new version fails, assume the new one is
2125              newer.
2126
2127       dscinbinnmu
2128              If a .changes file has an explicit Source version that  is  dif‐
2129              ferent  the to the version header of the file, than reprepro as‐
2130              sumes it is binary non maintainer upload (NMU).  In  that  case,
2131              source  files  are  not permitted in .changes files processed by
2132              include or processincoming.  Adding --ignore=dscinbinnmu  allows
2133              it for the include command.
2134
2135       emptyfilenamepart (insecure)
2136              Allow  strings to be empty that are used to construct filenames.
2137              (like versions, architectures, ...)
2138
2139       extension
2140              Allow one to includedeb files that do not end with .deb, to  in‐
2141              cludedsc  files not ending in .dsc and to include files not end‐
2142              ing in .changes.
2143
2144       forbiddenchar (insecure)
2145              Do not insist on Debian policy for package and source names  and
2146              versions.   Thus  allowing  all 7-bit characters but slashes (as
2147              they would break the file storage) and things syntactically  ac‐
2148              tive  (spaces, underscores in filenames in .changes files, open‐
2149              ing parentheses in source names of binary packages).   To  allow
2150              some 8-bit chars additionally, use 8bit additionally.
2151
2152       8bit (more insecure)
2153              Allow 8-bit characters not looking like overlong UTF-8 sequences
2154              in filenames and things used as parts of filenames.   Though  it
2155              hopefully rejects overlong UTF-8 sequences, there might be other
2156              characters your filesystem  confuses  with  special  characters,
2157              thus   creating   filenames   possibly   equivalent   to   /mir‐
2158              ror/pool/main/../../../etc/shadow (Which should be safe, as  you
2159              do  not  run  reprepro  as root, do you?)  or simply overwriting
2160              your conf/distributions file adding some commands in  there.  So
2161              do  not  use  this  if you are paranoid, unless you are paranoid
2162              enough to have  checked  the  code  of  your  libs,  kernel  and
2163              filesystems.
2164
2165       ignore (for forward compatibility)
2166              Ignore unknown ignore types given to --ignore.
2167
2168       flatandnonflat (only suppresses a warning)
2169              Do  not  warn  about a flat and a non-flat distribution from the
2170              same source with the same name when updating.  (Hopefully  never
2171              ever needed.)
2172
2173       malformedchunk (I hope you know what you do)
2174              Do not stop when finding a line not starting with a space but no
2175              colon(:) in it. These are otherwise rejected as they have no de‐
2176              fined meaning.
2177
2178       missingfield (safe to ignore)
2179              Ignore  missing  fields in a .changes file that are only checked
2180              but not processed.  Those include: Format, Date, Urgency,  Main‐
2181              tainer, Description, Changes
2182
2183       missingfile (might be insecure)
2184              When  including  a  .dsc  file  from a .changes file, try to get
2185              files needed but not listed in  the  .changes  file  (e.g.  when
2186              someone forgot to specify -sa to dpkg-buildpackage) from the di‐
2187              rectory the  .changes  file  is  in  instead  of  erroring  out.
2188              (--delete will not work with those files, though.)
2189
2190       spaceonlyline (I hope you know what you do)
2191              Allow  lines  containing only (but non-zero) spaces. As these do
2192              not separate chunks as thus will cause reprepro to behave  unex‐
2193              pected, they cause error messages by default.
2194
2195       surprisingarch
2196              Do  not  reject a .changes file containing files for a architec‐
2197              ture not listed in the Architecture-header within it.
2198
2199       surprisingbinary
2200              Do not reject a .changes file containing .deb  files  containing
2201              packages  whose  name  is  not listed in the "Binary:" header of
2202              that changes file.
2203
2204       undefinedtarget (hope you are not using the wrong db directory)
2205              Do not stop when the packages.db file contains databases for co‐
2206              dename/packagetype/component/architectures combinations that are
2207              not listed in your distributions file.
2208
2209              This allows you to temporarily remove some distribution from the
2210              config  files,  without having to remove the packages in it with
2211              the clearvanished command.  You might  even  temporarily  remove
2212              single  architectures or components, though that might cause in‐
2213              consistencies in some situations.
2214
2215       undefinedtracking (hope you are not using the wrong db directory)
2216              Do not stop when the tracking file contains databases  for  dis‐
2217              tributions that are not listed in your distributions file.
2218
2219              This allows you to temporarily remove some distribution from the
2220              config files, without having to remove the packages in  it  with
2221              the  clearvanished  command.  You might even temporarily disable
2222              tracking in some distribution, but that is likely to  cause  in‐
2223              consistencies in there, if you do not know, what you are doing.
2224
2225       unknownfield (for forward compatibility)
2226              Ignore  unknown  fields in the config files, instead of refusing
2227              to run then.
2228
2229       unusedarch (safe to ignore)
2230              No longer reject a .changes file containing no files for any  of
2231              the architectures listed in the Architecture-header within it.
2232
2233       unusedoption
2234              Do not complain about command line options not used by the spec‐
2235              ified action (like --architecture).
2236
2237       uploaders
2238              The include command will accept packages  that  would  otherwise
2239              been rejected by the uploaders file.
2240
2241       wrongarchitecture (safe to ignore)
2242              Do  not  warn  about  wrong  "Architecture:" lines in downloaded
2243              Packages files.  (Note that wrong Architectures are  always  ig‐
2244              nored  when  getting  stuff  from  flat repostories or importing
2245              stuff from one architecture to another).
2246
2247       wrongdistribution (safe to ignore)
2248              Do not error out if a .changes file is to be placed in a distri‐
2249              bution not listed in that files' Distributions: header.
2250
2251       wrongsourceversion
2252              Do  not reject a .changes file containing .deb files with a dif‐
2253              ferent opinion on what the version of the source package is.
2254              (Note: reprepro only compares literally here, not by meaning.)
2255
2256       wrongversion
2257              Do not reject a .changes file containing .dsc files with a  dif‐
2258              ferent version.
2259              (Note: reprepro only compares literally here, not by meaning.)
2260
2261       expiredkey (I hope you know what you do)
2262              Accept  signatures  with expired keys.  (Only if the expired key
2263              is explicitly requested).
2264
2265       expiredsignature (I hope you know what you do)
2266              Accept expired signatures with expired keys.  (Only if  the  key
2267              is explicitly requested).
2268
2269       revokedkey (I hope you know what you do)
2270              Accept  signatures  with revoked keys.  (Only if the revoked key
2271              is explicitly requested).
2272

GUESSING

2274       When including a binary or source package without explicitly  declaring
2275       a  component  with -C it will take the first component with the name of
2276       the section, being prefix to the section, being suffix to  the  section
2277       or having the section as prefix or any. (In this order)
2278
2279       Thus   having   specified   the   components:  "main  non-free  contrib
2280       non-US/main non-US/non-free non-US/contrib" should map  e.g.   "non-US"
2281       to  "non-US/main" and "contrib/editors" to "contrib", while having only
2282       "main non-free and contrib" as components should  map  "non-US/contrib"
2283       to "contrib" and "non-US" to "main".
2284
2285       NOTE: Always specify main as the first component, if you want things to
2286       end up there.
2287
2288       NOTE: unlike in dak, non-US and non-us are different things...
2289

NOMENCLATURE

2291       Codename the primary identifier of a given distribution. This are  nor‐
2292       mally things like sarge, etch or sid.
2293
2294       basename
2295              the name of a file without any directory information.
2296
2297       byhand Changes  files  can have files with section 'byhand' (Debian) or
2298              'raw-' (Ubuntu).  Those files are not packages  but  other  data
2299              generated (usually together with packages) and then uploaded to‐
2300              gether with this changes files.
2301
2302              With reprepro those can be stored in  the  pool  next  to  their
2303              packages  with  tracking,  put  in some log directory when using
2304              processincoming, or given to an hook script (currently only pos‐
2305              sible with processincoming).
2306
2307       filekey
2308              the  position  relative to the outdir.  (as found in "Filename:"
2309              in Packages.gz)
2310
2311       full filename
2312              the position relative to /
2313
2314       architecture
2315              The term like sparc, i386, mips, ... .  To refer to  the  source
2316              packages, source is sometimes also treated as architecture.
2317
2318       component
2319              Things like main, non-free and contrib (by policy and some other
2320              programs also called section, reprepro follows the naming scheme
2321              of apt here.)
2322
2323       section
2324              Things  like  base,  interpreters, oldlibs and non-free/math (by
2325              policy and some other programs also called subsections).
2326
2327       md5sum The checksum of a file in the format "<md5sum of  file>  <length
2328              of file>"
2329

Some note on updates

2331   A version is not overwritten with the same version.
2332       reprepro  will  never  update  a package with a version it already has.
2333       This would be equivalent to rebuilding the whole  database  with  every
2334       single  upgrade.   To force the new same version in, remove it and then
2335       update.  (If files of the packages changed without changing their name,
2336       make  sure  the  file  is  no  longer  remembered by reprepro.  Without
2337       --keepunreferencedfiled and without errors while deleting it should al‐
2338       ready  be forgotten, otherwise a deleteunreferenced or even some __for‐
2339       get might help.)
2340
2341   The magic delete rule ("-").
2342       A minus as a single word in the Update: line of  a  distribution  marks
2343       everything  to  be deleted. The mark causes later rules to get packages
2344       even if they have (strict) lower versions. The mark will get removed if
2345       a  later rule sets the package on hold (hold is not yet implemented, in
2346       case you might wonder) or would get a package  with  the  same  version
2347       (Which  it  will not, see above). If the mark is still there at the end
2348       of the processing, the package will get removed.
2349
2350       Thus the line "Update: - rules " will cause all packages to be  exactly
2351       the  highest  Version found in rules.  The line "Update: near - rules "
2352       will do the same, except if it needs to  download  packages,  it  might
2353       download  it  from near except when too confused. (It will get too con‐
2354       fused e.g. when near or rules have multiple versions of the package and
2355       the highest in near is not the first one in rules, as it never remember
2356       more than one possible spring for a package.
2357
2358       Warning: This rule applies to all type/component/architecture  triplets
2359       of  a  distribution,  not only those some other update rule applies to.
2360       (That means it will delete everything in those!)
2361

ENVIRONMENT VARIABLES

2363       Environment variables are always overwritten by command  line  options,
2364       but  overwrite  options set in the options file. (Even when the options
2365       file is obviously parsed after the environment variables as  the  envi‐
2366       ronment may determine the place of the options file).
2367
2368       REPREPRO_BASE_DIR
2369              The  directory  in  this variable is used instead of the current
2370              directory, if no -b or --basedir options are supplied.
2371              It is also set in all hook scripts called by reprepro  (relative
2372              to  the current directory or absolute, depending on how reprepro
2373              got it).
2374
2375       REPREPRO_CONFIG_DIR
2376              The directory in this variable is used when no --confdir is sup‐
2377              plied.
2378              It  is also set in all hook scripts called by reprepro (relative
2379              to the current directory or absolute, depending on how  reprepro
2380              got it).
2381
2382       REPREPRO_OUT_DIR
2383              This  is not used, but only set in hook scripts called by repre‐
2384              pro to the directory in  which  the  pool  subdirectory  resides
2385              (relative to the current directory or absolute, depending on how
2386              reprepro got it).
2387
2388       REPREPRO_DIST_DIR
2389              This is not used, but only set in hook scripts called by  repre‐
2390              pro to the dists directory (relative to the current directory or
2391              absolute, depending on how reprepro got it).
2392
2393       REPREPRO_LOG_DIR
2394              This is not used, but only set in hook scripts called by  repre‐
2395              pro to the value setable by --logdir.
2396
2397       REPREPRO_CAUSING_COMMAND
2398
2399       REPREPRO_CAUSING_FILE
2400              Those  two  environment  variable are set (or unset) in Log: and
2401              ByHandHooks: scripts and hint what command and what file  caused
2402              the hook to be called (if there is some).
2403
2404       REPREPRO_CAUSING_RULE
2405              This  environment variable is set (or unset) in Log: scripts and
2406              hint what update or pull rule caused this change.
2407
2408       REPREPRO_FROM
2409              This environment variable is set (or unset) in Log: scripts  and
2410              denotes  what  other distribution a package is copied from (with
2411              pull and copy commands).
2412
2413       REPREPRO_FILTER_ARCHITECTURE
2414
2415       REPREPRO_FILTER_CODENAME
2416
2417       REPREPRO_FILTER_COMPONENT
2418
2419       REPREPRO_FILTER_PACKAGETYPE
2420
2421       REPREPRO_FILTER_PATTERN
2422              Set in FilterList: and FilterSrcList:  scripts.
2423
2424       GNUPGHOME
2425              Not used by reprepro  directly.   But  reprepro  uses  libgpgme,
2426              which calls gpg for signing and verification of signatures.  And
2427              your gpg will most likely use the content of this  variable  in‐
2428              stead of "~/.gnupg".  Take a look at gpg(1) to be sure.  You can
2429              also tell reprepro to set this with the --gnupghome option.
2430
2431       GPG_TTY
2432              When there is  a  gpg-agent  running  that  does  not  have  the
2433              passphrase  cached  yet,  gpg will most likely try to start some
2434              pinentry program to get it.  If that is pinentry-curses, that is
2435              likely  to  fail without this variable, because it cannot find a
2436              terminal to ask on.  In this cases you might set  this  variable
2437              to  something  like  the value of $(tty) or $SSH_TTY or anything
2438              else denoting a usable terminal. (You might also  want  to  make
2439              sure you actually have a terminal available.  With ssh you might
2440              need the -t option to get a terminal even when  telling  gpg  to
2441              start a specific command).
2442
2443              By default, reprepro will set this variable to what the symbolic
2444              link /proc/self/fd/0 points to, if stdin is a  terminal,  unless
2445              you told with --noguessgpgtty to not do so.
2446

BUGS

2448       Increased  verbosity  always  shows  those  things one does not want to
2449       know.  (Though this might be inevitable and a corollary to Murphy)
2450
2451       Reprepro uses berkeley db, which was a big mistake.  The most  annoying
2452       problem not yet worked around is database corruption when the disk runs
2453       out of space.  (Luckily if it happens while downloading packages  while
2454       updating,  only  the  files database is affected, which is easy (though
2455       time consuming) to rebuild, see recovery file  in  the  documentation).
2456       Ideally put the database on another partition to avoid that.
2457
2458       While  the  source part is mostly considered as the architecture source
2459       some parts may still not use this notation.
2460

WORK-AROUNDS TO COMMON PROBLEMS

2462       gpgme returned an impossible condition
2463              With the woody version this normally meant  that  there  was  no
2464              .gnupg  directory in $HOME, but it created one and reprepro suc‐
2465              ceeds when called again with the same command.  Since sarge  the
2466              problem  sometimes  shows  up,  too.  But it is no longer repro‐
2467              ducible and it does not fix itself,  neither.  Try  running  gpg
2468              --verify  file-you-had-problems-with manually as the user repre‐
2469              pro is running and with the same $HOME. This alone might fix the
2470              problem. It should not print any messages except perhaps
2471              gpg: no valid OpenPGP data found.
2472              gpg: the signature could not be verified.
2473              if it was an unsigned file.
2474
2475       not  including .orig.tar.gz when a .changes file's version does not end
2476       in -0 or -1
2477              If dpkg-buildpackage is run without the -sa option  to  build  a
2478              version  with  a Debian revision not being -0 or -1, it does not
2479              list the .orig.tar.gz file in the .changes file.  If you want to
2480              include  such  a  file  with reprepro when the .orig.tar.gz file
2481              does not already exist in the pool, reprepro will report an  er‐
2482              ror.  This can be worked around by:
2483              call dpkg-buildpackage with -sa (recommended)
2484              copy  the  .orig.tar.gz file to the proper place in the pool be‐
2485              fore
2486              call reprepro with --ignore=missingfile (discouraged)
2487
2488       leftover files in the pool directory.
2489              reprepro is sometimes a bit too timid of  deleting  stuff.  When
2490              things  go  wrong  and  there have been errors it sometimes just
2491              leaves everything where it is.  To see what files  reprepro  re‐
2492              members  to be in your pool directory but does not know anything
2493              needing them right know, you can use
2494              reprepro dumpunreferenced
2495              To delete them:
2496              reprepro deleteunreferenced
2497

INTERRUPTING

2499       Interrupting reprepro has its problems.   Some  things  (like  speaking
2500       with  apt  methods, database stuff) can cause problems when interrupted
2501       at the wrong time.  Then there are design problems of the  code  making
2502       it hard to distinguish if the current state is dangerous or non-danger‐
2503       ous to interrupt.  Thus if reprepro receives a signal normally sent  to
2504       tell  a process to terminate itself softly, it continues its operation,
2505       but does not start any new operations.  (I.e.  it  will  not  tell  the
2506       apt-methods  any new file to download, it will not replace a package in
2507       a target, unless it already had started with it, it will not delete any
2508       files gotten dereferenced, and so on).
2509
2510       It  only  catches the first signal of each type. The second signal of a
2511       given type will terminate reprepro. You will risk  database  corruption
2512       and have to remove the lockfile manually.
2513
2514       Also  note  that  even  normal  interruption leads to code-paths mostly
2515       untested and thus expose a multitude of bugs including those leading to
2516       data  corruption.   Better think a second more before issuing a command
2517       than risking the need for interruption.
2518

REPORTING BUGS

2520       Report bugs or wishlist requests to the Debian BTS
2521       (e.g. by using reportbug reprepro under Debian)
2522       or directly to brlink@debian.org
2523
2525       Copyright © 2004,2005,2006,2007,2008,2009,2010,2011,2012 Bernhard R.
2526       Link ⟨http://www.brlink.eu
2527       This  is free software; see the source for copying conditions. There is
2528       NO warranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR
2529       PURPOSE.
2530
2531
2532
2533reprepro                          2013-05-04                       REPREPRO(1)
Impressum