1nbdkit(1)                           NBDKIT                           nbdkit(1)
2
3
4

NAME

6       nbdkit - toolkit for creating NBD servers
7

SYNOPSIS

9        nbdkit [-4|--ipv4-only] [-6|--ipv6-only]
10               [-D|--debug PLUGIN|FILTER|nbdkit.FLAG=N]
11               [-e|--exportname EXPORTNAME] [--exit-with-parent]
12               [--filter FILTER ...] [-f|--foreground]
13               [-g|--group GROUP] [-i|--ipaddr IPADDR]
14               [--log stderr|syslog|null]
15               [-n|--newstyle] [--mask-handshake MASK] [--no-sr] [-o|--oldstyle]
16               [-P|--pidfile PIDFILE]
17               [-p|--port PORT] [-r|--readonly]
18               [--run CMD] [-s|--single] [--selinux-label LABEL] [--swap]
19               [-t|--threads THREADS]
20               [--tls off|on|require]
21               [--tls-certificates /path/to/certificates]
22               [--tls-psk /path/to/pskfile] [--tls-verify-peer]
23               [-U|--unix SOCKET] [-u|--user USER]
24               [-v|--verbose] [-V|--version] [--vsock]
25               PLUGIN [[KEY=]VALUE [KEY=VALUE [...]]]
26
27        nbdkit --dump-config
28
29        nbdkit PLUGIN --dump-plugin
30
31        nbdkit --help
32

DESCRIPTION

34       Network Block Device (NBD) is a network protocol for accessing block
35       devices over the network.  Block devices are hard disks and things that
36       behave like hard disks such as disk images and virtual machines.
37
38       nbdkit is both a toolkit for creating NBD servers from “unconventional”
39       sources, and the name of an NBD server.  nbdkit ships with many plugins
40       for performing common tasks like serving local files.
41
42   Plugins and filters
43       nbdkit is different from other NBD servers because you can easily
44       create new Network Block Device sources by writing a few glue
45       functions, possibly in C, or perhaps in a high level language like Perl
46       or Python.  The liberal licensing of nbdkit is meant to allow you to
47       link nbdkit with proprietary libraries or to include nbdkit in
48       proprietary code.
49
50       If you want to write your own nbdkit plugin you should read
51       nbdkit-plugin(3).
52
53       nbdkit also has a concept of filters which can be layered on top of
54       plugins.  Several filters are provided with nbdkit and if you want to
55       write your own you should read nbdkit-filter(3).
56

EXAMPLES

58   Basic file serving
59       •   Serve file disk.img on port 10809 using nbdkit-file-plugin(1), and
60           connect to it using guestfish(1):
61
62            nbdkit file disk.img
63            guestfish --rw --format=raw -a nbd://localhost
64
65       •   Serve file disk.img on port 10809, requiring clients to use
66           encrypted (TLS) connections:
67
68            nbdkit --tls=require file disk.img
69
70   Other nbdkit plugins
71       •   Create a small disk containing test patterns using
72           nbdkit-data-plugin(1):
73
74            nbdkit data ' ( 0x55 0xAA )*2048 '
75
76       •   Forward an NBD connection to a remote server over HTTPS or SSH
77           using nbdkit-curl-plugin(1) or nbdkit-ssh-plugin(1):
78
79            nbdkit -r curl https://example.com/disk.img
80
81            nbdkit ssh host=example.com /var/tmp/disk.img
82
83       •   Create a sparse 1 terabyte RAM disk using nbdkit-memory-plugin(1)
84           and use it as a loop device (nbdkit-loop(1)):
85
86            nbdkit memory 1T
87            nbd-client localhost /dev/nbd0
88
89       •   Create a floppy disk image containing files from a local directory
90           using nbdkit-floppy-plugin(1):
91
92            nbdkit floppy dir/
93
94   Combining plugins and filters
95       •   Serve only the first partition from compressed disk image
96           disk.img.xz, combining nbdkit-partition-filter(1),
97           nbdkit-xz-filter(1) and nbdkit-file-plugin(1).
98
99            nbdkit --filter=partition --filter=xz file disk.img.xz partition=1
100
101           To understand this command line:
102
103                                        plugin name and plugin parameter
104
105                                                  ┌───────┴──────┐
106                                                  │              │
107            nbdkit --filter=partition --filter=xz file disk.img.xz partition=1
108                            │              │                          │
109                            └──────────────┴────┬─────────────────────┘
110
111                                   filters and filter parameter
112
113       •   Create a scratch, empty nbdkit device and inject errors and delays,
114           for testing clients, using nbdkit-memory-plugin(1),
115           nbdkit-error-filter(1) and nbdkit-delay-filter(1):
116
117            nbdkit --filter=error --filter=delay memory 100M \
118                   error-rate=10% rdelay=1 wdelay=1
119
120   Writing plugins in shell script
121       •   Write a simple, custom plugin in shell script using
122           nbdkit-sh-plugin(3):
123
124            nbdkit sh - <<'EOF'
125              case "$1" in
126                get_size) echo 1M ;;
127                pread) dd if=/dev/zero count=$3 iflag=count_bytes ;;
128                *) exit 2 ;;
129              esac
130            EOF
131
132       •   The same example as above can be written entirely on the command
133           line using nbdkit-eval-plugin(1):
134
135            nbdkit eval get_size='echo 1M' \
136                        pread='dd if=/dev/zero count=$3 iflag=count_bytes'
137
138   Display information
139       Display information about nbdkit or a specific plugin:
140
141        nbdkit --help
142        nbdkit --version
143        nbdkit --dump-config
144        nbdkit example1 --help
145        nbdkit example1 --dump-plugin
146

