X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Fcontrib%2Fmake-gosa-package;h=297eb5920bc2e62a5fd6f753728caa1580c83d72;hb=e488772123d2b0ee56ebd92c95880576f27aea62;hp=a813879f46e884dfd2b4f9855bdbd2844c804917;hpb=f611fb774f86a7019fbcc9a9b59ad6e6635dd46d;p=gosa.git diff --git a/gosa-core/contrib/make-gosa-package b/gosa-core/contrib/make-gosa-package index a813879f4..297eb5920 100755 --- a/gosa-core/contrib/make-gosa-package +++ b/gosa-core/contrib/make-gosa-package @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # This code is part of GOsa (http://www.gosa-project.org) # Copyright (C) 2008 GONICUS GmbH # @@ -25,14 +25,18 @@ SECTION="web" SI_SECTION="utils" TARGET_RELEASE="etch" MAKE_PLUGINS="" -NOT_RELEASED="heimdal dak dfs glpi apache2 ssh" +MAKE_GOTO="" +GOTO="" +PBUILDER="" +NOT_RELEASED="heimdal dak dfs glpi apache2" +GOTO_NOT_RELEASED="apache-directory-studio goto-cd libresourcepool-net-ldap-perl-1.002 libresourcepool-perl-1.0104 openproj ptc syslinux konch ldm openssh-4.3p2" DEBIAN_PKG="remove" NO_SVN="use" EXTRACT=`pwd` usage() { cat <<-EOF - GOsa Debian package build tool. Build snapshots from selected SVN locations. + GOsa Debian package build tool. Build snapshots from selected SVN locations or local directories. Usage: ${0##*/} [options] Options: @@ -45,7 +49,9 @@ usage() { -i|--si-section Debian section to place GOsa-SI in [$SI_SECTION] -d|--debian-pkg Don't clear up debian packages for plugins (for developers only) -n|--no-svn Don't extract gosa from svn (when internet connectivity is not present) - -x|--extract-dir Directory where the checkout is for no-svn + -x|--extract-dir Directory where the checkout is for no-svn + -g|--build-goto Build the goto2 packages + -l|--use-pbuilder Use pbuilder to build the packages -h|--help this help EOF @@ -60,7 +66,7 @@ for cmd in dh-make-gosa debchange dpkg-buildpackage dpkg-source svn; do done # Import command line parameters -PARMS=`getopt -o e::d::b:r:s:c:i:p:n:x:,h --long branch:,changelog:,plugins:,section:,si-section:,release:,help -n "${0##*/}" -- "$@"` +PARMS=`getopt -o e::d::b:r:s:c:i:p:n:x:g::l::,h --long branch:,changelog:,plugins:,section:,si-section:,release:,help -n "${0##*/}" -- "$@"` eval set -- "$PARMS" while true; do @@ -85,6 +91,10 @@ while true; do NO_SVN=""; shift 2;; -x|--extract-dir) EXTRACT=$2; shift 2;; + -g|--build-goto) + GOTO="use"; shift 2;; + -l|--use-pbuilder) + PBUILDER="use"; shift 2;; -h|--help) usage ;; --) @@ -96,13 +106,27 @@ done if [ "$NO_SVN" = "use" ] then - echo "Loading svn information for '${BRANCH}'..." + echo "Loading svn information for gosa '${BRANCH}'..." svn co -N https://oss.gonicus.de/repositories/gosa/${BRANCH} gosa-info/ > /dev/null BRANCH_REV=$(LANG=C svn info gosa-info | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p') rm -rf gosa-info + + if [ "$GOTO" = "use" ] + then + echo "Loading svn information for goto '${BRANCH}'..." + svn co -N https://oss.gonicus.de/repositories/goto/${BRANCH} goto-info/ > /dev/null + GOTO_BRANCH_REV=$(LANG=C svn info goto-info | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p') + rm -rf goto-info + fi else - echo "Loading svn information for '${BRANCH}' from local checkout ..." + echo "Loading svn information for gosa '${BRANCH}' from local checkout ..." BRANCH_REV=$(LANG=C svn info $EXTRACT/gosa-core | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p') + + if [ "$GOTO" = "use" ] + then + echo "Loading svn information for goto '${BRANCH}' from local checkout ..." + GOTO_BRANCH_REV=$(LANG=C svn info $EXTRACT/goto | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p') + fi fi if [ "$NO_SVN" = "use" ] @@ -112,9 +136,21 @@ then | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p') if [ "$BRANCH" == "trunk" ]; then GOSA_VER="${VERSION}+svn${BRANCH_REV}" + + if [ "$GOTO" = "use" ] + then + GOTO_VER="+svn${GOTO_BRANCH_REV}" + fi else GOSA_VER="${VERSION}" + + if [ "$GOTO" = "use" ] + then + GOTO_VER="" + fi + fi + else # Load current revision from logs VERSION=$(cat $EXTRACT/gosa-core/debian/changelog | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p') @@ -140,6 +176,12 @@ then svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-core gosa-${BNAME} > /dev/null svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-si gosa-si-${BNAME} > /dev/null svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-plugins gosa-plugins-${BNAME} > /dev/null + + if [ "$GOTO" = "use" ] + then + echo "Exporting current GOto (rev: ${GOTO_BRANCH_REV}) from '${BRANCH}'..." + svn export -r "${GOTO_BRANCH_REV}" https://oss.gonicus.de/repositories/goto/${BRANCH}/ goto-${BNAME} > /dev/null + fi else # Export from local checkout... echo "Exporting current GOsa (rev: ${BRANCH_REV}) from localcheckout '${BRANCH}'..." @@ -147,6 +189,13 @@ else cp -r gosa-core gosa-${GOSA_VER} mv gosa-si gosa-si-${GOSA_VER} mv gosa-plugins gosa-plugins-${BNAME} + + if [ "$GOTO" = "use" ] + then + echo "Exporting current GOto (rev: ${GOTO_BRANCH_REV}) from localcheckout '${BRANCH}'..." + BNAME=$(basename $BRANCH) + mv goto goto-${BNAME} + fi fi if [ "$NO_SVN" = "use" ] @@ -154,14 +203,9 @@ then VERSION=$(cat "gosa-${BNAME}/debian/changelog" | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p') fi -#if [ "$BRANCH" == "trunk" ]; then -# GOSA_VER="${VERSION}+svn${BRANCH_REV}" -#else -# GOSA_VER="${VERSION}" -#fi - GOSA_DIR="gosa-${GOSA_VER}" GOSA_SI_DIR="gosa-si-${GOSA_VER}" +GOTO_DIR="goto-${BNAME}" if [ "$NO_SVN" = "use" ] then @@ -180,9 +224,19 @@ then fi fi +echo "cleaning svn entries from sources" +find ${GOSA_DIR} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1 +find ${GOSA_SI_DIR} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1 +find gosa-plugins-${BNAME} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1 + +if [ "$GOTO" = "use" ] +then + find goto-${BNAME} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1 +fi + echo "Creating original sources 'gosa-${GOSA_VER}'..." -tar -c -f "gosa_${GOSA_VER}.orig.tar" "${GOSA_DIR}" -tar -c -f "gosa-si_${GOSA_VER}.orig.tar" "${GOSA_SI_DIR}" +tar -c --exclude "${GOSA_DIR}"/debian -f "gosa_${GOSA_VER}.orig.tar" "${GOSA_DIR}" +tar -c --exclude "${GOSA_SI_DIR}"/debian -f "gosa-si_${GOSA_VER}.orig.tar" "${GOSA_SI_DIR}" echo "Compressing sources..." gzip -f -9 "gosa_${GOSA_VER}.orig.tar" @@ -196,6 +250,10 @@ if [ -z "$MAKE_PLUGINS" ]; then done fi +if [ "TARGET_RELEASE" == "etch" ]; then + NOBREAKS="--no-break" +fi + for plugin in $MAKE_PLUGINS; do GOSA_PLUG_DIR="gosa-plugin-$plugin-${GOSA_VER}" @@ -205,11 +263,11 @@ for plugin in $MAKE_PLUGINS; do mv "gosa-plugins-${BNAME}/$plugin" . echo "Debianizing plugin $plugin" - yes | dh-make-gosa --section $SECTION $plugin + yes | dh-make-gosa $NOBREAKS --section $SECTION $plugin rm -rf "$plugin" echo "Packing original sources 'gosa-plugin-$plugin-${GOSA_VER}'..." - tar -c -f "gosa-plugin-${plugin}_${GOSA_VER}.orig.tar" "${GOSA_PLUG_DIR}" + tar -c --exclude "gosa-plugin-${plugin}-${GOSA_VER}/debian" -f "gosa-plugin-${plugin}_${GOSA_VER}.orig.tar" "${GOSA_PLUG_DIR}" echo "Compressing sources..." gzip -f -9 "gosa-plugin-${plugin}_${GOSA_VER}.orig.tar" @@ -217,6 +275,41 @@ done rm -rf gosa-plugins-${BNAME} +if [ "$GOTO" = "use" ] +then + MAKE_GOTO=$(ls -1 goto-${BNAME}/) + + for i in $GOTO_NOT_RELEASED; do + MAKE_GOTO=$(echo -n $MAKE_GOTO | sed "s/$i//") + done + + for goto in $MAKE_GOTO; do + + mv "goto-${BNAME}/$goto" . + + echo "Packing original sources '$goto'..." + GOTO_VERSION=$(cat $goto/debian/changelog | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p') + + if [ "$GOTO_VER" = "" ] + then + tar -c --exclude "$goto/debian" -f "${goto}_${GOTO_VERSION}.orig.tar" $goto + echo "Compressing sources..." + gzip -f -9 "${goto}_${GOTO_VERSION}.orig.tar" + else + tar -c --exclude "$goto/debian" -f "${goto}_${GOTO_VERSION}${GOTO_VER}.orig.tar" $goto + + echo "Compressing svn sources..." + gzip -f -9 "${goto}_${GOTO_VERSION}${GOTO_VER}.orig.tar" + + echo "Adapting version in $goto" + (cd "$goto"; echo | debchange -v "${GOTO_VERSION}${GOTO_VER}-1${TARGET_RELEASE}1" -D "$TARGET_RELEASE" "$RELEASE_REASON") + fi + + done + + rm -rf goto-${BNAME} +fi + echo "Deploying patches..." for patch in $(find patches -type f | grep -v .svn); do @@ -239,6 +332,14 @@ sed -i "s#^Section: utils#Section: $SI_SECTION#g" ${GOSA_SI_DIR}/debian/control for plugin in $MAKE_PLUGINS; do GOSA_PLUGIN_DIRS="$GOSA_PLUGIN_DIRS gosa-plugin-$plugin-${GOSA_VER}" done + +if [ "$GOTO" = "use" ] +then + for goto in $MAKE_GOTO; do + GOTO_DIRS="$GOTO_DIRS $goto" + done +fi + for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do echo "Adapting version in $dir" if [ "$TARGET_RELEASE" == "unstable" ]; then @@ -260,23 +361,62 @@ then for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do dpkg-source -b "$dir" done + + if [ "$GOTO" = "use" ] + then + echo "Creating GOto sources..." + for dir in $GOTO_DIRS; do + dpkg-source -b "$dir" + done + fi else echo "Creating debian packages..." + for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do + if [ "$PBUILDER" = "use" ] + then + echo "using pbuilder to build gosa gosa-si gosa-plugins" + (cd "$dir"; pdebuild --debbuildopts -sa; debsign) + else (cd "$dir"; dpkg-buildpackage -k$DEBSIGN_KEYID -rfakeroot -sa) + fi done + + if [ "$GOTO" = "use" ] + then + echo "Creating GOto debian packages..." + for dir in $GOTO_DIRS; do + if [ "$PBUILDER" = "use" ] + then + echo "using pbuilder to build goto debian packages" + (cd "$dir"; pdebuild --debbuildopts -sa; debsign -k$DEBSIGN_KEYID) + else + (cd "$dir"; dpkg-buildpackage -k$DEBSIGN_KEYID -rfakeroot -sa) + fi + done + fi fi echo "Removing gosa snapshot..." if [ -z "$DEBIAN_PKG" ] then - for dir in $GOSA_DIR; do - rm -rf "$dir" - done + if [ "$NO_SVN" = "use" ] + then + for dir in $GOSA_DIR; do + rm -rf "$dir" + done + fi else for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do rm -rf "$dir" done + + if [ "$GOTO" = "use" ] + then + for dir in $GOTO_DIRs; do + rm -rf "$dir" + done + fi fi