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

building own package



Hello,
I am trying to build my own package (containing only few shell scripts) to make easier the system maintainance specific to our department. I followed the instruction in the Debian New Maintainer's Guide, but I probably misunderstood something, since I have the following problems:

* I store all the scripts in a tarball, so all I have to do is to unpack them in the respective directory during the "make install" stage (i.e. no compilation is needed). I succeeded to do so by introducing the following Makefile:
-------------
clean:
       rm -fr debian/ucjf-security

install:
       cd $(DESTDIR) ; \
tar -xvzf ../../../ucjf-security_1.0.1.orig.tar.gz -------------- It works, however I would expect that the path to a tarball can be specified in a better way (is there any variable containing the top directory name ?). Also, the version should not be hardcoded there, I guess. Is there a way to tell the Makefile to use the latest version/same version as is the name of the working directory ?

* since the pakcage contains only few shell scripts, it should be architecture-independent. Therefore, I specified "Architecture: any" in the "control" file and also moved all the action in the "rules" file into the binary-indep section (see attachment).... However, the resulting package still contains in its control file the item "Architecture: i386" (which is where the package is produced, but ....).

* the script don't have any config file, therefore I didn't introduce the "conffiles" in the debian directory. However, the resulting package contains in its conffiles the first file of the tarball. Is there a good reason for that ? How do I get rid off this feature ?

* the man pages installation works pretty well, the only problem is that the mandb is not updated after the package installation. It means user can display the new manpage, but "man -k" does not find it. One would need to run mandb automatically - should this be done via postinst (postrm) scripts or is there a simpler way to do so ?

Thanks a lot for any hint,

best regards
          Tomas

E-mail : davidek@ipnp.troja.mff.cuni.cz,
	  Tomas.Davidek@cern.ch

#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1




CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.

	touch configure-stamp


build: build-stamp

build-stamp: configure-stamp 
	dh_testdir

	# Add here commands to compile the package.
	$(MAKE)
	#docbook-to-man debian/ucjf-security.sgml > ucjf-security.1

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# Add here commands to clean up after the build process.
	-$(MAKE) clean

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	# Add here commands to install the package into debian/ucjf-security.
	$(MAKE) install DESTDIR=$(CURDIR)/debian/ucjf-security


# Build architecture-independent files here. Everything here, since we have
# just set of scripts:
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs 
	dh_installdocs README TODO
	dh_installexamples
#	dh_install
#	dh_installmenu
#	dh_installdebconf	
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_installinit
#	dh_installcron
#	dh_installinfo
	dh_installman ucjf-security.8
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
#	dh_perl
#	dh_python
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

# Build architecture-dependent files here.
binary-arch: build install
# We have nothing to do by default.

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

Reply to: