Starting point for ODL Integration
[genesis.git] / fuel / build / patch-packages / tools / correct_deps
diff --git a/fuel/build/patch-packages/tools/correct_deps b/fuel/build/patch-packages/tools/correct_deps
new file mode 100755 (executable)
index 0000000..cfb7d53
--- /dev/null
@@ -0,0 +1,78 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+patch_package () {
+    deb=$1
+    pkgdep=$2
+    newrev=$3
+
+
+    tmpdir=`mktemp -d /tmp/patchXXXXX`
+
+    cp $deb $tmpdir
+    pushd $tmpdir > /dev/null
+
+    mkdir -p repack
+    dpkg -x $deb repack
+
+    mkdir -p repack/DEBIAN
+    dpkg -e $deb repack/DEBIAN
+
+
+    pushd repack/DEBIAN > /dev/null
+
+    echo "Before: `cat control | grep '^Depends:'`"
+    sed -i "s/$pkgdep (\([^ ]*\) [^)]*)/$pkgdep (\1 $newrev)/"  control
+    echo "After: `cat control | grep '^Depends:'`"
+    popd > /dev/null
+
+    fakeroot dpkg-deb --build repack
+
+    popd > /dev/null
+
+    cp $tmpdir/repack.deb $deb
+    rm -Rf $tmpdir
+}
+
+# Name of package for which to check dependencies to
+PKGDEP=$1
+# The old revision of the package in question
+OLDREV=$2
+# The new revision of the package in question
+NEWREV=$3
+
+if [ -z "$PKGDEP" ]; then
+    echo "No package dependency name"
+    exit 1
+fi
+
+if [ -z "$OLDREV" ]; then
+    echo "No old rev"
+    exit 1
+fi
+
+if [ -z "$NEWREV" ]; then
+    echo "No new rev"
+    exit 1
+fi
+
+
+for deb in *.deb
+do
+    ar p $deb control.tar.gz | tar xzO ./control | grep -q "^Depends:.* ${PKGDEP} ([^ ]* ${OLDREV})"
+    if [ $? -eq 0 ]; then
+        name=`ar p $deb control.tar.gz | tar xzO ./control | grep "^Package:.* " | sed 's/.* //'`
+        echo "**** Changing dependencies line in $deb ($name) ****"
+        patch_package $deb $PKGDEP $NEWREV
+    fi
+done
+