new RIFT.ware installation script 45/245/1
authorJeremy Mordkoff <jeremy.mordkoff@riftio.com>
Fri, 15 Jul 2016 19:43:01 +0000 (15:43 -0400)
committerJeremy Mordkoff <jeremy.mordkoff@riftio.com>
Fri, 15 Jul 2016 19:43:01 +0000 (15:43 -0400)
Signed-off-by: Jeremy Mordkoff <jeremy.mordkoff@riftio.com>
32 files changed:
.gitignore
scripts/util/TEST_OSM [new file with mode: 0644]
scripts/util/host-platform [new file with mode: 0755]
scripts/util/riftware_install.sh [new file with mode: 0644]
scripts/vm_image/README [new file with mode: 0644]
scripts/vm_image/base.config.sh
scripts/vm_image/base.rpms
scripts/vm_image/base.setup.sh [new file with mode: 0644]
scripts/vm_image/build.config.sh
scripts/vm_image/build.depends
scripts/vm_image/build.rpms
scripts/vm_image/ext.rpms [new file with mode: 0644]
scripts/vm_image/mkcontainer [new symlink]
scripts/vm_image/mkvmimg
scripts/vm_image/package.depends [new file with mode: 0644]
scripts/vm_image/package.rpms [new file with mode: 0644]
scripts/vm_image/riftware-mirrors.repo [new file with mode: 0644]
scripts/vm_image/riftware-release.repo [deleted file]
scripts/vm_image/riftware.repo [new file with mode: 0644]
scripts/vm_image/scripts/build_rift_build [new file with mode: 0644]
scripts/vm_image/scripts/build_rift_container [new file with mode: 0644]
scripts/vm_image/scripts/build_rift_runtime [new file with mode: 0644]
scripts/vm_image/scripts/init_build_container_osm [new file with mode: 0644]
scripts/vm_image/scripts/init_container [new file with mode: 0644]
scripts/vm_image/scripts/init_container_osm [new file with mode: 0644]
scripts/vm_image/ui-lab.config.sh
scripts/vm_image/ui.config.sh
scripts/vm_image/ui.pip3
scripts/vm_image/ui.rpms
scripts/vm_image/vnf.config.sh
scripts/vm_image/vnf.pip3
scripts/vm_image/vnf.rpms

index f3986a4..0498279 100644 (file)
@@ -35,7 +35,6 @@ scripts/rift-scripts.sh.in
 scripts/rpm/
 scripts/system
 scripts/test/
-scripts/util/
 scripts/packaging/
 .gitmodules.deps.orig
 .gitmodules.orig