GLOBAL OPTIONS

148       --help
149           Display brief command line usage information and exit.
150
151       -4
152       --ipv4-only
153       -6
154       --ipv6-only
155           When a non-numeric argument is passed to the -i option (such as a
156           Fully Qualified Domain Name, or a host name from "/etc/hosts"),
157           restrict the name resolution to IPv4 or IPv6 addresses.
158
159           When the -i option is omitted, listen on only the IPv4 or IPv6
160           address of all interfaces (0.0.0.0 or "::", respectively).
161
162           When both -4 and -6 options are present on the command line, the
163           last one takes effect.
164
165       -D PLUGIN.FLAG=N
166       -D FILTER.FLAG=N
167       --debug PLUGIN.FLAG=N
168       --debug FILTER.FLAG=N
169           Set the plugin or filter Debug Flag called "FLAG" to the integer
170           value "N".  See "Debug Flags" in nbdkit-plugin(3).
171
172       -D nbdkit.FLAG=N
173       --debug nbdkit.FLAG=N
174           (nbdkit ≥ 1.18)
175
176           Set the nbdkit server Debug Flag called "FLAG" to the integer value
177           "N".  See "SERVER DEBUG FLAGS" below.
178
179       --dump-config
180           Dump out the compile-time configuration values and exit.  See
181           nbdkit-probing(1).
182
183       --dump-plugin
184           Dump out information about the plugin and exit.  See
185           nbdkit-probing(1).
186
187       --exit-with-parent
188           If the parent process exits, we exit.  This can be used to avoid
189           complicated cleanup or orphaned nbdkit processes.  There are some
190           important caveats with this, see "EXIT WITH PARENT" in
191           nbdkit-captive(1).
192
193           An alternative to this is "CAPTIVE NBDKIT" in nbdkit-captive(1).
194
195           This option implies --foreground.
196
197       -e EXPORTNAME
198       --export EXPORTNAME
199       --export-name EXPORTNAME
200       --exportname EXPORTNAME
201           Set a preferred exportname to expose in the shell environment
202           created during --run.  The use of this option without --run has no
203           effect.  This option does not change what nbdkit advertises as a
204           server, but can aid in writing a captive client that wants to
205           access particular content from a plugin that differentiates content
206           based on the client's choice of export name.
207
208           If not set, the --run environment is set to access the default
209           exportname "" (empty string).
210
211       -f
212       --foreground
213       --no-fork
214           Don't fork into the background.
215
216       --filter FILTER
217           Add a filter before the plugin.  This option may be given one or
218           more times to stack filters in front of the plugin.  They are
219           processed in the order they appear on the command line.  See
220           "FILTERS" and nbdkit-filter(3).
221
222       -g GROUP
223       --group GROUP
224           Change group to "GROUP" after starting up.  A group name or numeric
225           group ID can be used.
226
227           The server needs sufficient permissions to be able to do this.
228           Normally this would mean starting the server up as root.
229
230           See also -u.
231
232       -i IPADDR
233       --ip-addr IPADDR
234       --ipaddr IPADDR
235           Listen on the specified interface.  The default is to listen on all
236           interfaces.  See also -4, -6, and -p.
237
238       --log=stderr
239       --log=syslog
240       --log=null
241           Send error messages to standard error (--log=stderr), or to the
242           system log (--log=syslog), or discard them completely (--log=null,
243           not recommended for normal use).
244
245           The default is to send error messages to stderr, unless nbdkit
246           forks into the background in which case they are sent to syslog.
247
248           For more details see "LOGGING" in nbdkit-service(1).
249
250       -n
251       --new-style
252       --newstyle
253           Use the newstyle NBD protocol.  This is the default in nbdkit ≥
254           1.3.  In earlier versions the default was oldstyle.  See
255           nbdkit-protocol(1).
256
257       --no-sr
258           Do not advertise structured replies.  A client must request
259           structured replies to take advantage of block status and potential
260           sparse reads; however, as structured reads are not a mandatory part
261           of the newstyle NBD protocol, this option can be used to debug
262           client fallbacks for dealing with older servers.  See
263           nbdkit-protocol(1).
264
265       -o
266       --old-style
267       --oldstyle
268           Use the oldstyle NBD protocol.  This was the default in nbdkit ≤
269           1.2, but now the default is newstyle.  Note this is incompatible
270           with newer features such as export names and TLS.  See
271           nbdkit-protocol(1).
272
273       -P PIDFILE
274       --pid-file PIDFILE
275       --pidfile PIDFILE
276           Write "PIDFILE" (containing the process ID of the server) after
277           nbdkit becomes ready to accept connections.
278
279           If the file already exists, it is overwritten.  nbdkit does not
280           delete the file when it exits.
281
282       -p PORT
283       --port PORT
284           Change the TCP/IP port number on which nbdkit serves requests.  The
285           default is 10809.  See also -i.
286
287       -r
288       --read-only
289       --readonly
290           The export will be read-only.  If a client writes, then it will get
291           an error.
292
293           Note that some plugins inherently don't support writes.  With those
294           plugins the -r option is added implicitly.
295
296           nbdkit-cow-filter(1) can be placed over read-only plugins to
297           provide copy-on-write (or "snapshot") functionality.  If you are
298           using qemu as a client then it also supports snapshots.
299
300       --run CMD
301           Run nbdkit as a captive subprocess of "CMD".  When "CMD" exits,
302           nbdkit is killed.  See "CAPTIVE NBDKIT" in nbdkit-captive(1).
303
304           Note that the command is executed by /bin/sh.  On some platforms
305           like Debian this might not be a full-featured shell.
306
307           This option implies --foreground.
308
309       -s
310       --single
311       --stdin
312           Don't fork.  Handle a single NBD connection on stdin/stdout.  After
313           stdin closes, the server exits.
314
315           You can use this option to run nbdkit from inetd or similar
316           superservers; or just for testing; or if you want to run nbdkit in
317           a non-conventional way.  Note that if you want to run nbdkit from
318           systemd, then it may be better to use "SOCKET ACTIVATION" in
319           nbdkit-service(1) instead of this option.
320
321           This option implies --foreground.
322
323       --selinux-label SOCKET-LABEL
324           Apply the SELinux label "SOCKET-LABEL" to the nbdkit listening
325           socket.
326
327           The common — perhaps only — use of this option is to allow libvirt
328           guests which are using SELinux and sVirt confinement to access
329           nbdkit Unix domain sockets.  The example below shows how to do
330           this.  Note that the socket and filesystem labels are different.
331
332            nbdkit -U /tmp/sock --selinux-label=system_u:object_r:svirt_socket_t:s0 ...
333            chcon system_u:object_r:svirt_image_t:s0 /tmp/sock
334
335       --swap
336           (nbdkit ≥ 1.18)
337
338           Specifies that the NBD device will be used as swap space loop
339           mounted on the same machine which is running nbdkit.  To avoid
340           deadlocks this locks the whole nbdkit process into memory using
341           mlockall(2).  This may require additional permissions, such as
342           starting the server as root or raising the "RLIMIT_MEMLOCK"
343           (ulimit(1) -l) limit on the process.
344
345       -t THREADS
346       --threads THREADS
347           Set the number of threads to be used per connection, which in turn
348           controls the number of outstanding requests that can be processed
349           at once.  Only matters for plugins with thread_model=parallel
350           (where it defaults to 16).  To force serialized behavior (useful if
351           the client is not prepared for out-of-order responses), set this to
352           1.
353
354       --tls=off
355       --tls=on
356       --tls=require
357           Disable, enable or require TLS (authentication and encryption
358           support).  See nbdkit-tls(1).
359
360       --tls-certificates /path/to/certificates
361           Set the path to the TLS certificates directory.  If not specified,
362           some built-in paths are checked.  See nbdkit-tls(1) for more
363           details.
364
365       --tls-psk /path/to/pskfile
366           Set the path to the pre-shared keys (PSK) file.  If used, this
367           overrides certificate authentication.  There is no built-in path.
368           See nbdkit-tls(1) for more details.
369
370       --tls-verify-peer
371           Enables TLS client certificate verification.  The default is not to
372           check the client's certificate.
373
374       -U SOCKET
375       --unix SOCKET
376       -U -
377       --unix -
378           Accept connections on the Unix domain socket "SOCKET" (which is a
379           path).
380
381           nbdkit creates this socket, but it will probably have incorrect
382           permissions (too permissive).  If it is a problem that some
383           unauthorized user could connect to this socket between the time
384           that nbdkit starts up and the authorized user connects, then put
385           the socket into a directory that has restrictive permissions.
386
387           nbdkit does not delete the socket file when it exits.  The caller
388           should delete the socket file after use (else if you try to start
389           nbdkit up again you will get an "Address already in use" error).
390
391           If the socket name is - then nbdkit generates a randomly named
392           private socket.  This is useful with "CAPTIVE NBDKIT" in
393           nbdkit-captive(1).
394
395       -u USER
396       --user USER
397           Change user to "USER" after starting up.  A user name or numeric
398           user ID can be used.
399
400           The server needs sufficient permissions to be able to do this.
401           Normally this would mean starting the server up as root.
402
403           See also -g.
404
405       -v
406       --verbose
407           Enable verbose messages.
408
409           It's a good idea to use -f as well so the process does not fork
410           into the background (but not required).
411
412       -V
413       --version
414           Print the version number of nbdkit and exit.
415
416           The --dump-config option provides separate major and minor numbers
417           and may be easier to parse from shell scripts.
418
419       --vsock
420           (nbdkit ≥ 1.16)
421
422           Use the AF_VSOCK protocol (instead of TCP/IP).  You must use this
423           in conjunction with -p/--port.  See "AF_VSOCK" in
424           nbdkit-service(1).
425

