* Bump systemd go v250.3
This commit is contained in:
parent
0083f2293d
commit
54d8cb1bd9
22 changed files with 188 additions and 15496 deletions
17
packages/sysutils/systemd/config/hwdb.d/99-osmcrf.hwdb
Normal file
17
packages/sysutils/systemd/config/hwdb.d/99-osmcrf.hwdb
Normal file
|
@ -0,0 +1,17 @@
|
|||
evdev:input:b0003v2017p1689*
|
||||
KEYBOARD_KEY_7002e=volumeup
|
||||
KEYBOARD_KEY_7002d=volumedown
|
||||
KEYBOARD_KEY_7000c=kpleftparen
|
||||
KEYBOARD_KEY_70006=kprightparen
|
||||
|
||||
evdev:input:b0003v2017p1688*
|
||||
KEYBOARD_KEY_7004a=esc
|
||||
KEYBOARD_KEY_c0060=kpleftparen
|
||||
KEYBOARD_KEY_10084=kprightparen
|
||||
KEYBOARD_KEY_7002e=volumeup
|
||||
KEYBOARD_KEY_7002d=volumedown
|
||||
|
||||
evdev:input:b0003v2252p1037*
|
||||
KEYBOARD_KEY_7004a=esc
|
||||
KEYBOARD_KEY_c0060=kpleftparen
|
||||
KEYBOARD_KEY_10084=kprightparen
|
|
@ -1,3 +1,8 @@
|
|||
# o2.cz bluetooth remote
|
||||
evdev:input:b0005v0217p0000e0110*
|
||||
KEYBOARD_KEY_c0041=enter # OK button
|
||||
|
||||
# osmcrf25 remote
|
||||
evdev:input:b0003v2017p1689*
|
||||
KEYBOARD_KEY_7002e=f10 # volume up
|
||||
KEYBOARD_KEY_7002d=f9 # volume down
|
||||
|
|
|
@ -1,22 +1,16 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2018 Team LibreELEC (https://libreelec.tv)
|
||||
# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org)
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="systemd"
|
||||
PKG_VERSION="247"
|
||||
PKG_SHA256="77146f7b27334aa69ef6692bed92c3c893685150f481e7254b81d4ea0f66c640"
|
||||
PKG_VERSION="250.3"
|
||||
PKG_SHA256="87b0eee7b6e5aaab2ab56d158f9536daa6bfd5de011f2a5fc6ccdd81ee1e7a24"
|
||||
PKG_LICENSE="LGPL2.1+"
|
||||
PKG_SITE="http://www.freedesktop.org/wiki/Software/systemd"
|
||||
PKG_URL="https://github.com/systemd/systemd/archive/v$PKG_VERSION.tar.gz"
|
||||
#PKG_DEPENDS_TARGET="toolchain libcap kmod util-linux entropy libidn2 wait-time-sync"
|
||||
PKG_DEPENDS_TARGET="toolchain libcap kmod util-linux entropy libidn2"
|
||||
PKG_URL="https://github.com/systemd/systemd-stable/archive/v${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libcap kmod util-linux entropy libidn2 wait-time-sync Jinja2:host"
|
||||
PKG_LONGDESC="A system and session manager for Linux, compatible with SysV and LSB init scripts."
|
||||
|
||||
if [ "$PROJECT" = "Amlogic" ]; then
|
||||
PKG_PATCH_DIRS="amlogic"
|
||||
fi
|
||||
|
||||
PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
|
||||
-Drootprefix=/usr \
|
||||
-Dsplit-usr=false \
|
||||
|
@ -31,8 +25,10 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
|
|||
-Dacl=false \
|
||||
-Daudit=false \
|
||||
-Dblkid=true \
|
||||
-Dfdisk=false \
|
||||
-Dkmod=true \
|
||||
-Dpam=false \
|
||||
-Dpwquality=false \
|
||||
-Dmicrohttpd=false \
|
||||
-Dlibcryptsetup=false \
|
||||
-Dlibcurl=false \
|
||||
|
@ -43,6 +39,7 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
|
|||
-Dgcrypt=false \
|
||||
-Dgnutls=false \
|
||||
-Dopenssl=false \
|
||||
-Dp11kit=false \
|
||||
-Delfutils=false \
|
||||
-Dzlib=false \
|
||||
-Dbzip2=false \
|
||||
|
@ -55,16 +52,20 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
|
|||
-Ddefault-dnssec=no \
|
||||
-Dimportd=false \
|
||||
-Dremote=false \
|
||||
-Dutmp=false \
|
||||
-Dutmp=true \
|
||||
-Dhibernate=false \
|
||||
-Denvironment-d=false \
|
||||
-Dbinfmt=false \
|
||||
-Drepart=false \
|
||||
-Dcoredump=false \
|
||||
-Dresolve=false \
|
||||
-Dlogind=true \
|
||||
-Dhostnamed=true \
|
||||
-Dlocaled=false \
|
||||
-Dmachined=false \
|
||||
-Dportabled=false \
|
||||
-Duserdb=false \
|
||||
-Dhomed=false \
|
||||
-Dnetworkd=false \
|
||||
-Dtimedated=false \
|
||||
-Dtimesyncd=true \
|
||||
|
@ -90,171 +91,157 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
|
|||
-Dnss-systemd=false \
|
||||
-Dman=false \
|
||||
-Dhtml=false \
|
||||
-Dlink-udev-shared=true \
|
||||
-Dlink-systemctl-shared=true \
|
||||
-Dlink-networkd-shared=false \
|
||||
-Dbashcompletiondir=no \
|
||||
-Dzshcompletiondir=no \
|
||||
-Dkmod-path=/usr/bin/kmod \
|
||||
-Dmount-path=/usr/bin/mount \
|
||||
-Dumount-path=/usr/bin/umount \
|
||||
-Ddebug-tty=$DEBUG_TTY \
|
||||
-Ddebug-tty=${DEBUG_TTY} \
|
||||
-Dversion-tag=${PKG_VERSION}"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fno-schedule-insns -fno-schedule-insns2 -Wno-format-truncation"
|
||||
export TARGET_CFLAGS="${TARGET_CFLAGS} -fno-schedule-insns -fno-schedule-insns2 -Wno-format-truncation"
|
||||
export LC_ALL=en_US.UTF-8
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
# remove unneeded stuff
|
||||
safe_remove $INSTALL/etc/init.d
|
||||
safe_remove $INSTALL/etc/pam.d
|
||||
safe_remove $INSTALL/etc/systemd/system
|
||||
safe_remove $INSTALL/etc/xdg
|
||||
safe_remove $INSTALL/etc/X11
|
||||
safe_remove $INSTALL/usr/bin/kernel-install
|
||||
safe_remove $INSTALL/usr/lib/kernel/install.d
|
||||
safe_remove $INSTALL/usr/lib/rpm
|
||||
safe_remove $INSTALL/usr/lib/systemd/user
|
||||
safe_remove $INSTALL/usr/lib/tmpfiles.d/etc.conf
|
||||
safe_remove $INSTALL/usr/lib/tmpfiles.d/home.conf
|
||||
safe_remove $INSTALL/usr/share/factory
|
||||
safe_remove $INSTALL/usr/share/zsh
|
||||
|
||||
# clean up hwdb
|
||||
safe_remove $INSTALL/usr/lib/udev/hwdb.d/20-OUI.hwdb
|
||||
safe_remove $INSTALL/usr/lib/udev/hwdb.d/20-acpi-vendor.hwdb
|
||||
safe_remove $INSTALL/usr/lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb
|
||||
safe_remove $INSTALL/usr/lib/udev/hwdb.d/20-net-ifname.hwdb
|
||||
safe_remove $INSTALL/usr/lib/udev/hwdb.d/20-sdio-classes.hwdb
|
||||
safe_remove $INSTALL/usr/lib/udev/hwdb.d/20-sdio-vendor-model.hwdb
|
||||
safe_remove ${INSTALL}/etc/init.d
|
||||
safe_remove ${INSTALL}/etc/systemd/system
|
||||
safe_remove ${INSTALL}/etc/xdg
|
||||
safe_remove ${INSTALL}/etc/X11
|
||||
safe_remove ${INSTALL}/usr/bin/kernel-install
|
||||
safe_remove ${INSTALL}/usr/lib/kernel/install.d
|
||||
safe_remove ${INSTALL}/usr/lib/rpm
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/user
|
||||
safe_remove ${INSTALL}/usr/lib/tmpfiles.d/etc.conf
|
||||
safe_remove ${INSTALL}/usr/lib/tmpfiles.d/home.conf
|
||||
safe_remove ${INSTALL}/usr/share/factory
|
||||
|
||||
# remove Network adaper renaming rule, this is confusing
|
||||
safe_remove $INSTALL/usr/lib/udev/rules.d/80-net-setup-link.rules
|
||||
safe_remove ${INSTALL}/usr/lib/udev/rules.d/80-net-setup-link.rules
|
||||
|
||||
# remove the uaccess rules as we don't build systemd with ACL (see https://github.com/systemd/systemd/issues/4107)
|
||||
safe_remove $INSTALL/usr/lib/udev/rules.d/70-uaccess.rules
|
||||
safe_remove $INSTALL/usr/lib/udev/rules.d/71-seat.rules
|
||||
safe_remove $INSTALL/usr/lib/udev/rules.d/73-seat-late.rules
|
||||
safe_remove ${INSTALL}/usr/lib/udev/rules.d/71-seat.rules
|
||||
safe_remove ${INSTALL}/usr/lib/udev/rules.d/73-seat-late.rules
|
||||
|
||||
# remove getty units, we dont want a console
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/autovt@.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/console-getty.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/console-shell.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/container-getty@.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/getty.target
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/getty@.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/serial-getty@.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/*.target.wants/getty.target
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/autovt@.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/console-getty.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/container-getty@.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/getty.target
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/getty@.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/serial-getty@.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/*.target.wants/getty.target
|
||||
|
||||
# remove other notused or nonsense stuff (our /etc is ro)
|
||||
safe_remove $INSTALL/usr/lib/systemd/systemd-update-done
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/systemd-update-done.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/*.target.wants/systemd-update-done.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/systemd-update-done
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/systemd-update-done.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/*.target.wants/systemd-update-done.service
|
||||
|
||||
# remove systemd-udev-hwdb-update. we have own hwdb.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/systemd-udev-hwdb-update.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/*.target.wants/systemd-udev-hwdb-update.service
|
||||
|
||||
# remove systemd-user-sessions
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/systemd-user-sessions.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/*.target.wants/systemd-user-sessions.service
|
||||
# adjust systemd-hwdb-update (we have read-only /etc).
|
||||
sed '/^ConditionNeedsUpdate=.*$/d' -i ${INSTALL}/usr/lib/systemd/system/systemd-hwdb-update.service
|
||||
|
||||
# remove nspawn
|
||||
safe_remove $INSTALL/usr/bin/systemd-nspawn
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/systemd-nspawn@.service
|
||||
safe_remove ${INSTALL}/usr/bin/systemd-nspawn
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/systemd-nspawn@.service
|
||||
|
||||
# remove unneeded generators
|
||||
for gen in $INSTALL/usr/lib/systemd/system-generators/*; do
|
||||
case "$gen" in
|
||||
for gen in ${INSTALL}/usr/lib/systemd/system-generators/*; do
|
||||
case "${gen}" in
|
||||
*/systemd-debug-generator)
|
||||
# keep it
|
||||
;;
|
||||
*)
|
||||
safe_remove "$gen"
|
||||
safe_remove "${gen}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# remove catalog
|
||||
safe_remove $INSTALL/usr/lib/systemd/catalog
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/catalog
|
||||
|
||||
# remove partition
|
||||
safe_remove $INSTALL/usr/lib/systemd/systemd-growfs
|
||||
safe_remove $INSTALL/usr/lib/systemd/systemd-makefs
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/systemd-growfs
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/systemd-makefs
|
||||
|
||||
# distro preset policy
|
||||
safe_remove $INSTALL/usr/lib/systemd/system-preset/*
|
||||
echo "disable *" > $INSTALL/usr/lib/systemd/system-preset/99-default.preset
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system-preset/*
|
||||
echo "disable *" > ${INSTALL}/usr/lib/systemd/system-preset/99-default.preset
|
||||
|
||||
safe_remove $INSTALL/usr/lib/systemd/user-preset/*
|
||||
echo "disable *" > $INSTALL/usr/lib/systemd/user-preset/90-systemd.preset
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/user-preset/*
|
||||
echo "disable *" > ${INSTALL}/usr/lib/systemd/user-preset/90-systemd.preset
|
||||
|
||||
# remove networkd
|
||||
safe_remove $INSTALL/usr/lib/systemd/network
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/network
|
||||
|
||||
# remove systemd-time-wait-sync (not detecting slew time updates, using package wait-time-sync)
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/systemd-time-wait-sync.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/systemd-time-wait-sync
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/systemd-time-wait-sync.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/systemd-time-wait-sync
|
||||
|
||||
# tune journald.conf
|
||||
sed -e "s,^.*Compress=.*$,Compress=no,g" -i $INSTALL/etc/systemd/journald.conf
|
||||
sed -e "s,^.*SplitMode=.*$,SplitMode=none,g" -i $INSTALL/etc/systemd/journald.conf
|
||||
sed -e "s,^.*RuntimeMaxUse=.*$,RuntimeMaxUse=2M,g" -i $INSTALL/etc/systemd/journald.conf
|
||||
sed -e "s,^.*RuntimeMaxFileSize=.*$,RuntimeMaxFileSize=128K,g" -i $INSTALL/etc/systemd/journald.conf
|
||||
sed -e "s,^.*SystemMaxUse=.*$,SystemMaxUse=10M,g" -i $INSTALL/etc/systemd/journald.conf
|
||||
sed -e "s,^.*Compress=.*$,Compress=no,g" -i ${INSTALL}/etc/systemd/journald.conf
|
||||
sed -e "s,^.*MaxFileSec=.*$,MaxFileSec=0,g" -i ${INSTALL}/etc/systemd/journald.conf
|
||||
sed -e "s,^.*MaxRetentionSec=.*$,MaxRetentionSec=0,g" -i ${INSTALL}/etc/systemd/journald.conf
|
||||
sed -e "s,^.*RuntimeMaxUse=.*$,RuntimeMaxUse=2M,g" -i ${INSTALL}/etc/systemd/journald.conf
|
||||
sed -e "s,^.*RuntimeMaxFileSize=.*$,RuntimeMaxFileSize=128K,g" -i ${INSTALL}/etc/systemd/journald.conf
|
||||
sed -e "s,^.*SplitMode=.*$,SplitMode=none,g" -i ${INSTALL}/etc/systemd/journald.conf
|
||||
sed -e "s,^.*SystemMaxUse=.*$,SystemMaxUse=10M,g" -i ${INSTALL}/etc/systemd/journald.conf
|
||||
|
||||
# tune logind.conf
|
||||
sed -e "s,^.*HandleLidSwitch=.*$,HandleLidSwitch=ignore,g" -i $INSTALL/etc/systemd/logind.conf
|
||||
sed -e "s,^.*HandlePowerKey=.*$,HandlePowerKey=suspend,g" -i $INSTALL/etc/systemd/logind.conf
|
||||
sed -e "s,^.*HandleLidSwitch=.*$,HandleLidSwitch=ignore,g" -i ${INSTALL}/etc/systemd/logind.conf
|
||||
sed -e "s,^.*HandlePowerKey=.*$,HandlePowerKey=ignore,g" -i ${INSTALL}/etc/systemd/logind.conf
|
||||
|
||||
# replace systemd-machine-id-setup with ours
|
||||
safe_remove $INSTALL/usr/lib/systemd/systemd-machine-id-commit
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/systemd-machine-id-commit.service
|
||||
safe_remove $INSTALL/usr/lib/systemd/system/*.target.wants/systemd-machine-id-commit.service
|
||||
safe_remove $INSTALL/usr/bin/systemd-machine-id-setup
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/systemd-machine-id-setup $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/userconfig-setup $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/usercache-setup $INSTALL/usr/bin
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/systemd-machine-id-commit.service
|
||||
safe_remove ${INSTALL}/usr/lib/systemd/system/*.target.wants/systemd-machine-id-commit.service
|
||||
safe_remove ${INSTALL}/usr/bin/systemd-machine-id-setup
|
||||
mkdir -p ${INSTALL}/usr/bin
|
||||
cp ${PKG_DIR}/scripts/systemd-machine-id-setup ${INSTALL}/usr/bin
|
||||
cp ${PKG_DIR}/scripts/userconfig-setup ${INSTALL}/usr/bin
|
||||
cp ${PKG_DIR}/scripts/usercache-setup ${INSTALL}/usr/bin
|
||||
|
||||
mkdir -p $INSTALL/usr/sbin
|
||||
cp $PKG_DIR/scripts/kernel-overlays-setup $INSTALL/usr/sbin
|
||||
cp $PKG_DIR/scripts/network-base-setup $INSTALL/usr/sbin
|
||||
cp $PKG_DIR/scripts/systemd-timesyncd-setup $INSTALL/usr/sbin
|
||||
mkdir -p ${INSTALL}/usr/sbin
|
||||
cp ${PKG_DIR}/scripts/network-base-setup ${INSTALL}/usr/sbin
|
||||
cp ${PKG_DIR}/scripts/systemd-timesyncd-setup ${INSTALL}/usr/sbin
|
||||
|
||||
# /etc/resolv.conf and /etc/hosts must be writable
|
||||
ln -sf /run/libreelec/resolv.conf $INSTALL/etc/resolv.conf
|
||||
ln -sf /run/libreelec/hosts $INSTALL/etc/hosts
|
||||
ln -sf /run/libreelec/resolv.conf ${INSTALL}/etc/resolv.conf
|
||||
ln -sf /run/libreelec/hosts ${INSTALL}/etc/hosts
|
||||
|
||||
# provide 'halt', 'shutdown', 'reboot' & co.
|
||||
ln -sf /usr/bin/systemctl $INSTALL/usr/sbin/halt
|
||||
ln -sf /usr/bin/systemctl $INSTALL/usr/sbin/poweroff
|
||||
ln -sf /usr/bin/systemctl $INSTALL/usr/sbin/reboot
|
||||
ln -sf /usr/bin/systemctl $INSTALL/usr/sbin/runlevel
|
||||
ln -sf /usr/bin/systemctl $INSTALL/usr/sbin/shutdown
|
||||
ln -sf /usr/bin/systemctl $INSTALL/usr/sbin/telinit
|
||||
ln -sf /usr/bin/systemctl ${INSTALL}/usr/sbin/halt
|
||||
ln -sf /usr/bin/systemctl ${INSTALL}/usr/sbin/poweroff
|
||||
ln -sf /usr/bin/systemctl ${INSTALL}/usr/sbin/reboot
|
||||
ln -sf /usr/bin/systemctl ${INSTALL}/usr/sbin/runlevel
|
||||
ln -sf /usr/bin/systemctl ${INSTALL}/usr/sbin/shutdown
|
||||
ln -sf /usr/bin/systemctl ${INSTALL}/usr/sbin/telinit
|
||||
|
||||
# strip
|
||||
debug_strip $INSTALL/usr
|
||||
debug_strip ${INSTALL}/usr
|
||||
|
||||
# defaults
|
||||
mkdir -p $INSTALL/usr/config
|
||||
cp -PR $PKG_DIR/config/* $INSTALL/usr/config
|
||||
mkdir -p ${INSTALL}/usr/config
|
||||
cp -PR ${PKG_DIR}/config/* ${INSTALL}/usr/config
|
||||
|
||||
safe_remove $INSTALL/etc/modules-load.d
|
||||
ln -sf /storage/.config/modules-load.d $INSTALL/etc/modules-load.d
|
||||
safe_remove $INSTALL/etc/systemd/logind.conf.d
|
||||
ln -sf /storage/.config/logind.conf.d $INSTALL/etc/systemd/logind.conf.d
|
||||
safe_remove $INSTALL/etc/systemd/sleep.conf.d
|
||||
ln -sf /storage/.config/sleep.conf.d $INSTALL/etc/systemd/sleep.conf.d
|
||||
ln -sf /storage/.config/timesyncd.conf.d $INSTALL/etc/systemd/timesyncd.conf.d
|
||||
safe_remove $INSTALL/etc/sysctl.d
|
||||
ln -sf /storage/.config/sysctl.d $INSTALL/etc/sysctl.d
|
||||
safe_remove $INSTALL/etc/tmpfiles.d
|
||||
ln -sf /storage/.config/tmpfiles.d $INSTALL/etc/tmpfiles.d
|
||||
safe_remove $INSTALL/etc/udev/hwdb.d
|
||||
ln -sf /storage/.config/hwdb.d $INSTALL/etc/udev/hwdb.d
|
||||
safe_remove $INSTALL/etc/udev/rules.d
|
||||
ln -sf /storage/.config/udev.rules.d $INSTALL/etc/udev/rules.d
|
||||
safe_remove ${INSTALL}/etc/modules-load.d
|
||||
ln -sf /storage/.config/modules-load.d ${INSTALL}/etc/modules-load.d
|
||||
ln -sf /storage/.config/logind.conf.d ${INSTALL}/etc/systemd/logind.conf.d
|
||||
ln -sf /storage/.config/sleep.conf.d ${INSTALL}/etc/systemd/sleep.conf.d
|
||||
ln -sf /storage/.config/timesyncd.conf.d ${INSTALL}/etc/systemd/timesyncd.conf.d
|
||||
safe_remove ${INSTALL}/etc/sysctl.d
|
||||
ln -sf /storage/.config/sysctl.d ${INSTALL}/etc/sysctl.d
|
||||
safe_remove ${INSTALL}/etc/tmpfiles.d
|
||||
ln -sf /storage/.config/tmpfiles.d ${INSTALL}/etc/tmpfiles.d
|
||||
safe_remove ${INSTALL}/etc/udev/hwdb.d
|
||||
ln -sf /storage/.config/hwdb.d ${INSTALL}/etc/udev/hwdb.d
|
||||
safe_remove ${INSTALL}/etc/udev/rules.d
|
||||
ln -sf /storage/.config/udev.rules.d ${INSTALL}/etc/udev/rules.d
|
||||
|
||||
# journald
|
||||
ln -sf /storage/.cache/journald.conf.d ${INSTALL}/usr/lib/systemd/journald.conf.d
|
||||
}
|
||||
|
||||
post_install() {
|
||||
|
@ -272,7 +259,9 @@ post_install() {
|
|||
add_group disk 6
|
||||
add_group floppy 19
|
||||
add_group kmem 9
|
||||
add_group kvm 10
|
||||
add_group lp 7
|
||||
add_group render 12
|
||||
add_group tape 33
|
||||
add_group tty 5
|
||||
add_group video 39
|
||||
|
@ -283,8 +272,6 @@ post_install() {
|
|||
enable_service debugconfig.service
|
||||
enable_service userconfig.service
|
||||
enable_service usercache.service
|
||||
enable_service kernel-overlays.service
|
||||
enable_service hwdb.service
|
||||
enable_service network-base.service
|
||||
enable_service systemd-timesyncd.service
|
||||
enable_service systemd-timesyncd-setup.service
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
--- a/src/basic/missing_syscall.h 2018-05-22 17:52:31.996229634 +0200
|
||||
+++ b/src/basic/missing_syscall.h 2018-05-23 00:23:03.774696689 +0200
|
||||
@@ -414,37 +414,14 @@
|
||||
|
||||
/* ======================================================================= */
|
||||
|
||||
-#if !HAVE_STATX
|
||||
-# ifndef __NR_statx
|
||||
-# if defined __aarch64__ || defined __arm__
|
||||
-# define __NR_statx 397
|
||||
-# elif defined __alpha__
|
||||
-# define __NR_statx 522
|
||||
-# elif defined __i386__ || defined __powerpc64__
|
||||
-# define __NR_statx 383
|
||||
-# elif defined __sparc__
|
||||
-# define __NR_statx 360
|
||||
-# elif defined __x86_64__
|
||||
-# define __NR_statx 332
|
||||
-# else
|
||||
-# warning "__NR_statx not defined for your architecture"
|
||||
-# endif
|
||||
-# endif
|
||||
-
|
||||
-struct statx;
|
||||
-#endif
|
||||
-
|
||||
/* This typedef is supposed to be always defined. */
|
||||
typedef struct statx struct_statx;
|
||||
|
||||
#if !HAVE_STATX
|
||||
+struct statx;
|
||||
static inline ssize_t missing_statx(int dfd, const char *filename, unsigned flags, unsigned int mask, struct statx *buffer) {
|
||||
-# ifdef __NR_statx
|
||||
- return syscall(__NR_statx, dfd, filename, flags, mask, buffer);
|
||||
-# else
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
-# endif
|
||||
}
|
||||
|
||||
# define statx missing_statx
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,41 +0,0 @@
|
|||
From 76566792e33f054dd02df84db044f5ae747afe67 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Sat, 13 Apr 2019 18:33:34 +0900
|
||||
Subject: [PATCH] linux: move netdevice.h from shared/linux to basic/linux
|
||||
|
||||
As the header linux/if_arp.h includes linux/netdevice.h.
|
||||
---
|
||||
src/{shared => basic}/linux/netdevice.h | 0
|
||||
src/basic/meson.build | 1 +
|
||||
src/shared/meson.build | 1 -
|
||||
3 files changed, 1 insertion(+), 1 deletion(-)
|
||||
rename src/{shared => basic}/linux/netdevice.h (100%)
|
||||
|
||||
diff --git a/src/shared/linux/netdevice.h b/src/basic/linux/netdevice.h
|
||||
similarity index 100%
|
||||
rename from src/shared/linux/netdevice.h
|
||||
rename to src/basic/linux/netdevice.h
|
||||
diff --git a/src/basic/meson.build b/src/basic/meson.build
|
||||
index 524f3785dc0..81c3d0f3e80 100644
|
||||
--- a/src/basic/meson.build
|
||||
+++ b/src/basic/meson.build
|
||||
@@ -99,6 +99,7 @@ basic_sources = files('''
|
||||
linux/if_tun.h
|
||||
linux/if_tunnel.h
|
||||
linux/libc-compat.h
|
||||
+ linux/netdevice.h
|
||||
linux/netlink.h
|
||||
linux/rtnetlink.h
|
||||
linux/wireguard.h
|
||||
diff --git a/src/shared/meson.build b/src/shared/meson.build
|
||||
index 15466bcaf1f..c80a67cdde4 100644
|
||||
--- a/src/shared/meson.build
|
||||
+++ b/src/shared/meson.build
|
||||
@@ -102,7 +102,6 @@ shared_sources = files('''
|
||||
linux/bpf_insn.h
|
||||
linux/dm-ioctl.h
|
||||
linux/ethtool.h
|
||||
- linux/netdevice.h
|
||||
lockfile-util.c
|
||||
lockfile-util.h
|
||||
log-link.h
|
|
@ -1,648 +0,0 @@
|
|||
From 7057b6144f4c5cb7e284a409c7f24b84c16a3bb8 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Sat, 13 Apr 2019 18:46:40 +0900
|
||||
Subject: [PATCH] linux: also import linux/in.h and in6.h from kernel-5.0
|
||||
|
||||
Now linux/in.h has better conflict detection with glibc's
|
||||
netinet/in.h. So, let's import the headers.
|
||||
|
||||
Note that our code already have many workarounds for the conflict,
|
||||
but in this commit does not drop them. Let's do that in the later
|
||||
commits if this really helps.
|
||||
---
|
||||
src/basic/linux/in.h | 305 ++++++++++++++++++++++++++++++++++++++++++
|
||||
src/basic/linux/in6.h | 299 +++++++++++++++++++++++++++++++++++++++++
|
||||
src/basic/meson.build | 2 +
|
||||
3 files changed, 606 insertions(+)
|
||||
create mode 100644 src/basic/linux/in.h
|
||||
create mode 100644 src/basic/linux/in6.h
|
||||
|
||||
diff --git a/src/basic/linux/in.h b/src/basic/linux/in.h
|
||||
new file mode 100644
|
||||
index 00000000000..a55cb8b1016
|
||||
--- /dev/null
|
||||
+++ b/src/basic/linux/in.h
|
||||
@@ -0,0 +1,305 @@
|
||||
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
+/*
|
||||
+ * INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
+ * operating system. INET is implemented using the BSD Socket
|
||||
+ * interface as the means of communication with the user level.
|
||||
+ *
|
||||
+ * Definitions of the Internet Protocol.
|
||||
+ *
|
||||
+ * Version: @(#)in.h 1.0.1 04/21/93
|
||||
+ *
|
||||
+ * Authors: Original taken from the GNU Project <netinet/in.h> file.
|
||||
+ * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License
|
||||
+ * as published by the Free Software Foundation; either version
|
||||
+ * 2 of the License, or (at your option) any later version.
|
||||
+ */
|
||||
+#ifndef _UAPI_LINUX_IN_H
|
||||
+#define _UAPI_LINUX_IN_H
|
||||
+
|
||||
+#include <linux/types.h>
|
||||
+#include <linux/libc-compat.h>
|
||||
+#include <linux/socket.h>
|
||||
+
|
||||
+#if __UAPI_DEF_IN_IPPROTO
|
||||
+/* Standard well-defined IP protocols. */
|
||||
+enum {
|
||||
+ IPPROTO_IP = 0, /* Dummy protocol for TCP */
|
||||
+#define IPPROTO_IP IPPROTO_IP
|
||||
+ IPPROTO_ICMP = 1, /* Internet Control Message Protocol */
|
||||
+#define IPPROTO_ICMP IPPROTO_ICMP
|
||||
+ IPPROTO_IGMP = 2, /* Internet Group Management Protocol */
|
||||
+#define IPPROTO_IGMP IPPROTO_IGMP
|
||||
+ IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */
|
||||
+#define IPPROTO_IPIP IPPROTO_IPIP
|
||||
+ IPPROTO_TCP = 6, /* Transmission Control Protocol */
|
||||
+#define IPPROTO_TCP IPPROTO_TCP
|
||||
+ IPPROTO_EGP = 8, /* Exterior Gateway Protocol */
|
||||
+#define IPPROTO_EGP IPPROTO_EGP
|
||||
+ IPPROTO_PUP = 12, /* PUP protocol */
|
||||
+#define IPPROTO_PUP IPPROTO_PUP
|
||||
+ IPPROTO_UDP = 17, /* User Datagram Protocol */
|
||||
+#define IPPROTO_UDP IPPROTO_UDP
|
||||
+ IPPROTO_IDP = 22, /* XNS IDP protocol */
|
||||
+#define IPPROTO_IDP IPPROTO_IDP
|
||||
+ IPPROTO_TP = 29, /* SO Transport Protocol Class 4 */
|
||||
+#define IPPROTO_TP IPPROTO_TP
|
||||
+ IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol */
|
||||
+#define IPPROTO_DCCP IPPROTO_DCCP
|
||||
+ IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */
|
||||
+#define IPPROTO_IPV6 IPPROTO_IPV6
|
||||
+ IPPROTO_RSVP = 46, /* RSVP Protocol */
|
||||
+#define IPPROTO_RSVP IPPROTO_RSVP
|
||||
+ IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */
|
||||
+#define IPPROTO_GRE IPPROTO_GRE
|
||||
+ IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */
|
||||
+#define IPPROTO_ESP IPPROTO_ESP
|
||||
+ IPPROTO_AH = 51, /* Authentication Header protocol */
|
||||
+#define IPPROTO_AH IPPROTO_AH
|
||||
+ IPPROTO_MTP = 92, /* Multicast Transport Protocol */
|
||||
+#define IPPROTO_MTP IPPROTO_MTP
|
||||
+ IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */
|
||||
+#define IPPROTO_BEETPH IPPROTO_BEETPH
|
||||
+ IPPROTO_ENCAP = 98, /* Encapsulation Header */
|
||||
+#define IPPROTO_ENCAP IPPROTO_ENCAP
|
||||
+ IPPROTO_PIM = 103, /* Protocol Independent Multicast */
|
||||
+#define IPPROTO_PIM IPPROTO_PIM
|
||||
+ IPPROTO_COMP = 108, /* Compression Header Protocol */
|
||||
+#define IPPROTO_COMP IPPROTO_COMP
|
||||
+ IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */
|
||||
+#define IPPROTO_SCTP IPPROTO_SCTP
|
||||
+ IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */
|
||||
+#define IPPROTO_UDPLITE IPPROTO_UDPLITE
|
||||
+ IPPROTO_MPLS = 137, /* MPLS in IP (RFC 4023) */
|
||||
+#define IPPROTO_MPLS IPPROTO_MPLS
|
||||
+ IPPROTO_RAW = 255, /* Raw IP packets */
|
||||
+#define IPPROTO_RAW IPPROTO_RAW
|
||||
+ IPPROTO_MAX
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#if __UAPI_DEF_IN_ADDR
|
||||
+/* Internet address. */
|
||||
+struct in_addr {
|
||||
+ __be32 s_addr;
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#define IP_TOS 1
|
||||
+#define IP_TTL 2
|
||||
+#define IP_HDRINCL 3
|
||||
+#define IP_OPTIONS 4
|
||||
+#define IP_ROUTER_ALERT 5
|
||||
+#define IP_RECVOPTS 6
|
||||
+#define IP_RETOPTS 7
|
||||
+#define IP_PKTINFO 8
|
||||
+#define IP_PKTOPTIONS 9
|
||||
+#define IP_MTU_DISCOVER 10
|
||||
+#define IP_RECVERR 11
|
||||
+#define IP_RECVTTL 12
|
||||
+#define IP_RECVTOS 13
|
||||
+#define IP_MTU 14
|
||||
+#define IP_FREEBIND 15
|
||||
+#define IP_IPSEC_POLICY 16
|
||||
+#define IP_XFRM_POLICY 17
|
||||
+#define IP_PASSSEC 18
|
||||
+#define IP_TRANSPARENT 19
|
||||
+
|
||||
+/* BSD compatibility */
|
||||
+#define IP_RECVRETOPTS IP_RETOPTS
|
||||
+
|
||||
+/* TProxy original addresses */
|
||||
+#define IP_ORIGDSTADDR 20
|
||||
+#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
|
||||
+
|
||||
+#define IP_MINTTL 21
|
||||
+#define IP_NODEFRAG 22
|
||||
+#define IP_CHECKSUM 23
|
||||
+#define IP_BIND_ADDRESS_NO_PORT 24
|
||||
+#define IP_RECVFRAGSIZE 25
|
||||
+
|
||||
+/* IP_MTU_DISCOVER values */
|
||||
+#define IP_PMTUDISC_DONT 0 /* Never send DF frames */
|
||||
+#define IP_PMTUDISC_WANT 1 /* Use per route hints */
|
||||
+#define IP_PMTUDISC_DO 2 /* Always DF */
|
||||
+#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu */
|
||||
+/* Always use interface mtu (ignores dst pmtu) but don't set DF flag.
|
||||
+ * Also incoming ICMP frag_needed notifications will be ignored on
|
||||
+ * this socket to prevent accepting spoofed ones.
|
||||
+ */
|
||||
+#define IP_PMTUDISC_INTERFACE 4
|
||||
+/* weaker version of IP_PMTUDISC_INTERFACE, which allos packets to get
|
||||
+ * fragmented if they exeed the interface mtu
|
||||
+ */
|
||||
+#define IP_PMTUDISC_OMIT 5
|
||||
+
|
||||
+#define IP_MULTICAST_IF 32
|
||||
+#define IP_MULTICAST_TTL 33
|
||||
+#define IP_MULTICAST_LOOP 34
|
||||
+#define IP_ADD_MEMBERSHIP 35
|
||||
+#define IP_DROP_MEMBERSHIP 36
|
||||
+#define IP_UNBLOCK_SOURCE 37
|
||||
+#define IP_BLOCK_SOURCE 38
|
||||
+#define IP_ADD_SOURCE_MEMBERSHIP 39
|
||||
+#define IP_DROP_SOURCE_MEMBERSHIP 40
|
||||
+#define IP_MSFILTER 41
|
||||
+#define MCAST_JOIN_GROUP 42
|
||||
+#define MCAST_BLOCK_SOURCE 43
|
||||
+#define MCAST_UNBLOCK_SOURCE 44
|
||||
+#define MCAST_LEAVE_GROUP 45
|
||||
+#define MCAST_JOIN_SOURCE_GROUP 46
|
||||
+#define MCAST_LEAVE_SOURCE_GROUP 47
|
||||
+#define MCAST_MSFILTER 48
|
||||
+#define IP_MULTICAST_ALL 49
|
||||
+#define IP_UNICAST_IF 50
|
||||
+
|
||||
+#define MCAST_EXCLUDE 0
|
||||
+#define MCAST_INCLUDE 1
|
||||
+
|
||||
+/* These need to appear somewhere around here */
|
||||
+#define IP_DEFAULT_MULTICAST_TTL 1
|
||||
+#define IP_DEFAULT_MULTICAST_LOOP 1
|
||||
+
|
||||
+/* Request struct for multicast socket ops */
|
||||
+
|
||||
+#if __UAPI_DEF_IP_MREQ
|
||||
+struct ip_mreq {
|
||||
+ struct in_addr imr_multiaddr; /* IP multicast address of group */
|
||||
+ struct in_addr imr_interface; /* local IP address of interface */
|
||||
+};
|
||||
+
|
||||
+struct ip_mreqn {
|
||||
+ struct in_addr imr_multiaddr; /* IP multicast address of group */
|
||||
+ struct in_addr imr_address; /* local IP address of interface */
|
||||
+ int imr_ifindex; /* Interface index */
|
||||
+};
|
||||
+
|
||||
+struct ip_mreq_source {
|
||||
+ __be32 imr_multiaddr;
|
||||
+ __be32 imr_interface;
|
||||
+ __be32 imr_sourceaddr;
|
||||
+};
|
||||
+
|
||||
+struct ip_msfilter {
|
||||
+ __be32 imsf_multiaddr;
|
||||
+ __be32 imsf_interface;
|
||||
+ __u32 imsf_fmode;
|
||||
+ __u32 imsf_numsrc;
|
||||
+ __be32 imsf_slist[1];
|
||||
+};
|
||||
+
|
||||
+#define IP_MSFILTER_SIZE(numsrc) \
|
||||
+ (sizeof(struct ip_msfilter) - sizeof(__u32) \
|
||||
+ + (numsrc) * sizeof(__u32))
|
||||
+
|
||||
+struct group_req {
|
||||
+ __u32 gr_interface; /* interface index */
|
||||
+ struct __kernel_sockaddr_storage gr_group; /* group address */
|
||||
+};
|
||||
+
|
||||
+struct group_source_req {
|
||||
+ __u32 gsr_interface; /* interface index */
|
||||
+ struct __kernel_sockaddr_storage gsr_group; /* group address */
|
||||
+ struct __kernel_sockaddr_storage gsr_source; /* source address */
|
||||
+};
|
||||
+
|
||||
+struct group_filter {
|
||||
+ __u32 gf_interface; /* interface index */
|
||||
+ struct __kernel_sockaddr_storage gf_group; /* multicast address */
|
||||
+ __u32 gf_fmode; /* filter mode */
|
||||
+ __u32 gf_numsrc; /* number of sources */
|
||||
+ struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */
|
||||
+};
|
||||
+
|
||||
+#define GROUP_FILTER_SIZE(numsrc) \
|
||||
+ (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \
|
||||
+ + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
|
||||
+#endif
|
||||
+
|
||||
+#if __UAPI_DEF_IN_PKTINFO
|
||||
+struct in_pktinfo {
|
||||
+ int ipi_ifindex;
|
||||
+ struct in_addr ipi_spec_dst;
|
||||
+ struct in_addr ipi_addr;
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+/* Structure describing an Internet (IP) socket address. */
|
||||
+#if __UAPI_DEF_SOCKADDR_IN
|
||||
+#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
|
||||
+struct sockaddr_in {
|
||||
+ __kernel_sa_family_t sin_family; /* Address family */
|
||||
+ __be16 sin_port; /* Port number */
|
||||
+ struct in_addr sin_addr; /* Internet address */
|
||||
+
|
||||
+ /* Pad to size of `struct sockaddr'. */
|
||||
+ unsigned char __pad[__SOCK_SIZE__ - sizeof(short int) -
|
||||
+ sizeof(unsigned short int) - sizeof(struct in_addr)];
|
||||
+};
|
||||
+#define sin_zero __pad /* for BSD UNIX comp. -FvK */
|
||||
+#endif
|
||||
+
|
||||
+#if __UAPI_DEF_IN_CLASS
|
||||
+/*
|
||||
+ * Definitions of the bits in an Internet address integer.
|
||||
+ * On subnets, host and network parts are found according
|
||||
+ * to the subnet mask, not these masks.
|
||||
+ */
|
||||
+#define IN_CLASSA(a) ((((long int) (a)) & 0x80000000) == 0)
|
||||
+#define IN_CLASSA_NET 0xff000000
|
||||
+#define IN_CLASSA_NSHIFT 24
|
||||
+#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
|
||||
+#define IN_CLASSA_MAX 128
|
||||
+
|
||||
+#define IN_CLASSB(a) ((((long int) (a)) & 0xc0000000) == 0x80000000)
|
||||
+#define IN_CLASSB_NET 0xffff0000
|
||||
+#define IN_CLASSB_NSHIFT 16
|
||||
+#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
|
||||
+#define IN_CLASSB_MAX 65536
|
||||
+
|
||||
+#define IN_CLASSC(a) ((((long int) (a)) & 0xe0000000) == 0xc0000000)
|
||||
+#define IN_CLASSC_NET 0xffffff00
|
||||
+#define IN_CLASSC_NSHIFT 8
|
||||
+#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
|
||||
+
|
||||
+#define IN_CLASSD(a) ((((long int) (a)) & 0xf0000000) == 0xe0000000)
|
||||
+#define IN_MULTICAST(a) IN_CLASSD(a)
|
||||
+#define IN_MULTICAST_NET 0xe0000000
|
||||
+
|
||||
+#define IN_BADCLASS(a) (((long int) (a) ) == (long int)0xffffffff)
|
||||
+#define IN_EXPERIMENTAL(a) IN_BADCLASS((a))
|
||||
+
|
||||
+#define IN_CLASSE(a) ((((long int) (a)) & 0xf0000000) == 0xf0000000)
|
||||
+#define IN_CLASSE_NET 0xffffffff
|
||||
+#define IN_CLASSE_NSHIFT 0
|
||||
+
|
||||
+/* Address to accept any incoming messages. */
|
||||
+#define INADDR_ANY ((unsigned long int) 0x00000000)
|
||||
+
|
||||
+/* Address to send to all hosts. */
|
||||
+#define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
|
||||
+
|
||||
+/* Address indicating an error return. */
|
||||
+#define INADDR_NONE ((unsigned long int) 0xffffffff)
|
||||
+
|
||||
+/* Network number for local host loopback. */
|
||||
+#define IN_LOOPBACKNET 127
|
||||
+
|
||||
+/* Address to loopback in software to local host. */
|
||||
+#define INADDR_LOOPBACK 0x7f000001 /* 127.0.0.1 */
|
||||
+#define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
|
||||
+
|
||||
+/* Defines for Multicast INADDR */
|
||||
+#define INADDR_UNSPEC_GROUP 0xe0000000U /* 224.0.0.0 */
|
||||
+#define INADDR_ALLHOSTS_GROUP 0xe0000001U /* 224.0.0.1 */
|
||||
+#define INADDR_ALLRTRS_GROUP 0xe0000002U /* 224.0.0.2 */
|
||||
+#define INADDR_MAX_LOCAL_GROUP 0xe00000ffU /* 224.0.0.255 */
|
||||
+#endif
|
||||
+
|
||||
+/* <asm/byteorder.h> contains the htonl type stuff.. */
|
||||
+#include <asm/byteorder.h>
|
||||
+
|
||||
+
|
||||
+#endif /* _UAPI_LINUX_IN_H */
|
||||
diff --git a/src/basic/linux/in6.h b/src/basic/linux/in6.h
|
||||
new file mode 100644
|
||||
index 00000000000..71d82fe15b0
|
||||
--- /dev/null
|
||||
+++ b/src/basic/linux/in6.h
|
||||
@@ -0,0 +1,299 @@
|
||||
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
+/*
|
||||
+ * Types and definitions for AF_INET6
|
||||
+ * Linux INET6 implementation
|
||||
+ *
|
||||
+ * Authors:
|
||||
+ * Pedro Roque <roque@di.fc.ul.pt>
|
||||
+ *
|
||||
+ * Sources:
|
||||
+ * IPv6 Program Interfaces for BSD Systems
|
||||
+ * <draft-ietf-ipngwg-bsd-api-05.txt>
|
||||
+ *
|
||||
+ * Advanced Sockets API for IPv6
|
||||
+ * <draft-stevens-advanced-api-00.txt>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License
|
||||
+ * as published by the Free Software Foundation; either version
|
||||
+ * 2 of the License, or (at your option) any later version.
|
||||
+ */
|
||||
+
|
||||
+#ifndef _UAPI_LINUX_IN6_H
|
||||
+#define _UAPI_LINUX_IN6_H
|
||||
+
|
||||
+#include <linux/types.h>
|
||||
+#include <linux/libc-compat.h>
|
||||
+
|
||||
+/*
|
||||
+ * IPv6 address structure
|
||||
+ */
|
||||
+
|
||||
+#if __UAPI_DEF_IN6_ADDR
|
||||
+struct in6_addr {
|
||||
+ union {
|
||||
+ __u8 u6_addr8[16];
|
||||
+#if __UAPI_DEF_IN6_ADDR_ALT
|
||||
+ __be16 u6_addr16[8];
|
||||
+ __be32 u6_addr32[4];
|
||||
+#endif
|
||||
+ } in6_u;
|
||||
+#define s6_addr in6_u.u6_addr8
|
||||
+#if __UAPI_DEF_IN6_ADDR_ALT
|
||||
+#define s6_addr16 in6_u.u6_addr16
|
||||
+#define s6_addr32 in6_u.u6_addr32
|
||||
+#endif
|
||||
+};
|
||||
+#endif /* __UAPI_DEF_IN6_ADDR */
|
||||
+
|
||||
+#if __UAPI_DEF_SOCKADDR_IN6
|
||||
+struct sockaddr_in6 {
|
||||
+ unsigned short int sin6_family; /* AF_INET6 */
|
||||
+ __be16 sin6_port; /* Transport layer port # */
|
||||
+ __be32 sin6_flowinfo; /* IPv6 flow information */
|
||||
+ struct in6_addr sin6_addr; /* IPv6 address */
|
||||
+ __u32 sin6_scope_id; /* scope id (new in RFC2553) */
|
||||
+};
|
||||
+#endif /* __UAPI_DEF_SOCKADDR_IN6 */
|
||||
+
|
||||
+#if __UAPI_DEF_IPV6_MREQ
|
||||
+struct ipv6_mreq {
|
||||
+ /* IPv6 multicast address of group */
|
||||
+ struct in6_addr ipv6mr_multiaddr;
|
||||
+
|
||||
+ /* local IPv6 address of interface */
|
||||
+ int ipv6mr_ifindex;
|
||||
+};
|
||||
+#endif /* __UAPI_DEF_IVP6_MREQ */
|
||||
+
|
||||
+#define ipv6mr_acaddr ipv6mr_multiaddr
|
||||
+
|
||||
+struct in6_flowlabel_req {
|
||||
+ struct in6_addr flr_dst;
|
||||
+ __be32 flr_label;
|
||||
+ __u8 flr_action;
|
||||
+ __u8 flr_share;
|
||||
+ __u16 flr_flags;
|
||||
+ __u16 flr_expires;
|
||||
+ __u16 flr_linger;
|
||||
+ __u32 __flr_pad;
|
||||
+ /* Options in format of IPV6_PKTOPTIONS */
|
||||
+};
|
||||
+
|
||||
+#define IPV6_FL_A_GET 0
|
||||
+#define IPV6_FL_A_PUT 1
|
||||
+#define IPV6_FL_A_RENEW 2
|
||||
+
|
||||
+#define IPV6_FL_F_CREATE 1
|
||||
+#define IPV6_FL_F_EXCL 2
|
||||
+#define IPV6_FL_F_REFLECT 4
|
||||
+#define IPV6_FL_F_REMOTE 8
|
||||
+
|
||||
+#define IPV6_FL_S_NONE 0
|
||||
+#define IPV6_FL_S_EXCL 1
|
||||
+#define IPV6_FL_S_PROCESS 2
|
||||
+#define IPV6_FL_S_USER 3
|
||||
+#define IPV6_FL_S_ANY 255
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ * Bitmask constant declarations to help applications select out the
|
||||
+ * flow label and priority fields.
|
||||
+ *
|
||||
+ * Note that this are in host byte order while the flowinfo field of
|
||||
+ * sockaddr_in6 is in network byte order.
|
||||
+ */
|
||||
+
|
||||
+#define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
|
||||
+#define IPV6_FLOWINFO_PRIORITY 0x0ff00000
|
||||
+
|
||||
+/* These definitions are obsolete */
|
||||
+#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000
|
||||
+#define IPV6_PRIORITY_FILLER 0x0100
|
||||
+#define IPV6_PRIORITY_UNATTENDED 0x0200
|
||||
+#define IPV6_PRIORITY_RESERVED1 0x0300
|
||||
+#define IPV6_PRIORITY_BULK 0x0400
|
||||
+#define IPV6_PRIORITY_RESERVED2 0x0500
|
||||
+#define IPV6_PRIORITY_INTERACTIVE 0x0600
|
||||
+#define IPV6_PRIORITY_CONTROL 0x0700
|
||||
+#define IPV6_PRIORITY_8 0x0800
|
||||
+#define IPV6_PRIORITY_9 0x0900
|
||||
+#define IPV6_PRIORITY_10 0x0a00
|
||||
+#define IPV6_PRIORITY_11 0x0b00
|
||||
+#define IPV6_PRIORITY_12 0x0c00
|
||||
+#define IPV6_PRIORITY_13 0x0d00
|
||||
+#define IPV6_PRIORITY_14 0x0e00
|
||||
+#define IPV6_PRIORITY_15 0x0f00
|
||||
+
|
||||
+/*
|
||||
+ * IPV6 extension headers
|
||||
+ */
|
||||
+#if __UAPI_DEF_IPPROTO_V6
|
||||
+#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
|
||||
+#define IPPROTO_ROUTING 43 /* IPv6 routing header */
|
||||
+#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
|
||||
+#define IPPROTO_ICMPV6 58 /* ICMPv6 */
|
||||
+#define IPPROTO_NONE 59 /* IPv6 no next header */
|
||||
+#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
|
||||
+#define IPPROTO_MH 135 /* IPv6 mobility header */
|
||||
+#endif /* __UAPI_DEF_IPPROTO_V6 */
|
||||
+
|
||||
+/*
|
||||
+ * IPv6 TLV options.
|
||||
+ */
|
||||
+#define IPV6_TLV_PAD1 0
|
||||
+#define IPV6_TLV_PADN 1
|
||||
+#define IPV6_TLV_ROUTERALERT 5
|
||||
+#define IPV6_TLV_CALIPSO 7 /* RFC 5570 */
|
||||
+#define IPV6_TLV_JUMBO 194
|
||||
+#define IPV6_TLV_HAO 201 /* home address option */
|
||||
+
|
||||
+/*
|
||||
+ * IPV6 socket options
|
||||
+ */
|
||||
+#if __UAPI_DEF_IPV6_OPTIONS
|
||||
+#define IPV6_ADDRFORM 1
|
||||
+#define IPV6_2292PKTINFO 2
|
||||
+#define IPV6_2292HOPOPTS 3
|
||||
+#define IPV6_2292DSTOPTS 4
|
||||
+#define IPV6_2292RTHDR 5
|
||||
+#define IPV6_2292PKTOPTIONS 6
|
||||
+#define IPV6_CHECKSUM 7
|
||||
+#define IPV6_2292HOPLIMIT 8
|
||||
+#define IPV6_NEXTHOP 9
|
||||
+#define IPV6_AUTHHDR 10 /* obsolete */
|
||||
+#define IPV6_FLOWINFO 11
|
||||
+
|
||||
+#define IPV6_UNICAST_HOPS 16
|
||||
+#define IPV6_MULTICAST_IF 17
|
||||
+#define IPV6_MULTICAST_HOPS 18
|
||||
+#define IPV6_MULTICAST_LOOP 19
|
||||
+#define IPV6_ADD_MEMBERSHIP 20
|
||||
+#define IPV6_DROP_MEMBERSHIP 21
|
||||
+#define IPV6_ROUTER_ALERT 22
|
||||
+#define IPV6_MTU_DISCOVER 23
|
||||
+#define IPV6_MTU 24
|
||||
+#define IPV6_RECVERR 25
|
||||
+#define IPV6_V6ONLY 26
|
||||
+#define IPV6_JOIN_ANYCAST 27
|
||||
+#define IPV6_LEAVE_ANYCAST 28
|
||||
+#define IPV6_MULTICAST_ALL 29
|
||||
+
|
||||
+/* IPV6_MTU_DISCOVER values */
|
||||
+#define IPV6_PMTUDISC_DONT 0
|
||||
+#define IPV6_PMTUDISC_WANT 1
|
||||
+#define IPV6_PMTUDISC_DO 2
|
||||
+#define IPV6_PMTUDISC_PROBE 3
|
||||
+/* same as IPV6_PMTUDISC_PROBE, provided for symetry with IPv4
|
||||
+ * also see comments on IP_PMTUDISC_INTERFACE
|
||||
+ */
|
||||
+#define IPV6_PMTUDISC_INTERFACE 4
|
||||
+/* weaker version of IPV6_PMTUDISC_INTERFACE, which allows packets to
|
||||
+ * get fragmented if they exceed the interface mtu
|
||||
+ */
|
||||
+#define IPV6_PMTUDISC_OMIT 5
|
||||
+
|
||||
+/* Flowlabel */
|
||||
+#define IPV6_FLOWLABEL_MGR 32
|
||||
+#define IPV6_FLOWINFO_SEND 33
|
||||
+
|
||||
+#define IPV6_IPSEC_POLICY 34
|
||||
+#define IPV6_XFRM_POLICY 35
|
||||
+#define IPV6_HDRINCL 36
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ * Multicast:
|
||||
+ * Following socket options are shared between IPv4 and IPv6.
|
||||
+ *
|
||||
+ * MCAST_JOIN_GROUP 42
|
||||
+ * MCAST_BLOCK_SOURCE 43
|
||||
+ * MCAST_UNBLOCK_SOURCE 44
|
||||
+ * MCAST_LEAVE_GROUP 45
|
||||
+ * MCAST_JOIN_SOURCE_GROUP 46
|
||||
+ * MCAST_LEAVE_SOURCE_GROUP 47
|
||||
+ * MCAST_MSFILTER 48
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * Advanced API (RFC3542) (1)
|
||||
+ *
|
||||
+ * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c.
|
||||
+ */
|
||||
+
|
||||
+#define IPV6_RECVPKTINFO 49
|
||||
+#define IPV6_PKTINFO 50
|
||||
+#define IPV6_RECVHOPLIMIT 51
|
||||
+#define IPV6_HOPLIMIT 52
|
||||
+#define IPV6_RECVHOPOPTS 53
|
||||
+#define IPV6_HOPOPTS 54
|
||||
+#define IPV6_RTHDRDSTOPTS 55
|
||||
+#define IPV6_RECVRTHDR 56
|
||||
+#define IPV6_RTHDR 57
|
||||
+#define IPV6_RECVDSTOPTS 58
|
||||
+#define IPV6_DSTOPTS 59
|
||||
+#define IPV6_RECVPATHMTU 60
|
||||
+#define IPV6_PATHMTU 61
|
||||
+#define IPV6_DONTFRAG 62
|
||||
+#if 0 /* not yet */
|
||||
+#define IPV6_USE_MIN_MTU 63
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ * Netfilter (1)
|
||||
+ *
|
||||
+ * Following socket options are used in ip6_tables;
|
||||
+ * see include/linux/netfilter_ipv6/ip6_tables.h.
|
||||
+ *
|
||||
+ * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO 64
|
||||
+ * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES 65
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * Advanced API (RFC3542) (2)
|
||||
+ */
|
||||
+#define IPV6_RECVTCLASS 66
|
||||
+#define IPV6_TCLASS 67
|
||||
+
|
||||
+/*
|
||||
+ * Netfilter (2)
|
||||
+ *
|
||||
+ * Following socket options are used in ip6_tables;
|
||||
+ * see include/linux/netfilter_ipv6/ip6_tables.h.
|
||||
+ *
|
||||
+ * IP6T_SO_GET_REVISION_MATCH 68
|
||||
+ * IP6T_SO_GET_REVISION_TARGET 69
|
||||
+ * IP6T_SO_ORIGINAL_DST 80
|
||||
+ */
|
||||
+
|
||||
+#define IPV6_AUTOFLOWLABEL 70
|
||||
+/* RFC5014: Source address selection */
|
||||
+#define IPV6_ADDR_PREFERENCES 72
|
||||
+
|
||||
+#define IPV6_PREFER_SRC_TMP 0x0001
|
||||
+#define IPV6_PREFER_SRC_PUBLIC 0x0002
|
||||
+#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100
|
||||
+#define IPV6_PREFER_SRC_COA 0x0004
|
||||
+#define IPV6_PREFER_SRC_HOME 0x0400
|
||||
+#define IPV6_PREFER_SRC_CGA 0x0008
|
||||
+#define IPV6_PREFER_SRC_NONCGA 0x0800
|
||||
+
|
||||
+/* RFC5082: Generalized Ttl Security Mechanism */
|
||||
+#define IPV6_MINHOPCOUNT 73
|
||||
+
|
||||
+#define IPV6_ORIGDSTADDR 74
|
||||
+#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
|
||||
+#define IPV6_TRANSPARENT 75
|
||||
+#define IPV6_UNICAST_IF 76
|
||||
+#define IPV6_RECVFRAGSIZE 77
|
||||
+#define IPV6_FREEBIND 78
|
||||
+
|
||||
+/*
|
||||
+ * Multicast Routing:
|
||||
+ * see include/uapi/linux/mroute6.h.
|
||||
+ *
|
||||
+ * MRT6_BASE 200
|
||||
+ * ...
|
||||
+ * MRT6_MAX
|
||||
+ */
|
||||
+#endif /* _UAPI_LINUX_IN6_H */
|
||||
diff --git a/src/basic/meson.build b/src/basic/meson.build
|
||||
index 81c3d0f3e80..26c7fc42c76 100644
|
||||
--- a/src/basic/meson.build
|
||||
+++ b/src/basic/meson.build
|
||||
@@ -98,6 +98,8 @@ basic_sources = files('''
|
||||
linux/if_macsec.h
|
||||
linux/if_tun.h
|
||||
linux/if_tunnel.h
|
||||
+ linux/in.h
|
||||
+ linux/in6.h
|
||||
linux/libc-compat.h
|
||||
linux/netdevice.h
|
||||
linux/netlink.h
|
|
@ -1,235 +0,0 @@
|
|||
From aa8129049564627fd9eb7866fa58c9bc9f47c672 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Sat, 13 Apr 2019 18:35:15 +0900
|
||||
Subject: [PATCH] linux: also import l2tp.h from kernel-5.0
|
||||
|
||||
The L2TP_ATTR_UDP_ZERO_CSUM6_{TX,RX} attributes are introduced by
|
||||
6b649feafe10b293f4bd5a74aca95faf625ae525, which is included in
|
||||
kernel-3.16. To support older kernel, let's import the header.
|
||||
|
||||
Fixes #12300.
|
||||
---
|
||||
src/basic/linux/l2tp.h | 201 +++++++++++++++++++++++++++++++++++++++++
|
||||
src/basic/meson.build | 1 +
|
||||
2 files changed, 202 insertions(+)
|
||||
create mode 100644 src/basic/linux/l2tp.h
|
||||
|
||||
diff --git a/src/basic/linux/l2tp.h b/src/basic/linux/l2tp.h
|
||||
new file mode 100644
|
||||
index 00000000000..61158f5a1a5
|
||||
--- /dev/null
|
||||
+++ b/src/basic/linux/l2tp.h
|
||||
@@ -0,0 +1,201 @@
|
||||
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
+/*
|
||||
+ * L2TP-over-IP socket for L2TPv3.
|
||||
+ *
|
||||
+ * Author: James Chapman <jchapman@katalix.com>
|
||||
+ */
|
||||
+
|
||||
+#ifndef _UAPI_LINUX_L2TP_H_
|
||||
+#define _UAPI_LINUX_L2TP_H_
|
||||
+
|
||||
+#include <linux/types.h>
|
||||
+#include <linux/socket.h>
|
||||
+#include <linux/in.h>
|
||||
+#include <linux/in6.h>
|
||||
+
|
||||
+#define IPPROTO_L2TP 115
|
||||
+
|
||||
+/**
|
||||
+ * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets
|
||||
+ * @l2tp_family: address family number AF_L2TPIP.
|
||||
+ * @l2tp_addr: protocol specific address information
|
||||
+ * @l2tp_conn_id: connection id of tunnel
|
||||
+ */
|
||||
+#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
|
||||
+struct sockaddr_l2tpip {
|
||||
+ /* The first fields must match struct sockaddr_in */
|
||||
+ __kernel_sa_family_t l2tp_family; /* AF_INET */
|
||||
+ __be16 l2tp_unused; /* INET port number (unused) */
|
||||
+ struct in_addr l2tp_addr; /* Internet address */
|
||||
+
|
||||
+ __u32 l2tp_conn_id; /* Connection ID of tunnel */
|
||||
+
|
||||
+ /* Pad to size of `struct sockaddr'. */
|
||||
+ unsigned char __pad[__SOCK_SIZE__ -
|
||||
+ sizeof(__kernel_sa_family_t) -
|
||||
+ sizeof(__be16) - sizeof(struct in_addr) -
|
||||
+ sizeof(__u32)];
|
||||
+};
|
||||
+
|
||||
+/**
|
||||
+ * struct sockaddr_l2tpip6 - the sockaddr structure for L2TP-over-IPv6 sockets
|
||||
+ * @l2tp_family: address family number AF_L2TPIP.
|
||||
+ * @l2tp_addr: protocol specific address information
|
||||
+ * @l2tp_conn_id: connection id of tunnel
|
||||
+ */
|
||||
+struct sockaddr_l2tpip6 {
|
||||
+ /* The first fields must match struct sockaddr_in6 */
|
||||
+ __kernel_sa_family_t l2tp_family; /* AF_INET6 */
|
||||
+ __be16 l2tp_unused; /* INET port number (unused) */
|
||||
+ __be32 l2tp_flowinfo; /* IPv6 flow information */
|
||||
+ struct in6_addr l2tp_addr; /* IPv6 address */
|
||||
+ __u32 l2tp_scope_id; /* scope id (new in RFC2553) */
|
||||
+ __u32 l2tp_conn_id; /* Connection ID of tunnel */
|
||||
+};
|
||||
+
|
||||
+/*****************************************************************************
|
||||
+ * NETLINK_GENERIC netlink family.
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
+/*
|
||||
+ * Commands.
|
||||
+ * Valid TLVs of each command are:-
|
||||
+ * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum
|
||||
+ * TUNNEL_DELETE - CONN_ID
|
||||
+ * TUNNEL_MODIFY - CONN_ID, udpcsum
|
||||
+ * TUNNEL_GETSTATS - CONN_ID, (stats)
|
||||
+ * TUNNEL_GET - CONN_ID, (...)
|
||||
+ * SESSION_CREATE - SESSION_ID, PW_TYPE, cookie, peer_cookie, l2spec
|
||||
+ * SESSION_DELETE - SESSION_ID
|
||||
+ * SESSION_MODIFY - SESSION_ID
|
||||
+ * SESSION_GET - SESSION_ID, (...)
|
||||
+ * SESSION_GETSTATS - SESSION_ID, (stats)
|
||||
+ *
|
||||
+ */
|
||||
+enum {
|
||||
+ L2TP_CMD_NOOP,
|
||||
+ L2TP_CMD_TUNNEL_CREATE,
|
||||
+ L2TP_CMD_TUNNEL_DELETE,
|
||||
+ L2TP_CMD_TUNNEL_MODIFY,
|
||||
+ L2TP_CMD_TUNNEL_GET,
|
||||
+ L2TP_CMD_SESSION_CREATE,
|
||||
+ L2TP_CMD_SESSION_DELETE,
|
||||
+ L2TP_CMD_SESSION_MODIFY,
|
||||
+ L2TP_CMD_SESSION_GET,
|
||||
+ __L2TP_CMD_MAX,
|
||||
+};
|
||||
+
|
||||
+#define L2TP_CMD_MAX (__L2TP_CMD_MAX - 1)
|
||||
+
|
||||
+/*
|
||||
+ * ATTR types defined for L2TP
|
||||
+ */
|
||||
+enum {
|
||||
+ L2TP_ATTR_NONE, /* no data */
|
||||
+ L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */
|
||||
+ L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */
|
||||
+ L2TP_ATTR_OFFSET, /* u16 (not used) */
|
||||
+ L2TP_ATTR_DATA_SEQ, /* u16 (not used) */
|
||||
+ L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */
|
||||
+ L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */
|
||||
+ L2TP_ATTR_PROTO_VERSION, /* u8 */
|
||||
+ L2TP_ATTR_IFNAME, /* string */
|
||||
+ L2TP_ATTR_CONN_ID, /* u32 */
|
||||
+ L2TP_ATTR_PEER_CONN_ID, /* u32 */
|
||||
+ L2TP_ATTR_SESSION_ID, /* u32 */
|
||||
+ L2TP_ATTR_PEER_SESSION_ID, /* u32 */
|
||||
+ L2TP_ATTR_UDP_CSUM, /* u8 */
|
||||
+ L2TP_ATTR_VLAN_ID, /* u16 (not used) */
|
||||
+ L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */
|
||||
+ L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */
|
||||
+ L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */
|
||||
+ L2TP_ATTR_RECV_SEQ, /* u8 */
|
||||
+ L2TP_ATTR_SEND_SEQ, /* u8 */
|
||||
+ L2TP_ATTR_LNS_MODE, /* u8 */
|
||||
+ L2TP_ATTR_USING_IPSEC, /* u8 */
|
||||
+ L2TP_ATTR_RECV_TIMEOUT, /* msec */
|
||||
+ L2TP_ATTR_FD, /* int */
|
||||
+ L2TP_ATTR_IP_SADDR, /* u32 */
|
||||
+ L2TP_ATTR_IP_DADDR, /* u32 */
|
||||
+ L2TP_ATTR_UDP_SPORT, /* u16 */
|
||||
+ L2TP_ATTR_UDP_DPORT, /* u16 */
|
||||
+ L2TP_ATTR_MTU, /* u16 (not used) */
|
||||
+ L2TP_ATTR_MRU, /* u16 (not used) */
|
||||
+ L2TP_ATTR_STATS, /* nested */
|
||||
+ L2TP_ATTR_IP6_SADDR, /* struct in6_addr */
|
||||
+ L2TP_ATTR_IP6_DADDR, /* struct in6_addr */
|
||||
+ L2TP_ATTR_UDP_ZERO_CSUM6_TX, /* flag */
|
||||
+ L2TP_ATTR_UDP_ZERO_CSUM6_RX, /* flag */
|
||||
+ L2TP_ATTR_PAD,
|
||||
+ __L2TP_ATTR_MAX,
|
||||
+};
|
||||
+
|
||||
+#define L2TP_ATTR_MAX (__L2TP_ATTR_MAX - 1)
|
||||
+
|
||||
+/* Nested in L2TP_ATTR_STATS */
|
||||
+enum {
|
||||
+ L2TP_ATTR_STATS_NONE, /* no data */
|
||||
+ L2TP_ATTR_TX_PACKETS, /* u64 */
|
||||
+ L2TP_ATTR_TX_BYTES, /* u64 */
|
||||
+ L2TP_ATTR_TX_ERRORS, /* u64 */
|
||||
+ L2TP_ATTR_RX_PACKETS, /* u64 */
|
||||
+ L2TP_ATTR_RX_BYTES, /* u64 */
|
||||
+ L2TP_ATTR_RX_SEQ_DISCARDS, /* u64 */
|
||||
+ L2TP_ATTR_RX_OOS_PACKETS, /* u64 */
|
||||
+ L2TP_ATTR_RX_ERRORS, /* u64 */
|
||||
+ L2TP_ATTR_STATS_PAD,
|
||||
+ __L2TP_ATTR_STATS_MAX,
|
||||
+};
|
||||
+
|
||||
+#define L2TP_ATTR_STATS_MAX (__L2TP_ATTR_STATS_MAX - 1)
|
||||
+
|
||||
+enum l2tp_pwtype {
|
||||
+ L2TP_PWTYPE_NONE = 0x0000,
|
||||
+ L2TP_PWTYPE_ETH_VLAN = 0x0004,
|
||||
+ L2TP_PWTYPE_ETH = 0x0005,
|
||||
+ L2TP_PWTYPE_PPP = 0x0007,
|
||||
+ L2TP_PWTYPE_PPP_AC = 0x0008,
|
||||
+ L2TP_PWTYPE_IP = 0x000b,
|
||||
+ __L2TP_PWTYPE_MAX
|
||||
+};
|
||||
+
|
||||
+enum l2tp_l2spec_type {
|
||||
+ L2TP_L2SPECTYPE_NONE,
|
||||
+ L2TP_L2SPECTYPE_DEFAULT,
|
||||
+};
|
||||
+
|
||||
+enum l2tp_encap_type {
|
||||
+ L2TP_ENCAPTYPE_UDP,
|
||||
+ L2TP_ENCAPTYPE_IP,
|
||||
+};
|
||||
+
|
||||
+/* For L2TP_ATTR_DATA_SEQ. Unused. */
|
||||
+enum l2tp_seqmode {
|
||||
+ L2TP_SEQ_NONE = 0,
|
||||
+ L2TP_SEQ_IP = 1,
|
||||
+ L2TP_SEQ_ALL = 2,
|
||||
+};
|
||||
+
|
||||
+/**
|
||||
+ * enum l2tp_debug_flags - debug message categories for L2TP tunnels/sessions
|
||||
+ *
|
||||
+ * @L2TP_MSG_DEBUG: verbose debug (if compiled in)
|
||||
+ * @L2TP_MSG_CONTROL: userspace - kernel interface
|
||||
+ * @L2TP_MSG_SEQ: sequence numbers
|
||||
+ * @L2TP_MSG_DATA: data packets
|
||||
+ */
|
||||
+enum l2tp_debug_flags {
|
||||
+ L2TP_MSG_DEBUG = (1 << 0),
|
||||
+ L2TP_MSG_CONTROL = (1 << 1),
|
||||
+ L2TP_MSG_SEQ = (1 << 2),
|
||||
+ L2TP_MSG_DATA = (1 << 3),
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * NETLINK_GENERIC related info
|
||||
+ */
|
||||
+#define L2TP_GENL_NAME "l2tp"
|
||||
+#define L2TP_GENL_VERSION 0x1
|
||||
+#define L2TP_GENL_MCGROUP "l2tp"
|
||||
+
|
||||
+#endif /* _UAPI_LINUX_L2TP_H_ */
|
||||
diff --git a/src/basic/meson.build b/src/basic/meson.build
|
||||
index 26c7fc42c76..67f04bcbc4b 100644
|
||||
--- a/src/basic/meson.build
|
||||
+++ b/src/basic/meson.build
|
||||
@@ -100,6 +100,7 @@ basic_sources = files('''
|
||||
linux/if_tunnel.h
|
||||
linux/in.h
|
||||
linux/in6.h
|
||||
+ linux/l2tp.h
|
||||
linux/libc-compat.h
|
||||
linux/netdevice.h
|
||||
linux/netlink.h
|
|
@ -8,12 +8,12 @@ diff --git a/meson.build b/meson.build
|
|||
index dbbddb68e2..4592cd1094 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -205,7 +205,7 @@ memory_accounting_default = get_option('memory-accounting-default')
|
||||
status_unit_format_default = get_option('status-unit-format-default')
|
||||
|
||||
conf.set_quoted('PKGSYSCONFDIR', pkgsysconfdir)
|
||||
-conf.set_quoted('SYSTEM_CONFIG_UNIT_DIR', join_paths(pkgsysconfdir, 'system'))
|
||||
@@ -266,7 +266,7 @@
|
||||
conf.set_quoted('SYSTEMD_UPDATE_HELPER_PATH', rootlibexecdir / 'systemd-update-helper')
|
||||
conf.set_quoted('SYSTEMD_USERWORK_PATH', rootlibexecdir / 'systemd-userwork')
|
||||
conf.set_quoted('SYSTEMD_VERITYSETUP_PATH', rootlibexecdir / 'systemd-veritysetup')
|
||||
-conf.set_quoted('SYSTEM_CONFIG_UNIT_DIR', pkgsysconfdir / 'system')
|
||||
+conf.set_quoted('SYSTEM_CONFIG_UNIT_DIR', '/storage/.config/system.d')
|
||||
conf.set_quoted('SYSTEM_DATA_UNIT_PATH', systemunitdir)
|
||||
conf.set_quoted('SYSTEM_SYSVINIT_PATH', sysvinit_path)
|
||||
conf.set_quoted('SYSTEM_SYSVRCND_PATH', sysvrcnd_path)
|
||||
conf.set_quoted('SYSTEM_DATA_UNIT_DIR', systemunitdir)
|
||||
conf.set_quoted('SYSTEM_ENV_GENERATOR_DIR', systemenvgeneratordir)
|
||||
conf.set_quoted('SYSTEM_GENERATOR_DIR', systemgeneratordir)
|
||||
|
|
|
@ -4,16 +4,16 @@ Date: Thu, 11 Apr 2019 20:00:05 +0100
|
|||
Subject: [PATCH] move hwdb.bin to /run
|
||||
|
||||
---
|
||||
src/libsystemd/sd-hwdb/hwdb-util.c | 2 +-
|
||||
src/libsystemd/sd-hwdb/sd-hwdb.c | 2 +-
|
||||
src/shared/hwdb-util.c | 2 +-
|
||||
src/libsystemd/sd-hwdb/hwdb-internal.h | 2 +-
|
||||
units/systemd-hwdb-update.service.in | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
|
||||
diff --git a/src/shared/hwdb-util.c b/src/shared/hwdb-util.c
|
||||
index c83575c..6285f3d 100644
|
||||
--- a/src/libsystemd/sd-hwdb/hwdb-util.c
|
||||
+++ b/src/libsystemd/sd-hwdb/hwdb-util.c
|
||||
@@ -20,7 +20,7 @@
|
||||
--- a/src/shared/hwdb-util.c
|
||||
+++ b/src/shared/hwdb-util.c
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "strv.h"
|
||||
#include "tmpfile-util.h"
|
||||
|
||||
|
@ -22,27 +22,27 @@ index c83575c..6285f3d 100644
|
|||
static const char * const conf_file_dirs[] = {
|
||||
"/etc/udev/hwdb.d",
|
||||
UDEVLIBEXECDIR "/hwdb.d",
|
||||
diff --git a/src/libsystemd/sd-hwdb/sd-hwdb.c b/src/libsystemd/sd-hwdb/sd-hwdb.c
|
||||
diff --git a/src/libsystemd/sd-hwdb/hwdb-internal.h b/src/libsystemd/sd-hwdb/hwdb-internal.h
|
||||
index 79fe1a8..0acbf71 100644
|
||||
--- a/src/libsystemd/sd-hwdb/sd-hwdb.c
|
||||
+++ b/src/libsystemd/sd-hwdb/sd-hwdb.c
|
||||
@@ -299,7 +299,7 @@ static int trie_search_f(sd_hwdb *hwdb, const char *search) {
|
||||
--- a/src/libsystemd/sd-hwdb/hwdb-internal.h 2021-07-07 17:41:29.000000000 +0000
|
||||
+++ b/src/libsystemd/sd-hwdb/hwdb-internal.h 2021-07-08 10:59:13.723718762 +0000
|
||||
@@ -83,7 +83,7 @@
|
||||
|
||||
static const char hwdb_bin_paths[] =
|
||||
"/etc/systemd/hwdb/hwdb.bin\0"
|
||||
- "/etc/udev/hwdb.bin\0"
|
||||
+ "/run/hwdb.bin\0"
|
||||
"/usr/lib/systemd/hwdb/hwdb.bin\0"
|
||||
#if HAVE_SPLIT_USR
|
||||
"/lib/systemd/hwdb/hwdb.bin\0"
|
||||
#define hwdb_bin_paths \
|
||||
"/etc/systemd/hwdb/hwdb.bin\0" \
|
||||
- "/etc/udev/hwdb.bin\0" \
|
||||
+ "/run/hwdb.bin\0" \
|
||||
"/usr/lib/systemd/hwdb/hwdb.bin\0" \
|
||||
_CONF_PATHS_SPLIT_USR_NULSTR("systemd/hwdb/hwdb.bin") \
|
||||
UDEVLIBEXECDIR "/hwdb.bin\0"
|
||||
diff --git a/units/systemd-hwdb-update.service.in b/units/systemd-hwdb-update.service.in
|
||||
index 259fe0d..18d617f 100644
|
||||
--- a/units/systemd-hwdb-update.service.in
|
||||
+++ b/units/systemd-hwdb-update.service.in
|
||||
@@ -16,7 +16,7 @@ After=systemd-remount-fs.service
|
||||
@@ -16,7 +16,7 @@
|
||||
Before=sysinit.target shutdown.target systemd-update-done.service
|
||||
ConditionNeedsUpdate=/etc
|
||||
ConditionPathExists=|!@udevlibexecdir@/hwdb.bin
|
||||
ConditionPathExists=|!{{UDEVLIBEXECDIR}}/hwdb.bin
|
||||
-ConditionPathExists=|/etc/udev/hwdb.bin
|
||||
+ConditionPathExists=|/run/hwdb.bin
|
||||
ConditionDirectoryNotEmpty=|/etc/udev/hwdb.d/
|
||||
|
|
|
@ -11,7 +11,7 @@ diff --git a/units/graphical.target b/units/graphical.target
|
|||
index 87be97e..b01b46d 100644
|
||||
--- a/units/graphical.target
|
||||
+++ b/units/graphical.target
|
||||
@@ -9,7 +9,6 @@
|
||||
@@ -11,7 +11,6 @@
|
||||
Description=Graphical Interface
|
||||
Documentation=man:systemd.special(7)
|
||||
Requires=multi-user.target
|
||||
|
|
|
@ -11,7 +11,7 @@ diff --git a/src/core/timer.c b/src/core/timer.c
|
|||
index 03935ee..bfd5c02 100644
|
||||
--- a/src/core/timer.c
|
||||
+++ b/src/core/timer.c
|
||||
@@ -154,11 +154,11 @@ static int timer_setup_persistent(Timer *t) {
|
||||
@@ -144,11 +144,11 @@ static int timer_setup_persistent(Timer *t) {
|
||||
|
||||
if (MANAGER_IS_SYSTEM(UNIT(t)->manager)) {
|
||||
|
||||
|
@ -27,3 +27,4 @@ index 03935ee..bfd5c02 100644
|
|||
|
||||
--
|
||||
2.14.1
|
||||
|
||||
|
|
|
@ -11,12 +11,12 @@ diff --git a/units/debug-shell.service.in b/units/debug-shell.service.in
|
|||
index 1127e68..4c3e971 100644
|
||||
--- a/units/debug-shell.service.in
|
||||
+++ b/units/debug-shell.service.in
|
||||
@@ -16,8 +16,8 @@ IgnoreOnIsolate=yes
|
||||
ConditionPathExists=@DEBUGTTY@
|
||||
@@ -15,8 +15,8 @@ IgnoreOnIsolate=yes
|
||||
ConditionPathExists={{DEBUGTTY}}
|
||||
|
||||
[Service]
|
||||
-Environment=TERM=linux
|
||||
-ExecStart=@SUSHELL@
|
||||
-ExecStart={{SUSHELL}}
|
||||
+Environment=ENV=/etc/profile
|
||||
+ExecStart=/bin/sh -c 'echo -en "\033[?25h"; exec /bin/sh'
|
||||
Restart=always
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
diff -rupN systemd-247.orig/src/shutdown/shutdown.c systemd-247.new/src/shutdown/shutdown.c
|
||||
--- systemd-247.orig/src/shutdown/shutdown.c 2021-02-07 14:43:00.075206218 -0500
|
||||
+++ systemd-247.new/src/shutdown/shutdown.c 2021-02-07 14:43:52.515152573 -0500
|
||||
@@ -540,13 +540,13 @@ int main(int argc, char *argv[]) {
|
||||
log_error_errno(r, "Failed to switch root to \"/run/initramfs\": %m");
|
||||
}
|
||||
|
||||
- if (need_umount || need_swapoff || need_loop_detach || need_dm_detach || need_md_detach)
|
||||
- log_error("Failed to finalize%s%s%s%s%s ignoring.",
|
||||
+ /* if (need_umount || need_swapoff || need_loop_detach || need_dm_detach || need_md_detach)
|
||||
+ log_error("Failed to finalize%s%s%s%s%s ignoring.",
|
||||
need_umount ? " file systems," : "",
|
||||
need_swapoff ? " swap devices," : "",
|
||||
need_loop_detach ? " loop devices," : "",
|
||||
need_dm_detach ? " DM devices," : "",
|
||||
- need_md_detach ? " MD devices," : "");
|
||||
+ need_md_detach ? " MD devices," : ""); */
|
||||
|
||||
/* The kernel will automatically flush ATA disks and suchlike on reboot(), but the file systems need to be
|
||||
* sync'ed explicitly in advance. So let's do this here, but not needlessly slow down containers. Note that we
|
||||
diff -rupN systemd-247.orig/src/shutdown/umount.c systemd-247.new/src/shutdown/umount.c
|
||||
--- systemd-247.orig/src/shutdown/umount.c 2021-02-07 14:43:00.075206218 -0500
|
||||
+++ systemd-247.new/src/shutdown/umount.c 2021-02-07 14:58:13.851587985 -0500
|
||||
@@ -566,8 +566,8 @@ static int umount_with_timeout(MountPoin
|
||||
* filesystem less busy so the unmount might succeed (rather
|
||||
* then return EBUSY).*/
|
||||
r = umount2(m->path, MNT_FORCE);
|
||||
- if (r < 0)
|
||||
- log_full_errno(umount_log_level, errno, "Failed to unmount %s: %m", m->path);
|
||||
+ /* if (r < 0)
|
||||
+ log_full_errno(umount_log_level, errno, "Failed to unmount %s: %m", m->path); */
|
||||
|
||||
_exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
|
||||
}
|
||||
diff -rupN systemd-247.orig/src/volatile-root/volatile-root.c systemd-247.new/src/volatile-root/volatile-root.c
|
||||
--- systemd-247.orig/src/volatile-root/volatile-root.c 2021-02-07 14:43:00.083206834 -0500
|
||||
+++ systemd-247.new/src/volatile-root/volatile-root.c 2021-02-07 14:58:50.713285895 -0500
|
||||
@@ -50,7 +50,7 @@ static int make_volatile(const char *pat
|
||||
|
||||
r = umount_recursive(path, 0);
|
||||
if (r < 0) {
|
||||
- log_error_errno(r, "Failed to unmount %s: %m", path);
|
||||
+ /* log_error_errno(r, "Failed to unmount %s: %m", path); */
|
||||
goto finish_umount;
|
||||
}
|
||||
|
|
@ -13,12 +13,11 @@ index 9f3868e106..d5f93f18a6 100644
|
|||
+++ b/units/debug-shell.service.in
|
||||
@@ -16,6 +16,7 @@ IgnoreOnIsolate=yes
|
||||
ConditionPathExists=@DEBUGTTY@
|
||||
|
||||
|
||||
[Service]
|
||||
+WorkingDirectory=/storage
|
||||
Environment=ENV=/etc/profile
|
||||
ExecStart=/bin/sh -c 'echo -en "\033[?25h"; exec /bin/sh'
|
||||
Restart=always
|
||||
--
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
--- a/src/basic/check-filesystems.sh 2022-02-01 21:47:06.181142404 +0100
|
||||
+++ b/src/basic/check-filesystems.sh 2022-02-01 21:45:58.760989671 +0100
|
||||
@@ -23,7 +23,8 @@ for fs in $($cpp -dM $includes - </dev/n
|
||||
# STACK_END_MAGIC doesn't refer to a filesystem
|
||||
# mtd_inode was removed in 2015
|
||||
# futexfs was removed in 2018
|
||||
- if [[ "$fs" =~ ^(STACK_END_MAGIC|MTD_INODE_FS_MAGIC|FUTEXFS_SUPER_MAGIC)$ ]]; then
|
||||
+ # sdcardfs is Android thing
|
||||
+ if [[ "$fs" =~ ^(STACK_END_MAGIC|MTD_INODE_FS_MAGIC|FUTEXFS_SUPER_MAGIC|SDCARDFS_SUPER_MAGIC)$ ]]; then
|
||||
continue
|
||||
fi
|
||||
echo "Filesystem found in kernel header but not in $(basename "$filesystems_gperf"): $fs";
|
|
@ -1,13 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Source predefined functions and variables
|
||||
. /etc/profile
|
||||
|
||||
# get system.hostname setting
|
||||
HOSTNAME=$(get_setting system.hostname)
|
||||
|
||||
# setup hostname
|
||||
echo $HOSTNAME > /proc/sys/kernel/hostname
|
||||
if [ -f /storage/.cache/hostname ]; then
|
||||
cat /storage/.cache/hostname > /proc/sys/kernel/hostname
|
||||
fi
|
||||
|
||||
# setup /etc/hosts
|
||||
rm -f /run/libreelec/hosts
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
# remove old machine-id file
|
||||
[[ -f "/storage/.cache/machine-id" ]] && rm /storage/.cache/machine-id
|
||||
|
||||
# If the machine id is in a tmpfs mount, unmount it
|
||||
[[ "$(/usr/bin/mount 2>/dev/null| grep [m]achine-id)" ]] && umount /storage/.cache/systemd-machine-id
|
||||
|
||||
# test systemd-machine-id exists and is 32 hex chars or generate a new uuid
|
||||
MACHINEID="$(cat /storage/.cache/systemd-machine-id 2>/dev/null)"
|
||||
[ "${#MACHINEID}" != "32" ] && MACHINEID=
|
||||
[[ "${MACHINEID//[a-f0-9]/}" != "" ]] && MACHINEID=
|
||||
[ -z "${MACHINEID}" ] && MACHINEID=$(/usr/bin/dbus-uuidgen)
|
||||
|
||||
# For first boot detection systemd may have overmounted the file
|
||||
umount /storage/.cache/systemd-machine-id >/dev/null 2>&1
|
||||
|
||||
# persist uuid
|
||||
mkdir -p /storage/.cache
|
||||
echo "$MACHINEID" > /storage/.cache/systemd-machine-id
|
||||
|
|
|
@ -3,21 +3,10 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
. /etc/os-release
|
||||
|
||||
# Remove those sample files that we manage
|
||||
for sample in $(find /storage/.config -name '*.sample' 2>/dev/null); do
|
||||
[ -f /usr/config/${sample:16} ] && rm -f ${sample}
|
||||
[ -f /usr/config/${sample:17} ] && rm -f ${sample}
|
||||
done
|
||||
|
||||
if [ ! -e "/storage/.configured" ]
|
||||
then
|
||||
# Copy config files, but don't overwrite. Only run if /storage is fresh
|
||||
## cp -iRp /usr/config/* /storage/.config/ &>/dev/null
|
||||
## ignore es_systems.cfg and switch to rsync
|
||||
rsync -a --ignore-existing --exclude=es_systems.cfg /usr/config/* /storage/.config/
|
||||
if [ "${HW_DEVICE}" == "RG552" ]; then
|
||||
cp -f /usr/config/splash/splash-1152.png /storage/.config/emulationstation/resources/logo.png
|
||||
fi
|
||||
touch /storage/.configured
|
||||
fi
|
||||
# Copy config files, but don't overwrite - this should replace our sample files
|
||||
false | cp -iRp /usr/config/* /storage/.config/ &>/dev/null
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
[Unit]
|
||||
Description=Update hwdb.bin
|
||||
DefaultDependencies=no
|
||||
After=systemd-tmpfiles-setup.service
|
||||
Before=systemd-udevd.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=-/usr/bin/udevadm hwdb --update
|
||||
|
||||
[Install]
|
||||
WantedBy=basic.target
|
|
@ -1,7 +1,9 @@
|
|||
[Unit]
|
||||
Description=Setup machine-id
|
||||
DefaultDependencies=no
|
||||
Before=systemd-journald.service systemd-tmpfiles-setup-dev.service
|
||||
Conflicts=shutdown.target
|
||||
Before=systemd-journald.service systemd-tmpfiles-setup-dev.service shutdown.target
|
||||
After=local-fs.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
|
|
|
@ -1,107 +0,0 @@
|
|||
# /etc/udev/rules.d/51-these-are-not-joysticks.rules
|
||||
#
|
||||
# This file is auto-generated. For more information:
|
||||
# https://github.com/denilsonsa/udev-joystick-blacklist
|
||||
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="009d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="009d", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00b0", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00b0", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00b4", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00b4", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0730", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0730", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0745", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0745", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0748", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0748", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0750", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0750", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0768", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0768", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0773", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0773", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="07a5", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="07a5", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="07b2", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="07b2", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0800", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0800", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
|
||||
SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
|
Loading…
Reference in a new issue