File: README.source

package info (click to toggle)
racket 7.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 125,432 kB
  • sloc: ansic: 258,980; pascal: 59,975; sh: 33,650; asm: 13,558; lisp: 7,124; makefile: 3,329; cpp: 2,889; exp: 499; python: 274; xml: 11
file content (127 lines) | stat: -rw-r--r-- 3,938 bytes parent folder | download | duplicates (10)
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
This package should be ready to build when the source package is
unpackaged via "dpkg-source -x".

The Debian packaging for racket (previously known as plt-scheme) is now stored in git.

* Branch Layout

  Currently there are three main branches

 - dfsg contains the release branch history, along with file deletions
   to make it match the upstream release tar balls, and some further
   deletions of non-free bits. Tags are upstream/$ver where $ver is an
   upstream version.

 - patch-queue/dfsg contains patches on top of dfsg. Tags are 
   patches/$debian_ver where $debian_ver is a debian version. This
   branch is rebased for each new upstream version.

 - master is merged debian packaging and upstream commits.

   Tags are debian/$debian_ver where $debian_ver is a debian version.
   To get a list of packaging commits, run

      git log dfsg..

There is also a branch pristine-tar contains information used by the
pristine-tar utility to reconstruct bit identical upstream tarball.
There was a branch debian of just packaging commits, but I (David)
kept forgetting to use it.

The master branch is a debianized source tree, and should be buildable
by any number of tools (including dpkg-buildpackage).

* gitpkg and sbuild basics

  My (David's) preferred workflow is based on gitpkg and sbuild.  To
  tell gitpkg to use the tarballs from git,

  % git config gitpkg.pre-export-hook /usr/share/gitpkg/hooks/pristine-tar-pre-export-hook

** Make a source package. This relies on gitpkg (>= 0.19)

  % gitpkg master

** Build existing debian version
   - gitpkg debian/$version

** Problems with pristine-tar?
   pristine-tar Needs a large TMPDIR.  I found even 180M free in /tmp
   is not enough. Try

     export TMPDIR=/var/tmp

* New upstream version

** Update upstream branch
   - git checkout upstream
   - git merge -s recursive -X theirs vXXXX  
     # where vXXXX is an upstream tag. Since v5.0.1, these tags should all be on 
     # upstream branch stable.
     
   - optionally auto resolve file deletion conflicts: 
     - git status -s | egrep '^(DU|UA| U|U |UD)' | cut -c4- | xargs git rm --ignore-unmatch DUMMY$$
     - git commit

** Import upstream tarball

   We do a manual import, because e.g. git-import-orig wants to merge
   into master. I have a git alias [1] which does most of this

     - git checkout upstream
     - git clean -fxd
     - git ls-files -z | xargs -0 rm -f
     - tar --strip-components=1 -zxf $tarball
     - git add -A
     - git commit -m 'Importing '`basename $tarball`
     - pristine-tar commit $tarball

** Update dfsg branch
   - git checkout dfsg
   - git merge upstream

   - probably the same conflicts with deletions exist here, which can
     be resolved as above.

   - git tag upstream/$version+dfsg1

** Make a tarball

   git checkout master && ./debian/rules get-orig-source
   pristine-tar commit ../racket_$version.orig.tar.gz

* Managing patches

Patches are exported based on debian/source/git-patches; each line is
an argument to git-format-patch. The variables $DEB_VERSION and
$UPSTREAM_VERSION are the Debian and upstream version being exported.
You can either use git-format-patch manually, or install gitpkg
version 0.17 or later.

1) To have the patches automatically exported at source package creation time

  a) to setup gitpkg, run
  
     % git config gitpkg.deb-export-hook /usr/share/gitpkg/hooks/quilt-patches-deb-export-hook

  b) run 
    
      % gitpkg master

     to make a source package including patches.

2) To manually export patches, run

       % ./debian/rules export-patches


Notes:

[1] My git alias to import tarballs is

 [alias]
	import-tgz = "!f() { if [ -f $1 ]; then git clean -fxd; git ls-files -z | xargs -0 rm -f; tar --strip-components=1 -zxvf $1 ; git add -A; git commit -m'Importing '`basename $1`; else echo "missing tarball $1"; fi; }; f"


 -- David Bremner <bremner@debian.org>, Fri, 27 May 2011 18:37:25 -0300