FreeBSD package creation
This commit is contained in:
parent
b66be32e8b
commit
6e925700f5
83
packaging/MANIFEST
Normal file
83
packaging/MANIFEST
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
name: albatross
|
||||||
|
version: 1.0.%%GITVER%%_1
|
||||||
|
origin: local/albatross
|
||||||
|
comment: Albatross: Managing virtual machines
|
||||||
|
www: https://github.com/hannesm/vmm
|
||||||
|
maintainer: Hannes Mehnert <hannes@mehnert.org>
|
||||||
|
prefix: /usr/local
|
||||||
|
licenselogic: single
|
||||||
|
licenses: [NONE]
|
||||||
|
flatsize: %%FLATSIZE%%
|
||||||
|
categories: [local]
|
||||||
|
deps {
|
||||||
|
gmp {
|
||||||
|
origin = "math/gmp";
|
||||||
|
version = "6.1.2";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scripts : {
|
||||||
|
pre-install = <<EOD
|
||||||
|
if [ -n "${PKG_ROOTDIR}" ] && [ "${PKG_ROOTDIR}" != "/" ]; then
|
||||||
|
PW="/usr/sbin/pw -R ${PKG_ROOTDIR}"
|
||||||
|
else
|
||||||
|
PW=/usr/sbin/pw
|
||||||
|
fi
|
||||||
|
echo "===> Creating groups."
|
||||||
|
if ! ${PW} groupshow albatross >/dev/null 2>&1; then
|
||||||
|
echo "Creating group 'albatross' with gid '496'."
|
||||||
|
${PW} groupadd albatross -g 496
|
||||||
|
else
|
||||||
|
echo "Using existing group 'albatross'."
|
||||||
|
fi
|
||||||
|
echo "===> Creating users"
|
||||||
|
if ! ${PW} usershow albatross >/dev/null 2>&1; then
|
||||||
|
echo "Creating user 'albatross' with uid '496'."
|
||||||
|
${PW} useradd albatross -u 496 -g 496 -c "albatross daemon" -d /nonexistent -s /usr/sbin/nologin
|
||||||
|
else
|
||||||
|
echo "Using existing user 'albatross'."
|
||||||
|
fi
|
||||||
|
EOD;
|
||||||
|
post-install = <<EOD
|
||||||
|
mkdir -p /var/run/albatross/util /var/run/albatross/fifo
|
||||||
|
chown albatross:albatross /var/run/albatross/util /var/run/albatross/fifo
|
||||||
|
chmod 2760 /var/run/albatross/fifo
|
||||||
|
chgrp albatross /usr/local/libexec/albatross/vmmd
|
||||||
|
chmod 2700 /usr/local/libexec/albatross/vmmd
|
||||||
|
|
||||||
|
EOD;
|
||||||
|
post-deinstall = <<EOD
|
||||||
|
if [ -n "${PKG_ROOTDIR}" ] && [ "${PKG_ROOTDIR}" != "/" ]; then
|
||||||
|
PW="/usr/sbin/pw -R ${PKG_ROOTDIR}"
|
||||||
|
else
|
||||||
|
PW=/usr/sbin/pw
|
||||||
|
fi
|
||||||
|
if ${PW} usershow albatross >/dev/null 2>&1; then
|
||||||
|
echo "==> You should manually remove the \"albatross\" user. "
|
||||||
|
fi
|
||||||
|
if ${PW} groupshow albatross >/dev/null 2>&1; then
|
||||||
|
echo "==> You should manually remove the \"albatross\" group "
|
||||||
|
fi
|
||||||
|
EOD;
|
||||||
|
|
||||||
|
}
|
||||||
|
desc = <<EOD
|
||||||
|
A set of binaries to manage, provision, and deploy virtual machine images.
|
||||||
|
|
||||||
|
EOD;
|
||||||
|
messages [
|
||||||
|
{
|
||||||
|
message = <<EOD
|
||||||
|
===================================================================
|
||||||
|
|
||||||
|
you need to:
|
||||||
|
|
||||||
|
* modify /etc/devfs.rules to include:
|
||||||
|
|
||||||
|
add path 'vmm/solo5*' mode 0660 group albatross
|
||||||
|
|
||||||
|
* install solo5-hvt.net solo5-hvt.none in /var/db/albatross
|
||||||
|
|
||||||
|
===================================================================
|
||||||
|
EOD;
|
||||||
|
}
|
||||||
|
]
|
54
packaging/create_package.sh
Executable file
54
packaging/create_package.sh
Executable file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
basedir=$(realpath "$(dirname "$0")"/..)
|
||||||
|
#tmptmpl=$(basename "$0")
|
||||||
|
#tmpd=$(mktemp -t "$tmptmpl")
|
||||||
|
tmpd=$basedir/_build/stage
|
||||||
|
manifest=$tmpd/+MANIFEST
|
||||||
|
rootdir=$tmpd/rootdir
|
||||||
|
|
||||||
|
|
||||||
|
trap 'rm -rf $tmpd' 0 INT EXIT
|
||||||
|
|
||||||
|
mkdir -p "$rootdir"/usr/local/sbin \
|
||||||
|
"$rootdir"/usr/local/libexec/albatross \
|
||||||
|
"$rootdir"/usr/local/etc/rc.d
|
||||||
|
|
||||||
|
# stage service scripts
|
||||||
|
for f in albatross_log \
|
||||||
|
albatross_stat \
|
||||||
|
albatross_console \
|
||||||
|
albatross_daemon \
|
||||||
|
albatross_x
|
||||||
|
do install -U $basedir/packaging/rc.d/$f $rootdir/usr/local/etc/rc.d/$f; done
|
||||||
|
|
||||||
|
# stage albatross app binaries
|
||||||
|
for f in vmmd vmm_log vmm_console; do
|
||||||
|
install -U $basedir/_build/app/$f.native \
|
||||||
|
$rootdir/usr/local/libexec/albatross/$f; done
|
||||||
|
|
||||||
|
install -U $basedir/_build/stats/vmm_stats_lwt.native \
|
||||||
|
$rootdir/usr/local/libexec/albatross/vmm_stats_lwt
|
||||||
|
|
||||||
|
install -U $basedir/_build/app/vmmc.native \
|
||||||
|
$rootdir/usr/local/sbin/vmmc
|
||||||
|
|
||||||
|
# create +MANIFEST
|
||||||
|
flatsize=$(find "$rootdir" -type f -exec stat -f %z {} + |
|
||||||
|
awk 'BEGIN {s=0} {s+=$1} END {print s}')
|
||||||
|
|
||||||
|
gitver=$(git rev-parse --short HEAD)
|
||||||
|
|
||||||
|
sed -e "s:%%GITVER%%:${gitver}:" -e "s:%%FLATSIZE%%:${flatsize}:" \
|
||||||
|
"$basedir/packaging/MANIFEST" > "$manifest"
|
||||||
|
|
||||||
|
{
|
||||||
|
printf '\nfiles {\n'
|
||||||
|
find "$rootdir" -type f -exec sha256 -r {} + |
|
||||||
|
awk '{print " " $2 ": \"" $1 "\"," }'
|
||||||
|
find "$rootdir" -type l |
|
||||||
|
awk "{print \" \"\$1 \": -,\"}"
|
||||||
|
printf '}\n'
|
||||||
|
} | sed -e "s:${rootdir}::" >> "$manifest"
|
||||||
|
|
||||||
|
pkg create -r "$rootdir" -M "$manifest" -o $basedir/_build/
|
Loading…
Reference in a new issue