3 # Creates debian and upstream packages
4 # Programmer: Kevin Rosenberg
6 set -e # abort on error
8 progname="`basename \"$0\"`"
12 Usage: $progname [options]
14 -t Tag CVS tree with current version numbers
15 -d Use dpkg-buildpackage rather than default cvs-buildpackage
16 -l Run lintian after building
17 -h Print this brief help
23 value="`echo x\"$1\" | sed -e 's/^x-.//'`"
27 -d) opt_dpkg_buildpackage=1 ;;
39 DEBVERSION=`sed -n -e "s/${DEBPKG} (\(.*\)).*/\1/p" < debian/changelog |head -1`
40 PACKAGE_DIR=/usr/local/src/Packages/${DEBPKG}
41 DISTDIR=${PKG}-${VERSION}
42 DEBDIR=${DEBPKG}-${VERSION}
44 if [ -z ${opt_dpkg_buildpackage} ]; then
45 export CVSROOT=`cat CVS/Root`
48 if [ ! -z ${opt_tag} ]; then
49 DEB_TAG=debian_version_`echo ${DEBVERSION} | tr . _`
50 UPSTREAM_TAG=upstream_version_`echo ${VERSION} | tr . _`
51 echo "(Re-)tagging with Debian tag '${DEB_TAG}'"
52 cvs -q rtag -d ${DEB_TAG} ${PKG} > /dev/null
53 cvs -q tag -F ${DEB_TAG} > /dev/null
55 # Retag with upstream tag if release not 0 or 1
56 if [ "`echo ${DEBVERSION} | egrep '\-0$\-1$]'`" != "" ]; then
57 echo "(Re-)tagging with Upstream tag '${UPSTREAM_TAG}'"
58 cvs -q rtag -d $UPSTREAM_TAG $PKG > /dev/null
59 cvs -q tag -F $UPSTREAM_TAG > /dev/null
64 rm -f ${PKG}_${VERSION}.tar.gz ${DEBPKG}_${VERSION}.orig.tar.gz
65 rm -rf ${DISTDIR} ${DEBDIR} ${DISTDIR}.zip
66 cp -a ${TOPDIR} ${DISTDIR}
68 echo "Cleaning distribution directory ${DISTDIR}"
69 rm -f ${DISTDIR}/upload.sh ${DISTDIR}/make-dist.sh
70 rm -f `find ${DISTDIR} -type f -name .cvsignore`
71 rm -rf `find ${DISTDIR} -type d -name CVS`
72 rm -f `find ${DISTDIR} -type f -name '*~' -or -name '#*' -or -name '#*#'`
73 rm -f `find ${DISTDIR}/doc -type f -name \*.tex -or -name \*.aux -or \
74 -name \*.log -or -name \*.out -or -name \*.dvi`
76 echo "Creating upstream archives"
77 rm -rf ${DISTDIR}/debian
78 GZIP=-9 tar czf ${DISTDIR}.tar.gz ${DISTDIR}
80 cp -a ${DISTDIR} ${DEBDIR}
81 GZIP=-9 tar czf ${DEBPKG}_${VERSION}.orig.tar.gz ${DEBDIR}
83 unix2dos `find ${DISTDIR} -type f -name \*.cl -or -name \*.list -or \
84 -name \*.system -or -name Makefile -or -name ChangeLog -or \
85 -name COPYRIGHT -or -name TODO -or -name README -or -name INSTALL -or \
86 -name NEWS -or -name \*.sgml -or -name COPYING\* -or -name catalog`
87 zip -rq ${DISTDIR}.zip ${DISTDIR}
89 cp -a ${TOPDIR}/debian ${DEBDIR}
90 rm -f ${DEBDIR}/debian/.cvsignore
91 rm -rf ${DEBDIR}/debian/CVS
95 echo "Moving upstream archives to ${PACKAGE_DIR}"
96 rm -f ${PACKAGE_DIR}/${DISTDIR}.zip ${PACKAGE_DIR}/${DEBPKG}_${VERSION}.orig.tar.gz
97 mv ${DISTDIR}.zip ${DEBPKG}_${VERSION}.orig.tar.gz ${DISTDIR}.tar.gz ${PACKAGE_DIR}
99 echo "Building Debian files"
100 if [ -z ${opt_dpkg_buildpackage} ]; then
102 cvs-buildpackage -rfakeroot -kkevin@rosenberg.net -H${TOPDIR}/cvsbp-prepare -tC -i.pdf ${DEBPKG}
106 dpkg-buildpackage -rfakeroot -kkevin@rosenberg.net -a
111 echo "Moving Debian files to ${PACKAGE_DIR}"
112 mkdir -p /usr/local/src/Packages/${DEBPKG}
113 mv ${DEBPKG}_${VERSION}* ${PACKAGE_DIR}
115 if [ ! -z ${opt_lintian} ]; then
116 pushd ${PACKAGE_DIR} > /dev/null
117 lintian ${DEBPKG}_${DEBVERSION}_*.changes