summaryrefslogtreecommitdiffstats
path: root/fuel/build/patch-packages
diff options
context:
space:
mode:
authorJonas Bjurel <jonas.bjurel@ericsson.com>2015-03-02 22:46:45 +0100
committerJonas Bjurel <jonas.bjurel@ericsson.com>2015-03-09 23:00:13 +0100
commit6cb518c68eb136ad448e96716ef8b1348440949f (patch)
tree757551a8efdc4e85e19fc1b0f27555825580e5c9 /fuel/build/patch-packages
parent1e106bbaca2780c10bd02b4e5fa3702d36acdf39 (diff)
Starting point for ODL Integration
***CAN BE MERGED*** - ODL build and installation (puppet manifests) including needed dependencies - Modified in accordance with Randy Levensalors comments - Added chmod 4755 /bin/fusermount due to that lately some systems dont install fuseiso withe SUID set for fusermount. Investing ongoing on why and why not consistent. - Rebased with master - ODL disabled in top Make (enable it by uncommenting the odl dirs - Removed white spaces - Hopefully fixed an issue with the docker ubuntu repos, added --no-cache=true to the fuel/docker/Make file. TODO: - Refactor collecting ODL and Java dependencies to one common place - Refactoring top Makefile - Adding CI hooks for build and deploy - Finishing integration plumbing wit Neutron/ML2 and OVS/OVSDB Change-Id: I13dd4d3a72d099316dfaa9f7cd9140781be2397b Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
Diffstat (limited to 'fuel/build/patch-packages')
-rw-r--r--fuel/build/patch-packages/Makefile26
-rw-r--r--fuel/build/patch-packages/python-nova/Makefile29
-rw-r--r--fuel/build/patch-packages/python-nova/nova-console.patch28
-rwxr-xr-xfuel/build/patch-packages/tools/correct_deps78
-rwxr-xr-xfuel/build/patch-packages/tools/deb_pack63
-rwxr-xr-xfuel/build/patch-packages/tools/deb_unpack58
-rw-r--r--fuel/build/patch-packages/tr_example/Makefile30
7 files changed, 312 insertions, 0 deletions
diff --git a/fuel/build/patch-packages/Makefile b/fuel/build/patch-packages/Makefile
new file mode 100644
index 0000000..9eb22fe
--- /dev/null
+++ b/fuel/build/patch-packages/Makefile
@@ -0,0 +1,26 @@
+##############################################################################
+# 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
+##############################################################################
+
+SUBDIRS := python-nova
+SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
+
+.PHONY: $(SUBDIRS) $(SUBCLEAN) clean
+$(SUBDIRS):
+ @mkdir -p release/packages
+ ORIGISO=$(ORIGISO) REVSTATE=$(REVSTATE) $(MAKE) -C $@ -f Makefile release
+
+release: $(SUBDIRS)
+ @echo $(ORIGISO)
+
+clean: $(SUBCLEAN)
+ @rm -Rf release
+
+$(SUBCLEAN): %.clean:
+ $(MAKE) -C $* -f Makefile clean
diff --git a/fuel/build/patch-packages/python-nova/Makefile b/fuel/build/patch-packages/python-nova/Makefile
new file mode 100644
index 0000000..fbf5fb4
--- /dev/null
+++ b/fuel/build/patch-packages/python-nova/Makefile
@@ -0,0 +1,29 @@
+##############################################################################
+# 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
+##############################################################################
+
+TOP := $(shell pwd)
+
+.PHONY: all
+all:
+
+.PHONY: clean
+clean:
+ @rm -rf package
+ @rm -rf *.deb
+ @rm -rf patch-replacements
+ @rm -rf .package
+
+.PHONY: release
+release:
+ ../tools/deb_unpack python-nova_*.deb $(ORIGISO)
+ patch -s -p0 < nova-console.patch
+ ../tools/deb_pack $(REVSTATE)
+ @cp *.deb ../release/packages
+ @cat patch-replacements >> ../release/patch-replacements
diff --git a/fuel/build/patch-packages/python-nova/nova-console.patch b/fuel/build/patch-packages/python-nova/nova-console.patch
new file mode 100644
index 0000000..d5b3853
--- /dev/null
+++ b/fuel/build/patch-packages/python-nova/nova-console.patch
@@ -0,0 +1,28 @@
+*** package/usr/share/pyshared/nova/virt/libvirt/driver.py.orig 2015-02-16 14:19:53.203052869 +0100
+--- package/usr/share/pyshared/nova/virt/libvirt/driver.py 2015-02-16 14:22:53.065017671 +0100
+***************
+*** 3959,3968 ****
+ # client app is connected. Thus we can't get away
+ # with a single type=pty console. Instead we have
+ # to configure two separate consoles.
+! consolelog = vconfig.LibvirtConfigGuestSerial()
+! consolelog.type = "file"
+! consolelog.source_path = self._get_console_log_path(instance)
+! guest.add_device(consolelog)
+
+ consolepty = vconfig.LibvirtConfigGuestSerial()
+ else:
+--- 3959,3971 ----
+ # client app is connected. Thus we can't get away
+ # with a single type=pty console. Instead we have
+ # to configure two separate consoles.
+! # Disabled by OPNFV BEGIN
+! # consolelog = vconfig.LibvirtConfigGuestSerial()
+! # consolelog.type = "file"
+! # consolelog.source_path = self._get_console_log_path(instance)
+! # guest.add_device(consolelog)
+! pass
+! # Disabled by OPNFV END
+
+ consolepty = vconfig.LibvirtConfigGuestSerial()
+ else:
diff --git a/fuel/build/patch-packages/tools/correct_deps b/fuel/build/patch-packages/tools/correct_deps
new file mode 100755
index 0000000..cfb7d53
--- /dev/null
+++ b/fuel/build/patch-packages/tools/correct_deps
@@ -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
+
diff --git a/fuel/build/patch-packages/tools/deb_pack b/fuel/build/patch-packages/tools/deb_pack
new file mode 100755
index 0000000..f07a15d
--- /dev/null
+++ b/fuel/build/patch-packages/tools/deb_pack
@@ -0,0 +1,63 @@
+#!/bin/bash -e
+##############################################################################
+# 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
+##############################################################################
+
+
+my_exit() {
+
+ if [ -d "$ISOROOT" ]; then
+ fusermount -u $ISOROOT
+ fi
+}
+
+ME=$(basename $0)
+
+trap my_exit EXIT
+
+REV=$1
+if [ -z "$REV" ]; then
+ echo "$ME: Error - no revision info provided"
+ exit 1
+fi
+
+if [ ! -d package ]; then
+ echo "$ME: Error - package directory does not exist"
+ exit 1
+fi
+
+echo "Stepping revision number to $REV"
+
+
+revision_step ()
+{
+ REV=$1
+
+ sed -i "s/^\(Version:.*$\)/\1-eri$REV/" package/DEBIAN/control
+}
+
+md5sum_gen ()
+{
+ pushd package
+ find * -type f | grep -v "^DEBIAN/" | xargs md5sum | sort > DEBIAN/md5sums
+ popd
+}
+
+revision_step $REV
+md5sum_gen
+fakeroot dpkg-deb --build package
+PKGNAME=`grep "^Package: " package/DEBIAN/control | awk '{ print $2 }'`
+PKGREV=`grep "^Version: " package/DEBIAN/control | awk '{ print $2 }'`
+mv package.deb ${PKGNAME}_${PKGREV}.deb
+
+ORIGPKG=`cat .package`
+
+# Add patch into file read by install.sh
+echo "$ORIGPKG>${PKGNAME}_${PKGREV}.deb" > patch-replacements
+
diff --git a/fuel/build/patch-packages/tools/deb_unpack b/fuel/build/patch-packages/tools/deb_unpack
new file mode 100755
index 0000000..aaa60b7
--- /dev/null
+++ b/fuel/build/patch-packages/tools/deb_unpack
@@ -0,0 +1,58 @@
+#!/bin/bash -e
+##############################################################################
+# 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
+##############################################################################
+
+
+my_exit() {
+
+ if [ -d "$ISOROOT" ]; then
+ fusermount -u $ISOROOT
+ fi
+}
+
+ME=$(basename $0)
+
+trap my_exit EXIT
+
+
+if [ -z "$1" ]; then
+ echo "$ME: Error - No package specified"
+ exit 1
+fi
+
+if [ -z "$2" ]; then
+ echo "$ME: Error - No ISO path specified"
+ exit 1
+fi
+
+DEB=$1
+ORIGISO=$2
+DEST=package
+
+if [ -e $DEST -o -d $DEST ]; then
+ echo "$ME: Error - $DEST already exists"
+ exit 1
+fi
+
+ISOROOT=`mktemp -d /tmp/XXXXXXX`
+fuseiso -p $ORIGISO $ISOROOT
+sleep 1
+
+if [ ! -f $ISOROOT/ubuntu/pool/main/$DEB ];then
+ echo "Could not find package $DEB in source ISO!"
+fi
+
+mkdir -p $DEST
+dpkg -x $ISOROOT/ubuntu/pool/main/$DEB $DEST
+
+mkdir -p $DEST/DEBIAN
+dpkg -e $ISOROOT/ubuntu/pool/main/$DEB $DEST/DEBIAN
+
+echo $DEB > .package \ No newline at end of file
diff --git a/fuel/build/patch-packages/tr_example/Makefile b/fuel/build/patch-packages/tr_example/Makefile
new file mode 100644
index 0000000..b7cab35
--- /dev/null
+++ b/fuel/build/patch-packages/tr_example/Makefile
@@ -0,0 +1,30 @@
+##############################################################################
+# 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
+##############################################################################
+
+TOP := $(shell pwd)
+
+.PHONY: all
+all:
+
+.PHONY: clean
+clean:
+ @rm -rf package
+ @rm -rf *.deb
+ @rm -rf patch-replacements
+ @rm -rf .package
+
+.PHONY: release
+release:
+ ../tools/deb_unpack python-oslo.messaging_1.3.0-fuel5.1~mira4_all.deb $(ORIGISO)
+ @mkdir -p package/etc
+ @echo "Hello, world" > package/etc/hello.txt
+ ../tools/deb_pack $(REVSTATE)
+ @cp *.deb ../release/packages
+ @cat patch-replacements >> ../release/patch-replacements