PLUGIN NAME

427       You can give the full path to the plugin, like this:
428
429        nbdkit $libdir/nbdkit/plugins/nbdkit-file-plugin.so [...]
430
431       but it is usually more convenient to use this equivalent syntax:
432
433        nbdkit file [...]
434
435       $libdir is set at compile time.  To print it out, do:
436
437        nbdkit --dump-config
438

PLUGIN CONFIGURATION

440       After specifying the plugin name you can (optionally, it depends on the
441       plugin) give plugin configuration on the command line in the form of
442       "key=value".  For example:
443
444        nbdkit file file=disk.img
445
446       To list all the options supported by a plugin, do:
447
448        nbdkit --help file
449
450       To dump information about a plugin, do:
451
452        nbdkit file --dump-plugin
453
454   Magic parameters
455       Some plugins declare a special "magic config key".  This is a key which
456       is assumed if no "key=" part is present.  For example:
457
458        nbdkit file disk.img
459
460       is assumed to be "file=disk.img" because the file plugin declares
461       "file" as its magic config key.  There can be ambiguity in the parsing
462       of magic config keys if the value might look like a "key=value".  If
463       there could be ambiguity then modify the value, eg. by prefixing it
464       with "./"
465
466       There is also a special exception for plugins which do not declare a
467       magic config key, but where the first plugin argument does not contain
468       an '=' character: it is assumed to be "script=value".  This is used by
469       scripting language plugins:
470
471        nbdkit perl foo.pl [args...]
472
473       has the same meaning as:
474
475        nbdkit perl script=foo.pl [args...]
476
477   Shebang scripts
478       You can use "#!" to run nbdkit plugins written in most scripting
479       languages.  The file should be executable.  For example:
480
481        #!/usr/sbin/nbdkit perl
482        sub open {
483          # etc
484        }
485
486       (see nbdkit-perl-plugin(3) for a full example).
487

