aptftparchive() { runapt apt-ftparchive $*; }
setupenvironment() {
- local TMPWORKINGDIRECTORY=$(mktemp -d)
+ TMPWORKINGDIRECTORY=$(mktemp -d)
local TESTDIR=$(readlink -f $(dirname $0))
msgninfo "Preparing environment for ${CCMD}$0${CINFO} in ${TMPWORKINGDIRECTORY}… "
BUILDDIRECTORY="${TESTDIR}/../../build/bin"
test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first"
local OLDWORKINGDIRECTORY=$(pwd)
- trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+# trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
cd $TMPWORKINGDIRECTORY
mkdir rootdir aptarchive keys
cd rootdir
done
}
-buildsimplenativepackage() {
+setupsimplenativepackage() {
local NAME="$1"
local ARCH="$2"
local VERSION="$3"
else
DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)"
fi
- msgninfo "Build package ${CCMD}${NAME}=${VERSION}/${RELEASE}${CINFO}… "
local BUILDDIR=incoming/${NAME}-${VERSION}
mkdir -p ${BUILDDIR}/debian/source
cd ${BUILDDIR}
test -e debian/compat || echo "7" > debian/compat
test -e debian/source/format || echo "3.0 (native)" > debian/source/format
test -e debian/rules || cp /usr/share/doc/debhelper/examples/rules.tiny debian/rules
+ cd - > /dev/null
+}
+
+buildsimplenativepackage() {
+ local NAME="$1"
+ local ARCH="$2"
+ local VERSION="$3"
+ local RELEASE="${4:-unstable}"
+ local DEPENDENCIES="$5"
+ local DESCRIPTION="$6"
+ local SECTION="${7:-others}"
+ local DISTSECTION
+ if [ "$SECTION" = "$(echo "$SECTION" | cut -d'/' -f 2)" ]; then
+ DISTSECTION="main"
+ else
+ DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)"
+ fi
+ setupsimplenativepackage "$NAME" "$ARCH" "$VERSION" "$RELEASE" "$DEPENDENCIES" "$DESCRIPTION" "$SECTION"
+ buildpackage "incoming/${NAME}-${VERSION}" "$RELEASE" "$DISTSECTION"
+ rm -rf "incoming/${NAME}-${VERSION}"
+}
+
+buildpackage() {
+ local BUILDDIR=$1
+ local RELEASE=$2
+ local SECTION=$3
+ msgninfo "Build package $(echo "$BUILDDIR" | grep -o '[^/]*$') for ${RELEASE} in ${SECTION}… "
+ cd $BUILDDIR
+ if [ "$ARCH" = "all" ]; then
+ ARCH="$(dpkg-architecture -qDEB_HOST_ARCH 2> /dev/null)"
+ fi
local BUILT="$(dpkg-buildpackage -uc -us -a$ARCH 2> /dev/null)"
local PKGS="$( echo "$BUILT" | grep '^dpkg-deb: building package' | cut -d'/' -f 2 | sed -e "s#'\.##")"
local SRCS="$( echo "$BUILT" | grep '^dpkg-source: info: building' | grep -o '[a-z0-9._-]*$')"
cd - > /dev/null
for PKG in $PKGS; do
- echo "pool/${PKG}" >> ./incoming/${RELEASE}.${DISTSECTION}.pkglist
+ echo "pool/${PKG}" >> ${TMPWORKINGDIRECTORY}/incoming/${RELEASE}.${SECTION}.pkglist
done
for SRC in $SRCS; do
- echo "pool/${SRC}" >> ./incoming/${RELEASE}.${DISTSECTION}.srclist
+ echo "pool/${SRC}" >> ${TMPWORKINGDIRECTORY}/incoming/${RELEASE}.${SECTION}.srclist
done
- rm -rf $BUILDDIR
msgdone "info"
}
fi
}
+testfileequal() {
+ local FILE="$1"
+ shift
+ msgtest "Test for correctness of file" "$FILE"
+ if [ -z "$*" ]; then
+ echo -n "" | diff $FILE - && msgpass || msgfail
+ else
+ echo "$*" | diff $FILE - && msgpass || msgfail
+ fi
+}
+
testequal() {
local COMPAREFILE=$(mktemp)
echo "$1" > $COMPAREFILE