File: 09_upload.xml

package info (click to toggle)
maint-guide 1.2.53
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 7,264 kB
  • sloc: xml: 5,892; makefile: 225; sh: 221
file content (151 lines) | stat: -rw-r--r-- 5,941 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<chapter id="upload"><title>Uploading the package</title>
<para>
The rewrite of this tutorial document with updated contents and more practical examples is available as <ulink url="&guidedeb;">Guide for Debian Maintainers</ulink>.  Please use this new tutorial as the primary tutorial document.
</para>
<para>
Debian now requires source-only uploads for normal upload.  So this page is outdated.
</para>
<para>
Now that you have tested your new package thoroughly, you want to release it to
a public archive to share it.
</para>
<section id="upload-debian"><title>Uploading to the Debian archive</title>
<para>
Once you become an official developer,
<footnote><para>
See <xref linkend="socialdynamics"/>.
</para></footnote>
you can upload the package to the Debian archive.
<footnote><para>
There are publicly accessible archives such as <ulink url="&mentors-dn;"/>
which work almost the same way as the Debian archive and provide an upload area for
non-DDs.  You can set up an equivalent archive by yourself using the tools
listed at <ulink url="&deb-archive;"/>.  So this section is useful for
non-DDs, too.
</para></footnote>
You can do this manually, but it's easier to use the existing
automated tools, like <citerefentry> <refentrytitle>dupload</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry> or <citerefentry>
<refentrytitle>dput</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>.
We'll describe how it's done with <command>dupload</command>.  <footnote><para>
The <systemitem role="package">dput</systemitem> package seems to come with
more features and to be becoming more popular than the <systemitem role="package">dupload</systemitem> package.  It uses the
file <filename>/etc/dput</filename> for its global configuration and the
file <filename>~/.dput.cf</filename> for per-user configuration.  It supports
Ubuntu-related services out-of-the-box, too.  </para> </footnote>
</para>
<para>
First you have to set up <command>dupload</command>'s config file.  You can
either edit the system-wide <filename>/etc/dupload.conf</filename> file, or
have your own <filename>~/.dupload.conf</filename> file override the few things
you want to change.
</para>
<para>
You can read the <citerefentry> <refentrytitle>dupload.conf</refentrytitle>
<manvolnum>5</manvolnum> </citerefentry> manual page to understand what each of
these options means.
</para>
<para>
The <literal>$default_host</literal> option determines which of the upload
queues will be used by default.  <literal>anonymous-ftp-master</literal> is the
primary one, but it's possible that you will want to use another one.
<footnote><para>See <ulink url="&devref-upload;">Debian Developer's Reference 5.6, "Uploading a package"</ulink>.</para></footnote>
</para>
<para>
While connected to the Internet, you can upload your package as follows:
</para>
<screen>
$ dupload gentoo_0.9.12-1_i386.changes
</screen>
<para>
<command>dupload</command> checks that the SHA1/SHA256 file checksums
match those listed in the <filename>.changes</filename> file.  If they do not
match, it will warn you to rebuild it as described in <xref linkend="completebuild"/> so it can be properly uploaded.
</para>
<!--
No more use of ftp-master nor faster queue.  It is not so
useful these days.  If you upload to ftp-master, <command>dupload</command>
will ask for your password on Debian machines, and then upload the packages.
-->
<para>
If you encounter an upload problem at <ulink url="&uploadqueue;"/>, you can fix this
by manually uploading a GPG-signed <filename>*.commands</filename> file to there
with <command>ftp</command>.  <footnote><para> See <ulink url="&uploadqueue-readme;"/>.  Alternatively, you can
use the <command>dcut</command> command from the <systemitem
role="package">dput</systemitem> package.  </para> </footnote> For example, using
<filename>hello.commands</filename>:
</para>
<screen>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Uploader: Foo Bar &lt;Foo.Bar@example.org&gt;
Commands: 
 rm hello_1.0-1_i386.deb
 mv hello_1.0-1.dsx hello_1.0-1.dsc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

[...]
-----END PGP SIGNATURE-----
</screen>
</section>
<section id="option-sa"><title>Including <filename>orig.tar.gz</filename> for upload</title>
<para>
When you first upload the package to the archive, you need to include the
original <filename>orig.tar.gz</filename> source, too.  If the Debian revision
number of this package is neither <literal>1</literal> nor
<literal>0</literal>, you must provide the <command>dpkg-buildpackage</command>
option <literal>-sa</literal>.
</para>
<para>
For the <command>dpkg-buildpackage</command> command:
</para>
<screen>
$ dpkg-buildpackage -sa
</screen>
<para>
For the <command>debuild</command> command:
</para>
<screen>
$ debuild -sa
</screen>
<para>
For the <command>pdebuild</command> command:
</para>
<screen>
$ pdebuild --debbuildopts -sa
</screen>
<para>
On the other hand, the <literal>-sd</literal> option will force the exclusion
of the original <filename>orig.tar.gz</filename> source.
</para>
</section>
<section id="skipped-uploads"><title>Skipped uploads</title>
<para>
If you created multiple entries in <filename>debian/changelog</filename> by
skipping uploads, you must create a proper <filename>*_.changes</filename> file
that includes all changes since the last upload.
This can be done by specifying the <command>dpkg-buildpackage</command> option
<literal>-v</literal> with the version, e.g.,
<literal><replaceable>1.2</replaceable></literal>.
</para>
<para>
For the <command>dpkg-buildpackage</command> command:
</para>
<screen>
$ dpkg-buildpackage -v<replaceable>1.2</replaceable>
</screen>
<para>
For the <command>debuild</command> command:
</para>
<screen>
$ debuild -v<replaceable>1.2</replaceable>
</screen>
<para>
For the <command>pdebuild</command> command:
</para>
<screen>
$ pdebuild --debbuildopts "-v<replaceable>1.2</replaceable>"
</screen>
</section>
</chapter>