WULT-DEPLOY(1)

πŸ“¦ version 1.12.48, in fedora 43, fedora 44

πŸ’… WULT-DEPLOY(1) β€” ok bestie, let's talk wult deploy ✨

Manual page for the deploy command of wult. It's dated 2024-03-08 and it's lowkey one of the most important pages in the whole wult cinematic universe. Sit down, grab a boba, we're doing this. πŸ§‹


🌸 NAME 🌸

wult deploy β€” compile and deploy wult helpers and drivers to the SUT. That's the whole vibe. πŸ‘‘


🌈 SYNOPSIS 🌈

wult deploy [-h] [-q] [-d] [--kernel-src KSRC] [--local-build]
[--tmpdir-path TMPDIR_PATH] [--keep-tmpdir] [-H HOSTNAME] [-U USERNAME]
[-K PRIVKEY] [-T TIMEOUT] [--skip-drivers]

✨ DESCRIPTION ✨

Okay so here's the tea πŸ«–: this command compiles and deploys the wult helpers and drivers over to the SUT (that's the System Under Test, main character of the whole operation). And the SUT can be can be either local or a remote host β€” depends on whether you passed the -H option. Local bestie or long-distance bestie, your call. πŸ’–

By default, everything gets built on the SUT itself. But if you want to build on the local system instead, --local-build is right there for you. ✨

Now, where do the drivers live? On the local host, they're searched for in these directories, in this exact order:

  1. ./drivers/idle
  2. $WULT_DATA_PATH/drivers/idle
  3. $HOME/.local/share/wult/drivers/idle
  4. /usr/local/share/wult/drivers/idle
  5. /usr/share/wult/drivers/idle

The wult tool also depends on the following helpers: wult-freq-helper. These helpers will be compiled on the SUT and deployed to the SUT. πŸ› οΈβœ¨

The sources of the helpers are searched for in these paths, again in this exact order, on the local host:

  1. ./helpers
  2. $WULT_DATA_PATH/helpers
  3. $HOME/.local/share/wult/helpers
  4. /usr/local/share/wult/helpers
  5. /usr/share/wult/helpers

By default, helpers are deployed to the path defined by the WULT_HELPERSPATH environment variable. πŸŽ€ But if that variable isn't defined? No stress β€” they land in $HOME/.local/bin, where $HOME is the home directory of user USERNAME on host HOST (peep the --host and --username options, they're the ones calling the shots here). πŸ’…


πŸŽ€ OPTIONS 'wult deploy' πŸŽ€

Every single one, no gatekeeping:

  • -h β€” Show this help message and exit. 🫢 Your lil escape hatch.
  • -q β€” Be quiet. 🀫 Shhh. Minimal noise mode.
  • -d β€” Print debugging information. πŸ” For when you need to know everything.
  • --kernel-src KSRC β€” Path to the Linux kernel sources to build drivers against. The default is /lib/modules/$(uname -r)/build on the SUT. πŸ‘€ Heads up: if you used --local-build, then this path is considered to be on the local system, not the SUT. Keep track of where your feet are planted, bestie.
  • --drivers-make-opts β€” Options and variables to pass to make when the drivers are built. For example, pass CC=clang LLVM=1 to use clang and LLVM tools for building the drivers (this is required when the kernel was build with clang/LLVM). 🌈 It's giving "I know exactly what I'm doing."
  • --skip-drivers β€” Deploy the eBPF helper, but do not deploy the drivers. 🚨 This is a debug and development option, do not use it for other purposes. Fr fr, it's not for your production era.
  • --local-build β€” Build helpers and drivers locally, instead of building on HOSTNAME (the SUT). 🏠 Stay home, build at home.
  • --tmpdir-path TMPDIR_PATH β€” When wult is deployed, a random temporary directory is used. Use this option provide a custom path instead. It will be used as a temporary directory on both local and remote hosts. πŸ› This option is meant for debugging purposes.
  • --keep-tmpdir β€” Do not remove the temporary directories created while deploying wult. πŸ› Also meant for debugging purposes. Your lil temp files get to stay. πŸ’–
  • -H HOSTNAME, --host HOSTNAME β€” Name of the host to run the command on. πŸ“
  • -U USERNAME, --username USERNAME β€” Name of the user to use for logging into the remote host over SSH. The default user name is root. πŸ‘‘
  • -K PRIVKEY, --priv-key PRIVKEY β€” Path to the private SSH key that should be used for logging into the remote host. By default the key is automatically found from standard paths like ~/.ssh. πŸ”‘
  • -T TIMEOUT, --timeout TIMEOUT β€” SSH connect timeout in seconds, default is 8. ⏱️

πŸ’€ PSA for the real ones: --skip-drivers, --tmpdir-path and --keep-tmpdir are all explicitly debugging-flavoured. The page says so. Don't get cute with them outside that context. πŸ™ˆ

And that's the whole page, bestie β€” no cap. πŸ¦‹ This one lives in the wult manual, and its footer slot is just a lil empty () placeholder, so no version number to spill β€” but the date on the whole thing is 2024-03-08. Screenshot it, remember it, deploy it. πŸ’…βœ¨

πŸ“¦ where this page comes from