summaryrefslogtreecommitdiff
path: root/sysutils
diff options
context:
space:
mode:
authorJesús Daniel Colmenares Oviedo <DtxdF@disroot.org>2025-05-03 12:09:16 -0700
committerJose Alonso Cardenas Marquez <acm@FreeBSD.org>2025-05-03 12:09:16 -0700
commit3cf6e095d92cb7dd5a21c0eb5ea7152c662daaa7 (patch)
tree862b9a034a9ac0026152159da2c3c9a0ad7020d9 /sysutils
parentsecurity/pcsc-tools: Update to 1.7.3 (diff)
sysutils/py-overlord: New port: Deploy FreeBSD jails as fast as you code
Overlord is a fast, distributed orchestrator for FreeBSD jails oriented to GitOps. You define a file with the service intended to run on your cluster and deployment takes seconds to minutes. PR: 285751
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/Makefile1
-rw-r--r--sysutils/py-overlord/Makefile63
-rw-r--r--sysutils/py-overlord/distinfo3
-rw-r--r--sysutils/py-overlord/files/pkg-message.in49
-rw-r--r--sysutils/py-overlord/pkg-descr3
-rw-r--r--sysutils/py-overlord/pkg-plist133
6 files changed, 252 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile
index b17a08fac079..42d18277ff67 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1042,6 +1042,7 @@
SUBDIR += py-mitogen
SUBDIR += py-mqttwarn
SUBDIR += py-nagiosplugin
+ SUBDIR += py-overlord
SUBDIR += py-packet-python
SUBDIR += py-pkginfo
SUBDIR += py-ploy
diff --git a/sysutils/py-overlord/Makefile b/sysutils/py-overlord/Makefile
new file mode 100644
index 000000000000..165ec6590bc8
--- /dev/null
+++ b/sysutils/py-overlord/Makefile
@@ -0,0 +1,63 @@
+PORTNAME= overlord
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.7.0
+CATEGORIES= sysutils python
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= DtxdF@disroot.org
+COMMENT= Deploy FreeBSD jails as fast as you code
+WWW= https://github.com/DtxdF/${PORTNAME}
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiofiles>=0:devel/py-aiofiles@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}aiostalk>=0:net/py-aiostalk@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}asciitree>=0:graphics/py-asciitree@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}click>=0:devel/py-click@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dnspython>=0:dns/py-dnspython@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}etcd3gw>=0:devel/py-etcd3gw@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}httpx-retries>=0:www/py-httpx-retries@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}humanfriendly>=0:textproc/py-humanfriendly@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}ifaddr>=0:net/py-ifaddr@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mako>=0:textproc/py-mako@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}psutil>=0:sysutils/py-psutil@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyaml-env>=0:devel/py-pyaml-env@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyjwt>=0:www/py-pyjwt@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pymemcache>=0:databases/py-pymemcache@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}python-dotenv>=0:www/py-python-dotenv@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}supervisor>=0:sysutils/py-supervisor@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tornado>=0:www/py-tornado@${PY_FLAVOR} \
+ beanstalkd>=0:net/beanstalkd \
+ memcached>=0:databases/memcached
+
+USES= python
+USE_GITHUB= yes
+GH_ACCOUNT= DtxdF
+USE_PYTHON= distutils
+
+NO_ARCH= yes
+
+SUB_FILES= pkg-message
+SUB_LIST= PYTHON_PKGNAMEPREFIX=${PYTHON_PKGNAMEPREFIX}
+
+PORTDOCS= README.md
+
+OPTIONS_DEFINE= DOCS
+
+post-install:
+ ${INSTALL_DATA} ${WRKSRC}/.overlord.yml ${STAGEDIR}${PREFIX}/etc/overlord.yml.sample
+ @${MKDIR} ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/supervisord/supervisord.d/overlord.ini ${STAGEDIR}${DATADIR}/overlord.ini
+ @cd ${WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-libexec
+ @cd ${WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-manpages
+ @${MKDIR} ${STAGEDIR}/var/log/overlord
+
+post-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}/${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}/${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/sysutils/py-overlord/distinfo b/sysutils/py-overlord/distinfo
new file mode 100644
index 000000000000..6ad62c0dcf30
--- /dev/null
+++ b/sysutils/py-overlord/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1746251670
+SHA256 (DtxdF-overlord-v0.7.0_GH0.tar.gz) = 42ad4181c3085e83622b19a90f928765b2c0e79be56a9c2aca016abc35d1a338
+SIZE (DtxdF-overlord-v0.7.0_GH0.tar.gz) = 85747
diff --git a/sysutils/py-overlord/files/pkg-message.in b/sysutils/py-overlord/files/pkg-message.in
new file mode 100644
index 000000000000..edfa19208e46
--- /dev/null
+++ b/sysutils/py-overlord/files/pkg-message.in
@@ -0,0 +1,49 @@
+[
+{ type: install
+ message: <<EOM
+The configuration file can be found at the following path:
+ %%PREFIX%%/etc/overlord.yml
+Edit it to suit your needs before starting the Overlord services.
+
+1. If you have configured Overlord to use Beanstalkd and Memcache locally (by default),
+ you need to start those services.
+
+ - enable required services:
+ # sysrc beanstalkd_enable=YES
+ # sysrc memcached_enable=YES
+
+ - start required services:
+ # service beanstalkd start
+ # service memcached start
+
+2. If you have not installed Director or AppJail from the development repository and
+ prefer to install them from precompiled binaries:
+
+ - install Director:
+ # pkg install %%PYTHON_PKGNAMEPREFIX%%director
+
+ - install AppJail:
+ # pkg install -y appjail # or appjail-devel
+
+3. Set up supervisord in order to execute Overlord services:
+ - Some processes may rely on the assumption that rctl(4) is enabled, if it is not
+ already enabled, please enable it by adding to /boot/loader.conf:
+kern.racct.enable=1
+
+ Remember to reboot for the above change take effect.
+
+ - let supervisord.conf load files contained in this directory by adding to
+ %%PREFIX%%/etc/supervisord.conf:
+[include]
+files = %%DATADIR%%/overlord.ini
+
+ - enable supervisord:
+ # sysrc supervisord_enable=YES
+
+ - start supervisord:
+ # service supervisord start
+
+4. Enjoy.
+EOM
+}
+]
diff --git a/sysutils/py-overlord/pkg-descr b/sysutils/py-overlord/pkg-descr
new file mode 100644
index 000000000000..87bb391f289c
--- /dev/null
+++ b/sysutils/py-overlord/pkg-descr
@@ -0,0 +1,3 @@
+Overlord is a fast, distributed orchestrator for FreeBSD jails
+oriented to GitOps. You define a file with the service intended to
+run on your cluster and deployment takes seconds to minutes.
diff --git a/sysutils/py-overlord/pkg-plist b/sysutils/py-overlord/pkg-plist
new file mode 100644
index 000000000000..cfb747a09d36
--- /dev/null
+++ b/sysutils/py-overlord/pkg-plist
@@ -0,0 +1,133 @@
+@sample(root,wheel,064) etc/overlord.yml.sample
+@dir /var/log/overlord
+libexec/overlord/safe-exc.sh
+libexec/overlord/vm-install-from-appjail-image.sh
+libexec/overlord/vm-install-from-components.sh
+libexec/overlord/vm-start.sh
+share/man/man1/overlord.1.gz
+share/man/man5/overlord-spec.5.gz
+%%DATADIR%%/overlord.ini
+bin/overlord
+%%PYTHON_SITELIBDIR%%/overlord/__init__.py
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/cache%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/cache%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/chains%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/chains%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/client%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/config%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/config%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/dataplaneapi%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/dataplaneapi%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/default%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/default%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/director%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/director%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/environment%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/environment%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/etcd%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/etcd%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jail%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jail%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jwt%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jwt%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/process%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/process%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/queue%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/queue%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/signals%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/signals%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/skydns%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/skydns%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/sysexits%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/sysexits%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/tornado%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/tornado%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/trap%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/trap%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/version%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/version%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/vm%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/__pycache__/vm%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/cache.py
+%%PYTHON_SITELIBDIR%%/overlord/chains.py
+%%PYTHON_SITELIBDIR%%/overlord/client.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/__init__.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/apply%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/apply%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/cancel%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/cancel%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/config%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/config%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/destroy%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/destroy%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/info%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/logs%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/logs%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/poll%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/poll%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/serve%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/serve%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/spec%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/spec%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/token%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/token%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/watch%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/watch%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/commands/apply.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/cancel.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/config.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/destroy.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/info.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/logs.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/poll.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/serve.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/spec.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/token.py
+%%PYTHON_SITELIBDIR%%/overlord/commands/watch.py
+%%PYTHON_SITELIBDIR%%/overlord/config.py
+%%PYTHON_SITELIBDIR%%/overlord/dataplaneapi.py
+%%PYTHON_SITELIBDIR%%/overlord/default.py
+%%PYTHON_SITELIBDIR%%/overlord/director.py
+%%PYTHON_SITELIBDIR%%/overlord/environment.py
+%%PYTHON_SITELIBDIR%%/overlord/etcd.py
+%%PYTHON_SITELIBDIR%%/overlord/exceptions.py
+%%PYTHON_SITELIBDIR%%/overlord/jail.py
+%%PYTHON_SITELIBDIR%%/overlord/jwt.py
+%%PYTHON_SITELIBDIR%%/overlord/metadata.py
+%%PYTHON_SITELIBDIR%%/overlord/process.py
+%%PYTHON_SITELIBDIR%%/overlord/queue.py
+%%PYTHON_SITELIBDIR%%/overlord/signals.py
+%%PYTHON_SITELIBDIR%%/overlord/skydns.py
+%%PYTHON_SITELIBDIR%%/overlord/spec/__init__.py
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/app_config%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/app_config%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/director_project%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/director_project%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/vm_jail%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/vm_jail%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/overlord/spec/app_config.py
+%%PYTHON_SITELIBDIR%%/overlord/spec/director_project.py
+%%PYTHON_SITELIBDIR%%/overlord/spec/metadata.py
+%%PYTHON_SITELIBDIR%%/overlord/spec/vm_jail.py
+%%PYTHON_SITELIBDIR%%/overlord/sysexits.py
+%%PYTHON_SITELIBDIR%%/overlord/tornado.py
+%%PYTHON_SITELIBDIR%%/overlord/trap.py
+%%PYTHON_SITELIBDIR%%/overlord/util.py
+%%PYTHON_SITELIBDIR%%/overlord/version.py
+%%PYTHON_SITELIBDIR%%/overlord/vm.py