SERVER DEBUG FLAGS

489       As well as enabling or disabling debugging in the server using
490       --verbose you can control extra debugging in the server using the
491       -D nbdkit.* flags listed in this section.  Note these flags are an
492       internal implementation detail of the server and may be changed or
493       removed at any time in the future.
494
495       -D nbdkit.backend.controlpath=0
496       -D nbdkit.backend.controlpath=1
497       -D nbdkit.backend.datapath=0
498       -D nbdkit.backend.datapath=1
499           These flags control the verbosity of nbdkit backend debugging
500           messages (the ones which show every request processed by the
501           server).  The default for both settings is 1 (normal debugging) but
502           you can set them to 0 to suppress these messages.
503
504           -D nbdkit.backend.datapath=0 is the more useful setting which lets
505           you suppress messages about pread, pwrite, zero, trim, etc.
506           commands.  When transferring large amounts of data these messages
507           are numerous and not usually very interesting.
508
509           -D nbdkit.backend.controlpath=0 suppresses the non-datapath
510           commands (config, open, close, can_write, etc.)
511
512       -D nbdkit.tls.log=N
513           Enable TLS logging.  "N" can be in the range 0 (no logging) to 99.
514           See gnutls_global_set_log_level(3).
515
516       -D nbdkit.tls.session=1
517           Print additional information about the TLS session, such as the
518           type of authentication and encryption, and client certificate
519           information.
520

