mirror of
https://git.proxmox.com/git/systemd
synced 2025-06-04 02:58:23 +00:00
New upstream version 237
This commit is contained in:
parent
52ad194e0b
commit
1d42b86df9
7
.mailmap
7
.mailmap
@ -142,3 +142,10 @@ Lukáš Říha <cedel@centrum.cz>
|
||||
Alan Robertson <aroberts@zen.iomart.com> <alanjrobertson@gmail.com>
|
||||
Martin Steuer <martinsteuer@gmx.de>
|
||||
Matthias-Christian Ott <ott@mirix.org> <ott@users.noreply.github.com>
|
||||
Larry Bernstone <lbernstone@gmail.com>
|
||||
Michał Szczepański <skrzatu@hotmail.com> <skrzatu@gmail.com>
|
||||
Tomasz Bachorski <tomasz.bachorski@x7f.io> <34866781+nulsoh@users.noreply.github.com>
|
||||
Zachary Winnerman <33329648+winnerman-pythian@users.noreply.github.com>
|
||||
Vladislav Vishnyakov <split7fire@yandex.ru>
|
||||
Robert Kolchmeyer <rkolchmeyer@google.com> <rkolchmeyer@users.noreply.github.com>
|
||||
George Gaydarov <git@gg7.io> <gg7@users.noreply.github.com>
|
||||
|
@ -50,7 +50,7 @@ BuildPackages=
|
||||
kmod
|
||||
libcap
|
||||
libgcrypt
|
||||
libidn
|
||||
libidn2
|
||||
libmicrohttpd
|
||||
libseccomp
|
||||
libtool
|
||||
@ -66,7 +66,6 @@ BuildPackages=
|
||||
python-lxml
|
||||
qrencode
|
||||
xz
|
||||
# TODO use libidn2 once it's available in official repositories
|
||||
|
||||
Packages=
|
||||
libidn
|
||||
libidn2
|
||||
|
182
.travis.yml
182
.travis.yml
@ -1,12 +1,178 @@
|
||||
language: c
|
||||
compiler:
|
||||
- gcc
|
||||
before_install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install autotools-dev automake autoconf libtool libdbus-1-dev libcap-dev libblkid-dev libmount-dev libpam-dev libcryptsetup-dev libaudit-dev libacl1-dev libattr1-dev libselinux-dev liblzma-dev libgcrypt-dev libqrencode-dev libmicrohttpd-dev gperf python2.7-dev
|
||||
script: ./autogen.sh && ./configure && make V=1 && sudo ./systemd-machine-id-setup && make check && make distcheck
|
||||
after_failure: cat test-suite.log
|
||||
sudo: required
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- stage: build docker image
|
||||
env:
|
||||
# The machine id will be passed to Dockerfile for later checks
|
||||
- MACHINE_ID=$(cat /var/lib/dbus/machine-id)
|
||||
before_script: &update
|
||||
# Ensure the latest version of docker is installed
|
||||
- sudo apt-get update
|
||||
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
||||
- docker --version
|
||||
- env > .env
|
||||
script:
|
||||
# Copy content of CI_DIR into WORKDIR
|
||||
- find $CI_DIR -maxdepth 1 -type f -exec cp -t . {} +
|
||||
- echo "ENV GIT_SHA ${TRAVIS_COMMIT}" >> Dockerfile
|
||||
- echo "ENV MACHINE_ID ${MACHINE_ID}" >> Dockerfile
|
||||
- echo "$(git log -1 ${TRAVIS_COMMIT})" >> COMMITINFO
|
||||
# Build docker container
|
||||
- $CI_SCRIPT_DIR/build-docker-image.sh
|
||||
|
||||
- docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
|
||||
- docker push ${DOCKER_REPOSITORY}
|
||||
|
||||
- stage: build
|
||||
language: c
|
||||
compiler: gcc
|
||||
env:
|
||||
# The machine id will be passed to container
|
||||
- MACHINE_ID=$(cat /var/lib/dbus/machine-id)
|
||||
before_script: *update
|
||||
script:
|
||||
- docker run -dit --name travis_build ${DOCKER_REPOSITORY}:${TRAVIS_COMMIT} bash
|
||||
- docker exec -u 0 -ti travis_build bash -c "echo ${MACHINE_ID} > /etc/machine-id"
|
||||
- docker exec -ti travis_build meson build
|
||||
- docker exec -ti travis_build ninja -C build
|
||||
# Commit it to the new image that will be used for testing
|
||||
- docker commit -m "systemd build state" -a "${AUTHOR_NAME}" travis_build ${DOCKER_REPOSITORY}:${TRAVIS_COMMIT}
|
||||
- docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
|
||||
- docker push ${DOCKER_REPOSITORY}:${TRAVIS_COMMIT}
|
||||
|
||||
- stage: test
|
||||
language: c
|
||||
compiler: gcc
|
||||
before_script: *update
|
||||
script:
|
||||
- docker run --privileged --net=host -dit --name travis_test ${DOCKER_REPOSITORY}:${TRAVIS_COMMIT} bash
|
||||
- docker exec -ti travis_test ninja -C build test
|
||||
- docker commit -m "systemd test state" -a "${AUTHOR_NAME}" travis_test ${DOCKER_REPOSITORY}:${TRAVIS_COMMIT}
|
||||
- docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
|
||||
- docker push ${DOCKER_REPOSITORY}:${TRAVIS_COMMIT}
|
||||
|
||||
- stage: coverity scan
|
||||
language: c
|
||||
compiler: gcc
|
||||
before_script: *update
|
||||
env:
|
||||
- COVERITY_SCAN_PROJECT_NAME="$TRAVIS_REPO_SLUG"
|
||||
- COVERITY_SCAN_NOTIFICATION_EMAIL="${AUTHOR_EMAIL}"
|
||||
- COVERITY_SCAN_BRANCH_PATTERN="$TRAVIS_BRANCH"
|
||||
# Disable CCACHE for cov-build to compilation units correctly
|
||||
- CCACHE_DISABLE=1
|
||||
# Token for systemd/systemd Coverity Scan Analysis
|
||||
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
|
||||
# via the "travis encrypt" command using the project repo's public key
|
||||
- secure: "UNQLspT89GYWuVKFqW5W5RyqqnYg5RvX20IrNraOddhpdV9nhKBtozrfmhGXDGZwfHGWHt6g7YROlD/NIMvDvThVJIEYvSQiXCoo2zRrwkl2siET5MjPfRG8numiLq0KX47KGmyBJISJZCgDUdNGqqGwgf7AhDN78I3XtgqjFT1z0mGl8n0wiFpKPi7i3nECvF4Mk7xCCHqwByaq0z5G9NkVlOvP1EyCxwv3B6I5Umfch7ibp7iH44YnVXILK+yEry5dMuctYwYkDouR80ChEPQQ5fhhpO4++HJmFuSpfMTeCHpucAd2xwSUijejYeN/GNQ177GxSSk/8hRBGcuSK8T/WJ+KiuJPhZObV8mw+a6+qdQssWY4F9jya5ZKbZ/yTbxjtQ0m4AgtL28P9bEze8pLh16zFMX+hIEuoFSNmJqmtNttfbD5TKyYVZml59s9wvhlvMnlNpRSQva88OAOjXtiA41g+XtTxxpfW9mgd7HYhzSBs1efNiK7PfkANgve7KIYMAmCAqasgb1IIAyX7stOlJH06QOFXNH55PmJLkkKyL3SMQzgryMDWegU+XbS8t43r0x14WLuE7sc9JtnOr/G8hthFaMRp8xLy9aCBwyEIkEsyWa50VMoZDa3Spdb4r1CKBwcGdCbyE4rCehwEIznbfrsSovhwiUds7bbhBU="
|
||||
script:
|
||||
# Copy content of CI_DIR into WORKDIR
|
||||
- find $CI_DIR -maxdepth 1 -type f -exec cp -t . {} +
|
||||
# Build container for current user
|
||||
- $CI_SCRIPT_DIR/build-docker-image.sh
|
||||
|
||||
# For kernel version 4.8+
|
||||
- sudo sysctl vsyscall=emulate || true
|
||||
# Prepare environment for Coverity tool
|
||||
- |
|
||||
PLATFORM=`uname`
|
||||
export TOOL_BASE="/tmp/coverity-scan-analysis"
|
||||
export SCAN_URL="https://scan.coverity.com"
|
||||
export UPLOAD_URL="https://scan.coverity.com/builds"
|
||||
export TOOL_ARCHIVE="/tmp/cov-analysis-${PLATFORM}.tgz"
|
||||
|
||||
# Get Coverity tool
|
||||
- $CI_TOOL_DIR/get-coverity.sh
|
||||
- TOOL_DIR="$(find $TOOL_BASE -type d -name 'cov-analysis*')"
|
||||
|
||||
# Export env variables for Coverity scan
|
||||
- env | grep -E "TRAVIS|COV|TOOL|URL" > .cov-env
|
||||
- |
|
||||
docker run -dit --env-file .cov-env \
|
||||
-v ${TOOL_BASE}:${TOOL_BASE}:ro \
|
||||
--name travis_coverity_scan ${DOCKER_REPOSITORY}:${TRAVIS_COMMIT} bash
|
||||
# Make sure Coverity script is executable
|
||||
- docker cp scripts/coverity.sh travis_coverity_scan:/usr/local/bin
|
||||
# Preconfigure with meson to prevent Coverity from capturing meson metadata
|
||||
# Set compiler flag to prevent emit failure
|
||||
- docker exec -it travis_coverity_scan sh -c "CFLAGS='-D_Float128=long\ double' meson cov-build -Dman=false"
|
||||
# Run Coverity Analysis
|
||||
- docker exec -it travis_coverity_scan coverity.sh build
|
||||
- docker exec -it travis_coverity_scan coverity.sh upload
|
||||
|
||||
- stage: clean docker
|
||||
language: python
|
||||
# python:
|
||||
# - "3.6" Probably broken ATM
|
||||
env:
|
||||
- SIZE_LIMIT="3000" # Limit in MBs
|
||||
- TAG_LIMIT="3" # Number of tags to be kept at the time
|
||||
before-script:
|
||||
- sudo apt-get -y install python3
|
||||
script:
|
||||
# Get docker-remote tool and setup venv
|
||||
- sudo $CI_TOOL_DIR/get-docker-remote.sh
|
||||
# Activate virtual environment to be able to use docker-remote safely
|
||||
- source venv/bin/activate
|
||||
# Check the size and tag limit of the repo
|
||||
- REPO_SIZE=$(docker-remote repository --size $DOCKER_REPOSITORY)
|
||||
- TAG_COUNT=$(docker-remote tags --count $DOCKER_REPOSITORY)
|
||||
- 'echo -e "\033[33;1mCurrent repository size: $REPO_SIZE in $TAG_COUNT tags \033[0m"'
|
||||
- |
|
||||
if [[ ${REPO_SIZE%.*} -gt $SIZE_LIMIT ]] || [[ $TAG_COUNT -gt $TAG_LIMIT ]]
|
||||
then
|
||||
docker-remote --login $DOCKER_USERNAME:$DOCKER_PASSWORD \
|
||||
tags --assumeyes --pop-back --keep $TAG_LIMIT $DOCKER_REPOSITORY
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Specify the order of stages and conditions
|
||||
stages:
|
||||
# Helper stage to determine whether coverity stage should be allowed
|
||||
- name: initialization
|
||||
|
||||
- name: build docker image
|
||||
if: type != cron
|
||||
- name: build
|
||||
if: type != cron
|
||||
- name: test
|
||||
if: type != cron
|
||||
|
||||
# These stages run separately, the resulting container will not be pushed to Docker Hub
|
||||
# This stage will only run on special conditions
|
||||
- name: coverity scan
|
||||
if: type = cron
|
||||
|
||||
# Check for repository size and clean Docker repo if necessary
|
||||
- name: clean Docker
|
||||
if: type = cron
|
||||
|
||||
env:
|
||||
global:
|
||||
# Secure Docker Hub credentials
|
||||
- secure: "TY61ufmEJyxCer8vuAlQ3mYwGRynFZXPCFTxKgIzobAHHyE1Zwx0bZDDwDd88Gdgz7EGnOJtMABfa0axfPOK9il5u7lYmmZ8Usa0HAvKavkpSRnw2b16zz88N98x3DyaIquvg2J8iQpHHoM32+BGiAS7P8BiYTO6r+E0CMPYC0Ylh7eHVSBGfWbR9m+yCo/mDIEAWyop6Jv4rTMN4qP9U7e6Kou7m/AJeiCWMaR7rlanpLFNQi3+qF/Mt5dbE7LVLNSOkmpg/FPw34g4RC5mfLAh+c8YBadqo6kFA6qV1b931or0aZUYVtobI6UwC9U1GGqzfCTjXuVMNgPBBQ6n3JMt91mFFkP0lXdGMxpBNbwFL/btBrt2a359L/wNtqv6PuSJwJ3oTe/FP++X6xjbM7LcAHZMWZiK+0BFefNOUcRzBpaEJ2nGNzcLKHn4Bl0pl4LwZ0uVocN8RBwHnDX+hyUwwQPoQTLJQB9tpwDweIzftt9KmrIHmL9v7KZXR4s/8CKpNfVQ/XSysdtsK+7EKK5AsnbMNrZLjpH7D0Lo/Xp92/eJ2UGyqI7awJbJGPV2FNwyGcojDEXIBUsVssUjb5+B4LpHP1x4UQe/m9SuPJdtRB0R7PKe/tyPD3GTyfVO9K7imQATDdnMY32nkWXmXej8YWo76yA732rTZRZtFAc="
|
||||
- secure: "NAEzWn5Ru6IqDA1RSyTVhpIp2iQluumg0EOI111EN7qWWGUDNgAZi+QgvRI+OBNyuMpBpN/GX1Ys4YxUDos1F/fhm2vytoB4A/LG463FQsSVP3wnyMFJTSOI8H0jgK41xj79qiww7edbfq93MZ/XS95Ws4tUTi/0etUGvAgIHGgofFCPPdMNkOvSHLgzSnYfydzLuD9FVpCgvpbJnQ+47XHyN+sKoA+OlZ+EfIOVZt+Mk/dqYrsM7MRKEfplk1MvUiJpHvrw+xWTslCIiO03V6ws091fBMgedIFRpsySrsd1KwH8JIeOK6KFn5W7Q53auzZkKYk7ymknlJt4WVBy7Qg33njMQ53t3qMQYTRUIV4dcR60cdII7tatzgpKBcycxHQMAshOYPT6pYhSsO6JEKgiO+ZhOxvqWGwtEeH9Zq7P4ft8Q7GJhRkdi0X0WY7/6RjwinO/1LLj1LODim3mDFfAK7xS7e+nQW/JEOdWohT2+qm97j9IOZeQtPtdqZP9F8HJXgw6WjiGJIXMF3Ov9GkQh4uJyMYJ6hN7T3iRoenV86Dzgg6u5Ku131Ziwvlm+n94qlXF8Jl47wCcAS7VmyYxMft1gH+Zs+4Wq7KO0vysmnEk6rCqb87ZQSDOdTzBfK9HTyyAqmBCgS4Dp5x7/xOBMVXfq/SOb9c3Sh/JItA="
|
||||
- DOCKER_REPOSITORY=$DOCKER_USERNAME/systemd
|
||||
|
||||
- ADMIN_EMAIL=macermak@redhat.com
|
||||
|
||||
- AUTHOR_NAME="$(git log -1 $TRAVIS_COMMIT --pretty=\"%aN\")"
|
||||
- AUTHOR_EMAIL="$(git log -1 $TRAVIS_COMMIT --pretty=\"%aE\")"
|
||||
|
||||
- CI_DIR="$TRAVIS_BUILD_DIR/travis-ci"
|
||||
- CI_TOOL_DIR="$CI_DIR/tools"
|
||||
- CI_SCRIPT_DIR="$CI_DIR/scripts"
|
||||
|
||||
notifications:
|
||||
email:
|
||||
recipients:
|
||||
- ${ADMIN_EMAIL}
|
||||
- ${AUTHOR_EMAIL}
|
||||
irc:
|
||||
channels:
|
||||
- "irc.freenode.org#systemd"
|
||||
|
@ -1,9 +1,11 @@
|
||||
- 8ch indent, no tabs, except for files in man/ which are 2ch indent,
|
||||
and still no tabs
|
||||
|
||||
- We prefer /* comments */ over // comments, please. This is not C++, after
|
||||
all. (Yes we know that C99 supports both kinds of comments, but still,
|
||||
please!)
|
||||
- We prefer /* comments */ over // comments in code you commit, please. This
|
||||
way // comments are left for developers to use for local, temporary
|
||||
commenting of code for debug purposes (i.e. uncommittable stuff), making such
|
||||
comments easily discernable from explanatory, documenting code comments
|
||||
(i.e. committable stuff).
|
||||
|
||||
- Don't break code lines too eagerly. We do *not* force line breaks at
|
||||
80ch, all of today's screens should be much larger than that. But
|
||||
|
@ -13,10 +13,21 @@ documented in the proper man pages.
|
||||
|
||||
All tools:
|
||||
|
||||
* `$SYSTEMD_OFFLINE=[0|1]` — if set to `1`, then `systemctl` will
|
||||
refrain from talking to PID 1; this has the same effect as the historical
|
||||
detection of `chroot()`. Setting this variable to `0` instead has a similar
|
||||
effect as `SYSTEMD_IGNORE_CHROOT=1`; i.e. tools will try to
|
||||
communicate with PID 1 even if a `chroot()` environment is detected.
|
||||
You almost certainly want to set this to `1` if you maintain a package build system
|
||||
or similar and are trying to use a modern container system and not plain
|
||||
`chroot()`.
|
||||
|
||||
* `$SYSTEMD_IGNORE_CHROOT=1` — if set, don't check whether being invoked in a
|
||||
chroot() environment. This is particularly relevant for systemctl, as it will
|
||||
not alter its behaviour for chroot() environments if set. (Normally it
|
||||
refrains from talking to PID 1 in such a case.)
|
||||
`chroot()` environment. This is particularly relevant for systemctl, as it
|
||||
will not alter its behaviour for `chroot()` environments if set. Normally it
|
||||
refrains from talking to PID 1 in such a case; turning most operations such
|
||||
as `start` into no-ops. If that's what's explicitly desired, you might
|
||||
consider setting `SYSTEMD_OFFLINE=1`.
|
||||
|
||||
* `$SD_EVENT_PROFILE_DELAYS=1` — if set, the sd-event event loop implementation
|
||||
will print latency information at runtime.
|
||||
|
35
HACKING
35
HACKING
@ -79,3 +79,38 @@ for systemd (this example is for Fedora):
|
||||
And after that, head over to your repo on github and click "Compare & pull request"
|
||||
|
||||
Happy hacking!
|
||||
|
||||
|
||||
FUZZERS
|
||||
|
||||
systemd includes fuzzers in src/fuzz that use libFuzzer and are automatically
|
||||
run by OSS-Fuzz (https://github.com/google/oss-fuzz) with sanitizers. To add a
|
||||
fuzz target, create a new src/fuzz/fuzz-foo.c file with a LLVMFuzzerTestOneInput
|
||||
function and add it to the list in src/fuzz/meson.build.
|
||||
|
||||
Whenever possible, a seed corpus and a dictionary should also be added with new
|
||||
fuzz targets. The dictionary should be named src/fuzz/fuzz-foo.dict and the seed
|
||||
corpus should be built and exported as $OUT/fuzz-foo_seed_corpus.zip in
|
||||
scripts/oss-fuzz.sh.
|
||||
|
||||
The fuzzers can be built locally if you have libFuzzer installed by running
|
||||
scripts/oss-fuzz.sh. You should also confirm that the fuzzer runs in the
|
||||
OSS-Fuzz environment by checking out the OSS-Fuzz repo, and then running
|
||||
commands like this:
|
||||
|
||||
python infra/helper.py build_image systemd
|
||||
python infra/helper.py build_fuzzers --sanitizer memory systemd ../systemd
|
||||
python infra/helper.py run_fuzzer systemd fuzz-foo
|
||||
|
||||
If you find a bug that impacts the security of systemd, please follow the
|
||||
guidance in .github/CONTRIBUTING.md on how to report a security vulnerability.
|
||||
|
||||
For more details on building fuzzers and integrating with OSS-Fuzz, visit:
|
||||
|
||||
https://github.com/google/oss-fuzz/blob/master/docs/new_project_guide.md
|
||||
|
||||
https://llvm.org/docs/LibFuzzer.html
|
||||
|
||||
https://github.com/google/fuzzer-test-suite/blob/master/tutorial/libFuzzerTutorial.md
|
||||
|
||||
https://chromium.googlesource.com/chromium/src/testing/libfuzzer/+/HEAD/efficient_fuzzer.md
|
||||
|
199
NEWS
199
NEWS
@ -1,5 +1,195 @@
|
||||
systemd System and Service Manager
|
||||
|
||||
CHANGES WITH 237:
|
||||
|
||||
* Some keyboards come with a zoom see-saw or rocker which until now got
|
||||
mapped to the Linux "zoomin/out" keys in hwdb. However, these
|
||||
keycodes are not recognized by any major desktop. They now produce
|
||||
Up/Down key events so that they can be used for scrolling.
|
||||
|
||||
* INCOMPATIBILITY: systemd-tmpfiles' "f" lines changed behaviour
|
||||
slightly: previously, if an argument was specified for lines of this
|
||||
type (i.e. the right-most column was set) this string was appended to
|
||||
existing files each time systemd-tmpfiles was run. This behaviour was
|
||||
different from what the documentation said, and not particularly
|
||||
useful, as repeated systemd-tmpfiles invocations would not be
|
||||
idempotent and grow such files without bounds. With this release
|
||||
behaviour has been altered slightly, to match what the documentation
|
||||
says: lines of this type only have an effect if the indicated files
|
||||
don't exist yet, and only then the argument string is written to the
|
||||
file.
|
||||
|
||||
* FUTURE INCOMPATIBILITY: In systemd v238 we intend to slightly change
|
||||
systemd-tmpfiles behaviour: previously, read-only files owned by root
|
||||
were always excluded from the file "aging" algorithm (i.e. the
|
||||
automatic clean-up of directories like /tmp based on
|
||||
atime/mtime/ctime). We intend to drop this restriction, and age files
|
||||
by default even when owned by root and read-only. This behaviour was
|
||||
inherited from older tools, but there have been requests to remove
|
||||
it, and it's not obvious why this restriction was made in the first
|
||||
place. Please speak up now, if you are aware of software that reqires
|
||||
this behaviour, otherwise we'll remove the restriction in v238.
|
||||
|
||||
* A new environment variable $SYSTEMD_OFFLINE is now understood by
|
||||
systemctl. It takes a boolean argument. If on, systemctl assumes it
|
||||
operates on an "offline" OS tree, and will not attempt to talk to the
|
||||
service manager. Previously, this mode was implicitly enabled if a
|
||||
chroot() environment was detected, and this new environment variable
|
||||
now provides explicit control.
|
||||
|
||||
* .path and .socket units may now be created transiently, too.
|
||||
Previously only service, mount, automount and timer units were
|
||||
supported as transient units. The systemd-run tool has been updated
|
||||
to expose this new functionality, you may hence use it now to bind
|
||||
arbitrary commands to path or socket activation on-the-fly from the
|
||||
command line. Moreover, almost all properties are now exposed for the
|
||||
unit types that already supported transient operation.
|
||||
|
||||
* The systemd-mount command gained support for a new --owner= parameter
|
||||
which takes a user name, which is then resolved and included in uid=
|
||||
and gid= mount options string of the file system to mount.
|
||||
|
||||
* A new unit condition ConditionControlGroupController= has been added
|
||||
that checks whether a specific cgroup controller is available.
|
||||
|
||||
* Unit files, udev's .link files, and systemd-networkd's .netdev and
|
||||
.network files all gained support for a new condition
|
||||
ConditionKernelVersion= for checking against specific kernel
|
||||
versions.
|
||||
|
||||
* In systemd-networkd, the [IPVLAN] section in .netdev files gained
|
||||
support for configuring device flags in the Flags= setting. In the
|
||||
same files, the [Tunnel] section gained support for configuring
|
||||
AllowLocalRemote=. The [Route] section in .network files gained
|
||||
support for configuring InitialCongestionWindow=,
|
||||
InitialAdvertisedReceiveWindow= and QuickAck=. The [DHCP] section now
|
||||
understands RapidCommit=.
|
||||
|
||||
* systemd-networkd's DHCPv6 support gained support for Prefix
|
||||
Delegation.
|
||||
|
||||
* sd-bus gained support for a new "watch-bind" feature. When this
|
||||
feature is enabled, an sd_bus connection may be set up to connect to
|
||||
an AF_UNIX socket in the file system as soon as it is created. This
|
||||
functionality is useful for writing early-boot services that
|
||||
automatically connect to the system bus as soon as it is started,
|
||||
without ugly time-based polling. systemd-networkd and
|
||||
systemd-resolved have been updated to make use of this
|
||||
functionality. busctl exposes this functionality in a new
|
||||
--watch-bind= command line switch.
|
||||
|
||||
* sd-bus will now optionally synthesize a local "Connected" signal as
|
||||
soon as a D-Bus connection is set up fully. This message mirrors the
|
||||
already existing "Disconnected" signal which is synthesized when the
|
||||
connection is terminated. This signal is generally useful but
|
||||
particularly handy in combination with the "watch-bind" feature
|
||||
described above. Synthesizing of this message has to be requested
|
||||
explicitly through the new API call sd_bus_set_connected_signal(). In
|
||||
addition a new call sd_bus_is_ready() has been added that checks
|
||||
whether a connection is fully set up (i.e. between the "Connected" and
|
||||
"Disconnected" signals).
|
||||
|
||||
* sd-bus gained two new calls sd_bus_request_name_async() and
|
||||
sd_bus_release_name_async() for asynchronously registering bus
|
||||
names. Similar, there is now sd_bus_add_match_async() for installing
|
||||
a signal match asynchronously. All of systemd's own services have
|
||||
been updated to make use of these calls. Doing these operations
|
||||
asynchronously has two benefits: it reduces the risk of deadlocks in
|
||||
case of cyclic dependencies between bus services, and it speeds up
|
||||
service initialization since synchronization points for bus
|
||||
round-trips are removed.
|
||||
|
||||
* sd-bus gained two new calls sd_bus_match_signal() and
|
||||
sd_bus_match_signal_async(), which are similar to sd_bus_add_match()
|
||||
and sd_bus_add_match_async() but instead of taking a D-Bus match
|
||||
string take match fields as normal function parameters.
|
||||
|
||||
* sd-bus gained two new calls sd_bus_set_sender() and
|
||||
sd_bus_message_set_sender() for setting the sender name of outgoing
|
||||
messages (either for all outgoing messages or for just one specific
|
||||
one). These calls are only useful in direct connections as on
|
||||
brokered connections the broker fills in the sender anyway,
|
||||
overwriting whatever the client filled in.
|
||||
|
||||
* sd-event gained a new pseudo-handle that may be specified on all API
|
||||
calls where an "sd_event*" object is expected: SD_EVENT_DEFAULT. When
|
||||
used this refers to the default event loop object of the calling
|
||||
thread. Note however that this does not implicitly allocate one —
|
||||
which has to be done prior by using sd_event_default(). Similarly
|
||||
sd-bus gained three new pseudo-handles SD_BUS_DEFAULT,
|
||||
SD_BUS_DEFAULT_USER, SD_BUS_DEFAULT_SYSTEM that may be used to refer
|
||||
to the default bus of the specified type of the calling thread. Here
|
||||
too this does not implicitly allocate bus connection objects, this
|
||||
has to be done prior with sd_bus_default() and friends.
|
||||
|
||||
* sd-event gained a new call pair
|
||||
sd_event_source_{get|set}_io_fd_own(). This may be used to request
|
||||
automatic closure of the file descriptor an IO event source watches
|
||||
when the event source is destroyed.
|
||||
|
||||
* systemd-networkd gained support for natively configuring WireGuard
|
||||
connections.
|
||||
|
||||
* In previous versions systemd synthesized user records both for the
|
||||
"nobody" (UID 65534) and "root" (UID 0) users in nss-systemd and
|
||||
internally. In order to simplify distribution-wide renames of the
|
||||
"nobody" user (like it is planned in Fedora: nfsnobody → nobody), a
|
||||
new transitional flag file has been added: if
|
||||
/etc/systemd/dont-synthesize-nobody exists synthesizing of the 65534
|
||||
user and group record within the systemd codebase is disabled.
|
||||
|
||||
* systemd-notify gained a new --uid= option for selecting the source
|
||||
user/UID to use for notification messages sent to the service
|
||||
manager.
|
||||
|
||||
* journalctl gained a new --grep= option to list only entries in which
|
||||
the message matches a certain pattern. By default matching is case
|
||||
insensitive if the pattern is lowercase, and case sensitive
|
||||
otherwise. Option --case-sensitive=yes|no can be used to override
|
||||
this an specify case sensitivity or case insensitivity.
|
||||
|
||||
* There's now a "systemd-analyze service-watchdogs" command for printing
|
||||
the current state of the service runtime watchdog, and optionally
|
||||
enabling or disabling the per-service watchdogs system-wide if given a
|
||||
boolean argument (i.e. the concept you configure in WatchdogSec=), for
|
||||
debugging purposes. There's also a kernel command line option
|
||||
systemd.service_watchdogs= for controlling the same.
|
||||
|
||||
* Two new "log-level" and "log-target" options for systemd-analyze were
|
||||
addded that merge the now deprecated get-log-level, set-log-level and
|
||||
get-log-target, set-log-target pairs. The deprecated options are still
|
||||
understood for backwards compatibility. The two new options print the
|
||||
current value when no arguments are given, and set them when a
|
||||
level/target is given as an argument.
|
||||
|
||||
* sysusers.d's "u" lines now optionally accept both a UID and a GID
|
||||
specification, separated by a ":" character, in order to create users
|
||||
where UID and GID do not match.
|
||||
|
||||
Contributions from: Adam Duskett, Alan Jenkins, Alexander Kuleshov,
|
||||
Alexis Deruelle, Andrew Jeddeloh, Armin Widegreen, Batuhan Osman
|
||||
Taşkaya, Björn Esser, bleep_blop, Bruce A. Johnson, Chris Down, Clinton
|
||||
Roy, Colin Walters, Daniel Rusek, Dimitri John Ledkov, Dmitry Rozhkov,
|
||||
Evgeny Vereshchagin, Ewout van Mansom, Felipe Sateler, Franck Bui,
|
||||
Frantisek Sumsal, George Gaydarov, Gianluca Boiano, Hans-Christian
|
||||
Noren Egtvedt, Hans de Goede, Henrik Grindal Bakken, Jan Alexander
|
||||
Steffens, Jan Klötzke, Jason A. Donenfeld, jdkbx, Jérémy Rosen,
|
||||
Jerónimo Borque, John Lin, John Paul Herold, Jonathan Rudenberg, Jörg
|
||||
Thalheim, Ken (Bitsko) MacLeod, Larry Bernstone, Lennart Poettering,
|
||||
Lucas Werkmeister, Maciej S. Szmigiero, Marek Čermák, Martin Pitt,
|
||||
Mathieu Malaterre, Matthew Thode, Matthias-Christian Ott, Max Harmathy,
|
||||
Michael Biebl, Michael Vogt, Michal Koutný, Michal Sekletar, Michał
|
||||
Szczepański, Mike Gilbert, Nathaniel McCallum, Nicolas Chauvet, Olaf
|
||||
Hering, Olivier Schwander, Patrik Flykt, Paul Cercueil, Peter Hutterer,
|
||||
Piotr Drąg, Raphael Vogelgsang, Reverend Homer, Robert Kolchmeyer,
|
||||
Samuel Dionne-Riel, Sergey Ptashnick, Shawn Landden, Susant Sahani,
|
||||
Sylvain Plantefève, Thomas H. P. Andersen, Thomas Huth, Tomasz
|
||||
Bachorski, Vladislav Vishnyakov, Wieland Hoffmann, Yu Watanabe, Zachary
|
||||
Winnerman, Zbigniew Jędrzejewski-Szmek, Дамјан Георгиевски, Дилян
|
||||
Палаузов
|
||||
|
||||
— Brno, 2018-01-28
|
||||
|
||||
CHANGES WITH 236:
|
||||
|
||||
* The modprobe.d/ drop-in for the bonding.ko kernel module introduced
|
||||
@ -2074,6 +2264,13 @@ CHANGES WITH 229:
|
||||
|
||||
d /run/lock/lockdev 0775 root lock -
|
||||
|
||||
* The settings StartLimitBurst=, StartLimitInterval=, StartLimitAction=
|
||||
and RebootArgument= have been moved from the [Service] section of
|
||||
unit files to [Unit], and they are now supported on all unit types,
|
||||
not just service units. Of course, systemd will continue to
|
||||
understand these settings also at the old location, in order to
|
||||
maintain compatibility.
|
||||
|
||||
Contributions from: Abdo Roig-Maranges, Alban Crequy, Aleksander
|
||||
Adamowski, Alexander Kuleshov, Andreas Pokorny, Andrei Borzenkov,
|
||||
Andrew Wilcox, Arthur Clement, Beniamino Galvani, Casey Schaufler,
|
||||
@ -5314,7 +5511,7 @@ CHANGES WITH 209:
|
||||
option as supported by Debian is added. It allows indicating
|
||||
which LUKS slot to use on disk, speeding up key loading.
|
||||
|
||||
* The sd_journald_sendv() API call has been checked and
|
||||
* The sd_journal_sendv() API call has been checked and
|
||||
officially declared to be async-signal-safe so that it may
|
||||
be invoked from signal handlers for logging purposes.
|
||||
|
||||
|
10
README
10
README
@ -69,11 +69,10 @@ REQUIREMENTS:
|
||||
create additional symlinks in /dev/disk/ and /dev/tape:
|
||||
CONFIG_BLK_DEV_BSG
|
||||
|
||||
Required for PrivateNetwork= and PrivateDevices= in service units:
|
||||
Required for PrivateNetwork= in service units:
|
||||
CONFIG_NET_NS
|
||||
CONFIG_DEVPTS_MULTIPLE_INSTANCES
|
||||
Note that systemd-localed.service and other systemd units use
|
||||
PrivateNetwork and PrivateDevices so this is effectively required.
|
||||
PrivateNetwork so this is effectively required.
|
||||
|
||||
Required for PrivateUsers= in service units:
|
||||
CONFIG_USER_NS
|
||||
@ -82,7 +81,7 @@ REQUIREMENTS:
|
||||
CONFIG_IPV6
|
||||
CONFIG_AUTOFS4_FS
|
||||
CONFIG_TMPFS_XATTR
|
||||
CONFIG_{TMPFS,EXT4,XFS,BTRFS_FS,...}_POSIX_ACL
|
||||
CONFIG_{TMPFS,EXT4_FS,XFS,BTRFS_FS,...}_POSIX_ACL
|
||||
CONFIG_SECCOMP
|
||||
CONFIG_SECCOMP_FILTER (required for seccomp support)
|
||||
CONFIG_CHECKPOINT_RESTORE (for the kcmp() syscall)
|
||||
@ -119,6 +118,9 @@ REQUIREMENTS:
|
||||
isn't. The next best thing is to make this change through a modprobe.d
|
||||
drop-in. This is shipped by default, see modprobe.d/systemd.conf.
|
||||
|
||||
Required for systemd-nspawn:
|
||||
CONFIG_DEVPTS_MULTIPLE_INSTANCES or Linux kernel >= 4.7
|
||||
|
||||
Note that kernel auditing is broken when used with systemd's
|
||||
container code. When using systemd in conjunction with
|
||||
containers, please make sure to either turn off auditing at
|
||||
|
52
TODO
52
TODO
@ -24,6 +24,38 @@ Janitorial Clean-ups:
|
||||
|
||||
Features:
|
||||
|
||||
* maybe rework get_user_creds() to query the user database if $SHELL is used
|
||||
for root, but only then.
|
||||
|
||||
* there should be path_hash_ops and we should use it in tmpfiles' hashmap object to deal with identical but differently spelt paths
|
||||
|
||||
* be stricter with fds we receive for the fdstore: close them asynchronously
|
||||
|
||||
* calenderspec: add support for week numbers and day numbers within a
|
||||
year. This would allow us to define "bi-weekly" triggers safely.
|
||||
|
||||
* add support for recursive bpf firewalling as supported by the newest kernel
|
||||
|
||||
* add bpf-based implementation of devices cgroup controller logic for compat with cgroupsv2 as supported by newest kernel
|
||||
|
||||
* introduce sd_id128_get_boot_app_specific() which is like
|
||||
sd_id128_get_machine_app_specific(). After all on long-running systems both
|
||||
IDs have similar properties.
|
||||
|
||||
* emulate properties of the root cgroup on controllers that don't support such
|
||||
properties natively on cpu/io/memory, the way we already do it for
|
||||
"pids". Also, add the same logic to cgtop.
|
||||
|
||||
* set TasksAccounting=1 on the root slice if we are running on the root cgroup,
|
||||
and similar for the others, as soon as we emulate them properly. After all,
|
||||
Linux keeps these system-wide stats anyway, and it costs nothing to expose
|
||||
them.
|
||||
|
||||
* sd-bus: add vtable flag, that may be used to request client creds implicitly
|
||||
and asynchronously before dispatching the operation
|
||||
|
||||
* implement transient socket unit.
|
||||
|
||||
* make use of ethtool veth peer info in machined, for automatically finding out
|
||||
host-side interface pointing to the container.
|
||||
|
||||
@ -41,10 +73,6 @@ Features:
|
||||
the runtime dir as we maintain for the fdstore: i.e. keep it around as long
|
||||
as the unit is running or has a job queued.
|
||||
|
||||
* hook up sd-bus' creds stuff with SO_PEERGROUPS
|
||||
|
||||
* add async version of sd_bus_add_match and make use of that
|
||||
|
||||
* support projid-based quota in machinectl for containers, and then drop
|
||||
implicit btrfs loopback magic in machined
|
||||
|
||||
@ -136,9 +164,6 @@ Features:
|
||||
O_NONBLOCK on it. That way people can control if and when to block for
|
||||
logging.
|
||||
|
||||
* tighten sd_notify() MAINPID= checks a bit: don't accept foreign PIDs (i.e.
|
||||
PIDs not managed by the service manager)
|
||||
|
||||
* hostnamed: populate form factor data from a new hwdb database, so that old
|
||||
yogas can be recognized as "convertible" too, even if they predate the DMI
|
||||
"convertible" form factor
|
||||
@ -165,9 +190,6 @@ Features:
|
||||
"systemd-gdb" for attaching to the start-up of any system service in its
|
||||
natural habitat.
|
||||
|
||||
* replace all canonicalize_file_name() invocations by chase_symlinks(), in
|
||||
particulr those where a rootdir is relevant.
|
||||
|
||||
* maybe introduce gpt auto discovery for /var/tmp?
|
||||
|
||||
* maybe add gpt-partition-based user management: each user gets his own
|
||||
@ -291,10 +313,6 @@ Features:
|
||||
|
||||
* docs: bring http://www.freedesktop.org/wiki/Software/systemd/MyServiceCantGetRealtime up to date
|
||||
|
||||
* mounting and unmounting mount points manually with different source
|
||||
devices will result in collected on all devices used.
|
||||
http://lists.freedesktop.org/archives/systemd-devel/2015-April/030225.html
|
||||
|
||||
* add a job mode that will fail if a transaction would mean stopping
|
||||
running units. Use this in timedated to manage the NTP service
|
||||
state.
|
||||
@ -315,7 +333,7 @@ Features:
|
||||
* Rework systemctl's GetAll property parsing to use the generic bus_map_all_properties() API
|
||||
|
||||
* Port various tools to make use of verbs.[ch], where applicable: busctl,
|
||||
coredumpctl, hostnamectl, localectl, systemd-analyze, timedatectl
|
||||
coredumpctl, hostnamectl, localectl, timedatectl
|
||||
|
||||
* hostnamectl: show root image uuid
|
||||
|
||||
@ -482,14 +500,12 @@ Features:
|
||||
- see if we can introduce a new sd_bus_get_owner_machine_id() call to retrieve the machine ID of the machine of the bus itself
|
||||
- see if we can drop more message validation on the sending side
|
||||
- add API to clone sd_bus_message objects
|
||||
- make AddMatch calls on dbus1 transports async?
|
||||
- longer term: priority inheritance
|
||||
- dbus spec updates:
|
||||
- NameLost/NameAcquired obsolete
|
||||
- GVariant
|
||||
- path escaping
|
||||
- update systemd.special(7) to mention that dbus.socket is only about the compatibility socket now
|
||||
- test bloom filter generation indexes
|
||||
|
||||
* sd-event
|
||||
- allow multiple signal handlers per signal?
|
||||
@ -588,8 +604,6 @@ Features:
|
||||
|
||||
* exec: when deinitializating a tty device fix the perms and group, too, not only when initializing. Set access mode/gid to 0620/tty.
|
||||
|
||||
* service: watchdog logic: for testing purposes allow ping, but do not require pong
|
||||
|
||||
* journal:
|
||||
- consider introducing implicit _TTY= + _PPID= + _EUID= + _EGID= + _FSUID= + _FSGID= fields
|
||||
- import and delete pstore filesystem content at startup
|
||||
|
@ -2,20 +2,20 @@
|
||||
|
||||
Our intention is to make all settings that are available as unit file settings
|
||||
also available for transient units, through the D-Bus API. At the moment, some
|
||||
unit types (socket, swap, path) are not supported at all via unit types, but
|
||||
most others are pretty well supported, with some notable omissions.
|
||||
unit types (device, swap, target) are not supported at all via unit types,
|
||||
but most others are pretty well supported, with some notable omissions.
|
||||
|
||||
The lists below contain all settings currently available in unit files. The
|
||||
ones currently available in transient units are prefixed with `✓`.
|
||||
|
||||
## Generic Unit Settings
|
||||
|
||||
Only the most important generic unit settings are available for transient units.
|
||||
Most generic unit settings are available for transient units.
|
||||
|
||||
```
|
||||
✓ Description=
|
||||
Documentation=
|
||||
SourcePath=
|
||||
✓ Documentation=
|
||||
✓ SourcePath=
|
||||
✓ Requires=
|
||||
✓ Requisite=
|
||||
✓ Wants=
|
||||
@ -27,67 +27,70 @@ Only the most important generic unit settings are available for transient units.
|
||||
✓ PropagatesReloadTo=
|
||||
✓ ReloadPropagatedFrom=
|
||||
✓ PartOf=
|
||||
JoinsNamespaceOf=
|
||||
RequiresMountsFor=
|
||||
StopWhenUnneeded=
|
||||
RefuseManualStart=
|
||||
RefuseManualStop=
|
||||
AllowIsolate=
|
||||
✓ JoinsNamespaceOf=
|
||||
✓ RequiresMountsFor=
|
||||
✓ StopWhenUnneeded=
|
||||
✓ RefuseManualStart=
|
||||
✓ RefuseManualStop=
|
||||
✓ AllowIsolate=
|
||||
✓ DefaultDependencies=
|
||||
OnFailureJobMode=
|
||||
OnFailureIsolate=
|
||||
IgnoreOnIsolate=
|
||||
JobTimeoutSec=
|
||||
JobRunningTimeoutSec=
|
||||
JobTimeoutAction=
|
||||
JobTimeoutRebootArgument=
|
||||
StartLimitIntervalSec=SECONDS
|
||||
StartLimitBurst=UNSIGNED
|
||||
StartLimitAction=ACTION
|
||||
✓ OnFailureJobMode=
|
||||
✓ IgnoreOnIsolate=
|
||||
✓ JobTimeoutSec=
|
||||
✓ JobRunningTimeoutSec=
|
||||
✓ JobTimeoutAction=
|
||||
✓ JobTimeoutRebootArgument=
|
||||
✓ StartLimitIntervalSec=SECONDS
|
||||
✓ StartLimitBurst=UNSIGNED
|
||||
✓ StartLimitAction=ACTION
|
||||
✓ FailureAction=
|
||||
✓ SuccessAction=
|
||||
✓ AddRef=
|
||||
RebootArgument=STRING
|
||||
ConditionPathExists=
|
||||
ConditionPathExistsGlob=
|
||||
ConditionPathIsDirectory=
|
||||
ConditionPathIsSymbolicLink=
|
||||
ConditionPathIsMountPoint=
|
||||
ConditionPathIsReadWrite=
|
||||
ConditionDirectoryNotEmpty=
|
||||
ConditionFileNotEmpty=
|
||||
ConditionFileIsExecutable=
|
||||
ConditionNeedsUpdate=
|
||||
ConditionFirstBoot=
|
||||
ConditionKernelCommandLine=
|
||||
ConditionArchitecture=
|
||||
ConditionVirtualization=
|
||||
ConditionSecurity=
|
||||
ConditionCapability=
|
||||
ConditionHost=
|
||||
ConditionACPower=
|
||||
ConditionUser=
|
||||
ConditionGroup=
|
||||
AssertPathExists=
|
||||
AssertPathExistsGlob=
|
||||
AssertPathIsDirectory=
|
||||
AssertPathIsSymbolicLink=
|
||||
AssertPathIsMountPoint=
|
||||
AssertPathIsReadWrite=
|
||||
AssertDirectoryNotEmpty=
|
||||
AssertFileNotEmpty=
|
||||
AssertFileIsExecutable=
|
||||
AssertNeedsUpdate=
|
||||
AssertFirstBoot=
|
||||
AssertKernelCommandLine=
|
||||
AssertArchitecture=
|
||||
AssertVirtualization=
|
||||
AssertSecurity=
|
||||
AssertCapability=
|
||||
AssertHost=
|
||||
AssertACPower=
|
||||
AssertUser=
|
||||
AssertGroup=
|
||||
✓ RebootArgument=STRING
|
||||
✓ ConditionPathExists=
|
||||
✓ ConditionPathExistsGlob=
|
||||
✓ ConditionPathIsDirectory=
|
||||
✓ ConditionPathIsSymbolicLink=
|
||||
✓ ConditionPathIsMountPoint=
|
||||
✓ ConditionPathIsReadWrite=
|
||||
✓ ConditionDirectoryNotEmpty=
|
||||
✓ ConditionFileNotEmpty=
|
||||
✓ ConditionFileIsExecutable=
|
||||
✓ ConditionNeedsUpdate=
|
||||
✓ ConditionFirstBoot=
|
||||
✓ ConditionKernelCommandLine=
|
||||
✓ ConditionKernelVersion=
|
||||
✓ ConditionArchitecture=
|
||||
✓ ConditionVirtualization=
|
||||
✓ ConditionSecurity=
|
||||
✓ ConditionCapability=
|
||||
✓ ConditionHost=
|
||||
✓ ConditionACPower=
|
||||
✓ ConditionUser=
|
||||
✓ ConditionGroup=
|
||||
✓ ConditionControlGroupController=
|
||||
✓ AssertPathExists=
|
||||
✓ AssertPathExistsGlob=
|
||||
✓ AssertPathIsDirectory=
|
||||
✓ AssertPathIsSymbolicLink=
|
||||
✓ AssertPathIsMountPoint=
|
||||
✓ AssertPathIsReadWrite=
|
||||
✓ AssertDirectoryNotEmpty=
|
||||
✓ AssertFileNotEmpty=
|
||||
✓ AssertFileIsExecutable=
|
||||
✓ AssertNeedsUpdate=
|
||||
✓ AssertFirstBoot=
|
||||
✓ AssertKernelCommandLine=
|
||||
✓ AssertKernelVersion=
|
||||
✓ AssertArchitecture=
|
||||
✓ AssertVirtualization=
|
||||
✓ AssertSecurity=
|
||||
✓ AssertCapability=
|
||||
✓ AssertHost=
|
||||
✓ AssertACPower=
|
||||
✓ AssertUser=
|
||||
✓ AssertGroup=
|
||||
✓ AssertControlGroupController=
|
||||
✓ CollectMode=
|
||||
```
|
||||
|
||||
@ -254,63 +257,63 @@ All process killing settings are available for transient units:
|
||||
|
||||
## Service Unit Settings
|
||||
|
||||
Only the most important service settings are available for transient units.
|
||||
Most service unit settings are available for transient units.
|
||||
|
||||
```
|
||||
PIDFile=
|
||||
✓ PIDFile=
|
||||
✓ ExecStartPre=
|
||||
✓ ExecStart=
|
||||
✓ ExecStartPost=
|
||||
✓ ExecReload=
|
||||
✓ ExecStop=
|
||||
✓ ExecStopPost=
|
||||
RestartSec=
|
||||
TimeoutStartSec=
|
||||
TimeoutStopSec=
|
||||
TimeoutSec=
|
||||
✓ RestartSec=
|
||||
✓ TimeoutStartSec=
|
||||
✓ TimeoutStopSec=
|
||||
✓ TimeoutSec=
|
||||
✓ RuntimeMaxSec=
|
||||
WatchdogSec=
|
||||
✓ WatchdogSec=
|
||||
✓ Type=
|
||||
✓ Restart=
|
||||
PermissionsStartOnly=
|
||||
RootDirectoryStartOnly=
|
||||
✓ PermissionsStartOnly=
|
||||
✓ RootDirectoryStartOnly=
|
||||
✓ RemainAfterExit=
|
||||
GuessMainPID=
|
||||
RestartPreventExitStatus=
|
||||
RestartForceExitStatus=
|
||||
SuccessExitStatus=
|
||||
✓ GuessMainPID=
|
||||
✓ RestartPreventExitStatus=
|
||||
✓ RestartForceExitStatus=
|
||||
✓ SuccessExitStatus=
|
||||
✓ NonBlocking=
|
||||
BusName=
|
||||
✓ BusName=
|
||||
✓ FileDescriptorStoreMax=
|
||||
✓ NotifyAccess=
|
||||
Sockets=
|
||||
USBFunctionDescriptors=
|
||||
USBFunctionStrings=
|
||||
✓ USBFunctionDescriptors=
|
||||
✓ USBFunctionStrings=
|
||||
```
|
||||
|
||||
## Mount Unit Settings
|
||||
|
||||
Only the most important mount unit settings are currently available to transient units:
|
||||
All mount unit settings are available to transient units:
|
||||
|
||||
```
|
||||
✓ What=
|
||||
Where=
|
||||
✓ Where=
|
||||
✓ Options=
|
||||
✓ Type=
|
||||
TimeoutSec=
|
||||
DirectoryMode=
|
||||
SloppyOptions=
|
||||
LazyUnmount=
|
||||
ForceUnmount=
|
||||
✓ TimeoutSec=
|
||||
✓ DirectoryMode=
|
||||
✓ SloppyOptions=
|
||||
✓ LazyUnmount=
|
||||
✓ ForceUnmount=
|
||||
```
|
||||
|
||||
## Automount Unit Settings
|
||||
|
||||
Only one automount unit setting is currently available to transient units:
|
||||
All automount unit setting is available to transient units:
|
||||
|
||||
```
|
||||
Where=
|
||||
DirectoryMode=
|
||||
✓ Where=
|
||||
✓ DirectoryMode=
|
||||
✓ TimeoutIdleSec=
|
||||
```
|
||||
|
||||
@ -325,7 +328,7 @@ Most timer unit settings are available to transient units.
|
||||
✓ OnStartupSec=
|
||||
✓ OnUnitActiveSec=
|
||||
✓ OnUnitInactiveSec=
|
||||
Persistent=
|
||||
✓ Persistent=
|
||||
✓ WakeSystem=
|
||||
✓ RemainAfterElapse=
|
||||
✓ AccuracySec=
|
||||
@ -341,71 +344,74 @@ of their own beyond the generic unit and resource control settings.
|
||||
## Scope Unit Settings
|
||||
|
||||
Scope units are fully supported as transient units (in fact they only exist as
|
||||
such), but they have no settings of their own beyond the generic unit and
|
||||
resource control settings.
|
||||
such).
|
||||
|
||||
```
|
||||
✓ TimeoutStopSec=
|
||||
```
|
||||
|
||||
## Socket Unit Settings
|
||||
|
||||
Socket units are currently not available at all as transient units:
|
||||
Most socket unit settings are available to transient units.
|
||||
|
||||
```
|
||||
ListenStream=
|
||||
ListenDatagram=
|
||||
ListenSequentialPacket=
|
||||
ListenFIFO=
|
||||
ListenNetlink=
|
||||
ListenSpecial=
|
||||
ListenMessageQueue=
|
||||
ListenUSBFunction=
|
||||
SocketProtocol=
|
||||
BindIPv6Only=
|
||||
Backlog=
|
||||
BindToDevice=
|
||||
ExecStartPre=
|
||||
ExecStartPost=
|
||||
ExecStopPre=
|
||||
ExecStopPost=
|
||||
TimeoutSec=
|
||||
SocketUser=
|
||||
SocketGroup=
|
||||
SocketMode=
|
||||
DirectoryMode=
|
||||
Accept=
|
||||
Writable=
|
||||
MaxConnections=
|
||||
MaxConnectionsPerSource=
|
||||
KeepAlive=
|
||||
KeepAliveTimeSec=
|
||||
KeepAliveIntervalSec=
|
||||
KeepAliveProbes=
|
||||
DeferAcceptSec=
|
||||
NoDelay=
|
||||
Priority=
|
||||
ReceiveBuffer=
|
||||
SendBuffer=
|
||||
IPTOS=
|
||||
IPTTL=
|
||||
Mark=
|
||||
PipeSize=
|
||||
FreeBind=
|
||||
Transparent=
|
||||
Broadcast=
|
||||
PassCredentials=
|
||||
PassSecurity=
|
||||
TCPCongestion=
|
||||
ReusePort=
|
||||
MessageQueueMaxMessages=
|
||||
MessageQueueMessageSize=
|
||||
RemoveOnStop=
|
||||
Symlinks=
|
||||
FileDescriptorName=
|
||||
✓ ListenStream=
|
||||
✓ ListenDatagram=
|
||||
✓ ListenSequentialPacket=
|
||||
✓ ListenFIFO=
|
||||
✓ ListenNetlink=
|
||||
✓ ListenSpecial=
|
||||
✓ ListenMessageQueue=
|
||||
✓ ListenUSBFunction=
|
||||
✓ SocketProtocol=
|
||||
✓ BindIPv6Only=
|
||||
✓ Backlog=
|
||||
✓ BindToDevice=
|
||||
✓ ExecStartPre=
|
||||
✓ ExecStartPost=
|
||||
✓ ExecStopPre=
|
||||
✓ ExecStopPost=
|
||||
✓ TimeoutSec=
|
||||
✓ SocketUser=
|
||||
✓ SocketGroup=
|
||||
✓ SocketMode=
|
||||
✓ DirectoryMode=
|
||||
✓ Accept=
|
||||
✓ Writable=
|
||||
✓ MaxConnections=
|
||||
✓ MaxConnectionsPerSource=
|
||||
✓ KeepAlive=
|
||||
✓ KeepAliveTimeSec=
|
||||
✓ KeepAliveIntervalSec=
|
||||
✓ KeepAliveProbes=
|
||||
✓ DeferAcceptSec=
|
||||
✓ NoDelay=
|
||||
✓ Priority=
|
||||
✓ ReceiveBuffer=
|
||||
✓ SendBuffer=
|
||||
✓ IPTOS=
|
||||
✓ IPTTL=
|
||||
✓ Mark=
|
||||
✓ PipeSize=
|
||||
✓ FreeBind=
|
||||
✓ Transparent=
|
||||
✓ Broadcast=
|
||||
✓ PassCredentials=
|
||||
✓ PassSecurity=
|
||||
✓ TCPCongestion=
|
||||
✓ ReusePort=
|
||||
✓ MessageQueueMaxMessages=
|
||||
✓ MessageQueueMessageSize=
|
||||
✓ RemoveOnStop=
|
||||
✓ Symlinks=
|
||||
✓ FileDescriptorName=
|
||||
Service=
|
||||
TriggerLimitIntervalSec=
|
||||
TriggerLimitBurst=
|
||||
SmackLabel=
|
||||
SmackLabelIPIn=
|
||||
SmackLabelIPOut=
|
||||
SELinuxContextFromNet=
|
||||
✓ TriggerLimitIntervalSec=
|
||||
✓ TriggerLimitBurst=
|
||||
✓ SmackLabel=
|
||||
✓ SmackLabelIPIn=
|
||||
✓ SmackLabelIPOut=
|
||||
✓ SELinuxContextFromNet=
|
||||
```
|
||||
|
||||
## Swap Unit Settings
|
||||
@ -421,17 +427,17 @@ Swap units are currently not available at all as transient units:
|
||||
|
||||
## Path Unit Settings
|
||||
|
||||
Path units are currently not available at all as transient units:
|
||||
Most path unit settings are available to transient units.
|
||||
|
||||
```
|
||||
PathExists=
|
||||
PathExistsGlob=
|
||||
PathChanged=
|
||||
PathModified=
|
||||
DirectoryNotEmpty=
|
||||
✓ PathExists=
|
||||
✓ PathExistsGlob=
|
||||
✓ PathChanged=
|
||||
✓ PathModified=
|
||||
✓ DirectoryNotEmpty=
|
||||
Unit=
|
||||
MakeDirectory=
|
||||
DirectoryMode=
|
||||
✓ MakeDirectory=
|
||||
✓ DirectoryMode=
|
||||
```
|
||||
|
||||
## Install Section
|
||||
|
27
UIDS-GIDS.md
27
UIDS-GIDS.md
@ -17,22 +17,23 @@ i.e. 0…4294967295. However, four UIDs are special on Linux:
|
||||
1. 0 → The `root` super-user
|
||||
|
||||
2. 65534 → The `nobody` UID, also called the "overflow" UID or similar. It's
|
||||
where various subsystems map unmappable users to, for example NFS or user
|
||||
namespacing. (The latter can be changed with a sysctl during runtime, but
|
||||
that's not supported on `systemd`. If you do change it you void your
|
||||
warranty.) Because Fedora is a bit confused the `nobody` user is called
|
||||
`nfsnobody` there (and they have a different `nobody` user at UID 99). I
|
||||
hope this will be corrected eventually though. (Also, some distributions
|
||||
call the `nobody` group `nogroup`. I wish they didn't.)
|
||||
where various subsystems map unmappable users to, for example file systems
|
||||
only supporting 16bit UIDs, NFS or user namespacing. (The latter can be
|
||||
changed with a sysctl during runtime, but that's not supported on
|
||||
`systemd`. If you do change it you void your warranty.) Because Fedora is a
|
||||
bit confused the `nobody` user is called `nfsnobody` there (and they have a
|
||||
different `nobody` user at UID 99). I hope this will be corrected eventually
|
||||
though. (Also, some distributions call the `nobody` group `nogroup`. I wish
|
||||
they didn't.)
|
||||
|
||||
3. 4294967295, aka "32bit `(uid_t) -1`" → This UID is not a valid user ID, as
|
||||
setresuid(), chown() and friends treat -1 as a special request to not change
|
||||
the UID of the process/file. This UID is hence not available for assignment
|
||||
to users in the user database.
|
||||
`setresuid()`, `chown()` and friends treat -1 as a special request to not
|
||||
change the UID of the process/file. This UID is hence not available for
|
||||
assignment to users in the user database.
|
||||
|
||||
4. 65535, aka "16bit `(uid_t) -1`" → Once upon a time `uid_t` used to be 16bit, and
|
||||
programs compiled for that would hence assume that `(uid_t) -1` is 65535. This
|
||||
UID is hence not usable either.
|
||||
4. 65535, aka "16bit `(uid_t) -1`" → Before Linux kernel 2.4 `uid_t` used to be
|
||||
16bit, and programs compiled for that would hence assume that `(uid_t) -1`
|
||||
is 65535. This UID is hence not usable either.
|
||||
|
||||
The `nss-systemd` glibc NSS module will synthesize user database records for
|
||||
the UIDs 0 and 65534 if the system user database doesn't list them. This means
|
||||
|
@ -346,3 +346,21 @@ Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
L'unité (unit) @UNIT@ s'est arrêtée et a consommé les ressources indiquées.
|
||||
|
||||
-- 50876a9db00f4c40bde1a2ad381c3a1b
|
||||
Subject: Le système est configuré d'une manière qui pourrait causer des problèmes
|
||||
Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
Les étiquettes suivantes sont possibles :
|
||||
- "split-usr" — /usr est un système de fichiers séparé et nétait pas
|
||||
monté quand systemd a été démarré
|
||||
- "cgroups-missing" — le noyau a été compilé sans le support des groupes
|
||||
de contrôle (cgroups) ou l'accès aux fichiers d'interface est restreint
|
||||
- "var-run-bad" — /var/run n'est pas un lien symbolique vers /run
|
||||
- "overflowuid-not-65534" — l'ID utilisé par le noyau pour l'utilisateur
|
||||
"unknown" (avec NFS ou l'espace de noms utilisateurs) n'est pas 65534
|
||||
- "overflowgid-not-65534" — l'ID utilisé par le noyau pour le groupe
|
||||
"unknown" (avec NFS ou l'espace de noms utilisateurs) n'est pas 65534
|
||||
|
||||
Le présent système est étiqueté @TAINT@.
|
||||
|
@ -49,7 +49,7 @@ Support: %SUPPORT_URL%
|
||||
|
||||
@JOURNAL_NAME@ (@JOURNAL_PATH@) obecnie używa @CURRENT_USE_PRETTY@.
|
||||
Maksymalnie może używać @MAX_USE_PRETTY@.
|
||||
Zostawianie co najmniej @DISK_KEEP_FREE_PRETTY@ wolnego (z obecnie dostępnego @DISK_AVAILABLE_PRETTY@ miejsca na dysku).
|
||||
Zostawianie co najmniej @DISK_KEEP_FREE_PRETTY@ wolnego (z obecnie dostępnego @DISK_AVAILABLE_PRETTY@ miejsca na dysku).
|
||||
Wymuszone ograniczenie użycia wynosi więc @LIMIT_PRETTY@, z czego @AVAILABLE_PRETTY@ jest nadal dostępne.
|
||||
|
||||
Ograniczenia kontrolujące ilość miejsca na dysku używanego przez dziennik
|
||||
@ -94,13 +94,13 @@ Zwykle wskazuje to na błąd programistyczny w danym programie i powinno zosta
|
||||
zgłoszone jego producentowi jako błąd.
|
||||
|
||||
-- 5aadd8e954dc4b1a8c954d63fd9e1137
|
||||
Subject: Plik core został skrócony do @SIZE_LIMIT@ B.
|
||||
Subject: Plik core został skrócony do @SIZE_LIMIT@ B.
|
||||
Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
Documentation: man:coredump.conf(5)
|
||||
|
||||
Proces miał więcej zmapowanej pamięci niż maksimum dla przetwarzania i miejsca
|
||||
skonfigurowane przez systemd-coredump(8). Tylko pierwsze @SIZE_LIMIT@ B
|
||||
skonfigurowane przez systemd-coredump(8). Tylko pierwsze @SIZE_LIMIT@ B
|
||||
zostało zapisanych. Ten plik core może nadal być używalny, ale narzędzia typu
|
||||
gdb(1) będą ostrzegały o skróceniu pliku.
|
||||
|
||||
@ -144,7 +144,7 @@ Subject: Zmiana czasu
|
||||
Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
Zegar systemowy został zmieniony na @REALTIME@ μs po 1 stycznia 1970.
|
||||
Zegar systemowy został zmieniony na @REALTIME@ μs po 1 stycznia 1970.
|
||||
|
||||
-- 45f82f4aef7a4bbf942ce861d1f20990
|
||||
Subject: Zmiana strefy czasowej na @TIMEZONE@
|
||||
@ -163,11 +163,11 @@ uruchamiania systemu zostały uruchomione. Proszę zauważyć, że nie oznacza
|
||||
to, że komputer jest bezczynny, jako że usługi mogą wciąż kończyć proces
|
||||
uruchamiania.
|
||||
|
||||
Uruchamianie jądra zajęło @KERNEL_USEC@ μs.
|
||||
Uruchamianie jądra zajęło @KERNEL_USEC@ μs.
|
||||
|
||||
Uruchamianie początkowego dysku RAM zajęło @INITRD_USEC@ μs.
|
||||
Uruchamianie początkowego dysku RAM zajęło @INITRD_USEC@ μs.
|
||||
|
||||
Uruchamianie przestrzeni użytkownika zajęło @USERSPACE_USEC@ μs.
|
||||
Uruchamianie przestrzeni użytkownika zajęło @USERSPACE_USEC@ μs.
|
||||
|
||||
-- eed00a68ffd84e31882105fd973abdd1
|
||||
Subject: Ukończono uruchamianie menedżera użytkownika
|
||||
@ -179,7 +179,7 @@ Wszystkie usługi zakolejkowane do włączenia zostały uruchomione.
|
||||
Proszę zauważyć, że inne usługi mogą być nadal uruchamiane
|
||||
lub zostać uruchomione później.
|
||||
|
||||
Uruchamianie menedżera zajęło @USERSPACE_USEC@ μs.
|
||||
Uruchamianie menedżera zajęło @USERSPACE_USEC@ μs.
|
||||
|
||||
-- 6bbd95ee977941e497c48be27c254128
|
||||
Subject: Przejście do stanu uśpienia @SLEEP@
|
||||
@ -200,7 +200,7 @@ Subject: Zainicjowano wyłączenie systemu
|
||||
Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
Zainicjowano wyłączenie systemd. Wyłączenie zostało rozpoczęte i wszystkie
|
||||
Zainicjowano wyłączenie systemu. Wyłączenie zostało rozpoczęte i wszystkie
|
||||
usługi systemowe zostały zakończone, a wszystkie systemy plików odmontowane.
|
||||
|
||||
-- 7d4958e842da4a758f6c1cdc7b36dcc5
|
||||
@ -353,3 +353,22 @@ Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
Jednostka @UNIT@ została ukończona, zużywając wskazane zasoby.
|
||||
|
||||
-- 50876a9db00f4c40bde1a2ad381c3a1b
|
||||
Subject: System jest skonfigurowany w sposób, który może powodować problemy
|
||||
Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
Możliwe są następujące „etykiety”:
|
||||
• „split-usr” — /usr jest oddzielnym systemem plików, który nie był
|
||||
zamontowany w czasie uruchomienia systemd,
|
||||
• „cgroups-missing” — jądro zostało skompilowane bez obsługi cgroups
|
||||
lub dostęp do oczekiwanych plików interfejsu jest ograniczony,
|
||||
• „var-run-bad” — /var/run nie jest dowiązaniem symbolicznym do /run,
|
||||
• „overflowuid-not-65534” — identyfikator użytkownika dla „nieznanych”
|
||||
użytkowników (przy wykorzystaniu przestrzeni nazw użytkowników lub NFS)
|
||||
nie wynosi 65534,
|
||||
• „overflowgid-not-65534” — identyfikator grupy dla „nieznanych”
|
||||
użytkowników (przy wykorzystaniu przestrzeni nazw użytkowników lub NFS)
|
||||
nie wynosi 65534.
|
||||
Obecny system ma etykietę „@TAINT@”.
|
||||
|
@ -396,3 +396,24 @@ Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
Юнит @UNIT@ завершен. Приводится статистика по потребленным им ресурсам.
|
||||
|
||||
# Subject: The system is configured in a way that might cause problems
|
||||
-- 50876a9db00f4c40bde1a2ad381c3a1b
|
||||
Subject: Выявлены потенциальные проблемы в конфигурации системы
|
||||
Defined-By: systemd
|
||||
Support: %SUPPORT_URL%
|
||||
|
||||
Перечень всех возможных меток, указывающих на проблемы конфигурации:
|
||||
- "split-usr" — каталог /usr расположен на отдельной файловой системе,
|
||||
которая не была смонтирована на момент запуска systemd
|
||||
- "cgroups-missing" — ядро собрано без поддержки контрольных групп, либо
|
||||
отсутствуют права для доступа к интерфейсным файлам контрольных групп
|
||||
- "var-run-bad" — /var/run не является символьной ссылкой на /run
|
||||
- "overflowuid-not-65534" — используемый ядром UID для "неизвестных"
|
||||
пользователей (применяется в NFS и пространствах имен пользователей)
|
||||
не равен 65534
|
||||
- "overflowgid-not-65534" — используемый ядром GID для "неизвестных"
|
||||
пользователей (применяется в NFS и пространствах имен пользователей)
|
||||
не равен 65534
|
||||
|
||||
В вашей системе присутствуют следующие проблемы: @TAINT@.
|
||||
|
8
coccinelle/debug-logging.cocci
Normal file
8
coccinelle/debug-logging.cocci
Normal file
@ -0,0 +1,8 @@
|
||||
@@
|
||||
@@
|
||||
- _unlikely_(log_get_max_level() >= LOG_DEBUG)
|
||||
+ DEBUG_LOGGING
|
||||
@@
|
||||
@@
|
||||
- log_get_max_level() >= LOG_DEBUG
|
||||
+ DEBUG_LOGGING
|
4
coccinelle/enotsup.cocci
Normal file
4
coccinelle/enotsup.cocci
Normal file
@ -0,0 +1,4 @@
|
||||
@@
|
||||
@@
|
||||
- ENOTSUP
|
||||
+ EOPNOTSUPP
|
16
coccinelle/exit-0.cocci
Normal file
16
coccinelle/exit-0.cocci
Normal file
@ -0,0 +1,16 @@
|
||||
@@
|
||||
@@
|
||||
- exit(0);
|
||||
+ exit(EXIT_SUCCESS);
|
||||
@@
|
||||
@@
|
||||
- _exit(0);
|
||||
+ _exit(EXIT_SUCCESS);
|
||||
@@
|
||||
@@
|
||||
- exit(1);
|
||||
+ exit(EXIT_FAILURE);
|
||||
@@
|
||||
@@
|
||||
- _exit(1);
|
||||
+ _exit(EXIT_FAILURE);
|
@ -6,10 +6,55 @@ expression s;
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strv_length(s) <= 0
|
||||
+ strv_isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strv_length(s) > 0
|
||||
+ !strv_isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strv_length(s) != 0
|
||||
+ !strv_isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen(s) == 0
|
||||
+ isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen(s) <= 0
|
||||
+ isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen(s) > 0
|
||||
+ !isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen(s) != 0
|
||||
+ !isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen_ptr(s) == 0
|
||||
+ isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen_ptr(s) <= 0
|
||||
+ isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen_ptr(s) > 0
|
||||
+ !isempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- strlen_ptr(s) != 0
|
||||
+ !isempty(s)
|
||||
|
30
coccinelle/memzero.cocci
Normal file
30
coccinelle/memzero.cocci
Normal file
@ -0,0 +1,30 @@
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- memset(&s, 0, sizeof(s))
|
||||
+ zero(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- memset(s, 0, sizeof(*s))
|
||||
+ zero(*s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- bzero(&s, sizeof(s))
|
||||
+ zero(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- bzero(s, sizeof(*s))
|
||||
+ zero(*s)
|
||||
@@
|
||||
expression a, b;
|
||||
@@
|
||||
- memset(a, 0, b)
|
||||
+ memzero(a, b)
|
||||
@@
|
||||
expression a, b;
|
||||
@@
|
||||
- bzero(a, b)
|
||||
+ memzero(a, b)
|
4
coccinelle/o-ndelay.occi
Normal file
4
coccinelle/o-ndelay.occi
Normal file
@ -0,0 +1,4 @@
|
||||
@@
|
||||
@@
|
||||
- O_NDELAY
|
||||
+ O_NONBLOCK
|
@ -8,3 +8,41 @@ expression s;
|
||||
@@
|
||||
- s ? s : ""
|
||||
+ strempty(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- if (!s)
|
||||
- s = "";
|
||||
+ s = strempty(s);
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- s ?: "(null)"
|
||||
+ strnull(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- s ? s : "(null)"
|
||||
+ strnull(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- if (!s)
|
||||
- s = "(null)";
|
||||
+ s = strnull(s);
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- s ?: "n/a"
|
||||
+ strna(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- s ? s : "n/a"
|
||||
+ strna(s)
|
||||
@@
|
||||
expression s;
|
||||
@@
|
||||
- if (!s)
|
||||
- s = "n/a";
|
||||
+ s = strna(s);
|
||||
|
1101
hwdb/20-OUI.hwdb
1101
hwdb/20-OUI.hwdb
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
--- 20-acpi-vendor.hwdb.base 2017-12-14 15:57:48.154005635 +0100
|
||||
+++ 20-acpi-vendor.hwdb 2017-12-14 15:57:48.160005689 +0100
|
||||
--- 20-acpi-vendor.hwdb.base 2018-01-25 13:07:40.178983802 +0100
|
||||
+++ 20-acpi-vendor.hwdb 2018-01-25 13:07:40.183983802 +0100
|
||||
@@ -3,6 +3,8 @@
|
||||
# Data imported from:
|
||||
# http://www.uefi.org/uefi-pnp-export
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -48422,6 +48422,93 @@ usb:v1519*
|
||||
usb:v1519p0020*
|
||||
ID_MODEL_FROM_DATABASE=HSIC Device
|
||||
|
||||
usb:v151F*
|
||||
ID_VENDOR_FROM_DATABASE=Opal Kelly Incorporated
|
||||
|
||||
usb:v151Fp0020*
|
||||
ID_MODEL_FROM_DATABASE=XEM3001v1
|
||||
|
||||
usb:v151Fp0021*
|
||||
ID_MODEL_FROM_DATABASE=XEM3001v2
|
||||
|
||||
usb:v151Fp0022*
|
||||
ID_MODEL_FROM_DATABASE=XEM3010
|
||||
|
||||
usb:v151Fp0023*
|
||||
ID_MODEL_FROM_DATABASE=XEM3005
|
||||
|
||||
usb:v151Fp0028*
|
||||
ID_MODEL_FROM_DATABASE=XEM3050
|
||||
|
||||
usb:v151Fp002B*
|
||||
ID_MODEL_FROM_DATABASE=XEM5010
|
||||
|
||||
usb:v151Fp002C*
|
||||
ID_MODEL_FROM_DATABASE=XEM6001
|
||||
|
||||
usb:v151Fp002D*
|
||||
ID_MODEL_FROM_DATABASE=XEM6010-LX45
|
||||
|
||||
usb:v151Fp002E*
|
||||
ID_MODEL_FROM_DATABASE=XEM6010-LX150
|
||||
|
||||
usb:v151Fp0030*
|
||||
ID_MODEL_FROM_DATABASE=XEM6006-LX16
|
||||
|
||||
usb:v151Fp0033*
|
||||
ID_MODEL_FROM_DATABASE=XEM6002-LX9
|
||||
|
||||
usb:v151Fp0034*
|
||||
ID_MODEL_FROM_DATABASE=XEM7001-A15
|
||||
|
||||
usb:v151Fp0036*
|
||||
ID_MODEL_FROM_DATABASE=XEM7010-A50
|
||||
|
||||
usb:v151Fp0037*
|
||||
ID_MODEL_FROM_DATABASE=XEM7010-A200
|
||||
|
||||
usb:v151Fp0120*
|
||||
ID_MODEL_FROM_DATABASE=ZEM4310
|
||||
|
||||
usb:v151Fp0121*
|
||||
ID_MODEL_FROM_DATABASE=XEM6310-LX45
|
||||
|
||||
usb:v151Fp0122*
|
||||
ID_MODEL_FROM_DATABASE=XEM6310-LX150
|
||||
|
||||
usb:v151Fp0123*
|
||||
ID_MODEL_FROM_DATABASE=XEM6310MT-LX45T
|
||||
|
||||
usb:v151Fp0125*
|
||||
ID_MODEL_FROM_DATABASE=XEM7350-K70T
|
||||
|
||||
usb:v151Fp0126*
|
||||
ID_MODEL_FROM_DATABASE=XEM7350-K160T
|
||||
|
||||
usb:v151Fp0127*
|
||||
ID_MODEL_FROM_DATABASE=XEM7350-K410T
|
||||
|
||||
usb:v151Fp0128*
|
||||
ID_MODEL_FROM_DATABASE=XEM6310MT-LX150T
|
||||
|
||||
usb:v151Fp0129*
|
||||
ID_MODEL_FROM_DATABASE=ZEM5305-A2
|
||||
|
||||
usb:v151Fp012B*
|
||||
ID_MODEL_FROM_DATABASE=XEM7360-K160T
|
||||
|
||||
usb:v151Fp012C*
|
||||
ID_MODEL_FROM_DATABASE=XEM7360-K410T
|
||||
|
||||
usb:v151Fp012D*
|
||||
ID_MODEL_FROM_DATABASE=ZEM5310-A4
|
||||
|
||||
usb:v151Fp0130*
|
||||
ID_MODEL_FROM_DATABASE=XEM7310-A75
|
||||
|
||||
usb:v151Fp0131*
|
||||
ID_MODEL_FROM_DATABASE=XEM7310-A200
|
||||
|
||||
usb:v1520*
|
||||
ID_VENDOR_FROM_DATABASE=Bitwire Corp.
|
||||
|
||||
@ -55958,6 +56045,45 @@ usb:v24E1p3001*
|
||||
usb:v24E1p3005*
|
||||
ID_MODEL_FROM_DATABASE=Radius
|
||||
|
||||
usb:v2516*
|
||||
ID_VENDOR_FROM_DATABASE=Cooler Master Co., Ltd.
|
||||
|
||||
usb:v2516p0003*
|
||||
ID_MODEL_FROM_DATABASE=Storm Xornet
|
||||
|
||||
usb:v2516p0004*
|
||||
ID_MODEL_FROM_DATABASE=Storm QuickFire Rapid Mechanical Keyboard
|
||||
|
||||
usb:v2516p0006*
|
||||
ID_MODEL_FROM_DATABASE=Storm Recon
|
||||
|
||||
usb:v2516p0007*
|
||||
ID_MODEL_FROM_DATABASE=Storm Sentinel Advance II
|
||||
|
||||
usb:v2516p0009*
|
||||
ID_MODEL_FROM_DATABASE=Storm Quick Fire PRO
|
||||
|
||||
usb:v2516p0011*
|
||||
ID_MODEL_FROM_DATABASE=Storm Quick Fire TK
|
||||
|
||||
usb:v2516p0017*
|
||||
ID_MODEL_FROM_DATABASE=CM Storm Quick Fire Stealth
|
||||
|
||||
usb:v2516p0020*
|
||||
ID_MODEL_FROM_DATABASE=QuickFire Rapid-i Keyboard
|
||||
|
||||
usb:v2516p0027*
|
||||
ID_MODEL_FROM_DATABASE=CM Storm Coolermaster Novatouch TKL
|
||||
|
||||
usb:v2516p002D*
|
||||
ID_MODEL_FROM_DATABASE=Alcor mouse
|
||||
|
||||
usb:v2516p0047*
|
||||
ID_MODEL_FROM_DATABASE=MasterKeys Pro L
|
||||
|
||||
usb:v2516p9494*
|
||||
ID_MODEL_FROM_DATABASE=Sirus Headset
|
||||
|
||||
usb:v2632*
|
||||
ID_VENDOR_FROM_DATABASE=TwinMOS
|
||||
|
||||
|
@ -47,6 +47,7 @@
|
||||
evdev:input:b0003v05ACp021B*
|
||||
# Macbook4,1
|
||||
evdev:input:b0003v05ACp0229*
|
||||
evdev:input:b0003v05ACp022A*
|
||||
EVDEV_ABS_00=256:1471:12
|
||||
EVDEV_ABS_01=256:831:12
|
||||
|
||||
@ -94,6 +95,11 @@ evdev:input:b0003v05ACp025B*
|
||||
# ASUS
|
||||
#########################################
|
||||
|
||||
# Asus F3Sg
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnASUSTeKComputerInc.:pnF3Sg:*
|
||||
EVDEV_ABS_00=0:6143:136
|
||||
EVDEV_ABS_01=1103:5856:61
|
||||
|
||||
# Asus VivoBook E402SA
|
||||
evdev:name:Elan Touchpad:dmi:*svnASUSTeKCOMPUTERINC.:pnE402SA*
|
||||
EVDEV_ABS_00=::29
|
||||
|
@ -478,6 +478,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*13*x360*:pvr*
|
||||
KEYBOARD_KEY_d7=unknown
|
||||
|
||||
# Purism Librem 13 V2
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism*:pn*Librem13v2*:pvr*
|
||||
KEYBOARD_KEY_56=backslash
|
||||
|
||||
# Elitebook
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook*:pvr*
|
||||
@ -557,6 +561,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook4*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHP*ProBook*4*:pvr*
|
||||
# HP ZBook
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:pvr*
|
||||
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
|
||||
|
||||
# HP Folio 1040g2
|
||||
@ -763,14 +768,14 @@ evdev:input:b0003v046DpC308*
|
||||
|
||||
# Cordless Desktop S510
|
||||
evdev:input:b0003v046DpC50C*
|
||||
KEYBOARD_KEY_d4=zoomin
|
||||
KEYBOARD_KEY_cc=zoomout
|
||||
KEYBOARD_KEY_d4=up # zoomin
|
||||
KEYBOARD_KEY_cc=down # zoomout
|
||||
|
||||
# Wave cordless
|
||||
evdev:input:b0003v046DpC317*
|
||||
KEYBOARD_KEY_9001c=scale # expo
|
||||
KEYBOARD_KEY_9001f=zoomout
|
||||
KEYBOARD_KEY_90020=zoomin
|
||||
KEYBOARD_KEY_9001f=down # zoomout
|
||||
KEYBOARD_KEY_90020=up # zoomin
|
||||
KEYBOARD_KEY_9003d=prog1 # gadget
|
||||
KEYBOARD_KEY_90005=camera
|
||||
KEYBOARD_KEY_90018=media
|
||||
@ -787,8 +792,8 @@ evdev:input:b0003v046DpC317*
|
||||
|
||||
# Wave cordless
|
||||
evdev:input:b0003v046DpC517*
|
||||
KEYBOARD_KEY_c101f=zoomout
|
||||
KEYBOARD_KEY_c1020=zoomin
|
||||
KEYBOARD_KEY_c101f=down # zoomout
|
||||
KEYBOARD_KEY_c1020=up # zoomin
|
||||
KEYBOARD_KEY_c1005=camera
|
||||
KEYBOARD_KEY_c0183=media
|
||||
KEYBOARD_KEY_c1041=wordprocessor
|
||||
@ -813,8 +818,8 @@ evdev:input:b0003v046DpC52[9B]*
|
||||
KEYBOARD_KEY_0c018a=mail
|
||||
KEYBOARD_KEY_0c0221=search
|
||||
KEYBOARD_KEY_0c00b8=ejectcd
|
||||
KEYBOARD_KEY_0c022d=zoomin
|
||||
KEYBOARD_KEY_0c022e=zoomout
|
||||
KEYBOARD_KEY_0c022d=up # zoomin
|
||||
KEYBOARD_KEY_0c022e=down # zoomout
|
||||
|
||||
# Logitech Presenter R400
|
||||
evdev:input:b0003v046DpC52D*
|
||||
@ -889,8 +894,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMEDIONNB:pnA555*:pvr*
|
||||
|
||||
# Microsoft Natural Ergonomic Keyboard 4000
|
||||
evdev:input:b0003v045Ep00DB*
|
||||
KEYBOARD_KEY_c022d=zoomin
|
||||
KEYBOARD_KEY_c022e=zoomout
|
||||
KEYBOARD_KEY_c022d=up # zoomin
|
||||
KEYBOARD_KEY_c022e=down # zoomout
|
||||
|
||||
###########################################################
|
||||
# Micro Star
|
||||
@ -925,6 +930,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U-100*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U100*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*N033:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*VR420*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*PR200*:pvr*
|
||||
KEYBOARD_KEY_f7=reserved
|
||||
KEYBOARD_KEY_f8=reserved
|
||||
|
||||
@ -1182,8 +1188,8 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-Z21*:pvr*
|
||||
KEYBOARD_KEY_00=brightnessdown # Fn+F5
|
||||
KEYBOARD_KEY_10=brightnessup # Fn+F6
|
||||
KEYBOARD_KEY_11=switchvideomode # Fn+F7
|
||||
KEYBOARD_KEY_12=zoomout
|
||||
KEYBOARD_KEY_14=zoomin
|
||||
KEYBOARD_KEY_12=down # zoomout
|
||||
KEYBOARD_KEY_14=up # zoomin
|
||||
KEYBOARD_KEY_15=suspend # Fn+F12
|
||||
KEYBOARD_KEY_17=prog1
|
||||
KEYBOARD_KEY_20=media
|
||||
@ -1193,8 +1199,8 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW250*:pvr*
|
||||
|
||||
evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:pvr*
|
||||
KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle)
|
||||
KEYBOARD_KEY_0d=zoomout # Fn+F9
|
||||
KEYBOARD_KEY_0e=zoomin # Fn+F10
|
||||
KEYBOARD_KEY_0d=down # Fn+F9 zoomout
|
||||
KEYBOARD_KEY_0e=up # Fn+F10 zoomin
|
||||
|
||||
###########################################################
|
||||
# Toshiba
|
||||
@ -1283,6 +1289,68 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote*6615WD:*
|
||||
KEYBOARD_KEY_ae=! # volume down
|
||||
KEYBOARD_KEY_b0=! # volume up
|
||||
|
||||
##########################################
|
||||
# Ideazon
|
||||
##########################################
|
||||
|
||||
# Ideazon Zboard Merc
|
||||
evdev:input:b0003v1038p0210*
|
||||
KEYBOARD_KEY_c0227=q
|
||||
KEYBOARD_KEY_c0223=w
|
||||
KEYBOARD_KEY_c0221=e
|
||||
KEYBOARD_KEY_c0224=a
|
||||
KEYBOARD_KEY_c0226=s
|
||||
KEYBOARD_KEY_c0225=d
|
||||
KEYBOARD_KEY_c0192=tab
|
||||
KEYBOARD_KEY_c018a=leftalt
|
||||
KEYBOARD_KEY_c022a=r
|
||||
KEYBOARD_KEY_c0183=f10
|
||||
KEYBOARD_KEY_70059=1
|
||||
KEYBOARD_KEY_7005a=2
|
||||
KEYBOARD_KEY_7005b=3
|
||||
KEYBOARD_KEY_7005c=4
|
||||
KEYBOARD_KEY_7005d=5
|
||||
KEYBOARD_KEY_7005e=6
|
||||
KEYBOARD_KEY_7005f=7
|
||||
KEYBOARD_KEY_70060=8
|
||||
KEYBOARD_KEY_70061=9
|
||||
KEYBOARD_KEY_70062=0
|
||||
KEYBOARD_KEY_70057=equal
|
||||
KEYBOARD_KEY_70077=capslock
|
||||
KEYBOARD_KEY_70054=leftshift
|
||||
KEYBOARD_KEY_70063=leftctrl
|
||||
KEYBOARD_KEY_7006b=t
|
||||
KEYBOARD_KEY_70067=f
|
||||
KEYBOARD_KEY_7006c=g
|
||||
KEYBOARD_KEY_7006d=v
|
||||
KEYBOARD_KEY_7006e=b
|
||||
KEYBOARD_KEY_70074=p
|
||||
KEYBOARD_KEY_7006f=c
|
||||
KEYBOARD_KEY_70055=space
|
||||
KEYBOARD_KEY_70076=f9
|
||||
KEYBOARD_KEY_70046=f11
|
||||
KEYBOARD_KEY_70079=f6
|
||||
|
||||
# Ideazon Zboard Fang
|
||||
evdev:input:b0003v1038p0310*
|
||||
KEYBOARD_KEY_70059=1
|
||||
KEYBOARD_KEY_7005b=3
|
||||
KEYBOARD_KEY_70040=equal
|
||||
KEYBOARD_KEY_70042=l
|
||||
KEYBOARD_KEY_7002b=tab
|
||||
KEYBOARD_KEY_7005e=capslock
|
||||
KEYBOARD_KEY_700e2=leftalt
|
||||
KEYBOARD_KEY_700e1=leftshift
|
||||
KEYBOARD_KEY_700e0=leftctrl
|
||||
KEYBOARD_KEY_70038=z
|
||||
KEYBOARD_KEY_7003e=t
|
||||
KEYBOARD_KEY_70015=r
|
||||
KEYBOARD_KEY_70010=g
|
||||
KEYBOARD_KEY_70050=n
|
||||
KEYBOARD_KEY_70030=f9
|
||||
KEYBOARD_KEY_7002f=f11
|
||||
KEYBOARD_KEY_70046=f6
|
||||
|
||||
###########################################################
|
||||
# Other
|
||||
###########################################################
|
||||
|
@ -66,12 +66,21 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100CHI*
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LA*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LB*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Axxo
|
||||
#########################################
|
||||
@ -82,7 +91,11 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnStandard:pnWCBT1011:*
|
||||
# Chuwi
|
||||
#########################################
|
||||
|
||||
# Chuwi Vi8 Plus
|
||||
# Chuwi Vi8 (CWI506)
|
||||
sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrCHUWI.D86JLBNR*:svnInsyde:pni86:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
# Chuwi Vi8 Plus (CWI519)
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
@ -90,6 +103,10 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnX1D3_C806N:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
# Chuwi Hi10 Pro
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svn*CHUWIINNOVATIONANDTECHNOLOGY*:pnHi10protablet:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
# Chuwi Hi13
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:svnChuwi*:pnHi13
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
@ -99,7 +116,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:svnChuwi*:pnHi13
|
||||
# match the entire dmi-alias, assuming that the use of a BOSC0200 +
|
||||
# bios-version + bios-date combo is unique
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/07/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Cube
|
||||
@ -154,6 +171,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrjumperx.T87.KFBNEE*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
# EZpad 6 Pro
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnJumper:pnEZpad:*:rvr.A006:*
|
||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Lamina
|
||||
#########################################
|
||||
@ -172,6 +193,14 @@ sensor:modalias:acpi:NCPE0388*:dmi:*:rnLenovoYOGA510-14IKB:*
|
||||
sensor:modalias:acpi:BOSC0200:BOSC0200:dmi:*ThinkPadYoga11e3rdGen*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
# Miix3-1030
|
||||
sensor:modalias:acpi:BMA250E*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-1030:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
# IdeaPad Miix 320
|
||||
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XF:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Peaq
|
||||
#########################################
|
||||
@ -200,10 +229,20 @@ sensor:modalias:acpi:BMA250E*:dmi:*:svnShenzhenPLOYER*:pnMOMO7W:*
|
||||
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1013:bd08/22/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Teclast
|
||||
#########################################
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX80Pro:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX98PlusII:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Trekstor
|
||||
#########################################
|
||||
sensor:modalias:acpi:BMA250*:dmi:*:bvrTREK.G.WI71C.JGBMRBA*:*:svnInsyde:pnST70416-6:*
|
||||
sensor:modalias:acpi:BMA250*:dmi:*:bvrTREK.G.WI71C.JGBMRBA*:*:svnTrekStor:pnSurfTabwintron7.0ST70416-6:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
|
@ -548,6 +548,10 @@ mouse:usb:v045ep07b1:name:Microsoft Microsoft® Nano Transceiver v1.0:
|
||||
mouse:bluetooth:v045ep0702:name:Microsoft Wireless Laser Mouse 8000:
|
||||
MOUSE_DPI=1000@1000
|
||||
|
||||
# Microsoft Sculpt Comfort Mouse
|
||||
mouse:bluetooth:v045ep07a2:name:Microsoft Sculpt Comfort Mouse:
|
||||
MOUSE_DPI=1000@2000
|
||||
|
||||
# Microsoft Arc Touch Mouse SE:
|
||||
mouse:bluetooth:v045ep07f3:name:Arc Touch Mouse SE:
|
||||
MOUSE_DPI=1000@2000
|
||||
|
@ -108,6 +108,9 @@ evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX220
|
||||
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230:*
|
||||
# Lenovo Thinkpad X230 tablet
|
||||
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230Tablet:*
|
||||
# Lenovo ThinkPad *30 series
|
||||
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??30:*
|
||||
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??30?:*
|
||||
# Lenovo Thinkpad *40 series
|
||||
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40:*
|
||||
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40?:*
|
||||
|
15404
hwdb/ma-large.txt
15404
hwdb/ma-large.txt
File diff suppressed because it is too large
Load Diff
1599
hwdb/ma-medium.txt
1599
hwdb/ma-medium.txt
File diff suppressed because it is too large
Load Diff
2329
hwdb/ma-small.txt
2329
hwdb/ma-small.txt
File diff suppressed because it is too large
Load Diff
282
hwdb/pci.ids
282
hwdb/pci.ids
@ -1,8 +1,8 @@
|
||||
#
|
||||
# List of PCI ID's
|
||||
#
|
||||
# Version: 2017.12.06
|
||||
# Date: 2017-12-06 03:15:02
|
||||
# Version: 2018.01.14
|
||||
# Date: 2018-01-14 03:15:02
|
||||
#
|
||||
# Maintained by Albert Pool, Martin Mares, and other volunteers from
|
||||
# the PCI ID Project at http://pci-ids.ucw.cz/.
|
||||
@ -42,6 +42,7 @@
|
||||
# nee nCipher
|
||||
0100 Thales e-Security
|
||||
0123 General Dynamics
|
||||
0128 Dell (wrong ID)
|
||||
# 018a is not LevelOne but there is a board misprogrammed
|
||||
018a LevelOne
|
||||
0106 FPC-0106TX misprogrammed [RTL81xx]
|
||||
@ -584,6 +585,7 @@
|
||||
0096 SAS3004 PCI-Express Fusion-MPT SAS-3
|
||||
0097 SAS3008 PCI-Express Fusion-MPT SAS-3
|
||||
1000 3090 SAS9311-8i
|
||||
1000 30a0 SAS9300-8e
|
||||
1000 30e0 SAS9300-8i
|
||||
1000 3130 SAS 9300-16i
|
||||
1028 1f45 HBA330 Adapter
|
||||
@ -749,7 +751,8 @@
|
||||
131b Kaveri [Radeon R4 Graphics]
|
||||
131c Kaveri [Radeon R7 Graphics]
|
||||
131d Kaveri [Radeon R6 Graphics]
|
||||
15dd Radeon Vega 8 Mobile
|
||||
15dd Vega [Radeon Vega 8 Mobile]
|
||||
15ff Vega [Radeon Vega 28 Mobile]
|
||||
1714 BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
|
||||
103c 168b ProBook 4535s
|
||||
3150 RV380/M24 [Mobility Radeon X600]
|
||||
@ -2267,6 +2270,7 @@
|
||||
67b9 Vesuvius [Radeon R9 295X2]
|
||||
67be Hawaii LE
|
||||
67c0 Ellesmere [Radeon Pro WX 7100]
|
||||
67c2 Ellesmere [Radeon Pro V7300X / V7350x2]
|
||||
67c4 Ellesmere [Radeon Pro WX 7100]
|
||||
1002 0336 Radeon Pro Duo
|
||||
1002 1336 Radeon Pro Duo
|
||||
@ -2274,6 +2278,7 @@
|
||||
67ca Ellesmere [Polaris10]
|
||||
67cc Ellesmere [Polaris10]
|
||||
67cf Ellesmere [Polaris10]
|
||||
67d0 Ellesmere [Radeon Pro V7300X / V7350x2]
|
||||
67df Ellesmere [Radeon RX 470/480/570/580]
|
||||
1002 0b37 Radeon RX 480
|
||||
1043 04a8 Radeon RX 480
|
||||
@ -2293,13 +2298,13 @@
|
||||
1787 a470 Radeon RX 470
|
||||
1787 a480 Radeon RX 480
|
||||
1da2 e353 Sapphire Radeon RX 580 Pulse 8GB
|
||||
1da2 e366 Radeon RX 570
|
||||
1da2 e366 Nitro+ Radeon RX 580 4GB
|
||||
67e0 Baffin [Polaris11]
|
||||
67e1 Baffin [Polaris11]
|
||||
67e3 Baffin [Radeon Pro WX 4100]
|
||||
67e8 Baffin [Polaris11]
|
||||
67e9 Baffin [Polaris11]
|
||||
67eb Baffin [Polaris11]
|
||||
67eb Baffin [Radeon Pro V5300X]
|
||||
67ef Baffin [Radeon RX 460/560D / Pro 450/455/460/560]
|
||||
106b 0160 Radeon Pro 460
|
||||
106b 0166 Radeon Pro 455
|
||||
@ -2343,6 +2348,7 @@
|
||||
1002 0b05 Radeon HD 8870 OEM
|
||||
174b 8b04 Radeon HD 8860
|
||||
6819 Pitcairn PRO [Radeon HD 7850 / R7 265 / R9 270 1024SP]
|
||||
1043 042c Radeon HD 7850
|
||||
1682 7269 Radeon R9 270 1024SP
|
||||
1682 9278 Radeon R9 270 1024SP
|
||||
174b a008 Radeon R9 270 1024SP
|
||||
@ -2505,8 +2511,14 @@
|
||||
144d c0c7 Radeon HD 7550M
|
||||
6842 Thames LE [Radeon HD 7000M Series]
|
||||
6843 Thames [Radeon HD 7670M]
|
||||
6860 Vega 10 [Radeon Instinct MI25]
|
||||
6861 Vega 10 XT [Radeon PRO WX 9100]
|
||||
6862 Vega 10 XT [Radeon PRO SSG]
|
||||
6863 Vega 10 XTX [Radeon Vega Frontier Edition]
|
||||
6864 Vega
|
||||
6867 Vega
|
||||
6868 Vega
|
||||
686c Vega 10 [Radeon Instinct MI25 MxGPU]
|
||||
687f Vega 10 XT [Radeon RX Vega 64]
|
||||
6888 Cypress XT [FirePro V8800]
|
||||
6889 Cypress PRO [FirePro V7800]
|
||||
@ -3015,11 +3027,12 @@
|
||||
148c 9380 Radeon R9 380
|
||||
# Make naming scheme consistent
|
||||
174b e308 Radeon R9 380 Nitro 4G D5
|
||||
694c Vega [Radeon RX Vega M]
|
||||
6980 Polaris12
|
||||
6981 Polaris12
|
||||
6985 Lexa XT [Radeon PRO WX 3100]
|
||||
6986 Polaris12
|
||||
6987 Polaris12
|
||||
6987 Lexa [Radeon E9171 MCM]
|
||||
6995 Lexa XT [Radeon PRO WX 2100]
|
||||
699f Lexa PRO [Radeon RX 550]
|
||||
148c 2380 Lexa XL [Radeon RX 550]
|
||||
@ -4041,6 +4054,11 @@
|
||||
1423 Family 15h (Models 30h-3fh) I/O Memory Management Unit
|
||||
1424 Family 15h (Models 30h-3fh) Processor Root Port
|
||||
1426 Family 15h (Models 30h-3fh) Processor Root Port
|
||||
142e Liverpool Processor Function 0
|
||||
142f Liverpool Processor Function 1
|
||||
1430 Liverpool Processor Function 2
|
||||
1431 Liverpool Processor Function 3
|
||||
1432 Liverpool Processor Function 4
|
||||
1436 Liverpool Processor Root Complex
|
||||
1437 Liverpool I/O Memory Management Unit
|
||||
1438 Liverpool Processor Root Port
|
||||
@ -5439,10 +5457,11 @@
|
||||
1028 014e PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D800)
|
||||
802e PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller
|
||||
1028 018d Inspiron 700m/710m
|
||||
8031 PCIxx21/x515 Cardbus Controller
|
||||
8031 PCIxx21/PCIxx11/PCIx515 PC Card Controller
|
||||
1025 0064 Extensa 3000 series laptop
|
||||
1025 0080 Aspire 5024WLMi
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
103c 308b MX6125
|
||||
8032 OHCI Compliant IEEE 1394 Host Controller
|
||||
@ -5451,19 +5470,22 @@
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 099c NX6110/NC6120
|
||||
103c 308b MX6125
|
||||
8033 PCIxx21 Integrated FlashMedia Controller
|
||||
8033 PCIxx21/PCIxx11 Flash Media Controller
|
||||
1025 0064 Extensa 3000 series laptop
|
||||
1025 0080 Aspire 5024WLMi
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
103c 308b MX6125
|
||||
8034 PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller
|
||||
8034 PCIxx21/PCIxx11 SD Host Controller
|
||||
1025 0080 Aspire 5024WLMi
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
103c 308b MX6125
|
||||
8035 PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller
|
||||
8035 PCIxx21/PCIxx11 Smart Card Controller
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
8036 PCI6515 Cardbus Controller
|
||||
8038 PCI6515 SmartCard Controller
|
||||
@ -5477,7 +5499,7 @@
|
||||
103c 30a1 NC2400
|
||||
103c 30a3 Compaq nw8440
|
||||
104d 902d VAIO VGN-NR120E
|
||||
803b 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
|
||||
803b PCIxx12 Flash Media Controller
|
||||
103c 309f nx9420
|
||||
103c 30a3 Compaq nw8440
|
||||
104d 8212 VAIO VGN-N21E
|
||||
@ -5650,6 +5672,22 @@
|
||||
90a3 Aeolia Memory (DDR3/SPM)
|
||||
90a4 Aeolia USB 3.0 xHCI Host Controller
|
||||
90bc SxS Pro+ memory card
|
||||
90c8 Belize ACPI
|
||||
90c9 Belize Ethernet Controller
|
||||
90ca Belize SATA AHCI Controller
|
||||
90cb Belize SD/MMC Host Controller
|
||||
90cc Belize PCI Express Glue and Miscellaneous Devices
|
||||
90cd Belize DMA Controller
|
||||
90ce Belize Memory (DDR3/SPM)
|
||||
90cf Belize USB 3.0 xHCI Host Controller
|
||||
90d7 Baikal ACPI
|
||||
90d8 Baikal Ethernet Controller
|
||||
90d9 Baikal SATA AHCI Controller
|
||||
90da Baikal SD/MMC Host Controller
|
||||
90db Baikal PCI Express Glue and Miscellaneous Devices
|
||||
90dc Baikal DMA Controller
|
||||
90dd Baikal Memory (DDR3/SPM)
|
||||
90de Baikal USB 3.0 xHCI Host Controller
|
||||
104e Oak Technology, Inc
|
||||
0017 OTI-64017
|
||||
0107 OTI-107 [Spitfire]
|
||||
@ -6230,6 +6268,10 @@
|
||||
8070 FastLinQ QL41000 Series 10/25/40/50GbE Controller
|
||||
1077 0001 10GE 2P QL41162HxRJ-DE Adapter
|
||||
1077 0002 10GE 2P QL41112HxCU-DE Adapter
|
||||
1077 0005 QLogic 4x10GE QL41164HMRJ CNA
|
||||
1077 0006 QLogic 4x10GE QL41164HMCU CNA
|
||||
1077 0007 QLogic 2x1GE+2x10GE QL41264HMCU CNA
|
||||
1077 0009 QLogic 2x1GE+2x10GE QL41162HMRJ CNA
|
||||
1077 000b 25GE 2P QL41262HxCU-DE Adapter
|
||||
1077 0011 FastLinQ QL41212H 25GbE Adapter
|
||||
1077 0012 FastLinQ QL41112H 10GbE Adapter
|
||||
@ -6240,19 +6282,34 @@
|
||||
8080 FastLinQ QL41000 Series 10/25/40/50GbE Controller (FCoE)
|
||||
1077 0001 10GE 2P QL41162HxRJ-DE Adapter
|
||||
1077 0002 10GE 2P QL41112HxCU-DE Adapter
|
||||
1077 0005 QLogic 4x10GE QL41164HMRJ CNA
|
||||
1077 0006 QLogic 4x10GE QL41164HMCU CNA
|
||||
1077 0007 QLogic 2x1GE+2x10GE QL41264HMCU CNA
|
||||
1077 0009 QLogic 2x1GE+2x10GE QL41162HMRJ CNA
|
||||
1077 000b 25GE 2P QL41262HxCU-DE Adapter
|
||||
1077 000c QLogic 2x25GE QL41262HMCU CNA
|
||||
1077 000d FastLinQ QL41262H 25GbE FCoE Adapter
|
||||
1077 000e FastLinQ QL41162H 10GbE FCoE Adapter
|
||||
8084 FastLinQ QL41000 Series 10/25/40/50GbE Controller (iSCSI)
|
||||
1077 0001 10GE 2P QL41162HxRJ-DE Adapter
|
||||
1077 0002 10GE 2P QL41112HxCU-DE Adapter
|
||||
1077 0005 QLogic 4x10GE QL41164HMRJ CNA
|
||||
1077 0006 QLogic 4x10GE QL41164HMCU CNA
|
||||
1077 0007 QLogic 2x25GE QL41262HMCU CNA
|
||||
1077 0009 QLogic 2x1GE+2x10GE QL41162HMRJ CNA
|
||||
1077 000b 25GE 2P QL41262HxCU-DE Adapter
|
||||
1077 000c QLogic 2x25GE QL41262HMCU CNA
|
||||
1077 000d FastLinQ QL41262H 25GbE iSCSI Adapter
|
||||
1077 000e FastLinQ QL41162H 10GbE iSCSI Adapter
|
||||
8090 FastLinQ QL41000 Series Gigabit Ethernet Controller (SR-IOV VF)
|
||||
1077 0001 25GE 2P QL41262HxCU-DE Adapter
|
||||
1077 0002 10GE 2P QL41112HxCU-DE Adapter
|
||||
1077 0005 QLogic 4x10GE QL41164HMRJ CNA
|
||||
1077 0006 QLogic 4x10GE QL41164HMCU CNA
|
||||
1077 0007 QLogic 2x1GE+2x10GE QL41264HMCU CNA
|
||||
1077 0009 QLogic 2x1GE+2x10GE QL41162HMRJ CNA
|
||||
1077 000b 25GE 2P QL41262HxCU-DE Adapter
|
||||
1077 000c QLogic 2x25GE QL41262HMCU CNA
|
||||
1077 000d FastLinQ QL41262H 25GbE FCoE Adapter (SR-IOV VF)
|
||||
1077 000e FastLinQ QL41162H 10GbE iSCSI Adapter (SR-IOV VF)
|
||||
1077 0011 FastLinQ QL41212H 25GbE Adapter (SR-IOV VF)
|
||||
@ -10834,11 +10891,12 @@
|
||||
13d8 GM204M [GeForce GTX 970M]
|
||||
13d9 GM204M [GeForce GTX 965M]
|
||||
13da GM204M [GeForce GTX 980 Mobile]
|
||||
13e7 GM204 [GeForce GTX 980 Engineering Sample]
|
||||
13e7 GM204GL [GeForce GTX 980 Engineering Sample]
|
||||
13f0 GM204GL [Quadro M5000]
|
||||
13f1 GM204GL [Quadro M4000]
|
||||
13f2 GM204GL [Tesla M60]
|
||||
13f3 GM204GL [Tesla M6]
|
||||
10de 1184 GRID M6-8Q
|
||||
13f8 GM204GLM [Quadro M5000M / M5000 SE]
|
||||
13f9 GM204GLM [Quadro M4000M]
|
||||
13fa GM204GLM [Quadro M3000M]
|
||||
@ -10902,6 +10960,7 @@
|
||||
1bb7 GP104GLM [Quadro P4000 Mobile]
|
||||
1462 11e9 Quadro P4000 Max-Q
|
||||
1bb8 GP104GLM [Quadro P3000 Mobile]
|
||||
1bc7 GP104 [P104-101]
|
||||
1be0 GP104M [GeForce GTX 1080 Mobile]
|
||||
1028 07c0 GeForce GTX 1080 Max-Q
|
||||
1458 355b GeForce GTX 1080 Max-Q
|
||||
@ -10910,6 +10969,8 @@
|
||||
1c01 GP106
|
||||
1c02 GP106 [GeForce GTX 1060 3GB]
|
||||
1c03 GP106 [GeForce GTX 1060 6GB]
|
||||
1c04 GP106 [GeForce GTX 1060 5GB]
|
||||
1c06 GP106 [GeForce GTX 1060 6GB Rev. 2]
|
||||
1c07 GP106 [P106-100]
|
||||
1c09 GP106 [P106-090]
|
||||
1c20 GP106M [GeForce GTX 1060 Mobile]
|
||||
@ -10937,7 +10998,8 @@
|
||||
1cb3 GP107GL [Quadro P400]
|
||||
1d01 GP108 [GeForce GT 1030]
|
||||
1d10 GP108M [GeForce MX150]
|
||||
1d81 GV100
|
||||
1d33 GP108GL [Quadro P500]
|
||||
1d81 GV100 [TITAN V]
|
||||
1db1 GV100 [Tesla V100 SXM2]
|
||||
1db4 GV100 [Tesla V100 PCIe]
|
||||
10df Emulex Corporation
|
||||
@ -10965,6 +11027,7 @@
|
||||
e180 Proteus-X: LightPulse IOV Fibre Channel Host Adapter
|
||||
e200 LightPulse LPe16002
|
||||
1014 03f1 PCIe2 16 Gb 2-port Fibre Channel Adapter (FC EL5B; CCIN 577F)
|
||||
10df e282 Flex System FC5054 4-port 16Gb FC Adapter
|
||||
e208 LightPulse 16Gb Fibre Channel Host Adapter (Lancer-VF)
|
||||
e220 OneConnect NIC (Lancer)
|
||||
17aa 1054 ThinkServer LPm16002B-M6-L AnyFabric
|
||||
@ -11139,13 +11202,14 @@
|
||||
8129 RTL-8129
|
||||
10ec 8129 RT8129 Fast Ethernet Adapter
|
||||
11ec 8129 RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)
|
||||
8136 RTL8101/2/6E PCI Express Fast Ethernet controller
|
||||
8136 RTL810xE PCI Express Fast Ethernet controller
|
||||
103c 1985 RTL8106E on Pavilion 17-e163sg Notebook PC
|
||||
103c 2a8c Compaq 500B Microtower
|
||||
103c 2ab1 Pavilion p6774
|
||||
103c 30cc Pavilion dv6700
|
||||
1179 ff64 RTL8102E PCI-E Fast Ethernet NIC
|
||||
17c0 1053 RTL8101e Medion WIM 2210 Notebook PC [MD96850]
|
||||
8137 RTL8104E PCIe Fast Ethernet Controller
|
||||
8138 RT8139 (B/C) Cardbus Fast Ethernet Adapter
|
||||
10ec 8138 RT8139 (B/C) Fast Ethernet Adapter
|
||||
8139 RTL-8100/8101L/8139 PCI Fast Ethernet Adapter
|
||||
@ -14066,20 +14130,49 @@
|
||||
0043 RocketPort Infinity 16port, External Interface
|
||||
0044 RocketPort Infinity Quad, 4port, DB
|
||||
0045 RocketPort Infinity Octa, 8port, DB
|
||||
0046 RocketPort INFINITY 4-port w/external I/F
|
||||
0047 RocketPort Infinity 4port, RJ45
|
||||
0048 RocketPort INFINITY 4J (4-port) w/RJ45 connectors
|
||||
004a RocketPort INFINITY Plus 4-port
|
||||
004b RocketPort INFINITY Plus 8-port
|
||||
004c RocketModem INFINITY III 8-port
|
||||
004d RocketModem INFINITY III 4-port
|
||||
004e RocketPort INFINITY Plus 2-port
|
||||
004f RocketPort Infinity 2port, SMPTE
|
||||
0050 RocketPort INFINITY Plus 4-port RJ45
|
||||
0051 RocketPort INFINITY Plus 8-port RJ11
|
||||
0052 RocketPort Infinity Octa, 8port, SMPTE
|
||||
0801 RocketPort UPCI 32 port w/external I/F
|
||||
0802 RocketPort UPCI 8 port w/external I/F
|
||||
0803 RocketPort UPCI 16 port w/external I/F
|
||||
0805 RocketPort UPCI 8 port w/octa cable
|
||||
080c RocketModem III 8 port
|
||||
080d RocketModem III 4 port
|
||||
0810 RocketPort UPCI Plus 4 port RS232
|
||||
0811 RocketPort UPCI Plus 8 port RS232
|
||||
0812 RocketPort UPCI Plus 8 port RS422
|
||||
0060 RocketPort EXPRESS 8-port w/Octa Cable
|
||||
0061 RocketPort EXPRESS 32-port w/external I/F
|
||||
0062 RocketPort EXPRESS 8-Port w/external I/F
|
||||
0063 RocketPort EXPRESS 16-port w/external I/F
|
||||
0064 RocketPort EXPRESS 4-port w/Quad Cable
|
||||
0065 RocketPort EXPRESS 8-port w/Octa Cable
|
||||
0066 RocketPort EXPRESS 4-port w/external I/F
|
||||
0067 RocketPort EXPRESS 4J (4-port) w/RJ45 connectors
|
||||
0068 RocketPort EXPRESS 8J (8-port) w/RJ11 connectors
|
||||
006f RocketPort EXPRESS SMPTE 2-port
|
||||
0072 RocketPort EXPRESS SMPTE 8-port w/external I/F
|
||||
0801 RocketPort uPCI 32-port w/external I/F
|
||||
0802 RocketPort uPCI 8-port w/external I/F
|
||||
0803 RocketPort uPCI 16-port w/external I/F
|
||||
0805 RocketPort uPCI 8-port w/Octa Cable
|
||||
080b RocketPort Plus uPCI 8-port w/Octa Cable
|
||||
080c RocketModem III 8-port
|
||||
080d RcoketModem III 4-port
|
||||
080e RocketPort uPCI 2-port RS232 w/DB9 connectors
|
||||
080f RocketPort uPCI SMPTE 2-port
|
||||
0810 RocketPort Plus uPCI 4J (4-port) w/RJ45 connectors
|
||||
0811 RocketPort Plus uPCI 8J (8-port) w/RJ11 connectors
|
||||
0812 RocketPort Plus uPCI 422 8-port
|
||||
0813 RocketModem IV uPCI 8-port
|
||||
0814 RocketModem IV uPCI 4-port
|
||||
0903 RocketPort Compact PCI 16 port w/external I/F
|
||||
8015 RocketPort 4-port UART 16954
|
||||
# 16954 UART
|
||||
8015 RocketPort 550 4-port
|
||||
8805 RocketPort uPCI 4-port w/Quad Cable
|
||||
880b RocketPort Plus uPCI 4-port w/Quad Cable
|
||||
8812 RocketPort Plus uPCI 4-port RS422 w/Quad Cable
|
||||
11ff Scion Corporation
|
||||
0003 AG-5
|
||||
1200 CSS Corporation
|
||||
@ -15642,6 +15735,7 @@
|
||||
0252 XR17V252 Dual UART PCI controller
|
||||
0254 XR17V254 Quad UART PCI controller
|
||||
0258 XR17V258 Octal UART PCI controller
|
||||
0352 XR17V3521 Dual PCIe UART
|
||||
13a9 Siemens Medical Systems, Ultrasound Group
|
||||
13aa Broadband Networks Inc
|
||||
13ab Arcom Control Systems Ltd
|
||||
@ -16302,6 +16396,7 @@
|
||||
50a9 T580-50A9 Unified Wire Ethernet Controller
|
||||
50aa T580-50AA Unified Wire Ethernet Controller
|
||||
50ab T520-50AB Unified Wire Ethernet Controller
|
||||
50ac T540-50AC Unified Wire Ethernet Controller
|
||||
5401 T520-CR Unified Wire Ethernet Controller
|
||||
5402 T522-CR Unified Wire Ethernet Controller
|
||||
5403 T540-CR Unified Wire Ethernet Controller
|
||||
@ -16364,6 +16459,7 @@
|
||||
54a9 T580-50A9 Unified Wire Ethernet Controller
|
||||
54aa T580-50AA Unified Wire Ethernet Controller
|
||||
54ab T520-50AB Unified Wire Ethernet Controller
|
||||
54ac T540-50AC Unified Wire Ethernet Controller
|
||||
5501 T520-CR Unified Wire Storage Controller
|
||||
5502 T522-CR Unified Wire Storage Controller
|
||||
5503 T540-CR Unified Wire Storage Controller
|
||||
@ -16424,6 +16520,9 @@
|
||||
55a7 T580-50A7 Unified Wire Storage Controller
|
||||
55a8 T580-50A8 Unified Wire Storage Controller
|
||||
55a9 T580-50A9 Unified Wire Storage Controller
|
||||
55aa T580-50AA Unified Wire Storage Controller
|
||||
55ab T520-50AB Unified Wire Storage Controller
|
||||
55ac T540-50AC Unified Wire Storage Controller
|
||||
5601 T520-CR Unified Wire Storage Controller
|
||||
5602 T522-CR Unified Wire Storage Controller
|
||||
5603 T540-CR Unified Wire Storage Controller
|
||||
@ -16486,6 +16585,7 @@
|
||||
56a9 T580-50A9 Unified Wire Storage Controller
|
||||
56aa T580-50AA Unified Wire Storage Controller
|
||||
56ab T520-50AB Unified Wire Storage Controller
|
||||
56ac T540-50AC Unified Wire Storage Controller
|
||||
5701 T520-CR Unified Wire Ethernet Controller
|
||||
5702 T522-CR Unified Wire Ethernet Controller
|
||||
5703 T540-CR Unified Wire Ethernet Controller
|
||||
@ -16587,6 +16687,7 @@
|
||||
58a9 T580-50A9 Unified Wire Ethernet Controller [VF]
|
||||
58aa T580-50AA Unified Wire Ethernet Controller [VF]
|
||||
58ab T520-50AB Unified Wire Ethernet Controller [VF]
|
||||
58ac T540-50AC Unified Wire Ethernet Controller [VF]
|
||||
6001 T6225-CR Unified Wire Ethernet Controller
|
||||
6002 T6225-SO-CR Unified Wire Ethernet Controller
|
||||
6003 T6425-CR Unified Wire Ethernet Controller
|
||||
@ -16607,6 +16708,7 @@
|
||||
6084 T64100-6084 Unified Wire Ethernet Controller
|
||||
6085 T6240-6085 Unified Wire Ethernet Controller
|
||||
6086 T6225-6086 Unified Wire Ethernet Controller
|
||||
6087 T6225-6087 Unified Wire Ethernet Controller
|
||||
6401 T6225-CR Unified Wire Ethernet Controller
|
||||
6402 T6225-SO-CR Unified Wire Ethernet Controller
|
||||
6403 T6425-CR Unified Wire Ethernet Controller
|
||||
@ -16627,6 +16729,7 @@
|
||||
6484 T64100-6084 Unified Wire Ethernet Controller
|
||||
6485 T6240-6085 Unified Wire Ethernet Controller
|
||||
6486 T6225-6086 Unified Wire Ethernet Controller
|
||||
6487 T6225-6087 Unified Wire Ethernet Controller
|
||||
6501 T6225-CR Unified Wire Storage Controller
|
||||
6502 T6225-SO-CR Unified Wire Storage Controller
|
||||
6503 T6425-CR Unified Wire Storage Controller
|
||||
@ -16647,6 +16750,7 @@
|
||||
6584 T64100-6084 Unified Wire Storage Controller
|
||||
6585 T6240-6085 Unified Wire Storage Controller
|
||||
6586 T6225-6086 Unified Wire Storage Controller
|
||||
6587 T6225-6087 Unified Wire Storage Controller
|
||||
6601 T6225-CR Unified Wire Storage Controller
|
||||
6602 T6225-SO-CR Unified Wire Storage Controller
|
||||
6603 T6425-CR Unified Wire Storage Controller
|
||||
@ -16667,6 +16771,7 @@
|
||||
6684 T64100-6084 Unified Wire Storage Controller
|
||||
6685 T6240-6085 Unified Wire Storage Controller
|
||||
6686 T6225-6086 Unified Wire Storage Controller
|
||||
6687 T6225-6087 Unified Wire Storage Controller
|
||||
6801 T6225-CR Unified Wire Ethernet Controller [VF]
|
||||
6802 T6225-SO-CR Unified Wire Ethernet Controller [VF]
|
||||
6803 T6425-CR Unified Wire Ethernet Controller [VF]
|
||||
@ -16687,6 +16792,7 @@
|
||||
6884 T64100-6084 Unified Wire Ethernet Controller [VF]
|
||||
6885 T6240-6085 Unified Wire Ethernet Controller [VF]
|
||||
6886 T6225-6086 Unified Wire Ethernet Controller [VF]
|
||||
6887 T6225-6087 Unified Wire Ethernet Controller [VF]
|
||||
a000 PE10K Unified Wire Ethernet Controller
|
||||
1426 Storage Technology Corp.
|
||||
1427 Better On-Line Solutions
|
||||
@ -17198,6 +17304,7 @@
|
||||
103c 169d Ethernet 1Gb 4-port 331FLR Adapter
|
||||
103c 22be Ethernet 1Gb 4-port 331i Adapter
|
||||
103c 3383 Ethernet 1Gb 4-port 331T Adapter
|
||||
14e4 1904 4-port 1Gb Ethernet Adapter
|
||||
1659 NetXtreme BCM5721 Gigabit Ethernet PCI Express
|
||||
1014 02c6 eServer xSeries server mainboard
|
||||
1028 01e6 PowerEdge 860
|
||||
@ -17269,6 +17376,7 @@
|
||||
1014 0577 ThinkPad X41 / Z60t
|
||||
103c 0934 nx8220
|
||||
103c 0940 Compaq nw8240 Mobile Workstation
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
17aa 2081 ThinkPad R60e
|
||||
167e NetXtreme BCM5751F Fast Ethernet PCI Express
|
||||
167f NetLink BCM5787F Fast Ethernet PCI Express
|
||||
@ -18253,6 +18361,8 @@
|
||||
1556 PLDA
|
||||
1100 PCI Express Core Reference Design
|
||||
110f PCI Express Core Reference Design Virtual Function
|
||||
1110 XpressRich Reference Design
|
||||
1113 XpressSwitch
|
||||
1557 MEDIASTAR Co Ltd
|
||||
1558 CLEVO/KAPOK Computer
|
||||
1559 SI LOGIC Ltd
|
||||
@ -18408,6 +18518,7 @@
|
||||
020b MT27710 Family [ConnectX-4 Lx Flash Recovery]
|
||||
020d MT28800 Family [ConnectX-5 Flash Recovery]
|
||||
020f MT28908A0 Family [ConnectX-6 Flash Recovery]
|
||||
0210 MT28908A0 Family [ConnectX-6 Secure Flash Recovery]
|
||||
0211 MT416842 Family [BlueField SoC Flash Recovery]
|
||||
# reserved for RM#105916
|
||||
024e MT53100 [Spectrum-2, Flash recovery mode]
|
||||
@ -18415,9 +18526,11 @@
|
||||
024f MT53100 [Spectrum-2, Flash recovery mode]
|
||||
0262 MT27710 [ConnectX-4 Lx Programmable] EN
|
||||
0263 MT27710 [ConnectX-4 Lx Programmable Virtual Function] EN
|
||||
0264 Innova-2 Flex Burn image
|
||||
0281 NPS-600 Flash Recovery
|
||||
1002 MT25400 Family [ConnectX-2 Virtual Function]
|
||||
1003 MT27500 Family [ConnectX-3]
|
||||
1014 04b5 PCIe3 40GbE RoCE Converged Host Bus Adapter for Power
|
||||
103c 1777 InfiniBand FDR/EN 10/40Gb Dual Port 544FLR-QSFP Adapter (Rev Cx)
|
||||
103c 17c9 Infiniband QDR/Ethernet 10Gb 2-port 544i Adapter
|
||||
103c 18ce InfiniBand QDR/EN 10Gb Dual Port 544M Adapter
|
||||
@ -18463,6 +18576,7 @@
|
||||
1011 MT27600 [Connect-IB]
|
||||
1012 MT27600 Family [Connect-IB Virtual Function]
|
||||
1013 MT27700 Family [ConnectX-4]
|
||||
1014 04f7 PCIe3 2-port 100 GbE (NIC and RoCE) QSFP28 Adapter for Power
|
||||
15b3 0003 Mellanox Technologies ConnectX-4 Stand-up single-port 40GbE MCX413A-BCAT
|
||||
15b3 0005 Mellanox Technologies ConnectX-4 Stand-up single-port 40GbE MCX415A-BCAT
|
||||
15b3 0006 MCX416A-BCAT, ConnectX-4 EN, 40/56GbE 2P, PCIe3.0 x16
|
||||
@ -18472,6 +18586,7 @@
|
||||
15b3 0050 ConnectX-4 100 GbE Dual Port QSFP28 Adapter
|
||||
1014 MT27700 Family [ConnectX-4 Virtual Function]
|
||||
1015 MT27710 Family [ConnectX-4 Lx]
|
||||
15b3 0004 ConnectX-4 Lx Stand-up dual-port 10GbE MCX4121A-XCAT
|
||||
15b3 0005 Mellanox Technologies ConnectX-4 Lx Stand-up single-port 40GbE MCX4131A-BCAT
|
||||
15b3 0016 ConnectX-4 Lx 25 GbE Dual Port SFP28 Adapter
|
||||
15b3 0020 MCX4411A-ACQN, ConnectX-4 Lx EN OCP, 1x25Gb
|
||||
@ -18507,6 +18622,7 @@
|
||||
6372 MT25408 [ConnectX EN 10GigE 10GBaseT, PCIe 2.0 2.5GT/s]
|
||||
6732 MT26418 [ConnectX VPI PCIe 2.0 5GT/s - IB DDR / 10GigE]
|
||||
673c MT26428 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE]
|
||||
1014 0415 PCIe2 2-port 4X InfiniBand QDR Adapter for Power
|
||||
1014 0487 GX++ 1-port 4X IB QDR Adapter for Power 795
|
||||
103c 1782 4X QDR InfiniBand Mezzanine HCA for c-Class BladeSystem
|
||||
15b3 0021 HP InfiniBand 4X QDR CX-2 PCI-e G2 Dual Port HCA
|
||||
@ -18529,6 +18645,7 @@
|
||||
7121 NPS-600 configuration and management interface
|
||||
7122 NPS-600 network interface PF
|
||||
7123 NPS-600 network interface VF
|
||||
8200 Innova-2 Flex Shell Logic
|
||||
a2d0 MT416842 BlueField SoC Crypto enabled
|
||||
a2d1 MT416842 BlueField SoC Crypto disabled
|
||||
a2d2 MT416842 BlueField integrated ConnectX-5 network controller
|
||||
@ -18565,6 +18682,7 @@
|
||||
0015 ZBox
|
||||
15b7 Sandisk Corp
|
||||
2001 Skyhawk Series NVME SSD
|
||||
5001 WD Black NVMe SSD
|
||||
15b8 ADDI-DATA GmbH
|
||||
1001 APCI1516 SP controller (16 digi outputs)
|
||||
1003 APCI1032 SP controller (32 digi inputs w/ opto coupler)
|
||||
@ -18713,6 +18831,11 @@
|
||||
1006 Format synchronizer, model 10500
|
||||
1007 Format synchronizer, model 21000
|
||||
2002 Fast Universal Data Output
|
||||
3100 IO31000 Frame Synchronizer and I/O
|
||||
3200 IO32000 Frame Synchronizer and I/O
|
||||
4002 High Rate Demodulator
|
||||
5001 High Rate FEC
|
||||
6001 High Rate Demodulator and FEC
|
||||
1631 Packard Bell B.V.
|
||||
1638 Standard Microsystems Corp [SMC]
|
||||
1100 SMC2602W EZConnect / Addtron AWA-100 / Eumitcom PCI WL11000
|
||||
@ -19019,6 +19142,7 @@
|
||||
0777 4005 SR71-15 802.11an Mini PCI Adapter
|
||||
1186 3a7a DWA-552 802.11n Xtreme N Desktop Adapter (rev A2)
|
||||
1186 3a7d DWA-552 802.11n Xtreme N Desktop Adapter (rev A3)
|
||||
168c 0029 AR922X Wireless Network Adapter
|
||||
168c 2096 Compex WLM200NX / Wistron DNMA-92
|
||||
002a AR928X Wireless Network Adapter (PCI-Express)
|
||||
0777 4f05 SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280]
|
||||
@ -19203,17 +19327,23 @@
|
||||
7012 AP440-2: 32-Channel Isolated Digital Input Module
|
||||
7013 AP440-3: 32-Channel Isolated Digital Input Module
|
||||
7014 AP445: 32-Channel Isolated Digital Output Module
|
||||
7015 AP471 48-Channel TTL Level Digital Input/Output Module
|
||||
7016 AP470 48-Channel TTL Level Digital Input/Output Module
|
||||
7017 AP323 16-bit, 20 or 40 Channel Analog Input Module
|
||||
7018 AP408: 32-Channel Digital I/O Module
|
||||
7019 AP341 14-bit, 16-Channel Simultaneous Conversion Analog Input Module
|
||||
701a AP220-16 12-Bit, 16-Channel Analog Output Module
|
||||
701b AP231-16 16-Bit, 16-Channel Analog Output Module
|
||||
701c AP225 12-Bit, 16-Channel Analog Output Module with Waveform Memory
|
||||
701d AP235 16-Bit, 16-Channel Analog Output Module with Waveform Memory
|
||||
7021 APA7-201 Reconfigurable Artix-7 FPGA module 48 TTL channels
|
||||
7022 APA7-202 Reconfigurable Artix-7 FPGA module 24 RS485 channels
|
||||
7023 APA7-203 Reconfigurable Artix-7 FPGA module 24 TTL & 12 RS485 channels
|
||||
7024 APA7-204 Reconfigurable Artix-7 FPGA module 24 LVDS channels
|
||||
7027 AP418 16-Channel High Voltage Digital Input/Output Module
|
||||
7029 AP342 14-bit, 12-Channel Isolated Simultaneous Conversion Analog Input Module
|
||||
702a AP226 12-Bit, 8-Channel Isolated Analog Output Module
|
||||
702b AP236 16-Bit, 8-Channel Isolated Analog Output Module
|
||||
7042 AP482 Counter Timer Module with TTL Level Input/Output
|
||||
7043 AP483 Counter Timer Module with TTL Level and RS422 Input/Output
|
||||
7044 AP484 Counter Timer Module with RS422 Input/Output
|
||||
@ -20070,11 +20200,15 @@
|
||||
1924 8019 SFN8542-R2 8000 Series 10/40G Adapter
|
||||
1924 801a SFN8722-R1 8000 Series OCP 10G Adapter
|
||||
1924 801b SFN8522-R3 8000 Series 10G Adapter
|
||||
0b03 SFC9250 10/25/40/50/100G Ethernet Controller
|
||||
1924 801d x2522-R1 2000 Series 10/25G Adapter
|
||||
1924 801e x2542-R1 2000 Series 40/100G Adapter
|
||||
1803 SFC9020 10G Ethernet Controller (Virtual Function)
|
||||
1813 SFL9021 10GBASE-T Ethernet Controller (Virtual Function)
|
||||
1903 SFC9120 10G Ethernet Controller (Virtual Function)
|
||||
1923 SFC9140 10/40G Ethernet Controller (Virtual Function)
|
||||
1a03 SFC9220 10/40G Ethernet Controller (Virtual Function)
|
||||
1b03 SFC9250 10/25/40/50/100G Ethernet Controller (Virtual Function)
|
||||
6703 SFC4000 rev A iSCSI/Onload [Solarstorm]
|
||||
10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard]
|
||||
10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard]
|
||||
@ -20095,6 +20229,7 @@
|
||||
000c Qualcomm MSM6275 UMTS chip
|
||||
1932 DiBcom
|
||||
193c MAXIM Integrated Products
|
||||
193d Hangzhou H3C Technologies Co., Ltd.
|
||||
193f AHA Products Group
|
||||
0001 AHA36x-PCIX
|
||||
0360 AHA360-PCIe
|
||||
@ -20737,6 +20872,8 @@
|
||||
1bbf Maxeler Technologies Ltd.
|
||||
0003 MAX3
|
||||
0004 MAX4
|
||||
1bcf NEC Corporation
|
||||
001c Vector Engine 1.0
|
||||
1bd0 Astronics Corporation
|
||||
1001 Mx5 PMC/XMC Databus Interface Card
|
||||
1002 PM1553-5 (PC/104+ MIL-STD-1553 Interface Card)
|
||||
@ -20920,7 +21057,13 @@
|
||||
1d65 Imagine Communications Corp.
|
||||
04de Taurus/McKinley
|
||||
1d6a Aquantia Corp.
|
||||
07b1 AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
|
||||
08b1 AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
|
||||
11b1 AQC111 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
|
||||
12b1 AQC112 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
|
||||
87b1 AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
|
||||
d107 AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
|
||||
d108 AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
|
||||
1d6c Atomic Rules LLC
|
||||
1001 A5PL-E1
|
||||
1002 A5PL-E7
|
||||
@ -20943,6 +21086,36 @@
|
||||
1d7c Aerotech, Inc.
|
||||
1d87 Fuzhou Rockchip Electronics Co., Ltd
|
||||
1d8f Enyx
|
||||
1d94 Chengdu Higon IC Design Co.Ltd
|
||||
1450 Root Complex
|
||||
1451 I/O Memory Management Unit
|
||||
1452 PCIe Dummy Host Bridge
|
||||
1453 PCIE GPP Bridge
|
||||
1454 Internal PCIe GPP Bridge 0 to Bus B
|
||||
1455 PCIe Dummy Function
|
||||
1456 PSPCCP Command DMA Processor
|
||||
1458 10 Gb Ethernet Controller Port 0/Port1
|
||||
1459 10 Gb Ethernet Controller Port 2/Port3
|
||||
145a PCIe Dummy Function
|
||||
145b PCIE Non-Transparent Bridge
|
||||
145c USB3 XHCI
|
||||
145d Switch upstream in PCIe
|
||||
145e Switch downstream in PCIe
|
||||
145f USB 3.0 Host controller
|
||||
1460 Data Fabric: Device 18h; Function 0
|
||||
1461 Data Fabric: Device 18h; Function 1
|
||||
1462 Data Fabric: Device 18h; Function 2
|
||||
1463 Data Fabric: Device 18h; Function 3
|
||||
1464 Data Fabric: Device 18h; Function 4
|
||||
1465 Data Fabric: Device 18h; Function 5
|
||||
1466 Data Fabric: Device 18h; Function 6
|
||||
1467 Data Fabric: Device 18h; Function 7
|
||||
1468 NTBCCP
|
||||
7901 FCH SATA Controller [AHCI mode]
|
||||
7904 FCH SATA Controller [AHCI mode]
|
||||
7906 FCH SD Flash Controller
|
||||
790b FCH SMBus Controller
|
||||
790e FCH LPC Bridge
|
||||
1d95 Graphcore Ltd
|
||||
1da1 Teko Telecom S.r.l.
|
||||
1da2 Sapphire Technology Limited
|
||||
@ -20954,6 +21127,16 @@
|
||||
1de5 Eideticom, Inc
|
||||
1000 IO Memory Controller
|
||||
2000 NoLoad Hardware Development Kit
|
||||
1def Ampere Computing, LLC
|
||||
e005 Skylark PCI Express Root Port 0 [X-Gene 3]
|
||||
e006 Skylark PCI Express Root Port 1 [X-Gene 3]
|
||||
e007 Skylark PCI Express Root Port 2 [X-Gene 3]
|
||||
e008 Skylark PCI Express Root Port 3 [X-Gene 3]
|
||||
e009 Skylark PCI Express Root Port 4 [X-Gene 3]
|
||||
e00a Skylark PCI Express Root Port 5 [X-Gene 3]
|
||||
e00b Skylark PCI Express Root Port 6 [X-Gene 3]
|
||||
e00c Skylark PCI Express Root Port 7 [X-Gene 3]
|
||||
1df7 opencpi.org
|
||||
# nee Tumsan Oy
|
||||
1fc0 Ascom (Finland) Oy
|
||||
0300 E2200 Dual E1/Rawpipe Card
|
||||
@ -21668,6 +21851,8 @@
|
||||
3000 HD-3000
|
||||
5500 HD5500 HDTV
|
||||
7284 HT OMEGA Inc.
|
||||
7357 IOxOS Technologies SA
|
||||
7910 7910 [Althea]
|
||||
7401 EndRun Technologies
|
||||
e100 PTP3100 PCIe PTP Slave Clock
|
||||
7470 TP-LINK Technologies Co., Ltd.
|
||||
@ -23659,8 +23844,9 @@
|
||||
15c7 Ethernet Connection X553 1GbE
|
||||
15c8 Ethernet Connection X553/X557-AT 10GBASE-T
|
||||
15ce Ethernet Connection X553 10 GbE SFP+
|
||||
15d0 Ethernet SDI Adapter FM10420-100GbE-QDA2
|
||||
15d0 Ethernet SDI Adapter
|
||||
8086 0001 Ethernet SDI Adapter FM10420-100GbE-QDA2
|
||||
8086 0002 Ethernet SDI Adapter FM10840-MTP2
|
||||
15d1 Ethernet Controller 10G X550T
|
||||
8086 0002 Ethernet Converged Network Adapter X550-T1
|
||||
8086 001b Ethernet Server Adapter X550-T1 for OCP
|
||||
@ -23685,6 +23871,14 @@
|
||||
15e3 Ethernet Connection (5) I219-LM
|
||||
15e4 Ethernet Connection X553 1GbE
|
||||
15e5 Ethernet Connection X553 1GbE
|
||||
15e7 JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018]
|
||||
15e8 JHL7540 Thunderbolt 3 NHI [Titan Ridge 2C 2018]
|
||||
15e9 JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 2C 2018]
|
||||
15ea JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018]
|
||||
15eb JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018]
|
||||
15ec JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018]
|
||||
15ef JHL7540 Thunderbolt 3 Bridge [Titan Ridge DD 2018]
|
||||
15f0 JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
|
||||
1600 Broadwell-U Host Bridge -OPI
|
||||
1601 Broadwell-U PCI Express x16 Controller
|
||||
1602 Broadwell-U Integrated Graphics
|
||||
@ -24111,6 +24305,7 @@
|
||||
144d c652 NP300E5C series laptop
|
||||
1849 1e2d Motherboard
|
||||
1e31 7 Series/C210 Series Chipset Family USB xHCI Host Controller
|
||||
103c 179b Elitebook 8470p
|
||||
103c 17ab ProBook 6570b
|
||||
1043 108d VivoBook X202EV
|
||||
1043 1477 N56VZ
|
||||
@ -24420,6 +24615,7 @@
|
||||
1028 040a Latitude E6410
|
||||
1028 040b Latitude E6510
|
||||
103c 0934 Compaq nw8240 Mobile Workstation
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
103c 309f Compaq nx9420 Notebook
|
||||
103c 30a3 Compaq nw8440
|
||||
@ -25087,6 +25283,7 @@
|
||||
1014 0575 ThinkPad X41 / Z60t
|
||||
1028 0182 Latitude C610
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
104d 81b7 Vaio VGN-S3XP
|
||||
a304 81b7 Vaio VGN-S3XP
|
||||
@ -25271,6 +25468,7 @@
|
||||
2641 82801FBM (ICH6M) LPC Interface Bridge
|
||||
1014 0568 ThinkPad X41
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
2642 82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge
|
||||
2651 82801FB/FW (ICH6/ICH6W) SATA Controller
|
||||
@ -25291,6 +25489,7 @@
|
||||
1028 0177 Dimension 8400
|
||||
1028 0179 Optiplex GX280
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
1043 80a6 P5GD1-VW Mainboard
|
||||
1458 2558 GA-8I915ME-G Mainboard
|
||||
@ -25304,6 +25503,7 @@
|
||||
1028 0177 Dimension 8400
|
||||
1028 0179 Optiplex GX280
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
1043 80a6 P5GD1-VW Mainboard
|
||||
1458 2659 GA-8I915ME-G Mainboard
|
||||
@ -25317,6 +25517,7 @@
|
||||
1028 0177 Dimension 8400
|
||||
1028 0179 Optiplex GX280
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
1043 80a6 P5GD1-VW Mainboard
|
||||
1458 265a GA-8I915ME-G Mainboard
|
||||
@ -25342,6 +25543,7 @@
|
||||
1028 0177 Dimension 8400
|
||||
1028 0179 Optiplex GX280
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
1043 80a6 P5GD1-VW Mainboard
|
||||
1458 5006 GA-8I915ME-G Mainboard
|
||||
@ -25353,12 +25555,14 @@
|
||||
e4bf 58b1 XB1
|
||||
2660 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1
|
||||
103c 0934 Compaq nw8240 Mobile Workstation
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
e4bf 0ccd CCD-CALYPSO
|
||||
e4bf 0cd3 CD3-JIVE
|
||||
e4bf 58b1 XB1
|
||||
2662 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2
|
||||
103c 0934 Compaq nw8240 Mobile Workstation
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
e4bf 0ccd CCD-CALYPSO
|
||||
e4bf 0cd3 CD3-JIVE
|
||||
e4bf 58b1 XB1
|
||||
@ -25412,6 +25616,7 @@
|
||||
266f 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller
|
||||
1028 0177 Dimension 8400
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 0944 Compaq nc6220 Notebook PC
|
||||
103c 099c NX6110/NC6120
|
||||
1043 80a6 P5GD1-VW Mainboard
|
||||
1458 266f GA-8I915ME-G Mainboard
|
||||
@ -25484,6 +25689,12 @@
|
||||
103c 31fe ProLiant DL140 G3
|
||||
15d9 8680 X7DVL-E-O motherboard
|
||||
15d9 9680 X7DBN Motherboard
|
||||
2700 Optane SSD 900P Series
|
||||
8086 3900 900P Series [Add-in Card]
|
||||
8086 3901 900P Series [2.5" SFF]
|
||||
2701 Optane DC P4800X Series SSD
|
||||
8086 3904 DC P4800X Series [Add-in Card]
|
||||
8086 3905 DC P4800X Series [2.5" SFF]
|
||||
2770 82945G/GZ/P/PL Memory Controller Hub
|
||||
1028 01ad OptiPlex GX620
|
||||
103c 2a3b Pavilion A1512X
|
||||
@ -25514,6 +25725,7 @@
|
||||
2792 Mobile 915GM/GMS/910GML Express Graphics Controller
|
||||
1014 0582 ThinkPad X41
|
||||
103c 099c NX6110/NC6120
|
||||
103c 308a Compaq nc6220 Notebook PC
|
||||
1043 1881 GMA 900 915GM Integrated Graphics
|
||||
e4bf 0ccd CCD-CALYPSO
|
||||
e4bf 0cd3 CD3-JIVE
|
||||
@ -27544,7 +27756,7 @@
|
||||
4117 Atom Processor E6xx PCI Host Bridge #4
|
||||
4220 PRO/Wireless 2200BG [Calexico2] Network Connection
|
||||
103c 0934 Compaq nw8240/nx8220
|
||||
103c 12f6 nc6120/nx8220/nw8240
|
||||
103c 12f6 nc6120/nc6220/nw8240/nx8220
|
||||
8086 2701 WM3B2200BG Mini-PCI Card
|
||||
8086 2712 IBM ThinkPad R50e
|
||||
8086 2721 Dell B130 laptop integrated WLAN
|
||||
@ -27692,9 +27904,11 @@
|
||||
590f Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
|
||||
5910 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
|
||||
5912 HD Graphics 630
|
||||
5914 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
|
||||
5916 HD Graphics 620
|
||||
17aa 2248 ThinkPad T570
|
||||
17aa 224f ThinkPad X1 Carbon 5th Gen
|
||||
5917 UHD Graphics 620
|
||||
591d HD Graphics P630
|
||||
591f Intel Kaby Lake Host Bridge
|
||||
5a84 Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller
|
||||
@ -28111,6 +28325,8 @@
|
||||
8c26 8 Series/C220 Series Chipset Family USB EHCI #1
|
||||
103c 1909 ZBook 15
|
||||
17aa 220e ThinkPad T440p
|
||||
17aa 2210 ThinkPad T540p
|
||||
2210 17aa ThinkPad T540p
|
||||
8c2d 8 Series/C220 Series Chipset Family USB EHCI #2
|
||||
103c 1909 ZBook 15
|
||||
17aa 220e ThinkPad T440p
|
||||
@ -29018,6 +29234,11 @@
|
||||
103c 0701 Smart Array P204i-b SR Gen10
|
||||
103c 1100 Smart Array P816i-a SR Gen10
|
||||
103c 1101 Smart Array P416ie-m SR G10
|
||||
152d 8a22 QS-8204-8i
|
||||
152d 8a23 QS-8238-16i
|
||||
152d 8a24 QS-8236-16i
|
||||
152d 8a36 QS-8240-24i
|
||||
152d 8a37 QS-8242-24i
|
||||
9005 0800 SmartRAID 3154-8i
|
||||
9005 0801 SmartRAID 3152-8i
|
||||
9005 0802 SmartRAID 3151-4i
|
||||
@ -29220,8 +29441,8 @@ bdbd Blackmagic Design
|
||||
a124 Intensity Extreme
|
||||
a126 Intensity Shuttle
|
||||
a127 UltraStudio Express
|
||||
a129 UltraStudio Mini Monitor
|
||||
a12a UltraStudio Mini Recorder
|
||||
a129 UltraStudio Mini Recorder
|
||||
a12a UltraStudio Mini Monitor
|
||||
a12d UltraStudio 4K
|
||||
a12e DeckLink 4K Extreme
|
||||
a12f DeckLink Mini Monitor
|
||||
@ -29236,6 +29457,11 @@ bdbd Blackmagic Design
|
||||
a13e UltraStudio 4K Extreme
|
||||
a13f DeckLink Quad 2
|
||||
a140 DeckLink Duo 2
|
||||
a141 UltraStudio 4K Extreme 3
|
||||
a142 UltraStudio HD Mini
|
||||
a143 DeckLink Mini Recorder 4K
|
||||
a144 DeckLink Mini Monitor 4K
|
||||
a14b DeckLink 8K Pro
|
||||
c001 TSI Telsys
|
||||
c0a9 Micron/Crucial Technology
|
||||
c0de Motorola
|
||||
|
46
hwdb/usb.ids
46
hwdb/usb.ids
@ -9,8 +9,8 @@
|
||||
# The latest version can be obtained from
|
||||
# http://www.linux-usb.org/usb.ids
|
||||
#
|
||||
# Version: 2017.11.27
|
||||
# Date: 2017-11-27 20:34:05
|
||||
# Version: 2018.01.04
|
||||
# Date: 2018-01-04 20:34:07
|
||||
#
|
||||
|
||||
# Vendors, devices and interfaces. Please keep sorted.
|
||||
@ -16161,6 +16161,35 @@
|
||||
0002 HDReye (before firmware loads)
|
||||
1519 Comneon
|
||||
0020 HSIC Device
|
||||
151f Opal Kelly Incorporated
|
||||
0020 XEM3001v1
|
||||
0021 XEM3001v2
|
||||
0022 XEM3010
|
||||
0023 XEM3005
|
||||
0028 XEM3050
|
||||
002b XEM5010
|
||||
002c XEM6001
|
||||
002d XEM6010-LX45
|
||||
002e XEM6010-LX150
|
||||
0030 XEM6006-LX16
|
||||
0033 XEM6002-LX9
|
||||
0034 XEM7001-A15
|
||||
0036 XEM7010-A50
|
||||
0037 XEM7010-A200
|
||||
0120 ZEM4310
|
||||
0121 XEM6310-LX45
|
||||
0122 XEM6310-LX150
|
||||
0123 XEM6310MT-LX45T
|
||||
0125 XEM7350-K70T
|
||||
0126 XEM7350-K160T
|
||||
0127 XEM7350-K410T
|
||||
0128 XEM6310MT-LX150T
|
||||
0129 ZEM5305-A2
|
||||
012b XEM7360-K160T
|
||||
012c XEM7360-K410T
|
||||
012d ZEM5310-A4
|
||||
0130 XEM7310-A75
|
||||
0131 XEM7310-A200
|
||||
1520 Bitwire Corp.
|
||||
1524 ENE Technology Inc
|
||||
6680 UTS 6680
|
||||
@ -18673,6 +18702,19 @@
|
||||
24e1 Paratronic
|
||||
3001 Adp-usb
|
||||
3005 Radius
|
||||
2516 Cooler Master Co., Ltd.
|
||||
0003 Storm Xornet
|
||||
0004 Storm QuickFire Rapid Mechanical Keyboard
|
||||
0006 Storm Recon
|
||||
0007 Storm Sentinel Advance II
|
||||
0009 Storm Quick Fire PRO
|
||||
0011 Storm Quick Fire TK
|
||||
0017 CM Storm Quick Fire Stealth
|
||||
0020 QuickFire Rapid-i Keyboard
|
||||
0027 CM Storm Coolermaster Novatouch TKL
|
||||
002d Alcor mouse
|
||||
0047 MasterKeys Pro L
|
||||
9494 Sirus Headset
|
||||
2632 TwinMOS
|
||||
3209 7-in-1 Card Reader
|
||||
2639 Xsens
|
||||
|
@ -69,7 +69,7 @@
|
||||
|
||||
<para>Each file contains a list of binfmt_misc kernel binary
|
||||
format rules. Consult <ulink
|
||||
url="https://www.kernel.org/doc/Documentation/binfmt_misc.txt">binfmt_misc.txt</ulink>
|
||||
url="https://www.kernel.org/doc/Documentation/admin-guide/binfmt-misc.rst">binfmt-misc.rst</ulink>
|
||||
for more information on registration of additional binary formats
|
||||
and how to write rules.</para>
|
||||
|
||||
|
@ -241,6 +241,16 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--watch-bind=</option><replaceable>BOOL</replaceable></term>
|
||||
|
||||
<listitem>
|
||||
<para>Controls whether to wait for the specified <constant>AF_UNIX</constant> bus socket to appear in the
|
||||
file system before connecting to it. Defaults to off. When enabled, the tool will watch the file system until
|
||||
the socket is created and then connect to it.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<xi:include href="user-system-options.xml" xpointer="user" />
|
||||
<xi:include href="user-system-options.xml" xpointer="system" />
|
||||
<xi:include href="user-system-options.xml" xpointer="host" />
|
||||
|
@ -146,6 +146,9 @@
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>The defaults for all values are listed as comments in the
|
||||
template <filename>/etc/systemd/coredump.conf</filename> file that
|
||||
is installed by default.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -218,16 +218,23 @@
|
||||
<varlistentry>
|
||||
<term><option>noauto</option></term>
|
||||
|
||||
<listitem><para>This device will not be automatically unlocked
|
||||
on boot.</para></listitem>
|
||||
<listitem><para>This device will not be added to <filename>cryptsetup.target</filename>.
|
||||
This means that it will not be automatically unlocked on boot, unless something else pulls
|
||||
it in. In particular, if the device is used for a mount point, it'll be unlocked
|
||||
automatically during boot, unless the mount point itself is also disabled with
|
||||
<option>noauto</option>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>nofail</option></term>
|
||||
|
||||
<listitem><para>The system will not wait for the device to
|
||||
show up and be unlocked at boot, and not fail the boot if it
|
||||
does not show up.</para></listitem>
|
||||
<listitem><para>This device will not be a hard dependency of
|
||||
<filename>cryptsetup.target</filename>. It'll be still pulled in and started, but the system
|
||||
will not wait for the device to show up and be unlocked, and boot will not fail if this is
|
||||
unsuccessful. Note that other units that depend on the unlocked device may still fail. In
|
||||
particular, if the device is used for a mount point, the mount point itself is also needs to
|
||||
have <option>noauto</option> option, or the boot will fail if the device is not unlocked
|
||||
successfully.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -73,6 +73,18 @@
|
||||
</a>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="citerefentry[@project='wireguard']">
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:text>https://git.zx2c4.com/WireGuard/about/src/tools/</xsl:text>
|
||||
<xsl:value-of select="refentrytitle"/>
|
||||
<xsl:text>.</xsl:text>
|
||||
<xsl:value-of select="manvolnum"/>
|
||||
</xsl:attribute>
|
||||
<xsl:call-template name="inline.charseq"/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="citerefentry[@project='mankier']">
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
|
@ -605,8 +605,8 @@
|
||||
daemon code, to create it via
|
||||
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
fragments during boot, or via the
|
||||
<varname>RuntimeDirectory=</varname> directive of service units
|
||||
(see
|
||||
<varname>StateDirectory=</varname> and <varname>RuntimeDirectory=</varname>
|
||||
directives of service units (see
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details).</para>
|
||||
</refsect1>
|
||||
@ -694,7 +694,7 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/run/<replaceable>package</replaceable></filename></entry>
|
||||
<entry>Runtime data for the package. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot. Alternatively, the <varname>RuntimeDirectory=</varname> directive of service units may be used (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.)</entry>
|
||||
<entry>Runtime data for the package. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot, or the <varname>RuntimeDirectory=</varname> directive of service units may be used to create them at service startup (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details).</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/run/log/<replaceable>package</replaceable></filename></entry>
|
||||
@ -702,15 +702,15 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/var/cache/<replaceable>package</replaceable></filename></entry>
|
||||
<entry>Persistent cache data of the package. If this directory is flushed, the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary.</entry>
|
||||
<entry>Persistent cache data of the package. If this directory is flushed, the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary. To create an empty directory, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment or the <varname>CacheDirectory=</varname> directive of service units (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>) may be used.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/var/lib/<replaceable>package</replaceable></filename></entry>
|
||||
<entry>Persistent private data of the package. This is the primary place to put persistent data that does not fall into the other categories listed. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot.</entry>
|
||||
<entry>Persistent private data of the package. This is the primary place to put persistent data that does not fall into the other categories listed. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot. To create an empty directory, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment or the <varname>StateDirectory=</varname> directive of service units (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>) may be used.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/var/log/<replaceable>package</replaceable></filename></entry>
|
||||
<entry>Persistent log data of the package. As above, the package should make sure to create this directory if necessary, as it might be missing.</entry>
|
||||
<entry>Persistent log data of the package. As above, the package should make sure to create this directory if necessary, possibly using <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> or <varname>LogsDirectory=</varname> (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>), as it might be missing.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/var/spool/<replaceable>package</replaceable></filename></entry>
|
||||
|
@ -166,8 +166,12 @@
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para>These are legacy commands available for compatibility
|
||||
only.</para>
|
||||
<para>These commands are implemented in a way that preserves compatiblity with
|
||||
the original SysV commands.
|
||||
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
verbs <command>halt</command>, <command>poweroff</command>,
|
||||
<command>reboot</command> provide the same functionality with some additional
|
||||
features.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -578,6 +578,29 @@
|
||||
priorities.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-g</option></term>
|
||||
<term><option>--grep=</option></term>
|
||||
|
||||
<listitem><para>Filter output to entries where the <varname>MESSAGE=</varname>
|
||||
field matches the specified regular expression. PERL-compatible regular expressions
|
||||
are used, see
|
||||
<citerefentry><refentrytitle>pcre2pattern</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
for a detailed description of the syntax.</para>
|
||||
|
||||
<para>If the pattern is all lowercase, matching is case insensitive.
|
||||
Otherwise, matching is case sensitive. This can be overridden with the
|
||||
<option>--case-sensitive</option> option, see below.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--case-sensitive<optional>=BOOLEAN</optional></option></term>
|
||||
|
||||
<listitem><para>Make pattern matching case sensitive or case insenstive.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-c</option></term>
|
||||
<term><option>--cursor=</option></term>
|
||||
|
@ -85,6 +85,7 @@
|
||||
<term><varname>systemd.crash_shell</varname></term>
|
||||
<term><varname>systemd.crash_reboot</varname></term>
|
||||
<term><varname>systemd.confirm_spawn</varname></term>
|
||||
<term><varname>systemd.service_watchdogs</varname></term>
|
||||
<term><varname>systemd.show_status</varname></term>
|
||||
<term><varname>systemd.log_target=</varname></term>
|
||||
<term><varname>systemd.log_level=</varname></term>
|
||||
|
@ -439,9 +439,9 @@
|
||||
specified, the connection is made to the local host
|
||||
instead. This works similar to <command>login</command> but
|
||||
immediately invokes a user process. This command runs the
|
||||
specified executable with the specified arguments, or
|
||||
<filename>/bin/sh</filename> if none is specified. By default,
|
||||
opens a <literal>root</literal> shell, but by using
|
||||
specified executable with the specified arguments, or the
|
||||
default shell for the user if none is specified, or
|
||||
<filename>/bin/sh</filename> if no default shell is found. By default,
|
||||
<option>--uid=</option>, or by prefixing the machine name with
|
||||
a username and an <literal>@</literal> character, a different
|
||||
user may be selected. Use <option>--setenv=</option> to set
|
||||
@ -881,7 +881,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>cancel-transfers</command> <replaceable>ID</replaceable>…</term>
|
||||
<term><command>cancel-transfer</command> <replaceable>ID</replaceable>…</term>
|
||||
|
||||
<listitem><para>Aborts a download, import or export of the
|
||||
container or VM image with the specified ID. To list ongoing
|
||||
|
@ -105,7 +105,12 @@ manpages = [
|
||||
['sd-journal', '3', [], ''],
|
||||
['sd-login', '3', [], 'HAVE_PAM'],
|
||||
['sd_booted', '3', [], ''],
|
||||
['sd_bus_add_match', '3', [], ''],
|
||||
['sd_bus_add_match',
|
||||
'3',
|
||||
['sd_bus_add_match_async',
|
||||
'sd_bus_match_signal',
|
||||
'sd_bus_match_signal_async'],
|
||||
''],
|
||||
['sd_bus_creds_get_pid',
|
||||
'3',
|
||||
['sd_bus_creds_get_audit_login_uid',
|
||||
@ -181,6 +186,7 @@ manpages = [
|
||||
['SD_BUS_ERROR_END', 'SD_BUS_ERROR_MAP', 'sd_bus_error_map'],
|
||||
''],
|
||||
['sd_bus_get_fd', '3', [], ''],
|
||||
['sd_bus_is_open', '3', ['sd_bus_is_ready'], ''],
|
||||
['sd_bus_message_append', '3', ['sd_bus_message_appendv'], ''],
|
||||
['sd_bus_message_append_array',
|
||||
'3',
|
||||
@ -200,6 +206,7 @@ manpages = [
|
||||
['sd_bus_message_get_realtime_usec', 'sd_bus_message_get_seqnum'],
|
||||
''],
|
||||
['sd_bus_message_read_basic', '3', [], ''],
|
||||
['sd_bus_message_set_destination', '3', ['sd_bus_message_set_sender'], ''],
|
||||
['sd_bus_negotiate_fds',
|
||||
'3',
|
||||
['sd_bus_negotiate_creds', 'sd_bus_negotiate_timestamp'],
|
||||
@ -210,7 +217,15 @@ manpages = [
|
||||
['sd_bus_path_decode', 'sd_bus_path_decode_many', 'sd_bus_path_encode_many'],
|
||||
''],
|
||||
['sd_bus_process', '3', [], ''],
|
||||
['sd_bus_request_name', '3', ['sd_bus_release_name'], ''],
|
||||
['sd_bus_request_name',
|
||||
'3',
|
||||
['sd_bus_release_name',
|
||||
'sd_bus_release_name_async',
|
||||
'sd_bus_request_name_async'],
|
||||
''],
|
||||
['sd_bus_set_connected_signal', '3', ['sd_bus_get_connected_signal'], ''],
|
||||
['sd_bus_set_sender', '3', ['sd_bus_get_sender'], ''],
|
||||
['sd_bus_set_watch_bind', '3', ['sd_bus_get_watch_bind'], ''],
|
||||
['sd_bus_track_add_name',
|
||||
'3',
|
||||
['sd_bus_track_add_sender',
|
||||
@ -594,6 +609,7 @@ manpages = [
|
||||
'8',
|
||||
['systemd-random-seed'],
|
||||
'ENABLE_RANDOMSEED'],
|
||||
['systemd-rc-local-generator', '8', [], ''],
|
||||
['systemd-remount-fs.service', '8', ['systemd-remount-fs'], ''],
|
||||
['systemd-resolve', '1', [], 'ENABLE_RESOLVE'],
|
||||
['systemd-resolved.service', '8', ['systemd-resolved'], 'ENABLE_RESOLVE'],
|
||||
@ -654,6 +670,7 @@ manpages = [
|
||||
['systemd', '1', ['init'], ''],
|
||||
['systemd.automount', '5', [], ''],
|
||||
['systemd.device', '5', [], ''],
|
||||
['systemd.dnssd', '5', [], 'ENABLE_RESOLVE'],
|
||||
['systemd.environment-generator', '7', [], 'ENABLE_ENVIRONMENT_D'],
|
||||
['systemd.exec', '5', [], ''],
|
||||
['systemd.generator', '7', [], ''],
|
||||
@ -662,7 +679,6 @@ manpages = [
|
||||
['systemd.link', '5', [], ''],
|
||||
['systemd.mount', '5', [], ''],
|
||||
['systemd.netdev', '5', [], 'ENABLE_NETWORKD'],
|
||||
['systemd.dnssd', '5', [], 'ENABLE_RESOLVE'],
|
||||
['systemd.network', '5', [], 'ENABLE_NETWORKD'],
|
||||
['systemd.nspawn', '5', [], ''],
|
||||
['systemd.offline-updates', '7', [], ''],
|
||||
|
@ -173,10 +173,9 @@
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>/var/run/utmp</filename></term>
|
||||
<term><filename>/run/utmp</filename></term>
|
||||
|
||||
<listitem><para>The utmp database <command>runlevel</command>
|
||||
reads the previous and current runlevel
|
||||
<listitem><para>The utmp database <command>runlevel</command> reads the previous and current runlevel
|
||||
from.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
@ -45,14 +45,24 @@
|
||||
|
||||
<refnamediv>
|
||||
<refname>sd_bus_add_match</refname>
|
||||
<refname>sd_bus_add_match_async</refname>
|
||||
<refname>sd_bus_match_signal</refname>
|
||||
<refname>sd_bus_match_signal_async</refname>
|
||||
|
||||
<refpurpose>Add a match rule for message dispatching</refpurpose>
|
||||
<refpurpose>Add a match rule for incoming message dispatching</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>typedef int (*<function>sd_bus_message_handler_t</function>)</funcdef>
|
||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
||||
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
||||
<paramdef>sd_bus_error *<parameter>ret_error</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_add_match</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
@ -63,65 +73,122 @@
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>typedef int (*<function>sd_bus_message_handler_t</function>)</funcdef>
|
||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
||||
<funcdef>int <function>sd_bus_add_match_async</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>sd_bus_slot **<parameter>slot</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>match</parameter></paramdef>
|
||||
<paramdef>sd_bus_message_handler_t <parameter>callback</parameter></paramdef>
|
||||
<paramdef>sd_bus_message_handler_t <parameter>install_callback</parameter></paramdef>
|
||||
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
||||
<paramdef>sd_bus_error *<parameter>ret_error</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_match_signal</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>sd_bus_slot **<parameter>slot</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>sender</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>path</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>interface</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>member</parameter></paramdef>
|
||||
<paramdef>sd_bus_message_handler_t <parameter>callback</parameter></paramdef>
|
||||
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_match_signal_async</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>sd_bus_slot **<parameter>slot</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>sender</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>path</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>interface</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>member</parameter></paramdef>
|
||||
<paramdef>sd_bus_message_handler_t <parameter>callback</parameter></paramdef>
|
||||
<paramdef>sd_bus_message_handler_t <parameter>install_callback</parameter></paramdef>
|
||||
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>
|
||||
<function>sd_bus_add_match()</function> installs a match rule for incoming messages received on the specified bus
|
||||
connection object <parameter>bus</parameter>. The syntax of the match rule expression passed in
|
||||
<parameter>match</parameter> is described in the <ulink
|
||||
url="https://dbus.freedesktop.org/doc/dbus-specification.html">D-Bus Specification</ulink>. The specified handler
|
||||
function <parameter>callback</parameter> is called for eaching incoming message matching the specified
|
||||
expression, the <parameter>userdata</parameter> parameter is passed as-is to the callback function.
|
||||
<para><function>sd_bus_add_match()</function> installs a match rule for messages received on the specified bus
|
||||
connection object <parameter>bus</parameter>. The syntax of the match rule expression passed in
|
||||
<parameter>match</parameter> is described in the <ulink
|
||||
url="https://dbus.freedesktop.org/doc/dbus-specification.html">D-Bus Specification</ulink>. The specified handler
|
||||
function <parameter>callback</parameter> is called for eaching incoming message matching the specified expression,
|
||||
the <parameter>userdata</parameter> parameter is passed as-is to the callback function. The match is installed
|
||||
synchronously when connected to a bus broker, i.e. the call sends a control message requested the match to be added
|
||||
to the broker and waits until the broker confirms the match has been installed successfully.</para>
|
||||
|
||||
<para><function>sd_bus_add_match_async()</function> operates very similar to
|
||||
<function>sd_bus_match_signal()</function>, however it installs the match asynchronously, in a non-blocking
|
||||
fashion: a request is sent to the broker, but the call does not wait for a response. The
|
||||
<parameter>install_callback</parameter> function is called when the response is later received, with the response
|
||||
message from the broker as parameter. If this function is specified as <constant>NULL</constant> a default
|
||||
implementation is used that terminates the bus connection should installing the match fail.</para>
|
||||
|
||||
<para><function>sd_bus_match_signal()</function> is very similar to <function>sd_bus_add_match()</function>, but
|
||||
only matches signals, and instead of a match expression accepts four parameters: <parameter>sender</parameter> (the
|
||||
service name of the sender), <parameter>path</parameter> (the object path of the emitting object),
|
||||
<parameter>interface</parameter> (the interface the signal belongs to), <parameter>member</parameter> (the signal
|
||||
name), from which the match string is internally generated. Optionally, these parameters may be specified as
|
||||
<constant>NULL</constant> in which case the relevant field of incoming signals is not tested.</para>
|
||||
|
||||
<para><function>sd_bus_match_signal_async()</function> is combines the signal matching logic of
|
||||
<function>sd_bus_match_signal()</function> with the asynchronous behaviour of
|
||||
<function>sd_bus_add_match_async()</function>.</para>
|
||||
|
||||
<para>On success, and if non-<constant>NULL</constant>, the <parameter>slot</parameter> return parameter will be
|
||||
set to a slot object that may be used as a reference to the installed match, and may be utilized to remove it again
|
||||
at a later time with
|
||||
<citerefentry><refentrytitle>sd_bus_slot_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If specified
|
||||
as <constant>NULL</constant> the lifetime of the match is bound to the lifetime of the bus object itself, and the
|
||||
match cannot be removed independently.</para>
|
||||
|
||||
<para>The message <parameter>m</parameter> passed to the callback is only borrowed, that is, the callback should
|
||||
not call <citerefentry><refentrytitle>sd_bus_message_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
on it. If the callback wants to hold on to the message beyond the lifetime of the callback, it needs to call
|
||||
<citerefentry><refentrytitle>sd_bus_message_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> to create a
|
||||
new reference.</para>
|
||||
|
||||
<para>If an error occurs during the callback invocation, the callback should return a negative error number
|
||||
(optionally, a more precise error may be returned in <parameter>ret_error</parameter>, as well). If it wants other
|
||||
callbacks that match the same rule to be called, it should return 0. Otherwise it should return a positive integer.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
On success, and if non-<constant>NULL</constant>, the <parameter>slot</parameter> return parameter will be set to
|
||||
a slot object that may be used as a reference to the installed match, and may be utilized to remove it again at a
|
||||
later time with
|
||||
<citerefentry><refentrytitle>sd_bus_slot_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If
|
||||
specified as <constant>NULL</constant> the lifetime of the match is bound to the lifetime of the bus object itself, and the match
|
||||
cannot be removed independently.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The message <parameter>m</parameter> passed to the callback is only borrowed, that is, the callback should not
|
||||
call <citerefentry><refentrytitle>sd_bus_message_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> on
|
||||
it. If the callback wants to hold on to the message beyond the lifetime of the callback, it needs to call
|
||||
<citerefentry><refentrytitle>sd_bus_message_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> to create
|
||||
a new reference.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If an error occurs during the callback invocation, the callback should return a negative error number. If it
|
||||
wants other callbacks that match the same rule to be called, it should return 0. Otherwise it should return a
|
||||
positive integer.
|
||||
</para>
|
||||
<para>If the <parameter>bus</parameter> refers to a direct connection (i.e. not a bus connection, as set with
|
||||
<citerefentry><refentrytitle>sd_bus_set_bus_client</refentrytitle><manvolnum>3</manvolnum></citerefentry>) the
|
||||
match is only installed on the client side, and the synchronous and asynchronous functions operate the same.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>
|
||||
On success, <function>sd_bus_add_match()</function> returns 0 or a positive integer. On failure, it returns a
|
||||
negative errno-style error code.
|
||||
On success, <function>sd_bus_add_match()</function> and the other calls return 0 or a positive integer. On
|
||||
failure, they return a negative errno-style error code.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para><function>sd_bus_add_match()</function> and the other functions described here are available as a shared
|
||||
library, which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
|
||||
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_slot_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_message_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_set_bus_client</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
@ -369,7 +369,7 @@
|
||||
|
||||
<para><function>sd_bus_creds_get_cgroup()</function> will retrieve
|
||||
the control group path. See <ulink
|
||||
url="https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>.
|
||||
url="https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt">cgroups.txt</ulink>.
|
||||
</para>
|
||||
|
||||
<para><function>sd_bus_creds_get_unit()</function> will retrieve
|
||||
|
137
man/sd_bus_is_open.xml
Normal file
137
man/sd_bus_is_open.xml
Normal file
@ -0,0 +1,137 @@
|
||||
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
|
||||
<!--
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2017 Lennart Poettering
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<refentry id="sd_bus_is_open">
|
||||
|
||||
<refentryinfo>
|
||||
<title>sd_bus_is_open</title>
|
||||
<productname>systemd</productname>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Lennart</firstname>
|
||||
<surname>Poettering</surname>
|
||||
<email>lennart@poettering.net</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>sd_bus_is_open</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>sd_bus_is_open</refname>
|
||||
<refname>sd_bus_is_ready</refname>
|
||||
|
||||
<refpurpose>Check whether the a bus connection is open or ready.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_is_open</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_is_ready</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><function>sd_bus_is_open()</function> checks whether the specified bus connection is open, i.e. in the
|
||||
process of being established, already established or in the process of being torn down. It returns zero when the
|
||||
connection has not been started yet
|
||||
(i.e. <citerefentry><refentrytitle>sd_bus_start</refentrytitle><manvolnum>3</manvolnum></citerefentry> or some
|
||||
equivalent call has not been invoked yet), or is fully terminated again (for example after
|
||||
<citerefentry><refentrytitle>sd_bus_close</refentrytitle><manvolnum>3</manvolnum></citerefentry>), it returns
|
||||
positive otherwise.</para>
|
||||
|
||||
<para><function>sd_bus_is_ready()</function> checks whether the specified connection is fully established,
|
||||
i.e. completed the connection and authentication phases of the protocol and received the
|
||||
<function>Hello()</function> method call response, and is not in the process of being torn down again. It returns
|
||||
zero outside of this state, and positive otherwise. Effectively, this function returns positive while regular
|
||||
messages can be sent or received on the connection.</para>
|
||||
|
||||
<para>To be notified when the connection is fully established, use
|
||||
<citerefentry><refentrytitle>sd_bus_set_connected_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
||||
install a match for the <function>Connected()</function> signal on the
|
||||
<literal>org.freedesktop.DBus.Local</literal> interface. To be notified when the connection is torn down again,
|
||||
install a match for the <function>Disconnected()</function> signal on the
|
||||
<literal>org.freedesktop.DBus.Local</literal> interface.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>On success, these functions return 0 or a positive integer. On failure, they return a negative errno-style
|
||||
error code.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Errors</title>
|
||||
|
||||
<para>Returned errors may indicate the following problems:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>-ECHILD</constant></term>
|
||||
|
||||
<listitem><para>The bus connection has been created in a different process.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para><function>sd_bus_is_open()</function> and <function>sd_bus_is_ready()</function> are available as
|
||||
a shared library, which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
|
||||
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_start</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_close</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_set_connected_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
137
man/sd_bus_message_set_destination.xml
Normal file
137
man/sd_bus_message_set_destination.xml
Normal file
@ -0,0 +1,137 @@
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
|
||||
<!--
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2017 Lennart Poettering
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<refentry id="sd_bus_message_set_destination">
|
||||
|
||||
<refentryinfo>
|
||||
<title>sd_bus_message_set_destination</title>
|
||||
<productname>systemd</productname>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Lennart</firstname>
|
||||
<surname>Poettering</surname>
|
||||
<email>lennart@poettering.net</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>sd_bus_message_set_destination</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>sd_bus_message_set_destination</refname>
|
||||
<refname>sd_bus_message_set_sender</refname>
|
||||
<refpurpose>Set the destination or sender service name of a bus message</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_message_set_destination</function></funcdef>
|
||||
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>destination</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_message_set_sender</function></funcdef>
|
||||
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>sender</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><function>sd_bus_message_set_destination()</function> sets the destination service name for the specified bus
|
||||
message object. The specified name must be a valid unique or well-known service name.</para>
|
||||
|
||||
<para><function>sd_bus_message_set_sender()</function> sets the sender service name for the specified bus message
|
||||
object. The specified name must be a valid unique or well-known service name. This function is useful only for
|
||||
messages to send on direct connections as for connections to bus brokers the broker will fill in the destination
|
||||
field anyway, and the sender field set by original sender is ignored.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>On success, these calls return 0 or a positive integer. On failure, these calls return a negative errno-style
|
||||
error code.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Errors</title>
|
||||
|
||||
<para>Returned errors may indicate the following problems:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>-EINVAL</constant></term>
|
||||
|
||||
<listitem><para>A specified parameter is invalid.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-EPERM</constant></term>
|
||||
|
||||
<listitem><para>The message is already sealed.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-EEXIST</constant></term>
|
||||
|
||||
<listitem><para>The message already has a destination or sender field set.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para>The <function>sd_bus_message_set_destination()</function> and
|
||||
<function>sd_bus_message_set_sender()</function> interfaces
|
||||
are available as a shared library, which can be compiled and
|
||||
linked to with the
|
||||
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_set_sender</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
@ -46,7 +46,9 @@
|
||||
|
||||
<refnamediv>
|
||||
<refname>sd_bus_request_name</refname>
|
||||
<refname>sd_bus_request_name_async</refname>
|
||||
<refname>sd_bus_release_name</refname>
|
||||
<refname>sd_bus_release_name_async</refname>
|
||||
<refpurpose>Request or release a well-known service name on a bus</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@ -61,71 +63,103 @@
|
||||
<paramdef>uint64_t <parameter>flags</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_request_name_async</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>sd_bus_slot **<parameter>slot</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>name</parameter></paramdef>
|
||||
<paramdef>uint64_t <parameter>flags</parameter></paramdef>
|
||||
<paramdef>sd_bus_message_handler_t <parameter>callback</parameter></paramdef>
|
||||
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_release_name</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>name</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_release_name_async</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>sd_bus_slot **<parameter>slot</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>name</parameter></paramdef>
|
||||
<paramdef>sd_bus_message_handler_t <parameter>callback</parameter></paramdef>
|
||||
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><function>sd_bus_request_name()</function> requests a
|
||||
well-known service name on a bus. It takes a bus connection, a
|
||||
valid bus name and a flags parameter. The flags parameter is a
|
||||
combination of the following flags:</para>
|
||||
<para><function>sd_bus_request_name()</function> requests a well-known service name on a bus. It takes a bus
|
||||
connection, a valid bus name and a flags parameter. The flags parameter is a combination of the following
|
||||
flags:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname></term>
|
||||
|
||||
<listitem><para>After acquiring the name successfully, permit
|
||||
other peers to take over the name when they try to acquire it
|
||||
with the <varname>SD_BUS_NAME_REPLACE_EXISTING</varname> flag
|
||||
set. If <varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname> is
|
||||
not set on the original request, such a request by other peers
|
||||
will be denied.</para></listitem>
|
||||
<listitem><para>After acquiring the name successfully, permit other peers to take over the name when they try
|
||||
to acquire it with the <varname>SD_BUS_NAME_REPLACE_EXISTING</varname> flag set. If
|
||||
<varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname> is not set on the original request, such a request by other
|
||||
peers will be denied.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>SD_BUS_NAME_REPLACE_EXISTING</varname></term>
|
||||
|
||||
<listitem><para>Take over the name if it is already acquired
|
||||
by another peer, and that other peer has permitted takeover by
|
||||
setting <varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname> while
|
||||
acquiring it.</para></listitem>
|
||||
<listitem><para>Take over the name if it is already acquired by another peer, and that other peer has permitted
|
||||
takeover by setting <varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname> while acquiring it.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>SD_BUS_NAME_QUEUE</varname></term>
|
||||
|
||||
<listitem><para>Queue the acquisition of the name when the
|
||||
name is already taken.</para></listitem>
|
||||
<listitem><para>Queue the acquisition of the name when the name is already taken.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para><function>sd_bus_release_name()</function> releases an
|
||||
acquired well-known name. It takes a bus connection and a valid
|
||||
bus name as parameters.</para>
|
||||
<para><function>sd_bus_request_name()</function> operates in a synchronous fashion: a message requesting the name
|
||||
is sent to the bus broker, and the call waits until the broker responds.</para>
|
||||
|
||||
<para><function>sd_bus_request_name_async()</function> is an asynchronous version of of
|
||||
<function>sd_bus_release_name()</function>. Instead of waiting for the request to complete, the request message is
|
||||
enqueued. The specified <parameter>callback</parameter> will be called when the broker's response is received. If
|
||||
the parameter is specified as <constant>NULL</constant> a default implementation is used instead which will
|
||||
terminate the connection when the name cannot be acquired. The function returns a slot object in its
|
||||
<parameter>slot</parameter> parameter — if it is passed as non-<constant>NULL</constant> — which may be used as a
|
||||
reference to the name request operation. Use
|
||||
<citerefentry><refentrytitle>sd_bus_slot_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> to destroy
|
||||
this reference. Note that destroying the reference will not unregister the name, but simply ensure the specified
|
||||
callback is no longer called.</para>
|
||||
|
||||
<para><function>sd_bus_release_name()</function> releases an acquired well-known name. It takes a bus connection
|
||||
and a valid bus name as parameters. This function operates synchronously, sending a release request message to the
|
||||
bus broker and waiting for it to reply.</para>
|
||||
|
||||
<para><function>sd_bus_release_name_async()</function> is an asynchronous version of
|
||||
<function>sd_bus_release_name()</function>. The specified <parameter>callback</parameter> function is called when
|
||||
the name has been released successfully. If specified as <constant>NULL</constant> a generic implementation is used
|
||||
that ignores the result of the operation. As above, the <parameter>slot</parameter> (if
|
||||
non-<constant>NULL</constant>) is set to an object that may be used to reference the operation.</para>
|
||||
|
||||
<para>These functions are supported only on bus connections, i.e. connections to a bus broker and not on direct
|
||||
connections.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>On success, these calls return 0 or a positive integer. On
|
||||
failure, these calls return a negative errno-style error
|
||||
code.</para>
|
||||
<para>On success, these calls return 0 or a positive integer. On failure, these calls return a negative errno-style
|
||||
error code.</para>
|
||||
|
||||
<para>If <varname>SD_BUS_NAME_QUEUE</varname> is specified,
|
||||
<function>sd_bus_request_name()</function> will return 0 when the
|
||||
name is already taken by another peer and the client has been
|
||||
added to the queue for the name. In that case, the caller can
|
||||
subscribe to <literal>NameOwnerChanged</literal> signals to be
|
||||
notified when the name is successfully acquired.
|
||||
<function>sd_bus_request_name()</function> returns > 0 when the
|
||||
name has immediately been acquired successfully.</para>
|
||||
<para>If <varname>SD_BUS_NAME_QUEUE</varname> is specified, <function>sd_bus_request_name()</function> will return
|
||||
0 when the name is already taken by another peer and the client has been added to the queue for the name. In that
|
||||
case, the caller can subscribe to <literal>NameOwnerChanged</literal> signals to be notified when the name is
|
||||
successfully acquired. <function>sd_bus_request_name()</function> returns > 0 when the name has immediately
|
||||
been acquired successfully.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@ -137,56 +171,50 @@
|
||||
<varlistentry>
|
||||
<term><constant>-EALREADY</constant></term>
|
||||
|
||||
<listitem><para>The caller already is the owner of the
|
||||
specified name.</para></listitem>
|
||||
<listitem><para>The caller already is the owner of the specified name.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-EEXIST</constant></term>
|
||||
|
||||
<listitem><para>The name has already been acquired by a
|
||||
different peer, and SD_BUS_NAME_REPLACE_EXISTING was not
|
||||
specified or the other peer did not specify
|
||||
SD_BUS_NAME_ALLOW_REPLACEMENT while acquiring the
|
||||
<listitem><para>The name has already been acquired by a different peer, and SD_BUS_NAME_REPLACE_EXISTING was
|
||||
not specified or the other peer did not specify SD_BUS_NAME_ALLOW_REPLACEMENT while acquiring the
|
||||
name.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-ESRCH</constant></term>
|
||||
|
||||
<listitem><para>It was attempted to release a name that is
|
||||
currently not registered on the bus.</para></listitem>
|
||||
<listitem><para>It was attempted to release a name that is currently not registered on the
|
||||
bus.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-EADDRINUSE</constant></term>
|
||||
|
||||
<listitem><para>It was attempted to release a name that is
|
||||
owned by a different peer on the bus.</para></listitem>
|
||||
<listitem><para>It was attempted to release a name that is owned by a different peer on the
|
||||
bus.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-EINVAL</constant></term>
|
||||
|
||||
<listitem><para>A specified parameter is invalid. This is also
|
||||
generated when the requested name is a special service name
|
||||
reserved by the D-Bus specification, or when the operation is
|
||||
requested on a connection that does not refer to a
|
||||
bus.</para></listitem>
|
||||
<listitem><para>A specified parameter is invalid. This is also generated when the requested name is a special
|
||||
service name reserved by the D-Bus specification, or when the operation is requested on a connection that does
|
||||
not refer to a bus.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-ENOTCONN</constant></term>
|
||||
|
||||
<listitem><para>The bus connection has been
|
||||
disconnected.</para></listitem>
|
||||
<listitem><para>The bus connection has been disconnected.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-ECHILD</constant></term>
|
||||
|
||||
<listitem><para>The bus connection has been created in a
|
||||
different process than the current one.</para></listitem>
|
||||
<listitem><para>The bus connection has been created in a different process than the current
|
||||
one.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
@ -194,12 +222,9 @@
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para>The <function>sd_bus_acquire_name()</function> and
|
||||
<function>sd_bus_release_name()</function> interfaces are
|
||||
available as a shared library, which can be compiled and linked to
|
||||
with the
|
||||
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
<para>The <function>sd_bus_acquire_name()</function> and the other interfaces described here are available as a
|
||||
shared library, which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
|
||||
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@ -208,7 +233,8 @@
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_slot_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
143
man/sd_bus_set_connected_signal.xml
Normal file
143
man/sd_bus_set_connected_signal.xml
Normal file
@ -0,0 +1,143 @@
|
||||
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
|
||||
<!--
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2017 Lennart Poettering
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<refentry id="sd_bus_set_connected_signal">
|
||||
|
||||
<refentryinfo>
|
||||
<title>sd_bus_set_connected_signal</title>
|
||||
<productname>systemd</productname>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Lennart</firstname>
|
||||
<surname>Poettering</surname>
|
||||
<email>lennart@poettering.net</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>sd_bus_set_connected_signal</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>sd_bus_set_connected_signal</refname>
|
||||
<refname>sd_bus_get_connected_signal</refname>
|
||||
|
||||
<refpurpose>Control emmission of local connection establishment signal on bus connections</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_set_connected_signal</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>int <parameter>b</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_get_connected_signal</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><function>sd_bus_set_connected_signal()</function> may be used to control whether a local, synthetic
|
||||
<function>Connected()</function> signal message shall be generated and enqueued for dispatching when the connection
|
||||
is fully established. If the <parameter>b</parameter> parameter is zero the message is not generated (the default),
|
||||
otherwise it is generated.</para>
|
||||
|
||||
<para><function>sd_bus_get_connected_signal()</function> may be used to query whether this feature is enabled. It
|
||||
returns zero if not, positive otherwise.</para>
|
||||
|
||||
<para>The <function>Connected()</function> signal message is generated from the
|
||||
<literal>org.freedesktop.DBus.Local</literal> service and interface, and
|
||||
<literal>/org/freedesktop/DBus/Local</literal> object path. Use
|
||||
<citerefentry><refentrytitle>sd_bus_match_signal_async</refentrytitle><manvolnum>3</manvolnum></citerefentry> to
|
||||
match on this signal.</para>
|
||||
|
||||
<para>This message is particularly useful on slow transports where connections take a long time to be
|
||||
established. This is especially the case when
|
||||
<citerefentry><refentrytitle>sd_bus_set_watch_bind</refentrytitle><manvolnum>3</manvolnum></citerefentry> is
|
||||
used. The signal is generated when the
|
||||
<citerefentry><refentrytitle>sd_bus_is_ready</refentrytitle><manvolnum>3</manvolnum></citerefentry> returns
|
||||
positive for the first time.</para>
|
||||
|
||||
<para>The <function>Connected()</function> signal corresponds with the <function>Disconnected()</function> signal
|
||||
that is synthesized locally when the connection is terminated. The latter is generated unconditionally however,
|
||||
unlike the former which needs to be enabled explicitly before it is generated, with
|
||||
<function>sd_bus_set_connected_signal()</function>.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>On success, these functions return 0 or a positive integer. On failure, they return a negative errno-style
|
||||
error code.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Errors</title>
|
||||
|
||||
<para>Returned errors may indicate the following problems:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>-ECHILD</constant></term>
|
||||
|
||||
<listitem><para>The bus connection has been created in a different process.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para><function>sd_bus_set_connected_signal()</function> and <function>sd_bus_get_connected_signal()</function> are available as
|
||||
a shared library, which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
|
||||
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_match_signal_async</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_set_watch_bind</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_is_ready</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
136
man/sd_bus_set_sender.xml
Normal file
136
man/sd_bus_set_sender.xml
Normal file
@ -0,0 +1,136 @@
|
||||
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
|
||||
<!--
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2017 Lennart Poettering
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<refentry id="sd_bus_set_sender">
|
||||
|
||||
<refentryinfo>
|
||||
<title>sd_bus_set_sender</title>
|
||||
<productname>systemd</productname>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Lennart</firstname>
|
||||
<surname>Poettering</surname>
|
||||
<email>lennart@poettering.net</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>sd_bus_set_sender</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>sd_bus_set_sender</refname>
|
||||
<refname>sd_bus_get_sender</refname>
|
||||
|
||||
<refpurpose>Configure default sender for outgoing messages</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_set_sender</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>const char* <parameter>name</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_get_sender</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>const char** <parameter>name</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><function>sd_bus_set_sender()</function> configures the default sender service name to use for outgoing
|
||||
messages. The service name specified in the <parameter>name</parameter> parameter is set on all outgoing messages
|
||||
that are sent on the connection and have no sender set yet, for example through
|
||||
<citerefentry><refentrytitle>sd_bus_message_set_sender</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Note
|
||||
that this function is only supported on direct connections, i.e. not on connections to a bus broker as the broker
|
||||
will fill in the sender service name automatically anyway. By default no sender name is configured, and hence
|
||||
messages are sent without sender field set. If the <parameter>name</parameter> parameter is specified as
|
||||
<constant>NULL</constant> the default sender service name is cleared, returning to the default state if a default
|
||||
sender service name was set before. If passed as non-<constant>NULL</constant> the specified name must be a valid
|
||||
unique or well-known service name.</para>
|
||||
|
||||
<para><function>sd_bus_get_sender()</function> may be used to query the current default service name for outgoing
|
||||
messages.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>On success, these functions return 0 or a positive integer. On failure, they return a negative errno-style
|
||||
error code.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Errors</title>
|
||||
|
||||
<para>Returned errors may indicate the following problems:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>-ECHILD</constant></term>
|
||||
|
||||
<listitem><para>The bus connection has been created in a different process.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>-EPERM</constant></term>
|
||||
|
||||
<listitem><para>The specified bus connection object is a not a direct but a brokered connection.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para><function>sd_bus_set_sender()</function> and <function>sd_bus_get_sender()</function> are available as
|
||||
a shared library, which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
|
||||
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_message_set_sender</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
152
man/sd_bus_set_watch_bind.xml
Normal file
152
man/sd_bus_set_watch_bind.xml
Normal file
@ -0,0 +1,152 @@
|
||||
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
|
||||
<!--
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2017 Lennart Poettering
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<refentry id="sd_bus_set_watch_bind">
|
||||
|
||||
<refentryinfo>
|
||||
<title>sd_bus_set_watch_bind</title>
|
||||
<productname>systemd</productname>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Lennart</firstname>
|
||||
<surname>Poettering</surname>
|
||||
<email>lennart@poettering.net</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>sd_bus_set_watch_bind</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>sd_bus_set_watch_bind</refname>
|
||||
<refname>sd_bus_get_watch_bind</refname>
|
||||
|
||||
<refpurpose>Control socket binding watching on bus connections</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_set_watch_bind</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
<paramdef>int <parameter>b</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>int <function>sd_bus_get_watch_bind</function></funcdef>
|
||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><function>sd_bus_set_watch_bind()</function> may be used to enable or disable client-side watching of server
|
||||
socket binding for a bus connection object. If the <parameter>b</parameter> is true, the feature is enabled,
|
||||
otherwise disabled (which is the default). When enabled, and the selected bus address refers to an
|
||||
<filename>AF_UNIX</filename> socket in the file system which does not exist while the connection attempt is made an
|
||||
<citerefentry><refentrytitle>inotify</refentrytitle><manvolnum>7</manvolnum></citerefentry> watch is installed on
|
||||
it, waiting for the socket to appear. As soon as the socket appears the connection is made. This functionality is
|
||||
useful in particular in early-boot programs that need to run before the system bus is available, but want to
|
||||
connect to it the instant it may be connected to.</para>
|
||||
|
||||
<para><function>sd_bus_get_watch_bind()</function> may be used to query the current setting of this feature. It
|
||||
returns zero when the feature is disabled, and positive if enabled.</para>
|
||||
|
||||
<para>Note that no timeout is applied while it is waited for the socket to appear. This means that any synchronous
|
||||
remote operation (such as
|
||||
<citerefentry><refentrytitle>sd_bus_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry> or
|
||||
<citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>), that is
|
||||
used on a connection with this feature enabled that is not established yet might block unbounded if the socket is
|
||||
never created. However, asynchronous remote operations (such as
|
||||
<citerefentry><refentrytitle>sd_bus_send</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_add_match_async</refentrytitle><manvolnum>3</manvolnum></citerefentry> or
|
||||
<citerefentry><refentrytitle>sd_bus_request_match_async</refentrytitle><manvolnum>3</manvolnum></citerefentry>) do
|
||||
not block in this case, and safely enqueue the requested operations to be dispatched the instant the connection is
|
||||
set up.</para>
|
||||
|
||||
<para>Use <citerefentry><refentrytitle>sd_bus_is_ready</refentrytitle><manvolnum>3</manvolnum></citerefentry> to
|
||||
determine whether the connection is fully established, i.e. whether the peer socket has been bound, connected to
|
||||
and authenticated. Use
|
||||
<citerefentry><refentrytitle>sd_bus_set_connected_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry> to
|
||||
be notified when the connection is fully established.</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>On success, these functions return 0 or a positive integer. On failure, they return a negative errno-style
|
||||
error code.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Errors</title>
|
||||
|
||||
<para>Returned errors may indicate the following problems:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>-ECHILD</constant></term>
|
||||
|
||||
<listitem><para>The bus connection has been created in a different process.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para><function>sd_bus_set_watch_bind()</function> and <function>sd_bus_get_watch_bind()</function> are available as
|
||||
a shared library, which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
|
||||
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>inotify</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_is_ready</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_bus_set_connected_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
@ -230,6 +230,20 @@ else {
|
||||
journal.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Signal safety</title>
|
||||
|
||||
<para>In general, <function>sd_journal_get_fd()</function>, <function>sd_journal_get_events()</function>, and
|
||||
<function>sd_journal_get_timeout()</function> are <emphasis>not</emphasis> "async signal safe" in the meaning of
|
||||
<citerefentry
|
||||
project='man-pages'><refentrytitle>signal-safety</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
Nevertheless, only the first call to any of those three functions performs unsafe operations, so subsequent calls
|
||||
<emphasis>are</emphasis> safe.</para>
|
||||
|
||||
<para><function>sd_journal_process()</function> and <function>sd_journal_wait()</function> are not
|
||||
safe. <function>sd_journal_reliable_fd()</function> is safe.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
|
@ -205,8 +205,8 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(
|
||||
<title>Thread safety</title>
|
||||
<para>All functions listed here are thread-safe and may be called in parallel from multiple threads.</para>
|
||||
|
||||
<para><function>sd_journal_sendv()</function> is "async signal safe" in the meaning of
|
||||
<citerefentry project='man-pages'><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
<para><function>sd_journal_sendv()</function> is "async signal safe" in the meaning of <citerefentry
|
||||
project='man-pages'><refentrytitle>signal-safety</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
</para>
|
||||
|
||||
<para><function>sd_journal_print</function>,
|
||||
|
@ -94,6 +94,10 @@
|
||||
|
||||
<para>It is recommended that applications log UTF-8 messages only
|
||||
with this API, but this is not enforced.</para>
|
||||
|
||||
<para>Each invocation of <function>sd_journal_stream_fd()</function> allocates a new log stream file descriptor,
|
||||
that is not shared with prior or later invocations. The file descriptor is write-only (its reading direction is
|
||||
shut down), and <constant>O_NONBLOCK</constant> is turned off initially.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@ -103,12 +107,19 @@
|
||||
success or a negative errno-style error code.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Signal safety</title>
|
||||
|
||||
<para><function>sd_journal_stream_fd()</function> is "async signal safe" in the meaning of <citerefentry
|
||||
project='man-pages'><refentrytitle>signal-safety</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
<para>Function <function>sd_journal_stream_fd()</function> is thread-safe and may be called
|
||||
from multiple threads. All calls will return the same file descriptor, although temporarily
|
||||
multiple file descriptors may be open.</para>
|
||||
from multiple threads.</para>
|
||||
|
||||
<para>The <function>sd_journal_stream_fd()</function> interface is
|
||||
available as a shared library, which can be compiled and linked to
|
||||
|
@ -53,7 +53,7 @@
|
||||
|
||||
<refnamediv>
|
||||
<refname>systemd-analyze</refname>
|
||||
<refpurpose>Analyze system boot-up performance</refpurpose>
|
||||
<refpurpose>Analyze and debug system manager</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
@ -94,24 +94,14 @@
|
||||
<cmdsynopsis>
|
||||
<command>systemd-analyze</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
<arg choice="plain">set-log-level</arg>
|
||||
<arg choice="plain"><replaceable>LEVEL</replaceable></arg>
|
||||
<arg choice="plain">log-level</arg>
|
||||
<arg choice="opt"><replaceable>LEVEL</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-analyze</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
<arg choice="plain">set-log-target</arg>
|
||||
<arg choice="plain"><replaceable>TARGET</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-analyze</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
<arg choice="plain">get-log-level</arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-analyze</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
<arg choice="plain">get-log-target</arg>
|
||||
<arg choice="plain">log-target</arg>
|
||||
<arg choice="opt"><replaceable>TARGET</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-analyze</command>
|
||||
@ -131,6 +121,12 @@
|
||||
<arg choice="plain">calendar</arg>
|
||||
<arg choice="plain" rep="repeat"><replaceable>SPECS</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-analyze</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
<arg choice="plain">service-watchdogs</arg>
|
||||
<arg choice="opt"><replaceable>BOOL</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
@ -139,7 +135,8 @@
|
||||
<para><command>systemd-analyze</command> may be used to determine
|
||||
system boot-up performance statistics and retrieve other state and
|
||||
tracing information from the system and service manager, and to
|
||||
verify the correctness of unit files.</para>
|
||||
verify the correctness of unit files. It is also used to access
|
||||
special functions useful for advanced system manager debugging.</para>
|
||||
|
||||
<para><command>systemd-analyze time</command> prints the time
|
||||
spent in the kernel before userspace has been reached, the time
|
||||
@ -191,26 +188,20 @@
|
||||
state. Its format is subject to change without notice and should
|
||||
not be parsed by applications.</para>
|
||||
|
||||
<para><command>systemd-analyze set-log-level
|
||||
<replaceable>LEVEL</replaceable></command> changes the current log
|
||||
level of the <command>systemd</command> daemon to
|
||||
<replaceable>LEVEL</replaceable> (accepts the same values as
|
||||
<para><command>systemd-analyze log-level</command>
|
||||
prints the current log level of the <command>systemd</command> daemon.
|
||||
If an optional argument <replaceable>LEVEL</replaceable> is provided, then the command changes the current log
|
||||
level of the <command>systemd</command> daemon to <replaceable>LEVEL</replaceable> (accepts the same values as
|
||||
<option>--log-level=</option> described in
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
|
||||
|
||||
<para><command>systemd-analyze set-log-target
|
||||
<replaceable>TARGET</replaceable></command> changes the current log
|
||||
target of the <command>systemd</command> daemon to
|
||||
<replaceable>TARGET</replaceable> (accepts the same values as
|
||||
<para><command>systemd-analyze log-target</command>
|
||||
prints the current log target of the <command>systemd</command> daemon.
|
||||
If an optional argument <replaceable>TARGET</replaceable> is provided, then the command changes the current log
|
||||
target of the <command>systemd</command> daemon to <replaceable>TARGET</replaceable> (accepts the same values as
|
||||
<option>--log-target=</option>, described in
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
|
||||
|
||||
<para><command>systemd-analyze get-log-level</command>
|
||||
prints the current log level of the <command>systemd</command> daemon.</para>
|
||||
|
||||
<para><command>systemd-analyze get-log-target</command>
|
||||
prints the current log target of the <command>systemd</command> daemon.</para>
|
||||
|
||||
<para><command>systemd-analyze syscall-filter <optional><replaceable>SET</replaceable>…</optional></command>
|
||||
will list system calls contained in the specified system call set <replaceable>SET</replaceable>,
|
||||
or all known sets if no sets are specified. Argument <replaceable>SET</replaceable> must include
|
||||
@ -232,6 +223,14 @@
|
||||
syntax described in
|
||||
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para><command>systemd-analyze service-watchdogs</command>
|
||||
prints the current state of service runtime watchdogs of the <command>systemd</command> daemon.
|
||||
If an optional boolean argument is provided, then globally enables or disables the service
|
||||
runtime watchdogs (<option>WatchdogSec=</option>) and emergency actions (e.g.
|
||||
<option>OnFailure=</option> or <option>StartLimitAction=</option>); see
|
||||
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
The hardware watchdog is not affected by this setting.</para>
|
||||
|
||||
<para>If no command is passed, <command>systemd-analyze
|
||||
time</command> is implied.</para>
|
||||
|
||||
|
@ -75,7 +75,7 @@
|
||||
sufficient to redirect the kernel console with a kernel command
|
||||
line argument such as <varname>console=</varname> to get both
|
||||
kernel messages and a getty prompt on a serial TTY. See <ulink
|
||||
url="https://www.kernel.org/doc/Documentation/kernel-parameters.txt"><filename>kernel-parameters.txt</filename></ulink>
|
||||
url="https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt"><filename>kernel-parameters.txt</filename></ulink>
|
||||
for more information on the <varname>console=</varname> kernel
|
||||
parameter.</para>
|
||||
|
||||
|
@ -281,7 +281,7 @@
|
||||
<term><uri>boot</uri></term>
|
||||
|
||||
<listitem><para>Limit events to the current boot of the system
|
||||
(like <command>journalctl --this-boot</command>).</para></listitem>
|
||||
(like <command>journalctl -b</command>).</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -100,9 +100,9 @@
|
||||
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for information about the configuration of this service.</para>
|
||||
|
||||
<para>See <ulink
|
||||
url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat
|
||||
on Linux</ulink> for an introduction into basic concepts of logind
|
||||
<para>See
|
||||
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
for information about the basic concepts of logind
|
||||
such as users, sessions and seats.</para>
|
||||
|
||||
<para>See the <ulink
|
||||
@ -123,6 +123,7 @@
|
||||
<citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
@ -159,6 +159,14 @@
|
||||
<listitem><para>Additional mount options for the mount point.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--owner=<replaceable>USER</replaceable></option></term>
|
||||
|
||||
<listitem><para>Let the specified user <replaceable>USER</replaceable> own the mounted file system.
|
||||
This is done by appending <option>uid=</option> and <option>gid=</option> options to the list
|
||||
of mount options. Only certain file systems support this option.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--fsck=</option></term>
|
||||
|
||||
|
@ -122,6 +122,15 @@
|
||||
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--uid=</option><replaceable>USER</replaceable></term>
|
||||
|
||||
<listitem><para>Set the user ID to send the notification from. Takes a UNIX user name or numeric UID. When
|
||||
specified the notification message will be sent with the specified UID as sender, in place of the user the
|
||||
command was invoked as. This option requires sufficient privileges in order to be able manipulate the user
|
||||
identity of the process.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--status=</option></term>
|
||||
|
||||
|
@ -149,7 +149,7 @@
|
||||
<title>Options</title>
|
||||
|
||||
<para>If option <option>-b</option> is specified, the arguments
|
||||
are used as arguments for the init binary. Otherwise,
|
||||
are used as arguments for the init program. Otherwise,
|
||||
<replaceable>COMMAND</replaceable> specifies the program to launch
|
||||
in the container, and the remaining arguments are used as
|
||||
arguments for this program. If <option>--boot</option> is not used and
|
||||
@ -273,12 +273,12 @@
|
||||
<term><option>--as-pid2</option></term>
|
||||
|
||||
<listitem><para>Invoke the shell or specified program as process ID (PID) 2 instead of PID 1 (init). By
|
||||
default, if neither this option nor <option>--boot</option> is used, the selected binary is run as process with
|
||||
PID 1, a mode only suitable for programs that are aware of the special semantics that the process with PID 1
|
||||
has on UNIX. For example, it needs to reap all processes reparented to it, and should implement
|
||||
default, if neither this option nor <option>--boot</option> is used, the selected program is run as the process
|
||||
with PID 1, a mode only suitable for programs that are aware of the special semantics that the process with
|
||||
PID 1 has on UNIX. For example, it needs to reap all processes reparented to it, and should implement
|
||||
<command>sysvinit</command> compatible signal handling (specifically: it needs to reboot on SIGINT, reexecute
|
||||
on SIGTERM, reload configuration on SIGHUP, and so on). With <option>--as-pid2</option> a minimal stub init
|
||||
process is run as PID 1 and the selected binary is executed as PID 2 (and hence does not need to implement any
|
||||
process is run as PID 1 and the selected program is executed as PID 2 (and hence does not need to implement any
|
||||
special semantics). The stub init process will reap processes as necessary and react appropriately to
|
||||
signals. It is recommended to use this mode to invoke arbitrary commands in containers, unless they have been
|
||||
modified to run correctly as PID 1. Or in other words: this switch should be used for pretty much all commands,
|
||||
@ -291,9 +291,9 @@
|
||||
<term><option>-b</option></term>
|
||||
<term><option>--boot</option></term>
|
||||
|
||||
<listitem><para>Automatically search for an init binary and invoke it as PID 1, instead of a shell or a user
|
||||
<listitem><para>Automatically search for an init program and invoke it as PID 1, instead of a shell or a user
|
||||
supplied program. If this option is used, arguments specified on the command line are used as arguments for the
|
||||
init binary. This option may not be combined with <option>--as-pid2</option>.</para>
|
||||
init program. This option may not be combined with <option>--as-pid2</option>.</para>
|
||||
|
||||
<para>The following table explains the different modes of invocation and relationship to
|
||||
<option>--as-pid2</option> (see above):</para>
|
||||
@ -322,7 +322,7 @@
|
||||
|
||||
<row>
|
||||
<entry><option>--boot</option> specified</entry>
|
||||
<entry>An init binary as automatically searched and run as PID 1 in the container. The passed parameters are used as invocation parameters for this process.</entry>
|
||||
<entry>An init program is automatically searched for and run as PID 1 in the container. The passed parameters are used as invocation parameters for this process.</entry>
|
||||
</row>
|
||||
|
||||
</tbody>
|
||||
@ -398,6 +398,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-S</option></term>
|
||||
<term><option>--slice=</option></term>
|
||||
|
||||
<listitem><para>Make the container part of the specified slice, instead of the default
|
||||
@ -705,22 +706,17 @@
|
||||
<varlistentry>
|
||||
<term><option>--capability=</option></term>
|
||||
|
||||
<listitem><para>List one or more additional capabilities to
|
||||
grant the container. Takes a comma-separated list of
|
||||
capability names, see
|
||||
<listitem><para>List one or more additional capabilities to grant the container.
|
||||
Takes a comma-separated list of capability names, see
|
||||
<citerefentry project='man-pages'><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||
for more information. Note that the following capabilities
|
||||
will be granted in any way: CAP_CHOWN, CAP_DAC_OVERRIDE,
|
||||
CAP_DAC_READ_SEARCH, CAP_FOWNER, CAP_FSETID, CAP_IPC_OWNER,
|
||||
CAP_KILL, CAP_LEASE, CAP_LINUX_IMMUTABLE,
|
||||
CAP_NET_BIND_SERVICE, CAP_NET_BROADCAST, CAP_NET_RAW,
|
||||
CAP_SETGID, CAP_SETFCAP, CAP_SETPCAP, CAP_SETUID,
|
||||
CAP_SYS_ADMIN, CAP_SYS_CHROOT, CAP_SYS_NICE, CAP_SYS_PTRACE,
|
||||
CAP_SYS_TTY_CONFIG, CAP_SYS_RESOURCE, CAP_SYS_BOOT,
|
||||
CAP_AUDIT_WRITE, CAP_AUDIT_CONTROL. Also CAP_NET_ADMIN is
|
||||
retained if <option>--private-network</option> is specified.
|
||||
If the special value <literal>all</literal> is passed, all
|
||||
capabilities are retained.</para></listitem>
|
||||
for more information. Note that the following capabilities will be granted in any way:
|
||||
CAP_AUDIT_CONTROL, CAP_AUDIT_WRITE, CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_DAC_READ_SEARCH,
|
||||
CAP_FOWNER, CAP_FSETID, CAP_IPC_OWNER, CAP_KILL, CAP_LEASE, CAP_LINUX_IMMUTABLE,
|
||||
CAP_MKNOD, CAP_NET_BIND_SERVICE, CAP_NET_BROADCAST, CAP_NET_RAW, CAP_SETFCAP,
|
||||
CAP_SETGID, CAP_SETPCAP, CAP_SETUID, CAP_SYS_ADMIN, CAP_SYS_BOOT, CAP_SYS_CHROOT,
|
||||
CAP_SYS_NICE, CAP_SYS_PTRACE, CAP_SYS_RESOURCE, CAP_SYS_TTY_CONFIG. Also CAP_NET_ADMIN
|
||||
is retained if <option>--private-network</option> is specified. If the special value
|
||||
<literal>all</literal> is passed, all capabilities are retained.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@ -1114,7 +1110,7 @@
|
||||
<example>
|
||||
<title>Spawn a shell in a container of a minimal Debian unstable distribution</title>
|
||||
|
||||
<programlisting># debootstrap --arch=amd64 unstable ~/debian-tree/
|
||||
<programlisting># debootstrap unstable ~/debian-tree/
|
||||
# systemd-nspawn -D ~/debian-tree/</programlisting>
|
||||
|
||||
<para>This installs a minimal Debian unstable distribution into
|
||||
|
86
man/systemd-rc-local-generator.xml
Normal file
86
man/systemd-rc-local-generator.xml
Normal file
@ -0,0 +1,86 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--*-nxml-*-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
<!--
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2017 Lennart Poettering
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<refentry id="systemd-rc-local-generator">
|
||||
|
||||
<refentryinfo>
|
||||
<title>systemd-rc-local-generator</title>
|
||||
<productname>systemd</productname>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Lennart</firstname>
|
||||
<surname>Poettering</surname>
|
||||
<email>lennart@poettering.net</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>systemd-rc-local-generator</refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>systemd-rc-local-generator</refname>
|
||||
<refpurpose>Compatibility generator for starting <filename>/etc/rc.local</filename> and <filename>/usr/sbin/halt.local</filename> during boot and shutdown</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename>/usr/lib/systemd/system-generators/systemd-rc-local-generator</filename></para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><filename>systemd-rc-local-generator</filename> is a generator that checks whether
|
||||
<filename>/etc/rc.local</filename> exists and is executable, and if it is pulls the
|
||||
<filename>rc-local.service</filename> unit into the boot process. This unit is responsible for running this script
|
||||
during late boot. Note that the script will be run with slightly different semantics than the original System V
|
||||
version, which was run "last" in the boot process, which is a concept that does not translate to systemd. The
|
||||
script is run after <filename>network.target</filename>, but in parallel with most other regular system
|
||||
services.</para>
|
||||
|
||||
<para><filename>systemd-rc-local-generator</filename> also checks whether <filename>/usr/sbin/halt.local</filename>
|
||||
exists and is executable, and if it is pulls the <filename>halt-local.service</filename> unit into the shutdown
|
||||
process. This unit is responsible for running this script during later shutdown.</para>
|
||||
|
||||
<para>Support for both <filename>/etc/rc.local</filename> and <filename>/usr/sbin/halt.local</filename> is provided
|
||||
for compatibility with specific System V systems only. However, it is strongly recommended to avoid making use of
|
||||
these scripts today, and instead provide proper unit files with appropriate dependencies for any scripts to run
|
||||
during the boot or shutdown processes.</para>
|
||||
|
||||
<para><filename>systemd-rc-local-generator</filename> implements
|
||||
<citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
@ -47,7 +47,7 @@
|
||||
|
||||
<refnamediv>
|
||||
<refname>systemd-run</refname>
|
||||
<refpurpose>Run programs in transient scope units, service units, or timer-scheduled service units</refpurpose>
|
||||
<refpurpose>Run programs in transient scope units, service units, or path-, socket-, or timer-triggered service units</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
@ -58,6 +58,20 @@
|
||||
<arg choice="opt" rep="repeat">ARGS</arg>
|
||||
</arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-run</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
<arg choice="opt" rep="repeat">PATH OPTIONS</arg>
|
||||
<arg choice="req"><replaceable>COMMAND</replaceable></arg>
|
||||
<arg choice="opt" rep="repeat">ARGS</arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-run</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
<arg choice="opt" rep="repeat">SOCKET OPTIONS</arg>
|
||||
<arg choice="req"><replaceable>COMMAND</replaceable></arg>
|
||||
<arg choice="opt" rep="repeat">ARGS</arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>systemd-run</command>
|
||||
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
@ -72,8 +86,8 @@
|
||||
|
||||
<para><command>systemd-run</command> may be used to create and start a transient <filename>.service</filename> or
|
||||
<filename>.scope</filename> unit and run the specified <replaceable>COMMAND</replaceable> in it. It may also be
|
||||
used to create and start a transient <filename>.timer</filename> unit, that activates a
|
||||
<filename>.service</filename> unit when elapsing.</para>
|
||||
used to create and start a transient <filename>.path</filename>, <filename>.socket</filename>, or
|
||||
<filename>.timer</filename> unit, that activates a <filename>.service</filename> unit when elapsing.</para>
|
||||
|
||||
<para>If a command is run as transient service unit, it will be started and managed by the service manager like any
|
||||
other service, and thus shows up in the output of <command>systemctl list-units</command> like any other unit. It
|
||||
@ -88,12 +102,13 @@
|
||||
list-units</command>. Execution in this case is synchronous, and will return only when the command finishes. This
|
||||
mode is enabled via the <option>--scope</option> switch (see below). </para>
|
||||
|
||||
<para>If a command is run with timer options such as <option>--on-calendar=</option> (see below), a transient timer
|
||||
unit is created alongside the service unit for the specified command. Only the transient timer unit is started
|
||||
immediately, the transient service unit will be started when the timer elapses. If the <option>--unit=</option>
|
||||
option is specified, the <replaceable>COMMAND</replaceable> may be omitted. In this case,
|
||||
<command>systemd-run</command> creates only a <filename>.timer</filename> unit that invokes the specified unit when
|
||||
elapsing.</para>
|
||||
<para>If a command is run with path, socket, or timer options such as <option>--on-calendar=</option> (see below),
|
||||
a transient path, socket, or timer unit is created alongside the service unit for the specified command. Only the
|
||||
transient path, socket, or timer unit is started immediately, the transient service unit will be triggered by the
|
||||
path, socket, or timer unit. If the <option>--unit=</option> option is specified, the
|
||||
<replaceable>COMMAND</replaceable> may be omitted. In this case, <command>systemd-run</command> creates only a
|
||||
<filename>.path</filename>, <filename>.socket</filename>, or <filename>.timer</filename> unit that triggers the
|
||||
specified unit.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@ -140,8 +155,8 @@
|
||||
<varlistentry>
|
||||
<term><option>--description=</option></term>
|
||||
|
||||
<listitem><para>Provide a description for the service, scope or timer unit. If not specified, the command
|
||||
itself will be used as a description. See <varname>Description=</varname> in
|
||||
<listitem><para>Provide a description for the service, scope, path, socket, or timer unit. If not specified,
|
||||
the command itself will be used as a description. See <varname>Description=</varname> in
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
@ -155,6 +170,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-r</option></term>
|
||||
<term><option>--remain-after-exit</option></term>
|
||||
|
||||
<listitem><para>After the service process has terminated, keep the service around until it is explicitly
|
||||
@ -278,7 +294,8 @@
|
||||
command. See <varname>OnActiveSec=</varname>, <varname>OnBootSec=</varname>, <varname>OnStartupSec=</varname>,
|
||||
<varname>OnUnitActiveSec=</varname> and <varname>OnUnitInactiveSec=</varname> in
|
||||
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
details. These options may not be combined with <option>--scope</option> or <option>--pty</option>.</para>
|
||||
details. These options are shortcuts for <command>--timer-property=</command> with the relevant properties.
|
||||
These options may not be combined with <option>--scope</option> or <option>--pty</option>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -287,20 +304,23 @@
|
||||
|
||||
<listitem><para>Defines a calendar timer for starting the specified command. See <varname>OnCalendar=</varname>
|
||||
in <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>. This
|
||||
option may not be combined with <option>--scope</option> or <option>--pty</option>.</para>
|
||||
option is a shortcut for <command>--timer-property=OnCalendar=</command>. This option may not be combined with
|
||||
<option>--scope</option> or <option>--pty</option>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--path-property=</option></term>
|
||||
<term><option>--socket-property=</option></term>
|
||||
<term><option>--timer-property=</option></term>
|
||||
|
||||
<listitem><para>Sets a property on the timer unit that is created. This option is similar to
|
||||
<option>--property=</option> but applies to the transient timer unit rather than the transient service unit
|
||||
created. This option only has an effect in conjunction with <option>--on-active=</option>,
|
||||
<option>--on-boot=</option>, <option>--on-startup=</option>, <option>--on-unit-active=</option>,
|
||||
<option>--on-unit-inactive=</option> or <option>--on-calendar=</option>. This option takes an assignment in the
|
||||
same format as <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
|
||||
<command>set-property</command> command.</para> </listitem>
|
||||
<listitem><para>Sets a property on the path, socket, or timer unit that is created. This option is similar to
|
||||
<option>--property=</option> but applies to the transient path, socket, or timer unit rather than the
|
||||
transient service unit created. This option takes an assignment in the same format as
|
||||
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
|
||||
<command>set-property</command> command. These options may not be combined with
|
||||
<option>--scope</option> or <option>--pty</option>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@ -323,7 +343,7 @@
|
||||
completed). On exit, terse information about the unit's runtime is shown, including total runtime (as well as
|
||||
CPU usage, if <option>--property=CPUAccounting=1</option> was set) and the exit code and status of the main
|
||||
process. This output may be suppressed with <option>--quiet</option>. This option may not be combined with
|
||||
<option>--no-block</option>, <option>--scope</option> or the various timer options.</para></listitem>
|
||||
<option>--no-block</option>, <option>--scope</option> or the various path, socket, or timer options.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@ -352,8 +372,8 @@
|
||||
|
||||
<para>All command line arguments after the first non-option
|
||||
argument become part of the command line of the launched
|
||||
process. If a command is run as service unit, its first argument
|
||||
needs to be an absolute binary path.</para>
|
||||
process. If a command is run as service unit, the first argument
|
||||
needs to be an absolute program path.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -62,8 +62,9 @@
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><command>systemd-socket-activate</command> may be used to launch a socket-activated service binary from the command
|
||||
line for testing purposes. It may also be used to launch individual instances of the service binary per connection.
|
||||
<para><command>systemd-socket-activate</command> may be used to launch a socket-activated service program from the
|
||||
command line for testing purposes. It may also be used to launch individual instances of the service program per
|
||||
connection.
|
||||
</para>
|
||||
|
||||
<para>The daemon to launch and its options should be specified
|
||||
@ -97,7 +98,7 @@
|
||||
<term><option>-a</option></term>
|
||||
<term><option>--accept</option></term>
|
||||
|
||||
<listitem><para>Launch an instance of the service binary for each connection and pass the connection
|
||||
<listitem><para>Launch an instance of the service program for each connection and pass the connection
|
||||
socket.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -206,7 +206,7 @@
|
||||
|
||||
<programlisting># /etc/systemd/dnssd/http.dnssd
|
||||
[Service]
|
||||
Name=%h
|
||||
Name=%H
|
||||
Type=_http._tcp
|
||||
Port=80
|
||||
TxtText=path=/stats/index.html t=temperature_sensor</programlisting>
|
||||
|
@ -376,12 +376,14 @@ CapabilityBoundingSet=~CAP_B CAP_C</programlisting>
|
||||
<listitem><para>Takes a boolean argument. If true, ensures that the service process and all its children can
|
||||
never gain new privileges through <function>execve()</function> (e.g. via setuid or setgid bits, or filesystem
|
||||
capabilities). This is the simplest and most effective way to ensure that a process and its children can never
|
||||
elevate privileges again. Defaults to false, but certain settings force <varname>NoNewPrivileges=yes</varname>,
|
||||
ignoring the value of this setting. This is the case when <varname>SystemCallFilter=</varname>,
|
||||
elevate privileges again. Defaults to false, but certain settings override this and ignore the value of this
|
||||
setting. This is the case when <varname>SystemCallFilter=</varname>,
|
||||
<varname>SystemCallArchitectures=</varname>, <varname>RestrictAddressFamilies=</varname>,
|
||||
<varname>RestrictNamespaces=</varname>, <varname>PrivateDevices=</varname>,
|
||||
<varname>ProtectKernelTunables=</varname>, <varname>ProtectKernelModules=</varname>,
|
||||
<varname>MemoryDenyWriteExecute=</varname>, or <varname>RestrictRealtime=</varname> are specified. Also see
|
||||
<varname>MemoryDenyWriteExecute=</varname>, <varname>RestrictRealtime=</varname>, or
|
||||
<varname>LockPersonality=</varname> are specified. Note that even if this setting is overridden by them,
|
||||
<command>systemctl show</command> shows the original value of this setting. Also see
|
||||
<ulink url="https://www.kernel.org/doc/html/latest/userspace-api/no_new_privs.html">No New Privileges
|
||||
Flag</ulink>. </para></listitem>
|
||||
</varlistentry>
|
||||
|
@ -261,7 +261,7 @@
|
||||
|
||||
<para>Of these two rules the first rule is probably the more
|
||||
important one and breaks the second one sometimes. Hence,
|
||||
when deciding whether to user argv[1], argv[2], or argv[3],
|
||||
when deciding whether to use argv[1], argv[2], or argv[3],
|
||||
your default choice should probably be argv[1].</para>
|
||||
</listitem>
|
||||
|
||||
@ -336,6 +336,7 @@ find $dir</programlisting>
|
||||
<citerefentry><refentrytitle>systemd-getty-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-rc-local-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-sysv-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
|
@ -339,7 +339,7 @@
|
||||
<varlistentry>
|
||||
<term><varname>_STREAM_ID=</varname></term>
|
||||
<listitem>
|
||||
<para>Only applies to <literal>_TRANSPORT=stream</literal> records: specifies a randomized 128bit ID assigned
|
||||
<para>Only applies to <literal>_TRANSPORT=stdout</literal> records: specifies a randomized 128bit ID assigned
|
||||
to the stream connection when it was first created. This ID is useful to reconstruct individual log streams
|
||||
from the log records: all log records carrying the same stream ID originate from the same stream.</para>
|
||||
</listitem>
|
||||
@ -347,7 +347,7 @@
|
||||
<varlistentry>
|
||||
<term><varname>_LINE_BREAK=</varname></term>
|
||||
<listitem>
|
||||
<para>Only applies to <literal>_TRANSPORT=stream</literal> records: indicates that the log message in the
|
||||
<para>Only applies to <literal>_TRANSPORT=stdout</literal> records: indicates that the log message in the
|
||||
standard output/error stream was not terminated with a normal newline character (<literal>\n</literal>,
|
||||
i.e. ASCII 10). Specifically, when set this field is one of <option>nul</option> (in case the line was
|
||||
terminated by a NUL byte), <option>line-max</option> (in case the maximum log line length was reached, as
|
||||
|
@ -172,6 +172,17 @@
|
||||
for details.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>KernelVersion=</varname></term>
|
||||
<listitem>
|
||||
<para>Checks whether the kernel version (as reported by <command>uname -r</command>) matches a certain
|
||||
expression (or if prefixed with the exclamation mark does not match it). See
|
||||
<literal>ConditionKernelVersion=</literal> in
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
details.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>Architecture=</varname></term>
|
||||
<listitem>
|
||||
@ -442,6 +453,8 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Defaults to <literal>off</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
|
@ -71,18 +71,22 @@
|
||||
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
which define the execution environment the
|
||||
<citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
binary is executed in, and in
|
||||
program is executed in, and in
|
||||
<citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
which define the way the processes are terminated, and in
|
||||
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
which configure resource control settings for the processes of the
|
||||
service. Note that the User= and Group= options are not
|
||||
particularly useful for mount units specifying a
|
||||
<literal>Type=</literal> option or using configuration not
|
||||
specified in <filename>/etc/fstab</filename>;
|
||||
service.</para>
|
||||
|
||||
<para>Note that the options <varname>User=</varname> and
|
||||
<varname>Group=</varname> are not useful for mount units.
|
||||
systemd passes two parameters to
|
||||
<citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>;
|
||||
the values of <varname>What=</varname> and <varname>Where=</varname>.
|
||||
When invoked in this way,
|
||||
<citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
will refuse options that are not listed in
|
||||
<filename>/etc/fstab</filename> if it is not run as UID 0.</para>
|
||||
does not read any options from <filename>/etc/fstab</filename>, and
|
||||
must be run as UID 0.</para>
|
||||
|
||||
<para>Mount units must be named after the mount point directories they control. Example: the mount point <filename
|
||||
noindex='true'>/home/lennart</filename> must be configured in a unit file <filename>home-lennart.mount</filename>.
|
||||
|
@ -184,6 +184,9 @@
|
||||
<entry>The virtual CAN tunnel driver (vxcan). Similar to the virtual ethernet driver veth, vxcan implements a local CAN traffic tunnel between two virtual CAN network devices. When creating a vxcan, two vxcan devices are created as pair. When one end receives the packet it appears on its pair and vice versa. The vxcan can be used for cross namespace communication.
|
||||
</entry></row>
|
||||
|
||||
<row><entry><varname>wireguard</varname></entry>
|
||||
<entry>WireGuard Secure Network Tunnel.</entry></row>
|
||||
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
@ -232,6 +235,16 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>KernelVersion=</varname></term>
|
||||
<listitem>
|
||||
<para>Checks whether the kernel version (as reported by <command>uname -r</command>) matches a certain
|
||||
expression (or if prefixed with the exclamation mark does not match it). See
|
||||
<literal>ConditionKernelVersion=</literal> in
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>Architecture=</varname></term>
|
||||
<listitem>
|
||||
@ -499,7 +512,15 @@
|
||||
<term><varname>Mode=</varname></term>
|
||||
<listitem>
|
||||
<para>The IPVLAN mode to use. The supported options are
|
||||
<literal>L2</literal> and <literal>L3</literal>.
|
||||
<literal>L2</literal>,<literal>L3</literal> and <literal>L3S</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>Flags=</varname></term>
|
||||
<listitem>
|
||||
<para>The IPVLAN flags to use. The supported options are
|
||||
<literal>bridge</literal>,<literal>private</literal> and <literal>vepa</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -871,6 +892,14 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>AllowLocalRemote=</varname></term>
|
||||
<listitem>
|
||||
<para>A boolean. When true allows tunnel traffic on <varname>ip6tnl</varname> devices where the remote endpoint is a local host address.
|
||||
Defaults to unset.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
<refsect1>
|
||||
@ -983,6 +1012,103 @@
|
||||
as the <literal>[Tun]</literal> section.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[WireGuard] Section Options</title>
|
||||
|
||||
<para>The <literal>[WireGuard]</literal> section accepts the following
|
||||
keys:</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>PrivateKey=</varname></term>
|
||||
<listitem>
|
||||
<para>The Base64 encoded private key for the interface. It can be
|
||||
generated using the <command>wg genkey</command> command
|
||||
(see <citerefentry project="wireguard"><refentrytitle>wg</refentrytitle><manvolnum>8</manvolnum></citerefentry>).
|
||||
This option is mandatory to use wireguard.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>ListenPort=</varname></term>
|
||||
<listitem>
|
||||
<para>Sets UDP port for listening. Takes either value between 1 and 65535
|
||||
or <literal>auto</literal>. If <literal>auto</literal> is specified,
|
||||
the port is automatically generated based on interface name.
|
||||
Defaults to <literal>auto</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>FwMark=</varname></term>
|
||||
<listitem>
|
||||
<para>Sets a firewall mark on outgoing wireguard packets from this interface.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[WireGuardPeer] Section Options</title>
|
||||
|
||||
<para>The <literal>[WireGuardPeer]</literal> section accepts the following
|
||||
keys:</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>PublicKey=</varname></term>
|
||||
<listitem>
|
||||
<para>Sets a Base64 encoded public key calculated by <command>wg pubkey</command>
|
||||
(see <citerefentry project="wireguard"><refentrytitle>wg</refentrytitle><manvolnum>8</manvolnum></citerefentry>)
|
||||
from a private key, and usually transmitted out of band to the
|
||||
author of the configuration file. This option is mandatory for this
|
||||
section.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>PresharedKey=</varname></term>
|
||||
<listitem>
|
||||
<para>Optional preshared key for the interface. It can be generated
|
||||
by the <command>wg genpsk</command> command. This option adds an
|
||||
additional layer of symmetric-key cryptography to be mixed into the
|
||||
already existing public-key cryptography, for post-quantum
|
||||
resistance.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>AllowedIPs=</varname></term>
|
||||
<listitem>
|
||||
<para>Sets a comma-separated list of IP (v4 or v6) addresses with CIDR masks
|
||||
from which this peer is allowed to send incoming traffic and to
|
||||
which outgoing traffic for this peer is directed. The catch-all
|
||||
0.0.0.0/0 may be specified for matching all IPv4 addresses, and
|
||||
::/0 may be specified for matching all IPv6 addresses. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>Endpoint=</varname></term>
|
||||
<listitem>
|
||||
<para>Sets an endpoint IP address or hostname, followed by a colon, and then
|
||||
a port number. This endpoint will be updated automatically once to
|
||||
the most recent source IP address and port of correctly
|
||||
authenticated packets from the peer at configuration time.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>PersistentKeepalive=</varname></term>
|
||||
<listitem>
|
||||
<para>Sets a seconds interval, between 1 and 65535 inclusive, of how often
|
||||
to send an authenticated empty packet to the peer for the purpose
|
||||
of keeping a stateful firewall or NAT mapping valid persistently.
|
||||
For example, if the interface very rarely sends traffic, but it
|
||||
might at anytime receive traffic from a peer, and it is behind NAT,
|
||||
the interface might benefit from having a persistent keepalive
|
||||
interval of 25 seconds. If set to 0 or "off", this option is
|
||||
disabled. By default or when unspecified, this option is off.
|
||||
Most users will not need this.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[Bond] Section Options</title>
|
||||
|
||||
@ -1365,6 +1491,21 @@ Name=macvtap-test
|
||||
Kind=macvtap
|
||||
</programlisting>
|
||||
</example>
|
||||
<example>
|
||||
<title>/etc/systemd/network/25-wireguard.netdev</title>
|
||||
<programlisting>[NetDev]
|
||||
Name=wg0
|
||||
Kind=wireguard
|
||||
|
||||
[WireGuard]
|
||||
PrivateKey=EEGlnEPYJV//kbvvIqxKkQwOiS+UENyPncC4bF46ong=
|
||||
ListenPort=51820
|
||||
|
||||
[WireGuardPeer]
|
||||
PublicKey=RDf+LSpeEre7YEIKaxg+wbpsNV7du+ktR99uBEtIiCA=
|
||||
AllowedIPs=fd31:bf08:57cb::/48,192.168.26.0/24
|
||||
Endpoint=wireguard.example.com:51820</programlisting>
|
||||
</example>
|
||||
</refsect1>
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
@ -193,6 +193,17 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>KernelVersion=</varname></term>
|
||||
<listitem>
|
||||
<para>Checks whether the kernel version (as reported by <command>uname -r</command>) matches a certain
|
||||
expression (or if prefixed with the exclamation mark does not match it). See
|
||||
<literal>ConditionKernelVersion=</literal> in
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
details.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>Architecture=</varname></term>
|
||||
<listitem>
|
||||
@ -656,8 +667,16 @@
|
||||
<varlistentry>
|
||||
<term><varname>IPv6PrefixDelegation=</varname></term>
|
||||
<listitem><para>Whether to enable or disable Router Advertisement sending on a link.
|
||||
Defaults to <literal>false</literal>. See the <literal>[IPv6PrefixDelegation]</literal>
|
||||
and the <literal>[IPv6Prefix]</literal> sections for configuration options.
|
||||
Allowed values are <literal>static</literal> which distributes prefixes as defined in
|
||||
the <literal>[IPv6PrefixDelegation]</literal> and any <literal>[IPv6Prefix]</literal>
|
||||
sections, <literal>dhcpv6</literal> which requests prefixes using a DHCPv6 client
|
||||
configured for another link and any values configured in the
|
||||
<literal>[IPv6PrefixDelegation]</literal> section while ignoring all static prefix
|
||||
configuration sections, <literal>yes</literal> which uses both static configuration
|
||||
and DHCPv6, and <literal>false</literal> which turns off IPv6 prefix delegation
|
||||
altogether. Defaults to <literal>false</literal>. See the
|
||||
<literal>[IPv6PrefixDelegation]</literal> and the <literal>[IPv6Prefix]</literal>
|
||||
sections for more configuration options.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -1056,6 +1075,33 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>InitialCongestionWindow=</varname></term>
|
||||
<listitem>
|
||||
<para>The TCP initial congestion window is used during the start of a TCP connection. During the start of a TCP
|
||||
session, when a client requests a resource, the server's initial congestion window determines how many data bytes
|
||||
will be sent during the initial burst of data. Takes a size in bytes between 1 and 4294967295 (2^32 - 1). The usual
|
||||
suffixes K, M, G are supported and are understood to the base of 1024. Defaults to unset.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>InitialAdvertisedReceiveWindow=</varname></term>
|
||||
<listitem>
|
||||
<para>The TCP initial advertised receive window is the amount of receive data (in bytes) that can initally be buffered at one time
|
||||
on a connection. The sending host can send only that amount of data before waiting for an acknowledgment and window update
|
||||
from the receiving host. Takes a size in bytes between 1 and 4294967295 (2^32 - 1). The usual suffixes K, M, G are supported
|
||||
and are understood to the base of 1024. Defaults to unset.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>QuickAck=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a boolean argument. When true enables TCP quick ack mode for the route. Defaults to unset.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
@ -1266,6 +1312,20 @@
|
||||
<para>Allow setting custom port for the DHCP client to listen on.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>RapidCommit=</varname></term>
|
||||
<listitem>
|
||||
<para>A boolean. The DHCPv6 client can obtain configuration parameters from a DHCPv6 server through
|
||||
a rapid two-message exchange (solicit and reply). When the rapid commit option is enabled by both
|
||||
the DHCPv6 client and the DHCPv6 server, the two-message exchange is used, rather than the default
|
||||
four-method exchange (solicit, advertise, request, and reply). The two-message exchange provides
|
||||
faster client configuration and is beneficial in environments in which networks are under a heavy load.
|
||||
See <ulink url="https://tools.ietf.org/html/rfc3315#section-17.2.1">RFC 3315</ulink> for details.
|
||||
Defaults to true.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
@ -82,7 +82,7 @@
|
||||
<citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
checks whether <filename>/system-update</filename> exists. If so, it (temporarily and for
|
||||
this boot only) redirects (i.e. symlinks) <filename>default.target</filename> to
|
||||
<filename>system-update.target</filename>, a special target that is pulls in the base system
|
||||
<filename>system-update.target</filename>, a special target that pulls in the base system
|
||||
(i.e. <filename>sysinit.target</filename>, so that all file systems are mounted but little
|
||||
else) and the system update units.</para>
|
||||
</listitem>
|
||||
|
@ -136,23 +136,26 @@
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Example</title>
|
||||
<title>Examples</title>
|
||||
|
||||
<example>
|
||||
<title>Default off example <filename>/usr/lib/systemd/system-preset/99-default.preset</filename>:</title>
|
||||
<title>Default to off</title>
|
||||
|
||||
<programlisting>disable *</programlisting>
|
||||
<programlisting># /usr/lib/systemd/system-preset/99-default.preset
|
||||
|
||||
disable *</programlisting>
|
||||
</example>
|
||||
|
||||
<para>This disables all units. Due to the filename prefix
|
||||
<literal>99-</literal>, it will be read last and hence can easily
|
||||
be overridden by spin or administrator preset policy or
|
||||
suchlike.</para>
|
||||
be overridden by spin or administrator preset policy.</para>
|
||||
|
||||
<example>
|
||||
<title>A GNOME spin example <filename>/usr/lib/systemd/system-preset/50-gnome.preset</filename>:</title>
|
||||
<title>A GNOME spin</title>
|
||||
|
||||
<programlisting>enable gdm.service
|
||||
<programlisting># /usr/lib/systemd/system-preset/50-gnome.preset
|
||||
|
||||
enable gdm.service
|
||||
enable colord.service
|
||||
enable accounts-daemon.service
|
||||
enable avahi-daemon.*</programlisting>
|
||||
@ -168,9 +171,11 @@ enable avahi-daemon.*</programlisting>
|
||||
example like the one from the first example above.</para>
|
||||
|
||||
<example>
|
||||
<title>Administrator policy <filename>/etc/systemd/system-preset/00-lennart.preset</filename>:</title>
|
||||
<title>Administrator policy</title>
|
||||
|
||||
<programlisting>enable httpd.service
|
||||
<programlisting># /etc/systemd/system-preset/00-lennart.preset
|
||||
|
||||
enable httpd.service
|
||||
enable sshd.service
|
||||
enable postfix.service
|
||||
disable *</programlisting>
|
||||
@ -179,8 +184,8 @@ disable *</programlisting>
|
||||
<para>This enables three specific services and disables all
|
||||
others. This is useful for administrators to specifically select
|
||||
the units to enable, and disable all others. Due to the filename
|
||||
prefix <literal>00-</literal> it will be read early and hence
|
||||
overrides all other preset policy files.</para>
|
||||
prefix <literal>00-</literal> it will be read early and
|
||||
override all other preset policy files.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -100,8 +100,6 @@
|
||||
late system shutdown should disable
|
||||
<varname>DefaultDependencies=</varname> option.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para></para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -228,10 +228,10 @@
|
||||
<varname>PrivateNetwork=</varname><option>yes</option>.</para>
|
||||
|
||||
<para>Behavior of <option>idle</option> is very similar to <option>simple</option>; however, actual execution
|
||||
of the service binary is delayed until all active jobs are dispatched. This may be used to avoid interleaving
|
||||
of the service program is delayed until all active jobs are dispatched. This may be used to avoid interleaving
|
||||
of output of shell services with the status output on the console. Note that this type is useful only to
|
||||
improve console output, it is not useful as a general unit ordering tool, and the effect of this service type
|
||||
is subject to a 5s time-out, after which the service binary is invoked anyway.</para>
|
||||
is subject to a 5s time-out, after which the service program is invoked anyway.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -264,16 +264,14 @@
|
||||
<varlistentry>
|
||||
<term><varname>PIDFile=</varname></term>
|
||||
|
||||
<listitem><para>Takes an absolute filename pointing to the
|
||||
PID file of this daemon. Use of this option is recommended for
|
||||
services where <varname>Type=</varname> is set to
|
||||
<option>forking</option>. systemd will read the PID of the
|
||||
main process of the daemon after start-up of the service.
|
||||
systemd will not write to the file configured here, although
|
||||
it will remove the file after the service has shut down if it
|
||||
still exists.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem><para>Takes an absolute path referring to the PID file of the service. Usage of this option is
|
||||
recommended for services where <varname>Type=</varname> is set to <option>forking</option>. The service manager
|
||||
will read the PID of the main process of the service from this file after start-up of the service. The service
|
||||
manager will not write to the file configured here, although it will remove the file after the service has shut
|
||||
down if it still exists. The PID file does not need to be owned by a privileged user, but if it is owned by an
|
||||
unprivileged user additional safety restrictions are enforced: the file may not be a symlink to a file owned by
|
||||
a different user (neither directly nor indirectly), and the PID file must refer to a process already belonging
|
||||
to the service.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@ -754,7 +752,8 @@
|
||||
limiting configured with <varname>StartLimitIntervalSec=</varname>
|
||||
and <varname>StartLimitBurst=</varname>, see
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details.</para>
|
||||
for details. A restarted service enters the failed state only
|
||||
after the start limits are reached.</para>
|
||||
|
||||
<para>Setting this to <option>on-failure</option> is the
|
||||
recommended choice for long-running services, in order to
|
||||
|
@ -277,17 +277,6 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>getty-pre.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special passive target unit. Users of this target
|
||||
are expected to pull it in the boot transaction via
|
||||
a dependency (e.g. <varname>Wants=</varname>). Order your
|
||||
unit before this unit if you want to make use of the console
|
||||
just before <filename>getty</filename> is started.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>graphical.target</filename></term>
|
||||
<listitem>
|
||||
@ -354,6 +343,29 @@
|
||||
<option>noauto</option> mount options set.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>initrd-root-device.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special initrd target unit that is reached when the root filesystem device is available, but before
|
||||
it has been mounted.
|
||||
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
and
|
||||
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
automatically setup the appropriate dependencies to make this happen.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>initrd-root-fs.target</filename></term>
|
||||
<listitem>
|
||||
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
automatically adds dependencies of type
|
||||
<varname>Before=</varname> to the
|
||||
<filename>sysroot.mount</filename> unit, which is generated
|
||||
from the kernel command line.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>kbrequest.target</filename></term>
|
||||
<listitem>
|
||||
@ -538,29 +550,6 @@
|
||||
SysV.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>initrd-root-device.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special initrd target unit that is reached when the root filesystem device is available, but before
|
||||
it has been mounted.
|
||||
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
and
|
||||
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
automatically setup the appropriate dependencies to make this happen.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>initrd-root-fs.target</filename></term>
|
||||
<listitem>
|
||||
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
automatically adds dependencies of type
|
||||
<varname>Before=</varname> to the
|
||||
<filename>sysroot.mount</filename> unit, which is generated
|
||||
from the kernel command line.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>runlevel2.target</filename></term>
|
||||
<term><filename>runlevel3.target</filename></term>
|
||||
@ -820,6 +809,17 @@
|
||||
stopped.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>getty-pre.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special passive target unit. Users of this target
|
||||
are expected to pull it in the boot transaction via
|
||||
a dependency (e.g. <varname>Wants=</varname>). Order your
|
||||
unit before this unit if you want to make use of the console
|
||||
just before <filename>getty</filename> is started.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>local-fs-pre.target</filename></term>
|
||||
<listitem>
|
||||
|
@ -72,7 +72,7 @@
|
||||
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
which define the execution environment the <citerefentry
|
||||
project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
binary is executed in, in
|
||||
program is executed in, in
|
||||
<citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
which define the way these processes are
|
||||
terminated, and in
|
||||
|
@ -505,8 +505,8 @@
|
||||
<listitem><para>Configures requirement dependencies on other units. If this unit gets activated, the units
|
||||
listed here will be activated as well. If one of the other units fails to activate, and an ordering dependency
|
||||
<varname>After=</varname> on the failing unit is set, this unit will not be started. Besides, with or without
|
||||
specifying <varname>After=</varname>, this unit will be deactivated if one of the other units get deactivated.
|
||||
This option may be specified more than once or multiple space-separated units may be
|
||||
specifying <varname>After=</varname>, this unit will be stopped if one of the other units is explicitly
|
||||
stopped. This option may be specified more than once or multiple space-separated units may be
|
||||
specified in one option in which case requirement dependencies for all listed names will be created. Note that
|
||||
requirement dependencies do not influence the order in which services are started or stopped. This has to be
|
||||
configured independently with the <varname>After=</varname> or <varname>Before=</varname> options. If a unit
|
||||
@ -665,7 +665,9 @@
|
||||
|
||||
<listitem><para>A space-separated list of one or more units
|
||||
that are activated when this unit enters the
|
||||
<literal>failed</literal> state.</para></listitem>
|
||||
<literal>failed</literal> state. A service unit using
|
||||
<varname>Restart=</varname> enters the failed state only after
|
||||
the start limits are reached.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@ -921,6 +923,7 @@
|
||||
<term><varname>ConditionVirtualization=</varname></term>
|
||||
<term><varname>ConditionHost=</varname></term>
|
||||
<term><varname>ConditionKernelCommandLine=</varname></term>
|
||||
<term><varname>ConditionKernelVersion=</varname></term>
|
||||
<term><varname>ConditionSecurity=</varname></term>
|
||||
<term><varname>ConditionCapability=</varname></term>
|
||||
<term><varname>ConditionACPower=</varname></term>
|
||||
@ -937,6 +940,7 @@
|
||||
<term><varname>ConditionFileIsExecutable=</varname></term>
|
||||
<term><varname>ConditionUser=</varname></term>
|
||||
<term><varname>ConditionGroup=</varname></term>
|
||||
<term><varname>ConditionControlGroupController=</varname></term>
|
||||
|
||||
<!-- We do not document ConditionNull=
|
||||
here, as it is not particularly
|
||||
@ -1047,6 +1051,17 @@
|
||||
the exact assignment is looked for with right and left hand
|
||||
side matching.</para>
|
||||
|
||||
<para><varname>ConditionKernelVersion=</varname> may be used to check whether the kernel version (as reported
|
||||
by <command>uname -r</command>) matches a certain expression (or if prefixed with the exclamation mark does not
|
||||
match it). The argument must be a single string. If the string starts with one of <literal><</literal>,
|
||||
<literal><=</literal>, <literal>=</literal>, <literal>>=</literal>, <literal>></literal> a relative
|
||||
version comparison is done, otherwise the specified string is matched with shell-style globs.</para>
|
||||
|
||||
<para>Note that using the kernel version string is an unreliable way to determine which features are supported
|
||||
by a kernel, because of the widespread practice of backporting drivers, features, and fixes from newer upstream
|
||||
kernels into older versions provided by distributions. Hence, this check is inherently unportable and should
|
||||
not be used for units which may be used on different distributions.</para>
|
||||
|
||||
<para><varname>ConditionSecurity=</varname> may be used to
|
||||
check whether the given security module is enabled on the
|
||||
system. Currently, the recognized values are
|
||||
@ -1164,6 +1179,18 @@
|
||||
auxiliary groups match the specified group or GID. This setting
|
||||
does not have a special value <literal>@system</literal>.</para>
|
||||
|
||||
<para><varname>ConditionControlGroupController=</varname> takes a
|
||||
cgroup controller name (eg. <option>cpu</option>), verifying that it is
|
||||
available for use on the system. For example, a particular controller
|
||||
may not be available if it was disabled on the kernel command line with
|
||||
<literal>cgroup_disable=</literal><replaceable>controller</replaceable>.
|
||||
Multiple controllers may be passed with a space separating them; in
|
||||
this case the condition will only pass if all listed controllers are
|
||||
available for use. Controllers unknown to systemd are ignored. Valid
|
||||
controllers are <option>cpu</option>, <option>cpuacct</option>,
|
||||
<option>io</option>, <option>blkio</option>, <option>memory</option>,
|
||||
<option>devices</option>, and <option>pids</option>.</para>
|
||||
|
||||
<para>If multiple conditions are specified, the unit will be
|
||||
executed if all of them apply (i.e. a logical AND is applied).
|
||||
Condition checks can be prefixed with a pipe symbol (|) in
|
||||
@ -1186,6 +1213,7 @@
|
||||
<term><varname>AssertVirtualization=</varname></term>
|
||||
<term><varname>AssertHost=</varname></term>
|
||||
<term><varname>AssertKernelCommandLine=</varname></term>
|
||||
<term><varname>AssertKernelVersion=</varname></term>
|
||||
<term><varname>AssertSecurity=</varname></term>
|
||||
<term><varname>AssertCapability=</varname></term>
|
||||
<term><varname>AssertACPower=</varname></term>
|
||||
@ -1202,6 +1230,7 @@
|
||||
<term><varname>AssertFileIsExecutable=</varname></term>
|
||||
<term><varname>AssertUser=</varname></term>
|
||||
<term><varname>AssertGroup=</varname></term>
|
||||
<term><varname>AssertControlGroupController=</varname></term>
|
||||
|
||||
<listitem><para>Similar to the <varname>ConditionArchitecture=</varname>,
|
||||
<varname>ConditionVirtualization=</varname>, …, condition settings described above, these settings add
|
||||
|
@ -273,6 +273,15 @@
|
||||
to all zeros.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--service-watchdogs=</option></term>
|
||||
|
||||
<listitem><para>Globally enable/disable all service watchdog timeouts and emergency
|
||||
actions. This setting may also be specified during boot, on the kernel
|
||||
command line via the <varname>systemd.service_watchdogs=</varname>
|
||||
option, see below. Defaults to enabled.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<xi:include href="standard-options.xml" xpointer="help" />
|
||||
<xi:include href="standard-options.xml" xpointer="version" />
|
||||
</variablelist>
|
||||
@ -297,11 +306,12 @@
|
||||
states are called "activating", "deactivating"). A special
|
||||
"failed" state is available as well, which is very similar to
|
||||
"inactive" and is entered when the service failed in some way
|
||||
(process returned error code on exit, or crashed, or an operation
|
||||
timed out). If this state is entered, the cause will be logged,
|
||||
for later reference. Note that the various unit types may have a
|
||||
number of additional substates, which are mapped to the five
|
||||
generalized unit states described here.</para>
|
||||
(process returned error code on exit, or crashed, an operation
|
||||
timed out, or after too many restarts). If this state is entered,
|
||||
the cause will be logged, for later reference. Note that the
|
||||
various unit types may have a number of additional substates,
|
||||
which are mapped to the five generalized unit states described
|
||||
here.</para>
|
||||
|
||||
<para>The following unit types are available:</para>
|
||||
|
||||
@ -404,7 +414,7 @@
|
||||
<para>Processes systemd spawns are placed in individual Linux
|
||||
control groups named after the unit which they belong to in the
|
||||
private systemd hierarchy. (see <ulink
|
||||
url="https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>
|
||||
url="https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt">cgroups.txt</ulink>
|
||||
for more information about control groups, or short "cgroups").
|
||||
systemd uses this to effectively keep track of processes. Control
|
||||
group information is maintained in the kernel, and is accessible
|
||||
@ -573,7 +583,7 @@
|
||||
<listitem><para>Upon receiving this signal the systemd system
|
||||
manager will start the
|
||||
<filename>ctrl-alt-del.target</filename> unit. This is mostly
|
||||
equivalent to <command>systemctl start ctl-alt-del.target
|
||||
equivalent to <command>systemctl start ctrl-alt-del.target
|
||||
--job-mode=replace-irreversible</command>. If this signal is
|
||||
received more than 7 times per 2s, an immediate reboot is
|
||||
triggered. Note that pressing Ctrl-Alt-Del on the console
|
||||
@ -963,6 +973,19 @@
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>systemd.service_watchdogs=</varname></term>
|
||||
|
||||
<listitem><para>Takes a boolean argument. If disabled, all service runtime
|
||||
watchdogs (<option>WatchdogSec=</option>) and emergency actions (e.g.
|
||||
<option>OnFailure=</option> or <option>StartLimitAction=</option>) are
|
||||
ignored by the system manager (PID 1); see
|
||||
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
Defaults to enabled, i.e. watchdogs and failure actions are processed
|
||||
normally. The hardware watchdog is not affected by this
|
||||
option.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>systemd.show_status</varname></term>
|
||||
|
||||
|
@ -191,7 +191,10 @@ u root 0 "Superuser" /root</programlisting>
|
||||
in the file system. In this case, the UID/GID is read from the
|
||||
path's owner/group. This is useful to create users whose UID/GID
|
||||
match the owners of pre-existing files (such as SUID or SGID
|
||||
binaries).</para>
|
||||
binaries).
|
||||
The syntax <literal><replaceable>uid</replaceable>:<replaceable>gid</replaceable></literal> is also supported to
|
||||
allow creating user and group pairs with different numeric UID and GID values. The group with the indicated GID must get created explicitly before or it must already exist.
|
||||
</para>
|
||||
|
||||
<para>For <varname>m</varname> lines, this field should contain
|
||||
the group name to add to a user to.</para>
|
||||
|
@ -147,9 +147,8 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><varname>f</varname></term>
|
||||
<listitem><para>Create a file if it does not exist yet. If
|
||||
the argument parameter is given, it will be written to the
|
||||
file. Does not follow symlinks.</para></listitem>
|
||||
<listitem><para>Create a file if it does not exist yet. If the argument parameter is given and the file did
|
||||
not exist yet, it will be written to the file. Does not follow symlinks.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@ -484,6 +483,13 @@ r! /tmp/.X[0-9]*-lock</programlisting>
|
||||
The second line in contrast to the first one would break a
|
||||
running system, and will only be executed with
|
||||
<option>--boot</option>.</para>
|
||||
|
||||
<para>Note that for all line types that result in creation of any kind of file node
|
||||
(i.e. <varname>f</varname>/<varname>F</varname>,
|
||||
<varname>d</varname>/<varname>D</varname>/<varname>v</varname>/<varname>q</varname>/<varname>Q</varname>,
|
||||
<varname>p</varname>, <varname>L</varname>, <varname>c</varname>/<varname>b</varname> and <varname>C</varname>)
|
||||
leading directories are implicitly created if needed, owned by root with an access mode of 0755. In order to
|
||||
create them with different modes or ownership make sure to add appropriate <varname>d</varname> lines.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
@ -578,21 +584,14 @@ r! /tmp/.X[0-9]*-lock</programlisting>
|
||||
<refsect2>
|
||||
<title>Argument</title>
|
||||
|
||||
<para>For <varname>L</varname> lines determines the destination
|
||||
path of the symlink. For <varname>c</varname> and
|
||||
<varname>b</varname>, determines the major/minor of the device
|
||||
node, with major and minor formatted as integers, separated by
|
||||
<literal>:</literal>, e.g. <literal>1:3</literal>. For
|
||||
<varname>f</varname>, <varname>F</varname>, and
|
||||
<varname>w</varname>, the argument may be used to specify a short string that
|
||||
is written to the file, suffixed by a newline. For
|
||||
<varname>C</varname>, specifies the source file or
|
||||
directory. For <varname>t</varname> and <varname>T</varname>,
|
||||
determines extended attributes to be set. For
|
||||
<varname>a</varname> and <varname>A</varname>, determines ACL
|
||||
attributes to be set. For <varname>h</varname> and
|
||||
<varname>H</varname>, determines the file attributes to
|
||||
set. Ignored for all other lines.</para>
|
||||
<para>For <varname>L</varname> lines determines the destination path of the symlink. For <varname>c</varname> and
|
||||
<varname>b</varname>, determines the major/minor of the device node, with major and minor formatted as integers,
|
||||
separated by <literal>:</literal>, e.g. <literal>1:3</literal>. For <varname>f</varname>, <varname>F</varname>,
|
||||
and <varname>w</varname>, the argument may be used to specify a short string that is written to the file,
|
||||
suffixed by a newline. For <varname>C</varname>, specifies the source file or directory. For <varname>t</varname>
|
||||
and <varname>T</varname>, determines extended attributes to be set. For <varname>a</varname> and
|
||||
<varname>A</varname>, determines ACL attributes to be set. For <varname>h</varname> and <varname>H</varname>,
|
||||
determines the file attributes to set. Ignored for all other lines.</para>
|
||||
|
||||
<para>This field can contain specifiers, see below.</para>
|
||||
</refsect2>
|
||||
@ -697,7 +696,7 @@ d /run/uscreens 0755 root screen 10d12h
|
||||
</programlisting>
|
||||
|
||||
<para>Contents of <filename>/run/screens</filename> and /run/uscreens will
|
||||
cleaned up after 10 and 10½ days, respectively.</para>
|
||||
be cleaned up after 10 and 10½ days, respectively.</para>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
|
@ -465,6 +465,9 @@
|
||||
<para>Starting daemons or other long-running processes is not appropriate
|
||||
for udev; the forked processes, detached or not, will be unconditionally
|
||||
killed after the event handling has finished.</para>
|
||||
<para>Note that running programs that access the network or mount/unmount
|
||||
filesystems is not allowed inside of udev rules, due to the default sandbox
|
||||
that is enforced on <filename>systemd-udevd.service</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
305
meson.build
305
meson.build
@ -16,7 +16,7 @@
|
||||
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
project('systemd', 'c',
|
||||
version : '236',
|
||||
version : '237',
|
||||
license : 'LGPLv2+',
|
||||
default_options: [
|
||||
'c_std=gnu99',
|
||||
@ -27,8 +27,8 @@ project('systemd', 'c',
|
||||
meson_version : '>= 0.41',
|
||||
)
|
||||
|
||||
libsystemd_version = '0.20.0'
|
||||
libudev_version = '1.6.8'
|
||||
libsystemd_version = '0.21.0'
|
||||
libudev_version = '1.6.9'
|
||||
|
||||
# We need the same data in three different formats, ugh!
|
||||
# Also, for hysterical reasons, we use different variable
|
||||
@ -67,7 +67,7 @@ endif
|
||||
|
||||
sysvinit_path = get_option('sysvinit-path')
|
||||
sysvrcnd_path = get_option('sysvrcnd-path')
|
||||
have = sysvinit_path != '' or sysvrcnd_path != ''
|
||||
have = sysvinit_path != '' and sysvrcnd_path != ''
|
||||
conf.set10('HAVE_SYSV_COMPAT', have,
|
||||
description : 'SysV init scripts and rcN.d links are supported')
|
||||
m4_defines += have ? ['-DHAVE_SYSV_COMPAT'] : []
|
||||
@ -259,11 +259,27 @@ substs.set('RC_LOCAL_SCRIPT_PATH_STOP', get_option('halt-l
|
||||
cc = meson.get_compiler('c')
|
||||
pkgconfig = import('pkgconfig')
|
||||
check_compilation_sh = find_program('tools/meson-check-compilation.sh')
|
||||
meson_build_sh = find_program('tools/meson-build.sh')
|
||||
|
||||
cxx = find_program('c++', required : false)
|
||||
if cxx.found()
|
||||
# Used only for tests
|
||||
add_languages('cpp')
|
||||
if get_option('tests') != 'false'
|
||||
cxx = find_program('c++', required : false)
|
||||
if cxx.found()
|
||||
# Used only for tests
|
||||
add_languages('cpp')
|
||||
endif
|
||||
endif
|
||||
|
||||
want_ossfuzz = get_option('oss-fuzz')
|
||||
want_libfuzzer = get_option('llvm-fuzz')
|
||||
fuzzer_build = want_ossfuzz or want_libfuzzer
|
||||
if want_ossfuzz and want_libfuzzer
|
||||
error('only one of oss-fuzz and llvm-fuzz can be specified')
|
||||
endif
|
||||
if want_libfuzzer
|
||||
fuzzing_engine = meson.get_compiler('cpp').find_library('Fuzzer')
|
||||
endif
|
||||
if want_ossfuzz
|
||||
fuzzing_engine = meson.get_compiler('cpp').find_library('FuzzingEngine')
|
||||
endif
|
||||
|
||||
foreach arg : ['-Wextra',
|
||||
@ -300,7 +316,6 @@ foreach arg : ['-Wextra',
|
||||
'-fvisibility=hidden',
|
||||
'-fstack-protector',
|
||||
'-fstack-protector-strong',
|
||||
'-fPIE',
|
||||
'--param=ssp-buffer-size=4',
|
||||
]
|
||||
if cc.has_argument(arg)
|
||||
@ -308,6 +323,14 @@ foreach arg : ['-Wextra',
|
||||
endif
|
||||
endforeach
|
||||
|
||||
# the oss-fuzz fuzzers are not built with -fPIE, so don't
|
||||
# enable it when we are linking against them
|
||||
if not fuzzer_build
|
||||
if cc.has_argument('-fPIE')
|
||||
add_project_arguments('-fPIE', language : 'c')
|
||||
endif
|
||||
endif
|
||||
|
||||
# "negative" arguments: gcc on purpose does not return an error for "-Wno-"
|
||||
# arguments, just emits a warnings. So test for the "positive" version instead.
|
||||
foreach arg : ['unused-parameter',
|
||||
@ -358,11 +381,25 @@ foreach arg : ['-Wl,-z,relro',
|
||||
cc.cmd_array(), '-x', 'c', arg,
|
||||
'-include', link_test_c).returncode() == 0
|
||||
message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no'))
|
||||
if have
|
||||
if have and (arg != '-pie' or not fuzzer_build)
|
||||
add_project_link_arguments(arg, language : 'c')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
# Check if various sanitizers are supported
|
||||
sanitizers = []
|
||||
foreach arg : ['address']
|
||||
|
||||
have = run_command(check_compilation_sh,
|
||||
cc.cmd_array(), '-x', 'c',
|
||||
'-fsanitize=@0@'.format(arg),
|
||||
'-include', link_test_c).returncode() == 0
|
||||
message('@0@ sanitizer supported: @1@'.format(arg, have ? 'yes' : 'no'))
|
||||
if have
|
||||
sanitizers += arg
|
||||
endif
|
||||
endforeach
|
||||
|
||||
if get_option('buildtype') != 'debug'
|
||||
foreach arg : ['-ffunction-sections',
|
||||
'-fdata-sections']
|
||||
@ -422,7 +459,7 @@ foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
|
||||
['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
|
||||
['IFLA_VRF_TABLE', 'linux/if_link.h'],
|
||||
['IFLA_MACVLAN_FLAGS', 'linux/if_link.h'],
|
||||
['IFLA_IPVLAN_MODE', 'linux/if_link.h'],
|
||||
['IFLA_IPVLAN_FLAGS', 'linux/if_link.h'],
|
||||
['IFLA_PHYS_PORT_ID', 'linux/if_link.h'],
|
||||
['IFLA_BOND_AD_INFO', 'linux/if_link.h'],
|
||||
['IFLA_VLAN_PROTOCOL', 'linux/if_link.h'],
|
||||
@ -437,6 +474,7 @@ foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
|
||||
['IFLA_BRPORT_PROXYARP', 'linux/if_link.h'],
|
||||
['IFLA_BRPORT_LEARNING_SYNC', 'linux/if_link.h'],
|
||||
['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'],
|
||||
['IPVLAN_F_PRIVATE', 'linux/if_link.h'],
|
||||
['NDA_IFINDEX', 'linux/neighbour.h'],
|
||||
['IFA_FLAGS', 'linux/if_addr.h'],
|
||||
['FRA_UID_RANGE', 'linux/fib_rules.h'],
|
||||
@ -453,17 +491,17 @@ foreach ident : ['secure_getenv', '__secure_getenv']
|
||||
endforeach
|
||||
|
||||
foreach ident : [
|
||||
['memfd_create', '''#define _GNU_SOURCE
|
||||
#include <sys/mman.h>'''],
|
||||
['gettid', '''#include <sys/types.h>'''],
|
||||
['pivot_root', '''#include <stdlib.h>'''], # no known header declares pivot_root
|
||||
['name_to_handle_at', '''#define _GNU_SOURCE
|
||||
#include <sys/types.h>
|
||||
['memfd_create', '''#include <sys/mman.h>'''],
|
||||
['gettid', '''#include <sys/types.h>
|
||||
#include <unistd.h>'''],
|
||||
['pivot_root', '''#include <stdlib.h>
|
||||
#include <unistd.h>'''], # no known header declares pivot_root
|
||||
['name_to_handle_at', '''#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>'''],
|
||||
['setns', '''#define _GNU_SOURCE
|
||||
#include <sched.h>'''],
|
||||
['renameat2', '''#include <stdio.h>'''],
|
||||
['setns', '''#include <sched.h>'''],
|
||||
['renameat2', '''#include <stdio.h>
|
||||
#include <fcntl.h>'''],
|
||||
['kcmp', '''#include <linux/kcmp.h>'''],
|
||||
['keyctl', '''#include <sys/types.h>
|
||||
#include <keyutils.h>'''],
|
||||
@ -474,11 +512,11 @@ foreach ident : [
|
||||
['explicit_bzero' , '''#include <string.h>'''],
|
||||
]
|
||||
|
||||
have = cc.has_function(ident[0], prefix : ident[1])
|
||||
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
|
||||
conf.set10('HAVE_' + ident[0].to_upper(), have)
|
||||
endforeach
|
||||
|
||||
if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''')
|
||||
if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''', args : '-D_GNU_SOURCE')
|
||||
conf.set10('USE_SYS_RANDOM_H', true)
|
||||
conf.set10('HAVE_GETRANDOM', true)
|
||||
else
|
||||
@ -494,6 +532,7 @@ awk = find_program('awk')
|
||||
m4 = find_program('m4')
|
||||
stat = find_program('stat')
|
||||
git = find_program('git', required : false)
|
||||
env = find_program('env')
|
||||
|
||||
meson_make_symlink = meson.source_root() + '/tools/meson-make-symlink.sh'
|
||||
mkdir_p = 'mkdir -p $DESTDIR/@0@'
|
||||
@ -502,8 +541,7 @@ splash_bmp = files('test/splash.bmp')
|
||||
|
||||
# if -Dxxx-path option is found, use that. Otherwise, check in $PATH,
|
||||
# /usr/sbin, /sbin, and fall back to the default from middle column.
|
||||
progs = [['telinit', '/lib/sysvinit/telinit'],
|
||||
['quotaon', '/usr/sbin/quotaon' ],
|
||||
progs = [['quotaon', '/usr/sbin/quotaon' ],
|
||||
['quotacheck', '/usr/sbin/quotacheck' ],
|
||||
['kill', '/usr/bin/kill' ],
|
||||
['kmod', '/usr/bin/kmod' ],
|
||||
@ -530,6 +568,8 @@ foreach prog : progs
|
||||
substs.set(name, path)
|
||||
endforeach
|
||||
|
||||
conf.set_quoted('TELINIT', get_option('telinit-path'))
|
||||
|
||||
if run_command('ln', '--relative', '--help').returncode() != 0
|
||||
error('ln does not support --relative')
|
||||
endif
|
||||
@ -565,7 +605,8 @@ conf.set('GPERF_LEN_TYPE', gperf_len_type,
|
||||
if not cc.has_header('sys/capability.h')
|
||||
error('POSIX caps headers not found')
|
||||
endif
|
||||
foreach header : ['linux/btrfs.h',
|
||||
foreach header : ['crypt.h',
|
||||
'linux/btrfs.h',
|
||||
'linux/memfd.h',
|
||||
'linux/vm_sockets.h',
|
||||
'sys/auxv.h',
|
||||
@ -763,10 +804,11 @@ if not libcap.found()
|
||||
endif
|
||||
|
||||
libmount = dependency('mount',
|
||||
version : '>= 2.30')
|
||||
version : '>= 2.30',
|
||||
required : not fuzzer_build)
|
||||
|
||||
want_seccomp = get_option('seccomp')
|
||||
if want_seccomp != 'false'
|
||||
if want_seccomp != 'false' and not fuzzer_build
|
||||
libseccomp = dependency('libseccomp',
|
||||
version : '>= 2.3.1',
|
||||
required : want_seccomp == 'true')
|
||||
@ -779,7 +821,7 @@ conf.set10('HAVE_SECCOMP', have)
|
||||
m4_defines += have ? ['-DHAVE_SECCOMP'] : []
|
||||
|
||||
want_selinux = get_option('selinux')
|
||||
if want_selinux != 'false'
|
||||
if want_selinux != 'false' and not fuzzer_build
|
||||
libselinux = dependency('libselinux',
|
||||
version : '>= 2.1.9',
|
||||
required : want_selinux == 'true')
|
||||
@ -792,7 +834,7 @@ conf.set10('HAVE_SELINUX', have)
|
||||
m4_defines += have ? ['-DHAVE_SELINUX'] : []
|
||||
|
||||
want_apparmor = get_option('apparmor')
|
||||
if want_apparmor != 'false'
|
||||
if want_apparmor != 'false' and not fuzzer_build
|
||||
libapparmor = dependency('libapparmor',
|
||||
required : want_apparmor == 'true')
|
||||
have = libapparmor.found()
|
||||
@ -812,7 +854,7 @@ endif
|
||||
want_polkit = get_option('polkit')
|
||||
install_polkit = false
|
||||
install_polkit_pkla = false
|
||||
if want_polkit != 'false'
|
||||
if want_polkit != 'false' and not fuzzer_build
|
||||
install_polkit = true
|
||||
|
||||
libpolkit = dependency('polkit-gobject-1',
|
||||
@ -825,7 +867,7 @@ endif
|
||||
conf.set10('ENABLE_POLKIT', install_polkit)
|
||||
|
||||
want_acl = get_option('acl')
|
||||
if want_acl != 'false'
|
||||
if want_acl != 'false' and not fuzzer_build
|
||||
libacl = cc.find_library('acl', required : want_acl == 'true')
|
||||
have = libacl.found()
|
||||
else
|
||||
@ -836,7 +878,7 @@ conf.set10('HAVE_ACL', have)
|
||||
m4_defines += have ? ['-DHAVE_ACL'] : []
|
||||
|
||||
want_audit = get_option('audit')
|
||||
if want_audit != 'false'
|
||||
if want_audit != 'false' and not fuzzer_build
|
||||
libaudit = dependency('audit', required : want_audit == 'true')
|
||||
have = libaudit.found()
|
||||
else
|
||||
@ -846,7 +888,7 @@ endif
|
||||
conf.set10('HAVE_AUDIT', have)
|
||||
|
||||
want_blkid = get_option('blkid')
|
||||
if want_blkid != 'false'
|
||||
if want_blkid != 'false' and not fuzzer_build
|
||||
libblkid = dependency('blkid', required : want_blkid == 'true')
|
||||
have = libblkid.found()
|
||||
else
|
||||
@ -856,7 +898,7 @@ endif
|
||||
conf.set10('HAVE_BLKID', have)
|
||||
|
||||
want_kmod = get_option('kmod')
|
||||
if want_kmod != 'false'
|
||||
if want_kmod != 'false' and not fuzzer_build
|
||||
libkmod = dependency('libkmod',
|
||||
version : '>= 15',
|
||||
required : want_kmod == 'true')
|
||||
@ -868,7 +910,7 @@ endif
|
||||
conf.set10('HAVE_KMOD', have)
|
||||
|
||||
want_pam = get_option('pam')
|
||||
if want_pam != 'false'
|
||||
if want_pam != 'false' and not fuzzer_build
|
||||
libpam = cc.find_library('pam', required : want_pam == 'true')
|
||||
libpam_misc = cc.find_library('pam_misc', required : want_pam == 'true')
|
||||
have = libpam.found() and libpam_misc.found()
|
||||
@ -881,7 +923,7 @@ conf.set10('HAVE_PAM', have)
|
||||
m4_defines += have ? ['-DHAVE_PAM'] : []
|
||||
|
||||
want_microhttpd = get_option('microhttpd')
|
||||
if want_microhttpd != 'false'
|
||||
if want_microhttpd != 'false' and not fuzzer_build
|
||||
libmicrohttpd = dependency('libmicrohttpd',
|
||||
version : '>= 0.9.33',
|
||||
required : want_microhttpd == 'true')
|
||||
@ -894,7 +936,7 @@ conf.set10('HAVE_MICROHTTPD', have)
|
||||
m4_defines += have ? ['-DHAVE_MICROHTTPD'] : []
|
||||
|
||||
want_libcryptsetup = get_option('libcryptsetup')
|
||||
if want_libcryptsetup != 'false'
|
||||
if want_libcryptsetup != 'false' and not fuzzer_build
|
||||
libcryptsetup = dependency('libcryptsetup',
|
||||
version : '>= 1.6.0',
|
||||
required : want_libcryptsetup == 'true')
|
||||
@ -906,7 +948,7 @@ endif
|
||||
conf.set10('HAVE_LIBCRYPTSETUP', have)
|
||||
|
||||
want_libcurl = get_option('libcurl')
|
||||
if want_libcurl != 'false'
|
||||
if want_libcurl != 'false' and not fuzzer_build
|
||||
libcurl = dependency('libcurl',
|
||||
version : '>= 7.32.0',
|
||||
required : want_libcurl == 'true')
|
||||
@ -924,7 +966,7 @@ if want_libidn == 'true' and want_libidn2 == 'true'
|
||||
error('libidn and libidn2 cannot be requested simultaneously')
|
||||
endif
|
||||
|
||||
if want_libidn != 'false' and want_libidn2 != 'true'
|
||||
if want_libidn != 'false' and want_libidn2 != 'true' and not fuzzer_build
|
||||
libidn = dependency('libidn',
|
||||
required : want_libidn == 'true')
|
||||
have = libidn.found()
|
||||
@ -934,7 +976,7 @@ else
|
||||
endif
|
||||
conf.set10('HAVE_LIBIDN', have)
|
||||
m4_defines += have ? ['-DHAVE_LIBIDN'] : []
|
||||
if not have and want_libidn2 != 'false'
|
||||
if not have and want_libidn2 != 'false' and not fuzzer_build
|
||||
# libidn is used for both libidn and libidn2 objects
|
||||
libidn = dependency('libidn2',
|
||||
required : want_libidn2 == 'true')
|
||||
@ -946,7 +988,7 @@ conf.set10('HAVE_LIBIDN2', have)
|
||||
m4_defines += have ? ['-DHAVE_LIBIDN2'] : []
|
||||
|
||||
want_libiptc = get_option('libiptc')
|
||||
if want_libiptc != 'false'
|
||||
if want_libiptc != 'false' and not fuzzer_build
|
||||
libiptc = dependency('libiptc',
|
||||
required : want_libiptc == 'true')
|
||||
have = libiptc.found()
|
||||
@ -958,7 +1000,7 @@ conf.set10('HAVE_LIBIPTC', have)
|
||||
m4_defines += have ? ['-DHAVE_LIBIPTC'] : []
|
||||
|
||||
want_qrencode = get_option('qrencode')
|
||||
if want_qrencode != 'false'
|
||||
if want_qrencode != 'false' and not fuzzer_build
|
||||
libqrencode = dependency('libqrencode',
|
||||
required : want_qrencode == 'true')
|
||||
have = libqrencode.found()
|
||||
@ -969,7 +1011,7 @@ endif
|
||||
conf.set10('HAVE_QRENCODE', have)
|
||||
|
||||
want_gcrypt = get_option('gcrypt')
|
||||
if want_gcrypt != 'false'
|
||||
if want_gcrypt != 'false' and not fuzzer_build
|
||||
libgcrypt = cc.find_library('gcrypt', required : want_gcrypt == 'true')
|
||||
libgpg_error = cc.find_library('gpg-error', required : want_gcrypt == 'true')
|
||||
have = libgcrypt.found() and libgpg_error.found()
|
||||
@ -984,7 +1026,7 @@ endif
|
||||
conf.set10('HAVE_GCRYPT', have)
|
||||
|
||||
want_gnutls = get_option('gnutls')
|
||||
if want_gnutls != 'false'
|
||||
if want_gnutls != 'false' and not fuzzer_build
|
||||
libgnutls = dependency('gnutls',
|
||||
version : '>= 3.1.4',
|
||||
required : want_gnutls == 'true')
|
||||
@ -996,7 +1038,7 @@ endif
|
||||
conf.set10('HAVE_GNUTLS', have)
|
||||
|
||||
want_elfutils = get_option('elfutils')
|
||||
if want_elfutils != 'false'
|
||||
if want_elfutils != 'false' and not fuzzer_build
|
||||
libdw = dependency('libdw',
|
||||
required : want_elfutils == 'true')
|
||||
have = libdw.found()
|
||||
@ -1007,7 +1049,7 @@ endif
|
||||
conf.set10('HAVE_ELFUTILS', have)
|
||||
|
||||
want_zlib = get_option('zlib')
|
||||
if want_zlib != 'false'
|
||||
if want_zlib != 'false' and not fuzzer_build
|
||||
libz = dependency('zlib',
|
||||
required : want_zlib == 'true')
|
||||
have = libz.found()
|
||||
@ -1018,7 +1060,7 @@ endif
|
||||
conf.set10('HAVE_ZLIB', have)
|
||||
|
||||
want_bzip2 = get_option('bzip2')
|
||||
if want_bzip2 != 'false'
|
||||
if want_bzip2 != 'false' and not fuzzer_build
|
||||
libbzip2 = cc.find_library('bz2',
|
||||
required : want_bzip2 == 'true')
|
||||
have = libbzip2.found()
|
||||
@ -1029,7 +1071,7 @@ endif
|
||||
conf.set10('HAVE_BZIP2', have)
|
||||
|
||||
want_xz = get_option('xz')
|
||||
if want_xz != 'false'
|
||||
if want_xz != 'false' and not fuzzer_build
|
||||
libxz = dependency('liblzma',
|
||||
required : want_xz == 'true')
|
||||
have = libxz.found()
|
||||
@ -1040,7 +1082,7 @@ endif
|
||||
conf.set10('HAVE_XZ', have)
|
||||
|
||||
want_lz4 = get_option('lz4')
|
||||
if want_lz4 != 'false'
|
||||
if want_lz4 != 'false' and not fuzzer_build
|
||||
liblz4 = dependency('liblz4',
|
||||
required : want_lz4 == 'true')
|
||||
have = liblz4.found()
|
||||
@ -1051,7 +1093,7 @@ endif
|
||||
conf.set10('HAVE_LZ4', have)
|
||||
|
||||
want_xkbcommon = get_option('xkbcommon')
|
||||
if want_xkbcommon != 'false'
|
||||
if want_xkbcommon != 'false' and not fuzzer_build
|
||||
libxkbcommon = dependency('xkbcommon',
|
||||
version : '>= 0.3.0',
|
||||
required : want_xkbcommon == 'true')
|
||||
@ -1062,8 +1104,19 @@ else
|
||||
endif
|
||||
conf.set10('HAVE_XKBCOMMON', have)
|
||||
|
||||
want_pcre2 = get_option('pcre2')
|
||||
if want_pcre2 != 'false'
|
||||
libpcre2 = dependency('libpcre2-8',
|
||||
required : want_pcre2 == 'true')
|
||||
have = libpcre2.found()
|
||||
else
|
||||
have = false
|
||||
libpcre2 = []
|
||||
endif
|
||||
conf.set10('HAVE_PCRE2', have)
|
||||
|
||||
want_glib = get_option('glib')
|
||||
if want_glib != 'false'
|
||||
if want_glib != 'false' and not fuzzer_build
|
||||
libglib = dependency('glib-2.0',
|
||||
version : '>= 2.22.0',
|
||||
required : want_glib == 'true')
|
||||
@ -1082,7 +1135,7 @@ endif
|
||||
conf.set10('HAVE_GLIB', have)
|
||||
|
||||
want_dbus = get_option('dbus')
|
||||
if want_dbus != 'false'
|
||||
if want_dbus != 'false' and not fuzzer_build
|
||||
libdbus = dependency('dbus-1',
|
||||
version : '>= 1.3.2',
|
||||
required : want_dbus == 'true')
|
||||
@ -1094,6 +1147,9 @@ endif
|
||||
conf.set10('HAVE_DBUS', have)
|
||||
|
||||
default_dnssec = get_option('default-dnssec')
|
||||
if fuzzer_build
|
||||
default_dnssec = 'no'
|
||||
endif
|
||||
if default_dnssec != 'no' and conf.get('HAVE_GCRYPT') == 0
|
||||
message('default-dnssec cannot be set to yes or allow-downgrade when gcrypt is disabled. Setting default-dnssec to no.')
|
||||
default_dnssec = 'no'
|
||||
@ -1173,9 +1229,11 @@ endforeach
|
||||
|
||||
want_tests = get_option('tests')
|
||||
install_tests = get_option('install-tests')
|
||||
slow_tests = get_option('slow-tests')
|
||||
tests = []
|
||||
fuzzers = []
|
||||
|
||||
conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', get_option('slow-tests'))
|
||||
conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', slow_tests)
|
||||
|
||||
#####################################################################
|
||||
|
||||
@ -1231,14 +1289,10 @@ includes = include_directories('src/basic',
|
||||
'src/libsystemd/sd-netlink',
|
||||
'src/libsystemd/sd-network',
|
||||
'src/libsystemd-network',
|
||||
'.',
|
||||
)
|
||||
'.')
|
||||
|
||||
add_project_arguments('-include', 'config.h', language : 'c')
|
||||
|
||||
gcrypt_util_sources = files('src/shared/gcrypt-util.h',
|
||||
'src/shared/gcrypt-util.c')
|
||||
|
||||
subdir('po')
|
||||
subdir('catalog')
|
||||
subdir('src/systemd')
|
||||
@ -1258,15 +1312,16 @@ libjournal_core = static_library(
|
||||
libsystemd_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsystemd_sym)
|
||||
libsystemd = shared_library(
|
||||
'systemd',
|
||||
libsystemd_internal_sources,
|
||||
journal_internal_sources,
|
||||
'src/systemd/sd-id128.h', # pick a header file at random to work around old meson bug
|
||||
version : libsystemd_version,
|
||||
include_directories : includes,
|
||||
link_args : ['-shared',
|
||||
'-Wl,--version-script=' + libsystemd_sym_path],
|
||||
link_with : [libbasic],
|
||||
link_with : [libbasic,
|
||||
libbasic_gcrypt],
|
||||
link_whole : [libsystemd_static,
|
||||
libjournal_client],
|
||||
dependencies : [threads,
|
||||
libgcrypt,
|
||||
librt,
|
||||
libxz,
|
||||
liblz4],
|
||||
@ -1302,6 +1357,7 @@ subdir('src/vconsole')
|
||||
subdir('src/boot/efi')
|
||||
|
||||
subdir('src/test')
|
||||
subdir('src/fuzz')
|
||||
subdir('rules')
|
||||
subdir('test')
|
||||
|
||||
@ -1338,7 +1394,7 @@ foreach tuple : [['myhostname', 'ENABLE_MYHOSTNAME'],
|
||||
'-shared',
|
||||
'-Wl,--version-script=' + version_script_arg,
|
||||
'-Wl,--undefined'],
|
||||
link_with : [libsystemd_internal,
|
||||
link_with : [libsystemd_static,
|
||||
libbasic],
|
||||
dependencies : [threads,
|
||||
librt],
|
||||
@ -1420,7 +1476,8 @@ exe = executable('journalctl',
|
||||
dependencies : [threads,
|
||||
libqrencode,
|
||||
libxz,
|
||||
liblz4],
|
||||
liblz4,
|
||||
libpcre2],
|
||||
install_rpath : rootlibexecdir,
|
||||
install : true,
|
||||
install_dir : rootbindir)
|
||||
@ -1507,11 +1564,11 @@ endif
|
||||
if conf.get('ENABLE_RESOLVE') == 1
|
||||
executable('systemd-resolved',
|
||||
systemd_resolved_sources,
|
||||
gcrypt_util_sources,
|
||||
include_directories : includes,
|
||||
link_with : [libshared],
|
||||
link_with : [libshared,
|
||||
libbasic_gcrypt,
|
||||
libsystemd_resolve_core],
|
||||
dependencies : [threads,
|
||||
libgcrypt,
|
||||
libgpg_error,
|
||||
libm,
|
||||
libidn],
|
||||
@ -1521,11 +1578,11 @@ if conf.get('ENABLE_RESOLVE') == 1
|
||||
|
||||
exe = executable('systemd-resolve',
|
||||
systemd_resolve_sources,
|
||||
gcrypt_util_sources,
|
||||
include_directories : includes,
|
||||
link_with : [libshared],
|
||||
link_with : [libshared,
|
||||
libbasic_gcrypt,
|
||||
libsystemd_resolve_core],
|
||||
dependencies : [threads,
|
||||
libgcrypt,
|
||||
libgpg_error,
|
||||
libm,
|
||||
libidn],
|
||||
@ -1576,7 +1633,7 @@ if conf.get('ENABLE_LOGIND') == 1
|
||||
include_directories : includes,
|
||||
link_args : ['-shared',
|
||||
'-Wl,--version-script=' + version_script_arg],
|
||||
link_with : [libsystemd_internal,
|
||||
link_with : [libsystemd_static,
|
||||
libshared_static],
|
||||
dependencies : [threads,
|
||||
libpam,
|
||||
@ -2229,7 +2286,7 @@ if conf.get('ENABLE_HWDB') == 1
|
||||
'src/hwdb/hwdb.c',
|
||||
'src/libsystemd/sd-hwdb/hwdb-internal.h',
|
||||
include_directories : includes,
|
||||
link_with : [libudev_internal],
|
||||
link_with : [libudev_static],
|
||||
install_rpath : udev_rpath,
|
||||
install : true,
|
||||
install_dir : rootbindir)
|
||||
@ -2262,7 +2319,7 @@ exe = executable('systemd-udevd',
|
||||
c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
|
||||
link_with : [libudev_core,
|
||||
libsystemd_network,
|
||||
libudev_internal],
|
||||
libudev_static],
|
||||
dependencies : [threads,
|
||||
libkmod,
|
||||
libidn,
|
||||
@ -2275,10 +2332,11 @@ public_programs += [exe]
|
||||
|
||||
exe = executable('udevadm',
|
||||
udevadm_sources,
|
||||
c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
|
||||
include_directories : includes,
|
||||
link_with : [libudev_core,
|
||||
libsystemd_network,
|
||||
libudev_internal],
|
||||
libudev_static],
|
||||
dependencies : [threads,
|
||||
libkmod,
|
||||
libidn,
|
||||
@ -2352,7 +2410,7 @@ if conf.get('ENABLE_NETWORKD') == 1
|
||||
include_directories : includes,
|
||||
link_with : [libnetworkd_core,
|
||||
libsystemd_network,
|
||||
libudev_internal,
|
||||
libudev_static,
|
||||
libshared],
|
||||
dependencies : [threads],
|
||||
install_rpath : rootlibexecdir,
|
||||
@ -2404,8 +2462,9 @@ foreach tuple : tests
|
||||
timeout = type.split('=')[1].to_int()
|
||||
type = ''
|
||||
endif
|
||||
|
||||
if condition == '' or conf.get(condition) == 1
|
||||
if want_tests == 'false'
|
||||
message('Not compiling @0@ because tests is set to false'.format(name))
|
||||
elif condition == '' or conf.get(condition) == 1
|
||||
exe = executable(
|
||||
name,
|
||||
sources,
|
||||
@ -2454,6 +2513,39 @@ test('test-libudev-sym',
|
||||
|
||||
############################################################
|
||||
|
||||
fuzzer_exes = []
|
||||
|
||||
foreach tuple : fuzzers
|
||||
sources = tuple[0]
|
||||
link_with = tuple[1].length() > 0 ? tuple[1] : [libshared]
|
||||
dependencies = tuple[2]
|
||||
defs = tuple.length() >= 4 ? tuple[3] : []
|
||||
incs = tuple.length() >= 5 ? tuple[4] : includes
|
||||
|
||||
if fuzzer_build
|
||||
dependencies += fuzzing_engine
|
||||
else
|
||||
sources += 'src/fuzz/fuzz-main.c'
|
||||
endif
|
||||
|
||||
name = sources[0].split('/')[-1].split('.')[0]
|
||||
|
||||
fuzzer_exes += executable(
|
||||
name,
|
||||
sources,
|
||||
include_directories : [incs, include_directories('src/fuzz')],
|
||||
link_with : link_with,
|
||||
dependencies : dependencies,
|
||||
c_args : defs,
|
||||
install : false)
|
||||
endforeach
|
||||
|
||||
run_target('fuzzers',
|
||||
depends : fuzzer_exes,
|
||||
command : ['true'])
|
||||
|
||||
############################################################
|
||||
|
||||
make_directive_index_py = find_program('tools/make-directive-index.py')
|
||||
make_man_index_py = find_program('tools/make-man-index.py')
|
||||
xml_helper_py = find_program('tools/xml_helper.py')
|
||||
@ -2489,6 +2581,8 @@ install_data('README',
|
||||
'ENVIRONMENT.md',
|
||||
'LICENSE.GPL2',
|
||||
'LICENSE.LGPL2.1',
|
||||
'TRANSIENT-SETTINGS.md',
|
||||
'UIDS-GIDS.md',
|
||||
'src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
|
||||
install_dir : docdir)
|
||||
|
||||
@ -2508,6 +2602,50 @@ endforeach
|
||||
|
||||
############################################################
|
||||
|
||||
prev = ''
|
||||
foreach p : fuzz_regression_tests
|
||||
a = p.split('/')[-3]
|
||||
b = p.split('/')[-2]
|
||||
c = p.split('/')[-1]
|
||||
|
||||
if a == 'address'
|
||||
build = sanitize_address
|
||||
else
|
||||
error('unknown sanitizer @0@'.format(a))
|
||||
endif
|
||||
|
||||
name = '@1@:@0@'.format(a, b)
|
||||
|
||||
if name != prev
|
||||
if want_tests == 'false'
|
||||
message('Not compiling @0@ because tests is set to false'.format(name))
|
||||
elif not sanitizers.contains(a)
|
||||
message('Not compiling @0@ because @1@ sanitizer is not available'.format(name, a))
|
||||
elif slow_tests
|
||||
exe = custom_target(
|
||||
name,
|
||||
output : name,
|
||||
depends : build,
|
||||
command : [env, 'ln', '-fs',
|
||||
join_paths(build.full_path(), b),
|
||||
'@OUTPUT@'],
|
||||
build_by_default : true)
|
||||
else
|
||||
message('Not compiling @0@ because slow-tests is set to false'.format(name))
|
||||
endif
|
||||
endif
|
||||
prev = name
|
||||
|
||||
if want_tests != 'false' and slow_tests
|
||||
test(c, env, args : [exe.full_path(),
|
||||
join_paths(meson.source_root(),
|
||||
'test/fuzz-regressions',
|
||||
p)])
|
||||
endif
|
||||
endforeach
|
||||
|
||||
############################################################
|
||||
|
||||
if git.found()
|
||||
all_files = run_command(
|
||||
git,
|
||||
@ -2519,11 +2657,11 @@ if git.found()
|
||||
custom_target(
|
||||
'tags',
|
||||
output : 'tags',
|
||||
command : ['env', 'etags', '-o', '@0@/TAGS'.format(meson.current_source_dir())] + all_files)
|
||||
command : [env, 'etags', '-o', '@0@/TAGS'.format(meson.current_source_dir())] + all_files)
|
||||
custom_target(
|
||||
'ctags',
|
||||
output : 'ctags',
|
||||
command : ['env', 'ctags', '-o', '@0@/tags'.format(meson.current_source_dir())] + all_files)
|
||||
command : [env, 'ctags', '-o', '@0@/tags'.format(meson.current_source_dir())] + all_files)
|
||||
endif
|
||||
|
||||
if git.found()
|
||||
@ -2554,6 +2692,14 @@ endif
|
||||
|
||||
############################################################
|
||||
|
||||
meson_check_api_docs_sh = find_program('tools/meson-check-api-docs.sh')
|
||||
run_target(
|
||||
'check-api-docs',
|
||||
depends : [man, libsystemd, libudev],
|
||||
command : [meson_check_api_docs_sh, libsystemd.full_path(), libudev.full_path()])
|
||||
|
||||
############################################################
|
||||
|
||||
status = [
|
||||
'@0@ @1@'.format(meson.project_name(), meson.project_version()),
|
||||
|
||||
@ -2683,6 +2829,7 @@ foreach tuple : [
|
||||
['gnu-efi', have_gnu_efi],
|
||||
['kmod'],
|
||||
['xkbcommon'],
|
||||
['pcre2'],
|
||||
['blkid'],
|
||||
['dbus'],
|
||||
['glib'],
|
||||
|
@ -29,7 +29,8 @@ option('sysvinit-path', type : 'string', value : '/etc/init.d',
|
||||
description : 'the directory where the SysV init scripts are located')
|
||||
option('sysvrcnd-path', type : 'string', value : '/etc/rc.d',
|
||||
description : 'the base directory for SysV rcN.d directories')
|
||||
option('telinit-path', type : 'string', description : 'path to telinit')
|
||||
option('telinit-path', type : 'string', value : '/lib/sysvinit/telinit',
|
||||
description : 'path to telinit')
|
||||
option('rc-local', type : 'string',
|
||||
value : '/etc/rc.local')
|
||||
option('halt-local', type : 'string',
|
||||
@ -259,6 +260,8 @@ option('lz4', type : 'combo', choices : ['auto', 'true', 'false'],
|
||||
description : 'lz4 compression support')
|
||||
option('xkbcommon', type : 'combo', choices : ['auto', 'true', 'false'],
|
||||
description : 'xkbcommon keymap support')
|
||||
option('pcre2', type : 'combo', choices : ['auto', 'true', 'false'],
|
||||
description : 'regexp matching support using pcre2')
|
||||
option('glib', type : 'combo', choices : ['auto', 'true', 'false'],
|
||||
description : 'libglib support (for tests only)')
|
||||
option('dbus', type : 'combo', choices : ['auto', 'true', 'false'],
|
||||
@ -284,9 +287,14 @@ option('bashcompletiondir', type : 'string',
|
||||
option('zshcompletiondir', type : 'string',
|
||||
description : 'directory for zsh completion scripts ["no" disables]')
|
||||
|
||||
option('tests', type : 'combo', choices : ['true', 'unsafe'],
|
||||
option('tests', type : 'combo', choices : ['true', 'unsafe', 'false'],
|
||||
description : 'enable extra tests with =unsafe')
|
||||
option('slow-tests', type : 'boolean', value : 'false',
|
||||
description : 'run the slow tests by default')
|
||||
option('install-tests', type : 'boolean', value : 'false',
|
||||
description : 'install test executables')
|
||||
|
||||
option('oss-fuzz', type : 'boolean', value : 'false',
|
||||
description : 'build against oss-fuzz')
|
||||
option('llvm-fuzz', type : 'boolean', value : 'false',
|
||||
description : 'build against LLVM libFuzzer')
|
||||
|
@ -1,4 +1,5 @@
|
||||
#!/bin/sh -ex
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# This file is part of systemd.
|
||||
#
|
||||
|
2
po/cs.po
2
po/cs.po
@ -73,7 +73,7 @@ msgstr "Pro nastavení lokálního názvu stroje je vyžadováno ověření."
|
||||
|
||||
#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3
|
||||
msgid "Set static host name"
|
||||
msgstr "Nastavit statický název stoje"
|
||||
msgstr "Nastavit statický název stroje"
|
||||
|
||||
#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4
|
||||
msgid ""
|
||||
|
@ -78,7 +78,8 @@ KERNEL=="tun", MODE="0666", OPTIONS+="static_node=net/tun"
|
||||
|
||||
KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse"
|
||||
|
||||
KERNEL=="kvm", GROUP="kvm", MODE="@DEV_KVM_MODE@"
|
||||
# The static_node is required on s390x and ppc (they are using MODULE_ALIAS)
|
||||
KERNEL=="kvm", GROUP="kvm", MODE="@DEV_KVM_MODE@", OPTIONS+="static_node=kvm"
|
||||
|
||||
SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK += "ptp_kvm"
|
||||
|
||||
|
224
scripts/coverity.sh
Executable file
224
scripts/coverity.sh
Executable file
@ -0,0 +1,224 @@
|
||||
#!/bin/env bash
|
||||
|
||||
# Declare build command
|
||||
COVERITY_SCAN_BUILD_COMMAND="ninja -C cov-build"
|
||||
|
||||
# Environment check
|
||||
# Use default values if not set
|
||||
SCAN_URL=${SCAN_URL:="https://scan.coverity.com"}
|
||||
TOOL_BASE=${TOOL_BASE:="/tmp/coverity-scan-analysis"}
|
||||
UPLOAD_URL=${UPLOAD_URL:="https://scan.coverity.com/builds"}
|
||||
|
||||
# These must be set by environment
|
||||
echo -e "\033[33;1mNote: COVERITY_SCAN_PROJECT_NAME and COVERITY_SCAN_TOKEN are available on Project Settings page on scan.coverity.com\033[0m"
|
||||
[ -z "$COVERITY_SCAN_PROJECT_NAME" ] && echo "ERROR: COVERITY_SCAN_PROJECT_NAME must be set" && exit 1
|
||||
[ -z "$COVERITY_SCAN_NOTIFICATION_EMAIL" ] && echo "ERROR: COVERITY_SCAN_NOTIFICATION_EMAIL must be set" && exit 1
|
||||
[ -z "$COVERITY_SCAN_BRANCH_PATTERN" ] && echo "ERROR: COVERITY_SCAN_BRANCH_PATTERN must be set" && exit 1
|
||||
[ -z "$COVERITY_SCAN_BUILD_COMMAND" ] && echo "ERROR: COVERITY_SCAN_BUILD_COMMAND must be set" && exit 1
|
||||
[ -z "$COVERITY_SCAN_TOKEN" ] && echo "ERROR: COVERITY_SCAN_TOKEN must be set" && exit 1
|
||||
|
||||
# Do not run on pull requests
|
||||
if [ "${TRAVIS_PULL_REQUEST}" = "true" ]; then
|
||||
echo -e "\033[33;1mINFO: Skipping Coverity Analysis: branch is a pull request.\033[0m"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Verify this branch should run
|
||||
if [[ "${TRAVIS_BRANCH^^}" =~ "${COVERITY_SCAN_BRANCH_PATTERN^^}" ]]; then
|
||||
echo -e "\033[33;1mCoverity Scan configured to run on branch ${TRAVIS_BRANCH}\033[0m"
|
||||
else
|
||||
echo -e "\033[33;1mCoverity Scan NOT configured to run on branch ${TRAVIS_BRANCH}\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verify upload is permitted
|
||||
AUTH_RES=`curl -s --form project="$COVERITY_SCAN_PROJECT_NAME" --form token="$COVERITY_SCAN_TOKEN" $SCAN_URL/api/upload_permitted`
|
||||
if [ "$AUTH_RES" = "Access denied" ]; then
|
||||
echo -e "\033[33;1mCoverity Scan API access denied. Check COVERITY_SCAN_PROJECT_NAME and COVERITY_SCAN_TOKEN.\033[0m"
|
||||
exit 1
|
||||
else
|
||||
AUTH=`echo $AUTH_RES | python -c "import sys, json; print json.load(sys.stdin)['upload_permitted']"`
|
||||
if [ "$AUTH" = "True" ]; then
|
||||
echo -e "\033[33;1mCoverity Scan analysis authorized per quota.\033[0m"
|
||||
else
|
||||
WHEN=`echo $AUTH_RES | python -c "import sys; json; print json.load(sys.stdin)['next_upload_permitted_at']"`
|
||||
echo -e "\033[33;1mCoverity Scan analysis NOT authorized until $WHEN.\033[0m"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
TOOL_DIR=`find $TOOL_BASE -type d -name 'cov-analysis*'`
|
||||
export PATH="$TOOL_DIR/bin:$PATH"
|
||||
|
||||
# Disable CCACHE for cov-build to compilation units correctly
|
||||
export CCACHE_DISABLE=1
|
||||
|
||||
# FUNCTION DEFINITIONS
|
||||
# --------------------
|
||||
_help()
|
||||
{
|
||||
# displays help and exits
|
||||
cat <<-EOF
|
||||
USAGE: $0 [CMD] [OPTIONS]
|
||||
|
||||
CMD
|
||||
build Issue Coverity build
|
||||
upload Upload coverity archive for analysis
|
||||
Note: By default, archive is created from default results directory.
|
||||
To provide custom archive or results directory, see --result-dir
|
||||
and --tar options below.
|
||||
|
||||
OPTIONS
|
||||
-h,--help Display this menu and exits
|
||||
|
||||
Applicable to build command
|
||||
---------------------------
|
||||
-o,--out-dir Specify Coverity intermediate directory (defaults to 'cov-int')
|
||||
-t,--tar bool, archive the output to .tgz file (defaults to false)
|
||||
|
||||
Applicable to upload command
|
||||
----------------------------
|
||||
-d, --result-dir Specify result directory if different from default ('cov-int')
|
||||
-t, --tar ARCHIVE Use custom .tgz archive instead of intermediate directory or pre-archived .tgz
|
||||
(by default 'analysis-result.tgz'
|
||||
EOF
|
||||
return;
|
||||
}
|
||||
|
||||
_pack()
|
||||
{
|
||||
RESULTS_ARCHIVE=${RESULTS_ARCHIVE:-'analysis-results.tgz'}
|
||||
|
||||
echo -e "\033[33;1mTarring Coverity Scan Analysis results...\033[0m"
|
||||
tar czf $RESULTS_ARCHIVE $RESULTS_DIR
|
||||
SHA=`git rev-parse --short HEAD`
|
||||
|
||||
PACKED=true
|
||||
}
|
||||
|
||||
|
||||
_build()
|
||||
{
|
||||
echo -e "\033[33;1mRunning Coverity Scan Analysis Tool...\033[0m"
|
||||
local _cov_build_options=""
|
||||
#local _cov_build_options="--return-emit-failures 8 --parse-error-threshold 85"
|
||||
eval "${COVERITY_SCAN_BUILD_COMMAND_PREPEND}"
|
||||
COVERITY_UNSUPPORTED=1 cov-build --dir $RESULTS_DIR $_cov_build_options sh -c "$COVERITY_SCAN_BUILD_COMMAND"
|
||||
cov-import-scm --dir $RESULTS_DIR --scm git --log $RESULTS_DIR/scm_log.txt
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo -e "\033[33;1mCoverity Scan Build failed: $TEXT.\033[0m"
|
||||
return 1
|
||||
fi
|
||||
|
||||
[ -z $TAR ] || [ $TAR = false ] && return 0
|
||||
|
||||
if [ "$TAR" = true ]; then
|
||||
_pack
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
_upload()
|
||||
{
|
||||
# pack results
|
||||
[ -z $PACKED ] || [ $PACKED = false ] && _pack
|
||||
|
||||
# Upload results
|
||||
echo -e "\033[33;1mUploading Coverity Scan Analysis results...\033[0m"
|
||||
response=$(curl \
|
||||
--silent --write-out "\n%{http_code}\n" \
|
||||
--form project=$COVERITY_SCAN_PROJECT_NAME \
|
||||
--form token=$COVERITY_SCAN_TOKEN \
|
||||
--form email=$COVERITY_SCAN_NOTIFICATION_EMAIL \
|
||||
--form file=@$RESULTS_ARCHIVE \
|
||||
--form version=$SHA \
|
||||
--form description="Travis CI build" \
|
||||
$UPLOAD_URL)
|
||||
status_code=$(echo "$response" | sed -n '$p')
|
||||
if [ "$status_code" != "201" ]; then
|
||||
TEXT=$(echo "$response" | sed '$d')
|
||||
echo -e "\033[33;1mCoverity Scan upload failed: $TEXT.\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "\n\033[33;1mCoverity Scan Analysis completed succesfully.\033[0m"
|
||||
exit 0
|
||||
}
|
||||
|
||||
# PARSE COMMAND LINE OPTIONS
|
||||
# --------------------------
|
||||
|
||||
case $1 in
|
||||
-h|--help)
|
||||
_help
|
||||
exit 0
|
||||
;;
|
||||
build)
|
||||
CMD='build'
|
||||
TEMP=`getopt -o ho:t --long help,out-dir:,tar -n '$0' -- "$@"`
|
||||
_ec=$?
|
||||
[[ $_ec -gt 0 ]] && _help && exit $_ec
|
||||
shift
|
||||
;;
|
||||
upload)
|
||||
CMD='upload'
|
||||
TEMP=`getopt -o hd:t: --long help,result-dir:tar: -n '$0' -- "$@"`
|
||||
_ec=$?
|
||||
[[ $_ec -gt 0 ]] && _help && exit $_ec
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
_help && exit 1 ;;
|
||||
esac
|
||||
|
||||
RESULTS_DIR='cov-int'
|
||||
|
||||
eval set -- "$TEMP"
|
||||
if [ $? != 0 ] ; then exit 1 ; fi
|
||||
|
||||
# extract options and their arguments into variables.
|
||||
if [[ $CMD == 'build' ]]; then
|
||||
TAR=false
|
||||
while true ; do
|
||||
case $1 in
|
||||
-h|--help)
|
||||
_help
|
||||
exit 0
|
||||
;;
|
||||
-o|--out-dir)
|
||||
RESULTS_DIR="$2"
|
||||
shift 2
|
||||
;;
|
||||
-t|--tar)
|
||||
TAR=true
|
||||
shift
|
||||
;;
|
||||
--) _build; shift ; break ;;
|
||||
*) echo "Internal error" ; _help && exit 6 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
elif [[ $CMD == 'upload' ]]; then
|
||||
while true ; do
|
||||
case $1 in
|
||||
-h|--help)
|
||||
_help
|
||||
exit 0
|
||||
;;
|
||||
-d|--result-dir)
|
||||
CHANGE_DEFAULT_DIR=true
|
||||
RESULTS_DIR="$2"
|
||||
shift 2
|
||||
;;
|
||||
-t|--tar)
|
||||
RESULTS_ARCHIVE="$2"
|
||||
[ -z $CHANGE_DEFAULT_DIR ] || [ $CHANGE_DEFAULT_DIR = false ] && PACKED=true
|
||||
shift 2
|
||||
;;
|
||||
--) _upload; shift ; break ;;
|
||||
*) echo "Internal error" ; _help && exit 6 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
fi
|
59
scripts/oss-fuzz.sh
Executable file
59
scripts/oss-fuzz.sh
Executable file
@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: LGPL-2.1+
|
||||
#
|
||||
# Copyright 2017 Jonathan Rudenberg
|
||||
#
|
||||
# systemd is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# systemd is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -ex
|
||||
|
||||
export LC_CTYPE=C.UTF-8
|
||||
|
||||
SANITIZER=${SANITIZER:-address -fsanitize-address-use-after-scope}
|
||||
flags="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=$SANITIZER -fsanitize-coverage=trace-pc-guard,trace-cmp"
|
||||
|
||||
export CFLAGS=${CFLAGS:-$flags}
|
||||
export CXXFLAGS=${CXXFLAGS:-$flags}
|
||||
export CC=${CC:-clang}
|
||||
export CXX=${CXX:-clang++}
|
||||
export WORK=${WORK:-$(pwd)}
|
||||
export OUT=${OUT:-$(pwd)/out}
|
||||
mkdir -p $OUT
|
||||
|
||||
build=$WORK/build
|
||||
rm -rf $build
|
||||
mkdir -p $build
|
||||
|
||||
fuzzflag="oss-fuzz=true"
|
||||
if [ -z "$FUZZING_ENGINE" ]; then
|
||||
fuzzflag="llvm-fuzz=true"
|
||||
fi
|
||||
|
||||
meson $build -D$fuzzflag -Db_lundef=false
|
||||
ninja -C $build fuzzers
|
||||
|
||||
for d in "$(dirname "$0")/../test/fuzz-corpus/"*; do
|
||||
zip -jqr $OUT/fuzz-$(basename "$d")_seed_corpus.zip "$d"
|
||||
done
|
||||
|
||||
# get fuzz-dns-packet corpus
|
||||
df=$build/dns-fuzzing
|
||||
git clone --depth 1 https://github.com/CZ-NIC/dns-fuzzing $df
|
||||
zip -jqr $OUT/fuzz-dns-packet_seed_corpus.zip $df/packet
|
||||
|
||||
mkdir -p $OUT/src/shared
|
||||
mv $build/src/shared/libsystemd-shared-*.so $OUT/src/shared
|
||||
|
||||
find $build -maxdepth 1 -type f -executable -name "fuzz-*" -exec mv {} $OUT \;
|
||||
cp src/fuzz/*.options $OUT
|
@ -29,7 +29,8 @@ _bootctl() {
|
||||
local i verb comps
|
||||
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||
local -A OPTS=(
|
||||
[STANDALONE]='-h --help --version'
|
||||
[STANDALONE]='-h --help --no-variables -p --print-path --version'
|
||||
[ARG]='--path'
|
||||
)
|
||||
|
||||
if [[ "$cur" = -* ]]; then
|
||||
@ -38,7 +39,7 @@ _bootctl() {
|
||||
fi
|
||||
|
||||
local -A VERBS=(
|
||||
[STANDALONE]='status'
|
||||
[STANDALONE]='help install list remove status update'
|
||||
)
|
||||
|
||||
for ((i=0; i < COMP_CWORD; i++)); do
|
||||
|
@ -78,9 +78,10 @@ _busctl() {
|
||||
local -A OPTS=(
|
||||
[STANDALONE]='-h --help --version --no-pager --no-legend --system --user
|
||||
--show-machine --unique --acquired --activatable --list
|
||||
--quiet --verbose --expect-reply=no --auto-start=no
|
||||
--allow-interactive-authorization=yes --augment-creds=no'
|
||||
[ARG]='-H --host -M --machine --address --match --timeout'
|
||||
-q --quiet --verbose --expect-reply=no --auto-start=no
|
||||
--allow-interactive-authorization=no --augment-creds=no
|
||||
--watch-bind=yes'
|
||||
[ARG]='--address -H --host -M --machine --match --timeout --size'
|
||||
)
|
||||
|
||||
if __contains_word "--user" ${COMP_WORDS[*]}; then
|
||||
|
@ -39,22 +39,25 @@ _coredumpctl() {
|
||||
local i verb comps
|
||||
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||
local OPTS='-h --help --version --no-pager --no-legend -o --output -F --field -1
|
||||
-r --reverse -S --since -U --until'
|
||||
-r --reverse -S --since -U --until -D --directory -q --quiet'
|
||||
|
||||
local -A VERBS=(
|
||||
[LIST]='list'
|
||||
[LIST]='list info'
|
||||
[DUMP]='dump gdb'
|
||||
)
|
||||
|
||||
if __contains_word "$prev" '--output -o'; then
|
||||
comps=$( compgen -A file -- "$cur" )
|
||||
compopt -o filenames
|
||||
elif __contains_word "$prev" '--FIELD -F'; then
|
||||
elif __contains_word "$prev" '-D --directory'; then
|
||||
comps=$( compgen -A directory -- "$cur" )
|
||||
compopt -o filenames
|
||||
elif __contains_word "$prev" '--field -F'; then
|
||||
comps=$( compgen -W '${__journal_fields[*]}' -- "$cur" )
|
||||
elif [[ $cur = -* ]]; then
|
||||
comps=${OPTS}
|
||||
elif __contains_word "$prev" ${VERBS[*]} &&
|
||||
! __contains_word ${COMP_WORDS[COMP_CWORD-2]} '--output -o -F --field'; then
|
||||
! __contains_word ${COMP_WORDS[COMP_CWORD-2]} '--output -o -D --directory -F --field'; then
|
||||
compopt -o nospace
|
||||
COMPREPLY=( $(compgen -W '${__journal_fields[*]}' -S= -- "$cur") )
|
||||
return 0
|
||||
|
@ -29,7 +29,7 @@ _hostnamectl() {
|
||||
local i verb comps
|
||||
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||
local OPTS='-h --help --version --transient --static --pretty
|
||||
--no-ask-password -H --host --machine'
|
||||
--no-ask-password -H --host -M --machine'
|
||||
|
||||
if [[ $cur = -* ]]; then
|
||||
COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
|
||||
|
@ -39,25 +39,25 @@ _journalctl() {
|
||||
[STANDALONE]='-a --all --full --system --user
|
||||
--disk-usage -f --follow --header
|
||||
-h --help -l --local --new-id128 -m --merge --no-pager
|
||||
--no-tail -q --quiet --setup-keys --this-boot --verify
|
||||
--no-tail -q --quiet --setup-keys --verify
|
||||
--version --list-catalog --update-catalog --list-boots
|
||||
--show-cursor --dmesg -k --pager-end -e -r --reverse
|
||||
--utc -x --catalog --no-full --force --dump-catalog
|
||||
--flush --rotate --sync --no-hostname'
|
||||
[ARG]='-b --boot --this-boot -D --directory --file -F --field
|
||||
--flush --rotate --sync --no-hostname -N --fields'
|
||||
[ARG]='-b --boot -D --directory --file -F --field -t --identifier
|
||||
-M --machine -o --output -u --unit --user-unit -p --priority
|
||||
--vacuum-size --vacuum-time --vacuum-files'
|
||||
[ARGUNKNOWN]='-c --cursor --interval -n --lines -S --since -U --until
|
||||
--after-cursor --verify-key -t --identifier
|
||||
--root'
|
||||
[ARGUNKNOWN]='-c --cursor --interval -n --lines -S --since -U --until
|
||||
--after-cursor --verify-key
|
||||
--vacuum-size --vacuum-time --vacuum-files --output-fields'
|
||||
)
|
||||
|
||||
if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
|
||||
case $prev in
|
||||
--boot|--this-boot|-b)
|
||||
--boot|-b)
|
||||
comps=$(journalctl -F '_BOOT_ID' 2>/dev/null)
|
||||
;;
|
||||
--directory|-D)
|
||||
--directory|-D|--root)
|
||||
comps=$(compgen -d -- "$cur")
|
||||
compopt -o filenames
|
||||
;;
|
||||
@ -66,7 +66,7 @@ _journalctl() {
|
||||
compopt -o filenames
|
||||
;;
|
||||
--output|-o)
|
||||
comps='short short-full short-iso short-precise short-monotonic short-unix verbose export json json-pretty json-sse cat'
|
||||
comps='short short-full short-iso short-iso-precise short-precise short-monotonic short-unix verbose export json json-pretty json-sse cat'
|
||||
;;
|
||||
--field|-F)
|
||||
comps=$(journalctl --fields | sort 2>/dev/null)
|
||||
|
@ -38,7 +38,7 @@ _kernel_install() {
|
||||
fi
|
||||
;;
|
||||
3)
|
||||
[[ "$cur" ]] || cur=/boot/vmlinuz-${COMP_WORDS[2]}
|
||||
[[ "$cur" ]] || cur=/lib/modules/${COMP_WORDS[2]}/vmlinuz
|
||||
comps=$(compgen -f -- "$cur")
|
||||
compopt -o filenames
|
||||
;;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user