README.commands 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. COMMAND FILE SYNTAX -*- mode: Org -*-
  2. * General
  3. Command files allow Debian Developers to handle various archive
  4. related tasks without the help of a FTPMaster. This is done by
  5. creating and uploading a signed file named
  6. $login-EPOCH.dak-commands
  7. using the general header described below - and as many individual
  8. command action sections as wanted. See the "Action" part for more
  9. information on the various available actions.
  10. ** General Header
  11. #+BEGIN_EXAMPLE
  12. Archive: ftp.debian.org
  13. Uploader: A Developer <adeveloper@example.com>
  14. #+END_EXAMPLE
  15. The general header is followed by an empty line and then at least one
  16. action section.
  17. ** Signature
  18. The file needs to be signed by a valid key from the Debian uploader
  19. keyrings.
  20. ** Upload
  21. This file has to be uploaded to ftp.upload.debian.org. Don't use any
  22. of the queues we provide elsewhere, they are not handling the files.
  23. ** Break the archive
  24. There may be bugs in this interface. If you find any, please tell us,
  25. and please DO NOT use it to break-the-archive.
  26. * Actions
  27. Note: Options are listed as (R)equired or (O)ptional.
  28. ** dm
  29. Options: Fingerprint (R)
  30. Deny (O)
  31. Allow (O)
  32. dm changes Debian Maintainer ACL, allowing or forbidding DMs to upload
  33. packages on their own. The Fingerprint listed needs to correspond to a
  34. key in the DM keyring. It can be followed by one ore more Allow or
  35. Deny options.The Deny option has precedence, so allowing and then
  36. denying a package in the same run (even in different action parts of
  37. type dm) will forbid the DM to upload said package.
  38. Both the DD and DM will get a mail notification about any changes
  39. taken.
  40. #+BEGIN_EXAMPLE
  41. Action: dm
  42. Fingerprint: 1234567890ABCDEF1234567890ABCDEF
  43. Allow: one-package another-package
  44. Deny: yet-another-package
  45. #+END_EXAMPLE
  46. *** DM data
  47. To check the archives knowledge about DMs you can look at the export[DMURL]
  48. updated during dinstall. This file is machine-readable in the usual 822
  49. format we here at Debian love so much, with stanzas like
  50. [DMURL] https://ftp-master.debian.org/dm.txt
  51. ** bikeshed-create
  52. Options: Bikeshed (R)
  53. Base-Suite (R)
  54. Description (R)
  55. Package (O)
  56. Owner (O)
  57. Uploader (O)
  58. Auto-Update (O)
  59. Breaks (O)
  60. Depends (O)
  61. Architecture (O)
  62. Create a new bikeshed, based on given base-suite. It can initially
  63. import one or more packages given by the Package option from the base
  64. suite.
  65. Bikeshed: The name of the bikeshed, must start with bs- and otherwise
  66. be unique.
  67. Base-Suite: The name of the base suite. Can be the codename or alias
  68. of a suite, but aliases (like unstable/testing) will be resolved at
  69. creation time and the codename be used, bikesheds will not
  70. automatically change during release time.
  71. Description: A one-line description of the bikeshed.
  72. Package: A name of a source package to import from the base-suite.
  73. Repeat as often as needed.
  74. Owner: The bikeshed will default to one Owner user (the uploader of
  75. the commands file), this option adds as many more as wanted. Owner
  76. takes fingerprints as value. Note that any Owner can do everything,
  77. including demolishing a bikeshed.
  78. Uploader: The bikeshed can allow uploads from a limited set of
  79. people - or from everyone. If this option is not listed, then every DD
  80. and DM can upload to this bikeshed, same rules as in main archive
  81. apply. (eg., DMs need an ACL set for their package).
  82. To limit uploads to the bikeshed, include a list of fingerprints using
  83. this option.
  84. Auto-Update: True or False. Automatically update packages imported
  85. from the base suite, whenever they get updated in the base suite. This
  86. may possibly break packages uploaded directly to the bikeshed.
  87. Breaks: Name of another bikeshed which is broken by this, that is,
  88. both together should not ever be used on one system.
  89. Depends: Name of another bikeshed which this one depends on, that is,
  90. both should be used together.
  91. Breaks and Depends are (currently) only advisory and only used to
  92. output that information on a webpage. Tools may implement better
  93. support for them in the future.
  94. Architecture: If this is unset the bikeshed will have the same
  95. architectures as the base suite. Otherwise list each architecture
  96. needed in the bikeshed. (source and all are automatically added).
  97. #+BEGIN_EXAMPLE
  98. Action: bikeshed-create
  99. Bikeshed: bs-theoneandonly
  100. Description: This is all you need, ever
  101. Base-Suite: sid
  102. Package: mailfilter
  103. Auto-Update: True
  104. Breaks: bs-doesnotyetexistbutihateitalready
  105. Depends: bs-ohthisisevenbetter
  106. #+END_EXAMPLE
  107. Create bs-theoneandonly bikeshed based on sid including the mailfilter
  108. package from sid at time of creation. Uploads are allowed by anyone in
  109. the uploading keyrings, whenever mailfilter is updated in sid it will
  110. also be put into theoneandonly bikeshed automatically.
  111. #+BEGIN_EXAMPLE
  112. Action: bikeshed-create
  113. Bikeshed: bs-ohthisisevenbetter
  114. Description: But you may also want this as an addition
  115. Base-Suite: rc-buggy
  116. Package: mailfilter
  117. Package: emacs24
  118. Package: xz-utils
  119. Package: openvpn
  120. Owner: 1234567890ABCDEF1234567890ABCDEF12345678
  121. Owner: 234567890ABCDEF1234567890ABCDEF123456789
  122. Uploader: ABCDEF1234567890ABCDEF123456789012345678
  123. Uploader: BCDEF1234567890ABCDEF1234567890ABCDEF123
  124. Uploader: CDEF1234567890ABCDEF1234567890ABCDEF1234
  125. Uploader: DEF1234567890ABCDEF1234567890ABCDEF12345
  126. #+END_EXAMPLE
  127. Create the bs-ohthisisevenbetter bikeshed, this time based on
  128. experimental (rc-buggy) importing not only mailfiter but also 3 more
  129. packages. Besides the uploader of the command file there are 2 more
  130. Owners allowed to maintain the bikeshed, and besides the Owners
  131. there are 4 additional fingerprints allowed to upload to this
  132. bikeshed. None of the imported packages will be automagically updated
  133. from an upload to the base suite.
  134. ** bikeshed-drop
  135. Options: Bikeshed (R)
  136. Drop a bikeshed. This is irreversible, be careful.
  137. Any Owner of a bikeshed can do this.
  138. ** bikeshed-demolish
  139. Alias for bikeshed-drop, see there for documentation.
  140. ** bikeshed-modify
  141. Options: Bikeshed (R)
  142. Description (O)
  143. Breaks (O)
  144. Depends (O)
  145. Modify the description, breaks and depends settings of a bikeshed, see the
  146. bikeshed-create description for their meanings.
  147. ** bikeshed-paint
  148. Alias for bikeshed-modify, see there for documentation.
  149. ** bikeshed-acl
  150. Options: Bikeshed (R)
  151. Owner (O)
  152. Uploader (O)
  153. Modify the access list of a bikeshed. The list of Owner/Upload, if
  154. given, completely overwrite the current values of the bikeshed, so a
  155. full list has to be given. As a safety precaution to not fully loose
  156. access to a bikeshed, the uploader of the commands file will be
  157. included into the Owner list, even if they are not listed anymore.
  158. ** bikeshed-add-pkg
  159. Options: Bikeshed (R)
  160. Package (R)
  161. Suite (O)
  162. Add another package to the bikeshed.
  163. The optional suite parameter changes the suite to import the package
  164. from, if not given the base-suite will be used. This may be a suite
  165. in the main archive, or any other bikeshed.
  166. ** bikeshed-rm-pkg
  167. Options: Bikeshed (R)
  168. Package (R)
  169. Remove a package from the bikeshed. This can apply to packages
  170. uploaded to the bikeshed and to packages imported from the base-suite.
  171. ** bikeshed-mergeback
  172. Options: Bikeshed (R)
  173. Package (O)
  174. If the base-suite of a bikeshed supports the "mergeback" option, this
  175. will try to "migrate" packages from the bikeshed into the base-suite.
  176. The packages will have to follow all the usual constraints that apply
  177. to the base suite during normal package uploads (say, version
  178. constraints).
  179. If no Package line is given, all packages are merged back, otherwise
  180. only the packages listed.
  181. ** bikeshed-list
  182. Options: None
  183. List all bikesheds and the access level.
  184. ** bikeshed-info
  185. Options: Bikeshed (R)
  186. Returns information about the named bikeshed in a format valid for the
  187. bikeshed-create command, so see there for the format/options outputted.
  188. * Full example
  189. #+BEGIN_EXAMPLE
  190. Archive: ftp.debian.org
  191. Uploader: A Developer <adeveloper@example.com> (optional)
  192. Action: dm
  193. Fingerprint: 1234567890ABCDEF1234567890ABCDEF
  194. Allow: one-package another-package
  195. Deny: yet-another-package
  196. #+END_EXAMPLE