/[debian-med]/trunk/community/website/docs/policy.tex
ViewVC logotype

Contents of /trunk/community/website/docs/policy.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1243 - (show annotations) (download) (as text)
Fri Feb 1 12:18:18 2008 UTC (5 years, 4 months ago) by tille
File MIME type: application/x-tex
File size: 13372 byte(s)
Spelling fixes
1 \documentclass[a4paper,12pt]{article}
2 \usepackage[utf8]{inputenc}
3 %\usepackage[T1]{fontenc}
4 \usepackage[english]{babel}
5 \usepackage[dvips,pdftex]{graphicx}
6 \usepackage{dirtree}
7 \usepackage[top=2cm, bottom=2cm, left=1cm, right=1cm]{geometry}
8 \usepackage{url}
9 \urlstyle{rm}
10 \usepackage[dvips,
11 pdftex,
12 colorlinks=true,
13 urlcolor=blue,
14 bookmarks=true]{hyperref}
15
16 \hypersetup{
17 pdfauthor=Debian-Med Group,
18 pdftitle=Debian-Med Policy
19 }
20
21 \graphicspath{{../img/}}
22
23 \newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
24
25 % Title Page
26 \title{Debian-Med Policy}
27 \author{Debian-Med Group}
28
29 \begin{document}
30 \begin{center}
31 \includegraphics[scale=0.5]{debian-med}
32 \HRule \\[0.4cm]
33 {\huge \bfseries Group Policy}
34 \HRule \\[1.5cm]
35 \begin{minipage}[t]{0.4\textwidth}
36 \begin{flushleft}
37 \large \emph{Author:}\\
38 David \textsc{Paleino}
39 \end{flushleft}
40 \end{minipage}
41 \begin{minipage}[t]{0.4\textwidth}
42 \begin{flushright}
43 \large \emph{Supervisors:}\\
44 Nelson A. \textsc{de Oliveira} \\
45 Charles \textsc{Plessy} \\
46 Andreas \textsc{Tille} \\
47 Foo \textsc{Bar} \\
48 \end{flushright}
49 \end{minipage}
50 \rule[-5mm]{\linewidth}{0.5mm}
51 \end{center}
52
53 \section{Introduction}
54 Debian-Med is a ``\href{http://people.debian.org/~tille/cdd}{Custom Debian Distribution}'' with the aim to develop Debian into an operating system that is particularly well fit for the requirements for medical practice and research. \\ \\
55 The Debian-Med project presents packages that are associated with medicine, pre-clinical research, and life science. Its developments are mostly focused on three areas for the moment: medical practice, imaging and bioinformatics. \\ \\
56 Over the previous years, several initiatives have spawned that address the scientific disciplines like chemistry or bioinformatics. Debian-Med is not a competition to these efforts but a platform to present the packages to the community as a Custom Debian Distribution.
57 \section{How to Contribute}
58 From the developer to the user, there is a long chain of tasks in which we always welcome participation. First we must keep ourselves informed about the software landscape in biology and medicine. Software to be packaged is chosen according to criteria such as users' need and the consistency of the distribution. Once in Debian, the software is monitored for its quality and bugs are fixed, if possible in collaboration with the upstream maintainer(s). All this work would not be very useful if it remains confidential. We also dedicate some time to advertise it to the world via \url{http://www.debian.org} and to ease the integration of new members through this wiki. \\ \\
59 Please contact us on \href{mailto:debian-med@lists.debian.org}{debian-med@lists.debian.org} if you want to help to make medical and biological software available to Debian users. Read the \textbf{Membership} section if you're interested in joining us. \\ \\
60 If you speak a language other than English, you can contribute rightaway with translations of package descriptions at \url{http://ddtp.debian.org}. When working on these, you will find immediate targets for improvements of the original English versions, too. For these, though, you need access to Debian-Med's source code repository. Very welcome are tutorials that guide Debian users towards the use of packages to their immediate benefit. You may also consider to write respective articles for Magazines, be they online or in print.
61 \subsection{Membership}
62 To request membership to this group, please go on our \href{http://alioth.debian.org/projects/debian-med}{\emph{Alioth page}}, or directly follow this \href{http://alioth.debian.org/project/request.php?group_id=30063}{link}. Remember that you \textbf{must} have an Alioth account before requesting membership.
63 \section{Subversion}
64 Our Subversion (SVN) repository is currently hosted on \href{http://alioth.debian.org}{\emph{Alioth}}, the hosting facility provided by Debian to free software developers. You can have a look at the repository through Alioth's \href{http://svn.debian.org/wsvn/debian-med}{web interface}.
65 \subsection{Give me the source!}
66 To check sources out from SVN, please do:
67 \begin{itemize}
68 \item if you are a member of Debian-Med:
69 \begin{verbatim}
70 svn co svn+ssh://user@alioth.debian.org/svn/debian-med/trunk/...
71 \end{verbatim}
72 \item are \textbf{NOT} a member of Debian-Med:
73 \begin{verbatim}
74 svn co svn://svn.debian.org/svn/debian-med/trunk/...
75 \end{verbatim}
76 \end{itemize}
77 \subsection{Repository structure}
78 The SVN repository is structured as follows: \\
79 \dirtree{%
80 .1 debian-med/.
81 .2 trunk/.
82 .3 community/.
83 .4 debtags/.
84 .4 infrastructure/.
85 .4 website/.
86 .3 packages/.
87 .4 <package>/.
88 .5 branches/.
89 .5 tags/.
90 .5 trunk/.
91 .6 debian/.
92 }
93 \section{Packaging}
94
95 \subsection{Announcing intent to package}
96
97 If you intent to work on a Debian package you should follow the
98 \href{http://www.debian.org/devel/wnpp/#l1}{normal Debian rules} and
99 file a \texttt{WNPP} bug report. It is a good idea to keep the
100 Debian-Med mailing list
101 \href{mailto:debian-med@lists.debian.org}{debian-med@lists.debian.org}
102 in CC or forward the response of the BTS that includes the bug number
103 to the mailing list to keep your co-workers informed.
104
105 In addition to this you should add a user tag to this WNPP bug to
106 make sure that your intent is in focus of the Debian-Med team. This
107 can be done by sending a mail to
108 \href{mailto:request@bugs.debian.org}{request@bugs.debian.org} with
109 the following content:
110 \begin{verbatim}
111 user debian-med@lists.debian.org
112 usertag <bug-number> + wnpp med-<task>
113 thanks
114 \end{verbatim}
115 For instance if you want to tag an ITP with bug number \#123456 for
116 Debian-Med section biology you would do the following:
117 \begin{verbatim}
118 mailx -s "Tagging bug #123456" request@bugs.debian.org <<...
119 user debian-med@lists.debian.org
120 usertag 123456 + wnpp med-bio
121 thanks
122 ...
123 \end{verbatim}
124
125
126 \subsection{Conventions}
127 Please, in \texttt{debian/control}, use these values:
128 \begin{verbatim}
129 ...
130 Section: ...
131 Priority: ...
132 Maintainer: Debian-Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
133 XS-DM-Upload-Allowed: yes
134 Uploaders: <yourname> <youremail>
135 Standards-Version: 3.7.3
136 Homepage: http://...
137 Vcs-Svn: svn://svn.debian.org/svn/debian-med/trunk/packages/<package>/trunk/
138 Vcs-Browser: http://svn.debian.org/wsvn/debian-med/trunk/packages/<package>/trunk/?rev=0&sc=0
139 ...
140 \end{verbatim}
141 Make sure you use the right Section and Priority fields for the package. Also, be sure to use the latest Standards-Version. Please also add the Homepage field, we aim at having our packages the most complete as they can be.
142 \subsection{Uploading a new package}
143 To upload a new package to the SVN repository, you must have write access to it; i.e. you must be a member of this group. \\
144 You can upload a new package only \emph{after} successfully building it with \textbf{dpkg-buildpackage} (or any wrapper around it). Then you can:
145 \begin{verbatim}
146 $ svn-inject package.dsc svn+ssh://user@alioth.debian.org/svn/debian-med/trunk/packages/
147 \end{verbatim}
148 The \texttt{svn-inject} command is found in the
149 \texttt{svn-buildpackage} package (just \texttt{apt-get} it). \\
150
151 Once you uploaded a new package please make sure that it is mentioned
152 in the apropriate tasks file in the package source of the debian-med
153 package
154 \href{http://svn.debian.org/wsvn/cdd/projects/med/trunk/debian-med/tasks/?rev=0&sc=0}{in
155 SVN}. Normally maintainer watch the changes in the Debian-Med
156 packaging pool but it helps if the maintainer of a certain package
157 verifies that everything is in the right place.
158
159 \subsection{Building the packages}
160 To build the package, just use the tools that \texttt{svn-buildpackage} carries. First of all, we suggest you to define some aliases for the most common commands:
161 \begin{verbatim}
162 alias svn-b='svn-buildpackage -us -uc -rfakeroot --svn-ignore'
163 alias svn-br='svn-b --svn-dont-purge --svn-reuse'
164 alias svn-bt='svn-buildpackage --svn-tag -rfakeroot'
165 \end{verbatim}
166 You're ready now to checkout the sources (see the proper section). \\ \\
167 Once done, you're ready to do the work. First, cd to the \texttt{trunk} directory, and download the upstream sources (if there is a debian/watch file):
168 \begin{verbatim}
169 echo "origDir=.." >> .svn/deb-layout && uscan --force-download
170 \end{verbatim}
171 Alternatively, you can try this, it depends on how the package was built (again, from the \texttt{trunk} directory:
172 \begin{verbatim}
173 debian/rules get-orig-source
174 \end{verbatim}
175 Once done, edit the files you need, and then build the package with \texttt{svn-b} or \texttt{svn-br}. \\ \\
176 If you're a Debian-Med member, you can commit your changes:
177 \begin{verbatim}
178 svn commit
179 \end{verbatim}
180 (also \texttt{svn ci}). \\
181 Otherwise, you can ask to be added to the group (see the Membership section), or send the result of \texttt{svn diff} to the \href{mailto:debian-med@lists.debian.org}{mailing list} (gzip it, if it's too large).
182 \subsection{Tagging packages}
183 It may happen that a package version has been uploaded to Debian repositories, and you forgot to tag the last build with
184 \begin{verbatim}
185 svn-buildpackage --svn-tag
186 \end{verbatim}
187 You can tag this package also retroactively. A first step, creating the \texttt{tags/} directory, can be achieved in two ways:
188 \begin{itemize}
189 \item create it locally (it is a sibling of \texttt{trunk/}), and commit:
190 \begin{verbatim}
191 svn mkdir tags
192 svn commit
193 \end{verbatim}
194 \item create it remotely:
195 \begin{verbatim}
196 svn mkdir svn+ssh://user@svn.debian.org/svn/debian-med/trunk/packages/<package>/tags
197 \end{verbatim}
198 \end{itemize}
199 After the \texttt{tags/} directory has been created, you're ready to tag the package:
200 \begin{verbatim}
201 svn-buildpackage --svn-tag-only --svn-no-autodch
202 \end{verbatim}
203 (\texttt{--svn-autodch} avoids \texttt{debian/changelog} to be marked as \texttt{UNRELEASED}).
204 \subsection{Handling patches}
205 Often happens that the upstream code doesn't fit well into the Debian distribution: be this wrong paths, missing features, anything that implies editing the source files. When you directly edit upstream's source files, your changes will be put into a \texttt{.diff.gz} file, which should instead contain only \texttt{debian/}. Because of this, it's best using a \emph{patch handling system}. The most known are \texttt{dpatch} and \texttt{quilt}.
206 \subsubsection{Using \texttt{dpatch}}
207 \paragraph{Creating a patch}
208 \texttt{dpatch-edit-patch}\\
209 \paragraph{Applying and unapplying patches}
210 \texttt{apply(-all)}, \texttt{unapply(-all)}, \texttt{status}\\
211 \paragraph{Editing a patch}
212 \texttt{dpatch-edit-patch}\\
213
214 \subsubsection{Using \texttt{quilt}}
215 Using \texttt{quilt} is rather easy (easier than \texttt{dpatch}, I'd say). \\
216 First, make sure you have correctly setup quilt: open \texttt{.quiltrc} in your home directory (create it if you don't have one), and make sure it looks like this:
217 \begin{verbatim}
218 QUILT_DIFF_ARGS="--no-timestamps --no-index"
219 QUILT_REFRESH_ARGS="--no-timestamps --no-index"
220 QUILT_PATCH_OPTS="--unified-reject-files"
221 QUILT_PATCHES="debian/patches"
222 \end{verbatim}
223 After this, you're ready to start working with quilt.
224 \paragraph{Creating a patch}
225 \texttt{new}, \texttt{edit}, \texttt{refresh}\\
226 To create a patch, use the \texttt{new} command. Run:
227 \begin{verbatim}
228 quilt new <patch_name>.patch
229 \end{verbatim}
230 This will create (if it doesn't exist yet) a \texttt{debian/patches/series} file, which contains all the patches to be applied by quilt. Moreover, the new patch is also the \emph{topmost} (the currently applied). \\ \\
231 Now start editing files, with:
232 \begin{verbatim}
233 quilt edit <file>
234 \end{verbatim}
235 and repeat the process for each file the patch is involved with. At the end, run
236 \begin{verbatim}
237 quilt refresh
238 \end{verbatim}
239 This will compare the noted state of the edited files with the current state, and will produce a patch in \texttt{debian/patches}. Remember: the patch is currently \textbf{applied} (you can check this with \texttt{quilt applied}).
240 \paragraph{Applying and unapplying patches}
241 \texttt{push}, \texttt{pop}, \texttt{applied}, \texttt{unapplied}\\
242 Just two easy commands to do the job: \\ \\
243 \texttt{quilt pop} will unapply the topmost patch. \\
244 \texttt{quilt push} will apply the next patch in \texttt{debian/patches/series}. \\
245 You can just add a ``-a'' flag to the commands above, to respectively apply/unapply \textbf{all} patches in the series. \\ \\
246 You can check which patches are applied / unapplied with, respectively, \texttt{quilt applied} and \texttt{quilt unapplied}.
247 \paragraph{Editing patches}
248 \texttt{push}, \texttt{pop}, \texttt{edit}, \texttt{refresh}\\
249 To edit a patch, first make it the topmost:
250 \begin{verbatim}
251 quilt push <patch_name>
252 \end{verbatim}
253 If the patch is already applied, but is not the topmost, run \texttt{quilt pop} until it becomes the currently applied one. \\ \\
254 You can now run \texttt{quilt edit} on the files you want to change, and, when you're done, \texttt{quilt refresh}.
255 \paragraph{Renaming patches}
256 \texttt{rename}\\
257 Sometimes it's useful to rename a patch. Without any hassle, do:
258 \begin{verbatim}
259 quilt rename -P <old_name>.patch <new_name>.patch
260 \end{verbatim}
261 \paragraph{Other commands}
262 .\\
263 Please see \texttt{man 1 quilt} to have a comprehensive list of commands.
264 \subsubsection{Integration in the build process}
265 TODO:
266 \begin{verbatim}
267 include /usr/share/{quilt,dpatch}/{quilt,dpatch}.make
268 \end{verbatim}
269 \texttt{\$(QUILT\_STAMPFN)}
270 ...
271 \end{document}

  ViewVC Help
Powered by ViewVC 1.1.5