[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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
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: