added email parameter to ubuntu/debian packaging scripts

release/4.3a0
Bernd Pfrommer 2020-05-19 17:28:11 -04:00
parent a76c0a20ee
commit ab4569457d
4 changed files with 113 additions and 14 deletions

View File

@ -1,14 +1,44 @@
# How to build Debian and Ubuntu Packages
# How to generate Debian packages
## Preparations
Packages must be signed with a GPG key. First have a look of the keys
you have available:
gpg --list-secret-keys
If you don't have one, create one, then list again.
Pick a secret key you like from the listed keys, for instance
"Your Name <your.email@yourprovider.com>". Then unlock that key by
signing a dummy file. The following line should pop up a window to
enter the passphrase:
echo | gpg --local-user "Your Name <your.email@yourprovider.com>" -s >/dev/null
Now you can run the below scripts. Without this step they will fail
with "No secret key" or similar messages.
## How to generate a Debian package
Run the package script, providing a name/email that matches your PGP key.
cd [GTSAM_SOURCE_ROOT]
bash package_scripts/prepare_debian.sh
bash package_scripts/prepare_debian.sh -e "Your Name <your.email@yourprovider.com>"
# How to generate Ubuntu packages for a PPA
## How to generate Ubuntu packages for a PPA
Run the packaging script, passing the name of the gpg key
(see above) with the "-e" option:
cd [GTSAM_SOURCE_ROOT]
bash package_scripts/prepare_ubuntu_pkgs_for_ppa.sh
bash package_scripts/prepare_ubuntu_pkgs_for_ppa.sh -e "Your Name <your.email@yourprovider.com>"
Check that you have uploaded this key to the ubuntu key server, and
have added the key to your account.
Upload the package to your ppa:
cd ~/gtsam_ubuntu
bash [GTSAM_SOURCE_ROOT]/upload_all_gtsam_ppa.sh
bash [GTSAM_SOURCE_ROOT]/package_scripts/upload_all_gtsam_ppa.sh -p "ppa:your-name/ppa-name"

View File

@ -10,7 +10,7 @@ APPEND_SNAPSHOT_NUM=0
IS_FOR_UBUNTU=0
APPEND_LINUX_DISTRO=""
VALUE_EXTRA_CMAKE_PARAMS=""
while getopts "sud:c:" OPTION
while getopts "sud:c:e:" OPTION
do
case $OPTION in
s)
@ -25,6 +25,9 @@ do
c)
VALUE_EXTRA_CMAKE_PARAMS=$OPTARG
;;
e)
PACKAGER_EMAIL=$OPTARG
;;
?)
echo "Unknown command line argument!"
exit 1
@ -32,6 +35,11 @@ do
esac
done
if [ -z ${PACKAGER_EMAIL+x} ]; then
echo "must specify packager email via -e option!"
exit -1
fi
if [ -f CMakeLists.txt ];
then
source package_scripts/prepare_debian_gen_snapshot_version.sh
@ -162,7 +170,7 @@ fi
echo "Adding a new entry to debian/changelog..."
DEBEMAIL="Jose Luis Blanco Claraco <joseluisblancoc@gmail.com>" debchange $DEBCHANGE_CMD -b --distribution unstable --force-distribution New version of upstream sources.
DEBEMAIL=${PACKAGER_EMAIL} debchange $DEBCHANGE_CMD -b --distribution unstable --force-distribution New version of upstream sources.
echo "Copying back the new changelog to a temporary file in: ${GTSAM_EXTERN_DEBIAN_DIR}changelog.new"
cp debian/changelog ${GTSAM_EXTERN_DEBIAN_DIR}changelog.new

View File

