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

Re: Debian package && New developer question



On Mon, 08 May 2000 at 10:09:34 +0200, Fredrik Steen wrote:
> I have uploaded these files to: http://www.stone.nu/debian/dl/
> 
> mp3html_1.3.8-1.diff.gz
> mp3html_1.3.8-1.dsc
> mp3html_1.3.8-1_i386.changes
> mp3html_1.3.8-1_i386.deb
> mp3html_1.3.8.orig.tar.gz

The main problem that's going to bite you as soon as this starts to be
ported to other Debian architectures is that you don't seem to be
actually building the mp3html binary here; $(MAKE) is commented out in
debian/rules, yet the binary is there. If it was in the upstream
distribution then you'll have to remove it in the build stage of
debian/rules (and preferably ask the upstream maintainer to distribute a
clean source tree); in any case you certainly need to build it yourself,
since otherwise your package will only work for one architecture.

Another thing is I don't think you need to duplicate mp3html.1 in
debian/; it's already in the top-level directory of the source tree.

The most awkward thing to fix is that the .orig.tar.gz is a bit of a
mess: it has a lot of debian/ stuff in it, whereas it's supposed to be
the same as the tarball the upstream author distributed if at all
possible. If you don't keep an upstream tarball (in an .orig.tar.gz) or
an original source tree (in an .orig directory) around then the build
process can end up producing something like this.

What I'd do here to fix this up is get a fresh upstream tarball, unpack
it, and rename the tarball to mp3html_1.3.8.orig.tar.gz. Then copy only
the files in debian/ that weren't created by debian/rules from the tree
you have at the moment (I think that should be debian/changelog,
debian/control, debian/copyright, debian/docs, and debian/rules itself).
At this point you should have a directory tree that, at the minimum,
looks like this:

  . -+- mp3html_1.3.8.orig.tar.gz
     \- mp3html-1.3.8/
         +- (stuff)
         \- debian/
             \- (stuff)

Now change into the mp3html-1.3.8/ directory and run 'debuild' or
'dpkg-buildpackage -rfakeroot' or whatever way you normally build
packages. What you should end up with is an .orig.tar.gz that's exactly
the same as what the mp3html author distributed, and a Debian diff
(.diff.gz) that contains exactly your changes (in this case, the five
files in debian/ mentioned above, though sometimes it involves changes
to the main source tree as well to fix up filenames and the like). It
sounds picky, but it makes life a lot easier in certain circumstances.

If you take a few moments to learn about tools like 'uscan' then you
should find that it's a lot easier to maintain this system than it is to
patch it up when you get it wrong; using 'dh_make' from the start will
also get this right, if you don't delete the extra .orig directory it
gives you.

Good luck!

-- 
Colin Watson                                     [cjw44@flatline.org.uk]


Reply to: