galeb

Једноставна статичка дистрибуција заснована на musl-у
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување d7eca5ee8225198ca853ea0bb762c247dcd5e065
родитељ 088433df6a144bf4b414e8f92bbeda4a16575479
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Wed, 27 Jul 2022 19:46:21 +0200

Add smdev, gpm; new msg option: servnl; add rc.inet

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
M03-packages.sh | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M04-finale.sh | 34+++++++++++++++++++---------------
MTODO | 7+++++--
Mfil/rc.d/g_fun.sh | 31+++++++++++++++++--------------
Dfil/rc.d/logout | 3---
Mfil/rc.d/rc.conf | 2+-
Afil/rc.d/rc.inet | 13+++++++++++++
Mfil/rc.d/rc.init | 86+++++++++++++++++++++++++++++++------------------------------------------------
Mfil/rc.d/rc.shutdown | 2+-
Dfil/rc.d/rc.svc | 18------------------
Afil/smdev-phkr/etc/smdev/add/01-lvm | 9+++++++++
Afil/smdev-phkr/etc/smdev/add/01-uuid | 12++++++++++++
Afil/smdev-phkr/etc/smdev/add/10-cdrom | 1+
Afil/smdev-phkr/etc/smdev/add/20-pci | 9+++++++++
Afil/smdev-phkr/etc/smdev/add/20-platform | 9+++++++++
Afil/smdev-phkr/etc/smdev/processdev | 3+++
Afil/smdev-phkr/etc/smdev/remove/99-remove_links | 1+
Mlib/pkgs.tsv | 5+++--
Apat/gpm-mlfs/fix-doc.patch | 19+++++++++++++++++++
Apat/gpm-mlfs/utmpx-support.patch | 23+++++++++++++++++++++++
Apat/gpm-void/musl-fcntl.patch | 24++++++++++++++++++++++++
Apat/gpm-void/musl-gpm_h.patch | 13+++++++++++++
Apat/gpm-void/musl-linux_major_h.patch | 12++++++++++++
Apat/gpm-void/musl-select.patch | 36++++++++++++++++++++++++++++++++++++
Apat/gpm-void/musl-sigaction.patch | 29+++++++++++++++++++++++++++++
Apat/smdev-galeb/smdev-config_h.patch | 46++++++++++++++++++++++++++++++++++++++++++++++
Apat/smdev-galeb/smdev-config_mk.patch | 17+++++++++++++++++
Apat/smdev-galeb/smdev-util_h.patch | 9+++++++++
Apat/smdev-phkr/scan_all.patch | 189+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apat/smdev-phkr/smdev-config_h.patch | 188+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apat/smdev-phkr/usb_nodes.patch | 26++++++++++++++++++++++++++
измењених датотека: 31, додавања: 831(+), брисања: 108(-)