diff --git a/scripts/util/TEST_OSM b/scripts/util/TEST_OSM
new file mode 100644 (file)
index 0000000..42913ec
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+
+CONTAINER=${1:-osm}
+
+if [ ! -f riftware_install.sh ]; then
+    wget -O riftware_install.sh i'https://osm.etsi.org/gitweb/?p=osm/riftware.git;a=blob_plain;f=scripts/util/riftware_install.sh;hb=HEAD'
+    echo -e '\n\n please review riftware_install.sh and then run this script again\n\n'
+    exit 0
+fi
+    
+
+echo -e '\n\n using container name $CONTAINER \n\n'
+lxc launch fc20 $CONTAINER
+
+
+lxc file push riftware_install.sh ${CONTAINER}/root/
+while ! lxc exec ${CONTAINER} ifconfig eth0 | grep -q 'inet '; do
+    echo waiting for network
+    sleep 1
+done
+lxc exec ${CONTAINER} ifconfig eth0
+sleep 1
+lxc exec ${CONTAINER} -- bash -xe /root/riftware_install.sh
+
+ADDRESS=$(lxc exec ${CONTAINER} ifconfig eth0 | awk '/inet / { print $2 }')
+echo "installation complete. Open a browser on https://${ADDRESS}:8443"
diff --git a/scripts/util/host-platform b/scripts/util/host-platform
new file mode 100755 (executable)
index 0000000..862b2b1
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# Find the platform and return a short name
+
+PLATFORM=$(python -mplatform)
+if [[ ! $PLATFORM ]]; then
+    echo "Cannot find platform using python -mplatform" >&2
+    exit 1
+fi
+
+case $PLATFORM in
+    *Ubuntu-16.04*) echo ub16; exit;;
+    *fedora-20*)    echo fc20; exit;;
+    *fedora-23*)    echo fc23; exit;;
+    *) echo "Unknown platform: $PLATFORM" >&2 ; exit 1;;
+esac
diff --git a/scripts/util/riftware_install.sh b/scripts/util/riftware_install.sh
new file mode 100644 (file)
index 0000000..560d4c9
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+
+
+#REPO_URL=jmordkof@jeremy-pc:/home/jmordkof/workspace/osm/riftware
+REPO_URL=https://osm.etsi.org/gerrit/osm/riftware.git
+USE_RIFT_MIRRORS=true
+
+set -e
+echo -e '\n\n=========== Installing base packages ========\n\n'
+yum install -y git curl python3 screen which wget
+
+echo -e '\n\n=========== Cloning RIFT.ware ========\n\n'
+if [ -e riftware ]; then
+    cd riftware 
+    git pull
+else
+    git clone $REPO_URL riftware
+    cd riftware
+fi
+
+echo -e '\n\n=========== Setting up YUM repositories ========\n\n'
+if $USE_RIFT_MIRRORS; then
+    rm -f /etc/yum.repos.d/*
+    cp scripts/vm_image/riftware-mirrors.repo /etc/yum.repos.d/
+fi
+cp scripts/vm_image/riftware.repo /etc/yum.repos.d/
+yum clean all
+yum makecache
+
+echo -e '\n\n=========== Installing prerequisites ========\n\n'
+./rift-shell -r -e -- ./scripts/vm_image/mkcontainer --no-repo-file --modes ui  
+
+echo -e '\n\n=========== Installing RIFT.ware Launchpad ========\n\n'
+yum install -y riftware-launchpad
+echo -e '\n\n=========== Starting RIFT.ware Launchpad ========\n\n'
+systemctl start rwlp 
+
+
+
+
+
+
+
+
+
diff --git a/scripts/vm_image/README b/scripts/vm_image/README
new file mode 100644 (file)
index 0000000..0ea2fe8
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+vm_image scripts
+
+LXC instructions
+as of this writing, this code is only in branch lezz-mkvmimg
+
+create a fc20 image. Default name is fc20
+    wget http://repo.riftio.com/releases/open.riftio.com/OSM/fc20.tar
+    lxc image import fc20.tar --alias fc20
+
+extract two files from git
+   ./scripts/vm_image/scripts/init_container
+   ./scripts/vm_image/scripts/build_rift_runtime
+
+execute build_rift_runtime
+   bash ./build_rift_runtime
+
+
+
+
+
index 892648e..2515b4f 100644 (file)
@@ -1,23 +1,8 @@
-#
-#    Copyright 2016 RIFT.IO Inc
-#
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
 echo "export LC_ALL=en_US.UTF-8" >>$STAGING/etc/environment
 if [ -e ${STAGING}/etc/selinux/config ]; then
     sed -i 's,^\(SELINUX=\).*,\1permissive,' ${STAGING}/etc/selinux/config || die "sed failed"
 fi
-cp $RIFTROOT/scripts/setup/skel/etc/sysctl.d/riftware.conf $STAGING/etc/sysctl.d/
+cp $RIFT_ROOT/scripts/setup/skel/etc/sysctl.d/riftware.conf $STAGING/etc/sysctl.d/
 
 cat >> ${STAGING}/etc/security/limits.d/90-rift.conf <<EOF
 # RiftIO cranked fd limits
@@ -28,4 +13,11 @@ cat >> ${STAGING}/etc/security/limits.d/90-rift.conf <<EOF
 *   soft    core    unlimited
 EOF
 
-cmd setcap cap_net_raw+ep `which ping`
\ No newline at end of file
+if ! $CONTAINER; then
+       cmd setcap cap_net_raw+ep `which ping`
+fi
+
+if [[ $PLATFORM_OS == 'Ubuntu-16.04' ]]; then
+    cmd pip install --upgrade pip
+    cmd $PIP3_INSTALLER install --upgrade pip
+fi
index 5332ee6..d24e87d 100644 (file)
@@ -1,2 +1,9 @@
 deltarpm
+ub16: emacs
 gdb
+ub16: python3-pip
+ub16: python-pip
+ub16: pkgconf
+ub16: nodejs
+ub16: language-pack-en
+ub16: sudo
diff --git a/scripts/vm_image/base.setup.sh b/scripts/vm_image/base.setup.sh
new file mode 100644 (file)
index 0000000..cd6d485
--- /dev/null
@@ -0,0 +1,4 @@
+# Install enum34 if we are at python 3.4 or earlier
+if python3 -c 'import sys;assert sys.version_info < (3,5)'; then
+    cmd $PIP3_INSTALLER install enum34==1.0.4
+fi
index 5238e9e..0831dae 100644 (file)
@@ -1,24 +1,9 @@
 #!/bin/bash
-#
-#    Copyright 2016 RIFT.IO Inc
-#
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
 
 echo "1a) checking pip six"
 cmd "pip list | grep -i six"
 echo "1b) checking pip3 six"
-cmd "python3-pip list | grep -i six"
+cmd "$PIP3_INSTALLER list | grep -i six"
 
 echo "upgrading pip six"
 cmd "pip install --upgrade six"
@@ -26,4 +11,4 @@ cmd "pip install --upgrade six"
 echo "2a) checking pip six"
 cmd "pip list | grep -i six"
 echo "2b) checking pip3 six"
-cmd "python3-pip list | grep -i six"
\ No newline at end of file
+cmd "$PIP3_INSTALLER list | grep -i six"
index 0837fed..dc8fed2 100644 (file)
-autoconf-2.69-14.fc20.noarch
-automake-1.13.4-5.fc20.noarch
+# fc20: Fedora Core 20
+# ub16: Ubuntu 16.04
+
+fc20: Xvfb
+ub16: xvfb
+
+asciidoc
+
+fc20: autoconf-2.69-14.fc20.noarch
+ub16: autoconf
+
+fc20: automake-1.13.4-5.fc20.noarch
+ub16: automake
+
 bc
-bison-2.7-3.fc20.x86_64
-boost-devel
-boost-filesystem
+
+fc20: bison-2.7-3.fc20.x86_64
+ub16: bison
+
+fc20: boost-devel
+fc20: boost-filesystem
+ub16: libboost-dev
+ub16: libboost-filesystem-dev
+
 bzip2
-clang-3.3-4.fc20.x86_64
-cmake-2.8.12.1-1.fc20.x86_64
+
+fc20: cairo-gobject-devel
+ub16: libcairo-gobject2
+
+chrpath
+
+fc20: clang-3.3-4.fc20.x86_64
+ub16: clang
+
+fc20: cmake-2.8.12.1-1.fc20.x86_64
+ub16: cmake
+
+cscope
+
 curl
+dos2unix
+
+doxygen
+
+fc20: elfutils-libelf-devel
+ub16: libelf-dev
+ub16: elfutils
+
+fc20: emacs-el
+ub16: emacs24-el
+
 flex
-flex-devel
-gcc-4.8.2-7.fc20.x86_64
-gcc-c++-4.8.2-7.fc20.x86_64
+
+fc20: flex-devel
+# No flex-devel for Ubuntu
+
+fc20: fontconfig-devel
+ub16: libfontconfig1-dev
+
+fc20: freetype-devel
+ub16: libfreetype6-dev
+
+fc20: gamin-devel
+ub16: libgamin-dev
+
+fc20: gcc-4.8.2-7.fc20.x86_64
+ub16: gcc
+
+fc20: gcc-c++-4.8.2-7.fc20.x86_64
+# No gcc-c++ for Ubuntu
+
 git
-gnome-common-3.10.0-1.fc20.noarch
-go
-gtk-doc
-icu
+
+fc20: glade3-libgladeui
+ub16: libgladeui-dev
+
+fc20: gnome-common-3.10.0-1.fc20.noarch
+ub16: gnome-common
+
+fc20: go
+ub16: golang
+
+fc20: gperf
+ub16: gperf
+
+fc20: gtk+
+fc20: gtk-doc
+ub16: libgtk2.0-dev
+ub16: libgtk2.0-doc
+
+fc20: icu
+ub16: icu-devtools
+
 intltool
-json-c-devel-0.11-3.fc20.x86_64
+
+fc20: jemalloc-devel
+ub16: libjemalloc-dev
+
+fc20: json-c-devel-0.11-3.fc20.x86_64
+ub16: libjson-c-dev
+
 lcov
-libdb-devel
-libev-devel
-libevent-devel
-libffi-devel
-libgudev1
-libguestfs-tools-c
-libicu-devel-50.1.2-10.fc20.x86_64
-libnl3-devel
-libnl-devel
-libpcap-devel
-libpng-devel
-libssh2-devel
-libtool-2.4.2-23.fc20.x86_64
-libudev-devel
-libuuid-devel
-libxml2-devel
-libxml-devel
-libxslt-devel
-luajit-devel
-make-4.0-3.1.fc22.x86_64
-nbd
-ncurses-devel
+
+fc20: libX11-devel
+fc20: libXfixes-devel
+ub16: libx11-dev
+ub16: libxfixes-dev
+
+fc20: libXft-devel
+ub16: libxft-dev
+
+fc20: libattr-devel
+ub16: libattr1-dev
+
+fc20: libcap-devel
+ub16: libcap-dev
+
+fc20: libcurl-devel
+ub16: libcurl4-gnutls-dev
+
+fc20: libdb-devel
+ub16: libdb-dev
+
+fc20: libev-devel
+ub16: libev-dev
+
+fc20: libevent-devel
+ub16: libevent-dev
+
+fc20: libffi-devel
+ub16: libffi-dev
+
+fc20: libgudev1
+ub16: libgudev-1.0-dev
+
+fc20: libguestfs-tools-c
+ub16: libguestfs-tools
+
+fc20: libicu-devel-50.1.2-10.fc20.x86_64
+ub16: libicu-dev
+
+fc20: libnl-devel
+fc20: libnl3-devel
+ub16: libnl-3-dev
+
+fc20: libpcap-devel
+ub16: libpcap-dev
+
+fc20: libpng-devel
+ub16: libpng12-dev
+
+fc20: libssh2-devel
+ub16: libssh2-1-dev
+
+fc20: libtalloc-devel
+ub16: libtalloc-dev
+
+fc20: libtool-2.4.2-23.fc20.x86_64
+ub16: libtool
+
+fc20: libudev-devel
+ub16: libudev-dev
+
+fc20: libunwind-devel
+ub16: libunwind-dev
+
+fc20: libuuid-devel
+ub16: libuuid1
+
+fc20: libxml-devel
+ub16: 
+
+fc20: libxml2-devel
+ub16: libxml2-dev
+
+fc20: libxslt-devel
+ub16: libxslt1-dev
+
+fc20: lua-devel
+ub16: libtolua-dev
+
+lua-markdown
+
+lyx
+fc20: luajit-devel
+ub16: libluajit-5.1-dev
+
+fc20: make-4.0-3.1.fc22.x86_64
+ub16: make
+
+fc20: maven-local
+ub16: 
+
+fc20: mesa-libGL-devel
+ub16: libgl1-mesa-dev
+
+fc20: nbd
+ub16: nbdkit
+
+fc20: ncurses-devel
+ub16: libncurses5-dev
+
 npm
-python3-devel
-python-devel
+openssh-server
+pdftk
+
+fc20: pycairo-devel
+ub16: python-cairo-dev
+
+fc20: python-devel
+ub16: python-dev
+
 python-lxml
+python-nose
 python-pip
-python-tools
-qemu-img
-ruby
-texlive-latex2man-bin
+python-sphinx
+
+fc20: python-tools
+ub16: 
+
+fc20: python3-cairo-devel
+ub16: python3-cairo-dev
+
+fc20: python3-devel
+ub16: python3-dev
+
+fc20: qemu-img
+ub16: qemu-utils
+
+fc20: rpm-build
+ub16: 
+
+fc20: ruby
+ub16: ruby
+
+fc20: rubygem-asciidoctor-0.1.4-1.fc20.noarch
+ub16: asciidoctor
+
+sharutils
+
+fc20: strongswan-charon-nm.x86_64
+ub16: strongswan-charon
+
+fc20: strongswan.x86_64
+ub16: strongswan
+
+fc20: systemtap-sdt-devel
+ub16: systemtap-sdt-dev
+
+texi2html
+texinfo
+
+fc20: texlive-latex2man-bin
+ub16: 
+
 unzip
-vala
-valgrind-devel
+
+fc20: vala
+ub16: valac
+
+fc20: vala-devel-0.22.1
+ub16: libvala-0.30-dev
+
+fc20: valgrind-devel
+ub16: valgrind
+
 wget
-xml-common
+
+fc20: xml-common
+ub16: 
+
+xmlto
diff --git a/scripts/vm_image/ext.rpms b/scripts/vm_image/ext.rpms
new file mode 100644 (file)
index 0000000..ad9d650
--- /dev/null
@@ -0,0 +1,109 @@
+fc20: golang-github-hashicorp-logutils-devel-0:0.rw-0.fc20.noarch
+fc20: xalan-c-0:1.11.0.rw-0.fc20.x86_64
+fc20: libBlocksRuntime-0:0.3.rw-0.fc20.x86_64
+fc20: vala-doc-0:0.31.1.rw-0.fc20.noarch
+fc20: libkqueue-0:2.0.1.rw-0.fc20.x86_64
+fc20: xalan-c-doc-0:1.11.0.rw-0.fc20.x86_64
+fc20: redis-0:3.0.4-1.fc20.x86_64
+fc20: zsh-0:5.0.7.rw-0.fc20.x86_64
+fc20: golang-github-mitchellh-mapstructure-unit-test-0:0.rw-0.fc20.x86_64
+fc20: nanomsg-doc-0:0.2.rw-0.fc20.x86_64
+fc20: yuma-0:2.4.rw-0.fc20.x86_64
+fc20: vala-0:0.31.1.rw-0.fc20.x86_64
+fc20: protobuf-python-0:2.6.1.rw-0.fc20.x86_64
+fc20: golang-github-hashicorp-mdns-unit-test-0:0.rw-0.fc20.x86_64
+fc20: python-ncclient-0:0.4.3.rw-0.fc20.noarch
+fc20: libpeas-devel-0:1.17.0.rw-0.fc20.x86_64
+fc20: zsh-html-0:5.0.7.rw-0.fc20.x86_64
+fc20: libuinet-0:1.0.rw-0.fc20.x86_64
+fc20: userspace-rcu-devel-0:0.8.1.rw-0.fc20.x86_64
+fc20: libpthread_workqueue-0:0.8.2.rw-0.fc20.x86_64
+fc20: vala-tools-0:0.31.1.rw-0.fc20.x86_64
+fc20: protobuf-javadoc-0:2.6.1.rw-0.fc20.x86_64
+fc20: uthash-devel-0:1.9.9.rw-0.fc20.noarch
+fc20: golang-github-hashicorp-serf-unit-test-0:0.rw-0.fc20.x86_64
+fc20: vala-devel-0:0.31.1.rw-0.fc20.x86_64
+fc20: xerces-c-0:3.1.1.rw-0.fc20.x86_64
+fc20: gtest-0:1.7.0.rw-0.fc20.x86_64
+fc20: estw-devel-0:03052011.rw-0.fc20.x86_64
+fc20: zsh-devel-0:5.0.7.rw-0.fc20.x86_64
+fc20: golang-github-mitchellh-cli-unit-test-0:0.rw-0.fc20.x86_64
+fc20: protobuf-java-0:2.6.1.rw-0.fc20.x86_64
+fc20: golang-github-mitchellh-mapstructure-devel-0:0.rw-0.fc20.noarch
+fc20: nanomsg-devel-0:0.2.rw-0.fc20.x86_64
+fc20: glib2-0:2.46.2.rw-0.fc20.x86_64
+fc20: golang-github-hashicorp-go-msgpack-devel-0:0.rw-0.fc20.noarch
+fc20: msgpack-0:0.5.9.rw-0.fc20.x86_64
+fc20: libpthread_workqueue-devel-0:0.8.2.rw-0.fc20.x86_64
+fc20: libpeas-loader-python3-0:1.17.0.rw-0.fc20.x86_64
+fc20: glib2-fam-0:2.46.2.rw-0.fc20.x86_64
+fc20: golang-github-hashicorp-serf-devel-0:0.rw-0.fc20.noarch
+fc20: tcpdump-14:4.5.0.rw-0.fc20.x86_64
+fc20: CFLite-0:0.1.2.rw-0.fc20.x86_64
+fc20: libuinet-devel-0:1.0.rw-0.fc20.x86_64
+fc20: protobuf-devel-0:2.6.1.rw-0.fc20.x86_64
+fc20: libdispatch-0:1.0.rw-0.fc20.x86_64
+fc20: pyang-0:1.6.rw-0.fc20.noarch
+fc20: protobuf-emacs-0:2.6.1.rw-0.fc20.x86_64
+fc20: protobuf-c-devel-0:1.1.0.rw-0.fc20.x86_64
+fc20: golang-github-ryanuber-columnize-devel-0:0.rw-0.fc20.noarch
+fc20: protobuf-c-0:1.1.0.rw-0.fc20.x86_64
+fc20: golang-github-hashicorp-mdns-devel-0:0.rw-0.fc20.noarch
+fc20: golang-github-armon-go-metrics-devel-0:0.rw-0.fc20.noarch
+fc20: libkqueue-devel-0:2.0.1.rw-0.fc20.x86_64
+fc20: tcpdump-devel-14:4.5.0.rw-0.fc20.x86_64
+fc20: protobuf-lite-0:2.6.1.rw-0.fc20.x86_64
+fc20: lua-struct-0:0.2.rw-0.fc20.x86_64
+fc20: luaunit-0:3.0.rw-0.fc20.x86_64
+fc20: libpeas-0:1.17.0.rw-0.fc20.x86_64
+fc20: nanomsg-0:0.2.rw-0.fc20.x86_64
+fc20: xerces-c-doc-0:3.1.1.rw-0.fc20.noarch
+fc20: glib2-doc-0:2.46.2.rw-0.fc20.noarch
+fc20: golang-github-miekg-dns-unit-test-0:0.rw-0.fc20.x86_64
+fc20: protobuf-vim-0:2.6.1.rw-0.fc20.x86_64
+fc20: protobuf-static-0:2.6.1.rw-0.fc20.x86_64
+fc20: golang-github-mitchellh-cli-devel-0:0.rw-0.fc20.noarch
+fc20: python-gobject-base-0:3.18.0.rw-0.fc20.x86_64
+fc20: pygobject3-devel-0:3.18.0.rw-0.fc20.x86_64
+fc20: xalan-c-devel-0:1.11.0.rw-0.fc20.x86_64
+fc20: python3-gobject-0:3.18.0.rw-0.fc20.x86_64
+fc20: golang-github-miekg-dns-devel-0:0.rw-0.fc20.noarch
+fc20: nanomsg-utils-0:0.2.rw-0.fc20.x86_64
+fc20: glib2-devel-0:2.46.2.rw-0.fc20.x86_64
+fc20: libBlocksRuntime-devel-0:0.3.rw-0.fc20.x86_64
+fc20: google-coredumper-0:1.2.1.rw-0.fc20.x86_64
+fc20: hiredis-0:0.12.1-3.fc20.x86_64
+fc20: python-gobject-0:3.18.0.rw-0.fc20.x86_64
+fc20: gobject-introspection-0:1.46.0.rw-0.fc20.x86_64
+fc20: lua-clidebugger-0:1.0.rw-0.fc20.x86_64
+fc20: xerces-c-devel-0:3.1.1.rw-0.fc20.x86_64
+fc20: gobject-introspection-devel-0:1.46.0.rw-0.fc20.x86_64
+fc20: protobuf-python3-0:2.6.1.rw-0.fc20.x86_64
+fc20: google-coredumper-devel-0:1.2.1.rw-0.fc20.x86_64
+fc20: msgpack-devel-0:0.5.9.rw-0.fc20.x86_64
+fc20: estw-0:03052011.rw-0.fc20.x86_64
+fc20: lua-lgi-samples-0:0.9.0.rw-0.fc20.x86_64
+fc20: python3-gobject-base-0:3.18.0.rw-0.fc20.x86_64
+fc20: golang-github-armon-circbuf-devel-0:0.rw-0.fc20.noarch
+fc20: gtest-devel-0:1.7.0.rw-0.fc20.x86_64
+fc20: protobuf-0:2.6.1.rw-0.fc20.x86_64
+fc20: protobuf-compiler-0:2.6.1.rw-0.fc20.x86_64
+fc20: golang-github-hashicorp-net-devel-0:0.rw-0.fc20.noarch
+fc20: libdispatch-devel-0:1.0.rw-0.fc20.x86_64
+fc20: protobuf-emacs-el-0:2.6.1.rw-0.fc20.x86_64
+fc20: CFLite-devel-0:0.1.2.rw-0.fc20.x86_64
+fc20: protobuf-lite-devel-0:2.6.1.rw-0.fc20.x86_64
+fc20: hiredis-devel-0:0.12.1-3.fc20.x86_64
+fc20: protobuf-lite-static-0:2.6.1.rw-0.fc20.x86_64
+fc20: yuma-doc-0:2.4.rw-0.fc20.noarch
+fc20: golang-github-hashicorp-go-syslog-devel-0:0.rw-0.fc20.noarch
+fc20: yuma-devel-0:2.4.rw-0.fc20.noarch
+fc20: seagull-0:1.8.2.rw-0.fc20.x86_64
+fc20: golang-github-hashicorp-serf-0:0.rw-0.fc20.x86_64
+fc20: libpeas-loader-python-0:1.17.0.rw-0.fc20.x86_64
+fc20: lua-lgi-0:0.9.0.rw-0.fc20.x86_64
+fc20: userspace-rcu-0:0.8.1.rw-0.fc20.x86_64
+fc20: ck-0:0.3.5.rw-0.fc20.x86_64
+fc20: ck-devel-0:0.3.5.rw-0.fc20.x86_64
+fc20: golang-github-hashicorp-memberlist-devel-0:0.rw-0.fc20.noarch
+fc20: gmock-devel-0:1.7.0.rw-0.fc20.x86_64
diff --git a/scripts/vm_image/mkcontainer b/scripts/vm_image/mkcontainer
new file mode 120000 (symlink)
index 0000000..3167ecd
--- /dev/null
@@ -0,0 +1 @@
+mkvmimg
\ No newline at end of file
index 97dd415..7879f12 100755 (executable)
@@ -1,27 +1,25 @@
 #!/bin/bash
+# vim: set ts=4 sw=4 sts=4 et :
+#   Copyright 2016 RIFT.IO Inc
 #
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
 #
-#    Copyright 2016 RIFT.IO Inc
+#       http://www.apache.org/licenses/LICENSE-2.0
 #
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-# 
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
 #
 # 12-24-2014 -- JLM
 # removing the naming system. We will be only be using one set of flags from here on out
 # deprecating the -d switch -- there is a script inside the VM that can enable developer mode
 # 1-7-2015 -- JLM -- parameterize the kernel rev
+# 6-23-2016 -- JLM -- pretty major rewrite to allow for running inside a container
 #
-# WARNING TO ANYONE MERGING THIS FILE TO/FROM ATG
-# THIS FILE WAS MANUALLY MERGED WITH ATG AND COPIED TO MASTER 
 #
 
 
@@ -31,237 +29,250 @@ trap "_on_exit" EXIT INT
 trap "exit 1" 2
 
 _on_exit() {
-       local m i
+    local m i
 
-       for m in $(echo ${_MOUNTS} | sort); do
-               echo "Unmounting ${m}..."
-               umount -f ${m}
-       done
+    for m in $(echo ${_MOUNTS} | sort); do
+        echo "Unmounting ${m}..."
+        umount -f ${m}
+    done
 
-       _MOUNTS=""
+    _MOUNTS=""
 
-       for m in ${_NBD_NODES}; do
-               echo "Unexporting ${m}..."
-               kpartx -d ${m}
-               qemu-nbd -d ${m}
-       done
+    for m in ${_NBD_NODES}; do
+        echo "Unexporting ${m}..."
+        kpartx -d ${m}
+        qemu-nbd -d ${m}
+    done
 
-       _NBD_NODES=""
+    _NBD_NODES=""
 }
 
 die() {
-       echo
-       echo "ERROR2: $*"
-       echo
-       exit 1
+    echo
+    echo "ERROR2: $*"
+    echo
+    exit 1
 }
 
 announce() {
-       echo -e "=============================\n$*\n=============================" >&2
+    echo -e "=============================\n$*\n=============================" >&2
 }
 
 fetch_seed() {
-       announce $FUNCNAME
-       if [ -f ${SEED_PATH} ]; then
-               return
-       fi
-
-       if [[ ${SEED_URL} =~ ^http:// ]]; then
-               echo "curl ${SEED_URL}/${SEED} "
-               curl --location \
-                       --output ${SEED_PATH} \
-                       ${SEED_URL}/${SEED} \
-                       || die "Failed to download ${SEED_URL}/${SEED}"
-       elif [[ ${SEED_URL} =~ ^file:// ]]; then
-               cp ${SEED_URL#file:/}/${SEED} ${SEED_PATH} \
-                       || die "Failed to copy ${SEED_URL}/${SEED}"
-       else
-               die "Unknown resource type for seed url ${SEED_URL}"
-       fi
+    announce $FUNCNAME
+    if [ -f ${SEED_PATH} ]; then
+        return
+    fi
+
+    if [[ ${SEED_URL} =~ ^http:// ]]; then
+        echo "curl ${SEED_URL}/${SEED} "
+        curl --location \
+            --output ${SEED_PATH} \
+            ${SEED_URL}/${SEED} \
+            || die "Failed to download ${SEED_URL}/${SEED}"
+    elif [[ ${SEED_URL} =~ ^file:// ]]; then
+        cp ${SEED_URL#file:/}/${SEED} ${SEED_PATH} \
+            || die "Failed to copy ${SEED_URL}/${SEED}"
+    else
+        die "Unknown resource type for seed url ${SEED_URL}"
+    fi
 }
 
 _find_free_nbd_node() {
-       local node
-
-       for node in /dev/nbd[0-9]*; do
-               nbd-client -c $node  >/dev/null 2>&1 
-               if [ $? -ne 1 ]; then 
-                       continue
-               fi
-               if [ ! -f /sys/block/${node##*/}/pid ]; then
-                       echo ${node}
-                       break
-               fi
-       done
+    local node
+
+    for node in /dev/nbd[0-9]*; do
+        nbd-client -c $node  >/dev/null 2>&1 
+        if [ $? -ne 1 ]; then 
+            continue
+        fi
+        if [ ! -f /sys/block/${node##*/}/pid ]; then
+            echo ${node}
+            break
+        fi
+    done
 }
 
 setup() {
-       local nbd_dev
-       local mp
-       local tmp_mp
-       local rc
-
-       announce $FUNCNAME
-       if ! lsmod | grep -q nbd; then
-               modprobe nbd max_devices=256 || die "Failed to modprobe nbd"
-       fi
-
-       mkdir -p ${STAGING} 2>&1
-
-       nbd_dev=$(_find_free_nbd_node)
-
-       if [ -z "${nbd_dev}" ]; then
-               die "Failed to find free nbd node"
-       fi
-
-       echo "nbd_dev=${nbd_dev}"
-
-       qemu-nbd -c ${nbd_dev} ${SEED_PATH}\
-               || die "Failed to qemu-nbd ${SEED_PATH} on ${nbd_dev}"
-       _NBD_NODES="${_NBD_NODES} ${nbd_dev}"
-       kpartx -s -a ${nbd_dev} || die "kpartx ${nbd_dev} failed"
-
-       tmp_mp=$(mktemp -d --tmpdir=${BUILDDIR})
-       mp=/dev/mapper/${nbd_dev##*/}p1
-       if ! mount ${mp} ${tmp_mp}; then
-               rmdir ${tmp_mp}
-               die "Failed to mount ${SEED_PATH} (${mp}) on ${tmp_mp})"
-       fi
-       if [ -n "REBUILD" ]; then
-               rsync -a ${tmp_mp}/ ${STAGING}/
-               rc=$?
-       else
-               rsync -a --delete-after ${tmp_mp}/ ${STAGING}/
-               rc=$?
-       fi
-       umount -f ${tmp_mp}
-       rmdir ${tmp_mp}
-
-       if [ ${rc} -ne 0 ]; then
-               die "Failed to sync to ${STAGING}"
-       fi
-
-       echo "Done syncing to ${STAGING}"
-
-       for mp in sys proc dev; do
-               mount -o bind /${mp} ${STAGING}/${mp} || die "Failed to bind mount ${mp}"
-               _MOUNTS="${STAGING}/${mp} ${_MOUNTS}"
-       done
-
-       cp -L /etc/resolv.conf ${STAGING}/etc/
-
-       # set up the default console for openstack
-       cp $RIFTROOT/scripts/vm/etc/default/grub $STAGING/etc/default/grub
+    local nbd_dev
+    local mp
+    local tmp_mp
+    local rc
+
+    announce $FUNCNAME
+    if ! lsmod | grep -q nbd; then
+        modprobe nbd max_devices=256 || die "Failed to modprobe nbd"
+    fi
+
+    mkdir -p ${STAGING} 2>&1
+
+    nbd_dev=$(_find_free_nbd_node)
+
+    if [ -z "${nbd_dev}" ]; then
+        die "Failed to find free nbd node"
+    fi
+
+    echo "nbd_dev=${nbd_dev}"
+
+    qemu-nbd -c ${nbd_dev} ${SEED_PATH}\
+        || die "Failed to qemu-nbd ${SEED_PATH} on ${nbd_dev}"
+    _NBD_NODES="${_NBD_NODES} ${nbd_dev}"
+    kpartx -s -a ${nbd_dev} || die "kpartx ${nbd_dev} failed"
+
+    tmp_mp=$(mktemp -d --tmpdir=${BUILDDIR})
+    mp=/dev/mapper/${nbd_dev##*/}p1
+    if ! mount ${mp} ${tmp_mp}; then
+        rmdir ${tmp_mp}
+        die "Failed to mount ${SEED_PATH} (${mp}) on ${tmp_mp})"
+    fi
+    if [ -n "REBUILD" ]; then
+        rsync -a ${tmp_mp}/ ${STAGING}/
+        rc=$?
+    else
+        rsync -a --delete-after ${tmp_mp}/ ${STAGING}/
+        rc=$?
+    fi
+    umount -f ${tmp_mp}
+    rmdir ${tmp_mp}
+
+    if [ ${rc} -ne 0 ]; then
+        die "Failed to sync to ${STAGING}"
+    fi
+
+    echo "Done syncing to ${STAGING}"
+
+    for mp in sys proc dev; do
+        mount -o bind /${mp} ${STAGING}/${mp} || die "Failed to bind mount ${mp}"
+        _MOUNTS="${STAGING}/${mp} ${_MOUNTS}"
+    done
+
+    cp -L /etc/resolv.conf ${STAGING}/etc/
+
+    # set up the default console for openstack
+    cp $RIFT_ROOT/scripts/vm/etc/default/grub $STAGING/etc/default/grub
 }
 
 compress_qcow2() {
-       local dest
-       local src
-
-       announce $FUNCNAME
-
-       if ! [ -x "$(command -v virt-sparsify)" ]; then
-               echo "virt-sparsify is not installed, not compressing."
-       else
-               # save the big qcow
-               mv ${IMG_PREFIX}.qcow2 ${IMG_PREFIX}.orig.qcow2
+    local dest
+    local src
 
-               src=${IMG_PREFIX}.orig.qcow2
-               dest=${IMG_PREFIX}.qcow2
+    announce $FUNCNAME
 
-               # zero fill the free space and compress the qcow2
-               virt-sparsify --compress ${src} ${dest}
+    if ! [ -x "$(command -v virt-sparsify)" ]; then
+        echo "virt-sparsify is not installed, not compressing."
+        return
+    fi
+    temp=${IMG_PREFIX}.orig.qcow2
+    orig=${IMG_PREFIX}.qcow2
 
-               # we can safely remove the big qcow
-               rm -fv ${IMG_PREFIX}.orig.qcow2
-       fi
-
-}
-
-pack_qcow2() {
-       local bind_mp
-       local img_size
-       #local sha # we need global
-       local dest
-       local nbd_dev
-       local p_dev
-       local tmp_mp
-       local rc
-
-       announce $FUNCNAME
-       img_size=$(du --exclude='proc/*' --exclude='sys/*' -sk ${STAGING} | cut -f1)
-       img_size=$((img_size + ${_EXTRA_DISK_SPACE_K} + 500 * 1024))
-
-       dest=${IMG_PREFIX}.qcow2
-
-       echo "Setting up NBD:"
-       qemu-img create -f qcow2 ${dest} ${img_size}k
-       nbd_dev=$(_find_free_nbd_node)
-
-       if [ -z "${nbd_dev}" ]; then
-               die "Failed to find free nbd node"
-       fi
-
-       qemu-nbd -c ${nbd_dev} ${dest} || die "Failed to qemu-nbd ${dest} on ${nbd_dev}"
-       _NBD_NODES="${_NBD_NODES} ${nbd_dev}"
-
-       echo "Partitioning and Formatting:"
-       echo ",," | sfdisk ${nbd_dev} || die "Failed to partition ${nbd_dev}"
-       kpartx -s -a ${nbd_dev} || die "kpartx ${nbd_dev} failed"
-       p_dev=/dev/mapper/${nbd_dev##*/}p1
-       mkfs.ext4 -q ${p_dev} || die "Failed to mkfs ${p_dev}"
-
-       tmp_mp=$(mktemp -d --tmpdir=${BUILDDIR})
-       if ! mount ${p_dev} ${tmp_mp}; then
-               rmdir ${tmp_mp}
-               die "Filed to mount ${dest} on ${tmp_mp}"
-       fi
-
-       #echo "PQ1) Checking"
-       #ls -all ${STAGING}/home/rift/scripts/
-       #ls -all ${tmp_mp}/home/rift/scripts/
-
-       echo "Start Rsyncing..."
-       rsync -a --exclude='/sys/*' --exclude='/proc/*' ${STAGING}/ ${tmp_mp}/
+    # zero fill the free space and compress the qcow2
+       LIBGUESTFS_DEBUG=1 virt-sparsify --check-tmpdir fail --compress ${orig} ${temp}
        rc=$?
-       if [ ${rc} -ne 0 ]; then
-               umount -f ${tmp_mp}
-               die "Failed to sync from ${STAGING}"
+       if [ $rc -ne 0 ]; then
+               echo "Sparsify failed. rc=$rc"
+               echo "Check that /tmp has a lot of free space ... 40+GB"
+               return
        fi
-       echo "Done Rsyncing."
-
-       echo "PQ2) Checking Scripts"
-       #ls -all ${STAGING}/home/rift/scripts/*
-       ls -all ${tmp_mp}/home/rift/scripts/*
-
-       # I think this assumes the host is running the right release
-       #
-       for bind_mp in dev proc sys; do
-               mount -o bind /${bind_mp} ${tmp_mp}/${bind_mp} || die "Failed to bind mount ${tmp_mp}/${bind_mp}"
-               _MOUNTS="${_MOUNTS} ${tmp_mp}/${bind_mp}"
-       done
-
-       # grub2 install isonly really needed for qcow2/kvm -- AWS uses grub
-
-       chroot ${tmp_mp} $YUM install -y grub2 || die "Failed to yum install grub2"
-       chroot ${tmp_mp} grub2-mkconfig -o /boot/grub2/grub.cfg || die "Failed to create grub2 config"
-       chroot ${tmp_mp} grub2-set-default "Fedora, with Linux ${KERNEL_REV}"
+               
+       # can we safely remove the big qcow
+       if [ ! -s ${temp} ]; then
+               echo "sparsify failed: temp file not found"
+    fi
 
-       cat > ${tmp_mp}/boot/grub2/device.map <<-EOF
-               (hd0) ${nbd_dev}
-       EOF
+       echo success 
+       echo original
+       ls -l ${orig}
+       echo new
+       ls -l ${temp}
+       rm -fv {$orig}
+       mv ${temp} ${orig}
 
-       if [ $RELEASE == 20 ]; then
-               chroot ${tmp_mp} grub2-install -f ${nbd_dev} || die "Failed to grub2-install"
-       else
-               chroot ${tmp_mp} grub2-install ${nbd_dev} || die "Failed to grub2-install"
-       fi
-
-       cat > ${tmp_mp}/etc/fstab <<-EOF
-               /dev/vda1 / ext4    defaults,noatime 0 0
-       EOF
+}
 
-       cat > ${tmp_mp}/etc/rc.d/rc.local <<-EOF
+pack_qcow2() {
+    local bind_mp
+    local img_size
+    #local sha # we need global
+    local dest
+    local nbd_dev
+    local p_dev
+    local tmp_mp
+    local rc
+
+    announce $FUNCNAME
+    img_size=$(du --exclude='proc/*' --exclude='sys/*' -sk ${STAGING} | cut -f1)
+    img_size=$((img_size + ${_EXTRA_DISK_SPACE_K} + 500 * 1024))
+
+    dest=${IMG_PREFIX}.qcow2
+
+    echo "Setting up NBD:"
+    qemu-img create -f qcow2 ${dest} ${img_size}k
+    nbd_dev=$(_find_free_nbd_node)
+
+    if [ -z "${nbd_dev}" ]; then
+        die "Failed to find free nbd node"
+    fi
+
+    qemu-nbd -c ${nbd_dev} ${dest} || die "Failed to qemu-nbd ${dest} on ${nbd_dev}"
+    _NBD_NODES="${_NBD_NODES} ${nbd_dev}"
+
+    echo "Partitioning and Formatting:"
+    echo ",," | sfdisk ${nbd_dev} || die "Failed to partition ${nbd_dev}"
+    kpartx -s -a ${nbd_dev} || die "kpartx ${nbd_dev} failed"
+    p_dev=/dev/mapper/${nbd_dev##*/}p1
+    mkfs.ext4 -q ${p_dev} || die "Failed to mkfs ${p_dev}"
+
+    tmp_mp=$(mktemp -d --tmpdir=${BUILDDIR})
+    if ! mount ${p_dev} ${tmp_mp}; then
+        rmdir ${tmp_mp}
+        die "Filed to mount ${dest} on ${tmp_mp}"
+    fi
+
+    #echo "PQ1) Checking"
+    #ls -all ${STAGING}/home/rift/scripts/
+    #ls -all ${tmp_mp}/home/rift/scripts/
+
+    echo "Start Rsyncing..."
+    rsync -a --exclude='/sys/*' --exclude='/proc/*' ${STAGING}/ ${tmp_mp}/
+    rc=$?
+    if [ ${rc} -ne 0 ]; then
+        umount -f ${tmp_mp}
+        die "Failed to sync from ${STAGING}"
+    fi
+    echo "Done Rsyncing."
+
+    echo "PQ2) Checking Scripts"
+    #ls -all ${STAGING}/home/rift/scripts/*
+    ls -all ${tmp_mp}/home/rift/scripts/*
+
+    # I think this assumes the host is running the right release
+    #
+    for bind_mp in dev proc sys; do
+        mount -o bind /${bind_mp} ${tmp_mp}/${bind_mp} || die "Failed to bind mount ${tmp_mp}/${bind_mp}"
+        _MOUNTS="${_MOUNTS} ${tmp_mp}/${bind_mp}"
+    done
+
+    # grub2 install isonly really needed for qcow2/kvm -- AWS uses grub
+
+    chroot ${tmp_mp} $YUM install -y grub2 || die "Failed to yum install grub2"
+    chroot ${tmp_mp} grub2-mkconfig -o /boot/grub2/grub.cfg || die "Failed to create grub2 config"
+    chroot ${tmp_mp} grub2-set-default "Fedora, with Linux ${KERNEL_REV}"
+
+    cat > ${tmp_mp}/boot/grub2/device.map <<-EOF
+        (hd0) ${nbd_dev}
+EOF
+
+    if [ $RELEASE == 20 ]; then
+        chroot ${tmp_mp} grub2-install -f ${nbd_dev} || die "Failed to grub2-install"
+    else
+        chroot ${tmp_mp} grub2-install ${nbd_dev} || die "Failed to grub2-install"
+    fi
+
+    cat > ${tmp_mp}/etc/fstab <<-EOF
+        /dev/vda1 / ext4    defaults,noatime 0 0
+EOF
+
+    cat > ${tmp_mp}/etc/rc.d/rc.local <<-EOF
 #!/bin/bash
 
 
@@ -282,235 +293,298 @@ else
 fi
 
 exit 1
-       EOF
-       chmod +x ${tmp_mp}/etc/rc.d/rc.local
+EOF
+    chmod +x ${tmp_mp}/etc/rc.d/rc.local
 
-       for bind_mp in dev proc sys; do
-               umount -f ${tmp_mp}/${bind_mp}
-               _MOUNTS=$(echo ${_MOUNTS} | sed "s,${tmp_mp}/${bind_mp},,")
-       done
+    for bind_mp in dev proc sys; do
+        umount -f ${tmp_mp}/${bind_mp}
+        _MOUNTS=$(echo ${_MOUNTS} | sed "s,${tmp_mp}/${bind_mp},,")
+    done
 
-       umount -f ${tmp_mp}
-       rmdir ${tmp_mp}
-       [ -n "${SUDO_UID}" ] && chown ${SUDO_UID} ${dest}
+    umount -f ${tmp_mp}
+    rmdir ${tmp_mp}
+    [ -n "${SUDO_UID}" ] && chown ${SUDO_UID} ${dest}
 
-       if [ ${rc} -ne 0 ]; then
-               die "Failed to sync from ${STAGING}"
-       fi
+    if [ ${rc} -ne 0 ]; then
+        die "Failed to sync from ${STAGING}"
+    fi
 }
 
 pack_image() {
-       local img_size
-       local sha
-       local dest
-       local nbd_dev
-       local tmp_mp
-       local rc
-
-       announce $FUNCNAME
-       img_size=$(du --exclude='proc/*' --exclude='sys/*' -sk ${STAGING} | cut -f1)
-       img_size=$((img_size + ${_EXTRA_DISK_SPACE_K} + 500 * 1024))
-
-       dest=${IMG_PREFIX}.img
-
-       dd if=/dev/zero of=${dest} bs=1024 count=${img_size} || die "Failed to create disk image"
-       mkfs.ext4 -F -q ${dest} || die "Failed to format ${dest}"
-
-       tmp_mp=$(mktemp -d --tmpdir=${BUILDDIR})
-       if ! mount -o loop ${dest} ${tmp_mp}; then
-               rmdir ${tmp_mp}
-               die "Filed to mount ${dest} on ${tmp_mp}"
-       fi
-
-       rsync -a --exclude='/sys/*' --exclude='/proc/*' ${STAGING}/ ${tmp_mp}/
-       rc=$?
-
-       # NOTE this menu is for grub which is used for AWS
-       # kvm uses grub2 
-       if [ -n "$KERNEL_REV" ]; then
-               cat > ${tmp_mp}/boot/grub/menu.lst <<-EOF
-                       default=0
-                       timeout=0
-
-                       title Fedora ($KERNEL_REV})
-                               root (hd0)
-                               kernel /boot/vmlinuz-${KERNEL_REV} ro root=/dev/xvda1 console=hvc0 console=ttyS0,115200n8 LANG=en_US.UTF-8 
-                               initrd /boot/initramfs-${KERNEL_REV}.img
-               EOF
-       fi
-
-       cat > ${tmp_mp}/etc/fstab <<-EOF
-               /dev/xvda1 / ext4    defaults,noatime 0 0
-       EOF
-
-       umount -f ${tmp_mp}
-       rmdir ${tmp_mp}
-       [ -n "${SUDO_UID}" ] && chown ${SUDO_UID} ${dest}
-
-       if [ ${rc} -ne 0 ]; then
-               die "Failed to sync from ${STAGING}"
-       fi
+    local img_size
+    local sha
+    local dest
+    local nbd_dev
+    local tmp_mp
+    local rc
+
+    announce $FUNCNAME
+    img_size=$(du --exclude='proc/*' --exclude='sys/*' -sk ${STAGING} | cut -f1)
+    img_size=$((img_size + ${_EXTRA_DISK_SPACE_K} + 500 * 1024))
+
+    dest=${IMG_PREFIX}.img
+
+    dd if=/dev/zero of=${dest} bs=1024 count=${img_size} || die "Failed to create disk image"
+    mkfs.ext4 -F -q ${dest} || die "Failed to format ${dest}"
+
+    tmp_mp=$(mktemp -d --tmpdir=${BUILDDIR})
+    if ! mount -o loop ${dest} ${tmp_mp}; then
+        rmdir ${tmp_mp}
+        die "Filed to mount ${dest} on ${tmp_mp}"
+    fi
+
+    rsync -a --exclude='/sys/*' --exclude='/proc/*' ${STAGING}/ ${tmp_mp}/
+    rc=$?
+
+    # NOTE this menu is for grub which is used for AWS
+    # kvm uses grub2 
+    if [ -n "$KERNEL_REV" ]; then
+        cat > ${tmp_mp}/boot/grub/menu.lst <<-EOF
+            default=0
+            timeout=0
+
+            title Fedora ($KERNEL_REV})
+                root (hd0)
+                kernel /boot/vmlinuz-${KERNEL_REV} ro root=/dev/xvda1 console=hvc0 console=ttyS0,115200n8 LANG=en_US.UTF-8 
+                initrd /boot/initramfs-${KERNEL_REV}.img
+EOF
+    fi
+
+    cat > ${tmp_mp}/etc/fstab <<-EOF
+        /dev/xvda1 / ext4    defaults,noatime 0 0
+EOF
+
+    umount -f ${tmp_mp}
+    rmdir ${tmp_mp}
+    [ -n "${SUDO_UID}" ] && chown ${SUDO_UID} ${dest}
+
+    if [ ${rc} -ne 0 ]; then
+        die "Failed to sync from ${STAGING}"
+    fi
 }
 
 cmd() {
-       echo "${@:1:40} ..." >&2
-       if [ "${STAGING}" == "" ]; then
-                       /bin/bash -c "$*" || die "Failed to run $@"
-       else
-                       chroot ${STAGING} /bin/bash -c "$*" || die "Failed to run $@"
-       fi
 
-       echo "...done" >&2
+    cmd_rc "$@"
+    rc=$?
+    if [ $rc != 0 ]; then
+        die "Failed to run $@"
+    fi
+}
+cmd_rc() {
+    echo "${@:1:40} ..." >&2
+    if [ "${STAGING}" == "" ]; then
+            /bin/bash -c "$*"
+            rc=$?
+    else
+            chroot ${STAGING} /bin/bash -c "$*"
+            rc=$?
+    fi
+    echo "...done rc is $rc" >&2
+    return $rc
 }
 
+
 yum_install() {
-       cmd $YUM --assumeyes --nogpgcheck install "$@" || die "yum '$@' failed"
+    if [[ $DISTRO == fedora ]]; then
+       cmd $YUM --assumeyes --nogpgcheck install "$@" || die "$YUM '$@' failed"
+    else
+       cmd $YUM -y install "$@" || die "$YUM '$@' failed"
+    fi
+}
+yum_update() {
+    if [[ $DISTRO == fedora ]]; then
+       cmd $YUM --assumeyes --nogpgcheck update "$@" || die "$YUM '$@' failed"
+    else
+       cmd $YUM -y update "$@" || die "$YUM '$@' failed"
+    fi
 }
 
 
 pip_install() {
-       cmd=$1
-       repo=$2
-       shift
-       shift
-       if [ $USE_INTERNET_REPOS == 1 ]; then
-               cmd $cmd install "$@" || die "$cmd install $@ from internet failed"
-       else
-               #cmd $cmd install --use-wheel --no-index \
-               #       --find-links=https://wheel.riftio.com/mirrors/${repo}/ \
-               #       "$@" || die "$cmd install $@ from $repo failed"
-               cmd $cmd install --use-wheel --no-index \
-                       --find-links=${repo} \
-                       "$@" || die "$cmd install $@ from $repo failed"
-       fi
+    cmd=$1
+    repo=$2
+    shift
+    shift
+    if [ $USE_INTERNET_REPOS == 1 ]; then
+        cmd $cmd install --use-wheel \
+            --find-links=${repo} \
+            "$@" || die "$cmd install $@ from $repo failed"
+    else
+        cmd $cmd install --use-wheel --no-index \
+            --find-links=${repo} \
+            "$@" || die "$cmd install $@ from $repo failed"
+    fi
 }
 
 pip2_install() {
-       #pip_install /bin/pip2 wheelhouse "$@"
-       # pip2 needs to be non-ssl for now
-       pip_install /bin/pip2 http://wheel.riftio.com/mirrors/wheelhouse/ "$@"
+    #pip_install /bin/pip2 wheelhouse "$@"
+    # pip2 needs to be non-ssl for now
+    pip_install /bin/pip2 http://wheel.riftio.com/mirrors/wheelhouse/ "$@"
 }
 
 pip3_install() {
-       #pip_install $PIP3_INSTALLER python3_wheelhouse "$@"
-       pip_install $PIP3_INSTALLER https://wheel.riftio.com/mirrors/python3_wheelhouse/ "$@"
+    #pip_install $PIP3_INSTALLER python3_wheelhouse "$@"
+    pip_install $PIP3_INSTALLER https://wheel.riftio.com/mirrors/python3_wheelhouse/ "$@"
 }
 
 pip3_install_kilo_modules() {
-       #pip_install $PIP3_INSTALLER python3_kilo_wheelhouse "$@"
-       pip_install $PIP3_INSTALLER https://wheel.riftio.com/mirrors/python3_kilo_wheelhouse/ "$@"
+    #pip_install $PIP3_INSTALLER python3_kilo_wheelhouse "$@"
+    pip_install $PIP3_INSTALLER https://wheel.riftio.com/mirrors/python3_kilo_wheelhouse/ "$@"
 }
 
 pip3_install_kilo42_modules() {
-       #pip_install $PIP3_INSTALLER python3_kilo_wheelhouse "$@"
-       pip_install $PIP3_INSTALLER https://wheel.riftio.com/mirrors/python3_kilo_rel_4.2_wheelhouse/ "$@"
+    #pip_install $PIP3_INSTALLER python3_kilo_wheelhouse "$@"
+    pip_install $PIP3_INSTALLER https://wheel.riftio.com/mirrors/python3_kilo_rel_4.2_wheelhouse/ "$@"
 }
 
 
-setup_fedora_repos() {
-       announce $FUNCNAME
+setup_yum_repos() {
+    announce $FUNCNAME
 
-       if [ $ONLY_RIFT_REPOS == 1 ]; then
-               cmd $YUM clean all
-               rm -f $STAGING/etc/yum.repos.d/*
-               cmd  rpm --rebuilddb
-       fi
+    if [[ $ONLY_RIFT_REPOS == 1 ]]; then
+        rm -f $STAGING/etc/yum.repos.d/*
+        cmd  rpm --rebuilddb
+    fi
+    if [[ $DISTRO == fedora ]]; then
        if [[ $REPO_FILE =~ .rpm$ ]]; then
-               cmd $YUM localinstall --assumeyes $REPO_FILE
+            cmd rpm -i --force $REPO_FILE
+       else
+            cp $REPO_FILE $STAGING/etc/yum.repos.d/
+       fi
+    elif [[ $DISTRO == Ubuntu ]]; then
+       if [[ $REPO_FILE =~ .deb$ ]]; then
+           cmd dpkg -i $REPO_FILE
        else
-               cp $REPO_FILE $STAGING/etc/yum.repos.d/
+            cp $REPO_FILE $STAGING/etc/apt/sources.list.d
        fi
+    fi     
 
-       cmd $YUM clean all
+    cmd $YUM clean all
+    if [[ $DISTRO == fedora ]]; then
        cmd $YUM makecache
+    else
+       cmd $YUM update
+    fi
+
+    if [[ $DISTRO == fedora ]]; then
+           yum_install yum-utils
+           # ok if this fails
+           cmd yum-config-manager --quiet --enable updates3
+           if [[ $RELEASE == 20 ]]; then
+               # avoid a conflict later
+               yum_update vim-minimal
+           fi
+    fi
+}
 
-       if [ $FIX_PIP == 1 ]; then
-
-               # PIP3
-               echo "1) pip3 version is: "`cmd /bin/python3-pip --version`
-               rm -Rfv /tmp/pip_build_root # fixes: The temporary folder for building (/tmp/pip_build_root) is not owned by your user!
-               yum_install python3 python3-pip
-               #cat  $STAGING/bin/python3-pip
-               ls -ld $STAGING/bin/*pip*
-               # the default version of pip is so old that it can't use a https server that has multiple servers
-               echo "2) pip3 version is: "`cmd /bin/python3-pip --version`
-               cmd curl https://wheel.riftio.com/mirrors/python3_wheelhouse/pip-7.1.2-py2.py3-none-any.whl -o /tmp/pip-7.1.2-py2.py3-none-any.whl
-               cmd /bin/python3-pip install /tmp/pip-7.1.2-py2.py3-none-any.whl
-               perl -i -p -e 's/1\.4\.[0-9]/7.1.2/g;' $STAGING/bin/python3-pip
-               echo "3) pip3 version is: "`cmd /bin/python3-pip --version`
+setup_pip_repos() {
 
-       else
-               pip3 install --upgrade pip
-       fi
-
-       yum_install yum-utils
-       # ok if this fails
-       cmd yum-config-manager --quiet --enable updates3
+    rm -Rfv /tmp/pip_build_root # fixes: The temporary folder for building (/tmp/pip_build_root) is not owned by your user!
+    yum_install python3
+    cmd curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py
+    cmd python3 get-pip.py
+    PIP3_INSTALLER=/bin/pip3
 }
 
 # this needs to be after the .rpms installs so that yum-utils is installed
 config_rw_repos() {
-       announce $FUNCNAME
+    announce $FUNCNAME
 
+    if [[ $DISTRO == fedora ]]; then
        # release(stable) is the default in the riftware.repo
        # we never want to leave these enabled in production
        if [[ "$RW_REPO" = "nightly" ]]; then
-               YUM_OPTS="--enablerepo=RIFT.ware-4.1-nightly,RIFT.ware-4.1-testing"
+            YUM_OPTS="--enablerepo=RIFT.ware-4.1-nightly,RIFT.ware-4.1-testing"
        elif [[ "$RW_REPO" = "testing" ]]; then
-               YUM_OPTS="--enablerepo=RIFT.ware-4.1-testing"
+            YUM_OPTS="--enablerepo=RIFT.ware-4.1-testing"
        fi
 
        cmd $YUM clean all
        cmd $YUM makecache
+    fi
 
 }
 
 install_kernel() {
 
-       if [ -n "$KERNEL_REV" ]; then
-               yum_install kernel-${KERNEL_REV} kernel-devel-${KERNEL_REV} kernel-modules-extra-${KERNEL_REV}
+    if [ -n "$KERNEL_REV" ]; then
+       if $CONTAINER; then
+            yum_install kernel-devel-${KERNEL_REV}
+       else
+            yum_install kernel-${KERNEL_REV} kernel-devel-${KERNEL_REV} kernel-modules-extra-${KERNEL_REV}
+        fi
+       if [ ! -e /lib/modules/${KERNEL_REV}/build ]; then
+           mkdir -p /lib/modules/${KERNEL_REV}
+           ln -s /usr/src/kernels/${KERNEL_REV} /lib/modules/${KERNEL_REV}/build
+       fi
+    else
+       if [[ $DISTRO == fedora ]]; then
+            yum_install kernel-devel
+       else
+           :
        fi
+    fi
 
 }
 
 
 
 setup_usr_rift() {
-       announce $FUNCNAME
+    announce $FUNCNAME
 
-       # RIFT-11697
-       #yum_install $YUM_OPTS rift_scripts
+    # RIFT-11697
+    #yum_install $YUM_OPTS rift_scripts
 
-       cmd adduser -m -s /bin/bash -U rift
-       echo "rift:rift" | cmd chpasswd
+    cmd_rc id rift
+    if [ $? -ne 0 ]; then
+       if [[ $DISTRO == fedora ]]; then
+            cmd adduser -m -s /bin/bash -U rift
+       elif [[ $DISTRO == ubuntu ]]; then
+           cmd adduser --disabled-password --shell /bin/bash --gecos rift rift
+       fi
+    fi
+    echo "rift:rift" | cmd chpasswd
 
-       #rm -rf $STAGING/home/rift/scripts
-       #ln -s /usr/rift/scripts $STAGING/home/rift/scripts
+    #rm -rf $STAGING/home/rift/scripts
+    #ln -s /usr/rift/scripts $STAGING/home/rift/scripts
 
+    if [[ $PLATFORM_OS == fc20 ]]; then
        yum_install $YUM_OPTS riftware-base
+    fi
 
-       #
-       # FIX ME
-       #cp $REPO_FILE $STAGING/etc/yum.repos.d/
-       # this looks fixed in setup_fedora_repos
+    #
+    # FIX ME
+    #cp $REPO_FILE $STAGING/etc/yum.repos.d/
+    # this looks fixed in setup_repos
 
 }
 
 setup_access() {
-       announce $FUNCNAME
+    announce $FUNCNAME
+    
+    # sshd is already enabled for other distros
+    if [[ $DISTRO == fedora ]]; then
        cmd systemctl enable sshd
+    fi
+    
     echo root:toor | cmd chpasswd
     echo "ALL ALL=NOPASSWD: ALL" >> ${STAGING}/etc/sudoers
     sed -i '/requiretty/s/^/#/' ${STAGING}/etc/sudoers || die "sed failed"
 
-       install --group=root --owner=root --mode=700 -d $STAGING/root/.ssh/
-       cp $RIFTROOT/scripts/vm/root/.ssh/* $STAGING/root/.ssh/
-       chmod 600 $STAGING/root/.ssh/*
+    install --group=root --owner=root --mode=700 -d $STAGING/root/.ssh/
+    if $CONTAINER; then
+       test -f /root/.ssh/id_rsa || ssh-keygen -N "" -f /root/.ssh/id_rsa
+       cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
+    else
+        cp $RIFT_ROOT/scripts/vm/root/.ssh/* $STAGING/root/.ssh/
+    fi
+    chmod 600 $STAGING/root/.ssh/*
 
-    perl -i -p -e  's/PasswordAuthentication yes/PasswordAuthentication no/;' ${STAGING}/etc/ssh/sshd_config
-       if [ -e ${STAGING}/etc/selinux/config ]; then
-                       sed -i 's,^\(SELINUX=\).*,\1permissive,' ${STAGING}/etc/selinux/config || die "sed failed"
-       fi
+    sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' ${STAGING}/etc/ssh/sshd_config
+    if [ -e ${STAGING}/etc/selinux/config ]; then
+            sed -i 's,^\(SELINUX=\).*,\1permissive,' ${STAGING}/etc/selinux/config || die "sed failed"
+    fi
 
 }
 
@@ -518,62 +592,71 @@ setup_access() {
 brand_images() {
 
         announce $FUNCNAME
+    if ! $CONTAINER; then
+        echo "${SHA}" > ${STAGING}/etc/rift.hash
+        echo -e "checking /etc/rift.hash: `cat ${STAGING}/etc/rift.hash` ";
+    fi
 
-       echo "${SHA}" > ${STAGING}/etc/rift.hash
-       echo -e "checking /etc/rift.hash: `cat ${STAGING}/etc/rift.hash` ";
-
-       # remove extra spaces and make into CSV
-       clean_modes=$(echo "$MODES" | awk '$1=$1' | sed 's/ /,/g' )
+    # remove extra spaces and make into CSV
+    clean_modes=$(echo "$MODES" | awk '$1=$1' | sed 's/ /,/g' )
 
-       json=$(echo "{\"modes\":\"${clean_modes}\",\"build_number\":\"${RIFT_BUILD_NUMBER}\",\"version\":\"${VERSION}\",\"branch\":\"${BRANCH}\",\"hash\":\"${SHA}\"}")
-       echo "${json}" > ${STAGING}/etc/rift.vm
+    json=$(echo "{\"modes\":\"${clean_modes}\",\"build_number\":\"${RIFT_BUILD_NUMBER}\",\"version\":\"${VERSION}\",\"branch\":\"${BRANCH}\",\"hash\":\"${SHA}\"}")
+    echo "${json}" > ${STAGING}/etc/rift.vm
         echo -e "checking /etc/rift.vm: `cat ${STAGING}/etc/rift.vm` ";
 
 
 }
 
 output_images() {
-       local output_type
-
-       announce $FUNCNAME
-       for output_type in ${OUTPUTS}; do
-               case ${output_type} in
-                       qcow2)
-                               pack_qcow2
-                               compress_qcow2
-                               ;;
-                       disk-image)
-                               pack_image
-                               ;;
-                       *)
-                               echo
-                               echo "WARNING:  Unknown output type '${output_type}'"
-                               echo
-                               ;;
-               esac
-       done
+    local output_type
+
+    announce $FUNCNAME
+    for output_type in ${OUTPUTS}; do
+        case ${output_type} in
+            qcow2)
+                pack_qcow2
+                compress_qcow2
+                ;;
+            disk-image)
+                pack_image
+                ;;
+            *)
+                echo
+                echo "WARNING:  Unknown output type '${output_type}'"
+                echo
+                ;;
+        esac
+    done
 }
 
-install_host_packages() {
-
-       yum -y install nbd
+RIFT_ROOT=$(dirname $(dirname $(dirname $(realpath $0))))
+BUILDDIR="${RIFT_ROOT}/.build/vm"
 
-}
-
-RIFTROOT=$(dirname $(dirname $(dirname $(realpath $0))))
-BUILDDIR="${RIFTROOT}/.build/vm"
+PLATFORM_OS=$(${RIFT_ROOT}/scripts/util/host-platform)
 
 #SEED_URL=http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/x86_64/
 SEED_URL=http://repo.riftio.com/releases/4.0/vm_images
-SEED=Fedora-x86_64-20-20131211.1-sda.qcow2
 SEED_PATH=""
 FEDORA_REL=20
 OUTPUTS="qcow2 disk-image"
 IMG_PREFIX="rift"
 INSTALL_ONLY=false
 INSTALL_EXTRA=true
-ENABLE_LAB=fals3
+ENABLE_LAB=false
 RW_REPO="release"
+# If we are in a container then proc 1 (the init process) will have control group
+# restrictions.  If we are not in a container then proc 1 will be in control group
+# "/" for all control groups.  So if /proc/1/cgroups has any line that does NOT
+# end with /, we are in a container
+if [ "$(basename $0)" == "mkcontainer" ]; then
+    CONTAINER=true
+elif egrep '/.' /proc/1/cgroup >/dev/null 2>&1; then
+    CONTAINER=true
+else
+    CONTAINER=false
+fi
+
+echo "Setting up a container: $CONTAINER"
 
 # Are we building a local RIFT.io dev image.  If so
 # additional configuration will be included that assumes
@@ -591,260 +674,320 @@ _NBD_NODES=""
 # This is roughly the amount of space required to hold the .install tree when
 # built with NOT_DEVELOPER_BUILD=TRUE, also known as 1.5G
 _EXTRA_DISK_SPACE_K=1572864
-KERNEL_REV="3.12.9-301.fc20.x86_64"
 
-REPO_FILE=http://repo.riftio.com/releases/riftware-release-latest.rpm
-ONLY_RIFT_REPOS=1
-USE_INTERNET_REPOS=0
-FIX_PIP=1
-PIP3_INSTALLER=/bin/python3-pip
-YUM=/bin/yum
-RELEASE=20
+if [[ $PLATFORM_OS == 'fc20' ]]; then
+    DISTRO=fedora
+    RELEASE=20
+    SHORTNAME=fc20
+    YUM=/bin/yum
+    PIP3_INSTALLER=/bin/python3-pip
+    FIX_PIP=1
+    ONLY_RIFT_REPOS=1
+    USE_INTERNET_REPOS=0
+    KERNEL_REV="3.12.9-301.fc20.x86_64"
+    SEED=Fedora-x86_64-20-20131211.1-sda.qcow2
+    REPO_FILE=http://repos.riftio.com/releases/riftware-fedora.rpm
+    NODEJS=/usr/bin/node
+    
+elif [[ $PLATFORM_OS == 'fc23' ]]; then
+    DISTRO=fedora
+    RELEASE=23
+    SHORTNAME=fc23
+    YUM=dnf
+    PIP3_INSTALLER=/bin/pip3
+    FIX_PIP=0
+    ONLY_RIFT_REPOS=0
+    USE_INTERNET_REPOS=1
+    KERNEL_REV=""
+    SEED="Fedora-Cloud-Base-23-20151030.x86_64.qcow2"
+    REPO_FILE="riftware-release.repo"
+    NODEJS=/usr/bin/node
+    
+elif [[ $PLATFORM_OS == 'ub16' ]]; then
+    DISTRO=ubuntu
+    RELEASE=16.04
+    SHORTNAME=ub16
+    YUM="DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get"
+    PIP3_INSTALLER=/usr/bin/pip3
+    FIX_PIP=0
+    ONLY_RIFT_REPOS=0
+    USE_INTERNET_REPOS=1
+    KERNEL_REV=""
+    REPO_FILE=
+    NODEJS=/usr/bin/nodejs    # renamed from 'node' to 'nodejs' in more recent versions
+
+else
+    echo "Internal error: PLATFORM_OS is set to $PLATFORM_OS" >&2
+    exit 1
+    
+fi
 
 usage() {
-       MODES=$(ls $(dirname $0).rpm)
-       cat <<-EOF
-               $(basename $0) [ARGUMENTS]
-
-               This script is used to create base VM images capable of running the RW.OS.  In addition
-               it can also add a full RIFT.io developer environment which adds internal tools like
-               ldap and nfs.
-
-               ARGUMENTS:
-                       -h, --help               This screen
-                       -c, --clean              clean the build area
-
-                       -b, --builddir [PATH]    Directory to use for building the build [${BUILDDIR}]
-                       -p, --prefix             Prefix for the image filename [${IMG_PREFIX}]
-                       -s, --seed [URL]         Image seed [${SEED_URL}/${SEED}]
-                       -r, --rwrepo [REPO]      RW Repo to enable: release/testing/nightly [${RW_REPO}]
-                       -o, --outputs [OUTPUTS]  Comma seperated list of images to generate [${OUTPUTS}]
-                       --install-only           Only install packages, do not produce images
-                       -m, --modes [MODES]      Include packages for specified modes
-                       -e, --extra              extra space to reserve in GB
-                       --repo_file file         file to use to enable additional repos
-                       --internet               do not delete existing repo files and get stuff from internet
-
-               OUTPUTS:
-                       qcow2:         Openstack/kvm suitable image
-                       disk-image:    Raw disk image, suitable for EC2
-
-               EXAMPLES:
-                       build an image to be used in our environment, run in $RIFT_ROOT:
-                       mkdir tmp
-                       sudo ./scripts/cloud/mkvmimage -d -b tmp -o qcow2
-
-               MODES:
-                       one or more of $MODES
-                       
-       EOF
+    MODES=$(ls $(dirname $0).rpm)
+    cat <<-EOF
+        $(basename $0) [ARGUMENTS]
+
+        This script is used to create base VM images or initialize a container so it is
+                capable of running the RW.OS.  In addition
+        it can also add a full RIFT.io developer environment which adds internal tools like
+        ldap and nfs.
+
+                Arguments and options for VM creation are very different from the arguments and options
+                for initializing a container.
+
+                When initializing a container, it is assumed that /etc/resolv.conf is already initialized.
+
+        COMMON OPTIONS:
+            -h, --help               This screen
+                        --container              Initialize this container
+            -r, --rwrepo [REPO]      RW Repo to enable: release/testing/nightly [${RW_REPO}]
+            -m, --modes [MODE]      Include packages for specified modes, may be repeated for multiple modes
+            --repofile file         file to use to enable additional repos
+            --internet               do not delete existing repo files and get stuff from internet
+
+                CONTAINER OPTIONS:
+
+                VM OPTIONS:
+            -c, --clean      clean the build area
+
+            -b, --builddir [PATH]    Directory to use for building the build [${BUILDDIR}]
+            -p, --prefix             Prefix for the image filename [${IMG_PREFIX}]
+            -s, --seed [URL]         Image seed [${SEED_URL}/${SEED}]
+            -o, --outputs [OUTPUTS]  Comma seperated list of images to generate [${OUTPUTS}]
+            --install-only           Only install packages, do not produce images
+            -e, --extra              extra space to reserve in GB
+
+        VM OUTPUTS:
+            qcow2:         Openstack/kvm suitable image
+            disk-image:    Raw disk image, suitable for EC2
+
+        EXAMPLES:
+            build an image to be used in our environment, run in $RIFT_ROOT:
+            mkdir tmp
+            sudo ./scripts/cloud/mkvmimage -d -b tmp -o qcow2
+
+                        initialize a new container to be used for development (run as root):
+                        ./scripts/vm_image/mkvmimage --container
+
+        MODES:
+            one or more of $MODES
+            
+EOF
 }
 
 
 while [ $# -gt 0 ]; do
 
-       case "$1" in
-               -h|--help)
-                       usage
-                       exit 0
-                       ;;
-               -b|--builddir)
-                       shift
-                       BUILDDIR=${1}
-                       ;;
-               -p|--prefix)
-                       shift
-                       IMG_PREFIX=${1}
-                       ;;
-               -r|--rwrepo)
-                       shift
-                       RW_REPO=${1}
-                       ;;
-               -s|--seed)
-                       shift
-                       SEED_URL=${1%/*}
-                       SEED=${1##*/}
-                       ;;
-               -e|--extra)
-                       shift
-                       _EXTRA_DISK_SPACE_K=$(expr $1 \* 1024 \* 1024)
-                       ;;
-               -o|--outputs)
-                       shift
-                       OUTPUTS=$(echo ${1} | tr ',' ' ')
-                       ;;
-               --install-only)
-                       INSTALL_ONLY=true
-                       ;;
-               --modes|-m)
-                       shift
-                       modes_in="$modes_in ${1}"
-                       ;;
-               --clean|-c)
-                       CLEAN_FIRST=true
-                       ;;
-               --repo-file)
-                       shift
-                       REPO_FILE="$1"
-                       ;;
-               --internet)
-                       ONLY_RIFT_REPOS=0
-                       USE_INTERNET_REPOS=1
-                       ;;
-               --no-fix-pip)
-                       FIX_PIP=0
-                       ;;
-               --kernel)
-                       shift
-                       KERNEL_REV="$1"
-                       ;;
-               --fc23)
-                       # short hand
-                       PIP3_INSTALLER=/bin/pip3
-                       FIX_PIP=0
-                       ONLY_RIFT_REPOS=0
-                       USE_INTERNET_REPOS=1
-                       KERNEL_REV=""
-                       SEED="Fedora-Cloud-Base-23-20151030.x86_64.qcow2"
-                       YUM=dnf
-                       RELEASE=23
-                       REPO_FILE="riftware-release.repo"
-                       ;;
-               *)
-                       set -x
-                       echo "args= $# "
-                       #die "Unknown argument $1"
-                       ;;
-       esac
-       shift
+    case "$1" in
+        -h|--help)
+            usage
+            exit 0
+            ;;
+        -b|--builddir)
+            shift
+            BUILDDIR=${1}
+            ;;
+        -p|--prefix)
+            shift
+            IMG_PREFIX=${1}
+            ;;
+        -r|--rwrepo)
+            shift
+            RW_REPO=${1}
+            ;;
+        -s|--seed)
+            shift
+            SEED_URL=${1%/*}
+            SEED=${1##*/}
+            ;;
+        -e|--extra)
+            shift
+            _EXTRA_DISK_SPACE_K=$(expr $1 \* 1024 \* 1024)
+            ;;
+        -o|--outputs)
+            shift
+            OUTPUTS=$(echo ${1} | tr ',' ' ')
+            ;;
+        --install-only)
+            INSTALL_ONLY=true
+            ;;
+        --modes|-m)
+            shift
+            modes_in="$modes_in ${1}"
+            ;;
+        --clean|-c)
+            CLEAN_FIRST=true
+            ;;
+        --repo-file|--repofile)
+            shift
+            REPO_FILE="$1"
+            ;;
+        --no-repo-file)
+            REPO_FILE=""
+            ;;
+        --internet)
+            ONLY_RIFT_REPOS=0
+            USE_INTERNET_REPOS=1
+            ;;
+        --no-fix-pip)
+            FIX_PIP=0
+            ;;
+        --kernel)
+            shift
+            KERNEL_REV="$1"
+            ;;
+        *)
+            set -x
+            echo "args= $# "
+            die "Unknown argument $1"
+            ;;
+    esac
+    shift
 done
 
