Skip to content

Commit d72b3df

Browse files
author
Geoffrey Challen
committed
New packaging file.
1 parent 542ec97 commit d72b3df

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

PACKAGING.adoc

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
= Debian Packaging for OS/161 `binutils`
2+
3+
This repository contains scripts for building and packaging a binary version
4+
of the
5+
//
6+
https://www.gnu.org/software/binutils/[GNU `binutils`]
7+
//
8+
compatible with
9+
//
10+
http://os161.eecs.harvard.edu/[`OS/161`]
11+
//
12+
that can be uploaded and distributed through the
13+
//
14+
https://launchpad.net/~ops-class/+archive/ubuntu/os161-toolchain[`ops-class.org`
15+
Launchpad PPA].
16+
17+
== Getting Started
18+
19+
The http://packaging.ubuntu.com/html/index.html[Ubuntu Packaging Guide] is a
20+
decent starting point for setting up your environment.
21+
//
22+
Although note that we are going to use the Git Package Builder (`gbp`) rather
23+
than the Bazaar-based tools.
24+
25+
== Workflow
26+
27+
Repackage the `binutils` only when their sources have changed.
28+
//
29+
Unpack the tarball into this repository, build and test it, and commit your
30+
changes.
31+
//
32+
You will also need to know the current version number and have your Launchpad
33+
PPA signing key and password ready.
34+
35+
=== Updating the Debian Changelog
36+
37+
The next step is to update `debian/changelog`.
38+
//
39+
The `dch` tool is the easiest way to do this, although it can also be edited
40+
by hand.
41+
//
42+
Note that any time you publish to the PPA you *must bump the version number*
43+
or change the distribution string.
44+
//
45+
However, you do not need to bump the version number while testing local
46+
builds.
47+
48+
Here is the versioning convention that we have established for the `binutils`:
49+
`2.24~os161~2.1~xenial0`, the first package for Xenial based on the OS/161
50+
binutils version `2.24+os161`.
51+
//
52+
Bump the post-Xenial version number as needed to account for library changes,
53+
multiple distributions, build debugging, or any other reason.
54+
55+
=== Commiting Everything
56+
57+
The `gbp` tools will not run if the working directory is not clean.
58+
//
59+
Commit everything to `master` before continuing.
60+
61+
=== Test Build
62+
63+
[source,bash]
64+
----
65+
make -f Makefile.packaging test
66+
----
67+
68+
The above command will create a test package and use `pbuilder` to test a
69+
clean build, but it does not sign packages.
70+
//
71+
You will need to install `pbuilder` and create an appropriate testing
72+
environment, currently for Xenial: `pbuilder-dist xenial create`.
73+
//
74+
Use it to iron out any build issues.
75+
//
76+
You also need to silence any lintian warnings that may be generated.
77+
78+
=== Sign Build
79+
80+
[source,bash]
81+
----
82+
make -f Makefile.packaging sign
83+
----
84+
85+
The above command will create and sign a build package for upload to the PPA.
86+
//
87+
You will need to have a signing key installed and have the password ready.
88+
89+
=== Upload Build
90+
91+
At this point you should be ready to use `dput` to push this to your PPA.

0 commit comments

Comments
 (0)