Mika/Notes/Computer Stuff/Debian Maintenance

From WikiDotMako
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

I maintain bubblefishymon.


  • I accidentally deleted my deb-src lines in /etc/apt/source.list. When I tried to run apt-get source (package), I got this error: E: You must put some 'source' URIs in your sources.list . Added deb-src lines back in, ran apt-get update, and now it's all good.
  • Tried to switch to 3.0 (quilt) source format (https://wiki.debian.org/Projects/DebSrc3.0#How_to_convert_a_source_package.3F) but I kept getting an error message (dpkg-buildpackage: error: dpkg-source -b gave error exit status 2) when I tried to dpkg-buildpackage. The solution was to run dpkg-source --commit.
  • man 7 intro gives introduction to overview, convention (i.e. (1) means sub-man page etc).
  • READ on dh_auto_build and dh_auto_install!

Basic Steps

  • Use fakeroot, not root.

1. apt-get source bubblefishymon: get the source

2. Fix the bugs. See below for specific examples.

3. Build package after some fixes:

dpkg-buildpackage (-us -uc skips the signing stage) -rfakeroot: This makes dsc and changes and diff.gz files in the *parent* directory (i.e. /home/mika/).
if it gives an error dpkg-checkbuilddeps: error: Unmet build dependencies x y z, run apt build-dep bfm.

4. Run lintian on changes to check errors in the directory where .changes files exist:

lintian -i -I *changes (if there are multiple changes files in the same folder, specify here.)

5. Test the package by:

sudo debi (the change file name)

6. Make (dch -i (change description)) or edit in editor the changelog file in the debian folder. The format is:

bfm (0.6.4-3) unstable; urgency=low
* (Change description. Make sure to add (Closes: #bugnumber) if the change fixes the bug.
-- Mika Matsuzaki <mika@yukidoke.org> (Timestamp, automatic by dch)

Note: dch -i added *Non-Maintainer upload automatically because it saw my laptop's ID instead of my maintainer email. I can edit /home/mika/.bashrc to specify DEBFULLNAME="" and DEBEMAIL="" . Then, do exec bash (starts bash but kills old bash. If you just run bash, then it will run bash inside the existing bash).

7. Upload .dsc and .diff.gz .debian.tar. and orig.tar somewhere, so that the sponsor can get it.

8. pbuilder can help simulate the problems in sid (problems if using Ubuntu. Just use Debian):

sudo pbuilder create --distribution sid

Bug reports

  • Homepage update in control
  • 667112 on gcc command line option -Wl

Removed -Wl from: LDFLAGS = -shared -Wl

-Wl means "pass the following option to the linker"

  • Delete in debian/control file:

. Homepage: http://www.jnrowe.ukfsn.org/projects/bfm.html And add after Standards-Version: Homepage: http://www.jnrowe.ukfsn.org/projects/bfm.html

# Updated to Standards-Version: 3.9.1 in debian/control file

  • Fixed black background in WindowMaker. Someone had a patch on github. Downloded the patch and in the bfm folder:
               patch <- (patch file)
  • Fixed FTBFS bug with binutils-gold. It said that I had to specify the library (libX11). Changed 2 times in bfm-0.4.4/Makefile (Mako):

GTK_LIBS = -lX11 $(shell gtk-config --libs)

  • Fixed menu as directed by lintian in 2 steps:

Instead of Apps/Systems --> Applications/Systems Instead of Applications/Systems --> Applications/Systems/Monitoring When I search for the lintian error messages, I get a page that has a list of packages with the same error plus the suggested solution on top.

  • Fixed Copyright by adding in debian/copyright:


  		 Copyright (C) 1999 Merlin Hughes
 		 Copyright (C) 1999-2000 Johan Walles <d92-jwa@nada.kth.se>

Copyright (C) 2001 Pigeon Copyright (c) 2009 James Rowe <Jay@jnrowe.ukfsn.org>

  • Fixed the nonstrip option problem by editing debian/rules (Clint):

ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))

	        INSTALL_PROGRAM += -s

STRIP_PROGRAM = strip else STRIP_PROGRAM = true endif

  • Fixed watch accordingly to the suggestion on BTS so as to report the upstream update (though it's not happening now since there's no upstream developer):

version=3 http://www.jnrowe.ukfsn.org/projects/bfm.html../_downloads/bfm-(.*)\.tar\.bz2

Miscellaneous things

  • If you want to build a binary package, the package has to be 'installed'. The correct way to do this is by using the utility fakeroot, which fakes an install, so that you can build a binary package as non-root and without really installing it. The following command should build a binary package:
fakeroot debian/rules binary

The binary target is yet another Makefile target that will first execute a configure, build and install if still necessary. If you already did build the package, then only an install would first be done, etc.

  • While testing changes that you make to the code, you can (re)build the package with the command:
debian/rules build
  • clean the source tree? (fakeroot debian/rules clean)