+if ${CONTAINER}; then
+    # These need to be reset when setting up a container:
+    BUILDDIR=
+    STAGING=
+fi
+
 if [ ${UID} != 0 ]; then
-       die "$(basename $0) must be run as root"
+    die "$(basename $0) must be run as root"
 fi
 
 VM_DIR=$(dirname $0)
-if $CLEAN_FIRST; then
-       rm -rf $BUILDDIR
+if ! ${CONTAINER}; then
+    if $CLEAN_FIRST; then
+        rm -rf $BUILDDIR
+    fi
+    mkdir -p $BUILDDIR
 fi
-mkdir -p $BUILDDIR
-# process MODES
 
+# process MODES
 MODES=" "
 
 add_mode2() {
-       if [[ "$MODES" =~ " $1 " ]]; then
-               return
-       fi
-       if [ -f $VM_DIR/${1}.depends ]; then
-               for dep in $(cat $VM_DIR/${1}.depends); do
-                       add_mode2 $dep
-               done
-       fi
-       MODES=" $MODES $1 "
+    if [[ "$MODES" =~ " $1 " ]]; then
+        return
+    fi
+    if [ -f $VM_DIR/${1}.depends ]; then
+        for dep in $(cat $VM_DIR/${1}.depends); do
+            add_mode2 $dep
+        done
+    fi
+    MODES=" $MODES $1 "
 }
 
 add_mode() {
-       IMG_PREFIX="${IMG_PREFIX}-${1}"
-       add_mode2 $1
+    IMG_PREFIX="${IMG_PREFIX}-${1}"
+    add_mode2 $1
 }
 
 for mode in $modes_in; do
