Re: Guidelines
Based on a dry-run at making up a debian package starting with the less-177
source distribution, I suggested some changes to Ian's first go at the
guidelines. Ian and I exchanged a few emails about this, and he suggested
that I post this to the debian-devel list for comment.
I suggested that the .tgz file for all packages include a
CHANGES.debian.version file (version starts at 0 and increments with
each new debian release of that package-release). This file would contain
the following information:
A. The origin of the source code distribution kit
B. The identity of the person packaging the distribution for debian
C. The version of the compiler used to produce the package
D. The version(s) of all libraries linked in
E. A debain-specific release designation the CHANGES file of this
distribution (e.g., less-177.debian.0). This would only
appear in the CHANGES.debian.version file, it need not effect
other filenames in the distribution.
F. The CHANGES file should contain step-by-step narrative of the changes
made to package distribution files in order to produce this debian
distribution. This should start with untar-ing the package
distribution, and should include any steps taken to configure the
package, and non-default responses to configure scripts, and special
edits made to package files (such as adding the debian-standard
definitions to Makefile, etc.)
G. If upgrade versions of the distribution are made, another CHANGES file
should be created. For example, less-177 has a default in defines.h
which reads as follows:
#define EDIT_PGM "vi"
It's conceivable that debian 1.1 might make a rule that all programs
which have default editors are to dofault to emacs for consistancy.
That would result in a less-177.debian.1 distribution being
produced which differed from the less-177.debian.0 only in the
setting of this build option. A new CHANGES file, CHANGES.debian.1
should be produced for this less-177 package redistribution for debian.
H. Distributions should be understood to have been constructed according
to procedures described in the highest-numbered CHANGES file. Older
CHANGES files might optionally be retained for historical reasons,
but the current CHANGES file should stand on its own without referring
to older files. (It shouldn't say "do the .0 stuff, then the .3 stuff
in order to produce this .12 distribution").
Why all of this, you ask? I'm trying to make it easy to cover the situation
where I hand off responsibility for maintaining a package to someone else,
and he has to start with my package, figure out how I produced it and why I
made the maintainer-choice decisions I did. The current CHANGES.debian file
gives him a better place to start than trying to figure it out from the context
diffs. For the less-177 package, for example, the context diffs would tell
him that defines.h and Makefile contained differences from what those files
contained in the package distribution I started with, but it wouldn't tell
him that some of these changes were the result of choosing nonstandard
options when running the lconfigure script which comes with the package
distribution and other changes were from editing debian-specific stuff
directly into place.
As an ilustration, here's my less-177.debian.diff file:
---------------------------------------------
Only in less-177: CHANGES.debian.0
Only in less-177: Makefile
Only in less-177: defines.h
---------------------------------------------
Not too informative.
Here's my CHANGES.debian.0 file:
---------------------------------------------
GNU less 1.77
Linux debian distribution prepared by mitchell@mdd.comm.mot.com
Compiled with gcc 2.5.7
Linked with LIBC.SO.R (DLL JUMP 4.5PL8)
To rebuild from less-177 distribution sources:
1) Get source from: prep.ai.mit.edu:/pub/gnu/less-177.tar.Z
2) Untar less-177.tar.Z
3) cd less-177
4) sh linstall
Answer all of the quesitons with a default, EXCEPT:
1) offset to lseek: off_t
2) both _setjmp() and setjmp: yes
3) regcmp vs. re_comp: 2
4) libraries: -lcurses -ltermcap
5) installed versions: /usr/bin/less
/usr/bin/lesskey
/usr/lib/less.hlp
5) edit defines.h, and change the following:
1) Add "#include <sys/types.h>" at the top
2) Change the EDIT_PGM variable from "vi" to "emacs"
6) mv makefile Makefile
7) add the following definitions to Makefile:
CC = gcc
CFLAGS = -O2 -fomit-frame-pointer -m486
LDFLAGS = -s (and -N, if appropriate)
8) make install
---------------------------------------------
Also, I've said that the CHANGES.debian.version file would be included in
the debian package .tgz file. It's not clear to me at present just where
the <package>-<version>.debian.diff.gz file required by the guidelines would
be placed.
I haven't yet tried putting together a `dpkg' distribution, because the
guidelines warned that several of the steps in the posted procedure for
that could be expected to change in the near future.
Comments on the above, anyone?
Reply to: