summaryrefslogtreecommitdiff
path: root/unmaintained/strata/openstack-services
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2016-10-31 15:35:03 +0900
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2016-11-11 17:36:41 +0900
commit82d358156d80fabb06702023178445ec90b7ada9 (patch)
treeb6783c139d95c608dc7bf1ce85e5a213a4397cf4 /unmaintained/strata/openstack-services
parentec458e22d52b15458636a1f550e55e92a4fee962 (diff)
downloaddefinitions-82d358156d80fabb06702023178445ec90b7ada9.tar.gz
Moving unmaintained systems, clusters and their strata to unmaintained directory
This includes ceph, chef, cxmanage, java, openstack, nodejs, ocaml, qt4, qt5 (system only, qt5 is used by ivi projects), swift, web, xfce and zookeeper systems. All strata which is referred to exclusively by systems and clusters in the unmaintained directory have also been moved to the unmaintained directory. Change-Id: If60b0fa8bc1d7f9c53137fa7106b396668682a9a
Diffstat (limited to 'unmaintained/strata/openstack-services')
-rw-r--r--unmaintained/strata/openstack-services/ceilometer.morph23
-rw-r--r--unmaintained/strata/openstack-services/cinder.morph21
-rw-r--r--unmaintained/strata/openstack-services/erlang-sd_notify.morph8
-rw-r--r--unmaintained/strata/openstack-services/glance.morph29
-rw-r--r--unmaintained/strata/openstack-services/horizon.morph63
-rw-r--r--unmaintained/strata/openstack-services/ipaddr-py.morph6
-rw-r--r--unmaintained/strata/openstack-services/ironic.morph18
-rw-r--r--unmaintained/strata/openstack-services/keystone.morph9
-rw-r--r--unmaintained/strata/openstack-services/librabbitmq.morph10
-rw-r--r--unmaintained/strata/openstack-services/neutron.morph27
-rw-r--r--unmaintained/strata/openstack-services/nova.morph24
-rw-r--r--unmaintained/strata/openstack-services/novnc.morph11
-rw-r--r--unmaintained/strata/openstack-services/open-iscsi.morph46
-rw-r--r--unmaintained/strata/openstack-services/pysendfile.morph3
-rw-r--r--unmaintained/strata/openstack-services/qpid-python.morph6
-rw-r--r--unmaintained/strata/openstack-services/rabbitmq-codegen.morph7
-rw-r--r--unmaintained/strata/openstack-services/rabbitmq-server.morph16
-rw-r--r--unmaintained/strata/openstack-services/rtslib-fb.morph27
-rw-r--r--unmaintained/strata/openstack-services/singledispatch.morph3
-rw-r--r--unmaintained/strata/openstack-services/tempest.morph12
-rw-r--r--unmaintained/strata/openstack-services/tftp-hpa.morph5
-rw-r--r--unmaintained/strata/openstack-services/thrift.morph6
22 files changed, 380 insertions, 0 deletions
diff --git a/unmaintained/strata/openstack-services/ceilometer.morph b/unmaintained/strata/openstack-services/ceilometer.morph
new file mode 100644
index 00000000..f120ce9e
--- /dev/null
+++ b/unmaintained/strata/openstack-services/ceilometer.morph
@@ -0,0 +1,23 @@
+name: ceilometer
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+# Install the configuration files required to
+- mkdir -p "$DESTDIR"/etc/ceilometer
+- install -D -m 644 etc/ceilometer/*.json "$DESTDIR"/etc/ceilometer
+- install -D -m 644 etc/ceilometer/*.yaml "$DESTDIR"/etc/ceilometer
+- install -D -m 644 etc/ceilometer/api_paste.ini "$DESTDIR"/etc/ceilometer/api_paste.ini
+# Install rootwrap.conf
+- install -D -m 640 etc/ceilometer/rootwrap.conf "$DESTDIR"/etc/ceilometer/rootwrap.conf
+# Move rootwrap files to a proper location
+- mkdir -p "$DESTDIR"/etc/ceilometer/rootwrap.d
+- install -D -m 644 etc/ceilometer/rootwrap.d/* "$DESTDIR"/etc/ceilometer/rootwrap.d/
+# Add ceilometer to sudoers controlling which commands will run as a root
+# using the openstack rootwrap.
+- mkdir -p "$DESTDIR"/etc/sudoers.d
+- |
+ install -D -m 0440 /proc/self/fd/0 <<'EOF' "$DESTDIR"/etc/sudoers.d/ceilometer-rootwrap
+ Defaults:ceilometer !requiretty
+
+ ceilometer ALL=(root) NOPASSWD: /usr/bin/ceilometer-rootwrap /etc/ceilometer/rootwrap.conf *
+ EOF
diff --git a/unmaintained/strata/openstack-services/cinder.morph b/unmaintained/strata/openstack-services/cinder.morph
new file mode 100644
index 00000000..a0fc879f
--- /dev/null
+++ b/unmaintained/strata/openstack-services/cinder.morph
@@ -0,0 +1,21 @@
+name: cinder
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+# Install some default configuration files
+- install -D -m 644 etc/cinder/logging_sample.conf "$DESTDIR"/etc/cinder/logging.conf
+- install -D -m 644 etc/cinder/api-paste.ini "$DESTDIR"/etc/cinder/api-paste.ini
+- install -D -m 644 etc/cinder/policy.json "$DESTDIR"/etc/cinder/policy.json
+- install -D -m 640 etc/cinder/rootwrap.conf "$DESTDIR"/etc/cinder/rootwrap.conf
+# Move rootwrap files to a proper location
+- mkdir -p "$DESTDIR"/etc/cinder/rootwrap.d
+- install -D -m 644 etc/cinder/rootwrap.d/* "$DESTDIR"/etc/cinder/rootwrap.d/
+# Add cinder to sudoers controlling which commands will run as a root
+# using the openstack rootwrap.
+- mkdir -p "$DESTDIR"/etc/sudoers.d
+- |
+ install -D -m 0440 /proc/self/fd/0 <<'EOF' "$DESTDIR"/etc/sudoers.d/cinder-rootwrap
+ Defaults:cinder !requiretty
+
+ cinder ALL=(root) NOPASSWD: /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf *
+ EOF
diff --git a/unmaintained/strata/openstack-services/erlang-sd_notify.morph b/unmaintained/strata/openstack-services/erlang-sd_notify.morph
new file mode 100644
index 00000000..dd3f66ca
--- /dev/null
+++ b/unmaintained/strata/openstack-services/erlang-sd_notify.morph
@@ -0,0 +1,8 @@
+name: erlang-sd_notify
+kind: chunk
+build-commands:
+- LDFLAGS=-lsystemd REBAR_FLAGS="--verbose 2" make
+install-commands:
+- install -D -m 644 -p ebin/sd_notify.app "$DESTDIR$PREFIX"/lib/erlang/lib/sd_notify-0.1/ebin/sd_notify.app
+- install -D -m 644 -p ebin/sd_notify.beam "$DESTDIR$PREFIX"/lib/erlang/lib/sd_notify-0.1/ebin/sd_notify.beam
+- install -D -m 755 -p priv/sd_notify_drv.so "$DESTDIR$PREFIX"/lib/erlang/lib/sd_notify-0.1/priv/sd_notify_drv.so
diff --git a/unmaintained/strata/openstack-services/glance.morph b/unmaintained/strata/openstack-services/glance.morph
new file mode 100644
index 00000000..3f81a505
--- /dev/null
+++ b/unmaintained/strata/openstack-services/glance.morph
@@ -0,0 +1,29 @@
+name: glance
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+# Install some default configuration files
+- mkdir -p "$DESTDIR"/etc/glance
+- install -m 644 etc/glance-api-paste.ini "$DESTDIR"/etc/glance/
+- install -m 644 etc/glance-registry-paste.ini "$DESTDIR"/etc/glance/
+- install -m 644 etc/glance-search-paste.ini "$DESTDIR"/etc/glance/
+- install -m 644 etc/policy.json "$DESTDIR"/etc/glance/
+- install -m 644 etc/schema-image.json "$DESTDIR"/etc/glance/
+- install -m 644 etc/search-policy.json "$DESTDIR"/etc/glance/
+# Install predefined namespaces for Glance Metadata Definitions
+# Catalog (see more info in its README)
+- cp -r etc/metadefs "$DESTDIR"/etc/glance/
+# Install conf files which are not modified by
+- install -m 644 etc/glance-scrubber.conf "$DESTDIR"/etc/glance/
+- install -m 644 etc/glance-cache.conf "$DESTDIR"/etc/glance/
+- install -m 644 etc/glance-search.conf "$DESTDIR"/etc/glance/
+- |
+ install -m 644 etc/glance-swift.conf.sample \
+ "$DESTDIR"/etc/glance/glance-swift.conf
+- install -m 644 etc/glance-manage.conf "$DESTDIR"/etc/glance/
+- |
+ install -m 644 etc/property-protections-policies.conf.sample \
+ "$DESTDIR"/etc/glance/property-protections-policies.conf
+- |
+ install -m 644 etc/property-protections-roles.conf.sample \
+ "$DESTDIR"/etc/glance/property-protections-roles.conf
diff --git a/unmaintained/strata/openstack-services/horizon.morph b/unmaintained/strata/openstack-services/horizon.morph
new file mode 100644
index 00000000..74930a1e
--- /dev/null
+++ b/unmaintained/strata/openstack-services/horizon.morph
@@ -0,0 +1,63 @@
+name: horizon
+kind: chunk
+configure-commands:
+# Remove unnecessary .mo files they will be generated
+# later during package build.
+- find . -name "django*.mo" -exec rm -f '{}' \;
+build-commands:
+# Compile message strings
+- cd horizon && django-admin.py compilemessages
+- cd openstack_dashboard && django-admin.py compilemessages
+- python setup.py build
+
+# Use the local_settings.py example to compile and compress the css, js, etc files.
+# This is a hack to make SECRET_KEY work.
+- |
+ cp openstack_dashboard/local/local_settings.py.example \
+ openstack_dashboard/local/local_settings.py
+# Collect the static files and compress them.
+- python manage.py collectstatic --noinput
+- python manage.py compress --force
+install-commands:
+# Install horizon in a temporary folder first, and then move things to the
+# right place in $DESTDIR
+- mkdir temproot
+- python setup.py install -O1 --skip-build --prefix "$PREFIX" --root temproot
+# Remove unnecessary .po files
+- find temproot -name django.po -exec rm '{}' \;
+- find temproot -name djangojs.po -exec rm '{}' \;
+
+# Move openstack_dashboard to /var/lib/horizon
+- mkdir -p "$DESTDIR"/var/lib/horizon/
+- |
+ mv temproot/"$PREFIX"/lib/python*/site-packages/openstack_dashboard \
+ "$DESTDIR"/var/lib/horizon/
+- cp manage.py "$DESTDIR"/var/lib/horizon/openstack_dashboard/
+
+# Copy the rest to $DESTDIR
+- cp -a temproot/* "$DESTDIR"
+
+# Copy local_settings to /etc/horizon/openstack_dashboard, so that they
+# can be modified, and link them where openstack_dashboard is installed.
+- mkdir -p "$DESTDIR"/etc/horizon/openstack_dashboard/
+- |
+ cp openstack_dashboard/local/local_settings.py.example \
+ "$DESTDIR"/etc/horizon/openstack_dashboard/local_settings.py
+# Set COMPRESS_OFFLINE=True
+- |
+ echo "COMPRESS_OFFLINE=True" >> \
+ "$DESTDIR"/etc/horizon/openstack_dashboard/local_settings.py
+
+- mkdir -p "$DESTDIR"/var/lib/horizon/openstack_dashboard/local
+- |
+ ln -sf /etc/horizon/openstack_dashboard/local_settings.py \
+ "$DESTDIR"/var/lib/horizon/openstack_dashboard/local/local_settings.py
+
+# Create the static directory (STATIC_ROOT) used in local_settings.py to keep
+# the static objects like css files.
+- mkdir -p "$DESTDIR"/var/lib/horizon/static
+# Copy the compressed static files to horizon.
+- cp -a static/* "$DESTDIR"/var/lib/horizon/static
+
+# Create the horizon document root for apache configuration
+- mkdir -p "$DESTDIR"/var/lib/horizon/.blackhole
diff --git a/unmaintained/strata/openstack-services/ipaddr-py.morph b/unmaintained/strata/openstack-services/ipaddr-py.morph
new file mode 100644
index 00000000..f6691ab7
--- /dev/null
+++ b/unmaintained/strata/openstack-services/ipaddr-py.morph
@@ -0,0 +1,6 @@
+name: ipaddr-py
+kind: chunk
+build-commands:
+- cd trunk && python setup.py build
+install-commands:
+- cd trunk && python setup.py install --prefix "$PREFIX" --root "$DESTDIR"
diff --git a/unmaintained/strata/openstack-services/ironic.morph b/unmaintained/strata/openstack-services/ironic.morph
new file mode 100644
index 00000000..8003dd17
--- /dev/null
+++ b/unmaintained/strata/openstack-services/ironic.morph
@@ -0,0 +1,18 @@
+name: ironic
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+- |
+ mkdir -p "$DESTDIR"/etc/ironic
+ install -m 644 etc/ironic/policy.json "$DESTDIR"/etc/ironic
+ install -m 644 etc/ironic/rootwrap.conf "$DESTDIR"/etc/ironic
+ mkdir -p "$DESTDIR"/etc/ironic/rootwrap.d
+ install -m 644 etc/ironic/rootwrap.d/* "$DESTDIR"/etc/ironic/rootwrap.d/
+
+ # Add ironic to sudoers controlling which commands will run as a root
+ # using the openstack rootwrap.
+ install -D -m 0440 /proc/self/fd/0 <<'EOF' "$DESTDIR"/etc/sudoers.d/ironic-rootwrap
+ Defaults:ironic !requiretty
+
+ ironic ALL=(root) NOPASSWD: /usr/bin/ironic-rootwrap /etc/ironic/rootwrap.conf *
+ EOF
diff --git a/unmaintained/strata/openstack-services/keystone.morph b/unmaintained/strata/openstack-services/keystone.morph
new file mode 100644
index 00000000..836b5d47
--- /dev/null
+++ b/unmaintained/strata/openstack-services/keystone.morph
@@ -0,0 +1,9 @@
+name: keystone
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+# Install some default configuration files
+- mkdir -p "$DESTDIR"/etc/keystone
+- install -m 644 etc/keystone-paste.ini "$DESTDIR"/etc/keystone/
+- install -m 644 etc/policy.json "$DESTDIR"/etc/keystone/
+- install -m 644 etc/logging.conf.sample "$DESTDIR"/etc/keystone/logging.conf
diff --git a/unmaintained/strata/openstack-services/librabbitmq.morph b/unmaintained/strata/openstack-services/librabbitmq.morph
new file mode 100644
index 00000000..b87ce369
--- /dev/null
+++ b/unmaintained/strata/openstack-services/librabbitmq.morph
@@ -0,0 +1,10 @@
+name: librabbitmq
+kind: chunk
+build-system: python-distutils
+configure-commands:
+- (cd rabbitmq-c; rm -rf codegen; ln -sf ../rabbitmq-codegen ./codegen)
+- (cd rabbitmq-c; autoreconf -fvi)
+- (cd rabbitmq-c; automake --add-missing)
+- (cd rabbitmq-c; ./configure --disable-tools --disable-docs)
+- (cd rabbitmq-c; make distdir)
+- mv rabbitmq-c/rabbitmq-c-0.5.3 clib
diff --git a/unmaintained/strata/openstack-services/neutron.morph b/unmaintained/strata/openstack-services/neutron.morph
new file mode 100644
index 00000000..6e203922
--- /dev/null
+++ b/unmaintained/strata/openstack-services/neutron.morph
@@ -0,0 +1,27 @@
+name: neutron
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+- |
+ # Move the configuration files to a proper location
+ mkdir "$DESTDIR"/etc
+ mv "$DESTDIR/$PREFIX"/etc/neutron "$DESTDIR"/etc
+
+ # Remove unused start/stop script
+ rm "$DESTDIR/$PREFIX"/etc/init.d/neutron-server
+
+ # Remove configuration files which will be added by Ansible
+ rm "$DESTDIR"/etc/neutron/neutron.conf
+ rm "$DESTDIR"/etc/neutron/metadata_agent.ini
+ rm "$DESTDIR"/etc/neutron/plugins/ml2/ml2_conf.ini
+ rm "$DESTDIR"/etc/neutron/dhcp_agent.ini
+ rm "$DESTDIR"/etc/neutron/l3_agent.ini
+
+ # Add neutron to sudoers controlling which commands is running as a
+ # root using the openstack rootwrap.
+ mkdir -p "$DESTDIR"/etc/sudoers.d
+ install -D -m 0440 /proc/self/fd/0 <<'EOF' "$DESTDIR"/etc/sudoers.d/neutron-rootwrap
+ Defaults:neutron !requiretty
+
+ neutron ALL=(root) NOPASSWD: /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf *
+ EOF
diff --git a/unmaintained/strata/openstack-services/nova.morph b/unmaintained/strata/openstack-services/nova.morph
new file mode 100644
index 00000000..e5a87daf
--- /dev/null
+++ b/unmaintained/strata/openstack-services/nova.morph
@@ -0,0 +1,24 @@
+name: nova
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+# Install some default configuration files
+- mkdir -p "$DESTDIR"/etc/nova
+- install -m 644 etc/nova/api-paste.ini "$DESTDIR"/etc/nova/
+- install -m 644 etc/nova/cells.json "$DESTDIR"/etc/nova/
+- install -m 644 etc/nova/logging_sample.conf "$DESTDIR"/etc/nova/logging.conf
+- install -m 644 etc/nova/policy.json "$DESTDIR"/etc/nova/
+# Install rootwrap.conf
+- install -m 640 etc/nova/rootwrap.conf "$DESTDIR"/etc/nova/rootwrap.conf
+# Move rootwrap files to a proper location
+- mkdir -p "$DESTDIR"/etc/nova/rootwrap.d
+- install -m 644 etc/nova/rootwrap.d/* "$DESTDIR"/etc/nova/rootwrap.d/
+# Add nova to sudoers controlling which commands will run as a root
+# using the openstack rootwrap.
+- mkdir -p "$DESTDIR"/etc/sudoers.d
+- |
+ install -D -m 0440 /proc/self/fd/0 <<'EOF' "$DESTDIR"/etc/sudoers.d/nova-rootwrap
+ Defaults:nova !requiretty
+
+ nova ALL=(root) NOPASSWD: /usr/bin/nova-rootwrap /etc/nova/rootwrap.conf *
+ EOF
diff --git a/unmaintained/strata/openstack-services/novnc.morph b/unmaintained/strata/openstack-services/novnc.morph
new file mode 100644
index 00000000..858320a0
--- /dev/null
+++ b/unmaintained/strata/openstack-services/novnc.morph
@@ -0,0 +1,11 @@
+name: novnc
+kind: chunk
+install-commands:
+- mkdir -p "$DESTDIR$PREFIX"/share/novnc/utils
+- install -m 444 *html "$DESTDIR$PREFIX"/share/novnc
+- install -m 444 vnc.html "$DESTDIR$PREFIX"/share/novnc/index.html
+- mkdir -p "$DESTDIR$PREFIX"/share/novnc/include
+- install -m 444 include/*.* "$DESTDIR$PREFIX"/share/novnc/include
+- mkdir -p "$DESTDIR$PREFIX"/share/novnc/images
+- install -m 444 images/*.* "$DESTDIR$PREFIX"/share/novnc/images
+- install -d "$DESTDIR"/etc/sysconfig
diff --git a/unmaintained/strata/openstack-services/open-iscsi.morph b/unmaintained/strata/openstack-services/open-iscsi.morph
new file mode 100644
index 00000000..6a0b73b3
--- /dev/null
+++ b/unmaintained/strata/openstack-services/open-iscsi.morph
@@ -0,0 +1,46 @@
+name: open-iscsi
+kind: chunk
+build-commands:
+- make
+install-commands:
+# Rewrite prefix and exec_prefix which are set to "/usr" and "/" respectively
+- make prefix="$PREFIX" exec_prefix="$PREFIX" DESTDIR="$DESTDIR" install
+# Install iscsistart app which is not listed by default in PROGRAMS
+- make prefix="$PREFIX" exec_prefix="$PREFIX" DESTDIR="$DESTDIR" PROGRAMS="usr/iscsistart"
+ install
+post-install-commands:
+# Configure iscsi daemon
+# Point the startup to the installed binary
+- |
+ sed -i -e "s|iscsid.startup = \/sbin\/iscsid|iscsid.startup = "$PREFIX"/sbin/iscsid|" \
+ etc/iscsid.conf
+# Start up a session automatically
+- sed -i -e 's|node.startup = manual|node.startup = automatic|' etc/iscsid.conf
+# Install config file
+- install -D -m 644 etc/iscsid.conf "$DESTDIR"/etc/iscsi
+# Install custom systemd unit file
+- |
+ install -D -m 644 /proc/self/fd/0 << 'EOF' "$DESTDIR$PREFIX"/lib/systemd/system/iscsid.service
+ [Unit]
+ Description=Open iSCSI Daemon
+ After=network.target
+
+ [Service]
+ Type=forking
+ ExecStart=/usr/sbin/iscsid
+
+ [Install]
+ WantedBy=multi-user.target
+ EOF
+# Install iscsi socket unit
+- |
+ install -D -m 644 /proc/self/fd/0 << 'EOF' "$DESTDIR$PREFIX"/lib/systemd/system/iscsid.socket
+ [Unit]
+ Description=Open-iSCSI iscsid Socket
+
+ [Socket]
+ ListenStream=@ISCSIADM_ABSTRACT_NAMESPACE
+
+ [Install]
+ WantedBy=sockets.target
+ EOF
diff --git a/unmaintained/strata/openstack-services/pysendfile.morph b/unmaintained/strata/openstack-services/pysendfile.morph
new file mode 100644
index 00000000..2e2f809b
--- /dev/null
+++ b/unmaintained/strata/openstack-services/pysendfile.morph
@@ -0,0 +1,3 @@
+name: pysendfile
+kind: chunk
+build-system: python-distutils
diff --git a/unmaintained/strata/openstack-services/qpid-python.morph b/unmaintained/strata/openstack-services/qpid-python.morph
new file mode 100644
index 00000000..203b3db5
--- /dev/null
+++ b/unmaintained/strata/openstack-services/qpid-python.morph
@@ -0,0 +1,6 @@
+name: qpid-python
+kind: chunk
+build-commands:
+- cd qpid/python && python setup.py build
+install-commands:
+- cd qpid/python && python setup.py install --prefix "$PREFIX" --root "$DESTDIR"
diff --git a/unmaintained/strata/openstack-services/rabbitmq-codegen.morph b/unmaintained/strata/openstack-services/rabbitmq-codegen.morph
new file mode 100644
index 00000000..2b06aeb5
--- /dev/null
+++ b/unmaintained/strata/openstack-services/rabbitmq-codegen.morph
@@ -0,0 +1,7 @@
+name: rabbitmq-codegen
+kind: chunk
+configure-commands: []
+build-commands: []
+install-commands:
+- mkdir -p "$DESTDIR$PREFIX"/lib/rabbitmq-codegen
+- cp * "$DESTDIR$PREFIX"/lib/rabbitmq-codegen
diff --git a/unmaintained/strata/openstack-services/rabbitmq-server.morph b/unmaintained/strata/openstack-services/rabbitmq-server.morph
new file mode 100644
index 00000000..97b8a126
--- /dev/null
+++ b/unmaintained/strata/openstack-services/rabbitmq-server.morph
@@ -0,0 +1,16 @@
+name: rabbitmq-server
+kind: chunk
+configure-commands:
+- mkdir -p codegen
+- cp /usr/lib/rabbitmq-codegen/* codegen
+build-commands:
+- make
+install-commands:
+- |
+ make install_bin TARGET_DIR="$DESTDIR$PREFIX" \
+ SBIN_DIR="$DESTDIR$PREFIX"/sbin \
+ MAN_DIR="$PREFIX"/share/man \
+ DOC_INSTALL_DIR="$PREFIX"/share
+
+post-install-commands:
+- rm "$DESTDIR$PREFIX"/LICENSE* "$DESTDIR$PREFIX"/INSTALL
diff --git a/unmaintained/strata/openstack-services/rtslib-fb.morph b/unmaintained/strata/openstack-services/rtslib-fb.morph
new file mode 100644
index 00000000..26de3f9b
--- /dev/null
+++ b/unmaintained/strata/openstack-services/rtslib-fb.morph
@@ -0,0 +1,27 @@
+name: rtslib-fb
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+- mkdir -p "$DESTDIR$PREFIX"/lib/systemd/system
+
+# The following systemd unit is from the fedora package see
+# http://pkgs.fedoraproject.org/cgit/python-rtslib.git/tree/target.service for
+# more information
+
+- |
+ install -D -m 0644 /proc/self/fd/0 <<'EOF' "$DESTDIR$PREFIX"/lib/systemd/system/target.service
+ [Unit]
+ Description=Restore LIO kernel target configuration
+ Requires=sys-kernel-config.mount
+ After=sys-kernel-config.mount network.target local-fs.target
+
+ [Service]
+ Type=oneshot
+ RemainAfterExit=yes
+ ExecStart=/usr/bin/targetctl restore
+ ExecStop=/usr/bin/targetctl clear
+ SyslogIdentifier=target
+
+ [Install]
+ WantedBy=multi-user.target
+ EOF
diff --git a/unmaintained/strata/openstack-services/singledispatch.morph b/unmaintained/strata/openstack-services/singledispatch.morph
new file mode 100644
index 00000000..919c7096
--- /dev/null
+++ b/unmaintained/strata/openstack-services/singledispatch.morph
@@ -0,0 +1,3 @@
+name: singledispatch
+kind: chunk
+build-system: python-distutils
diff --git a/unmaintained/strata/openstack-services/tempest.morph b/unmaintained/strata/openstack-services/tempest.morph
new file mode 100644
index 00000000..cffb7d33
--- /dev/null
+++ b/unmaintained/strata/openstack-services/tempest.morph
@@ -0,0 +1,12 @@
+name: tempest
+kind: chunk
+build-system: python-distutils
+post-install-commands:
+# Install files and folders required to run tempest
+- mkdir -p "$DESTDIR"/etc/tempest
+- cp -r tempest "$DESTDIR"/etc/tempest/
+- cp -r tools "$DESTDIR"/etc/tempest/
+- cp setup.py tox.ini "$DESTDIR"/etc/tempest/
+- cp run_tests.sh run_tempest.sh "$DESTDIR"/etc/tempest/
+- cp .testr.conf "$DESTDIR"/etc/tempest/
+- cp etc/logging.conf.sample "$DESTDIR"/etc/tempest/logging.conf
diff --git a/unmaintained/strata/openstack-services/tftp-hpa.morph b/unmaintained/strata/openstack-services/tftp-hpa.morph
new file mode 100644
index 00000000..d466d2d4
--- /dev/null
+++ b/unmaintained/strata/openstack-services/tftp-hpa.morph
@@ -0,0 +1,5 @@
+name: tftp-hpa
+build-system: autotools
+kind: chunk
+install-commands:
+- make INSTALLROOT="$DESTDIR" install
diff --git a/unmaintained/strata/openstack-services/thrift.morph b/unmaintained/strata/openstack-services/thrift.morph
new file mode 100644
index 00000000..39062351
--- /dev/null
+++ b/unmaintained/strata/openstack-services/thrift.morph
@@ -0,0 +1,6 @@
+name: thrift
+kind: chunk
+build-system: autotools
+max-jobs: 1
+pre-configure-commands:
+- ./bootstrap.sh