-       add_mode $mode
+    add_mode $mode
 done
 
-SHA=$(git rev-parse --short HEAD)
-if [ -z "${SHA}" ]; then
-       die "Failed to find a git sha"
-fi
+if ! ${CONTAINER}; then
+    SHA=$(git rev-parse --short HEAD)
+    if [ -z "${SHA}" ]; then
+    die "Failed to find a git sha"
+    fi
 
-BRANCH=$(git rev-parse --abbrev-ref HEAD)
-VERSION=$(cat ./RELEASE) # full 4 digits like 4.2.0.0
+    BRANCH=$(git rev-parse --abbrev-ref HEAD)
+    VERSION=$(cat ./RELEASE) # full 4 digits like 4.2.0.0
 
-RIFT_ROOT=$(pwd)
-source ./scripts/packaging/getbuild
-echo "RIFT_BUILD_NUMBER=${RIFT_BUILD_NUMBER}";
+    source ${RIFT_ROOT}/scripts/packaging/getbuild
+    echo "RIFT_BUILD_NUMBER=${RIFT_BUILD_NUMBER}";
 
 
-#if [ $BRANCH == "master" ]; then
-#      IMG_PREFIX="${IMG_PREFIX}-${SHA}"
-#else
-       #IMG_PREFIX="${IMG_PREFIX}-${VERSION}-${BRANCH}-${SHA}"
-       #IMG_PREFIX="${IMG_PREFIX}-${VERSION}-${RIFT_BUILD_NUMBER}-${BRANCH}"
-#fi
+    #if [ $BRANCH == "master" ]; then
+    #   IMG_PREFIX="${IMG_PREFIX}-${SHA}"
+    #else
+    #   IMG_PREFIX="${IMG_PREFIX}-${VERSION}-${BRANCH}-${SHA}"
+    #   IMG_PREFIX="${IMG_PREFIX}-${VERSION}-${RIFT_BUILD_NUMBER}-${BRANCH}"
+    #fi
 
-IMG_PREFIX="${IMG_PREFIX}-${VERSION}-${RIFT_BUILD_NUMBER}-${BRANCH}"
+    IMG_PREFIX="${IMG_PREFIX}-${VERSION}-${RIFT_BUILD_NUMBER}-${BRANCH}"
+
+    announce "BUILDING $IMG_PREFIX "
+fi
 
-announce "BUILDING $IMG_PREFIX "
 echo "MODES=$MODES "
 #echo "printenv:"
 #printenv
 
+if ! ${CONTAINER}; then 
+    #check_build_area  -- we cannot be under $RIFT_ROOT unless we are also in .build
+    # JLM -- IS THIS STILL TRUE????
+    x=$(realpath $BUILDDIR)
+    if [[ $x =~ $RIFT_ROOT && ! $x =~ $RIFT_ROOT/.build ]]; then
+    echo "ERROR $x is not an approriate BUILDDIR. It must not be inside RIFT_ROOT unless it is under .build"
+    exit 1
+    fi
 
-#check_build_area  -- we cannot be under $RIFT_ROOT unless we are also in .build
-# JLM -- IS THIS STILL TRUE????
-x=$(realpath $BUILDDIR)
-if [[ $x =~ $RIFTROOT && ! $x =~ $RIFTROOT/.build ]]; then
-       echo "ERROR $x is not an approriate BUILDDIR. It must not be inside RIFTROOT unless it is under .build"
-       exit 1
-fi
-
-
-STAGING=${BUILDDIR}/image-staging
-if ${INSTALL_ONLY}; then
-       STAGING=""
-fi
 
-SEED_PATH=${BUILDDIR}/${SEED}
+    STAGING=${BUILDDIR}/image-staging
+    if ${INSTALL_ONLY}; then
+    STAGING=""
+    fi
 
-install_host_packages
+    SEED_PATH=${BUILDDIR}/${SEED}
 
-if ! ${INSTALL_ONLY}; then
-       fetch_seed
-       setup
+    if ! ${INSTALL_ONLY}; then
+    fetch_seed
+    setup
+    fi
 fi
 
-setup_fedora_repos
+if [ -n "$REPO_FILE" ]; then
+    setup_yum_repos
+fi
+setup_pip_repos
 install_kernel
 
 cmd df -h /
 for mode in $MODES; do