@ -1,16 +1,50 @@
#!/bin/bash
# Creates a set of packages for each different Ubuntu distribution, with the
# intention of uploading them to:
# https://launchpad.net/~joseluisblancoc/
# intention of uploading them to a PPA on launchpad
#
# JLBC, 2010
# [Addition 2012:]
#
# You can declare a variable (in the caller shell) with extra flags for the
# CMake in the final ./configure like:
#
# GTSAM_PKG_CUSTOM_CMAKE_PARAMS="\"-DDISABLE_SSE3=ON\""
#
function show_help {
echo "USAGE:"
echo ""
echo "- to display this help: "
echo "prepare_ubuntu_packages_for_ppa.sh -h or -?"
echo ""
echo "- to package to your PPA: "
echo "prepare_ubuntu_packages_for_ppa.sh -e email_of_your_gpg_key"
echo ""
echo "to pass custom config for GTSAM, set the following"
echo "environment variable beforehand: "
echo ""
echo "GTSAM_PKG_CUSTOM_CMAKE_PARAMS=\"\"-DDISABLE_SSE3=ON\"\""
echo ""
}
while getopts "h?e:" opt; do
case "$opt" in
h|\?)
show_help
exit 0
;;
e) PACKAGER_EMAIL=$OPTARG
;;
esac
done
if [ -z ${PACKAGER_EMAIL+x} ]; then
show_help
exit -1
fi
set -e
# List of distributions to create PPA packages for:
@ -35,7 +69,6 @@ if [ -z "${GTSAM_DEB_DIR}" ]; then
export GTSAM_DEB_DIR="$HOME/gtsam_debian"
fi
GTSAM_EXTERN_DEBIAN_DIR="$GTSAMSRC/debian/"
EMAIL4DEB="Jose Luis Blanco (University of Malaga) <joseluisblancoc@gmail.com>"
# Clean out dirs:
rm -fr $gtsam_ubuntu_OUT_DIR/
@ -56,7 +89,7 @@ do
# Call the standard "prepare_debian.sh" script:
# -------------------------------------------------------------------
cd ${GTSAMSRC}
bash package_scripts/prepare_debian.sh -s -u -d ${DEBIAN_DIST} -c "${GTSAM_PKG_CUSTOM_CMAKE_PARAMS}"
bash package_scripts/prepare_debian.sh -e "$PACKAGER_EMAIL" -s -u -d ${DEBIAN_DIST} -c "${GTSAM_PKG_CUSTOM_CMAKE_PARAMS}"
CUR_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $CUR_SCRIPT_DIR/prepare_debian_gen_snapshot_version.sh # populate GTSAM_SNAPSHOT_VERSION
@ -68,7 +101,7 @@ do
DEBCHANGE_CMD="--newversion ${GTSAM_VERSION_STR}~snapshot${GTSAM_SNAPSHOT_VERSION}${DEBIAN_DIST}-1"
echo "Changing to a new Debian version: ${DEBCHANGE_CMD}"
echo "Adding a new entry to debian/changelog for distribution ${DEBIAN_DIST}"
DEBEMAIL="Jose Luis Blanco Claraco <joseluisblancoc@gmail.com>" debchange $DEBCHANGE_CMD -b --distribution ${DEBIAN_DIST} --force-distribution New version of upstream sources.
DEBEMAIL="${PACKAGER_EMAIL}" debchange $DEBCHANGE_CMD -b --distribution ${DEBIAN_DIST} --force-distribution New version of upstream sources.
cp changelog /tmp/my_changelog

View File

@ -1,3 +1,31 @@
#!/bin/bash
find . -name '*.changes' | xargs -I FIL dput ppa:joseluisblancoc/gtsam-develop FIL
function show_help {
echo "USAGE:"
echo ""
echo "- to display this help: "
echo "upload_all_gtsam_ppa.sh -h or -?"
echo ""
echo "- to upload to your PPA: "
echo "upload_all_gtsam_ppa.sh -p ppa:your_name/name_of_ppa"
echo ""
}
while getopts "h?p:" opt; do
case "$opt" in
h|\?)
show_help
exit 0
;;
p) ppa_name=$OPTARG
;;
esac
done
if [ -z ${ppa_name+x} ]; then
show_help
exit -1
fi
find . -name '*.changes' | xargs -I FIL dput ${ppa_name} FIL