-
Martin Killenberg authored
undid the changes to use pbuilder in make_debian_package.sh. This conceptualluy does not work and will completely be changed in future.
Martin Killenberg authoredundid the changes to use pbuilder in make_debian_package.sh. This conceptualluy does not work and will completely be changed in future.
make_debian_package.sh.in 3.58 KiB
#!/bin/bash
# Shell script to generate a debian package from a particular tag (configured during the cmake configuration).
#######################################################################################################################
#
# IMPORTANT NOTE:
#
# DO NOT MODIFY THIS FILE inside a project. Instead update the project-template repository and pull the change from
# there. Make sure to keep the file generic, since it will be used by other projects, too.
#
# If you have modified this file inside a project despite this warning, make sure to cherry-pick all your changes
# into the project-template repository immediately.
#
#######################################################################################################################
# This cmake.in file requires the following variables to be set:
# PACKAGE_BUILDVERSION_ENVIRONMENT_VARIABLE_NAME Environment variable which contains the build version.
# Must not contain any hyphens.
# PACKAGE_BASE_NAME This is the debian package name, not the project name (e.g. libraries must start with lib,
# all lover case, no underscore)
# PACKAGE_FULL_LIBRARY_VERSION The full version, incl. build version and patch version
# PACKAGE_GIT_URI The URI where to check out the source code
# PACKAGE_TAG_VERSION The tag for which the package is build
# PACKAGE_MESSAGE The message for the debian package log
#Check that the @PACKAGE_BUILDVERSION_ENVIRONMENT_VARIABLE_NAME@ variable is set, otherwise reject creating a package
if [ -z "$@PACKAGE_BUILDVERSION_ENVIRONMENT_VARIABLE_NAME@" ]; then
echo Environment variable '@PACKAGE_BUILDVERSION_ENVIRONMENT_VARIABLE_NAME@' not set or empty. You need it to make a debian package!
exit 1
fi
#drop out of the script if anything goes wrong (e.g. non-existen git tag)
set -e
#Create a working directory in order not to merge with the rest in the build directory
rm -rf debian_package
mkdir debian_package
cd debian_package
#Check out the correct tag from the master git repository.
#The local directory name has to follow the debian convention
# lowecasepackagenname_package.ver.sion
#Note, we first clone and then checkout the tag because the old git version on
#Ubuntu12.4 does not support to do it in one go.
BUILD_DIR_NAME=@PACKAGE_BASE_NAME@_@PACKAGE_FULL_LIBRARY_VERSION@
git clone @CMAKE_SOURCE_DIR@ ${BUILD_DIR_NAME}
( cd ${BUILD_DIR_NAME} &&\
git checkout @PACKAGE_TAG_VERSION@ &&\
rm -rf .git )
#Debian convention: file has to end on .orig.tar.gz
tar -czf ${BUILD_DIR_NAME}.orig.tar.gz ${BUILD_DIR_NAME}
#Copy the prepared debian packaging config files to the source code
#directroy
cp -r ../debian_from_template ${BUILD_DIR_NAME}/debian
cd ${BUILD_DIR_NAME}
#The package versions for doocs / Ubuntu contain the codename of the distribution. Get it from the system.
CODENAME=`lsb_release -c | sed "{s/Codename:\s*//}"`
#Before building the package we will update the changelog. This is easier from a shell script
#because debchange does the right format and the current date, user name and email automatically for us.
#Use the NAME and EMAIL environment variables to get correct values if needed (usually the email is
# user@host instead of first.last@institute, for instance killenb@mskpcx18571.desy.de instead of martin.killenberg@desy.de).
debchange --create --package @PACKAGE_BASE_NAME@ -v @PACKAGE_FULL_LIBRARY_VERSION@-${@PACKAGE_BUILDVERSION_ENVIRONMENT_VARIABLE_NAME@} --distribution ${CODENAME} @PACKAGE_MESSAGE@
#Now everything is prepared and we can actually build the package.
#If you have a gpg signature you can remove the -us and -uc flags and sign the package.
dpkg-buildpackage -rfakeroot -us -uc