-       announce "installing $mode"
-       basename="$VM_DIR/$mode"
-       if [ -s $basename.setup.sh ]; then
-               announce "Sourcing $basename.setup.sh"
-               source $basename.setup.sh
-               cmd df -h /
-       fi
-       if [ -s $basename.rpms ]; then
-               announce "Installing $basename.rpms"
-               yum_install $(cat $basename.rpms)
-               cmd df -h /
-       fi
-       if [ -s $basename.pip ]; then
-               announce "Installing $basename.pip"
-               pip2_install $(cat $basename.pip)
-               cmd df -h /
-       fi
-       if [ -s $basename.pip3 ]; then
-               announce "Installing $basename.pip3"
-               pip3_install $(cat $basename.pip3)
-               cmd df -h /
-       fi
-       if [ -s $basename.kilo ]; then
-               announce "Installing $basename.kilo"
-
-               #pip3_install_kilo_modules $(cat $basename.kilo)
-               # switch to new kilo pip3 wheelhouse after 4.1
-               pip3_install_kilo42_modules $(cat $basename.kilo)
-
-               cmd df -h /
-       fi
-       if [ -s $basename.config.sh ]; then
-               announce "Sourcing $basename.config.sh"
-               source $basename.config.sh
-               cmd df -h /
-       fi
+    announce "installing $mode"
+    basename="$VM_DIR/$mode"
+    if [ -s $basename.setup.sh ]; then
+        announce "Sourcing $basename.setup.sh"
+        source $basename.setup.sh
+        cmd df -h /
+    fi
+    if [ -s $basename.rpms ]; then
+        announce "Installing $basename.rpms"
+       # The format of the .rpms file is:
+       # - Comments run from '#' to end-of-line
+       # - Blank lines are ignored
+       # - Packages listed on a line without : are always included
+       # - format of other lines is: "os(,os)*:pkg"  where os is ub16, fc20, etc.
+        yum_install $(cat $basename.rpms | sed 's/#.*//' | egrep -v '^\s*$' | egrep '^[^:]*'$SHORTNAME'[^:]*:|^[^:]+$' | sed -r 's/^[^:]*:\s*//')
+        cmd df -h /
+    fi
+    if [ -s $basename.pip ]; then
+        announce "Installing $basename.pip"
+        pip2_install $(cat $basename.pip)
+        cmd df -h /
+    fi
+    if [ -s $basename.pip3 ]; then
+        announce "Installing $basename.pip3"
+        pip3_install $(cat $basename.pip3)
+        cmd df -h /
+    fi
+    if [ -s $basename.kilo ]; then
+        announce "Installing $basename.kilo"
+
+        #pip3_install_kilo_modules $(cat $basename.kilo)
+        # switch to new kilo pip3 wheelhouse after 4.1
+        pip3_install_kilo42_modules $(cat $basename.kilo)
+
+        cmd df -h /
+    fi
+    if [ -s $basename.config.sh ]; then
+        announce "Sourcing $basename.config.sh"
+        source $basename.config.sh
+        cmd df -h /
+    fi
 done
 
 # needs to happen after .rpm installs to yum-utils is installed
@@ -854,12 +997,14 @@ setup_usr_rift
 setup_access
 
 if ${INSTALL_ONLY}; then
-       exit 0
+    exit 0
 fi
 
 brand_images
-output_images
+
+if ! $CONTAINER; then
+    output_images
+fi
 
 _on_exit
 
