Re: Building a clean debian perl package
On Sat, Jan 26, 2008 at 12:16:56AM +0200, Damyan Ivanov wrote:
> -=| Bob Wilkinson, Fri, Jan 25, 2008 at 09:43:02PM +0000 |=-
> > I am trying to build a new debian package of my CPAN module. I
> > get errors when building and it it not linda-clean.
> >
> > b@italy:~/src/gramofile/Audio/Gramofile$ fakeroot debian/rules binary
> > dh_testdir
> [...]
> > dh_gencontrol
> > dpkg-gencontrol: warning: unknown substitution variable ${perl:Depends}
> [...]
> > bob@italy:~/src/gramofile/Audio/Gramofile$ grep Depends debian/*
> > debian/control:Build-Depends: debhelper (>= 4.0.2), perl (>= 5.8.0-7)
> > debian/control:Depends: ${perl:Depends}, ${shlibs:Depends}
> > debian/libaudio-gramofile-perl.substvars:shlibs:Depends=libgramofile1, libc6 (>= 2.7-1)
> > bob@italy:~/src/gramofile/Audio/Gramofile$ linda ../libaudio-gramofile-perl_0.07-1_i386.deb
> > W: libaudio-gramofile-perl; Module package has no dependancy on perl or perl-base.
> >
> > Please could someone point out the mistake I am making?
>
> If you put the debian/rules file somewhere so that we can take a look at
> it... it would be much easier :)
>
> Perhaps the install target is not working properly so the resulting
> package is mostly empty and dh_perl does not detect any need to add
> dependency on perl. I speculate here, please show ys debian/rules :)
Hello
Here is the debian/rules file (less than 100 lines - thought
better to inline it).
bob@italy:~/src/gramofile/Audio/Gramofile$ cat debian/rules
#!/usr/bin/make -f
# This debian/rules file is provided as a template for normal perl
# packages. It was created by Marc Brockschmidt <marc@dch-faq.de> for
# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may
# be used freely wherever it is useful.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# If set to a true value then MakeMaker's prompt function will
# always return the default without waiting for user input.
export PERL_MM_USE_DEFAULT=1
PACKAGE=$(shell dh_listpackages)
ifndef PERL
PERL = /usr/bin/perl
endif
TMP =$(CURDIR)/debian/$(PACKAGE)
# Allow disabling build optimation by setting noopt in
# $DEB_BUILD_OPTIONS
CFLAGS = -Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
build: build-stamp
build-stamp:
dh_testdir
# Add commands to compile the package here
$(PERL) Makefile.PL INSTALLDIRS=vendor
$(MAKE) OPTIMIZE="$(CFLAGS)" LD_RUN_PATH=""
touch build-stamp
clean:
dh_testdir
dh_testroot
# Add commands to clean up after the build process here
[ ! -f Makefile ] || $(MAKE) realclean
dh_clean build-stamp install-stamp
install: build install-stamp
install-stamp:
dh_testdir
dh_testroot
dh_clean -k
# Add commands to install the package into debian/$PACKAGE_NAME here
$(MAKE) test
$(MAKE) install DESTDIR=$(TMP) PREFIX=/usr
# As this is a architecture dependent package, we are not
# supposed to install stuff to /usr/share. MakeMaker creates
# the dirs, we delete them from the deb:
rmdir --ignore-fail-on-non-empty --parents $(TMP)/usr/share/perl5
touch install-stamp
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installdocs README
dh_installexamples
# dh_installmenu
# dh_installcron
# dh_installman
dh_installchangelogs Changes
dh_link
dh_strip
dh_compress
dh_fixperms
dh_makeshlibs
dh_installdeb
dh_perl
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary
bob@italy:~/src/gramofile/Audio/Gramofile$
> BTW, the easiest way to start a perl module's Debian packaging is to use
> dh-make-perl[1]
>
> [1] http://packages.debian.org/dh-make-perl
Just downloaded this and tried... After warnings about missing copyright, I thought
I may as well try to build, and saw.
bob@italy:~/src/gramofile/Audio/Gramofile$ fakeroot !!
fakeroot debian/rules binary
dh_testdir
dh_testroot
dh_installexamples
dh_installdocs README debian.old/libaudio-gramofile-perl/usr/share/doc/libaudio-gramofile-perl/README
dh_installchangelogs Changes
dh_shlibdeps
dh_strip
dh_perl
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dpkg-gencontrol: warning: unknown substitution variable ${perl:Depends}
dpkg-gencontrol: warning: unknown substitution variable ${shlibs:Depends}
dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}
dh_md5sums
dh_builddeb
dpkg-deb: building package `libaudio-gramofile-perl' in `../libaudio-gramofile-perl_0.06-1_i386.deb'.
bob@italy:~/src/gramofile/Audio/Gramofile$
> --
> dam JabberID: dam@jabber.minus273.org
Bob
Reply to: