Updated the build system for better consistency. Also make it easier to do source builds for things like launchpad PPAs.
This commit is contained in:
parent
48bc79843a
commit
de85fef7c2
14 changed files with 122 additions and 48 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,6 +1,8 @@
|
|||
build.*
|
||||
.config.mk
|
||||
|
||||
src/version.c
|
||||
|
||||
.cproject
|
||||
.project
|
||||
.settings
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
BUILD_DEPS=`awk 'BEGIN {cnt = 1;} /^Build-Depends:/ {split($0, line, ":");split(line[2], deps, ",");for (i in deps) {d = deps[i];sub(/^ */, "", d);sub(/ *$/, "", d);split(d, tokens, " ");packages[cnt] = tokens[1];cnt++;}} END {out = ""; for(i = 1; i <= cnt; i++) {out = out packages[i] " ";} print out; }' debian/control`
|
||||
CHANGELOG=debian/changelog
|
||||
NOW=`date -R`
|
||||
VER=`git describe | sed "s/\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3/"`
|
||||
VER=`$(dirname $0)/support/version`
|
||||
[ -z "${DEBDIST:-}" ] && DEBDIST=""
|
||||
|
||||
build()
|
||||
{
|
||||
echo >${CHANGELOG} "tvheadend (${VER}) unstable; urgency=low"
|
||||
echo >>${CHANGELOG}
|
||||
echo >>${CHANGELOG} " * The full changelog can be found at "
|
||||
echo >>${CHANGELOG} " http://www.lonelycoder.com/tvheadend/download"
|
||||
echo >>${CHANGELOG}
|
||||
echo >>${CHANGELOG} " -- Andreas Öman <andreas@lonelycoder.com> ${NOW}"
|
||||
$(dirname $0)/support/changelog "$CHANGELOG" "$DEBDIST" "$VER"
|
||||
|
||||
export JOBSARGS
|
||||
export JARGS
|
||||
|
@ -18,22 +14,22 @@ build()
|
|||
dpkg-buildpackage -b -us -uc
|
||||
|
||||
for a in ../tvheadend*${VER}*.deb; do
|
||||
versioned_artifact "$a" deb application/x-deb `basename $a`
|
||||
versioned_artifact "$a" deb application/x-deb `basename $a`
|
||||
done
|
||||
|
||||
for a in ../tvheadend*${VER}*.changes; do
|
||||
versioned_artifact "$a" changes text/plain `basename $a`
|
||||
versioned_artifact "$a" changes text/plain `basename $a`
|
||||
done
|
||||
}
|
||||
|
||||
clean()
|
||||
{
|
||||
for a in ../tvheadend*${VER}*.deb; do
|
||||
rm -f "$a"
|
||||
rm -f "$a"
|
||||
done
|
||||
|
||||
for a in ../tvheadend*${VER}*.changes; do
|
||||
rm -f "$a"
|
||||
rm -f "$a"
|
||||
done
|
||||
|
||||
rm -f ${CHANGELOG}
|
||||
|
@ -43,8 +39,8 @@ clean()
|
|||
deps()
|
||||
{
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "Build dependencies must be installed as root"
|
||||
exit 1
|
||||
echo "Build dependencies must be installed as root"
|
||||
exit 1
|
||||
fi
|
||||
apt-get -y install ${BUILD_DEPS}
|
||||
}
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-_} --arch=x86_64"
|
||||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
|
||||
DEBDIST=lucid
|
||||
source Autobuild/debian.sh
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-_} --arch=i686"
|
||||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
|
||||
DEBDIST=lucid
|
||||
source Autobuild/debian.sh
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-_} --arch=x86_64"
|
||||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
|
||||
DEBDIST=precise
|
||||
source Autobuild/debian.sh
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-_} --arch=i686"
|
||||
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
|
||||
DEBDIST=precise
|
||||
source Autobuild/debian.sh
|
||||
|
|
5
Makefile
5
Makefile
|
@ -232,9 +232,8 @@ distclean: clean
|
|||
rm -f ${CURDIR}/.config.mk
|
||||
|
||||
# Create buildversion.h
|
||||
src/version.c: $(BUILDDIR)/buildversion.h
|
||||
$(BUILDDIR)/buildversion.h: FORCE
|
||||
@$(CURDIR)/support/version.sh $(CURDIR) $@
|
||||
src/version.c: FORCE
|
||||
@$(CURDIR)/support/version $@ > /dev/null
|
||||
FORCE:
|
||||
|
||||
# Include dependency files if they exist.
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
#include "buildversion.h"
|
||||
#include "config.h"
|
||||
|
||||
const char *tvheadend_version = BUILD_VERSION;
|
25
support/changelog
Executable file
25
support/changelog
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Create the Tvheadend changelog
|
||||
#
|
||||
|
||||
# Arguments
|
||||
CHANGELOG=$1
|
||||
DIST=$2
|
||||
VER=$3
|
||||
|
||||
# Defaults
|
||||
[ -z "$DEBEMAIL" ] && DEBEMAIL="andreas@lonelycoder.com"
|
||||
[ -z "$DEBFULLNAME" ] && DEBFULLNAME="Andreas Öman"
|
||||
[ -z "$VER" ] && VER=$($(dirname $0)/version)
|
||||
[ ! -z "$DIST" ] && VER=${VER}~${DIST}
|
||||
[ -z "$DIST" ] && DIST=unstable
|
||||
|
||||
# Output
|
||||
NOW=$(date -R)
|
||||
echo >${CHANGELOG} "tvheadend (${VER}) ${DIST}; urgency=low"
|
||||
echo >>${CHANGELOG}
|
||||
echo >>${CHANGELOG} " * The full changelog can be found at "
|
||||
echo >>${CHANGELOG} " http://www.lonelycoder.com/tvheadend/download"
|
||||
echo >>${CHANGELOG}
|
||||
echo >>${CHANGELOG} " -- ${DEBFULLNAME} <${DEBEMAIL}> ${NOW}"
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
revision=`cd "$1" && git describe --dirty --abbrev=5 2>/dev/null | sed -e 's/-/./g'`
|
||||
|
||||
if ! test $revision; then
|
||||
test $revision || revision=`cd "$1" && git describe --abbrev=5 2>/dev/null | sed -e 's/-/./g'`
|
||||
fi
|
||||
|
||||
echo $revision
|
46
support/launchpad-ppa
Executable file
46
support/launchpad-ppa
Executable file
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Upload packages to launchpad. Note: you must configure dput for tvh-X
|
||||
# as target PPA, and you should also define DEBFULLNAME and DEBEMAIL
|
||||
# environment variables
|
||||
#
|
||||
|
||||
# Configuration
|
||||
TVH_ROOT=$(cd $(dirname $0)/..; pwd)
|
||||
TVH_DIST="lucid natty oneiric precise"
|
||||
TVH_ARCH="i386 amd64"
|
||||
|
||||
# Options
|
||||
[ ! -z "$1" ] && REL=$1 || REL=master
|
||||
[ ! -z "$2" ] && PPA=$2 || PPA=unstable
|
||||
|
||||
# Setup
|
||||
cd $TVH_ROOT || exit 1
|
||||
git checkout $1 && git checkout . || exit 1
|
||||
NOW=`date -R`
|
||||
CHANGELOG=$TVH_ROOT/debian/changelog
|
||||
VERFILE=$TVH_ROOT/src/version.c
|
||||
|
||||
# Create version file
|
||||
VER=$($TVH_ROOT/support/version $VERFILE)
|
||||
|
||||
# Fetch scan files
|
||||
./support/getmuxlist
|
||||
|
||||
# For each distro
|
||||
for d in $TVH_DIST; do
|
||||
V=${VER}~${d}
|
||||
echo $V
|
||||
|
||||
# Create changelog
|
||||
$TVH_ROOT/support/changelog "$CHANGELOG" "$d" "$VER"
|
||||
|
||||
# Build source package
|
||||
dpkg-buildpackage -I.git* -S -sgpg -pgpg || exit 1
|
||||
|
||||
# Upload
|
||||
dput tvh-$PPA ../tvheadend_${V}_source.changes || exit 1
|
||||
done
|
||||
|
||||
# Cleanup
|
||||
git checkout .
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
sh debian/createcopyright.sh >debian/copyright
|
||||
dpkg-buildpackage -rfakeroot -b -us -uc
|
||||
dh_clean
|
30
support/version
Executable file
30
support/version
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Update Tvheadend version file (if required)
|
||||
#
|
||||
|
||||
# Path to version file
|
||||
FILE=$1
|
||||
|
||||
# Calculate version
|
||||
VER=$(cd $(dirname $0); git describe --dirty 2> /dev/null | sed "s/-\([0-9]*\)-\(g[0-9a-f]*\)/.\1~\2/")
|
||||
|
||||
# Output
|
||||
if [ -z "$FILE" ]; then
|
||||
echo $VER
|
||||
exit
|
||||
fi
|
||||
|
||||
# Leave (probably ppa build)
|
||||
if [ -z "$VER" -a -s "$FILE" ]; then
|
||||
cat $FILE
|
||||
exit
|
||||
fi
|
||||
|
||||
# Update?
|
||||
NEW_VER="const char *tvheadend_version = \"$VER\";"
|
||||
OLD_VER=$(cat $FILE 2> /dev/null)
|
||||
if [ "$NEW_VER" != "$OLD_VER" ]; then
|
||||
echo $NEW_VER > $FILE
|
||||
fi
|
||||
echo $VER
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
revision=`$1/support/getver.sh`
|
||||
|
||||
NEW_REVISION="#define BUILD_VERSION \"$revision\""
|
||||
OLD_REVISION=`cat $2 2> /dev/null`
|
||||
|
||||
# Update version.h only on revision changes to avoid spurious rebuilds
|
||||
if test "$NEW_REVISION" != "$OLD_REVISION"; then
|
||||
echo "$NEW_REVISION" > "$2"
|
||||
fi
|
Loading…
Add table
Reference in a new issue