-# vim: noet
diff --git a/scripts/vm_image/package.depends b/scripts/vm_image/package.depends
new file mode 100644 (file)
index 0000000..df967b9
--- /dev/null
@@ -0,0 +1 @@
+base
diff --git a/scripts/vm_image/package.rpms b/scripts/vm_image/package.rpms
new file mode 100644 (file)
index 0000000..5507afd
--- /dev/null
@@ -0,0 +1,39 @@
+# Needed for building:
+ub16: autoconf
+ub16: autoconf-archive
+ub16: autofs
+ub16: automake
+ub16: autopoint
+ub16: autotools-dev
+ub16: bison
+ub16: build-essential
+ub16: bzr
+ub16: bzr-builder
+ub16: ca-certificates
+ub16: cdbs
+ub16: debconf
+ub16: debhelper
+ub16: debianutils
+ub16: debootstrap
+ub16: devscripts
+ub16: dh-autoreconf
+ub16: dh-python
+ub16: dh-strip-nondeterminism
+ub16: dh-translations
+ub16: dpkg-dev
+ub16: fakeroot
+ub16: git-build-recipe
+ub16: gnome-pkg-tools
+ub16: gnupg
+ub16: gtk-doc-tools
+ub16: language-pack-en
+ub16: lintian
+ub16: make
+ub16: patch
+ub16: patchutils
+ub16: pbuilder
+ub16: pbzip2
+ub16: pkg-config
+ub16: po-debconf
+ub16: pristine-tar
+ub16: quilt
diff --git a/scripts/vm_image/riftware-mirrors.repo b/scripts/vm_image/riftware-mirrors.repo
new file mode 100644 (file)
index 0000000..c3d8696
--- /dev/null
@@ -0,0 +1,98 @@
+[fedora]
+name=Fedora $releasever - $basearch
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/releases/$releasever/Everything/$basearch/os/
+enabled=1
+metadata_expire=7d
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[fedora-debuginfo]
+name=Fedora $releasever - $basearch - Debug
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/releases/$releasever/Everything/$basearch/debug/
+enabled=0
+#metadata_expire=7d
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[fedora-source]
+name=Fedora $releasever - Source
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/releases/$releasever/Everything/source/SRPMS/
+enabled=0
+#metadata_expire=7d
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[updates2]
+name=RW Fedora Updates2
+baseurl=http://repos.riftio.com/frozen/fedora/updates2/
+enabled=1
+skip_if_unavailable=False
+
+[updates3]
+name=RW Fedora Updates3
+baseurl=http://repos.riftio.com/frozen/fedora/updates3/$releasever/$basearch/
+enabled=1
+skip_if_unavailable=False
+
+[updates]
+name=Fedora $releasever - $basearch - Updates
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/updates/$releasever/$basearch/
+enabled=1
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[updates-debuginfo]
+name=Fedora $releasever - $basearch - Updates - Debug
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/updates/$releasever/$basearch/debug/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[updates-source]
+name=Fedora $releasever - Updates Source
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/updates/$releasever/SRPMS/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[updates-testing]
+name=Fedora $releasever - $basearch - Test Updates
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/updates/testing/$releasever/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[updates-testing-debuginfo]
+name=Fedora $releasever - $basearch - Test Updates Debug
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/updates/testing/$releasever/$basearch/debug/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+[updates-testing-source]
+name=Fedora $releasever - Test Updates Source
+failovermethod=priority
+baseurl=http://repos.riftio.com/frozen/fedora/updates/testing/$releasever/SRPMS/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
+skip_if_unavailable=False
+
+
+
diff --git a/scripts/vm_image/riftware-release.repo b/scripts/vm_image/riftware-release.repo
deleted file mode 100644 (file)
index cab9375..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-#   Copyright 2016 RIFT.IO Inc
-#
-#   Licensed under the Apache License, Version 2.0 (the "License");
-#   you may not use this file except in compliance with the License.
-#   You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS,
-#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#   See the License for the specific language governing permissions and
-#   limitations under the License.
-#
-# RIFT.ware 4.1
-# 
-[RIFT.ware-4.1]
-name=RIFT.ware
-baseurl=http://repo.riftio.com/releases/riftware/4.1/20/x86_64/release
-enabled=1
-metadata_expire=1m
-gpgcheck=0
-skip_if_unavailable=False
-
-[RIFT.ware-4.1-testing]
-name=RIFT.ware Testing
-baseurl=http://repo.riftio.com/releases/riftware/4.1/20/x86_64/testing
-enabled=0
-metadata_expire=1m
-gpgcheck=0
-skip_if_unavailable=False
-
-[RIFT.ware-4.1-nightly]
-name=RIFT.ware Nightly
-baseurl=http://repo.riftio.com/releases/riftware/4.1/20/x86_64/nightly
-enabled=0
-metadata_expire=1m
-gpgcheck=0
-skip_if_unavailable=False
-#
-# RIFT.ware 4.1
-# 
-
-#
-# RIFT.ware 4.0
-# 
-[RIFT.ware]
-name=RIFT.ware
-baseurl=http://repo.riftio.com/releases/riftware/4.0/20/x86_64/release
-enabled=0
-metadata_expire=1m
-gpgcheck=0
-skip_if_unavailable=False
-
-[RIFT.ware-testing]
-name=RIFT.ware Testing
-baseurl=http://repo.riftio.com/releases/riftware/4.0/20/x86_64/testing
-enabled=0
-metadata_expire=1m
-gpgcheck=0
-skip_if_unavailable=False
-
-[RIFT.ware-nightly]
-name=RIFT.ware Nightly
-baseurl=http://repo.riftio.com/releases/riftware/4.0/20/x86_64/nightly
-enabled=0
-metadata_expire=1m
-gpgcheck=0
-skip_if_unavailable=False
-#
-# RIFT.ware 4.0
-# 
-
-[RW.misc]
-name=Misc Packages Repacked by RIFT.io
-baseurl=http://repo.riftio.com/misc
-enabled=1
-metadata_expire=1m
-gpgcheck=0
-skip_if_unavailable=False
-
-[RW.kilo]
-name=openstack packstack Repacked by RIFT.io
-baseurl=http://repo.riftio.com/releases/4.0/kilo_yum
-enabled=1
-metadata_expire=1d
-gpgcheck=0
-skip_if_unavailable=False
-
-
diff --git a/scripts/vm_image/riftware.repo b/scripts/vm_image/riftware.repo
new file mode 100644 (file)
index 0000000..0128523
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# RIFT.ware
+# Source is available at https://github.com/RIFTIO/RIFT.ware
+#
+[RIFT.ware]
+name=RIFT.ware
+baseurl=http://repos.riftio.com/releases/riftware/release/fedora/$releasever
+enabled=1
+metadata_expire=1m
+gpgcheck=0
+skip_if_unavailable=False
+#
+# open source projects modified and/or repackaged by RIFT.io
+# modified packages can be found in our github account https://github.com/RIFTIO/
+#
+[RIFT.packages]
+name=RIFT.ware Packages
+baseurl=http://repos.riftio.com/packages/fedora/$releasever
+enabled=1
+metadata_expire=1m
+gpgcheck=0
+skip_if_unavailable=False
+#
+# miscelaneous packages that are not part of a stock fc20 distribution
+#
+[RIFT.misc]
+name=Misc Packages collected by RIFT.io
+baseurl=http://repos.riftio.com/mirrors/fedora/$releasever/misc
+enabled=1
+metadata_expire=1m
+gpgcheck=0
+skip_if_unavailable=False
+#
+# RIFT.ware OSM
+#
+[RIFT.ware-OSM]
+name=RIFT.ware OSM
+baseurl=http://repos.riftio.com/public/releases/riftware/OSM/fedora/20
+enabled=1
+metadata_expire=1m
+gpgcheck=0
+skip_if_unavailable=False
diff --git a/scripts/vm_image/scripts/build_rift_build b/scripts/vm_image/scripts/build_rift_build
new file mode 100644 (file)
index 0000000..92589e2
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+
+if [ $(whoami) != "root" ]; then
+       echo "MUST be root to get a prviliged container with LXC"
+       exit 1
+fi
+container=${1:-rift-build}
+image=${2:-fc20}
+script=${3:-init_build_container_osm}
+echo building container ${container} based on image ${image} using script ${script}
+lxc launch ${image} ${container}
+
+output=$(lxc exec ${container} -- ping -c 1 repo.riftio.com)
+while [[ ! $output =~ "1 received" ]]; do
+       echo "waiting for DNS"
+       sleep 1
+       output=$(lxc exec ${container} -- ping -c 1 repo.riftio.com)
+done
+lxc file push ${script} ${container}/root/${script}
+lxc exec  ${container} -- bash /root/${script}
diff --git a/scripts/vm_image/scripts/build_rift_container b/scripts/vm_image/scripts/build_rift_container
new file mode 100644 (file)
index 0000000..b6ed518
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+re="Starting ([-a-z]+)\b"
+
+echo building container....
+output=$(lxc launch rift)
+if [[ $output =~ $re ]]; then
+       echo $output
+       container=${BASH_REMATCH[1]}
+       echo container name is $container
+else
+       echo -e "error parsing output for container name:\n$output\n"
+       exit 1
+fi
+
+
+lxc exec  $container -- yum-config-manager --enable RIFT.ware-4.2-testing
+output=$(lxc exec $container -- host repo.riftio.com)
+re="repo\.riftio\.com has address 50\.252\.212\.201"
+while [[ ! $output =~ $re ]]; do
+       echo waiting for DNS
+       sleep 1
+       output=$(lxc exec $container -- host repo.riftio.com)
+done
+lxc exec  $container -- yum makecache
+lxc exec  $container -- yum install -y riftware-launchpad.x86_64
+lxc exec  $container -- systemctl start rwlp
diff --git a/scripts/vm_image/scripts/build_rift_runtime b/scripts/vm_image/scripts/build_rift_runtime
new file mode 100644 (file)
index 0000000..a7d4d32
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+
+if [ $(whoami) != "root" ]; then
+       echo "MUST be root to get a privileged container with LXC"
+       exit 1
+fi
+container=${1:-rift}
+image=${2:-fc20}
+script=${3:-init_container_osm}
+echo building container ${container} based on image ${image} using script ${script}
+lxc launch ${image} ${container}
+
+output=$(lxc exec ${container} -- ping -c 1 repo.riftio.com)
+while [[ ! $output =~ "1 received" ]]; do
+       echo "waiting for DNS"
+       sleep 1
+       output=$(lxc exec ${container} -- ping -c 1 repo.riftio.com)
+done
+lxc file push ${script} ${container}/root/${script}
+lxc exec  ${container} -- bash /root/${script}
diff --git a/scripts/vm_image/scripts/init_build_container_osm b/scripts/vm_image/scripts/init_build_container_osm
new file mode 100644 (file)
index 0000000..17e8709
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+
+yum -y install wget
+mkdir rift
+cd rift
+wget -O - http://repo.riftio.com/releases/open.riftio.com/OSM/mkvmimg.tar | tar xf -
+bash ./mkvmimg --container --modes build
+echo Container is now ready to build RIFT.ware
+# got clone ...
+# cd  ....
+# make build
diff --git a/scripts/vm_image/scripts/init_container b/scripts/vm_image/scripts/init_container
new file mode 100644 (file)
index 0000000..f550d77
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+
+yum install -y git
+git config --global user.email "Jeremy.Mordkoff@riftio.com"
+git config --global user.name "Jeremy Mordkoff"
+git config --global push.default simple
+
+mkdir .ssh
+cat <<EOF >.ssh/config
+StrictHostKeyChecking no
+
+
+host git
+        user git
+        forwardX11 no
+        identityFile ~/.ssh/id_git
+
+EOF
+
+cat <<EOF >.ssh/id_git
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAycReMTCf0oDQRagaPmvxokzaWu4h7uBgUc06eJxUnfAO6zAU
+RzPHL35+X7xXVONjEY27taMLY3KNaNAl15vKjcidb6PpFMWDLHQrlV5uipTbojgF
+rkQ/tZ8PhPSVcoWsSSXJr0jZipIGRZnu3evd7b18qDBlj8eRLR6K2FZKAvVhygXe
+Ele5eXEU/McqMh/Dm0ejJ4qp0BtiyEf5tFAUMNnNGt4WgiwQ9CGpdzt/kSfBSgIA
+Cx/CEX5GeudpK3Ny2cYHpQGbbdangTzy7EOgG9bNkODM7dtFhmhYWRs9Cdy2xAQn
+4I825PpaUYiJW9/G/bZvimgs/wVuLDve/TU+gwIBIwKCAQEAm6YcxtxeCMnFPQym
+h+ze+Yu+Y2c+v5clu3Ju71QGwvsEMcYBA7o6klpEOzmFMttMbKCJfX3G9PH4Dwb4
+nwMnOi0LvIXCbxwGGvqIBYNclsqazZjucH3Kv07RdTG1HdTVXP/kumtl/S7Ro2ge
+qzJMHcywnwDDYEl+nyYwmEKQ3bSbEKH516stIOzc+1VkajzYVCOmQ4yIuqQD6uh3
+Pwpq/3X1Rsu9Bw1970+P00t+1bKhq8k37biUZDAXPoU6CnY2eLPq35mL0Cc5Wv3S
+CDfwTn8BePma3o9pgtbxDDTVcC2+mmV66ny3+8rP0q6uZeJ/vTALOwcXG+LPFT6n
+ugVlcwKBgQD3b5uk1/28sn8ehynVNg5l9S/pMCAtsPKkXhwvLolIfn3RnAysf/jR
+Au+jNNgF3A3bIv316UN2vK9K14qW5DI7ApDG40yvzh+3Hx106gbCISZroyRdbS2X
+yv0kiy0AWsKZd09x1OQAoNWPtxaLgyOLi3Qdx93cvuNt3kQ3UPbTDQKBgQDQwBz+
+1u3euLVvtI10AJMV0LobVAApsfVRCkDRIRgbEd+Ep8lPDAVQ12wS7h4OLk7Iuhul
+MBLzRLaRp6ajfBBGkBMjQQpS1EG4/yJRTOrfXAu+1ahH7mWNQTghQtkoAT2hexS3
+5S93LSdeY2mghBHhteeYiPxhs7AjRWQQnqkzzwKBgQCGUoexQg1mb4bWDtwx6iUS
+xu4fgIZ/NCvy1ACr5hACyFLuIYM5EkU+Q2wlZdRa880B7mybcAANQduAZmEtV053
+zjFWBlzUdzXJzw/9o51E0CrMt6YG1N48dYIbJvssFAM9XgaOQF6D/4ngTXKjgbQ1
+z1xKrlPeO71KRXV9HVLKVwKBgGVkoF6Fpryi28iK5Z6+c1O9JzHYV9m81j1OH3uF
+GlZKgoJC3h8Ud5xLYGD3UG1JsTzsrleMYPnQ6vZKHb0fAJdNSx/AgVtuaRC2b8EW
+uzlJ9xOMWQz+w5xhganBYilfsDh9nFlSD72K9d1jfHKJSoOS3jQlR2Knu/Pf4CVU
+YNAFAoGBAKU4EcntM5eA1EAsJ29i8GlB3e2+Q7JE1bPO98iAZEmYzew7+4yYN6Nd
+8cJhaVM6YUb2K7AU1sLJtibi59NO/hJx1epLgyPMEPVe55IdFw91a479dmv2lP9G
+Ma4ub/Xn1ReaRkZYnz/VZEQ598heAJ5hNLkf8EzS8v7iV/leDXjw
+-----END RSA PRIVATE KEY-----
+EOF
+
+chmod 700 .ssh
+chmod 600 .ssh/*
+
+git clone git@git:rift.git
+cd rift
+git checkout lezz-mkvmimage
+./scripts/vm_image/mkvmimg --container --modes ui
+yum install -y riftware-launchpad
+systemctl start rwlp
diff --git a/scripts/vm_image/scripts/init_container_osm b/scripts/vm_image/scripts/init_container_osm
new file mode 100644 (file)
index 0000000..9a3ce5f
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+
+yum -y install wget
+mkdir rift
+cd rift
+wget -O - http://repo.riftio.com/releases/open.riftio.com/OSM/mkvmimg.tar | tar xf -
+bash ./mkvmimg --container --modes ui
+yum install -y riftware-launchpad
+systemctl start rwlp
index fd90004..0a7c913 100644 (file)
@@ -1,19 +1,4 @@
 #!/bin/bash
-#
-#    Copyright 2016 RIFT.IO Inc
-#
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
 
 echo "installing lab scripts"
 #cmd yum -y --enablerepo='*' install riftware-scripts-internal-lab
@@ -28,18 +13,18 @@ cmd "rpm -qa | grep -i rift"
 #ls -all $STAGING/home/rift/scripts/
 
 echo "running enable_lab"
+# For VMs this MUST come from /usr/rift so 
+# do containers need this from $RIFT_ROOT ???
 cmd /usr/rift/scripts/cloud/enable_lab
 
 echo "2) checking RPMS"
 cmd "rpm -qa | grep -i rift"
-<<<<<<< HEAD
 #echo "2a) checking scripts"
 #cmd "ls -all /home/rift/scripts/"
 #echo "2b) checking scripts"
 #ls -all $STAGING/home/rift/scripts/
-=======
-echo "2a) checking scripts"
-cmd "ls -all /home/rift/scripts/"
-echo "2b) checking scripts"
-ls -all $STAGING/home/rift/scripts/
->>>>>>> 124aa0224ed0fc6c0ae399e03292388eab11fe35
+
+if [ ! -e /usr/rift/bin/ssh_root ]; then
+    ln -s /usr/rift/scripts/env/ssh_root /usr/rift/bin/
+fi
+
index bf3ee55..3f9f4ca 100644 (file)
@@ -1,21 +1,5 @@
-#
-#    Copyright 2016 RIFT.IO Inc
-#
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
-
-# 
-#
+
+# STANDARD_RIFT_IO_COPYRIGHT
 
 # upgrade node binary manually
 if [[ -f $STAGING/usr/bin/node ]]; then
@@ -28,11 +12,13 @@ cmd npm set registry https://npm.riftio.com:4873/
 cmd npm set strict-ssl false
 cmd npm set progress=false
 
-# NPM self-update
-echo "===== NPM self-update take #1"
-cmd npm install npm@3.8.6 -g
-echo "===== NPM self-update take #2 (twice is required to pull in and update everything!)"
-cdm npm install npm@3.8.6 -g
+if [[ $PLATFORM_OS == 'fc20' ]]; then
+    # NPM self-update
+    echo "===== NPM self-update take #1"
+    cmd npm install npm@3.8.6 -g
+    echo "===== NPM self-update take #2 (twice is required to pull in and update everything!)"
+    cmd npm install npm@3.8.6 -g
+fi
 
 # upgrade node-gyp?
 #npm explore npm -g -- npm install node-gyp
@@ -41,7 +27,7 @@ cdm npm install npm@3.8.6 -g
 cmd npm install -g --production forever
 
 echo "===== Checking Versions:"
-echo "node:"; cmd node -v
+echo "node:"; cmd $NODEJS -v
 echo "npm:"; cmd npm -v
 echo "node-gyp:"; cmd node-gyp -v
 
@@ -49,4 +35,8 @@ echo "node-gyp:"; cmd node-gyp -v
 echo 'auto_accept: True' >>$STAGING/etc/salt/master
 cmd systemctl enable salt-master
 cmd systemctl enable salt-minion
-cmd systemctl enable libvirtd
\ No newline at end of file
+if [[ -f /etc/sysconfig/libvirtd ]]; then
+    cmd systemctl enable libvirtd
+elif [[ -f etc/init/libvirt-bin.conf ]]; then
+    cmd sysetmctl enable libvirt-bin
+fi
index 0b942bf..c9bd999 100644 (file)
@@ -5,7 +5,6 @@ certifi==2015.4.28
 crossbar==0.11.1
 dicttoxml
 ecdsa==0.13
-enum34==1.0.4
 futures==2.2.0
 junit-xml
 jsonpath-rw==1.4.0
@@ -23,10 +22,12 @@ pycrypto==2.6.1
 PyYAML==3.11
 pytest
 pytest-xdist
+python-daemon
 requests==2.8.1
 six==1.10.0
 statistics
 tornado==4.1
+tosca-parser==0.4.1.dev40
 websockets
 xmltodict
 zake==0.2.1
index 3a64686..ec80ee8 100644 (file)
-acl-2.2.52-4.fc20.x86_64
-audit-2.3.2-1.fc20.x86_64
-audit-libs-2.3.2-1.fc20.x86_64
-audit-libs-python-2.3.2-1.fc20.x86_64
-augeas-libs-1.1.0-2.fc20.x86_64
-autogen-libopts-5.18-1.fc20.x86_64
-avahi-libs-0.6.31-21.fc20.x86_64
-basesystem-10.0-9.fc20.noarch
-bash-4.2.45-4.fc20.x86_64
-bind-libs-lite-9.9.4-8.fc20.x86_64
-bind-license-9.9.4-8.fc20.noarch
-bind-utils
-binutils-2.23.88.0.1-13.fc20.x86_64
-boost-filesystem-1.54.0-9.fc20.x86_64
-boost-system-1.54.0-9.fc20.x86_64
-boost-thread-1.54.0-9.fc20.x86_64
-bzip2-1.0.6-9.fc20.x86_64
-bzip2-libs-1.0.6-9.fc20.x86_64
-ca-certificates-2013.1.94-18.fc20.noarch
-c-ares-1.10.0-2.fc20.x86_64
-c-ares-devel-1.10.0-2.fc20.x86_64
-ceph-libs-0.67.3-2.fc20.x86_64
-chkconfig-1.3.60-4.fc20.x86_64
-cloud-init-0.7.2-7.fc20.noarch
-cloud-utils-growpart-0.27-9.fc20.noarch
-coreutils-8.21-18.fc20.x86_64
-corosync-2.3.3-1.fc20.x86_64
-corosynclib-2.3.3-1.fc20.x86_64
-cpio-2.11-24.fc20.x86_64
-cpp-4.8.2-7.fc20.x86_64
-cracklib-2.9.0-5.fc20.x86_64
-cracklib-dicts-2.9.0-5.fc20.x86_64
-cronie-1.4.11-4.fc20.x86_64
-cronie-anacron-1.4.11-4.fc20.x86_64
-crontabs-1.11-6.20121102git.fc20.noarch
-cryptopp-5.6.2-3.fc20.x86_64
-cryptsetup-libs-1.6.2-1.fc20.x86_64
-curl-7.32.0-3.fc20.x86_64
-cyrus-sasl-2.1.26-14.fc20.x86_64
-cyrus-sasl-lib-2.1.26-14.fc20.x86_64
-cyrus-sasl-md5-2.1.26-14.fc20.x86_64
-dbus-1.6.12-1.fc20.x86_64
-dbus-libs-1.6.12-1.fc20.x86_64
-device-mapper-1.02.82-5.fc20.x86_64
-device-mapper-event-1.02.82-5.fc20.x86_64
-device-mapper-event-libs-1.02.82-5.fc20.x86_64
-device-mapper-libs-1.02.82-5.fc20.x86_64
-device-mapper-persistent-data-0.2.8-1.fc20.x86_64
-dhclient-4.2.5-26.fc20.x86_64
-dhcp-common-4.2.5-26.fc20.x86_64
-dhcp-libs-4.2.5-26.fc20.x86_64
-diffutils-3.3-4.fc20.x86_64
-dmidecode-2.12-4.fc20.x86_64
-dnsmasq-2.68-1.fc20.x86_64
-dracut-034-64.git20131205.fc20.x86_64
-dracut-config-generic-034-64.git20131205.fc20.x86_64
-dtc-1.4.0-2.fc20.x86_64
-dwz-0.11-2.fc20.x86_64
-e2fsprogs-1.42.8-3.fc20.x86_64
-e2fsprogs-libs-1.42.8-3.fc20.x86_64
-ebtables-2.0.10-11.fc20.x86_64
-elfutils-libelf-0.157-1.fc20.x86_64
-expat-2.1.0-7.fc20.x86_64
-expect-5.45-10.fc20.x86_64
-fedora-logos-21.0.1-1.fc20.x86_64
-fedora-release-20-1.noarch
-file-5.14-14.fc20.x86_64
-file-libs-5.14-14.fc20.x86_64
-filesystem-3.2-19.fc20.x86_64
-findutils-4.5.11-4.fc20.x86_64
-fipscheck-1.4.1-2.fc20.x86_64
-fipscheck-lib-1.4.1-2.fc20.x86_64
-freetype-2.5.0-4.fc20.x86_64
-fuse-libs-2.9.3-2.fc20.x86_64
-gawk-4.1.0-2.fc20.x86_64
-gcc-4.8.2-7.fc20.x86_64
-gcc-c++-4.8.2-7.fc20.x86_64
-gdbm-1.10-7.fc20.x86_64
-gettext-0.18.3.1-1.fc20.x86_64
-gettext-libs-0.18.3.1-1.fc20.x86_64
-glib2
-glibc
-glibc-common
-glibc-devel
-glibc-headers
-glusterfs-3.4.2-1.fc20.x86_64
-glusterfs-api-3.4.2-1.fc20.x86_64
-glusterfs-fuse-3.4.2-1.fc20.x86_64
-glusterfs-libs-3.4.2-1.fc20.x86_64
-gmp-5.1.2-2.fc20.x86_64
-gnupg2-2.0.22-1.fc20.x86_64
-gnutls-3.1.20-1.fc20.x86_64
-gnutls-dane-3.1.20-1.fc20.x86_64
-gnutls-utils-3.1.20-1.fc20.x86_64
-gpgme-1.3.2-4.fc20.x86_64
-grep-2.15-1.fc20.x86_64
-groff-base-1.22.2-8.fc20.x86_64
-grub2-2.00-25.fc20.x86_64
-grub2-tools-2.00-25.fc20.x86_64
-grubby-8.28-1.fc20.x86_64
-gyp-0.1-0.11.1617svn.fc20.noarch
-gzip-1.6-2.fc20.x86_64
-hardlink-1.0-18.fc20.x86_64
-heat-cfntools-1.2.3-2.fc20.noarch
-hostname-3.13-2.fc20.x86_64
-http-parser-2.0-5.20121128gitcd01361.fc20.x86_64
-http-parser-devel-2.0-5.20121128gitcd01361.fc20.x86_64
-httpd
-hwdata-0.260-1.fc20.noarch
-info-5.1-4.fc20.x86_64
-initscripts-9.50-1.fc20.x86_64
-iproute-3.11.0-1.fc20.x86_64
-iptables-1.4.19.1-1.fc20.x86_64
-iptables-services-1.4.19.1-1.fc20.x86_64
-iputils-20121221-4.fc20.x86_64
-iscsi-initiator-utils-6.2.0.873-17.fc20.x86_64
-jbigkit-libs-2.0-9.fc20.x86_64
-json-c-0.11-3.fc20.x86_64
-kbd-1.15.5-12.fc20.x86_64
-kbd-legacy-1.15.5-12.fc20.noarch
-kbd-misc-1.15.5-12.fc20.noarch
-keyutils
-keyutils-libs
-keyutils-libs-devel
-kmod-15-1.fc20.x86_64
-kmod-libs-15-1.fc20.x86_64
-kpartx-0.4.9-55.fc20.x86_64
-krb5-devel-1.11.3-39.fc20.x86_64
-krb5-libs-1.11.3-39.fc20.x86_64
-lcms-libs-1.19-10.fc20.x86_64
-ldns-1.6.16-6.fc20.x86_64
-less-458-4.fc20.x86_64
-leveldb-1.12.0-5.fc20.x86_64
-libacl-2.2.52-4.fc20.x86_64
-libaio-0.3.109-8.fc20.x86_64
-libassuan-2.1.0-2.fc20.x86_64
-libattr-2.4.47-3.fc20.x86_64
-libblkid-2.24-2.fc20.x86_64
-libcap-2.22-7.fc20.x86_64
-libcap-ng-0.7.3-6.fc20.x86_64
-libcgroup-0.38-7.fc20.x86_64
-libcom_err-1.42.8-3.fc20.x86_64
-libcom_err-devel-1.42.8-3.fc20.x86_64
-libcroco-0.6.8-3.fc20.x86_64
-libcurl-7.32.0-3.fc20.x86_64
-libdaemon-0.14-6.fc20.x86_64
-libdb-5.3.28-1.fc20.x86_64
-libdb-utils-5.3.28-1.fc20.x86_64
-libedit-3.1-2.20130601cvs.fc20.x86_64
-libestr-0.1.5-2.fc20.x86_64
-libevent-2.0.21-3.fc20.x86_64
-libffi-3.0.13-5.fc20.x86_64
-libgcc-4.8.2-7.fc20.x86_64
-libgcrypt-1.5.3-2.fc20.x86_64
-libgomp-4.8.2-7.fc20.x86_64
-libgpg-error-1.12-1.fc20.x86_64
-libibverbs-1.1.7-3.fc20.x86_64
-libicu-50.1.2-10.fc20.x86_64
-libidn-1.28-2.fc20.x86_64
-libiscsi-1.9.0-4.fc20.x86_64
-libjpeg-turbo-1.3.0-1.fc20.x86_64
-libmetalink-0.1.2-4.fc20.x86_64
-libmount-2.24-2.fc20.x86_64
-libmpc-1.0.1-2.fc20.x86_64
-libnfsidmap-0.25-7.fc20.x86_64
-libnl3-3.2.21-2.fc20.x86_64
-libpcap-1.5.3-1.fc20.x86_64
-libpciaccess-0.13.2-1.fc20.x86_64
-libpipeline-1.2.4-2.fc20.x86_64
-libpng-1.6.3-3.fc20.x86_64
-libpwquality-1.2.3-1.fc20.x86_64
-libqb-0.16.0-1.fc20.x86_64
-librdmacm-1.0.17-2.fc20.x86_64
-libselinux-2.2.1-6.fc20.x86_64
-libselinux-devel-2.2.1-6.fc20.x86_64
-libselinux-python-2.2.1-6.fc20.x86_64
-libselinux-utils-2.2.1-6.fc20.x86_64
-libsemanage-2.1.10-14.fc20.x86_64
-libsemanage-python-2.1.10-14.fc20.x86_64
-libsepol-2.1.9-2.fc20.x86_64
-libsepol-devel-2.1.9-2.fc20.x86_64
-libss-1.42.8-3.fc20.x86_64
-libssh2-1.4.3-8.fc20.x86_64
-libstdc++-4.8.2-1.fc20.x86_64
-libtasn1-3.3-2.fc20.x86_64
-libtiff-4.0.3-12.fc20.x86_64
-libtirpc-0.2.4-1.0.fc20.x86_64
-libunistring-0.9.3-9.fc20.x86_64
-libuser-0.60-3.fc20.x86_64
-libutempter-1.1.6-3.fc20.x86_64
-libuuid-2.24-2.fc20.x86_64
-libuv-0.10.21-1.fc20.x86_64
-libuv-devel-0.10.21-1.fc20.x86_64
-libverto-0.2.5-3.fc20.x86_64
-libverto-devel-0.2.5-3.fc20.x86_64
-libvirt-1.1.3.3-2.fc20.x86_64
-libvirt-client-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-config-network-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-config-nwfilter-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-interface-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-libxl-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-lxc-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-network-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-nodedev-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-nwfilter-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-qemu-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-secret-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-storage-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-uml-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-vbox-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-driver-xen-1.1.3.3-2.fc20.x86_64
-libvirt-daemon-lxc-1.1.3.3-2.fc20.x86_64
-libwebp-0.3.1-2.fc20.x86_64
-libwsman1-2.3.6-8.fc20.x86_64
-libxml2-2.9.1-2.fc20.x86_64
-libxslt-1.1.28-5.fc20.x86_64
-libyaml-0.1.4-5.fc20.x86_64
-linux-atm-libs-2.5.1-8.fc20.x86_64
-logrotate-3.8.7-1.fc20.x86_64
-lua-5.2.2-5.fc20.x86_64
-lvm2-2.02.103-5.fc20.x86_64
-lvm2-libs-2.02.103-5.fc20.x86_64
-lxc-0.9.0-2.fc20.x86_64
-lxc-extra-0.9.0-2.fc20.x86_64
-lxc-libs-0.9.0-2.fc20.x86_64
-lzo-2.06-5.fc20.x86_64
-lzop-1.03-9.fc20.x86_64
-m2crypto-0.21.1-13.fc20.x86_64
-make-4.0-3.1.fc22.x86_64
-man-db-2.6.5-2.fc20.x86_64
-mozjs17-17.0.0-8.fc20.x86_64
-mpfr-3.1.2-4.fc20.x86_64
-mtools-4.0.18-4.fc20.x86_64
-nbd
-ncurses-5.9-12.20130511.fc20.x86_64
-ncurses-base-5.9-12.20130511.fc20.noarch
-ncurses-libs-5.9-12.20130511.fc20.x86_64
-netcf-libs-0.2.3-5.fc20.x86_64
-net-snmp-libs-5.7.2-16.fc20.x86_64
-nettle-2.7.1-3.fc20.x86_64
-net-tools-2.0-0.15.20131119git.fc20.x86_64
-nfs-utils-1.2.9-3.0.fc20.x86_64
-nmap-ncat-6.40-2.fc20.x86_64
-node-gyp-0.10.6-2.fc20.noarch
-nodejs-0.10.24-1.fc20.x86_64
-nodejs-abbrev-1.0.4-7.fc20.noarch
-nodejs-ansi-0.2.1-1.fc20.noarch
-nodejs-archy-0.0.2-9.fc20.noarch
-nodejs-asn1-0.1.11-4.fc20.noarch
-nodejs-assert-plus-0.1.4-1.fc20.noarch
-nodejs-async-0.2.9-3.fc20.noarch
-nodejs-aws-sign-0.3.0-2.fc20.noarch
-nodejs-block-stream-0.0.7-1.fc20.noarch
-nodejs-boom-0.4.2-3.fc20.noarch
-nodejs-child-process-close-0.1.1-3.fc20.noarch
-nodejs-chmodr-0.1.0-5.fc20.noarch
-nodejs-chownr-0.0.1-10.fc20.noarch
-nodejs-cmd-shim-1.1.0-4.fc20.noarch
-nodejs-combined-stream-0.0.4-4.fc20.noarch
-nodejs-config-chain-1.1.7-2.fc20.noarch
-nodejs-cookie-jar-0.3.0-2.fc20.noarch
-nodejs-couch-login-0.1.18-1.fc20.noarch
-nodejs-cryptiles-0.2.2-1.fc20.noarch
-nodejs-ctype-0.5.3-4.fc20.noarch
-nodejs-delayed-stream-0.0.5-6.fc20.noarch
-nodejs-devel-0.10.24-1.fc20.x86_64
-nodejs-editor-0.0.4-3.fc20.noarch
-nodejs-forever-agent-0.5.0-2.fc20.noarch
-nodejs-form-data-0.1.1-1.fc20.noarch
-nodejs-fstream-0.1.24-1.fc20.noarch
-nodejs-fstream-ignore-0.0.7-2.fc20.noarch
-nodejs-fstream-npm-0.1.5-2.fc20.noarch
-nodejs-github-url-from-git-1.1.1-3.fc20.noarch
-nodejs-glob-3.2.6-1.fc20.noarch
-nodejs-graceful-fs-2.0.0-3.fc20.noarch
-nodejs-hawk-1.0.0-1.fc20.noarch
-nodejs-hoek-0.9.1-2.fc20.noarch
-nodejs-http-signature-0.10.0-4.fc20.noarch
-nodejs-inherits-2.0.0-4.fc20.noarch
-nodejs-ini-1.1.0-4.fc20.noarch
-nodejs-init-package-json-0.0.10-2.fc20.noarch
-nodejs-json-stringify-safe-5.0.0-2.fc20.noarch
-nodejs-lockfile-0.4.2-1.fc20.noarch
-nodejs-lru-cache-2.3.0-4.fc20.noarch
-nodejs-mime-1.2.11-1.fc20.noarch
-nodejs-minimatch-0.2.12-3.fc20.noarch
-nodejs-mkdirp-0.3.5-4.fc20.noarch
-nodejs-mute-stream-0.0.4-1.fc20.noarch
-nodejs-node-uuid-1.4.1-1.fc20.noarch
-nodejs-nopt-2.1.2-1.fc20.noarch
-nodejs-normalize-package-data-0.2.1-1.fc20.noarch
-nodejs-npmconf-0.1.2-1.fc20.noarch
-nodejs-npmlog-0.0.4-2.fc20.noarch
-nodejs-npm-registry-client-0.2.28-1.fc20.noarch
-nodejs-npm-user-validate-0.0.3-2.fc20.noarch
-nodejs-oauth-sign-0.3.0-2.fc20.noarch
-nodejs-once-1.1.1-6.fc20.noarch
-nodejs-opener-1.3.0-8.fc20.noarch
-nodejs-osenv-0.0.3-6.fc20.noarch
-nodejs-packaging-4-1.fc20.noarch
-nodejs-promzard-0.2.0-7.fc20.noarch
-nodejs-proto-list-1.2.2-6.fc20.noarch
-nodejs-qs-0.6.5-3.fc20.noarch
-nodejs-read-1.0.5-1.fc20.noarch
-nodejs-read-installed-0.2.3-1.fc20.noarch
-nodejs-read-package-json-1.1.3-1.fc20.noarch
-nodejs-request-2.25.0-1.fc20.noarch
-nodejs-retry-0.6.0-6.fc20.noarch
-nodejs-rimraf-2.2.2-1.fc20.noarch
-nodejs-semver-2.1.0-1.fc20.noarch
-nodejs-sha-1.2.1-1.fc20.noarch
-nodejs-sigmund-1.0.0-6.fc20.noarch
-nodejs-slide-1.1.5-1.fc20.noarch
-nodejs-sntp-0.2.4-2.fc20.noarch
-nodejs-tar-0.1.18-1.fc20.noarch
-nodejs-tunnel-agent-0.3.0-2.fc20.noarch
-nodejs-uid-number-0.0.3-8.fc20.noarch
-nodejs-which-1.0.5-9.fc20.noarch
-npm
-nspr-4.10.1-1.fc20.x86_64
-nss-3.15.2-3.fc20.x86_64
-nss-softokn-3.15.2-2.fc20.x86_64
-nss-softokn-freebl-3.17.1-2.fc20.x86_64
-nss-sysinit-3.15.2-3.fc20.x86_64
-nss-tools-3.15.2-3.fc20.x86_64
-nss-util-3.15.2-2.fc20.x86_64
-numactl-libs-2.0.9-1.fc20.x86_64
-numad-0.5-12.20130814git.fc20.x86_64
-openldap-2.4.36-4.fc20.x86_64
-openpgm-5.2.122-2.fc20.x86_64
-openssh
-openssh-clients
-openssh-server
-openssl
-openssl-devel
-openssl-libs
-os-prober-1.58-4.fc20.x86_64
-p11-kit-0.20.1-1.fc20.x86_64
-p11-kit-trust-0.20.1-1.fc20.x86_64
-pam-1.1.8-1.fc20.x86_64
-parted-3.1-13.fc20.x86_64
-passwd-0.79-2.fc20.x86_64
-pciutils-3.2.1-1.fc20.x86_64
-pciutils-libs-3.2.1-1.fc20.x86_64
-pcre-8.33-4.fc20.x86_64
-pcre-devel-8.33-4.fc20.x86_64
-perl-5.18.2-289.fc20.x86_64
-perl-Carp-1.26-245.fc20.noarch
-perl-constant-1.27-292.fc20.noarch
-perl-Encode-2.54-2.fc20.x86_64
-perl-Exporter-5.68-293.fc20.noarch
-perl-File-Path-2.09-292.fc20.noarch
-perl-File-Temp-0.23.01-4.fc20.noarch
-perl-Filter-1.49-5.fc20.x86_64
-perl-Getopt-Long-2.42-1.fc20.noarch
-perl-HTTP-Tiny-0.034-4.fc20.noarch
-perl-libs-5.18.2-289.fc20.x86_64
-perl-macros-5.18.2-289.fc20.x86_64
-perl-Module-CoreList-3.03-289.fc20.noarch
-perl-parent-0.228-1.fc20.noarch
-perl-PathTools-3.40-291.fc20.x86_64
-perl-Pod-Escapes-1.04-289.fc20.noarch
-perl-podlators-2.5.1-291.fc20.noarch
-perl-Pod-Perldoc-3.20-7.fc20.noarch
-perl-Pod-Simple-3.28-292.fc20.noarch
-perl-Pod-Usage-1.63-4.fc20.noarch
-perl-Scalar-List-Utils-1.31-293.fc20.x86_64
-perl-Socket-2.013-1.fc20.x86_64
-perl-srpm-macros-1-10.fc20.noarch
-perl-Storable-2.45-2.fc20.x86_64
-perl-Text-ParseWords-3.29-3.fc20.noarch
-perl-threads-1.89-1.fc20.x86_64
-perl-threads-shared-1.45-1.fc20.x86_64
-perl-Time-HiRes-1.9726-1.fc20.x86_64
-perl-Time-Local-1.2300-291.fc20.noarch
-perl-version-0.99.04-2.fc20.x86_64
-php
-php-gd
-pinentry-0.8.1-11.fc20.x86_64
-pkgconfig-0.28-3.fc20.x86_64
-pm-utils-1.4.1-26.fc20.x86_64
-policycoreutils-2.2.2-3.fc20.x86_64
-policycoreutils-python-2.2.2-3.fc20.x86_64
-polkit-0.112-2.fc20.x86_64
-polkit-pkla-compat-0.1-3.fc20.x86_64
-popt-1.13-15.fc20.x86_64
-procps-ng-3.3.8-14.fc20.x86_64
-pth-2.0.7-21.fc20.x86_64
-pygpgme-0.3-8.fc20.x86_64
-pyliblzma-0.5.3-10.fc20.x86_64
-python-2.7.5-9.fc20.x86_64
-python3-3.3.2-8.fc20.x86_64
-python3-libs-3.3.2-8.fc20.x86_64
-python3-lxc-0.9.0-2.fc20.x86_64
-python3-pip-1.4.1-1.fc20.noarch
-python3-setuptools-1.4.2-1.fc20.noarch
-python-babel-1.3-2.fc20.noarch
-python-backports-1.0-3.fc20.x86_64
-python-backports-ssl_match_hostname-3.4.0.2-1.fc20.noarch
-python-boto-2.13.3-1.fc20.noarch
-python-chardet-2.0.1-7.fc20.noarch
-python-cheetah-2.4.4-5.fc20.x86_64
-python-configobj-4.7.2-7.fc20.noarch
-python-crypto-2.6.1-1.fc20.x86_64
-python-iniparse-0.4-9.fc20.noarch
-python-IPy-0.75-6.fc20.noarch
-python-jinja2-2.7.1-1.fc20.noarch
-python-kitchen-1.1.1-5.fc20.noarch
-python-libs-2.7.5-9.fc20.x86_64
-python-markdown-2.3.1-3.fc20.noarch
-python-markupsafe-0.18-1.fc20.x86_64
-python-msgpack-0.1.13-4.fc20.x86_64
-python-pillow-2.2.1-2.fc20.x86_64
-python-prettytable-0.6.1-3.fc20.noarch
-python-psutil-1.0.1-1.fc20.x86_64
-python-pycurl-7.19.0-17.20120408git9b8f4e38.fc20.x86_64
-python-pygments-1.4-9.fc20.noarch
-python-requests-1.2.3-5.fc20.noarch
-python-setuptools-1.3.1-1.fc20.noarch
-python-six-1.4.1-1.fc20.noarch
-python-urlgrabber-3.9.1-32.fc20.noarch
-python-urllib3-1.7-4.fc20.noarch
-python-zmq-13.0.2-1.fc20.x86_64
-pyxattr-0.5.1-4.fc20.x86_64
-PyYAML-3.10-9.fc20.x86_64
-qemu-img-1.6.1-3.fc20.x86_64
-qrencode-libs-3.4.2-1.fc20.x86_64
-quota-4.01-10.fc20.x86_64
-quota-nls-4.01-10.fc20.noarch
-radvd-1.9.2-4.fc20.x86_64
-readline-6.2-8.fc20.x86_64
-redhat-rpm-config-9.1.0-54.fc20.noarch
-rootfiles-8.1-16.fc20.noarch
-rpcbind-0.2.1-0.2.fc20.x86_64
-rpm-4.11.1-7.fc20.x86_64
-rpm-build-libs-4.11.1-7.fc20.x86_64
-rpm-libs-4.11.1-7.fc20.x86_64
-rpm-python-4.11.1-7.fc20.x86_64
-rsync-3.1.0-1pre1.fc20.x86_64
-rsyslog-7.4.2-2.fc20.x86_64
-salt-master-2015.5.0-1.fc20.noarch
-salt-2015.5.0-1.fc20.noarch
-salt-minion-2015.5.0-1.fc20.noarch
-screen
-sed-4.2.2-5.fc20.x86_64
-selinux-policy-3.12.1-106.fc20.noarch
-selinux-policy-targeted-3.12.1-106.fc20.noarch
-setools-libs-3.3.7-41.fc20.x86_64
-setup-2.8.71-2.fc20.noarch
-shadow-utils-4.1.5.1-8.fc20.x86_64
-shared-mime-info-1.2-1.fc20.x86_64
-sheepdog-0.3.0-5.fc20.x86_64
-snappy-1.1.0-2.fc20.x86_64
-socat-1.7.2.2-3.fc20.x86_64
-sqlite-3.8.1-2.fc20.x86_64
-sshpass-1.05-5.fc20.x86_64
-sudo-1.8.8-1.fc20.x86_64
-syslinux-4.05-7.fc20.x86_64
-syslinux-extlinux-4.05-7.fc20.x86_64
-systemd-208-9.fc20.x86_64
-systemd-libs-208-9.fc20.x86_64
-sysvinit-tools-2.88-14.dsf.fc20.x86_64
-tar-1.26-29.fc20.x86_64
-tcl-8.5.14-1.fc20.x86_64
-tcp_wrappers-7.6-76.fc20.x86_64
-tcp_wrappers-libs-7.6-76.fc20.x86_64
-tmux
-trousers-0.3.11.2-1.fc20.x86_64
-tzdata-2013h-1.fc20.noarch
-uboot-tools-2013.10-3.fc20.x86_64
-unbound-libs-1.4.21-1.fc20.x86_64
-ustr-1.0.4-15.fc20.x86_64
-util-linux-2.24-2.fc20.x86_64
-v8-3.14.5.10-3.fc20.x86_64
-v8-devel-3.14.5.10-3.fc20.x86_64
-vim-minimal-7.4.027-2.fc20.x86_64
-which-2.20-6.fc20.x86_64
-xen-libs-4.3.1-8.fc20.x86_64
-xen-licenses-4.3.1-8.fc20.x86_64
-xz-5.1.2-6alpha.fc20.x86_64
-xz-libs-5.1.2-6alpha.fc20.x86_64
-yajl-2.0.4-3.fc20.x86_64
-yum-3.4.3-106.fc20.noarch
-yum-metadata-parser-1.1.4-9.fc20.x86_64
-yum-utils-1.1.31-20.fc20.noarch
-zeromq3-3.2.4-1.fc20.x86_64
-zip-3.0-9.fc20.x86_64
-zlib-1.2.8-3.fc20.x86_64
-zlib-devel-1.2.8-3.fc20.x86_64
-zookeeper-java.noarch
+fc20: acl-2.2.52-4.fc20.x86_64
+fc20: audit-2.3.2-1.fc20.x86_64
+fc20: audit-libs-2.3.2-1.fc20.x86_64
+fc20: audit-libs-python-2.3.2-1.fc20.x86_64
+fc20: augeas-libs-1.1.0-2.fc20.x86_64
+fc20: autogen-libopts-5.18-1.fc20.x86_64
+fc20: avahi-libs-0.6.31-21.fc20.x86_64
+fc20: basesystem-10.0-9.fc20.noarch
+fc20: bash-4.2.45-4.fc20.x86_64
+fc20: bind-libs-lite-9.9.4-8.fc20.x86_64
+fc20: bind-license-9.9.4-8.fc20.noarch
+fc20: bind-utils
+fc20: binutils-2.23.88.0.1-13.fc20.x86_64
+fc20: boost-filesystem-1.54.0-9.fc20.x86_64
+fc20: boost-system-1.54.0-9.fc20.x86_64
+fc20: boost-thread-1.54.0-9.fc20.x86_64
+fc20: bridge-utils
+fc20: bzip2-1.0.6-9.fc20.x86_64
+fc20: bzip2-libs-1.0.6-9.fc20.x86_64
+fc20: ca-certificates-2013.1.94-18.fc20.noarch
+fc20: c-ares-1.10.0-2.fc20.x86_64
+fc20: c-ares-devel-1.10.0-2.fc20.x86_64
+fc20: ceph-libs-0.67.3-2.fc20.x86_64
+fc20: chkconfig-1.3.60-4.fc20.x86_64
+fc20: cloud-init-0.7.2-7.fc20.noarch
+fc20: cloud-utils-growpart-0.27-9.fc20.noarch
+fc20: coreutils-8.21-18.fc20.x86_64
+fc20: corosync-2.3.3-1.fc20.x86_64
+fc20: corosynclib-2.3.3-1.fc20.x86_64
+fc20: cpio-2.11-24.fc20.x86_64
+fc20: cpp-4.8.2-7.fc20.x86_64
+fc20: cracklib-2.9.0-5.fc20.x86_64
+fc20: cracklib-dicts-2.9.0-5.fc20.x86_64
+fc20: cronie-1.4.11-4.fc20.x86_64
+fc20: cronie-anacron-1.4.11-4.fc20.x86_64
+fc20: crontabs-1.11-6.20121102git.fc20.noarch
+fc20: cryptopp-5.6.2-3.fc20.x86_64
+fc20: cryptsetup-libs-1.6.2-1.fc20.x86_64
+fc20: curl-7.32.0-3.fc20.x86_64
+fc20: cyrus-sasl-2.1.26-14.fc20.x86_64
+fc20: cyrus-sasl-lib-2.1.26-14.fc20.x86_64
+fc20: cyrus-sasl-md5-2.1.26-14.fc20.x86_64
+fc20: dbus-1.6.12-1.fc20.x86_64
+fc20: dbus-libs-1.6.12-1.fc20.x86_64
+fc20: device-mapper-1.02.82-5.fc20.x86_64
+fc20: device-mapper-event-1.02.82-5.fc20.x86_64
+fc20: device-mapper-event-libs-1.02.82-5.fc20.x86_64
+fc20: device-mapper-libs-1.02.82-5.fc20.x86_64
+fc20: device-mapper-persistent-data-0.2.8-1.fc20.x86_64
+fc20: dhclient-4.2.5-26.fc20.x86_64
+fc20: dhcp-common-4.2.5-26.fc20.x86_64
+fc20: dhcp-libs-4.2.5-26.fc20.x86_64
+fc20: diffutils-3.3-4.fc20.x86_64
+fc20: dmidecode-2.12-4.fc20.x86_64
+fc20: dnsmasq-2.68-1.fc20.x86_64
+fc20: dracut-034-64.git20131205.fc20.x86_64
+fc20: dracut-config-generic-034-64.git20131205.fc20.x86_64
+fc20: dtc-1.4.0-2.fc20.x86_64
+fc20: dwz-0.11-2.fc20.x86_64
+fc20: e2fsprogs-1.42.8-3.fc20.x86_64
+fc20: e2fsprogs-libs-1.42.8-3.fc20.x86_64
+fc20: ebtables-2.0.10-11.fc20.x86_64
+fc20: elfutils-libelf-0.157-1.fc20.x86_64
+fc20: expat-2.1.0-7.fc20.x86_64
+fc20: expect-5.45-10.fc20.x86_64
+fc20: fedora-logos-21.0.1-1.fc20.x86_64
+fc20: fedora-release-20-1.noarch
+fc20: file-5.14-14.fc20.x86_64
+fc20: file-libs-5.14-14.fc20.x86_64
+fc20: filesystem-3.2-19.fc20.x86_64
+fc20: findutils-4.5.11-4.fc20.x86_64
+fc20: fipscheck-1.4.1-2.fc20.x86_64
+fc20: fipscheck-lib-1.4.1-2.fc20.x86_64
+fc20: freetype-2.5.0-4.fc20.x86_64
+ub16: libfreetype6-dev
+fc20: fuse-libs-2.9.3-2.fc20.x86_64
+fc20: gawk-4.1.0-2.fc20.x86_64
+fc20: gcc-4.8.2-7.fc20.x86_64
+fc20: gcc-c++-4.8.2-7.fc20.x86_64
+fc20: gdbm-1.10-7.fc20.x86_64
+fc20: gettext-0.18.3.1-1.fc20.x86_64
+fc20: gettext-libs-0.18.3.1-1.fc20.x86_64
+fc20: glib2
+fc20: glibc
+fc20: glibc-common
+fc20: glibc-devel
+fc20: glibc-headers
+fc20: glusterfs-3.4.2-1.fc20.x86_64
+fc20: glusterfs-api-3.4.2-1.fc20.x86_64
+fc20: glusterfs-fuse-3.4.2-1.fc20.x86_64
+fc20: glusterfs-libs-3.4.2-1.fc20.x86_64
+fc20: gmp-5.1.2-2.fc20.x86_64
+fc20: gnupg2-2.0.22-1.fc20.x86_64
+fc20: gnutls-3.1.20-1.fc20.x86_64
+fc20: gnutls-dane-3.1.20-1.fc20.x86_64
+fc20: gnutls-utils-3.1.20-1.fc20.x86_64
+fc20: gpgme-1.3.2-4.fc20.x86_64
+fc20: grep-2.15-1.fc20.x86_64
+fc20: groff-base-1.22.2-8.fc20.x86_64
+fc20: grub2-2.00-25.fc20.x86_64
+fc20: grub2-tools-2.00-25.fc20.x86_64
+fc20: grubby-8.28-1.fc20.x86_64
+fc20: gyp-0.1-0.11.1617svn.fc20.noarch
+fc20: gzip-1.6-2.fc20.x86_64
+fc20: hardlink-1.0-18.fc20.x86_64
+fc20: heat-cfntools-1.2.3-2.fc20.noarch
+fc20: hostname-3.13-2.fc20.x86_64
+fc20: http-parser-2.0-5.20121128gitcd01361.fc20.x86_64
+fc20: http-parser-devel-2.0-5.20121128gitcd01361.fc20.x86_64
+fc20: hwdata-0.260-1.fc20.noarch
+fc20: info-5.1-4.fc20.x86_64
+fc20: initscripts-9.50-1.fc20.x86_64
+fc20: iproute-3.11.0-1.fc20.x86_64
+fc20: iptables-1.4.19.1-1.fc20.x86_64
+fc20: iptables-services-1.4.19.1-1.fc20.x86_64
+fc20: iputils-20121221-4.fc20.x86_64
+fc20: iscsi-initiator-utils-6.2.0.873-17.fc20.x86_64
+fc20: jbigkit-libs-2.0-9.fc20.x86_64
+fc20: json-c-0.11-3.fc20.x86_64
+fc20: kbd-1.15.5-12.fc20.x86_64
+fc20: kbd-legacy-1.15.5-12.fc20.noarch
+fc20: kbd-misc-1.15.5-12.fc20.noarch
+fc20: keyutils
+fc20: keyutils-libs
+fc20: keyutils-libs-devel
+fc20: kmod-15-1.fc20.x86_64
+fc20: kmod-libs-15-1.fc20.x86_64
+fc20: kpartx-0.4.9-55.fc20.x86_64
+fc20: krb5-devel-1.11.3-39.fc20.x86_64
+fc20: krb5-libs-1.11.3-39.fc20.x86_64
+fc20: lcms-libs-1.19-10.fc20.x86_64
+fc20: ldns-1.6.16-6.fc20.x86_64
+fc20: less-458-4.fc20.x86_64
+fc20: leveldb-1.12.0-5.fc20.x86_64
+fc20: libacl-2.2.52-4.fc20.x86_64
+fc20: libaio-0.3.109-8.fc20.x86_64
+fc20: libassuan-2.1.0-2.fc20.x86_64
+fc20: libattr-2.4.47-3.fc20.x86_64
+fc20: libblkid-2.24-2.fc20.x86_64
+fc20: libcap-2.22-7.fc20.x86_64
+fc20: libcap-ng-0.7.3-6.fc20.x86_64
+fc20: libcgroup-0.38-7.fc20.x86_64
+fc20: libcom_err-1.42.8-3.fc20.x86_64
+fc20: libcom_err-devel-1.42.8-3.fc20.x86_64
+fc20: libcroco-0.6.8-3.fc20.x86_64
+fc20: libcurl-7.32.0-3.fc20.x86_64
+fc20: libdaemon-0.14-6.fc20.x86_64
+fc20: libdb-5.3.28-1.fc20.x86_64
+fc20: libdb-utils-5.3.28-1.fc20.x86_64
+fc20: libedit-3.1-2.20130601cvs.fc20.x86_64
+fc20: libestr-0.1.5-2.fc20.x86_64
+fc20: libevent-2.0.21-3.fc20.x86_64
+fc20: libffi-3.0.13-5.fc20.x86_64
+ub16: libffi-dev
+fc20: libgcc-4.8.2-7.fc20.x86_64
+fc20: libgcrypt-1.5.3-2.fc20.x86_64
+fc20: libgomp-4.8.2-7.fc20.x86_64
+fc20: libgpg-error-1.12-1.fc20.x86_64
+fc20: libibverbs-1.1.7-3.fc20.x86_64
+fc20: libicu-50.1.2-10.fc20.x86_64
+fc20: libidn-1.28-2.fc20.x86_64
+fc20: libiscsi-1.9.0-4.fc20.x86_64
+fc20: libjpeg-turbo-1.3.0-1.fc20.x86_64
+fc20: libmetalink-0.1.2-4.fc20.x86_64
+fc20: libmount-2.24-2.fc20.x86_64
+fc20: libmpc-1.0.1-2.fc20.x86_64
+fc20: libnfsidmap-0.25-7.fc20.x86_64
+fc20: libnl3-3.2.21-2.fc20.x86_64
+fc20: libpcap-1.5.3-1.fc20.x86_64
+fc20: libpciaccess-0.13.2-1.fc20.x86_64
+fc20: libpipeline-1.2.4-2.fc20.x86_64
+fc20: libpng-1.6.3-3.fc20.x86_64
+ub16: libpng12-dev
+fc20: libpwquality-1.2.3-1.fc20.x86_64
+fc20: libqb-0.16.0-1.fc20.x86_64
+fc20: librdmacm-1.0.17-2.fc20.x86_64
+fc20: libselinux-2.2.1-6.fc20.x86_64
+fc20: libselinux-devel-2.2.1-6.fc20.x86_64
+fc20: libselinux-python-2.2.1-6.fc20.x86_64
+fc20: libselinux-utils-2.2.1-6.fc20.x86_64
+fc20: libsemanage-2.1.10-14.fc20.x86_64
+fc20: libsemanage-python-2.1.10-14.fc20.x86_64
+fc20: libsepol-2.1.9-2.fc20.x86_64
+fc20: libsepol-devel-2.1.9-2.fc20.x86_64
+fc20: libss-1.42.8-3.fc20.x86_64
+fc20: libssh2-1.4.3-8.fc20.x86_64
+fc20: libstdc++-4.8.2-1.fc20.x86_64
+fc20: libtasn1-3.3-2.fc20.x86_64
+fc20: libtiff-4.0.3-12.fc20.x86_64
+fc20: libtirpc-0.2.4-1.0.fc20.x86_64
+fc20: libunistring-0.9.3-9.fc20.x86_64
+fc20: libuser-0.60-3.fc20.x86_64
+fc20: libutempter-1.1.6-3.fc20.x86_64
+fc20: libuuid-2.24-2.fc20.x86_64
+fc20: libuv-0.10.21-1.fc20.x86_64
+fc20: libuv-devel-0.10.21-1.fc20.x86_64
+fc20: libverto-0.2.5-3.fc20.x86_64
+fc20: libverto-devel-0.2.5-3.fc20.x86_64
+fc20: libvirt-1.1.3.3-2.fc20.x86_64
+ub16: libvirt-bin
+fc20: libvirt-client-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-config-network-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-config-nwfilter-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-interface-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-libxl-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-lxc-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-network-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-nodedev-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-nwfilter-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-qemu-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-secret-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-storage-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-uml-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-vbox-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-driver-xen-1.1.3.3-2.fc20.x86_64
+fc20: libvirt-daemon-lxc-1.1.3.3-2.fc20.x86_64
+fc20: libwebp-0.3.1-2.fc20.x86_64
+fc20: libwsman1-2.3.6-8.fc20.x86_64
+fc20: libxml2-2.9.1-2.fc20.x86_64
+fc20: libxslt-1.1.28-5.fc20.x86_64
+fc20: libyaml-0.1.4-5.fc20.x86_64
+fc20: linux-atm-libs-2.5.1-8.fc20.x86_64
+fc20: logrotate-3.8.7-1.fc20.x86_64
+fc20: lua-5.2.2-5.fc20.x86_64
+fc20: lvm2-2.02.103-5.fc20.x86_64
+fc20: lvm2-libs-2.02.103-5.fc20.x86_64
+fc20: lxc-0.9.0-2.fc20.x86_64
+fc20: lxc-extra-0.9.0-2.fc20.x86_64
+fc20: lxc-libs-0.9.0-2.fc20.x86_64
+fc20: lzo-2.06-5.fc20.x86_64
+fc20: lzop-1.03-9.fc20.x86_64
+fc20: m2crypto-0.21.1-13.fc20.x86_64
+fc20: make-4.0-3.1.fc22.x86_64
+fc20: man-db-2.6.5-2.fc20.x86_64
+fc20: mozjs17-17.0.0-8.fc20.x86_64
+fc20: mpfr-3.1.2-4.fc20.x86_64
+fc20: mtools-4.0.18-4.fc20.x86_64
+fc20: nbd
+fc20: ncurses-5.9-12.20130511.fc20.x86_64
+fc20: ncurses-base-5.9-12.20130511.fc20.noarch
+fc20: ncurses-libs-5.9-12.20130511.fc20.x86_64
+fc20: netcf-libs-0.2.3-5.fc20.x86_64
+fc20: net-snmp-libs-5.7.2-16.fc20.x86_64
+fc20: nettle-2.7.1-3.fc20.x86_64
+fc20: net-tools-2.0-0.15.20131119git.fc20.x86_64
+fc20: nfs-utils-1.2.9-3.0.fc20.x86_64
+fc20: nmap-ncat-6.40-2.fc20.x86_64
+fc20: node-gyp-0.10.6-2.fc20.noarch
+fc20: nodejs-0.10.24-1.fc20.x86_64
+fc20: nodejs-abbrev-1.0.4-7.fc20.noarch
+fc20: nodejs-ansi-0.2.1-1.fc20.noarch
+fc20: nodejs-archy-0.0.2-9.fc20.noarch
+fc20: nodejs-asn1-0.1.11-4.fc20.noarch
+fc20: nodejs-assert-plus-0.1.4-1.fc20.noarch
+fc20: nodejs-async-0.2.9-3.fc20.noarch
+fc20: nodejs-aws-sign-0.3.0-2.fc20.noarch
+fc20: nodejs-block-stream-0.0.7-1.fc20.noarch
+fc20: nodejs-boom-0.4.2-3.fc20.noarch
+fc20: nodejs-child-process-close-0.1.1-3.fc20.noarch
+fc20: nodejs-chmodr-0.1.0-5.fc20.noarch
+fc20: nodejs-chownr-0.0.1-10.fc20.noarch
+fc20: nodejs-cmd-shim-1.1.0-4.fc20.noarch
+fc20: nodejs-combined-stream-0.0.4-4.fc20.noarch
+fc20: nodejs-config-chain-1.1.7-2.fc20.noarch
+fc20: nodejs-cookie-jar-0.3.0-2.fc20.noarch
+fc20: nodejs-couch-login-0.1.18-1.fc20.noarch
+fc20: nodejs-cryptiles-0.2.2-1.fc20.noarch
+fc20: nodejs-ctype-0.5.3-4.fc20.noarch
+fc20: nodejs-delayed-stream-0.0.5-6.fc20.noarch
+fc20: nodejs-devel-0.10.24-1.fc20.x86_64
+fc20: nodejs-editor-0.0.4-3.fc20.noarch
+fc20: nodejs-forever-agent-0.5.0-2.fc20.noarch
+fc20: nodejs-form-data-0.1.1-1.fc20.noarch
+fc20: nodejs-fstream-0.1.24-1.fc20.noarch
+fc20: nodejs-fstream-ignore-0.0.7-2.fc20.noarch
+fc20: nodejs-fstream-npm-0.1.5-2.fc20.noarch
+fc20: nodejs-github-url-from-git-1.1.1-3.fc20.noarch
+fc20: nodejs-glob-3.2.6-1.fc20.noarch
+fc20: nodejs-graceful-fs-2.0.0-3.fc20.noarch
+fc20: nodejs-hawk-1.0.0-1.fc20.noarch
+fc20: nodejs-hoek-0.9.1-2.fc20.noarch
+fc20: nodejs-http-signature-0.10.0-4.fc20.noarch
+fc20: nodejs-inherits-2.0.0-4.fc20.noarch
+fc20: nodejs-ini-1.1.0-4.fc20.noarch
+fc20: nodejs-init-package-json-0.0.10-2.fc20.noarch
+fc20: nodejs-json-stringify-safe-5.0.0-2.fc20.noarch
+fc20: nodejs-lockfile-0.4.2-1.fc20.noarch
+fc20: nodejs-lru-cache-2.3.0-4.fc20.noarch
+fc20: nodejs-mime-1.2.11-1.fc20.noarch
+fc20: nodejs-minimatch-0.2.12-3.fc20.noarch
+fc20: nodejs-mkdirp-0.3.5-4.fc20.noarch
+fc20: nodejs-mute-stream-0.0.4-1.fc20.noarch
+fc20: nodejs-node-uuid-1.4.1-1.fc20.noarch
+fc20: nodejs-nopt-2.1.2-1.fc20.noarch
+fc20: nodejs-normalize-package-data-0.2.1-1.fc20.noarch
+fc20: nodejs-npmconf-0.1.2-1.fc20.noarch
+fc20: nodejs-npmlog-0.0.4-2.fc20.noarch
+fc20: nodejs-npm-registry-client-0.2.28-1.fc20.noarch
+fc20: nodejs-npm-user-validate-0.0.3-2.fc20.noarch
+fc20: nodejs-oauth-sign-0.3.0-2.fc20.noarch
+fc20: nodejs-once-1.1.1-6.fc20.noarch
+fc20: nodejs-opener-1.3.0-8.fc20.noarch
+fc20: nodejs-osenv-0.0.3-6.fc20.noarch
+fc20: nodejs-packaging-4-1.fc20.noarch
+fc20: nodejs-promzard-0.2.0-7.fc20.noarch
+fc20: nodejs-proto-list-1.2.2-6.fc20.noarch
+fc20: nodejs-qs-0.6.5-3.fc20.noarch
+fc20: nodejs-read-1.0.5-1.fc20.noarch
+fc20: nodejs-read-installed-0.2.3-1.fc20.noarch
+fc20: nodejs-read-package-json-1.1.3-1.fc20.noarch
+fc20: nodejs-request-2.25.0-1.fc20.noarch
+fc20: nodejs-retry-0.6.0-6.fc20.noarch
+fc20: nodejs-rimraf-2.2.2-1.fc20.noarch
+fc20: nodejs-semver-2.1.0-1.fc20.noarch
+fc20: nodejs-sha-1.2.1-1.fc20.noarch
+fc20: nodejs-sigmund-1.0.0-6.fc20.noarch
+fc20: nodejs-slide-1.1.5-1.fc20.noarch
+fc20: nodejs-sntp-0.2.4-2.fc20.noarch
+fc20: nodejs-tar-0.1.18-1.fc20.noarch
+fc20: nodejs-tunnel-agent-0.3.0-2.fc20.noarch
+fc20: nodejs-uid-number-0.0.3-8.fc20.noarch
+fc20: nodejs-which-1.0.5-9.fc20.noarch
+fc20: npm
+ub16: npm
+fc20: nspr-4.10.1-1.fc20.x86_64
+fc20: nss-3.15.2-3.fc20.x86_64
+fc20: nss-softokn-3.15.2-2.fc20.x86_64
+fc20: nss-softokn-freebl-3.17.1-2.fc20.x86_64
+fc20: nss-sysinit-3.15.2-3.fc20.x86_64
+fc20: nss-tools-3.15.2-3.fc20.x86_64
+fc20: nss-util-3.15.2-2.fc20.x86_64
+fc20: numactl-libs-2.0.9-1.fc20.x86_64
+fc20: numad-0.5-12.20130814git.fc20.x86_64
+fc20: openldap-2.4.36-4.fc20.x86_64
+fc20: openpgm-5.2.122-2.fc20.x86_64
+fc20: openssh
+fc20: openssh-clients
+fc20: openssh-server
+fc20: openssl
+ub16: libssl-dev
+fc20: openssl-devel
+fc20: openssl-libs
+fc20: os-prober-1.58-4.fc20.x86_64
+fc20: p11-kit-0.20.1-1.fc20.x86_64
+fc20: p11-kit-trust-0.20.1-1.fc20.x86_64
+fc20: pam-1.1.8-1.fc20.x86_64
+fc20: parted-3.1-13.fc20.x86_64
+fc20: passwd-0.79-2.fc20.x86_64
+fc20: pciutils-3.2.1-1.fc20.x86_64
+fc20: pciutils-libs-3.2.1-1.fc20.x86_64
+fc20: pcre-8.33-4.fc20.x86_64
+fc20: pcre-devel-8.33-4.fc20.x86_64
+fc20: perl-5.18.2-289.fc20.x86_64
+fc20: perl-Carp-1.26-245.fc20.noarch
+fc20: perl-constant-1.27-292.fc20.noarch
+fc20: perl-Encode-2.54-2.fc20.x86_64
+fc20: perl-Exporter-5.68-293.fc20.noarch
+fc20: perl-File-Path-2.09-292.fc20.noarch
+fc20: perl-File-Temp-0.23.01-4.fc20.noarch
+fc20: perl-Filter-1.49-5.fc20.x86_64
+fc20: perl-Getopt-Long-2.42-1.fc20.noarch
+fc20: perl-HTTP-Tiny-0.034-4.fc20.noarch
+fc20: perl-libs-5.18.2-289.fc20.x86_64
+fc20: perl-macros-5.18.2-289.fc20.x86_64
+fc20: perl-Module-CoreList-3.03-289.fc20.noarch
+fc20: perl-parent-0.228-1.fc20.noarch
+fc20: perl-PathTools-3.40-291.fc20.x86_64
+fc20: perl-Pod-Escapes-1.04-289.fc20.noarch
+fc20: perl-podlators-2.5.1-291.fc20.noarch
+fc20: perl-Pod-Perldoc-3.20-7.fc20.noarch
+fc20: perl-Pod-Simple-3.28-292.fc20.noarch
+fc20: perl-Pod-Usage-1.63-4.fc20.noarch
+fc20: perl-Scalar-List-Utils-1.31-293.fc20.x86_64
+fc20: perl-Socket-2.013-1.fc20.x86_64
+fc20: perl-srpm-macros-1-10.fc20.noarch
+fc20: perl-Storable-2.45-2.fc20.x86_64
+fc20: perl-Text-ParseWords-3.29-3.fc20.noarch
+fc20: perl-threads-1.89-1.fc20.x86_64
+fc20: perl-threads-shared-1.45-1.fc20.x86_64
+fc20: perl-Time-HiRes-1.9726-1.fc20.x86_64
+fc20: perl-Time-Local-1.2300-291.fc20.noarch
+fc20: perl-version-0.99.04-2.fc20.x86_64
+fc20: php
+fc20: php-gd
+fc20: pinentry-0.8.1-11.fc20.x86_64
+fc20: pkgconfig-0.28-3.fc20.x86_64
+fc20: pm-utils-1.4.1-26.fc20.x86_64
+fc20: policycoreutils-2.2.2-3.fc20.x86_64
+fc20: policycoreutils-python-2.2.2-3.fc20.x86_64
+fc20: polkit-0.112-2.fc20.x86_64
+fc20: polkit-pkla-compat-0.1-3.fc20.x86_64
+fc20: popt-1.13-15.fc20.x86_64
+fc20: procps-ng-3.3.8-14.fc20.x86_64
+fc20: pth-2.0.7-21.fc20.x86_64
+fc20: pygpgme-0.3-8.fc20.x86_64
+fc20: pyliblzma-0.5.3-10.fc20.x86_64
+fc20: python-2.7.5-9.fc20.x86_64
+fc20: python3-3.3.2-8.fc20.x86_64
+fc20: python3-libs-3.3.2-8.fc20.x86_64
+fc20: python3-magic
+fc20: python3-lxc-0.9.0-2.fc20.x86_64
+fc20: python-babel-1.3-2.fc20.noarch
+fc20: python-backports-1.0-3.fc20.x86_64
+fc20: python-backports-ssl_match_hostname-3.4.0.2-1.fc20.noarch
+fc20: python-boto-2.13.3-1.fc20.noarch
+fc20: python-chardet-2.0.1-7.fc20.noarch
+fc20: python-cheetah-2.4.4-5.fc20.x86_64
+fc20: python-configobj-4.7.2-7.fc20.noarch
+fc20: python-crypto-2.6.1-1.fc20.x86_64
+fc20: python-iniparse-0.4-9.fc20.noarch
+fc20: python-IPy-0.75-6.fc20.noarch
+fc20: python-jinja2-2.7.1-1.fc20.noarch
+fc20: python-kitchen-1.1.1-5.fc20.noarch
+fc20: python-libs-2.7.5-9.fc20.x86_64
+fc20: python-markdown-2.3.1-3.fc20.noarch
+fc20: python-markupsafe-0.18-1.fc20.x86_64
+fc20: python-msgpack-0.1.13-4.fc20.x86_64
+fc20: python-pillow-2.2.1-2.fc20.x86_64
+fc20: python-prettytable-0.6.1-3.fc20.noarch
+fc20: python-psutil-1.0.1-1.fc20.x86_64
+fc20: python-pycurl-7.19.0-17.20120408git9b8f4e38.fc20.x86_64
+fc20: python-pygments-1.4-9.fc20.noarch
+fc20: python-requests-1.2.3-5.fc20.noarch
+fc20: python-six-1.4.1-1.fc20.noarch
+fc20: python-urlgrabber-3.9.1-32.fc20.noarch
+fc20: python-urllib3-1.7-4.fc20.noarch
+fc20: python-zmq-13.0.2-1.fc20.x86_64
+fc20: pyxattr-0.5.1-4.fc20.x86_64
+fc20: PyYAML-3.10-9.fc20.x86_64
+fc20: qemu-img-1.6.1-3.fc20.x86_64
+fc20: qrencode-libs-3.4.2-1.fc20.x86_64
+fc20: quota-4.01-10.fc20.x86_64
+fc20: quota-nls-4.01-10.fc20.noarch
+fc20: radvd-1.9.2-4.fc20.x86_64
+fc20: readline-6.2-8.fc20.x86_64
+fc20: redhat-rpm-config-9.1.0-54.fc20.noarch
+fc20: rootfiles-8.1-16.fc20.noarch
+fc20: rpcbind-0.2.1-0.2.fc20.x86_64
+fc20: rpm-4.11.3-1.fc20.x86_64
+fc20: rpm-build-libs-4.11.3-1.fc20.x86_64
+fc20: rpm-libs-4.11.3-1.fc20.x86_64
+fc20: rpm-python-4.11.3-1.fc20.x86_64
+fc20: rsync-3.1.0-1pre1.fc20.x86_64
+fc20: rsyslog-7.4.2-2.fc20.x86_64
+fc20: salt-master-2015.5.0-1.fc20.noarch
+ub16: salt-master
+fc20: salt-2015.5.0-1.fc20.noarch
+fc20: salt-minion-2015.5.0-1.fc20.noarch
+ub16: salt-minion
+fc20: screen
+fc20: sed-4.2.2-5.fc20.x86_64
+fc20: selinux-policy-3.12.1-106.fc20.noarch
+fc20: selinux-policy-targeted-3.12.1-106.fc20.noarch
+fc20: setools-libs-3.3.7-41.fc20.x86_64
+fc20: setup-2.8.71-2.fc20.noarch
+fc20: shadow-utils-4.1.5.1-8.fc20.x86_64
+fc20: shared-mime-info-1.2-1.fc20.x86_64
+fc20: sheepdog-0.3.0-5.fc20.x86_64
+fc20: snappy-1.1.0-2.fc20.x86_64
+fc20: socat-1.7.2.2-3.fc20.x86_64
+fc20: sqlite-3.8.1-2.fc20.x86_64
+fc20: sshpass-1.05-5.fc20.x86_64
+fc20: sudo-1.8.8-1.fc20.x86_64
+fc20: syslinux-4.05-7.fc20.x86_64
+fc20: syslinux-extlinux-4.05-7.fc20.x86_64
+fc20: sysvinit-tools-2.88-14.dsf.fc20.x86_64
+fc20: tar-1.26-29.fc20.x86_64
+fc20: tcl-8.5.14-1.fc20.x86_64
+fc20: tcp_wrappers-7.6-76.fc20.x86_64
+fc20: tcp_wrappers-libs-7.6-76.fc20.x86_64
+fc20: tmux
+fc20: trousers-0.3.11.2-1.fc20.x86_64
+fc20: tzdata-2013h-1.fc20.noarch
+fc20: uboot-tools-2013.10-3.fc20.x86_64
+fc20: unbound-libs-1.4.21-1.fc20.x86_64
+fc20: ustr-1.0.4-15.fc20.x86_64
+fc20: util-linux-2.24-2.fc20.x86_64
+fc20: v8-3.14.5.10-3.fc20.x86_64
+fc20: v8-devel-3.14.5.10-3.fc20.x86_64
+fc20: vim-minimal-7.4.027-2.fc20.x86_64
+fc20: which-2.20-6.fc20.x86_64
+fc20: xen-libs-4.3.1-8.fc20.x86_64
+fc20: xen-licenses-4.3.1-8.fc20.x86_64
+fc20: xz-5.1.2-6alpha.fc20.x86_64
+fc20: xz-libs-5.1.2-6alpha.fc20.x86_64
+fc20: yajl-2.0.4-3.fc20.x86_64
+fc20: yum-3.4.3-106.fc20.noarch
+fc20: yum-metadata-parser-1.1.4-9.fc20.x86_64
+fc20: yum-utils-1.1.31-20.fc20.noarch
+fc20: zeromq3-3.2.4-1.fc20.x86_64
+fc20: zip-3.0-9.fc20.x86_64
+fc20: zlib-1.2.8-3.fc20.x86_64
+fc20: zlib-devel-1.2.8-3.fc20.x86_64
+fc20: zookeeper-java.noarch
+fc20: pcs
index 9791735..820e05c 100644 (file)
@@ -1,18 +1,3 @@
-#
-#    Copyright 2016 RIFT.IO Inc
-#
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
 cmd npm set registry https://npm.riftio.com:4873/
 cmd npm set strict-ssl false
 cmd npm install -g --production forever
index 5651214..1f54d14 100644 (file)
@@ -3,7 +3,6 @@ beautifulsoup4==4.3.2
 certifi==2015.4.28
 dicttoxml==1.6.6
 ecdsa==0.13
-enum34==1.0.4
 Flask_SocketIO==0.6.0
 futures==2.2.0
 jsonpath-rw==1.4.0
index 0d81528..447241b 100644 (file)
@@ -1,10 +1,25 @@
-libnl3-3.2.21-2.fc20.x86_64
+fc20: libnl3-3.2.21-2.fc20.x86_64
+ub16: libnl-3-200
+
 zookeeper-java.noarch
-libpcap
-boost-filesystem-1.54.0-9.fc20.x86_64
-boost-system-1.54.0-9.fc20.x86_64
-boost-thread-1.54.0-9.fc20.x86_64
+
+fc20: libpcap
+ub16: libpcap0.8
+
+fc20: boost-filesystem-1.54.0-9.fc20.x86_64
+ub16: libboost-filesystem1.58.0
+fc20: boost-system-1.54.0-9.fc20.x86_64
+ub16: libboost-system1.58.0
+fc20: boost-thread-1.54.0-9.fc20.x86_64
+ub16: libboost-thread1.58.0
+fc20: i40evf-1.5.14
+
 npm
 pciutils
-icu
-vconfig
+
+fc20: qat_guest
+
+fc20: icu
+ub16: icu-devtools
+
+fc20: vconfig