diff --git a/03-packages.sh b/03-packages.sh @@ -78,6 +78,8 @@ cron:x:33: mail:x:34: nogroup:x:99: metalog:x:983: +rfkill:x:984: +uucp:x:987: wheel:x:998: users:x:999: ! @@ -4494,6 +4496,66 @@ mkpk_install() fi end_substep +begin_substep gpm-1.20.7 +if [ -x /bin/gpm ]; then + msg info "%s exists, skipping %s" /bin/gpm ${pkg} +elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then + unpack_pkg ${pkg} / +else + extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.bz2 + ( + cd_or_fail ${G_SRC}/${pkg} + + for p in musl-fcntl.patch musl-gpm_h.patch \ + musl-linux_major_h.patch musl-select.patch \ + musl-sigaction.patch + do + apply_patch packages -Np0 -i ${G_PAT}/gpm-void/$p + done + cp ${G_PAT}/gpm-mlfs/fix-doc.patch . + + cat <<! >MKPK +mkpk_name() +{ + printf "%s" "${pkg}" +} + +mkpk_install() +{ + CFLAGS='-Os -pipe -fcommon' + LDFLAGS='-s -fcommon' + DESTDIR=/build + export CFLAGS LDFLAGS DESTDIR + + + ./autogen.sh + + ./configure --prefix=/sucks --sysconfdir=/etc || exit 1 + + patch -Np1 -i fix-doc.patch || exit 1 + + make ${JN} || exit 1 + make install-strip || exit 1 + + #install-info --dir-file=../build/sucks/share/info/dir \\ + # ../build/sucks/share/info/gpm.info + + mkdir -p ../build/sucks/lib + ln -sf libgpm.so.2.1.0 ../build/sucks/lib/libgpm.so + install -dm755 ../build/sucks/share/doc/${pkg}/support + install -m644 doc/support/* ../build/sucks/share/doc/${pkg}/support + install -m644 doc/FAQ ../build/sucks/share/doc/${pkg} + install -m644 doc/HACK_GPM ../build/sucks/share/doc/${pkg} + install -m644 doc/README* ../build/sucks/share/doc/${pkg} +} +! + mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / + ) || exit 1 +fi +end_substep + begin_substep elinks-0.15.0 if [ -e /bin/elinks ]; then msg info "%s exists, skipping %s" /bin/nasm ${pkg} @@ -4534,6 +4596,7 @@ mkpk_install() --without-perl \\ --without-lua \\ --without-tre \\ + --with-gpm \\ --with-openssl \\ --with-zlib \\ --with-bzlib \\ diff --git a/04-finale.sh b/04-finale.sh @@ -68,6 +68,7 @@ mkpk_install() fi end_substep +# Based on improvements by Platon Ryzhikov (phkr on AUR) begin_substep smdev-20220715 if [ -x /bin/smdev ]; then msg info "%s exists, skipping %s" /bin/smdev ${pkg} @@ -77,6 +78,20 @@ else ( cd_or_fail ${G_SRC}/${pkg} + for p in config_mk util_h + do + apply_patch final -Np0 -i \ + ${G_PAT}/smdev-galeb/smdev-$p.patch + done + + apply_patch final -Np0 -i \ + ${G_PAT}/smdev-phkr/smdev-config_h.patch + for p in scan_all usb_nodes + do + apply_patch final -Np1 -i \ + ${G_PAT}/smdev-phkr/$p.patch + done + cat <<! >MKPK mkpk_name() { @@ -91,23 +106,12 @@ mkpk_install() DESTDIR=/build export AR CC CFLAGS LDFLAGS DESTDIR - if [ ! -e util.h.orig ]; then - cp util.h util.h.orig - /${TLD}/bin/sed -i -z 's,"arg.h"\\n,&#include '\\ -'<sys/sysmacros.h>\\n,' util.h - fi - - if [ ! -e config.mk.orig ]; then - cp config.mk config.mk.orig - /${TLD}/bin/sed -i -e "s,/usr/local,,g;s, \\<cc\\>, "\\ -"\${CC},g" \\ - -e "s,^CFLAGS\\s\\+= ,& \${CFLAGS} ,g" \\ - -e "s,^LDFLAGS\\s\\+= ,& \${LDFLAGS} ,g" config.mk - fi - make clean make ${JN} || exit 1 - make install + make install || exit 1 + + cp -R ../fil/smdev-phkr/etc ../build/ || exit 1 + chmod 755 ../build/etc/smdev/processdev } ! mkpk ${pkg} diff --git a/TODO b/TODO @@ -16,8 +16,9 @@ Low priority < > Wireless support - needs testing! [ ] git://r-36.net/conn [ ] git://r-36.net/rfkilld - [ ] git://r-36.net/nldev - requires busybox mdev? - [ ] git://r-36.net/nlmon - requires busybox mdev? + [ ] git://r-36.net/nldev - requires busybox mdev? - replaced by smdev + (still needs testing) + [ ] git://r-36.net/nlmon - requires busybox mdev? - ditto [ ] Add wpa_supplicant (DBus stripped - untested! Commented out by default) @@ -25,6 +26,8 @@ Done ---- [x] Add packages + [x] Add gpm + [x] Add smdev [x] Add elinks [/] Add X - better handled from within the installed system [x] Add ~ssh(d)~ dropbear diff --git a/fil/rc.d/g_fun.sh b/fil/rc.d/g_fun.sh @@ -31,20 +31,23 @@ msg() log=1 newline=1 case ${kind} in - err) icon_plain="=E=" - icon="${bold}${white}${bgred}${icon_plain}";; - info) icon_plain="=I=" - icon="${green}${icon_plain}";; - serv) icon_plain="=S=" - icon="${green}${icon_plain}" - newline=0;; - query) icon_plain="=Q=" - icon="${bold}${yellow}${icon_plain}" - log=0 - newline=0;; - warn) icon_plain="=W=" - icon="${bgyellow}${bold}${black}${icon_plain}";; - *) ;; + err) icon_plain="=E=" + icon="${bold}${white}${bgred}${icon_plain}";; + info) icon_plain="=I=" + icon="${green}${icon_plain}";; + servnl) icon_plain="=S=" + icon="${green}${icon_plain}" + newline=1;; + serv) icon_plain="=S=" + icon="${green}${icon_plain}" + newline=0;; + query) icon_plain="=Q=" + icon="${bold}${yellow}${icon_plain}" + log=0 + newline=0;; + warn) icon_plain="=W=" + icon="${bgyellow}${bold}${black}${icon_plain}";; + *) ;; esac printf "%s %s " "${icon}" ${tstamp} if [ -n "${G_LOGFILE}" ]; then diff --git a/fil/rc.d/logout b/fil/rc.d/logout @@ -1,3 +0,0 @@ -#!/bin/sh - -clear diff --git a/fil/rc.d/rc.conf b/fil/rc.d/rc.conf @@ -3,7 +3,7 @@ FONT_MAP= FONT_UNIMAP= KEYMAP=us INTERFACE=eth0 -KILLDELAY=3 # Delay before sending TERM and KILL on shutdown +KILLDELAY=1 # Delay before sending TERM and KILL on shutdown LANG=en_US.UTF-8 HOSTNAME=galeb TIMEZONE=Europe/Belgrade diff --git a/fil/rc.d/rc.inet b/fil/rc.d/rc.inet @@ -0,0 +1,13 @@ +#!/bin/sh + +. /etc/rc.conf +. /lib/g_fun.sh + +msg info "Bringing up lo interface" +ip addr add 127.0.0.1/8 dev lo broadcast + scope host 2>>${G_LOGFILE} +ip link set lo up 2>>${G_LOGFILE} + +if [ -n "${INTERFACE}" ]; then + msg info "Bringing up %s" ${INTERFACE} + ip link set "${INTERFACE}" up 2>>${G_LOGFILE} +fi diff --git a/fil/rc.d/rc.init b/fil/rc.d/rc.init @@ -34,13 +34,11 @@ else dmesg -n 3 2>>${G_LOGFILE} fi -mount -o ro,remount / 2>>${G_LOGFILE} - msg info "Running smdev" smdev -s 2>>${G_LOGFILE} - -# Doesn't work (because of newer Linux?) -#echo /bin/smdev >/proc/sys/kernel/hotplug +if [ -e /proc/sys/kernel/hotplug ]; then + echo /bin/smdev >/proc/sys/kernel/hotplug +fi cd /dev ln -sf /proc/self/fd/0 stdin 2>>${G_LOGFILE} @@ -50,48 +48,36 @@ ln -sf /proc/self/fd fd 2>>${G_LOGFILE} cd - >/dev/null if echo ${LANG} | grep -i utf >/dev/null 2>>${G_LOGFILE}; then - msg info "Setting kbd_mode -u and font" - kbd_mode -u >/dev/null 2>>${G_LOGFILE} - if [ -n "${KEYMAP}" ]; then - loadkeys -q ${KEYMAP} 2>>${G_LOGFILE} - fi - for tty in /dev/tty[0-9]*; do - kbd_mode -u -C ${tty} >/dev/null 2>>${G_LOGFILE} - printf "\e%%G" >${tty} >/dev/null 2>>${G_LOGFILE} - if [ -n "${FONT}" ]; then - SETFONT_ARGS= - if [ -n "${FONT_MAP}" ]; then - SETFONT_ARGS+=" -m${FONT_MAP}" - fi - if [ -n "${FONT_UNIMAP}" ]; then - SETFONT_ARGS+=" -u${FONT_UNIMAP}" - fi - setfont ${FONT} ${SETFONT_ARGS} -C ${tty} 2>>${G_LOGFILE} - fi - done - echo 1 >| /sys/module/vt/parameters/default_utf8 2>>${G_LOGFILE} + kbd_mode=-u + loadkeys='' + act_string=%%G + def_utf=1 else - msg info "Setting kbd_mode -a and font" - kbd_mode -a >/dev/null 2>>${G_LOGFILE} - if [ -n "${KEYMAP}" ]; then - loadkeys -q -a ${KEYMAP} 2>>${G_LOGFILE} - fi - for tty in /dev/tty[0-9]*; do - kbd_mode -a -C ${tty} >/dev/null 2>>${G_LOGFILE} - printf "\e%%@" >${tty} >/dev/null 2>>${G_LOGFILE} - if [ -n "${FONT}" ]; then - SETFONT_ARGS= - if [ -n "${FONT_MAP}" ]; then - SETFONT_ARGS+=" -m${FONT_MAP}" - fi - if [ -n "${FONT_UNIMAP}" ]; then - SETFONT_ARGS+=" -u${FONT_UNIMAP}" - fi - setfont ${FONT} ${SETFONT_ARGS} -C ${tty} 2>>${G_LOGFILE} - fi - done - echo 0 >| /sys/module/vt/parameters/default_utf8 2>>${G_LOGFILE} + kbd_mode=-a + loadkeys=-a + act_string=%%@ + def_utf=0 fi +msg info "Setting kbd_mode %s and font" "${kbd_mode}" +kbd_mode ${kbd_mode} >/dev/null 2>>${G_LOGFILE} +if [ -n "${KEYMAP}" ]; then + loadkeys -q ${loadkeys} ${KEYMAP} 2>>${G_LOGFILE} +fi +for tty in /dev/tty[0-9]*; do + kbd_mode ${kbd_mode} -C ${tty} >/dev/null 2>>${G_LOGFILE} + printf "\e${act_string}" >${tty} >/dev/null 2>>${G_LOGFILE} + if [ -n "${FONT}" ]; then + SETFONT_ARGS= + if [ -n "${FONT_MAP}" ]; then + SETFONT_ARGS+=" -m${FONT_MAP}" + fi + if [ -n "${FONT_UNIMAP}" ]; then + SETFONT_ARGS+=" -u${FONT_UNIMAP}" + fi + setfont ${FONT} ${SETFONT_ARGS} -C ${tty} 2>>${G_LOGFILE} + fi +done +echo ${def_utf} >| /sys/module/vt/parameters/default_utf8 2>>${G_LOGFILE} msg info "Setting hostname" if [ -n "${HOSTNAME}" ]; then @@ -164,13 +150,9 @@ if [ -x /bin/rc.modules ]; then /bin/rc.modules fi -msg info "Bringing up lo interface" -ip addr add 127.0.0.1/8 dev lo broadcast + scope host 2>>${G_LOGFILE} -ip link set lo up 2>>${G_LOGFILE} - -if [ -n "${INTERFACE}" ]; then - msg info "Bringing up %s" ${INTERFACE} - ip link set "${INTERFACE}" up 2>>${G_LOGFILE} +if [ -x /bin/rc.inet ]; then + msg info "Starting /bin/rc.inet" + /bin/rc.inet fi service start all diff --git a/fil/rc.d/rc.shutdown b/fil/rc.d/rc.shutdown @@ -50,7 +50,7 @@ msg info "Shutting down" msg info "Storing random seed" dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2>/dev/null -svc -k +service stop all KILLDELAY=${KILLDELAY:-3} diff --git a/fil/rc.d/rc.svc b/fil/rc.d/rc.svc @@ -1,18 +0,0 @@ -#!/bin/sh - -umask 022 - -. /etc/rc.conf -. /lib/g_fun.sh - -for service in $(find /bin/svc.d/run -type l) -do - msg serv "Starting %s\t\t\t" ${service##*/} - svc -s "${service##*/}" >/dev/null 2>&1 - case $? in - 0) printf "${green}( ${white}OK${norm} ${green})${norm}\n";; - 1) printf "${green}(RNNG)${norm}\n";; - 2) printf "${green}(${lred}FAIL${norm}${green})${norm}\n";; - *) printf "${green}(${yellow} ?? ${norm}${green})${norm}\n";; - esac -done diff --git a/fil/smdev-phkr/etc/smdev/add/01-lvm b/fil/smdev-phkr/etc/smdev/add/01-lvm @@ -0,0 +1,9 @@ +[ $(echo $DEVNAME | grep 'dm-[0-9]') ] && /bin/sh -c ' + NAME=$(cat /sys$DEVPATH/dm/name) + GROUPNAME=$(echo $NAME | awk -F - '\''{print $1}'\'') + VOLUMENAME=$(echo $NAME | awk -F - '\''{print $2}'\'') + test -d /dev/mapper || mkdir -p /dev/mapper + ln -sf /dev/$DEVNAME /dev/mapper/$NAME + test -d /dev/$GROUPNAME || mkdir -p /dev/$GROUPNAME + ln -sf /dev/$DEVNAME /dev/$GROUPNAME/$VOLUMENAME +' diff --git a/fil/smdev-phkr/etc/smdev/add/01-uuid b/fil/smdev-phkr/etc/smdev/add/01-uuid @@ -0,0 +1,12 @@ +[ "$DEVNAME" ] && [ "$DEVTYPE" = "disk" -o "$DEVTYPE" = "partition" ] && /bin/sh -c ' + test -d /dev/disk || mkdir -p /dev/disk + export $(/sucks/bin/blkid --info -p -o udev /dev/$DEVNAME | grep UUID) + [ $ID_FS_UUID ] && { + test -d /dev/disk/by-uuid || mkdir -p /dev/disk/by-uuid + ln -sf /dev/$DEVNAME /dev/disk/by-uuid/$ID_FS_UUID + } + [ $ID_PART_ENTRY_UUID ] && { + test -d /dev/disk/by-partuuid || mkdir -p /dev/disk/by-partuuid + ln -sf /dev/$DEVNAME /dev/disk/by-partuuid/$ID_PART_ENTRY_UUID + } +' diff --git a/fil/smdev-phkr/etc/smdev/add/10-cdrom b/fil/smdev-phkr/etc/smdev/add/10-cdrom @@ -0,0 +1 @@ +[ $(echo $DEVNAME | grep 'sr[0-9]') ] && ln -sf /dev/$DEVNAME /dev/cdrom diff --git a/fil/smdev-phkr/etc/smdev/add/20-pci b/fil/smdev-phkr/etc/smdev/add/20-pci @@ -0,0 +1,9 @@ +[ "$DEVNAME" -a "$(echo $DEVPATH | grep '/pci[0-9]')" ] && /bin/sh -c '# add links for pci devices + test -d $(dirname /dev/$DEVNAME)/by-path || mkdir -p $(dirname /dev/$DEVNAME)/by-path + if [ $(echo "$DEVNAME" | grep dri) ]; then # for dri create -card and -render links + ln -sf /dev/$DEVNAME /dev/$(dirname "$DEVNAME")/by-path/pci-$(echo $DEVPATH | sed -e "s/\//\n/g" | grep "[0-9]:[0-9]" | sed -n "2p")-$(echo $DEVNAME | awk -F / "{print $2}" | sed -e "s/[A-Z]//g" -e "s/[0-9]//g") + else # generic + ln -sf /dev/$DEVNAME /dev/$(dirname $DEVNAME)/by-path/pci-$(echo $DEVPATH | sed -e "s/\//\n/g" | grep "[0-9]:[0-9]" | sed -n "2p") + fi +' +#fi diff --git a/fil/smdev-phkr/etc/smdev/add/20-platform b/fil/smdev-phkr/etc/smdev/add/20-platform @@ -0,0 +1,9 @@ +[ "$DEVNAME" -a "$(echo $DEVPATH | grep /platform)" ] && /bin/sh -c '# add links for platform devices + test -d $(dirname /dev/$DEVNAME)/by-path || mkdir -p $(dirname /dev/$DEVNAME)/by-path + if [ $(echo $DEVNAME | grep dri) ]; then # for dri create -card and -render links + ln -sf /dev/$DEVNAME /dev/$(dirname $DEVNAME)/by-path/platform-$(echo $DEVPATH | sed -e "s/\//\n/g" | grep "[0-9]:[0-9]" | sed -n "2p")-$(echo $DEVNAME | awk -F / "{print $2}" | sed -e "s/[A-Z]//g" -e "s/[0-9]//g") + else # generic + ln -sf /dev/$DEVNAME /dev/$(dirname $DEVNAME)/by-path/platform-$(echo $DEVPATH | sed -e "s/\//\n/g" | grep "[0-9]:[0-9]" | sed -n "2p") + fi +' +#fi diff --git a/fil/smdev-phkr/etc/smdev/processdev b/fil/smdev-phkr/etc/smdev/processdev @@ -0,0 +1,3 @@ +#!/bin/sh + +find /etc/smdev/${ACTION} -type f -exec sh {} \; & diff --git a/fil/smdev-phkr/etc/smdev/remove/99-remove_links b/fil/smdev-phkr/etc/smdev/remove/99-remove_links @@ -0,0 +1 @@ +[ "$DEVNAME" ] && find /dev -type l -exec sh -c 'for i in "$@"; do [ "$0" = "$(realpath -- "$i")" ] && rm -f -- "$i"; done' "/dev/$DEVNAME" {} + diff --git a/lib/pkgs.tsv b/lib/pkgs.tsv @@ -89,6 +89,7 @@ https://github.com/pullmoll/musl-fts/archive/v1.2.7.tar.gz musl-fts-1.2.7.tar.gz https://github.com/pullmoll/musl-obstack/archive/v1.1.tar.gz musl-obstack-1.1.tar.gz 185975cc117dba8e6158cce847ba44d5 https://github.com/rhboot/efibootmgr/archive/17.tar.gz efibootmgr-17.tar.gz 6ae315936d9bc8613b3a4cb8a4064128 https://github.com/rhboot/efivar/releases/download/37/efivar-37.tar.bz2 9f067275c5f7aafdd75bfb364280ac9c +https://github.com/rkd77/elinks/releases/download/v0.15.0/elinks-0.15.0.tar.xz 8fe2e81d2cea75f57cd3cf9bdda6821b https://github.com/rpm-software-management/popt/archive/refs/tags/popt-1.18-release.tar.gz popt-1.18.tar.gz 154ca2966af91352d2129b33d855a91e https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz 5a95ec069aa91508167d02fecafaa912 https://github.com/strace/strace/releases/download/v5.18/strace-5.18.tar.xz a563875472463638c19d6639e1c14875 @@ -109,6 +110,7 @@ https://invisible-island.net/archives/reflex/reflex-20210808.tgz 31ed4340e8b636 https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz 12e517cac2b57a0121cda351570f1e63 https://libisl.sourceforge.io/isl-0.24.tar.xz libisl-0.24.tar.xz fae030f604a9537adc2502990a8ab4d1 https://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz f0adf24e8fdef5f3e332191f653e422a +https://matt.ucc.asn.au/dropbear/releases/dropbear-2022.82.tar.bz2 7a4a5f2c6d23ff2e6627c97d7c1aeceb https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz 3ac24e8c6fae26b801cb87ceb63c0a30 https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.37.1.tar.xz 8201241ee1eca83a9f72f4505350f6bc https://musl.libc.org/releases/musl-1.2.3.tar.gz a507ae4f7f20bcfe566d8eb65c1af73e @@ -132,6 +134,5 @@ https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz 3cac5be0096fcf7b32d https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz e81e63acd80697d001c8d85c1acb38a0 https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.17.0.tar.xz 8ade96ee93f37fba7e1beec89f1a54bf https://www.leonerd.org.uk/code/libtermkey/libtermkey-0.22.tar.gz 08bf514d59660391c3a21b3977a16c8c +https://www.nico.schottelius.org/software/gpm/archives/gpm-1.20.7.tar.bz2 bf84143905a6a903dbd4d4b911a2a2b8 https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz 11d12076311563252a995201248d17e5 -https://matt.ucc.asn.au/dropbear/releases/dropbear-2022.82.tar.bz2 7a4a5f2c6d23ff2e6627c97d7c1aeceb -https://github.com/rkd77/elinks/releases/download/v0.15.0/elinks-0.15.0.tar.xz 8fe2e81d2cea75f57cd3cf9bdda6821b diff --git a/pat/gpm-mlfs/fix-doc.patch b/pat/gpm-mlfs/fix-doc.patch @@ -0,0 +1,19 @@ +--- gpm-1.20.7.orig/doc/doc.gpm 2022-03-11 10:22:59.083347473 -0600 ++++ gpm-1.20.7/doc/doc.gpm 2022-03-11 10:20:13.778352203 -0600 +@@ -29,7 +29,7 @@ + + @comment %**start of header + @setfilename gpm.info +-@settitle gpm @value{version} ++@settitle gpm 1.20.7 + @iftex + @afourpaper + @end iftex +@@ -92,7 +92,6 @@ + + @end titlepage + @setchapternewpage off +-@headings single + + @ifinfo + This file documents the @value{version} release of the "General Purpose diff --git a/pat/gpm-mlfs/utmpx-support.patch b/pat/gpm-mlfs/utmpx-support.patch @@ -0,0 +1,23 @@ +diff -uNr gpm-1.20.7.orig/src/prog/gpm-root.y gpm-1.20.7/src/prog/gpm-root.y +--- gpm-1.20.7.orig/src/prog/gpm-root.y 2012-10-26 21:21:38.000000000 +0000 ++++ gpm-1.20.7/src/prog/gpm-root.y 2021-01-18 13:32:35.862805598 +0000 +@@ -46,7 +46,7 @@ + #include <termios.h> /* winsize */ + #include <linux/vt.h> /* VT_ACTIVATE */ + #include <linux/keyboard.h> /* K_SHIFT */ +-#include <utmp.h> ++#include <utmpx.h> + #include <endian.h> + + #ifdef HAVE_SYS_SYSMACROS_H +@@ -1264,8 +1264,8 @@ + + if (disallocFlag) + { +- struct utmp *uu; +- struct utmp u; ++ struct utmpx *uu; ++ struct utmpx u; + char s[8]; + int i=0; + diff --git a/pat/gpm-void/musl-fcntl.patch b/pat/gpm-void/musl-fcntl.patch @@ -0,0 +1,24 @@ +The location <sys/fcntl.h> is wrong, it is just <fcntl.h> + +--- src/lib/liblow.c 2012-10-26 23:21:38.000000000 +0200 ++++ src/lib/liblow.c 2015-06-22 15:36:38.956046661 +0200 +@@ -33,7 +33,7 @@ + #include <sys/types.h> /* socket() */ + #include <sys/socket.h> /* socket() */ + #include <sys/un.h> /* struct sockaddr_un */ +-#include <sys/fcntl.h> /* O_RDONLY */ ++#include <fcntl.h> /* O_RDONLY */ + #include <sys/stat.h> /* stat() */ + + #ifdef SIGTSTP /* true if BSD system */ +--- src/daemon/gpm.c 2012-10-26 23:21:38.000000000 +0200 ++++ src/daemon/gpm.c 2015-06-22 15:44:46.825020280 +0200 +@@ -29,7 +29,7 @@ + #include <signal.h> /* SIGPIPE */ + #include <time.h> /* time() */ + #include <sys/param.h> +-#include <sys/fcntl.h> /* O_RDONLY */ ++#include <fcntl.h> /* O_RDONLY */ + #include <sys/wait.h> /* wait() */ + #include <sys/stat.h> /* mkdir() */ + #include <sys/time.h> /* timeval */ diff --git a/pat/gpm-void/musl-gpm_h.patch b/pat/gpm-void/musl-gpm_h.patch @@ -0,0 +1,13 @@ +There is no -Isrc/headers, thus specify gpm.h relative location + +--- src/prog/get-versions.c 2012-10-26 23:21:38.000000000 +0200 ++++ src/prog/get-versions.c 2015-06-22 15:49:30.536004939 +0200 +@@ -22,7 +22,7 @@ + ********/ + + #include <stdio.h> /* printf() */ +-#include <gpm.h> /* gpm information */ ++#include "headers/gpm.h" /* gpm information */ + + int main() + { diff --git a/pat/gpm-void/musl-linux_major_h.patch b/pat/gpm-void/musl-linux_major_h.patch @@ -0,0 +1,12 @@ +The macro major() is defined in sys/sysmacros.h + +--- src/daemon/open_console.c 2012-10-26 23:21:38.000000000 +0200 ++++ src/daemon/open_console.c 2015-06-22 16:13:14.921927918 +0200 +@@ -25,6 +25,7 @@ + + /* Linux specific (to be outsourced in gpm2 */ + #include <linux/serial.h> /* for serial console check */ ++#include <sys/sysmacros.h> /* for major() */ + #include <asm/ioctls.h> /* for serial console check */ + + diff --git a/pat/gpm-void/musl-select.patch b/pat/gpm-void/musl-select.patch @@ -0,0 +1,36 @@ +The FD_ISSET macro and fd_set are defined in sys/select.h + +--- src/prog/display-buttons.c 2012-10-26 23:21:38.000000000 +0200 ++++ src/prog/display-buttons.c 2015-06-22 15:40:19.594034730 +0200 +@@ -36,7 +36,8 @@ + #include <stdio.h> /* printf() */ + #include <time.h> /* time() */ + #include <errno.h> /* errno */ +-#include <gpm.h> /* gpm information */ ++#include <sys/select.h> /* FD_ISSET */ ++#include "headers/gpm.h" /* gpm information */ + + /* display resulting data */ + int display_data(Gpm_Event *event, void *data) +--- src/prog/display-coords.c 2012-10-26 23:21:38.000000000 +0200 ++++ src/prog/display-coords.c 2015-06-22 15:41:05.433032252 +0200 +@@ -37,7 +37,8 @@ + #include <stdio.h> /* printf() */ + #include <time.h> /* time() */ + #include <errno.h> /* errno */ +-#include <gpm.h> /* gpm information */ ++#include <sys/select.h> /* FD_ISSET */ ++#include "headers/gpm.h" /* gpm information */ + + /* display resulting data */ + int display_data(Gpm_Event *event, void *data) +--- src/prog/open_console.c 2012-10-26 23:21:38.000000000 +0200 ++++ src/prog/open_console.c 2015-06-22 15:40:35.002033897 +0200 +@@ -22,6 +22,7 @@ + #include "headers/message.h" /* messaging in gpm */ + #include "headers/daemon.h" /* daemon internals */ + #include <fcntl.h> ++#include <sys/select.h> + + int open_console(const int mode) + { diff --git a/pat/gpm-void/musl-sigaction.patch b/pat/gpm-void/musl-sigaction.patch @@ -0,0 +1,29 @@ +Use the generic sigemptyset() available on both, glibc and musl libc +The SA_INTERRUPT is not defined in musl libc. Copy the (unused?) +definition from glibc's header bits/sigaction.h + +--- src/prog/gpm-root.y 2012-10-26 23:21:38.000000000 +0200 ++++ src/prog/gpm-root.y 2015-06-22 15:56:19.167982843 +0200 +@@ -56,6 +56,9 @@ + #define minor(dev) ((dev)&0xff) + #endif + ++#if !defined(SA_INTERRUPT) ++# define SA_INTERRUPT 0x20000000 /* Historical no-op. */ ++#endif + + #define GPM_NULL_DEV "/dev/null" + +@@ -1196,11 +1199,7 @@ + LOG_DAEMON : LOG_USER); + /* reap your zombies */ + childaction.sa_handler=reap_children; +-#if defined(__GLIBC__) +- __sigemptyset(&childaction.sa_mask); +-#else /* __GLIBC__ */ +- childaction.sa_mask=0; +-#endif /* __GLIBC__ */ ++ sigemptyset(&childaction.sa_mask); + childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */ + sigaction(SIGCHLD,&childaction,NULL); + diff --git a/pat/smdev-galeb/smdev-config_h.patch b/pat/smdev-galeb/smdev-config_h.patch @@ -0,0 +1,46 @@ +--- config.h 2022-07-15 14:49:48.705546454 +0200 ++++ config.h 2022-07-27 10:35:36.386667814 +0200 +@@ -10,31 +10,31 @@ + { "null", "root", "root", 0666, NULL, NULL }, + { "zero", "root", "root", 0666, NULL, NULL }, + { "full", "root", "root", 0666, NULL, NULL }, +- { "random", "root", "root", 0666, NULL, NULL }, +- { "urandom", "root", "root", 0444, NULL, NULL }, ++ { "random", "root", "root", 0444, NULL, NULL }, ++ { "urandom", "root", "root", 0666, NULL, NULL }, + { "hwrandom", "root", "root", 0660, NULL, NULL }, +- { "mem", "root", "root", 0640, NULL, NULL }, +- { "kmem", "root", "root", 0640, NULL, NULL }, ++ { "mem", "root", "kmem", 0640, NULL, NULL }, ++ //{ "kmem", "root", "root", 0640, NULL, NULL }, + { "port", "root", "root", 0640, NULL, NULL }, +- { "console", "root", "tty", 0600, NULL, NULL }, ++ { "console", "root", "root", 0600, NULL, NULL }, + { "ptmx", "root", "tty", 0666, NULL, NULL }, + { "tty", "root", "tty", 0666, NULL, NULL }, +- { "tty[0-9]", "root", "root", 0600, NULL, NULL }, +- { "tty[0-9][0-9]","root", "tty", 0660, NULL, NULL }, +- { "ttyS[0-9]*", "root", "tty", 0660, NULL, NULL, }, ++ { "tty[0-9]", "root", "tty", 0640, NULL, NULL }, ++ { "tty[0-9][0-9]","root", "tty", 0640, NULL, NULL }, ++ { "ttyS[0-9]*", "root", "tty", 0640, NULL, NULL, }, + { "pty.*", "root", "tty", 0660, NULL, NULL }, + { "vcs[0-9]*", "root", "tty", 0660, NULL, NULL }, + { "vcsa*[0-9]*", "root", "tty", 0660, NULL, NULL }, + { "sd[a-z].*", "root", "disk", 0660, NULL, NULL }, + { "sr[0-9]*", "root", "cdrom", 0660, NULL, "@ln -sf $DEVNAME /dev/cdrom" }, + { "ts[0-9]+", "root", "root", 0640, "=input/", NULL }, +- { "input/.*", "root", "root", 0640, "=input/", NULL }, ++ { "input/.*", "root", "input", 0660, "=input/", NULL }, + { "dri/.*", "root", "video", 0660, "=dri/", NULL }, + { "snd/.*", "root", "audio", 0660, "=snd/", NULL }, + { "midi.*", "root", "audio", 0660, "=snd/", NULL }, +- { "seq", "root", "audio", 0660, "=snd/", NULL }, +- { "timer", "root", "audio", 0660, "=snd/", NULL }, +- { "rtc[0-9]*", "root", "root", 0664, NULL, NULL }, ++ { "snd/seq", "root", "audio", 0660, "=snd/", NULL }, ++ { "snd/timer", "root", "audio", 0660, "=snd/", NULL }, ++ { "rtc[0-9]*", "root", "root", 0600, NULL, NULL }, + { "vbi[0-9]", "root", "video", 0660, NULL, NULL }, + { "video[0-9]", "root", "video", 0660, NULL, NULL }, + { "fuse", "root", "root", 0666, NULL, NULL }, diff --git a/pat/smdev-galeb/smdev-config_mk.patch b/pat/smdev-galeb/smdev-config_mk.patch @@ -0,0 +1,17 @@ +--- config.mk 2022-07-15 14:53:16.796468861 +0200 ++++ config.mk 2022-07-15 14:53:16.796468861 +0200 +@@ -2,10 +2,10 @@ + VERSION = 0.2.3 + + # paths +-PREFIX = /usr/local ++PREFIX = + +-CC = cc ++CC = tcc + LD = $(CC) + CPPFLAGS = -D_BSD_SOURCE -D_GNU_SOURCE +-CFLAGS = -std=c99 -Wall -pedantic $(CPPFLAGS) +-LDFLAGS = -s ++CFLAGS = -Os -static -fcommon -std=c99 -Wall -pedantic $(CPPFLAGS) ++LDFLAGS = -static -fcommon -s diff --git a/pat/smdev-galeb/smdev-util_h.patch b/pat/smdev-galeb/smdev-util_h.patch @@ -0,0 +1,9 @@ +--- util.h 2022-07-15 14:56:02.610537220 +0200 ++++ util.h 2022-07-15 14:56:02.610537220 +0200 +@@ -1,5 +1,6 @@ + /* See LICENSE file for copyright and license details. */ + #include "arg.h" ++#include <sys/sysmacros.h> + + #define LEN(x) (sizeof (x) / sizeof *(x)) + diff --git a/pat/smdev-phkr/scan_all.patch b/pat/smdev-phkr/scan_all.patch @@ -0,0 +1,189 @@ +From 6d5a094b85a1a148647744eb327593d6aef9a822 Mon Sep 17 00:00:00 2001 +From: Platon Ryzhikov <ihummer63@yandex.ru> +Date: Mon, 18 May 2020 16:58:10 +0300 +Subject: [PATCH] Scan all /sys to find uevents, they may contain info about + modules even if they don't describe devices + +--- + smdev.c | 127 ++++++++++++++++++++++++++++---------------------------- + 1 file changed, 64 insertions(+), 63 deletions(-) + +diff --git a/smdev.c b/smdev.c +index b774908..ff35df2 100644 +--- a/smdev.c ++++ b/smdev.c +@@ -85,7 +85,7 @@ main(int argc, char *argv[]) + + umask(0); + if (sflag) { +- recurse("/sys/devices", populatedev); ++ recurse("/sys", populatedev); + } else { + if (dohotplug() < 0) + eprintf("Environment not set up correctly for hotplugging\n"); +@@ -126,14 +126,14 @@ dohotplug(void) + action = getenv("ACTION"); + devpath = getenv("DEVPATH"); + devname = getenv("DEVNAME"); +- if (!minor || !major || !action || !devpath || !devname) ++ if (!action || !devpath) + return -1; + +- ev.minor = estrtol(minor, 10); +- ev.major = estrtol(major, 10); ++ ev.minor = minor?estrtol(minor, 10):-1; ++ ev.major = major?estrtol(major, 10):-1; + ev.action = mapaction(action); + ev.devpath = devpath; +- ev.devname = devname; ++ ev.devname = devname?devname:"."; + return doevent(&ev); + } + +@@ -249,12 +249,14 @@ removedev(struct event *ev) + if (rule->path && rule->path[0] == '!') + return 0; + +- /* Delete device node */ +- unlink(rpath.path); +- /* Delete symlink */ +- if (rule->path && rule->path[0] == '>') { +- snprintf(buf, sizeof(buf), "/dev/%s", ev->devname); +- unlink(buf); ++ if (ev->major >= 0 && ev->minor >= 0 && ev->devname) { ++ /* Delete device node */ ++ unlink(rpath.path); ++ /* Delete symlink */ ++ if (rule->path && rule->path[0] == '>') { ++ snprintf(buf, sizeof(buf), "/dev/%s", ev->devname); ++ unlink(buf); ++ } + } + return 0; + } +@@ -276,58 +278,59 @@ createdev(struct event *ev) + if (rule->path && rule->path[0] == '!') + goto runrule; + +- snprintf(buf, sizeof(buf), "%d:%d", ev->major, ev->minor); +- if ((type = devtype(buf)) < 0) +- return -1; +- +- /* Parse path and create the directory tree */ +- parsepath(rule, &rpath, ev->devname); +- if (!(dirc = strdup(rpath.path))) +- eprintf("strdup:"); +- strlcpy(buf, dirname(dirc), sizeof(buf)); +- free(dirc); +- umask(022); +- if (mkpath(buf, 0755) < 0) +- eprintf("mkdir %s:", buf); +- umask(0); ++ if (ev->major >= 0 && ev->minor >= 0 && ev->devname) { ++ snprintf(buf, sizeof(buf), "%d:%d", ev->major, ev->minor); ++ if ((type = devtype(buf)) < 0) ++ return -1; + +- if (mknod(rpath.path, rule->mode | type, +- makedev(ev->major, ev->minor)) < 0 && +- errno != EEXIST) +- eprintf("mknod %s:", rpath.path); +- +- errno = 0; +- pw = getpwnam(rule->user); +- if (!pw) { +- if (errno) +- eprintf("getpwnam %s:", rule->user); +- else +- eprintf("getpwnam %s: no such user\n", +- rule->user); +- } ++ /* Parse path and create the directory tree */ ++ parsepath(rule, &rpath, ev->devname); ++ if (!(dirc = strdup(rpath.path))) ++ eprintf("strdup:"); ++ strlcpy(buf, dirname(dirc), sizeof(buf)); ++ free(dirc); ++ umask(022); ++ if (mkpath(buf, 0755) < 0) ++ eprintf("mkdir %s:", buf); ++ umask(0); ++ ++ if (mknod(rpath.path, rule->mode | type, ++ makedev(ev->major, ev->minor)) < 0 && ++ errno != EEXIST) ++ eprintf("mknod %s:", rpath.path); ++ ++ errno = 0; ++ pw = getpwnam(rule->user); ++ if (!pw) { ++ if (errno) ++ eprintf("getpwnam %s:", rule->user); ++ else ++ eprintf("getpwnam %s: no such user\n", ++ rule->user); ++ } + +- errno = 0; +- gr = getgrnam(rule->group); +- if (!gr) { +- if (errno) +- eprintf("getgrnam %s:", rule->group); +- else +- eprintf("getgrnam %s: no such group\n", +- rule->group); +- } ++ errno = 0; ++ gr = getgrnam(rule->group); ++ if (!gr) { ++ if (errno) ++ eprintf("getgrnam %s:", rule->group); ++ else ++ eprintf("getgrnam %s: no such group\n", ++ rule->group); ++ } + +- if (chown(rpath.path, pw->pw_uid, gr->gr_gid) < 0) +- eprintf("chown %s:", rpath.path); ++ if (chown(rpath.path, pw->pw_uid, gr->gr_gid) < 0) ++ eprintf("chown %s:", rpath.path); + +- if (chmod(rpath.path, rule->mode) < 0) +- eprintf("chmod %s:", rpath.path); ++ if (chmod(rpath.path, rule->mode) < 0) ++ eprintf("chmod %s:", rpath.path); + +- if (rule->path && rule->path[0] == '>') { +- /* ev->devname is the original device name */ +- snprintf(buf, sizeof(buf), "/dev/%s", ev->devname); +- symlink(rpath.path, buf); ++ if (rule->path && rule->path[0] == '>') { ++ /* ev->devname is the original device name */ ++ snprintf(buf, sizeof(buf), "/dev/%s", ev->devname); ++ symlink(rpath.path, buf); ++ } + } +- + runrule: + if(rule->cmd) { + if (chdir("/dev") < 0) +@@ -389,12 +392,10 @@ populatedev(const char *path) + char *cwd; + + recurse(path, populatedev); +- if (strcmp(path, "dev") == 0) { +- cwd = agetcwd(); +- if (!craftev(cwd)) +- dohotplug(); +- free(cwd); +- } ++ cwd = agetcwd(); ++ if (!craftev(cwd)) ++ dohotplug(); ++ free(cwd); + } + + static int +-- +2.26.2 + diff --git a/pat/smdev-phkr/smdev-config_h.patch b/pat/smdev-phkr/smdev-config_h.patch @@ -0,0 +1,188 @@ +--- config.h 2022-07-27 15:20:15.426380006 +0200 ++++ config.h 2022-07-27 15:18:41.069286446 +0200 +@@ -7,38 +7,153 @@ + const char *path; + const char *cmd; + } rules[] = { +- { "null", "root", "root", 0666, NULL, NULL }, +- { "zero", "root", "root", 0666, NULL, NULL }, +- { "full", "root", "root", 0666, NULL, NULL }, +- { "random", "root", "root", 0666, NULL, NULL }, +- { "urandom", "root", "root", 0444, NULL, NULL }, +- { "hwrandom", "root", "root", 0660, NULL, NULL }, +- { "mem", "root", "root", 0640, NULL, NULL }, +- { "kmem", "root", "root", 0640, NULL, NULL }, +- { "port", "root", "root", 0640, NULL, NULL }, +- { "console", "root", "tty", 0600, NULL, NULL }, +- { "ptmx", "root", "tty", 0666, NULL, NULL }, +- { "tty", "root", "tty", 0666, NULL, NULL }, +- { "tty[0-9]", "root", "root", 0600, NULL, NULL }, +- { "tty[0-9][0-9]","root", "tty", 0660, NULL, NULL }, +- { "ttyS[0-9]*", "root", "tty", 0660, NULL, NULL, }, +- { "pty.*", "root", "tty", 0660, NULL, NULL }, +- { "vcs[0-9]*", "root", "tty", 0660, NULL, NULL }, +- { "vcsa*[0-9]*", "root", "tty", 0660, NULL, NULL }, +- { "sd[a-z].*", "root", "disk", 0660, NULL, NULL }, +- { "sr[0-9]*", "root", "cdrom", 0660, NULL, "@ln -sf $DEVNAME /dev/cdrom" }, +- { "ts[0-9]+", "root", "root", 0640, "=input/", NULL }, +- { "input/.*", "root", "root", 0640, "=input/", NULL }, +- { "dri/.*", "root", "video", 0660, "=dri/", NULL }, +- { "snd/.*", "root", "audio", 0660, "=snd/", NULL }, +- { "midi.*", "root", "audio", 0660, "=snd/", NULL }, +- { "seq", "root", "audio", 0660, "=snd/", NULL }, +- { "timer", "root", "audio", 0660, "=snd/", NULL }, +- { "rtc[0-9]*", "root", "root", 0664, NULL, NULL }, +- { "vbi[0-9]", "root", "video", 0660, NULL, NULL }, +- { "video[0-9]", "root", "video", 0660, NULL, NULL }, +- { "fuse", "root", "root", 0666, NULL, NULL }, +- { ".*", "root", "root", 0660, NULL, NULL }, ++ //tty ++ { "console", "root", "tty", 0600, NULL, NULL }, ++ { "pty.*", "root", "tty", 0660, NULL, NULL }, ++ { "ptmx", "root", "tty", 0666, NULL, NULL }, ++ { "tty", "root", "tty", 0666, NULL, NULL }, ++ { "tty[0-9]", "root", "tty", 0600, NULL, NULL }, ++ { "tty[0-9][0-9]", "root", "tty", 0660, NULL, NULL }, ++ { "vcs*[0-9].*", "root", "tty", 0660, NULL, NULL }, ++ // serial ++ { "tty.*", "root", "uucp", 0660, NULL, NULL }, ++ { "slamr", "root", "tty", 0660, NULL, NULL }, ++ { "slusb", "root", "tty", 0660, NULL, NULL }, ++ { "vport.*", "root", "root", 0660, NULL, NULL }, ++ { "ircomm[0-9].*", "root", "uucp", 0660, NULL, NULL }, ++ { "noz[0-9].*", "root", "uucp", 0660, NULL, NULL }, ++ { "rfcomm[0-9].*", "root", "uucp", 0660, NULL, NULL }, ++ { "mwave", "root", "uucp", 0660, NULL, NULL }, ++ { "hvc.*", "root", "uucp", 0660, NULL, NULL }, ++ { "hvi.*", "root", "uucp", 0660, NULL, NULL }, ++ { "ppox[0-9].*", "root", "uucp", 0660, NULL, NULL }, ++ // mem ++ { "null", "root", "root", 0666, NULL, NULL }, ++ { "zero", "root", "root", 0666, NULL, NULL }, ++ { "full", "root", "root", 0666, NULL, NULL }, ++ { "random", "root", "root", 0444, NULL, "@/etc/smdev/processdev" }, ++ { "urandom", "root", "root", 0666, NULL, "@/etc/smdev/processdev" }, ++ { "hwrandom", "root", "root", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "hw_random", "root", "root", 0660, "=hwrng", "@/etc/smdev/processdev" }, ++ { "mem", "root", "kmem", 0640, NULL, "@/etc/smdev/processdev" }, ++ //{ "kmem", "root", "kmem", 0640, NULL, "@/etc/smdev/processdev" }, ++ { "port", "root", "kmem", 0640, NULL, "@/etc/smdev/processdev" }, ++ { "nvram", "root", "kmem", 0640, NULL, "@/etc/smdev/processdev" }, ++ // input ++ { "input/.*", "root", "input", 0660, "=input/", "@/etc/smdev/processdev" }, ++ { "ts[0-9].+", "root", "root", 0640, "=input/", "@/etc/smdev/processdev" }, ++ // graphics ++ { "video.*", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "vchiq", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "vbi[0-9]", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "cec[0-9]", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "agpgart", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "pmu", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "fb[0-9].*", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "nvidia", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "nvidiactl", "root", "video", 0660, NULL, "@/etc/smdev/processdev" }, ++ // dri ++ { "dri/.*", "root", "video", 0660, "=dri/", "@/etc/smdev/processdev" }, ++ { "card[0-9].*", "root", "video", 0660, "=dri/", "@/etc/smdev/processdev" }, ++ // usb ++ { "bus/usb/.*", "root", "usb", 0664, NULL, "@/etc/smdev/processdev" }, ++ // printer ++ { "partport[0-9].*","root", "lp", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "partport_pc", "root", "lp", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "usb/lp[0-9].*", "root", "lp", 0660, "=usb/", "@/etc/smdev/processdev" }, ++ { "lp[0-9]*", "root", "lp", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "irlpt[0-9].*", "root"," lp", 0660, NULL, "@/etc/smdev/processdev" }, ++ // block ++ { "sd[a-z].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "hd[a-z].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "ram[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "loop[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "control", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "mmcblk[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "md.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "mtd.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "ndb.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "gnbd.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "btibm.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "dm-.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "vd.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "sg.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "sr[0-9].*", "root", "cdrom", 0660, NULL, "@/etc/smdev/processdev" },//"@ln -sf $DEVNAME /dev/cdrom" ++ { "fd[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ // tape ++ { "ht[0-9].*", "root", "tape", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "nht[0-9].*", "root", "tape", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "pt[0-9].*", "root", "tape", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "npt[0-9].*", "root", "tape", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "pht[0-9].*", "root", "tape", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "st*[0-9].*", "root", "tape", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "nst*[0-9].*", "root", "tape", 0660, NULL, "@/etc/smdev/processdev" }, ++ //block-related ++ { "btrfs-control", "root", "root", 0600, NULL, "@/etc/smdev/processdev" }, ++ { "loop-control", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "mapper/.*", "root", "root", 0600, "=mapper/","@/etc/smdev/processdev" }, ++ { "scsi.*/.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "bdi.*/.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "sch[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "pg[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "qft[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "nqft[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "zqft[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "nzqft[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "rawqft[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "nrawqft[0-9].*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "raw[0-9].*", "root", "disk", 0660, "=raw/", "@/etc/smdev/processdev" }, ++ { "rawctl", "root", "disk", 0660, "=raw/", "@/etc/smdev/processdev" }, ++ { "aoe.*", "root", "disk", 0660, "=etherd/","@/etc/smdev/processdev" }, ++ { "bsg/.*", "root", "disk", 0660, "=bsg/", "@/etc/smdev/processdev" }, ++ // audio ++ { "snd/.*", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "midi.*", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "snd/seq", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "snd/timer", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "hpet", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "adsp", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "audio", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "dsp", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "mixer", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "sequencer.*", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ { "pcm.*", "root", "audio", 0660, "=snd/", "@/etc/smdev/processdev" }, ++ // network ++ { "-net/.*", "root", "network", 0660, NULL, NULL }, //"@nameif" ++ { "tun", "root", "network", 0666, "=net/", "@/etc/smdev/processdev" }, ++ { "tun[0-9].*", "root", "network", 0660, "=net/", "@/etc/smdev/processdev" }, ++ { "tap[0-9].*", "root", "network", 0660, "=net/", "@/etc/smdev/processdev" }, ++ { "rfkill", "root", "rfkill", 0640, NULL, "@/etc/smdev/processdev" }, ++ // cpu ++ { "cpu([0-9].+)", "root", "root", 0444, "=cpu/%1/cpuid", "@/etc/smdev/processdev" }, ++ { "msr([0-9].+)", "root", "root", 0600, "=cpu/%1/msr", "@/etc/smdev/processdev" }, ++ { "microcode", "root", "root", 0600, "=cpu/microcode","@/etc/smdev/processdev" }, ++ // fuse ++ { "fuse", "root", "root", 0666, NULL, "@mount -t fusectl fusectl /sys/fs/fuse/connections"}, ++ // raid controllers ++ { "cciss.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "ida.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "rd.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ // misc ++ { "ppp", "root", "root", 0000, NULL, "@/etc/smdev/processdev" }, ++ { "kvm", "root", "kvm", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "vhost-net", "root", "kvm", 0666, NULL, "@/etc/smdev/processdev" }, ++ { "vhost-vsock", "root", "kvm", 0666, NULL, "@/etc/smdev/processdev" }, ++ { "rtc", "root", "root", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "rtc[0-9]*", "root", "root", 0664, NULL, "@/etc/smdev/processdev" }, ++ { "mmtimer", "root", "root", 0644, NULL, "@/etc/smdev/processdev" }, ++ { "rflash[0-9]*", "root", "root", 0400, NULL, "@/etc/smdev/processdev" }, ++ { "rrom[0-9]*", "root", "root", 0400, NULL, "@/etc/smdev/processdev" }, ++ { "auer[0-9]*", "root", "root", 0660, "=usb/", "@/etc/smdev/processdev" }, ++ { "sxctl", "root", "root", 0660, "=specialix_sxctl/", "@/etc/smdev/processdev" }, ++ { "rioctl", "root", "root", 0660, "=specialix_rioctl/", "@/etc/smdev/processdev" }, ++ //arch ++ { "sgi_.*", "root", "root", 0666, NULL, "@/etc/smdev/processdev" }, ++ { "iseries/ibmsis.*","root","disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "iseries/nvt.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "iseries/vt.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { "iseries/vtty.*", "root", "disk", 0660, NULL, "@/etc/smdev/processdev" }, ++ { ".*", "root", "root", 0660, NULL, "@/etc/smdev/processdev" }, + }; + + /* Fill into this table if you want to rename the network interface diff --git a/pat/smdev-phkr/usb_nodes.patch b/pat/smdev-phkr/usb_nodes.patch @@ -0,0 +1,26 @@ +From 4c7b9620a746c35bb943cc40b27d729e714884d1 Mon Sep 17 00:00:00 2001 +From: Platon Ryzhikov <ihummer63@yandex.ru> +Date: Thu, 3 Jun 2021 10:26:35 +0300 +Subject: [PATCH] Create USB nodes correctly + +Linux kernel creates USB devices with nodes like bus/usb/002/007 +--- + smdev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/smdev.c b/smdev.c +index b774908..b9321df 100644 +--- a/smdev.c ++++ b/smdev.c +@@ -185,7 +185,7 @@ parsepath(struct rule *rule, struct rulepath *rpath, + if (!rule->path) { + strlcpy(rpath->name, basedevname, sizeof(rpath->name)); + snprintf(rpath->path, sizeof(rpath->path), "/dev/%s", +- rpath->name); ++ devname); + return; + } + +-- +2.31.1 +