Check-in [adaa8411d9]
Not logged in
Overview

SHA1 Hash:adaa8411d9f4421e1a9dc96e85abec4406e4434d
Date: 2008-04-25 22:31:11
User: stephan
Comment:initial checkin: quick hack to generate a .deb package of fossil.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Added debian/makedeb.sh version [f6874667dd]

@@ -1,1 +1,129 @@
+#!/bin/bash
+# A quick hack to generate a Debian package of fossil. i took most of this
+# from Martin Krafft's "The Debian System" book.
+
+DEB_REV=${1-1} # .deb package build/revision number.
+PACKAGE_DEBNAME=fossil-scm
+THISDIR=${PWD}
+
+if uname -a | grep -i nexenta &>/dev/null; then
+# Assume NexentaOS/GnuSolaris:
+    DEB_PLATFORM=nexenta
+    DEB_ARCH_NAME=solaris-i386
+    DEB_ARCH_PKGDEPENDS="sunwcsl" # for -lsocket
+else
+    DEB_PLATFORM=${DEB_PLATFORM-ubuntu-feisty}
+    DEB_ARCH_NAME=i386
+fi
+
+SRCDIR=$(cd ..; pwd)
+test -e ${SRCDIR}/fossil || {
+    echo "This script must be run from a BUILT copy of the source tree."
+    exit 1
+}
+
+DEBROOT=$PWD/deb.tmp
+test -d ${DEBROOT} && rm -fr ${DEBROOT}
+
+DEBLOCALPREFIX=${DEBROOT}/usr
+BINDIR=${DEBLOCALPREFIX}/bin
+mkdir -p ${BINDIR}
+mkdir -p ${DEBLOCALPREFIX}/share/doc/${PACKAGE_DEBNAME}
+cp ../fossil ${BINDIR}
+strip ${BINDIR}/fossil
+
+cd $DEBROOT || {
+    echo "Debian dest dir [$DEBROOT] not found. :("
+    exit 2
+}
+
+
+rm -fr DEBIAN
+mkdir DEBIAN
+
+PACKAGE_VERSION=$(date +%Y.%m.%d)
+PACKAGE_DEB_VERSION=${PACKAGE_VERSION}-${DEB_REV}
+DEBFILE=${THISDIR}/${PACKAGE_DEBNAME}-${PACKAGE_DEB_VERSION}-dev-${DEB_ARCH_NAME}-${DEB_PLATFORM}.deb
+PACKAGE_TIME=$(/bin/date)
+
+rm -f ${DEBFILE}
+echo "Creating .deb package [${DEBFILE}]..."
+
+echo "Generating md5 sums..."
+find ${DEBLOCALPREFIX} -type f -exec md5sum {} \; > DEBIAN/md5sums
+
+true && {
+    echo "Generating Debian-specific files..."
+    COPYRIGHT=${DEBLOCALPREFIX}/share/doc/${PACKAGE_DEBNAME}/copyright
+    cat <<EOF > ${COPYRIGHT}
+This package was created by stephan beal <stephan@s11n.net>
+on ${PACKAGE_TIME}.
+
+The original sources for fossil can be downloaded for free from:
+
+http://www.fossil-scm.org/
+
+fossil is released under the terms of the GNU General Public License.
+
+EOF
+}
+
+true && {
+    CHANGELOG=${DEBLOCALPREFIX}/share/doc/${PACKAGE_DEBNAME}/changelog.gz
+    cat <<EOF | gzip -c > ${CHANGELOG}
+${PACKAGE_DEBNAME} ${PACKAGE_DEB_VERSION}; urgency=low
+
+This release has no changes over the core source distribution. It has
+simply been Debianized.
+
+Packaged by stephan beal <stephan@s11n.net> on
+${PACKAGE_TIME}.
+
+EOF
+
+}
+
+
+true && {
+    CONTROL=DEBIAN/control
+    echo "Generating ${CONTROL}..."
+    cat <<EOF > ${CONTROL}
+Package: ${PACKAGE_DEBNAME}
+Section: devel
+Priority: optional
+Maintainer: stephan beal <stephan@s11n.net>
+Architecture: ${DEB_ARCH_NAME}
+Depends: libc6-dev ${DEB_ARCH_PKGDEPENDS+, }${DEB_ARCH_PKGDEPENDS}
+Version: ${PACKAGE_DEB_VERSION}
+Description: a powerful, flexible serialization framework for C++.
+ This package contains all files needed for development, as well as the s11nconvert tool
+ and library documentation. Note that an ODD minor version number (e.g. 1.1 or 1.3)
+ indicates a beta/development version, not intended for general client-side use,
+ whereas EVEN minor numbers (e.g. 1.2 or 1.4) indicate stable versions.
+EOF
+
+}
+
+
+true && {
+#    GZ_CONTROL=control.tar.gz
+#    GZ_DATA=data.tar.gz
+#    echo "Generating ${GZ_CONTROL} and ${GZ_DATA}..."
+#    rm -f ${GZ_CONTROL} ${GZ_DATA} ${DEBFILE} 2>/dev/null
+#    tar cz -C DEBIAN -f ${GZ_CONTROL} .
+#    tar czf ${GZ_DATA} --exclude='*/doxygen-*' usr
+#    echo '2.0' > debian-binary
+    #ar rcu ${DEBFILE} debian-binary ${GZ_CONTROL} ${GZ_DATA}
+    dpkg-deb -b ${DEBROOT} ${DEBFILE}
+    echo "Package file created:"
+    ls -la ${DEBFILE}
+    dpkg-deb --info ${DEBFILE}
+}
+
+cd - >/dev/null
+true && {
+    echo "Cleaning up..."
+    rm -fr ${DEBROOT}
+}
 
+echo "Done :)"