Skip to content

Commit 4cadb8e

Browse files
committed
Update debian packaging guide for uploaders
1 parent 727a7dd commit 4cadb8e

File tree

1 file changed

+93
-14
lines changed

1 file changed

+93
-14
lines changed

docs/devtools/packaging-for-ev3dev.md

Lines changed: 93 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -145,23 +145,102 @@ building packages for yourself.
145145

146146
1. Make sure you have thoroughly tested the changes and that the package builds
147147
and installs correctly using the methods described above.
148-
2. Run `lintian` on the test package(s) to ensure there are no packaging problems.
148+
149+
2. Run `lintian` on the `.changes` file to ensure there are no packaging problems.
150+
151+
TODO: we might be able to add lintian to the pbuilder-ev3dev tool so you
152+
don't have to run lintian manually.
153+
149154
3. Ensure any version information (other than `debian/changelog`) is properly
150155
updated to the new version.
151-
4. Delete any `debian/changelog` entries since the last release (you should
152-
have at least one for doing a test build).
153-
5. Make sure there are not any uncommited changes in git. If there are changes,
154-
commit them.
155-
6. Run `git-dch -R --commit` to create a `debian/changelog` entry. Edit it by
156-
hand if necessary.
157-
7. Run `git-buildpackage -S -us -uc --git-tag` to create the source package.
158-
8. Build the release packages using `pbuilder-ev3dev`.
159-
9. Sign the `.changes` file in `~/pbuilder/<release>-<arch>_result/` using `debsign`.
160-
10. Push the new release to the ev3dev archive using `dput`.
161-
11. Push the git branch and tag to GitHub.
162-
12. Close any issues on GitHub that are fixed by this release with a message
156+
157+
4. Update `debian/changelog`.
158+
159+
You can do this automatically:
160+
161+
1. Delete any `debian/changelog` entries since the last release (you
162+
should have at least one for doing a test build).
163+
2. Make sure there are not any uncommited changes in git. If there are
164+
changes, commit them.
165+
3. Run `gbp dch -R --commit` to create a `debian/changelog` entry.
166+
Edit it by hand if necessary.
167+
168+
Or if you have been maintaining it by hand:
169+
170+
1. Run `dch -r`.
171+
2. Run `git commit -a -m "Update changelog for release"`.
172+
173+
5. Tag the commit:
174+
175+
gbp buildpackage --git-tag-only
176+
177+
6. Build the release packages using `pbuilder-ev3dev`. If you have run the `base`
178+
command recently, you can omit those lines.
179+
180+
# build for EV3
181+
OS=debian ARCH=armel DIST=jessie pbuilder-ev3dev base
182+
OS=debian ARCH=armel DIST=jessie pbuilder-ev3dev build
183+
# build for RPi 2/3 and BeagleBone
184+
OS=debian ARCH=armhf DIST=jessie pbuilder-ev3dev base
185+
DEBUILD_OPTIONS="--binary-only" OS=debian ARCH=armhf DIST=jessie pbuilder-ev3dev build
186+
# build for RPi 0/1
187+
OS=raspbian ARCH=armhf DIST=jessie pbuilder-ev3dev base
188+
OS=raspbian ARCH=armhf DIST=jessie pbuilder-ev3dev build
189+
190+
If your package does not have any binary components (like a pure python
191+
package), you can do this instead:
192+
193+
# build for EV3, RPi 2/3 and BeagleBone
194+
OS=debian ARCH=amd64 DIST=jessie pbuilder-ev3dev base
195+
OS=debian ARCH=amd64 DIST=jessie pbuilder-ev3dev build
196+
# build for RPi 0/1
197+
OS=raspbian ARCH=armhf DIST=jessie pbuilder-ev3dev base
198+
OS=raspbian ARCH=armhf DIST=jessie pbuilder-ev3dev build
199+
200+
7. Sign the `.changes` files in `~/pbuilder-ev3dev/$OS/$DIST-$ARCH/` using `debsign`.
201+
202+
debsign ~/pbuilder-ev3dev/debian/jessie-armel/<package>_<version>_armel.changes
203+
debsign ~/pbuilder-ev3dev/debian/jessie-armhf/<package>_<version>_armhf.changes
204+
debsign ~/pbuilder-ev3dev/raspbian/jessie-armhf/<package>_<version>_armhf.changes
205+
8. Upload the new release to the ev3dev archive using `dput`.
206+
207+
If you have never uploaded before, you will need to send your SSH public key
208+
to @dlech and save the following as `~/.dput.cf`:
209+
210+
[ev3dev-deb]
211+
login = ev3dev-upload
212+
fqdn = reprepro.ev3dev.org
213+
method = sftp
214+
incoming = ~/debian
215+
216+
[ev3dev-rpi]
217+
login = ev3dev-upload
218+
fqdn = reprepro.ev3dev.org
219+
method = sftp
220+
incoming = ~/raspbian
221+
222+
[ev3dev-ubuntu]
223+
login = ev3dev-upload
224+
fqdn = reprepro.ev3dev.org
225+
method = sftp
226+
incoming = ~/ubuntu
227+
228+
Then upload:
229+
230+
dput ev3dev-deb ~/pbuilder-ev3dev/debian/jessie-armel/<package>_<version>_armel.changes
231+
dput ev3dev-deb ~/pbuilder-ev3dev/debian/jessie-armhf/<package>_<version>_armhf.changes
232+
dput ev3dev-rpi ~/pbuilder-ev3dev/raspbian/jessie-armhf/<package>_<version>_armhf.changes
233+
234+
Please be careful about `armhf` and `ev3dev-deb` vs. `ev3dev-rpi`!
235+
236+
You should receive an email after each upload. If not, let @dlech know about it.
237+
238+
9. Push the git branch and tag to GitHub.
239+
240+
10. Close any issues on GitHub that are fixed by this release with a message
163241
that includes the package name and version number.
164-
13. Add a news article to the ev3dev.org site announcing the release.
242+
243+
11. Add a news article to the ev3dev.org site announcing the release.
165244

166245
## Additional Resources
167246

0 commit comments

Comments
 (0)