Code

Updated index.php to allow passwords with quotes.
[gosa.git] / gosa-core / contrib / make-gosa-package
index 3f04a3e61f0b5b0b56762fb49fc38b517f756482..297eb5920bc2e62a5fd6f753728caa1580c83d72 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This code is part of GOsa (http://www.gosa-project.org)
 # Copyright (C) 2008 GONICUS GmbH
 #
@@ -27,15 +27,16 @@ TARGET_RELEASE="etch"
 MAKE_PLUGINS=""
 MAKE_GOTO=""
 GOTO=""
-NOT_RELEASED="heimdal dak dfs glpi apache2 ssh"
-GOTO_NOT_RELEASED="apache-directory-studio goto-cd libresourcepool-net-ldap-perl-1.002 libresourcepool-perl-1.0104 openproj ptc syslinux" 
+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:
@@ -50,6 +51,7 @@ usage() {
          -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
          -g|--build-goto   Build the goto2 packages
+         -l|--use-pbuilder Use pbuilder to build the packages
          -h|--help         this help
 
        EOF
@@ -64,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:g::,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
@@ -91,6 +93,8 @@ while true; do
                         EXTRACT=$2; shift 2;;
                 -g|--build-goto)
                         GOTO="use"; shift 2;;
+                -l|--use-pbuilder)
+                        PBUILDER="use"; shift 2;;
                 -h|--help)
                        usage ;;
                 --)
@@ -107,11 +111,13 @@ then
        BRANCH_REV=$(LANG=C svn info gosa-info | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p')
        rm -rf gosa-info
 
-        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
-
+       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 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')
@@ -130,8 +136,19 @@ 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
@@ -218,8 +235,8 @@ then
 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"
@@ -233,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}"
@@ -242,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"
@@ -262,11 +283,31 @@ then
                 MAKE_GOTO=$(echo -n $MAKE_GOTO | sed "s/$i//")
         done
 
-       for goto in $MAKE_GOTO; do
-               mv "goto-${BNAME}/$goto" .
-       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
 
-       rm -rf goto-${BNAME}
+                       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..."
@@ -330,15 +371,28 @@ then
        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
@@ -346,9 +400,12 @@ 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"