mirror of
				https://git.proxmox.com/git/proxmox
				synced 2025-11-04 08:13:32 +00:00 
			
		
		
		
	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"
 |