Code

- Corrected make-gosa-package to enable the use of -b tags/2.6.4
[gosa.git] / gosa-core / contrib / make-gosa-package
index 6be6af3a6e2f7f2fcc45fa965de067c4e1df645e..4061a6630ae83ca07aa2cbe977671be5eeba7883 100755 (executable)
@@ -25,6 +25,7 @@ SECTION="web"
 SI_SECTION="utils"
 TARGET_RELEASE="etch"
 MAKE_PLUGINS=""
+NOT_RELEASED="heimdal dak dfs glpi opsi apache2 ssh"
 
 usage() {
        cat <<-EOF
@@ -38,19 +39,22 @@ usage() {
          -c|--changelog   Debian changelog entry [$RELEASE_REASON]
          -s|--section     Debian section to place GOsa in [$SECTION]
          -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)
          -h|--help        this help
 
        EOF
        exit 1
 }
 
-if ! which dh-make-gosa &> /dev/null; then
-       echo "Error: cannot find dh-make-gosa binary in path!";
-       exit 1
-fi
+for cmd in dh-make-gosa debchange dpkg-buildpackage dpkg-source svn; do
+  if ! which $cmd >/dev/null; then
+       echo "Error: cannot find '$cmd' command in path!";
+       exit 1
+  fi
+done
 
 # Import command line parameters
-PARMS=`getopt -o brscip:,h --long branch,changelog,plugins,section,si-section,release:,help -n "${0##*/}" -- "$@"`
+PARMS=`getopt -o d::b:r:s:c:i:p:,h --long branch:,changelog:,plugins:,section:,si-section:,release:,help -n "${0##*/}" -- "$@"`
 eval set -- "$PARMS"
 
 while true; do
@@ -67,6 +71,8 @@ while true; do
                        SECTION=$2; shift 2 ;;
                 -i|--si-section)
                        SI_SECTION=$2; shift 2 ;;
+                -d|--debian-pkg)
+                        DEBIAN_PKG=$2; shift 2 ;;
                 -h|--help)
                        usage ;;
                 --)
@@ -76,7 +82,6 @@ while true; do
         esac
 done
 
-[ $BRANCH = "trunk" ] || BRANCH="branches/$BRANCH"
 echo "Loading svn information for '${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')
@@ -85,59 +90,71 @@ rm -rf gosa-info
 # Load current revision from logs
 VERSION=$(svn cat -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-core/debian/changelog \
        | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
-GOSA_VER="${VERSION}+svn${BRANCH_REV}"
+if [ "$BRANCH" == "trunk" ]; then
+       GOSA_VER="${VERSION}+svn${BRANCH_REV}"
+else
+       GOSA_VER="${VERSION}"
+fi
 GOSA_DIR="gosa-${GOSA_VER}"
 
 ORIG_FILE="gosa_${GOSA_VER}.orig.tar.gz"
 
 # Export from svn...
-[ -d "gosa-${BRANCH}" ] && rm -rf gosa-$BRANCH
+BNAME=$(basename $BRANCH)
+[ -d "gosa-${BNAME}" ] && rm -rf gosa-$BNAME
 echo "Exporting current GOsa (rev: ${BRANCH_REV}) from '${BRANCH}'..."
-svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-core gosa-${BRANCH} > /dev/null
-svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-si gosa-si-${BRANCH} > /dev/null
-svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-plugins gosa-plugins-${BRANCH} > /dev/null
+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
 
-VERSION=$(cat "gosa-${BRANCH}/debian/changelog" | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
-GOSA_VER="${VERSION}+svn${BRANCH_REV}"
+VERSION=$(cat "gosa-${BNAME}/debian/changelog" | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
+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}"
 
-if [ -d "gosa-${GOSA_VER}" ]
+if [ "$BNAME" != "$GOSA_VER" ]
 then
        rm -rf "gosa-${GOSA_VER}"
 fi
-mv "gosa-${BRANCH}" "gosa-${GOSA_VER}"
-mv "gosa-si-${BRANCH}" "gosa-si-${GOSA_VER}"
+mv "gosa-${BNAME}" "gosa-${GOSA_VER}"
+mv "gosa-si-${BNAME}" "gosa-si-${GOSA_VER}"
 
 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}"
 
 echo "Compressing sources..."
-gzip -9 "gosa_${GOSA_VER}.orig.tar"
-gzip -9 "gosa-si_${GOSA_VER}.orig.tar"
+gzip -f -9 "gosa_${GOSA_VER}.orig.tar"
+gzip -f -9 "gosa-si_${GOSA_VER}.orig.tar"
 
 export OVERRIDE_VERSION="$GOSA_VER"
 if [ -z "$MAKE_PLUGINS" ]; then
-       MAKE_PLUGINS=$(ls -1 gosa-plugins-${BRANCH}/*/plugin.dsc | sed 's/^.*\/\([^\/]*\)\/plugin.dsc$/\1/')
+       MAKE_PLUGINS=$(ls -1 gosa-plugins-${BNAME}/*/plugin.dsc | sed 's/^.*\/\([^\/]*\)\/plugin.dsc$/\1/')
+       for i in $NOT_RELEASED; do
+               MAKE_PLUGINS=$(echo -n $MAKE_PLUGINS | sed "s/$i//")
+       done
 fi
 for plugin in $MAKE_PLUGINS; do
 
        GOSA_PLUG_DIR="gosa-plugin-$plugin-${GOSA_VER}"
-       mv "gosa-plugins-${BRANCH}/$plugin" .
+       mv "gosa-plugins-${BNAME}/$plugin" .
 
        echo "Debianizing plugin $plugin"
-       yes | dh-make-gosa --section web $plugin
+       yes | dh-make-gosa --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}"
 
        echo "Compressing sources..."
-       gzip -9 "gosa-plugin-${plugin}_${GOSA_VER}.orig.tar"
+       gzip -f -9 "gosa-plugin-${plugin}_${GOSA_VER}.orig.tar"
 done
 
-rm -rf gosa-plugins-${BRANCH}
+rm -rf gosa-plugins-${BNAME}
 
 echo "Deploying patches..."
 for patch in $(find patches -type f | grep -v .svn); do
@@ -163,7 +180,11 @@ for plugin in $MAKE_PLUGINS; do
 done
 for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do
        echo "Adapting version in $dir"
-       (cd "$dir"; echo | debchange -v "${GOSA_VER}-1${TARGET_RELEASE}1" -D "$TARGET_RELEASE" "$RELEASE_REASON" &> /dev/null)
+       if [ "$TARGET_RELEASE" == "unstable" ]; then
+               (cd "$dir"; echo | debchange -v "${GOSA_VER}" "$RELEASE_REASON" >/dev/null 2>&1)
+       else
+               (cd "$dir"; echo | debchange -v "${GOSA_VER}-1${TARGET_RELEASE}1" -D "$TARGET_RELEASE" "$RELEASE_REASON" >/dev/null 2>&1)
+       fi
        [ -d $dir/debian/patches ] || continue
        echo "Creating patch list for $dir"
        ls -1 $dir/debian/patches | grep -v 00list | sed 's%^.*/%%g' > $dir/debian/patches/00list
@@ -186,7 +207,15 @@ else
 fi
 
 echo "Removing gosa snapshot..."
-for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do
+if [ -z "$DEBIAN_PKG" ]
+then
+       for dir in $GOSA_DIR; do
+        rm -rf "$dir"
+       done
+else
+       for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do
        rm -rf "$dir"
-done
+       done
+fi
+