SIGNALS

522       nbdkit responds to the following signals:
523
524       "SIGINT"
525       "SIGQUIT"
526       "SIGTERM"
527           The server exits cleanly.
528
529       "SIGPIPE"
530           This signal is ignored.
531

ENVIRONMENT VARIABLES

533       "LISTEN_FDS"
534       "LISTEN_PID"
535           If present in the environment when nbdkit starts up, these trigger
536           "SOCKET ACTIVATION" in nbdkit-service(1).
537

SEE ALSO

539   Other topics
540       nbdkit-captive(1) — Run nbdkit under another process and have it
541       reliably cleaned up.
542
543       nbdkit-client(1) — How to mount NBD filesystems on a client machine.
544
545       nbdkit-loop(1) — Use nbdkit with the Linux kernel client to create loop
546       devices and loop mounts.
547
548       nbdkit-probing(1) — How to probe for nbdkit configuration and plugins.
549
550       nbdkit-protocol(1) — Which parts of the NBD protocol nbdkit supports.
551
552       nbdkit-security(1) — Lists past security issues in nbdkit.
553
554       nbdkit-service(1) — Running nbdkit as a service, and systemd socket
555       activation.
556
557       nbdkit-tls(1) — Authentication and encryption of NBD connections
558       (sometimes incorrectly called "SSL").
559
560   Plugins
561       nbdkit-cdi-plugin(1), nbdkit-curl-plugin(1), nbdkit-data-plugin(1),
562       nbdkit-eval-plugin(1), nbdkit-example1-plugin(1),
563       nbdkit-example2-plugin(1), nbdkit-example3-plugin(1),
564       nbdkit-example4-plugin(1), nbdkit-file-plugin(1),
565       nbdkit-floppy-plugin(1), nbdkit-full-plugin(1),
566       nbdkit-guestfs-plugin(1), nbdkit-info-plugin(1), nbdkit-iso-plugin(1),
567       nbdkit-libvirt-plugin(1), nbdkit-linuxdisk-plugin(1),
568       nbdkit-memory-plugin(1), nbdkit-nbd-plugin(1), nbdkit-null-plugin(1),
569       nbdkit-ondemand-plugin(1), nbdkit-partitioning-plugin(1),
570       nbdkit-pattern-plugin(1), nbdkit-random-plugin(1), nbdkit-S3-plugin(1),
571       nbdkit-sparse-random-plugin(1), nbdkit-split-plugin(1),
572       nbdkit-ssh-plugin(1), nbdkit-tmpdisk-plugin(1),
573       nbdkit-torrent-plugin(1), nbdkit-vddk-plugin(1), nbdkit-zero-plugin(1)
574       ; nbdkit-cc-plugin(3), nbdkit-golang-plugin(3), nbdkit-lua-plugin(3),
575       nbdkit-ocaml-plugin(3), nbdkit-perl-plugin(3), nbdkit-python-plugin(3),
576       nbdkit-ruby-plugin(3), nbdkit-rust-plugin(3), nbdkit-sh-plugin(3),
577       nbdkit-tcl-plugin(3) .
578
579   Filters
580       nbdkit-blocksize-filter(1), nbdkit-blocksize-policy-filter(1),
581       nbdkit-cache-filter(1), nbdkit-cacheextents-filter(1),
582       nbdkit-checkwrite-filter(1), nbdkit-cow-filter(1),
583       nbdkit-ddrescue-filter(1), nbdkit-delay-filter(1),
584       nbdkit-error-filter(1), nbdkit-exitlast-filter(1),
585       nbdkit-exitwhen-filter(1), nbdkit-exportname-filter(1),
586       nbdkit-ext2-filter(1), nbdkit-extentlist-filter(1),
587       nbdkit-fua-filter(1), nbdkit-gzip-filter(1), nbdkit-ip-filter(1),
588       nbdkit-limit-filter(1), nbdkit-log-filter(1),
589       nbdkit-multi-conn-filter(1), nbdkit-nocache-filter(1),
590       nbdkit-noextents-filter(1), nbdkit-nofilter-filter(1),
591       nbdkit-noparallel-filter(1), nbdkit-nozero-filter(1),
592       nbdkit-offset-filter(1), nbdkit-partition-filter(1),
593       nbdkit-pause-filter(1), nbdkit-protect-filter(1),
594       nbdkit-rate-filter(1), nbdkit-readahead-filter(1),
595       nbdkit-retry-filter(1), nbdkit-retry-request-filter(1),
596       nbdkit-stats-filter(1), nbdkit-swab-filter(1), nbdkit-tar-filter(1),
597       nbdkit-tls-fallback-filter(1), nbdkit-truncate-filter(1),
598       nbdkit-xz-filter(1) .
599
600   For developers
601       nbdkit-plugin(3), nbdkit-filter(3).
602
603   Writing plugins in other programming languages
604       nbdkit-cc-plugin(3), nbdkit-golang-plugin(3), nbdkit-lua-plugin(3),
605       nbdkit-ocaml-plugin(3), nbdkit-perl-plugin(3), nbdkit-python-plugin(3),
606       nbdkit-ruby-plugin(3), nbdkit-rust-plugin(3), nbdkit-sh-plugin(3),
607       nbdkit-tcl-plugin(3) .
608
609   Release notes for previous releases of nbdkit
610       nbdkit-release-notes-1.30(1), nbdkit-release-notes-1.28(1),
611       nbdkit-release-notes-1.26(1), nbdkit-release-notes-1.24(1),
612       nbdkit-release-notes-1.22(1), nbdkit-release-notes-1.20(1),
613       nbdkit-release-notes-1.18(1), nbdkit-release-notes-1.16(1),
614       nbdkit-release-notes-1.14(1), nbdkit-release-notes-1.12(1),
615       nbdkit-release-notes-1.10(1), nbdkit-release-notes-1.8(1),
616       nbdkit-release-notes-1.6(1), nbdkit-release-notes-1.4(1).
617
618   NBD clients
619       guestfish(1), libnbd(3), nbd-client(1), nbdcopy(1), nbdfuse(1),
620       nbdinfo(1), nbdsh(1), qemu(1).
621
622   nbdkit links
623       http://gitlab.com/nbdkit/nbdkit — Source code.
624
625   Other NBD servers
626       qemu-nbd(1), nbd-server(1), https://bitbucket.org/hirofuchi/xnbd.
627
628   Documentation for the NBD protocol
629       https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md,
630       https://nbd.sourceforge.io/.
631
632   Similar protocols
633       https://en.wikipedia.org/wiki/iSCSI,
634       https://en.wikipedia.org/wiki/ATA_over_Ethernet,
635       https://en.wikipedia.org/wiki/Fibre_Channel_over_Ethernet.
636
637   Other manual pages of interest
638       gnutls_priority_init(3), qemu-img(1), psktool(1), systemd.socket(5).
639

AUTHORS

641       Eric Blake
642
643       Richard W.M. Jones
644
645       Yann E. MORIN
646
647       Nir Soffer
648
649       Pino Toscano
650
652       Copyright (C) 2013-2020 Red Hat Inc.
653

LICENSE

655       Redistribution and use in source and binary forms, with or without
656       modification, are permitted provided that the following conditions are
657       met:
658
659       •   Redistributions of source code must retain the above copyright
660           notice, this list of conditions and the following disclaimer.
661
662       •   Redistributions in binary form must reproduce the above copyright
663           notice, this list of conditions and the following disclaimer in the
664           documentation and/or other materials provided with the
665           distribution.
666
667       •   Neither the name of Red Hat nor the names of its contributors may
668           be used to endorse or promote products derived from this software
669           without specific prior written permission.
670
671       THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY
672       EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
673       IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
674       PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE
675       LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
676       CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
677       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
678       BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
679       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
680       OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
681       ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
682
683
684
685nbdkit-1.30.7                     2022-07-10                         nbdkit(1)
Impressum