forked from proxmox-mirrors/proxmox
The following targets should be self-explanatory:
# make install
$ make DESTDIR=$SOME_PATH install
# make proxmox-sys-install
$ make DESTDIR=$SOME_PATH proxmox-sys-install
# make proxmox-<any other crate name>-install
Additionally, these are used as building blocks to create
systemd-sysext(8) images:
$ make proxmox-sys-sysext
builds an `extensions/proxmox-sys.raw`
This can be copied/symlinked to `/run/extensions/` and then activated.
As root:
# ln -s $REPO_DIR/extensions/proxmox-sys.raw /run/extensions/
# systemd-systext refresh
For the complete workspace, an `extensions/proxmox-workspace.raw` can
be built via
$ make sysext
This also takes a `CRATES` var to limit the crates which should be
included, and takes an optional `NOCLEAN=1` which prevents cleaning
out the previously installed to "add" new crates on the go:
Assuming there's a symlink like:
# ln -s $REPO_DIR/extensions/proxmox-workspace.raw /run/extensions/proxmox-workspace.raw
One can modify the installed crates like this:
$ make CRATES=proxmox-sys sysext
$ sudo systemd-sysext refresh
Now only the current proxmox-sys crate is overridden.
$ make NOCLEAN=1 CRATES=proxmox-time sysext
$ sudo systemd-sysext refresh
Now proxmox-sys as well as proxmox-time are installed.
To undo the changes, either just do, as root:
# systemd-sysext unmerge
or remove the files which should specifically be dropped from
/run/extensions/ and run as root:
# systemd-sysext refresh
Another way to temporarily install single crates is to just have the
extensions/ folder *be* the `/run/extensions` folder:
# rmdir /run/extensions
# ln -s $REPO_DIR/extensions /run/extensions
Then just build individual extensions:
$ make proxmox-sys-sysext
$ sudo systemd-sysext refresh
$ make proxmox-router-sysext
$ sudo systemd-sysext refresh
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
37 lines
958 B
Bash
Executable File
37 lines
958 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
export CARGO=/usr/bin/cargo
|
|
export RUSTC=/usr/bin/rustc
|
|
|
|
CRATE=$1
|
|
BUILDCMD=${BUILDCMD:-"dpkg-buildpackage -b -uc -us"}
|
|
BUILDDIR="${BUILDDIR:-"build"}"
|
|
|
|
mkdir -p "${BUILDDIR}"
|
|
echo system >"${BUILDDIR}"/rust-toolchain
|
|
rm -rf ""${BUILDDIR}"/${CRATE}"
|
|
|
|
CONTROL="$PWD/${CRATE}/debian/control"
|
|
|
|
if [ -e "$CONTROL" ]; then
|
|
# check but only warn, debcargo fails anyway if crates are missing
|
|
dpkg-checkbuilddeps $PWD/${CRATE}/debian/control || true
|
|
[ "x$NOCONTROL" = 'x' ] && rm -f "$PWD/${CRATE}/debian/control"
|
|
fi
|
|
|
|
debcargo package \
|
|
--config "$PWD/${CRATE}/debian/debcargo.toml" \
|
|
--changelog-ready \
|
|
--no-overlay-write-back \
|
|
--directory "$PWD/"${BUILDDIR}"/${CRATE}" \
|
|
"${CRATE}" \
|
|
"$(dpkg-parsechangelog -l "${CRATE}/debian/changelog" -SVersion | sed -e 's/-.*//')"
|
|
|
|
cd ""${BUILDDIR}"/${CRATE}"
|
|
rm -f debian/source/format.debcargo.hint
|
|
${BUILDCMD}
|
|
|
|
[ "x$NOCONTROL" = "x" ] && cp debian/control "$CONTROL"
|