File: README

package info (click to toggle)
arch-buildpackage 0.1-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 404 kB
  • ctags: 14
  • sloc: perl: 633; sh: 59; makefile: 31
file content (111 lines) | stat: -rw-r--r-- 4,114 bytes parent folder | download | duplicates (2)
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
This file gives a brief summary of the tools and some common
operations, until I have time to write proper documentation.

The package foo-1.0-1 maps to the configurations
configs/foo/debian/foo-1.0-1 and configs/foo/upstream/foo-1.0

You probably want the outer directory (containing the configs/ tree)
to be stored in arch as well as the projects themselves. You can find
mine as asuffield@debian.org--gluck-2004/dists--debian--1.0

arch-buildpackge foo 1.0-1

 Builds foo-1.0-1, using tla buildcfg or tla update as appropriate to get
 the source trees in foo/foo-1.0 and foo/upstream/foo-1.0.

 If foo/foo_1.0.orig.tar.gz exists, then the upstream config is
 ignored and that tarball is used. Otherwise, the upstream version is
 prepared from the relevant config, and then packed into the tarball
 (ignoring junk, pristine trees, and .)

 If a file foo/foo-1.0/=RELEASE-ID exists, then it will be updated to
 contain a comment and the string "foo-1.0". This is to support the
 package-framework build system.

 With foo/foo-1.0 as the current directory, 'debian/rules prebuild' is
 run under fakeroot. The exit code is ignored. This hook is for things
 which have to happen before the tree is ready to build, but which
 should not happen when the resulting debian source package is built
 (unlike the clean target, which runs every time). I commonly run
 autoconf and automake here, for packages where it is necessary.

 dpkg-buildpackage is invoked within the tree. The default arguments
 are -i'\\+\\+pristine-trees|\\+\\+saved.*|,,.*'

 The commands invoked for dpkg-buildpackage and tla can be controlled
 via the ~/.archdeb.conf file. Here is an example:

<commands>
        dpkg-buildpackage = debuild --ignore-dirname -rfakeroot -i'\+\+pristine-trees|\+\+saved.*|,,.*'
        tla = tla
</commands>

arch-recordpackage foo 1.0-1

 Scans foo/foo-1.0 and writes configs/foo/debian/foo-1.0-1 based on
 its current contents.

arch-recordpackage foo 1.0

 Scans foo/1.0 and writes configs/foo/upstream/foo-1.0 based on its
 current contents.


To import a new package bar-1.0.1-1, where the upstream source is
already stored in the tla version bar--upstream--1.0:

 mkdir bar
 tla get bar--upstream--1.0 bar/bar-1.0.1
 mkdir bar/upstream
 tla get bar--upstream--1.0 bar/upstream/bar-1.0.1

 mkdir bar/bar-1.0.1/debian
 cd bar/bar-1.0.1/debian
 tla init-tree --nested bar-debian--debian--0

 <create all the packaging files in the debian/ directory>
 tla import -S

 cd ../../..
 arch-recordpackage bar 1.0.1
 arch-recordpackage bar 1.0.1-1

The tla category, branch, and version names used here are completely
arbitrary. They're not even the ones I normally use, although they're
close. Pick some that make sense.

I recommend that you try to confine yourself to the debian/ directory
wherever possible. However, if you actually need to modify the
upstream source, branch it yourself (let this be known as
bar--debian--1.0 for the purposes of this document; again, the name
doesn't matter), and then do this:

 tla join-branch -d bar/bar-1.0.1 bar--debian--1.0
 tla set-tree-version -d bar/bar-1.0.1 bar--debian--1.0
 arch-recordpackage bar 1.0.1-1

To prepare the next Debian release:

 <modify and commit as appropriate, updating the changelog>
 arch-recordpackage bar 1.0.1-2

To migrate to a new upstream release:

 tla update -d bar/upstream/bar-1.0.1 --dest bar/upstream/bar-1.0.2
 arch-recordpackage bar 1.0.2
 tla update -d bar/bar-1.0.1 --dest bar/bar-1.0.2
 <update debian/ as appropriate>
 arch-recordpackage bar 1.0.2-1

If the upstream release shifted to a new branch (possibly the version
component changed), you'll want to do this instead:

 tla join-branch -d bar/upstream/bar-1.0.1 --dest bar/upstream/bar-1.1.1 bar--upstream--1.1
 tla set-tree-version -d bar/upstream/bar-1.1.1 bar--upstream--1.1
 tla update -d bar/upstream/bar-1.1.1
 arch-recordpackage bar 1.1.1
 tla join-branch -d bar/bar-1.0.1 --dest bar/bar-1.1.1 bar--upstream--1.1
 tla set-tree-version -d bar/bar-1.1.1 bar--upstream--1.1
 tla update -d bar/bar-1.1.1
 <update debian/ as appropriate>
 arch-recordpackage bar 1.1.1-1