diff options
author | Michał Łyszczek <michal.lyszczek@bofc.pl> | 2018-10-23 23:59:17 +0200 |
---|---|---|
committer | Michał Łyszczek <michal.lyszczek@bofc.pl> | 2018-10-23 23:59:28 +0200 |
commit | 68d77c05753655983ca2e88b86336516c26ea085 (patch) | |
tree | 98dc3c07efd28012b4987797c467e39f3b8f1a1c | |
parent | 366a8e05f750151445a61a57af1df8a7d6146ad8 (diff) | |
download | librb-68d77c05753655983ca2e88b86336516c26ea085.tar.gz librb-68d77c05753655983ca2e88b86336516c26ea085.tar.bz2 librb-68d77c05753655983ca2e88b86336516c26ea085.zip |
add: script to build deb packages
no_buildbot
-rwxr-xr-x | pkg/debian/create-pkg.sh | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/pkg/debian/create-pkg.sh b/pkg/debian/create-pkg.sh new file mode 100755 index 0000000..11b356c --- /dev/null +++ b/pkg/debian/create-pkg.sh @@ -0,0 +1,101 @@ +#!/bin/sh + +scp_server="pkgs@kurwik" +project="librb" + +if [ ${#} -ne 3 ] +then + echo "usage: ${0} <version> <arch> <host_os>" + echo "" + echo "where:" + echo " <version> git tag version to build (without prefix v)" + echo " <arch> target architecture" + echo " <host_os> target os (debian9, debian8 etc)" + echo "" + echo "example" + echo " ${0} 1.0.0 i386 debian9" + exit 1 +fi + +version="${1}" +arch="${2}" +host_os="${3}" + +### +# preparing +# + +rm -rf "/tmp/${project}-${version}" +mkdir "/tmp/${project}-${version}" + +cd "/tmp/${project}-${version}" +git clone "https://git.kurwinet.pl/${project}" +cd "${project}" + +git checkout "${version}" || exit 1 + +if [ ! -d "pkg/debian9" ] +then + echo "pkg/debian9 does not exist, cannot create debian 9 pkg" + exit 1 +fi + +version="$(grep "AC_INIT(" "configure.ac" | cut -f3 -d\[ | cut -f1 -d\])" +abi_version="$(echo ${version} | cut -f1 -d.)" + +echo "version ${version}" +echo "abi version ${abi_version}" + +### +# building package +# + +cp -r "pkg/debian9/" "debian" +sed -i "s/\${DATE}/$(date -R)/" "debian/changelog.template" +sed -i "s/\${VERSION}/${version}/" "debian/changelog.template" +sed -i "s/\${ABI_VERSION}/${abi_version}/" "debian/control.template" + +mv "debian/changelog.template" "debian/changelog" +mv "debian/control.template" "debian/control" + +debuild -us -uc || exit 1 + +### +# verifying +# + +cd .. + +# debuild doesn't fail when lintial finds an error, so we need +# to check it manually, it doesn't take much time, so whatever + +for d in *.deb +do + echo "Running lintian on ${d}" + lintian ${d} || exit 1 +done + +dpkg -i "${project}${abi_version}_${version}_${arch}.deb" || exit 1 +dpkg -i "${project}-dev_${version}_${arch}.deb" || exit 1 + +failed=0 +gcc ${project}/pkg/test.c -o testprog -lrb || failed=1 +./testprog || failed=1 + +dpkg -r "${project}${abi_version}" "${project}-dev" || exit 1 + +if [ -n "${scp_server}" ] +then + echo "copying data to ${scp_server}:${project}/${host_os}/${arch}" + scp "${project}-dev_${version}_${arch}.deb" \ + "${project}${abi_version}-dbgsym_${version}_${arch}.deb" \ + "${project}${abi_version}_${version}_${arch}.deb" \ + "${project}_${version}.dsc" \ + "${project}_${version}.tar.xz" \ + "${project}_${version}_${arch}.build" \ + "${project}_${version}_${arch}.buildinfo" \ + "${project}_${version}_${arch}.changes" \ + "${scp_server}:${project}/${host_os}/${arch}" || exit 1 +fi + +exit ${failed} |