]> git.ipfire.org Git - people/stevee/ipfire-2.x.git/commitdiff
Merge remote-tracking branch 'origin/master' into next
authorArne Fitzenreiter <arne_f@ipfire.org>
Sun, 13 Feb 2022 14:37:49 +0000 (14:37 +0000)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sun, 13 Feb 2022 14:37:49 +0000 (14:37 +0000)
374 files changed:
config/backup/backup.pl
config/backup/include
config/cfgroot/graphs.pl
config/cfgroot/ids-functions.pl
config/collectd/collectd.conf
config/etc/sysctl.conf
config/kernel/kernel.config.aarch64-ipfire
config/kernel/kernel.config.armv6l-ipfire
config/kernel/kernel.config.x86_64-ipfire
config/oinkmaster/oinkmaster.conf
config/rootfiles/common/Net-DNS
config/rootfiles/common/aarch64/gdb [new file with mode: 0644]
config/rootfiles/common/aarch64/linux
config/rootfiles/common/aarch64/linux-headers
config/rootfiles/common/aarch64/rust
config/rootfiles/common/aarch64/u-boot
config/rootfiles/common/armv6l/linux
config/rootfiles/common/armv6l/linux-headers
config/rootfiles/common/armv6l/python3
config/rootfiles/common/armv6l/rust
config/rootfiles/common/bind
config/rootfiles/common/configroot
config/rootfiles/common/expat
config/rootfiles/common/freetype
config/rootfiles/common/gdbm
config/rootfiles/common/jq [new file with mode: 0644]
config/rootfiles/common/kmod
config/rootfiles/common/libusb
config/rootfiles/common/libxml2
config/rootfiles/common/libxslt
config/rootfiles/common/libyang
config/rootfiles/common/pciutils
config/rootfiles/common/pcre2
config/rootfiles/common/python3
config/rootfiles/common/rust-aho-corasick [new file with mode: 0644]
config/rootfiles/common/rust-autocfg [new file with mode: 0644]
config/rootfiles/common/rust-block-buffer [new file with mode: 0644]
config/rootfiles/common/rust-cfg-if [new file with mode: 0644]
config/rootfiles/common/rust-cipher [new file with mode: 0644]
config/rootfiles/common/rust-crossbeam-channel [new file with mode: 0644]
config/rootfiles/common/rust-crossbeam-deque [new file with mode: 0644]
config/rootfiles/common/rust-crossbeam-epoch [new file with mode: 0644]
config/rootfiles/common/rust-crossbeam-utils [new file with mode: 0644]
config/rootfiles/common/rust-crypto-common [new file with mode: 0644]
config/rootfiles/common/rust-ctor [new file with mode: 0644]
config/rootfiles/common/rust-digest [new file with mode: 0644]
config/rootfiles/common/rust-dirs [new file with mode: 0644]
config/rootfiles/common/rust-dissimilar [new file with mode: 0644]
config/rootfiles/common/rust-either [new file with mode: 0644]
config/rootfiles/common/rust-generic-array [new file with mode: 0644]
config/rootfiles/common/rust-getrandom [new file with mode: 0644]
config/rootfiles/common/rust-ghost [new file with mode: 0644]
config/rootfiles/common/rust-glob [new file with mode: 0644]
config/rootfiles/common/rust-hex [new file with mode: 0644]
config/rootfiles/common/rust-home [new file with mode: 0644]
config/rootfiles/common/rust-indoc [new file with mode: 0644]
config/rootfiles/common/rust-indoc-impl [new file with mode: 0644]
config/rootfiles/common/rust-instant [new file with mode: 0644]
config/rootfiles/common/rust-inventory [new file with mode: 0644]
config/rootfiles/common/rust-inventory-impl [new file with mode: 0644]
config/rootfiles/common/rust-itoa [new file with mode: 0644]
config/rootfiles/common/rust-lazy-static [new file with mode: 0644]
config/rootfiles/common/rust-libc [new file with mode: 0644]
config/rootfiles/common/rust-lock_api [new file with mode: 0644]
config/rootfiles/common/rust-log [new file with mode: 0644]
config/rootfiles/common/rust-memchr [new file with mode: 0644]
config/rootfiles/common/rust-memoffset [new file with mode: 0644]
config/rootfiles/common/rust-num_cpus [new file with mode: 0644]
config/rootfiles/common/rust-once_cell [new file with mode: 0644]
config/rootfiles/common/rust-parking_lot [new file with mode: 0644]
config/rootfiles/common/rust-parking_lot_core [new file with mode: 0644]
config/rootfiles/common/rust-paste [new file with mode: 0644]
config/rootfiles/common/rust-paste-impl [new file with mode: 0644]
config/rootfiles/common/rust-pest [new file with mode: 0644]
config/rootfiles/common/rust-ppv-lite86 [new file with mode: 0644]
config/rootfiles/common/rust-proc-macro-hack [new file with mode: 0644]
config/rootfiles/common/rust-proc-macro2 [new file with mode: 0644]
config/rootfiles/common/rust-pyo3 [new file with mode: 0644]
config/rootfiles/common/rust-pyo3-build-config [new file with mode: 0644]
config/rootfiles/common/rust-pyo3-macros [new file with mode: 0644]
config/rootfiles/common/rust-pyo3-macros-backend [new file with mode: 0644]
config/rootfiles/common/rust-quote [new file with mode: 0644]
config/rootfiles/common/rust-rand [new file with mode: 0644]
config/rootfiles/common/rust-rand-0.4 [new file with mode: 0644]
config/rootfiles/common/rust-rand_chacha [new file with mode: 0644]
config/rootfiles/common/rust-rand_core [new file with mode: 0644]
config/rootfiles/common/rust-rand_core-0.3.1 [new file with mode: 0644]
config/rootfiles/common/rust-rand_core-0.4.2 [new file with mode: 0644]
config/rootfiles/common/rust-rand_hc [new file with mode: 0644]
config/rootfiles/common/rust-rayon [new file with mode: 0644]
config/rootfiles/common/rust-rayon-core [new file with mode: 0644]
config/rootfiles/common/rust-rdrand [new file with mode: 0644]
config/rootfiles/common/rust-regex [new file with mode: 0644]
config/rootfiles/common/rust-regex-syntax [new file with mode: 0644]
config/rootfiles/common/rust-remove_dir_all [new file with mode: 0644]
config/rootfiles/common/rust-ryu [new file with mode: 0644]
config/rootfiles/common/rust-same-file [new file with mode: 0644]
config/rootfiles/common/rust-scopeguard [new file with mode: 0644]
config/rootfiles/common/rust-semver [new file with mode: 0644]
config/rootfiles/common/rust-semver-parser [new file with mode: 0644]
config/rootfiles/common/rust-serde [new file with mode: 0644]
config/rootfiles/common/rust-serde_derive [new file with mode: 0644]
config/rootfiles/common/rust-serde_json [new file with mode: 0644]
config/rootfiles/common/rust-smallvec [new file with mode: 0644]
config/rootfiles/common/rust-syn [new file with mode: 0644]
config/rootfiles/common/rust-synstructure [new file with mode: 0644]
config/rootfiles/common/rust-tempdir [new file with mode: 0644]
config/rootfiles/common/rust-termcolor [new file with mode: 0644]
config/rootfiles/common/rust-toml [new file with mode: 0644]
config/rootfiles/common/rust-toolchain_find [new file with mode: 0644]
config/rootfiles/common/rust-trybuild [new file with mode: 0644]
config/rootfiles/common/rust-typenum [new file with mode: 0644]
config/rootfiles/common/rust-ucd-trie [new file with mode: 0644]
config/rootfiles/common/rust-unicode-xid [new file with mode: 0644]
config/rootfiles/common/rust-unindent [new file with mode: 0644]
config/rootfiles/common/rust-version-check [new file with mode: 0644]
config/rootfiles/common/rust-walkdir [new file with mode: 0644]
config/rootfiles/common/shadow
config/rootfiles/common/squid
config/rootfiles/common/suricata
config/rootfiles/common/tcl
config/rootfiles/common/usbutils
config/rootfiles/common/web-user-interface
config/rootfiles/common/x86_64/intel-microcode
config/rootfiles/common/x86_64/linux
config/rootfiles/common/x86_64/linux-headers
config/rootfiles/common/x86_64/rust
config/rootfiles/common/zstd
config/rootfiles/core/164/core-files [moved from config/rootfiles/core/163/core-files with 100% similarity]
config/rootfiles/core/164/exclude [moved from config/rootfiles/core/163/exclude with 100% similarity]
config/rootfiles/core/164/filelists/aarch64/linux [new symlink]
config/rootfiles/core/164/filelists/aarch64/linux-initrd [new symlink]
config/rootfiles/core/164/filelists/aarch64/u-boot [new symlink]
config/rootfiles/core/164/filelists/armv6l/linux [new symlink]
config/rootfiles/core/164/filelists/armv6l/linux-initrd [new symlink]
config/rootfiles/core/164/filelists/bind [new symlink]
config/rootfiles/core/164/filelists/core-files [moved from config/rootfiles/core/163/filelists/core-files with 100% similarity]
config/rootfiles/core/164/filelists/diffutils [new symlink]
config/rootfiles/core/164/filelists/expat [new symlink]
config/rootfiles/core/164/filelists/files [new file with mode: 0644]
config/rootfiles/core/164/filelists/freetype [moved from config/rootfiles/core/163/filelists/freetype with 100% similarity]
config/rootfiles/core/164/filelists/gdbm [new symlink]
config/rootfiles/core/164/filelists/hdparm [new symlink]
config/rootfiles/core/164/filelists/ids-ruleset-sources [new symlink]
config/rootfiles/core/164/filelists/jq [new symlink]
config/rootfiles/core/164/filelists/kmod [new symlink]
config/rootfiles/core/164/filelists/libusb [new symlink]
config/rootfiles/core/164/filelists/libxml2 [new symlink]
config/rootfiles/core/164/filelists/libxslt [new symlink]
config/rootfiles/core/164/filelists/libyang [new symlink]
config/rootfiles/core/164/filelists/lvm2 [new symlink]
config/rootfiles/core/164/filelists/oinkmaster [new symlink]
config/rootfiles/core/164/filelists/pciutils [new symlink]
config/rootfiles/core/164/filelists/pcre2 [new symlink]
config/rootfiles/core/164/filelists/poppler-data [new symlink]
config/rootfiles/core/164/filelists/shadow [moved from config/rootfiles/core/163/filelists/shadow with 100% similarity]
config/rootfiles/core/164/filelists/squid [moved from config/rootfiles/core/163/filelists/squid with 100% similarity]
config/rootfiles/core/164/filelists/tcl [new symlink]
config/rootfiles/core/164/filelists/usbutils [new symlink]
config/rootfiles/core/164/filelists/x86_64/intel-microcode [new symlink]
config/rootfiles/core/164/filelists/x86_64/linux [new symlink]
config/rootfiles/core/164/filelists/x86_64/linux-initrd [new symlink]
config/rootfiles/core/164/filelists/zstd [new symlink]
config/rootfiles/core/164/update.sh [new file with mode: 0644]
config/rootfiles/oldcore/163/core-files [new file with mode: 0644]
config/rootfiles/oldcore/163/exclude [new file with mode: 0644]
config/rootfiles/oldcore/163/filelists/apache2 [moved from config/rootfiles/core/163/filelists/apache2 with 100% similarity]
config/rootfiles/oldcore/163/filelists/bash [moved from config/rootfiles/core/163/filelists/bash with 100% similarity]
config/rootfiles/oldcore/163/filelists/ca-certificates [moved from config/rootfiles/core/163/filelists/ca-certificates with 100% similarity]
config/rootfiles/oldcore/163/filelists/curl [moved from config/rootfiles/core/163/filelists/curl with 100% similarity]
config/rootfiles/oldcore/163/filelists/e2fsprogs [moved from config/rootfiles/core/163/filelists/e2fsprogs with 100% similarity]
config/rootfiles/oldcore/163/filelists/ethtool [moved from config/rootfiles/core/163/filelists/ethtool with 100% similarity]
config/rootfiles/oldcore/163/filelists/exfatprogs [moved from config/rootfiles/core/163/filelists/exfatprogs with 100% similarity]
config/rootfiles/oldcore/163/filelists/files [moved from config/rootfiles/core/163/filelists/files with 100% similarity]
config/rootfiles/oldcore/163/filelists/freetype [new symlink]
config/rootfiles/oldcore/163/filelists/fribidi [moved from config/rootfiles/core/163/filelists/fribidi with 100% similarity]
config/rootfiles/oldcore/163/filelists/gdb [moved from config/rootfiles/core/163/filelists/gdb with 100% similarity]
config/rootfiles/oldcore/163/filelists/glib [moved from config/rootfiles/core/163/filelists/glib with 100% similarity]
config/rootfiles/oldcore/163/filelists/grep [moved from config/rootfiles/core/163/filelists/grep with 100% similarity]
config/rootfiles/oldcore/163/filelists/gzip [moved from config/rootfiles/core/163/filelists/gzip with 100% similarity]
config/rootfiles/oldcore/163/filelists/harfbuzz [moved from config/rootfiles/core/163/filelists/harfbuzz with 100% similarity]
config/rootfiles/oldcore/163/filelists/iproute2 [moved from config/rootfiles/core/163/filelists/iproute2 with 100% similarity]
config/rootfiles/oldcore/163/filelists/libarchive [moved from config/rootfiles/core/163/filelists/libarchive with 100% similarity]
config/rootfiles/oldcore/163/filelists/libcap [moved from config/rootfiles/core/163/filelists/libcap with 100% similarity]
config/rootfiles/oldcore/163/filelists/libedit [moved from config/rootfiles/core/163/filelists/libedit with 100% similarity]
config/rootfiles/oldcore/163/filelists/libgcrypt [moved from config/rootfiles/core/163/filelists/libgcrypt with 100% similarity]
config/rootfiles/oldcore/163/filelists/libgpg-error [moved from config/rootfiles/core/163/filelists/libgpg-error with 100% similarity]
config/rootfiles/oldcore/163/filelists/libloc [moved from config/rootfiles/core/163/filelists/libloc with 100% similarity]
config/rootfiles/oldcore/163/filelists/libtasn1 [moved from config/rootfiles/core/163/filelists/libtasn1 with 100% similarity]
config/rootfiles/oldcore/163/filelists/liburcu [moved from config/rootfiles/core/163/filelists/liburcu with 100% similarity]
config/rootfiles/oldcore/163/filelists/linux-firmware [moved from config/rootfiles/core/163/filelists/linux-firmware with 100% similarity]
config/rootfiles/oldcore/163/filelists/m4 [moved from config/rootfiles/core/163/filelists/m4 with 100% similarity]
config/rootfiles/oldcore/163/filelists/ncurses [moved from config/rootfiles/core/163/filelists/ncurses with 100% similarity]
config/rootfiles/oldcore/163/filelists/pam [moved from config/rootfiles/core/163/filelists/pam with 100% similarity]
config/rootfiles/oldcore/163/filelists/pango [moved from config/rootfiles/core/163/filelists/pango with 100% similarity]
config/rootfiles/oldcore/163/filelists/poppler [moved from config/rootfiles/core/163/filelists/poppler with 100% similarity]
config/rootfiles/oldcore/163/filelists/qpdf [moved from config/rootfiles/core/163/filelists/qpdf with 100% similarity]
config/rootfiles/oldcore/163/filelists/rng-tools [moved from config/rootfiles/core/163/filelists/rng-tools with 100% similarity]
config/rootfiles/oldcore/163/filelists/sdparm [moved from config/rootfiles/core/163/filelists/sdparm with 100% similarity]
config/rootfiles/oldcore/163/filelists/shadow [new symlink]
config/rootfiles/oldcore/163/filelists/sqlite [moved from config/rootfiles/core/163/filelists/sqlite with 100% similarity]
config/rootfiles/oldcore/163/filelists/squid [new symlink]
config/rootfiles/oldcore/163/filelists/sudo [moved from config/rootfiles/core/163/filelists/sudo with 100% similarity]
config/rootfiles/oldcore/163/filelists/sysvinit [moved from config/rootfiles/core/163/filelists/sysvinit with 100% similarity]
config/rootfiles/oldcore/163/filelists/unbound [moved from config/rootfiles/core/163/filelists/unbound with 100% similarity]
config/rootfiles/oldcore/163/filelists/wget [moved from config/rootfiles/core/163/filelists/wget with 100% similarity]
config/rootfiles/oldcore/163/filelists/xfsprogs [moved from config/rootfiles/core/163/filelists/xfsprogs with 100% similarity]
config/rootfiles/oldcore/163/files [moved from config/rootfiles/core/163/files with 100% similarity]
config/rootfiles/oldcore/163/update.sh [moved from config/rootfiles/core/163/update.sh with 100% similarity]
config/rootfiles/packages/gnu-netcat
config/rootfiles/packages/libvirt
config/rootfiles/packages/perl-File-ReadBackwards
config/rootfiles/packages/python3-setuptools
config/rootfiles/packages/qemu
config/rootfiles/packages/qemu-ga [new file with mode: 0644]
config/shadow/login.defs
config/suricata/convert-ids-multiple-providers [new file with mode: 0644]
config/suricata/convert-snort
config/suricata/ruleset-sources
config/suricata/suricata.yaml
config/urlfilter/autoupdate.urls
html/cgi-bin/ids.cgi
html/cgi-bin/logs.cgi/log.dat
html/cgi-bin/optionsfw.cgi
html/cgi-bin/pakfire.cgi
html/html/include/pakfire.js [new file with mode: 0644]
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
lfs/Config
lfs/bind
lfs/clamav
lfs/configroot
lfs/diffutils
lfs/dnsdist
lfs/expat
lfs/freetype
lfs/frr
lfs/gdb
lfs/gdbm
lfs/hdparm
lfs/intel-microcode
lfs/jq [new file with mode: 0644]
lfs/kmod
lfs/libusb
lfs/libvirt
lfs/libxml2
lfs/libxslt
lfs/linux
lfs/lvm2
lfs/monit
lfs/pciutils
lfs/pcre2
lfs/poppler-data
lfs/python3-setuptools
lfs/qemu
lfs/qemu-ga [new file with mode: 0644]
lfs/rust
lfs/rust-aho-corasick [new file with mode: 0644]
lfs/rust-autocfg [new file with mode: 0644]
lfs/rust-block-buffer [new file with mode: 0644]
lfs/rust-cfg-if [new file with mode: 0644]
lfs/rust-cipher [new file with mode: 0644]
lfs/rust-crossbeam-channel [new file with mode: 0644]
lfs/rust-crossbeam-deque [new file with mode: 0644]
lfs/rust-crossbeam-epoch [new file with mode: 0644]
lfs/rust-crossbeam-utils [new file with mode: 0644]
lfs/rust-crypto-common [new file with mode: 0644]
lfs/rust-ctor [new file with mode: 0644]
lfs/rust-digest [new file with mode: 0644]
lfs/rust-dirs [new file with mode: 0644]
lfs/rust-dissimilar [new file with mode: 0644]
lfs/rust-either [new file with mode: 0644]
lfs/rust-generic-array [new file with mode: 0644]
lfs/rust-getrandom [new file with mode: 0644]
lfs/rust-ghost [new file with mode: 0644]
lfs/rust-glob [new file with mode: 0644]
lfs/rust-hex [new file with mode: 0644]
lfs/rust-home [new file with mode: 0644]
lfs/rust-indoc [new file with mode: 0644]
lfs/rust-indoc-impl [new file with mode: 0644]
lfs/rust-instant [new file with mode: 0644]
lfs/rust-inventory [new file with mode: 0644]
lfs/rust-inventory-impl [new file with mode: 0644]
lfs/rust-itoa [new file with mode: 0644]
lfs/rust-lazy-static [new file with mode: 0644]
lfs/rust-libc [new file with mode: 0644]
lfs/rust-lock_api [new file with mode: 0644]
lfs/rust-log [new file with mode: 0644]
lfs/rust-memchr [new file with mode: 0644]
lfs/rust-memoffset [new file with mode: 0644]
lfs/rust-num_cpus [new file with mode: 0644]
lfs/rust-once_cell [new file with mode: 0644]
lfs/rust-parking_lot [new file with mode: 0644]
lfs/rust-parking_lot_core [new file with mode: 0644]
lfs/rust-paste [new file with mode: 0644]
lfs/rust-paste-impl [new file with mode: 0644]
lfs/rust-pest [new file with mode: 0644]
lfs/rust-ppv-lite86 [new file with mode: 0644]
lfs/rust-proc-macro-hack [new file with mode: 0644]
lfs/rust-proc-macro2 [new file with mode: 0644]
lfs/rust-pyo3 [new file with mode: 0644]
lfs/rust-pyo3-build-config [new file with mode: 0644]
lfs/rust-pyo3-macros [new file with mode: 0644]
lfs/rust-pyo3-macros-backend [new file with mode: 0644]
lfs/rust-quote [new file with mode: 0644]
lfs/rust-rand [new file with mode: 0644]
lfs/rust-rand-0.4 [new file with mode: 0644]
lfs/rust-rand_chacha [new file with mode: 0644]
lfs/rust-rand_core [new file with mode: 0644]
lfs/rust-rand_core-0.3.1 [new file with mode: 0644]
lfs/rust-rand_core-0.4.2 [new file with mode: 0644]
lfs/rust-rand_hc [new file with mode: 0644]
lfs/rust-rayon [new file with mode: 0644]
lfs/rust-rayon-core [new file with mode: 0644]
lfs/rust-rdrand [new file with mode: 0644]
lfs/rust-regex [new file with mode: 0644]
lfs/rust-regex-syntax [new file with mode: 0644]
lfs/rust-remove_dir_all [new file with mode: 0644]
lfs/rust-ryu [new file with mode: 0644]
lfs/rust-same-file [new file with mode: 0644]
lfs/rust-scopeguard [new file with mode: 0644]
lfs/rust-semver [new file with mode: 0644]
lfs/rust-semver-parser [new file with mode: 0644]
lfs/rust-serde [new file with mode: 0644]
lfs/rust-serde_derive [new file with mode: 0644]
lfs/rust-serde_json [new file with mode: 0644]
lfs/rust-smallvec [new file with mode: 0644]
lfs/rust-syn [new file with mode: 0644]
lfs/rust-synstructure [new file with mode: 0644]
lfs/rust-tempdir [new file with mode: 0644]
lfs/rust-termcolor [new file with mode: 0644]
lfs/rust-toml [new file with mode: 0644]
lfs/rust-toolchain_find [new file with mode: 0644]
lfs/rust-trybuild [new file with mode: 0644]
lfs/rust-typenum [new file with mode: 0644]
lfs/rust-ucd-trie [new file with mode: 0644]
lfs/rust-unicode-xid [new file with mode: 0644]
lfs/rust-unindent [new file with mode: 0644]
lfs/rust-version-check [new file with mode: 0644]
lfs/rust-walkdir [new file with mode: 0644]
lfs/shadow
lfs/squid
lfs/suricata
lfs/tcl
lfs/u-boot
lfs/usbutils
lfs/zstd
make.sh
src/initscripts/packages/qemu-ga [new file with mode: 0755]
src/initscripts/system/firewall
src/initscripts/system/leds
src/initscripts/system/partresize
src/initscripts/system/squid
src/pakfire/lib/functions.pl
src/paks/qemu-ga/install.sh [new file with mode: 0644]
src/paks/qemu-ga/uninstall.sh [new file with mode: 0644]
src/paks/qemu-ga/update.sh [new file with mode: 0644]
src/patches/libvirt/0001-Change-default-behavior-of-libvirt-guests.sh-for-IPF.patch
src/patches/linux/linux-5.15.17-layer7.patch [moved from src/patches/linux/linux-5.15-layer7.patch with 95% similarity]
src/patches/rust-dirs-1.0.5-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-getrandom-0.2.4-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-home-0.5.3-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-num_cpus-1.13.1-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-parking_lot_core-0.8.5-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-rand-0.4.6-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-remove_dir_all-0.5.3-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-same-file-1.0.6-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-termcolor-1.1.2-fix-metadata.patch [new file with mode: 0644]
src/patches/rust-walkdir-2.3.2-fix-metadata.patch [new file with mode: 0644]
src/patches/shadow-4.11.1-suppress_installation_of_groups.patch [new file with mode: 0644]
src/patches/shadow-4.2.1-suppress_installation_of_groups.patch [deleted file]
src/scripts/update-ids-ruleset
tools/checkrootfiles
tools/download-rust-crate [new file with mode: 0755]

index afd8d1663df650aeebafa39147adcc4fd0e30f37..63004491c9257edbb23798e0304fe0219dc8e1f8 100644 (file)
@@ -159,6 +159,12 @@ restore_backup() {
                rm -rf "/var/ipfire/snort"
        fi
 
+       # IDS multiple providers converter.
+       if [ -e "/var/ipfire/suricata/rules-settings" ]; then
+               # Run the converter
+               convert-ids-multiple-providers
+       fi
+
        # Convert DNS settings
        convert-dns-settings
 
index 5db452cda05907d7168b9f8deab54a87d220292b..3b96b1d626962171302380481ce6beee0d495d29 100644 (file)
@@ -49,7 +49,7 @@
 /var/ipfire/qos/bin/qos.sh
 /var/ipfire/suricata/*.conf
 /var/ipfire/suricata/*.yaml
-/var/ipfire/suricata/rules-settings
+/var/ipfire/suricata/providers-settings
 /var/ipfire/*/settings
 /var/ipfire/time/
 /var/ipfire/urlfilter
@@ -59,4 +59,5 @@
 /var/log/rrd/*
 /var/log/rrd/collectd
 /var/log/vnstat
-/var/tmp/idsrules.tar.gz
+/var/tmp/idsrules-*.tar.gz
+/var/tmp/idsrules-*.rules
index 02341eb459d04ca9dd37f4d749729f86c4bc324c..b964f1e8072cc7191ddcbf6ce7083d7a88d3e27c 100644 (file)
@@ -3,7 +3,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2005-2010  IPFire Team                                        #
+# Copyright (C) 2005-2021  IPFire Team                                        #
 #                                                                             #
 # 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        #
@@ -106,7 +106,7 @@ foreach (@sensorsdir){
 
 sub makegraphbox {
        my ($origin, $name, $default_range) = @_;
-       
+
        # Optional time range: Default to "day" unless otherwise specified
        $default_range = "day" unless ($default_range ~~ @time_ranges);
 
@@ -154,7 +154,7 @@ sub updatecpugraph {
                "COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),
                "COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j"
        );
-       
+
        my $nice = "CDEF:nice=";
        my $interrupt = "CDEF:interrupt=";
        my $steal = "CDEF:steal=";
@@ -164,7 +164,7 @@ sub updatecpugraph {
        my $iowait = "CDEF:iowait=";
        my $irq = "CDEF:irq=";
        my $addstring = "";
-       
+
        for(my $i = 0; $i < $cpucount; $i++) {
                push(@command,"DEF:iowait".$i."=".$mainsettings{'RRDLOG'}."/collectd/localhost/cpu-".$i."/cpu-wait.rrd:value:AVERAGE"
                                ,"DEF:nice".$i."=".$mainsettings{'RRDLOG'}."/collectd/localhost/cpu-".$i."/cpu-nice.rrd:value:AVERAGE"
@@ -184,7 +184,7 @@ sub updatecpugraph {
                $iowait .= "iowait".$i.",";
                $irq .= "irq".$i.",";
        }
-       
+
        for(my $i = 2; $i < $cpucount; $i++) {
                $addstring .= "ADDNAN,";
        }
@@ -692,6 +692,8 @@ sub updatefwhitsgraph {
                "DEF:forward=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYFWD/ipt_bytes-DROP_FORWARD.rrd:value:AVERAGE",
                "DEF:newnotsyn=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-NEWNOTSYN/ipt_bytes-DROP_NEWNOTSYN.rrd:value:AVERAGE",
                "DEF:portscan=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-PSCAN/ipt_bytes-DROP_PScan.rrd:value:AVERAGE",
+               "DEF:spoofedmartian=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-SPOOFED_MARTIAN/ipt_bytes-DROP_SPOOFED_MARTIAN.rrd:value:AVERAGE",
+               "DEF:hostile=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-HOSTILE/ipt_bytes-DROP_HOSTILE.rrd:value:AVERAGE",
                "COMMENT:".sprintf("%-26s",$Lang::tr{'caption'}),
                "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
                "COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
@@ -722,6 +724,16 @@ sub updatefwhitsgraph {
                "GPRINT:portscan:AVERAGE:%8.1lf %sBps",
                "GPRINT:portscan:MIN:%8.1lf %sBps",
                "GPRINT:portscan:LAST:%8.1lf %sBps\\j",
+               "STACK:spoofedmartian".$color{"color12"}."A0:".sprintf("%-25s",$Lang::tr{'spoofed or martians'}),
+               "GPRINT:spoofedmartian:MAX:%8.1lf %sBps",
+               "GPRINT:spoofedmartian:AVERAGE:%8.1lf %sBps",
+               "GPRINT:spoofedmartian:MIN:%8.1lf %sBps",
+               "GPRINT:spoofedmartian:LAST:%8.1lf %sBps\\j",
+               "STACK:hostile".$color{"color13"}."A0:".sprintf("%-25s",$Lang::tr{'hostile networks'}),
+               "GPRINT:hostile:MAX:%8.1lf %sBps",
+               "GPRINT:hostile:AVERAGE:%8.1lf %sBps",
+               "GPRINT:hostile:MIN:%8.1lf %sBps",
+               "GPRINT:hostile:LAST:%8.1lf %sBps\\j",
                );
                $ERROR = RRDs::error;
                return "Error in RRD::graph for firewallhits: ".$ERROR."\n" if $ERROR;
index 0e397ca192182a1dd9b61604c04ed09b2cbf1184..74d55def6c986ca96b3104f24eb8c865978cd071 100644 (file)
 #                                                                          #
 ############################################################################
 
+use strict;
+
 package IDS;
 
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/network-functions.pl";
+require "${General::swroot}/suricata/ruleset-sources";
 
 # Location where all config and settings files are stored.
 our $settingsdir = "${General::swroot}/suricata";
 
-# File where the used rulefiles are stored.
-our $used_rulefiles_file = "$settingsdir/suricata-used-rulefiles.yaml";
+# File where the main file for providers ruleset inclusion exists.
+our $suricata_used_providers_file = "$settingsdir/suricata-used-providers.yaml";
+
+# File for static ruleset inclusions.
+our $suricata_default_rulefiles_file = "$settingsdir/suricata-default-rules.yaml";
 
 # File where the addresses of the homenet are stored.
 our $homenet_file = "$settingsdir/suricata-homenet.yaml";
@@ -41,11 +47,8 @@ our $dns_servers_file = "$settingsdir/suricata-dns-servers.yaml";
 # File where the HTTP ports definition is stored.
 our $http_ports_file = "$settingsdir/suricata-http-ports.yaml";
 
-# File which contains the enabled sids.
-our $enabled_sids_file = "$settingsdir/oinkmaster-enabled-sids.conf";
-
-# File which contains the disabled sids.
-our $disabled_sids_file = "$settingsdir/oinkmaster-disabled-sids.conf";
+# File which contains includes for provider specific rule modifications.
+our $oinkmaster_provider_includes_file = "$settingsdir/oinkmaster-provider-includes.conf";
 
 # File which contains wheater the rules should be changed.
 our $modify_sids_file = "$settingsdir/oinkmaster-modify-sids.conf";
@@ -53,14 +56,14 @@ our $modify_sids_file = "$settingsdir/oinkmaster-modify-sids.conf";
 # File which stores the configured IPS settings.
 our $ids_settings_file = "$settingsdir/settings";
 
-# File which stores the configured rules-settings.
-our $rules_settings_file = "$settingsdir/rules-settings";
+# File which stores the used and configured ruleset providers.
+our $providers_settings_file = "$settingsdir/providers-settings";
 
 # File which stores the configured settings for whitelisted addresses.
 our $ignored_file = "$settingsdir/ignored";
 
-# Location and name of the tarball which contains the ruleset.
-our $rulestarball = "/var/tmp/idsrules.tar.gz";
+# Location where the downloaded rulesets are stored.
+our $dl_rules_path = "/var/tmp";
 
 # File to store any errors, which also will be read and displayed by the wui.
 our $storederrorfile = "/tmp/ids_storederror";
@@ -71,6 +74,18 @@ our $ids_page_lock_file = "/tmp/ids_page_locked";
 # Location where the rulefiles are stored.
 our $rulespath = "/var/lib/suricata";
 
+# Location where the default rulefils are stored.
+our $default_rulespath = "/usr/share/suricata/rules";
+
+# Location where the addition config files are stored.
+our $configspath = "/usr/share/suricata";
+
+# Location of the classification file.
+our $classification_file = "$configspath/classification.config";
+
+# Location of the sid to msg mappings file.
+our $sid_msg_file = "$rulespath/sid-msg.map";
+
 # Location to store local rules. This file will not be touched.
 our $local_rules_file = "$rulespath/local.rules";
 
@@ -87,6 +102,18 @@ our $idspidfile = "/var/run/suricata.pid";
 # Location of suricatactrl.
 my $suricatactrl = "/usr/local/bin/suricatactrl";
 
+# Prefix for each downloaded ruleset.
+my $dl_rulesfile_prefix = "idsrules";
+
+# Temporary directory where the rulesets will be extracted.
+my $tmp_directory = "/tmp/ids_tmp";
+
+# Temporary directory where the extracted rules files will be stored.
+my $tmp_rules_directory = "$tmp_directory/rules";
+
+# Temporary directory where the extracted additional config files will be stored.
+my $tmp_conf_directory = "$tmp_directory/conf";
+
 # Array with allowed commands of suricatactrl.
 my @suricatactrl_cmds = ( 'start', 'stop', 'restart', 'reload', 'fix-rules-dir', 'cron' );
 
@@ -97,21 +124,87 @@ my @cron_intervals = ('off', 'daily', 'weekly' );
 # http_ports_file.
 my @http_ports = ('80', '81');
 
+# Array which contains a list of rulefiles which always will be included if they exist.
+my @static_included_rulefiles = ('local.rules', 'whitelist.rules');
+
+# Array which contains a list of allways enabled application layer protocols.
+my @static_enabled_app_layer_protos = ('app-layer', 'decoder', 'files', 'stream');
+
+# Hash which allows to convert the download type (dl_type) to a file suffix.
+my %dl_type_to_suffix = (
+       "archive" => ".tar.gz",
+       "plain" => ".rules",
+);
+
+# Hash to translate an application layer protocol to the application name.
+my %tr_app_layer_proto = (
+       "ikev2" => "ipsec",
+       "krb5" => "kerberos",
+);
+
 #
 ## Function to check and create all IDS related files, if the does not exist.
 #
 sub check_and_create_filelayout() {
        # Check if the files exist and if not, create them.
-       unless (-f "$enabled_sids_file") { &create_empty_file($enabled_sids_file); }
-       unless (-f "$disabled_sids_file") { &create_empty_file($disabled_sids_file); }
+       unless (-f "$oinkmaster_provider_includes_file") { &create_empty_file($oinkmaster_provider_includes_file); }
        unless (-f "$modify_sids_file") { &create_empty_file($modify_sids_file); }
-       unless (-f "$used_rulefiles_file") { &create_empty_file($used_rulefiles_file); }
+       unless (-f "$suricata_used_providers_file") { &create_empty_file($suricata_used_providers_file); }
+       unless (-f "$suricata_default_rulefiles_file") { &create_empty_file($suricata_default_rulefiles_file); }
        unless (-f "$ids_settings_file") { &create_empty_file($ids_settings_file); }
-       unless (-f "$rules_settings_file") { &create_empty_file($rules_settings_file); }
+       unless (-f "$providers_settings_file") { &create_empty_file($providers_settings_file); }
        unless (-f "$ignored_file") { &create_empty_file($ignored_file); }
        unless (-f "$whitelist_file" ) { &create_empty_file($whitelist_file); }
 }
 
+#
+## Function to get a list of all available ruleset providers.
+##
+## They will be returned as a sorted array.
+#
+sub get_ruleset_providers() {
+       my @providers;
+
+       # Loop through the hash of providers.
+       foreach my $provider ( keys %IDS::Ruleset::Providers ) {
+               # Add the provider to the array.
+               push(@providers, $provider);
+       }
+
+       # Sort and return the array.
+       return sort(@providers);
+}
+
+#
+## Function to get a list of all enabled ruleset providers.
+##
+## They will be returned as an array.
+#
+sub get_enabled_providers () {
+       my %used_providers = ();
+
+       # Array to store the enabled providers.
+       my @enabled_providers = ();
+
+       # Read-in the providers config file.
+       &General::readhasharray("$providers_settings_file", \%used_providers);
+
+       # Loop through the hash of used_providers.
+       foreach my $id (keys %used_providers) {
+               # Skip disabled providers.
+               next unless ($used_providers{$id}[3] eq "enabled");
+
+               # Grab the provider handle.
+               my $provider = "$used_providers{$id}[0]";
+
+               # Add the provider to the array of enabled providers.
+               push(@enabled_providers, $provider);
+       }
+
+       # Return the array.
+       return @enabled_providers;
+}
+
 #
 ## Function for checking if at least 300MB of free disk space are available
 ## on the "/var" partition.
@@ -147,32 +240,39 @@ sub checkdiskspace () {
 }
 
 #
-## This function is responsible for downloading the configured IDS ruleset.
+## This function is responsible for downloading the configured IDS rulesets or if no one is specified
+## all configured rulesets will be downloaded.
 ##
-## * At first it obtains from the stored rules settings which ruleset should be downloaded.
-## * The next step is to get the download locations for all available rulesets.
-## * After that, the function will check if an upstream proxy should be used and grab the settings.
-## * The last step will be to generate the final download url, by obtaining the URL for the desired
-##   ruleset, add the settings for the upstream proxy and final grab the rules tarball from the server.
+## * At first it gathers all configured ruleset providers, initialize the downloader and sets an
+##   upstream proxy if configured.
+## * After that, the given ruleset or in case all rulesets should be downloaded, it will determine wether it
+##   is enabled or not.
+## * The next step will be to generate the final download url, by obtaining the URL for the desired
+##   ruleset, add the settings for the upstream proxy.
+## * Finally the function will grab all the rules files or tarballs from the servers.
 #
-sub downloadruleset {
-       # Get rules settings.
-       my %rulessettings=();
-       &General::readhash("$rules_settings_file", \%rulessettings);
+sub downloadruleset ($) {
+       my ($provider) = @_;
+
+       # If no provider is given default to "all".
+       $provider //= 'all';
+
+       # Hash to store the providers and access id's, for which rules should be downloaded.
+       my %sheduled_providers = ();
+
+       # Get used provider settings.
+       my %used_providers = ();
+       &General::readhasharray("$providers_settings_file", \%used_providers);
 
        # Check if a ruleset has been configured.
-       unless($rulessettings{'RULES'}) {
+       unless(%used_providers) {
                # Log that no ruleset has been configured and abort.
-               &_log_to_syslog("No ruleset source has been configured.");
+               &_log_to_syslog("No ruleset provider has been configured.");
 
                # Return "1".
                return 1;
        }
 
-       # Get all available ruleset locations.
-       my %rulesetsources=();
-       &General::readhash($rulesetsourcesfile, \%rulesetsources);
-
        # Read proxysettings.
        my %proxysettings=();
        &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
@@ -204,40 +304,103 @@ sub downloadruleset {
                $downloader->proxy(['http', 'https'], $proxy_url);
        }
 
-       # Grab the right url based on the configured vendor.
-       my $url = $rulesetsources{$rulessettings{'RULES'}};
+       # Loop through the hash of configured providers.
+       foreach my $id ( keys %used_providers ) {
+               # Skip providers which are not enabled.
+               next if ($used_providers{$id}[3] ne "enabled");
 
-       # Check if the vendor requires an oinkcode and add it if needed.
-       $url =~ s/\<oinkcode\>/$rulessettings{'OINKCODE'}/g;
+               # Obtain the provider handle.
+               my $provider_handle = $used_providers{$id}[0];
 
-       # Abort if no url could be determined for the vendor.
-       unless ($url) {
-               # Log error and abort.
-               &_log_to_syslog("Unable to gather a download URL for the selected ruleset.");
-               return 1;
+               # Handle update off all providers.
+               if (($provider eq "all") || ($provider_handle eq "$provider")) {
+                       # Add provider handle and it's id to the hash of sheduled providers.
+                       $sheduled_providers{$provider_handle} = $id;
+               }
        }
 
-       # Variable to store the filesize of the remote object.
-       my $remote_filesize;
+       # Loop through the hash of sheduled providers.
+       foreach my $provider ( keys %sheduled_providers) {
+               # Log download/update of the ruleset.
+               &_log_to_syslog("Downloading ruleset for provider: $provider.");
 
-       # The sourcfire (snort rules) does not allow to send "HEAD" requests, so skip this check
-       # for this webserver.
-       #
-       # Check if the ruleset source contains "snort.org".
-       unless ($url =~ /\.snort\.org/) {
-               # Pass the requrested url to the downloader.
-               my $request = HTTP::Request->new(HEAD => $url);
+               # Grab the download url for the provider.
+               my $url = $IDS::Ruleset::Providers{$provider}{'dl_url'};
+
+               # Check if the provider requires a subscription.
+               if ($IDS::Ruleset::Providers{$provider}{'requires_subscription'} eq "True") {
+                       # Grab the previously stored access id for the provider from hash.
+                       my $id = $sheduled_providers{$provider};
 
-               # Accept the html header.
-               $request->header('Accept' => 'text/html');
+                       # Grab the subscription code.
+                       my $subscription_code = $used_providers{$id}[1];
 
-               # Perform the request and fetch the html header.
-               my $response = $downloader->request($request);
+                       # Add the subscription code to the download url.
+                       $url =~ s/\<subscription_code\>/$subscription_code/g;
+
+               }
+
+               # Abort if no url could be determined for the provider.
+               unless ($url) {
+                       # Log error and abort.
+                       &_log_to_syslog("Unable to gather a download URL for the selected ruleset provider.");
+                       return 1;
+               }
+
+               # Variable to store the filesize of the remote object.
+               my $remote_filesize;
+
+               # The sourcfire (snort rules) does not allow to send "HEAD" requests, so skip this check
+               # for this webserver.
+               #
+               # Check if the ruleset source contains "snort.org".
+               unless ($url =~ /\.snort\.org/) {
+                       # Pass the requrested url to the downloader.
+                       my $request = HTTP::Request->new(HEAD => $url);
+
+                       # Accept the html header.
+                       $request->header('Accept' => 'text/html');
+
+                       # Perform the request and fetch the html header.
+                       my $response = $downloader->request($request);
+
+                       # Check if there was any error.
+                       unless ($response->is_success) {
+                               # Obtain error.
+                               my $error = $response->status_line();
+
+                               # Log error message.
+                               &_log_to_syslog("Unable to download the ruleset. \($error\)");
+
+                               # Return "1" - false.
+                               return 1;
+                       }
+
+                       # Assign the fetched header object.
+                       my $header = $response->headers();
+
+                       # Grab the remote file size from the object and store it in the
+                       # variable.
+                       $remote_filesize = $header->content_length;
+               }
+
+               # Load perl module to deal with temporary files.
+               use File::Temp;
+
+               # Generate temporary file name, located in "/var/tmp" and with a suffix of ".tmp".
+               my $tmp = File::Temp->new( SUFFIX => ".tmp", DIR => "/var/tmp/", UNLINK => 0 );
+               my $tmpfile = $tmp->filename();
+
+               # Pass the requested url to the downloader.
+               my $request = HTTP::Request->new(GET => $url);
+
+               # Perform the request and save the output into the tmpfile.
+               my $response = $downloader->request($request, $tmpfile);
 
                # Check if there was any error.
                unless ($response->is_success) {
                        # Obtain error.
-                       my $error = $response->status_line();
+                       my $error = $response->content;
 
                        # Log error message.
                        &_log_to_syslog("Unable to download the ruleset. \($error\)");
@@ -246,84 +409,195 @@ sub downloadruleset {
                        return 1;
                }
 
-               # Assign the fetched header object.
-               my $header = $response->headers();
-
-               # Grab the remote file size from the object and store it in the
-               # variable.
-               $remote_filesize = $header->content_length;
-       }
+               # Load perl stat module.
+               use File::stat;
 
-       # Load perl module to deal with temporary files.
-       use File::Temp;
+               # Perform stat on the tmpfile.
+               my $stat = stat($tmpfile);
 
-       # Generate temporary file name, located in "/var/tmp" and with a suffix of ".tar.gz".
-       my $tmp = File::Temp->new( SUFFIX => ".tar.gz", DIR => "/var/tmp/", UNLINK => 0 );
-       my $tmpfile = $tmp->filename();
+               # Grab the local filesize of the downloaded tarball.
+               my $local_filesize = $stat->size;
 
-       # Pass the requested url to the downloader.
-       my $request = HTTP::Request->new(GET => $url);
+               # Check if both file sizes match.
+               if (($remote_filesize) && ($remote_filesize ne $local_filesize)) {
+                       # Log error message.
+                       &_log_to_syslog("Unable to completely download the ruleset. ");
+                       &_log_to_syslog("Only got $local_filesize Bytes instead of $remote_filesize Bytes. ");
 
-       # Perform the request and save the output into the tmpfile.
-       my $response = $downloader->request($request, $tmpfile);
+                       # Delete temporary file.
+                       unlink("$tmpfile");
 
-       # Check if there was any error.
-       unless ($response->is_success) {
-               # Obtain error.
-               my $error = $response->content;
+                       # Return "1" - false.
+                       return 1;
+               }
 
-               # Log error message.
-               &_log_to_syslog("Unable to download the ruleset. \($error\)");
+               # Genarate and assign file name and path to store the downloaded rules file.
+               my $dl_rulesfile = &_get_dl_rulesfile($provider);
 
-               # Return "1" - false.
-               return 1;
-       }
+               # Check if a file name could be obtained.
+               unless ($dl_rulesfile) {
+                       # Log error message.
+                       &_log_to_syslog("Unable to store the downloaded rules file. ");
 
-       # Load perl stat module.
-       use File::stat;
+                       # Delete downloaded temporary file.
+                       unlink("$tmpfile");
 
-       # Perform stat on the tmpfile.
-       my $stat = stat($tmpfile);
+                       # Return "1" - false.
+                       return 1;
+               }
 
-       # Grab the local filesize of the downloaded tarball.
-       my $local_filesize = $stat->size;
+               # Load file copy module, which contains the move() function.
+               use File::Copy;
 
-       # Check if both file sizes match.
-       if (($remote_filesize) && ($remote_filesize ne $local_filesize)) {
-               # Log error message.
-               &_log_to_syslog("Unable to completely download the ruleset. ");
-               &_log_to_syslog("Only got $local_filesize Bytes instead of $remote_filesize Bytes. ");
+               # Overwrite the may existing rulefile or tarball with the downloaded one.
+               move("$tmpfile", "$dl_rulesfile");
 
                # Delete temporary file.
                unlink("$tmpfile");
 
-               # Return "1" - false.
-               return 1;
+               # Set correct ownership for the tarball.
+               set_ownership("$dl_rulesfile");
        }
 
-       # Load file copy module, which contains the move() function.
+       # If we got here, everything worked fine. Return nothing.
+       return;
+}
+
+#
+## Function to extract a given ruleset.
+##
+## In case the ruleset provider offers a plain file, it simply will
+## be copied.
+#
+sub extractruleset ($) {
+       my ($provider) = @_;
+
+       # Load perl module to deal with archives.
+       use Archive::Tar;
+
+       # Load perl module to deal with files and path.
+       use File::Basename;
+
+       # Load perl module for file copying.
        use File::Copy;
 
-       # Overwrite existing rules tarball with the new downloaded one.
-       move("$tmpfile", "$rulestarball");
+       # Get full path and downloaded rulesfile for the given provider.
+       my $tarball = &_get_dl_rulesfile($provider);
 
-       # Set correct ownership for the rulesdir and files.
-       set_ownership("$rulestarball");
+       # Check if the file exists.
+       unless (-f $tarball) {
+               &_log_to_syslog("Could not find ruleset file: $tarball");
 
-       # If we got here, everything worked fine. Return nothing.
-       return;
+               # Return nothing.
+               return;
+       }
+
+       # Check if the temporary directories exist, otherwise create them.
+       mkdir("$tmp_directory") unless (-d "$tmp_directory");
+       mkdir("$tmp_rules_directory") unless (-d "$tmp_rules_directory");
+       mkdir("$tmp_conf_directory") unless (-d "$tmp_conf_directory");
+
+       # Omit the type (dl_type) of the stored ruleset.
+       my $type = $IDS::Ruleset::Providers{$provider}{'dl_type'};
+
+       # Handle the different ruleset types.
+       if ($type eq "plain") {
+               # Generate destination filename an full path.
+               my $destination = "$tmp_rules_directory/$provider\-ruleset.rules";
+
+               # Copy the file into the temporary rules directory.
+               copy($tarball, $destination);
+
+       } elsif ( $type eq "archive") {
+               # Initialize the tar module.
+               my $tar = Archive::Tar->new($tarball);
+
+               # Get the filelist inside the tarball.
+               my @packed_files = $tar->list_files;
+
+               # Loop through the filelist.
+               foreach my $packed_file (@packed_files) {
+                       my $destination;
+
+                       # Splitt the packed file into chunks.
+                       my $file = fileparse($packed_file);
+
+                       # Handle msg-id.map file.
+                       if ("$file" eq "sid-msg.map") {
+                               # Set extract destination to temporary config_dir.
+                               $destination = "$tmp_conf_directory/$provider\-sid-msg.map";
+
+                       # Handle classification.conf
+                       } elsif ("$file" eq "classification.config") {
+                               # Set extract destination to temporary config_dir.
+                               $destination = "$tmp_conf_directory/$provider\-classification.config";
+
+                       # Handle rules files.
+                       } elsif ($file =~ m/\.rules$/) {
+                               my $rulesfilename;
+
+                               # Splitt the filename into chunks.
+                               my @filename = split("-", $file);
+
+                               # Reverse the array.
+                               @filename = reverse(@filename);
+
+                               # Get the amount of elements in the array.
+                               my $elements = @filename;
+
+                               # Remove last element of the hash.
+                               # It contains the vendor name, which will be replaced.
+                               if ($elements >= 3) {
+                               # Remove last element from hash.
+                                       pop(@filename);
+                               }
+
+                               # Check if the last element of the filename does not
+                               # contain the providers name.
+                               if ($filename[-1] ne "$provider") {
+                                       # Add provider name as last element.
+                                       push(@filename, $provider);
+                               }
+
+                               # Reverse the array back.
+                               @filename = reverse(@filename);
+
+                               # Generate the name for the rulesfile.
+                               $rulesfilename = join("-", @filename);
+
+                               # Set extract destination to temporaray rules_dir.
+                               $destination = "$tmp_rules_directory/$rulesfilename";
+                       } else {
+                               # Skip all other files.
+                               next;
+                       }
+
+                       # Extract the file to the temporary directory.
+                       $tar->extract_file("$packed_file", "$destination");
+               }
+       }
 }
 
 #
-## A tiny wrapper function to call the oinkmaster script.
+## A wrapper function to call the oinkmaster script, setup the rules structues and
+## call the functions to merge the additional config files. (classification, sid-msg, etc.).
 #
 sub oinkmaster () {
        # Check if the files in rulesdir have the correct permissions.
        &_check_rulesdir_permissions();
 
-       # Cleanup the rules directory before filling it with the new rulest.
+       # Cleanup the rules directory before filling it with the new rulests.
        &_cleanup_rulesdir();
 
+       # Get all enabled providers.
+       my @enabled_providers = &get_enabled_providers();
+
+       # Loop through the array of enabled providers.
+       foreach my $provider (@enabled_providers) {
+               # Call the extractruleset function.
+               &extractruleset($provider);
+       }
+
        # Load perl module to talk to the kernel syslog.
        use Sys::Syslog qw(:DEFAULT setlogsock);
 
@@ -331,7 +605,7 @@ sub oinkmaster () {
        openlog('oinkmaster', 'cons,pid', 'user');
 
        # Call oinkmaster to generate ruleset.
-       open(OINKMASTER, "/usr/local/bin/oinkmaster.pl -s -u file://$rulestarball -C $settingsdir/oinkmaster.conf -o $rulespath 2>&1 |") or die "Could not execute oinkmaster $!\n";
+       open(OINKMASTER, "/usr/local/bin/oinkmaster.pl -s -u dir://$tmp_rules_directory -C $settingsdir/oinkmaster.conf -o $rulespath 2>&1 |") or die "Could not execute oinkmaster $!\n";
 
        # Log output of oinkmaster to syslog.
        while(<OINKMASTER>) {
@@ -348,6 +622,181 @@ sub oinkmaster () {
 
        # Close the log handle.
        closelog();
+
+       # Call function to merge the classification files.
+       &merge_classifications(@enabled_providers);
+
+       # Call function to merge the sid to message mapping files.
+       &merge_sid_msg(@enabled_providers);
+
+       # Cleanup temporary directory.
+       &cleanup_tmp_directory();
+}
+
+#
+## Function to merge the classifications for a given amount of providers and write them
+## to the classifications file.
+#
+sub merge_classifications(@) {
+       my @providers = @_;
+
+       # Hash to store all collected classifications.
+       my %classifications = ();
+
+       # Loop through the given array of providers.
+       foreach my $provider (@providers) {
+               # Generate full path to classification file.
+               my $classification_file = "$tmp_conf_directory/$provider\-classification.config";
+
+               # Skip provider if no classification file exists.
+               next unless (-f "$classification_file");
+
+               # Open the classification file.
+               open(CLASSIFICATION, $classification_file) or die "Could not open file $classification_file. $!\n";
+
+               # Loop through the file content.
+               while(<CLASSIFICATION>) {
+                       # Parse the file and grab the classification details.
+                       if ($_ =~/.*config classification\: (.*)/) {
+                               # Split the grabbed details.
+                               my ($short_name, $short_desc, $priority) = split("\,", $1);
+
+                               # Check if the grabbed classification is allready known and the priority value is greater
+                               # than the stored one (which causes less priority in the IDS).
+                               if (($classifications{$short_name}) && ($classifications{$short_name}[1] >= $priority)) {
+                                       #Change the priority value to the stricter one.
+                                       $classifications{$short_name} = [ "$classifications{$short_name}[0]", "$priority" ];
+                               } else {
+                                       # Add the classification to the hash.
+                                       $classifications{$short_name} = [ "$short_desc", "$priority" ];
+                               }
+                       }
+               }
+
+               # Close the file.
+               close(CLASSIFICATION);
+       }
+
+       # Open classification file for writing.
+       open(FILE, ">", "$classification_file") or die "Could not write to $classification_file. $!\n";
+
+       # Print notice about autogenerated file.
+       print FILE "#Autogenerated file. Any custom changes will be overwritten!\n\n";
+
+       # Sort and loop through the hash of classifications.
+       foreach my $key (sort keys %classifications) {
+               # Assign some nice variable names for the items.
+               my $short_name = $key;
+               my $short_desc = $classifications{$key}[0];
+               my $priority = $classifications{$key}[1];
+
+               # Write the classification to the file.
+               print FILE "config classification: $short_name,$short_desc,$priority\n";
+       }
+
+       # Close file handle.
+       close(FILE);
+}
+
+#
+## Function to merge the "sid to message mapping" files of various given providers.
+#
+sub merge_sid_msg (@) {
+       my @providers = @_;
+
+       # Hash which contains all the sid to message mappings.
+       my %mappings = ();
+
+       # Loop through the array of given providers.
+       foreach my $provider (@providers) {
+               # Generate full path and filename.
+               my $sid_msg_file = "$tmp_conf_directory/$provider\-sid-msg.map";
+
+               # Skip provider if no sid to msg mapping file for this provider exists.
+               next unless (-f $sid_msg_file);
+
+               # Open the file.
+               open(MAPPING, $sid_msg_file) or die "Could not open $sid_msg_file. $!\n";
+
+               # Loop through the file content.
+               while (<MAPPING>) {
+                       # Remove newlines.
+                       chomp($_);
+
+                       # Skip lines which do not start with a number,
+                       next unless ($_ =~ /^\d+/);
+
+                       # Split line content and assign it to an array.
+                       my @line = split(/ \|\| /, $_);
+
+                       # Grab the first element (and remove it) from the line array.
+                       # It contains the sid.
+                       my $sid = shift(@line);
+
+                       # Store the grabbed sid and the remain array as hash value.
+                       # It still contains the messages, references etc.
+                       $mappings{$sid} = [@line];
+               }
+
+               # Close file handle.
+               close(MAPPING);
+       }
+
+       # Open mappings file for writing.
+       open(FILE, ">", $sid_msg_file) or die "Could not write $sid_msg_file. $!\n";
+
+       # Write notice about autogenerated file.
+       print FILE "#Autogenerated file. Any custom changes will be overwritten!\n\n";
+
+       # Loop through the hash of mappings.
+       foreach my $sid ( sort keys %mappings) {
+               # Grab data for the sid.
+               my @data = @{$mappings{$sid}};
+
+               # Add the sid to the data array.
+               unshift(@data, $sid);
+
+               # Generate line.
+               my $line = join(" \|\| ", @data);
+
+               print FILE "$line\n";
+
+       }
+
+       # Close file handle.
+       close(FILE);
+}
+
+#
+## A very tiny function to move an extracted ruleset from the temporary directory into
+## the rules directory.
+#
+sub move_tmp_ruleset() {
+       # Load perl module.
+       use File::Copy;
+
+       # Do a directory listing of the temporary directory.
+       opendir  DH, $tmp_rules_directory;
+
+       # Loop over all files.
+       while(my $file = readdir DH) {
+               # Move them to the rules directory.
+               move "$tmp_rules_directory/$file" , "$rulespath/$file";
+       }
+
+       # Close directory handle.
+       closedir DH;
+}
+
+#
+## Function to cleanup the temporary IDS directroy.
+#
+sub cleanup_tmp_directory () {
+       # Load rmtree() function from file path perl module.
+       use File::Path 'rmtree';
+
+       # Delete temporary directory and all containing files.
+       rmtree([ "$tmp_directory" ]);
 }
 
 #
@@ -411,6 +860,157 @@ sub _store_error_message ($) {
        &set_ownership("$storederrorfile");
 }
 
+#
+## Private function to get the path and filename for a downloaded ruleset by a given provider.
+#
+sub _get_dl_rulesfile($) {
+       my ($provider) = @_;
+
+       # Gather the download type for the given provider.
+       my $dl_type = $IDS::Ruleset::Providers{$provider}{'dl_type'};
+
+       # Obtain the file suffix for the download file type.
+       my $suffix = $dl_type_to_suffix{$dl_type};
+
+       # Check if a suffix has been found.
+       unless ($suffix) {
+               # Abort return - nothing.
+               return;
+       }
+
+       # Generate the full filename and path for the stored rules file.
+       my $rulesfile = "$dl_rules_path/$dl_rulesfile_prefix-$provider$suffix";
+
+       # Return the generated filename.
+       return $rulesfile;
+}
+
+#
+## Tiny function to delete the stored ruleset file or tarball for a given provider.
+#
+sub drop_dl_rulesfile ($) {
+       my ($provider) = @_;
+
+       # Gather the full path and name of the stored rulesfile.
+       my $rulesfile = &_get_dl_rulesfile($provider);
+
+       # Check if the given rulesfile exists.
+       if (-f $rulesfile) {
+               # Delete the stored rulesfile.
+               unlink($rulesfile) or die "Could not delete $rulesfile. $!\n";
+       }
+}
+
+#
+## Tiny function to get/generate the full path and filename for the providers oinkmaster
+## modified sids file.
+#
+sub get_oinkmaster_provider_modified_sids_file ($) {
+       my ($provider) = @_;
+
+       # Generate the filename.
+       my $filename = "$settingsdir/oinkmaster-$provider-modified-sids.conf";
+
+       # Return the filename.
+       return $filename;
+}
+
+#
+## Function to directly altering the oinkmaster provider includes file.
+##
+## Requires tha acition "remove" or "add" and a provider handle.
+#
+sub alter_oinkmaster_provider_includes_file ($$) {
+       my ($action, $provider) = @_;
+
+       # Call function to get the path and name for the given providers
+       # oinkmaster modified sids file.
+       my $provider_modified_sids_file = &get_oinkmaster_provider_modified_sids_file($provider);
+
+       # Open the file for reading..
+       open (FILE, $oinkmaster_provider_includes_file) or die "Could not read $oinkmaster_provider_includes_file. $!\n";
+
+       # Read-in file content.
+       my @lines = <FILE>;
+
+       # Close file after reading.
+       close(FILE);
+
+       # Re-open the file for writing.
+       open(FILE, ">", $oinkmaster_provider_includes_file) or die "Could not write to $oinkmaster_provider_includes_file. $!\n";
+
+       # Loop through the file content.
+       foreach my $line (@lines) {
+               # Remove newlines.
+               chomp($line);
+
+               # Skip line if we found our given provider and the action should be remove.
+               next if (($line =~ /$provider/) && ($action eq "remove"));
+
+               # Write the read-in line back to the file.
+               print FILE "$line\n";
+       }
+
+       # Check if the file exists and add the provider if requested.
+       if ((-f $provider_modified_sids_file) && ($action eq "add")) {
+               print FILE "include $provider_modified_sids_file\n";
+       }
+
+       # Close file handle.
+       close(FILE);
+}
+
+#
+## Function to read-in the given enabled or disables sids file.
+#
+sub read_enabled_disabled_sids_file($) {
+       my ($file) = @_;
+
+       # Temporary hash to store the sids and their state. It will be
+       # returned at the end of this function.
+       my %temphash;
+
+       # Open the given filename.
+       open(FILE, "$file") or die "Could not open $file. $!\n";
+
+       # Loop through the file.
+       while(<FILE>) {
+               # Remove newlines.
+               chomp $_;
+
+               # Skip blank lines.
+               next if ($_ =~ /^\s*$/);
+
+               # Skip coments.
+               next if ($_ =~ /^\#/);
+
+               # Splitt line into sid and state part.
+               my ($state, $sid) = split(" ", $_);
+
+               # Skip line if the sid is not numeric.
+               next unless ($sid =~ /\d+/ );
+
+               # Check if the sid was enabled.
+               if ($state eq "enablesid") {
+                       # Add the sid and its state as enabled to the temporary hash.
+                       $temphash{$sid} = "enabled";
+               # Check if the sid was disabled.
+               } elsif ($state eq "disablesid") {
+                       # Add the sid and its state as disabled to the temporary hash.
+                       $temphash{$sid} = "disabled";
+               # Invalid state - skip the current sid and state.
+               } else {
+                       next;
+               }
+       }
+
+       # Close filehandle.
+       close(FILE);
+
+       # Return the hash.
+       return %temphash;
+}
+
 #
 ## Function to check if the IDS is running.
 #
@@ -550,9 +1150,6 @@ sub _cleanup_rulesdir() {
                # We only want files.
                next unless (-f "$rulespath/$file");
 
-               # Skip element if it has config as file extension.
-               next if ($file =~ m/\.config$/);
-
                # Skip rules file for whitelisted hosts.
                next if ("$rulespath/$file" eq $whitelist_file);
 
@@ -755,13 +1352,18 @@ sub generate_http_ports_file() {
 }
 
 #
-## Function to generate and write the file for used rulefiles.
+## Function to generate and write the file for used rulefiles file for a given provider.
+##
+## The function requires as first argument a provider handle, and as second an array with files.
 #
-sub write_used_rulefiles_file(@) {
-       my @files = @_;
+sub write_used_provider_rulefiles_file($@) {
+       my ($provider, @files) = @_;
+
+       # Get the path and file for the provider specific used rulefiles file.
+       my $used_provider_rulesfile_file = &get_used_provider_rulesfile_file($provider);
 
        # Open file for used rulefiles.
-       open (FILE, ">$used_rulefiles_file") or die "Could not write to $used_rulefiles_file. $!\n";
+       open (FILE, ">", "$used_provider_rulesfile_file") or die "Could not write to $used_provider_rulesfile_file. $!\n";
 
        # Write yaml header to the file.
        print FILE "%YAML 1.1\n";
@@ -770,9 +1372,6 @@ sub write_used_rulefiles_file(@) {
        # Write header to file.
        print FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
 
-       # Allways use the whitelist.
-       print FILE " - whitelist.rules\n";
-
        # Loop through the array of given files.
        foreach my $file (@files) {
                # Check if the given filename exists and write it to the file of used rulefiles.
@@ -785,18 +1384,117 @@ sub write_used_rulefiles_file(@) {
        close(FILE);
 }
 
+#
+## Function to write the main file for provider rulesfiles inclusions.
+##
+## This function requires an array of provider handles.
+#
+sub write_main_used_rulefiles_file (@) {
+       my (@providers) = @_;
+
+       # Call function to write the static rulefiles file.
+       &_write_default_rulefiles_file();
+
+       # Open file for used rulefils inclusion.
+       open (FILE, ">", "$suricata_used_providers_file") or die "Could not write to $suricata_used_providers_file. $!\n";
+
+       # Write yaml header to the file.
+       print FILE "%YAML 1.1\n";
+       print FILE "---\n\n";
+
+       # Write header to file.
+       print FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
+
+       # Loop through the list of given providers.
+       foreach my $provider (@providers) {
+               # Call function to get the providers used rulefiles file.
+               my $filename = &get_used_provider_rulesfile_file($provider);
+
+               # Check if the file exists and write it into the used rulefiles file.
+               if (-f $filename) {
+                       # Print the provider to the file.
+                       print FILE "include\: $filename\n";
+               }
+       }
+
+       # Close the filehandle after writing.
+       close(FILE);
+}
+
+sub _write_default_rulefiles_file () {
+       # Get enabled application layer protocols.
+       my @enabled_app_layer_protos = &get_suricata_enabled_app_layer_protos();
+
+       # Open file.
+       open (FILE, ">", $suricata_default_rulefiles_file) or die "Could not write to $suricata_default_rulefiles_file. $!\n";
+
+       # Write yaml header to the file.
+       print FILE "%YAML 1.1\n";
+       print FILE "---\n\n";
+
+       # Write notice about autogenerated file.
+       print FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
+
+       # Loop through the array of static included rulesfiles.
+       foreach my $file (@static_included_rulefiles) {
+               # Check if the file exists.
+               if (-f "$rulespath/$file") {
+                       # Write the rulesfile name to the file.
+                       print FILE " - $rulespath/$file\n";
+               }
+       }
+
+       print FILE "\n#Default rules for used application layer protocols.\n";
+       foreach my $enabled_app_layer_proto (@enabled_app_layer_protos) {
+               # Check if the current processed app layer proto needs to be translated
+               # into an application name.
+               if (exists($tr_app_layer_proto{$enabled_app_layer_proto})) {
+                       # Obtain the translated application name for this protocol.
+                       $enabled_app_layer_proto = $tr_app_layer_proto{$enabled_app_layer_proto};
+               }
+
+               # Generate filename.
+               my $rulesfile = "$default_rulespath/$enabled_app_layer_proto\.rules";
+
+               # Check if such a file exists.
+               if (-f "$rulesfile") {
+                       # Write the rulesfile name to the file.
+                       print FILE " - $rulesfile\n";
+               }
+
+               # Generate filename with "events" in filename.
+               $rulesfile = "$default_rulespath/$enabled_app_layer_proto\-events.rules";
+
+               # Check if this file exists.
+               if (-f "$rulesfile" ) {
+                       # Write the rulesfile name to the file.
+                       print FILE " - $rulesfile\n";
+               }
+       }
+
+       # Close the file handle
+       close(FILE);
+}
+
+#
+## Tiny function to generate the full path and name for the used_provider_rulesfile file of a given provider.
+#
+sub get_used_provider_rulesfile_file ($) {
+       my ($provider) = @_;
+
+       my $filename = "$settingsdir/suricata\-$provider\-used\-rulefiles.yaml";
+
+       # Return the gernerated file.
+       return $filename;
+}
+
 #
 ## Function to generate and write the file for modify the ruleset.
 #
 sub write_modify_sids_file() {
        # Get configured settings.
        my %idssettings=();
-       my %rulessettings=();
        &General::readhash("$ids_settings_file", \%idssettings);
-       &General::readhash("$rules_settings_file", \%rulessettings);
-
-       # Gather the configured ruleset.
-       my $ruleset = $rulessettings{'RULES'};
 
        # Open modify sid's file for writing.
        open(FILE, ">$modify_sids_file") or die "Could not write to $modify_sids_file. $!\n";
@@ -813,38 +1511,69 @@ sub write_modify_sids_file() {
                # malware in that file.  Rules which fall into the first category should stay as
                # alert since not all flows of that type contain malware.
 
-               if($ruleset eq 'registered' or $ruleset eq 'subscripted' or $ruleset eq 'community') {
-                       # These types of rulesfiles contain meta-data which gives the action that should
-                       # be used when in IPS mode.  Do the following:
-                       #
-                       # 1. Disable all rules and set the action to 'drop'
-                       # 2. Set the action back to 'alert' if the rule contains 'flowbits:noalert;'
-                       #    This should give rules not in the policy a reasonable default if the user
-                       #    manually enables them.
-                       # 3. Enable rules and set actions according to the meta-data strings.
+               # These types of rulesfiles contain meta-data which gives the action that should
+               # be used when in IPS mode.  Do the following:
+               #
+               # 1. Disable all rules and set the action to 'drop'
+               # 2. Set the action back to 'alert' if the rule contains 'flowbits:noalert;'
+               #    This should give rules not in the policy a reasonable default if the user
+               #    manually enables them.
+               # 3. Enable rules and set actions according to the meta-data strings.
 
-                       my $policy = 'balanced';  # Placeholder to allow policy to be changed.
+               my $policy = 'balanced';  # Placeholder to allow policy to be changed.
 
                        print FILE <<END;
-modifysid * "^#?(?:alert|drop)" | "#drop"
-modifysid * "^#drop(.+flowbits:noalert;)" | "#alert\${1}"
 modifysid * "^#(?:alert|drop)(.+policy $policy-ips alert)" | "alert\${1}"
 modifysid * "^#(?:alert|drop)(.+policy $policy-ips drop)" | "drop\${1}"
-END
-               } else {
-                       # These rulefiles don't have the metadata, so set rules to 'drop' unless they
-                       # contain the string 'flowbits:noalert;'.
-                       print FILE <<END;
 modifysid * "^(#?)(?:alert|drop)" | "\${1}drop"
 modifysid * "^(#?)drop(.+flowbits:noalert;)" | "\${1}alert\${2}"
 END
                }
-       }
 
        # Close file handle.
        close(FILE);
 }
 
+#
+## Function to get the ruleset date for a given provider.
+##
+## The function simply return the creation date in a human read-able format
+## of the stored providers rulesfile.
+#
+sub get_ruleset_date($) {
+       my ($provider) = @_;
+       my $date;
+       my $mtime;
+
+       # Load neccessary perl modules for file stat and to format the timestamp.
+       use File::stat;
+       use POSIX qw( strftime );
+
+       # Get the stored rulesfile for this provider.
+       my $stored_rulesfile = &_get_dl_rulesfile($provider);
+
+       # Check if we got a file.
+       if (-f $stored_rulesfile) {
+               # Call stat on the rulestarball.
+               my $stat = stat("$stored_rulesfile");
+
+               # Get timestamp the file creation.
+               $mtime = $stat->mtime;
+       }
+
+       # Check if the timestamp has not been grabbed.
+       unless ($mtime) {
+               # Return N/A for Not available.
+               return "N/A";
+       }
+
+       # Convert into human read-able format.
+       $date = strftime('%Y-%m-%d %H:%M:%S', localtime($mtime));
+
+       # Return the date.
+       return $date;
+}
+
 #
 ## Function to gather the version of suricata.
 #
@@ -882,6 +1611,48 @@ sub get_suricata_version($) {
        }
 }
 
+#
+## Function to get the enabled application layer protocols.
+#
+sub get_suricata_enabled_app_layer_protos() {
+       # Array to store and return the enabled app layer protos.
+       my @enabled_app_layer_protos = ();
+
+       # Execute piped suricata command and return the list of
+       # enabled application layer protocols.
+       open(SURICATA, "suricata --list-app-layer-protos |") or die "Could not execute program: $!";
+
+       # Grab and store the list of enabled application layer protocols.
+       my @output = <SURICATA>;
+
+       # Close pipe.
+       close(SURICATA);
+
+       # Merge allways enabled static application layers protocols array.
+       @enabled_app_layer_protos = @static_enabled_app_layer_protos;
+
+       # Loop through the array which contains the output of suricata.
+       foreach my $line (@output) {
+               # Skip header line which starts with "===".
+               next if ($line =~ /^\s*=/);
+
+               # Skip info or warning lines.
+               next if ($line =~ /\s*--/);
+
+               # Remove newlines.
+               chomp($line);
+
+               # Add enabled app layer proto to the array.
+               push(@enabled_app_layer_protos, $line);
+       }
+
+       # Sort the array.
+       @enabled_app_layer_protos = sort(@enabled_app_layer_protos);
+
+       # Return the array.
+       return @enabled_app_layer_protos;
+}
+
 #
 ## Function to generate the rules file with whitelisted addresses.
 #
@@ -918,7 +1689,7 @@ sub generate_ignore_file() {
                                # Check if the address/network is valid.
                                if ((&General::validip($address)) || (&General::validipandmask($address))) {
                                        # Write rule line to the file to pass any traffic from this IP
-                                       print FILE "pass ip $address any -> any any (msg:\"pass all traffic from/to $address\"\; sid:$sid\;)\n";
+                                       print FILE "pass ip $address any -> any any (msg:\"pass all traffic from/to $address\"\; bypass; sid:$sid\;)\n";
 
                                        # Increment sid.
                                        $sid++;
@@ -1051,6 +1822,53 @@ sub get_red_address() {
        return;
 }
 
+#
+## Function to get the used rules files of a given provider.
+#
+sub read_used_provider_rulesfiles($) {
+       my ($provider) = @_;
+
+       # Array to store the used rulefiles.
+       my @used_rulesfiles = ();
+
+       # Get the used rulesefile file for the provider.
+       my $rulesfile_file = &get_used_provider_rulesfile_file($provider);
+
+       # Check if the a used rulesfile exists for this provider.
+       if (-f $rulesfile_file) {
+               # Open the file or used rulefiles and read-in content.
+               open(FILE, $rulesfile_file) or die "Could not open $rulesfile_file. $!\n";
+
+               while (<FILE>) {
+                       # Assign the current line to a nice variable.
+                       my $line = $_;
+
+                       # Remove newlines.
+                       chomp($line);
+
+                       # Skip comments.
+                       next if ($line =~ /\#/);
+
+                       # Skip blank  lines.
+                       next if ($line =~ /^\s*$/);
+
+                       # Gather the rulefile.
+                       if ($line =~ /.*- (.*)/) {
+                               my $rulefile = $1;
+
+                               # Add the rulefile to the array of used rulesfiles.
+                               push(@used_rulesfiles, $rulefile);
+                       }
+               }
+
+               # Close the file.
+               close(FILE);
+       }
+
+       # Return the array of used rulesfiles.
+       return @used_rulesfiles;
+}
+
 #
 ## Function to write the lock file for locking the WUI, while
 ## the autoupdate script runs.
index 941c631c9380954cbda807a47b8c2464e62382d9..2a0237100c0fbfaf72010fdb77f9409fee8dc104 100644 (file)
@@ -51,6 +51,8 @@ include "/etc/collectd.precache"
        Chain filter POLICYFWD DROP_FORWARD
        Chain filter POLICYOUT DROP_OUTPUT
        Chain filter POLICYIN DROP_INPUT
+       Chain filter SPOOFED_MARTIAN DROP_SPOOFED_MARTIAN
+       Chain filter HOSTILE DROP_HOSTILE
 </Plugin>
 
 #<Plugin logfile>
@@ -73,11 +75,7 @@ include "/etc/collectd.precache"
        Process "charon"
        Process "openvpn"
        Process "qemu"
-       Process "rtorrent"
        Process "mpd"
-       Process "asterisk"
-       Process "java"
-       Process "spamd"
 </Plugin>
 
 <Plugin rrdtool>
index bc2d21c934e5bc4d8c77640030cf7ec4ca6f6aa4..c8c775d13c03cda69f2abfb0508cede599b14d36 100644 (file)
@@ -12,13 +12,13 @@ net.ipv4.tcp_syn_retries = 3
 net.ipv4.tcp_synack_retries = 3
 
 net.ipv4.conf.default.arp_filter = 1
-net.ipv4.conf.default.rp_filter = 0
+net.ipv4.conf.default.rp_filter = 2
 net.ipv4.conf.default.accept_redirects = 0
 net.ipv4.conf.default.accept_source_route = 0
 net.ipv4.conf.default.log_martians = 1
 
 net.ipv4.conf.all.arp_filter = 1
-net.ipv4.conf.all.rp_filter = 0
+net.ipv4.conf.all.rp_filter = 2
 net.ipv4.conf.all.accept_redirects = 0
 net.ipv4.conf.all.accept_source_route = 0
 net.ipv4.conf.all.log_martians = 1
index d42eb2b50be284415caf534d52bf1a28b69ad493..6728fa7f35763f166acc6b942d083ba59d6e2d33 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm64 5.15.6-ipfire Kernel Configuration
+# Linux/arm64 5.15.22-ipfire Kernel Configuration
 #
 CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.1.0"
 CONFIG_CC_IS_GCC=y
@@ -338,6 +338,7 @@ CONFIG_ARM64_ERRATUM_827319=y
 CONFIG_ARM64_ERRATUM_824069=y
 CONFIG_ARM64_ERRATUM_819472=y
 CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_834220=y
 CONFIG_ARM64_ERRATUM_845719=y
 CONFIG_ARM64_ERRATUM_843419=y
 CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
@@ -556,7 +557,7 @@ CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
 CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
 CONFIG_ARM_ARMADA_8K_CPUFREQ=m
 CONFIG_ARM_IMX_CPUFREQ_DT=m
-# CONFIG_ARM_SCMI_CPUFREQ is not set
+CONFIG_ARM_SCMI_CPUFREQ=m
 # end of CPU Frequency scaling
 # end of CPU Power Management
 
@@ -601,28 +602,43 @@ CONFIG_ACPI_IORT=y
 CONFIG_ACPI_GTDT=y
 CONFIG_ACPI_PPTT=y
 # CONFIG_PMIC_OPREGION is not set
+CONFIG_IRQ_BYPASS_MANAGER=y
 CONFIG_VIRTUALIZATION=y
-# CONFIG_KVM is not set
+CONFIG_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_MMIO=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_KVM_VFIO=y
+CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+# CONFIG_NVHE_EL2_DEBUG is not set
 CONFIG_ARM64_CRYPTO=y
-# CONFIG_CRYPTO_SHA256_ARM64 is not set
-# CONFIG_CRYPTO_SHA512_ARM64 is not set
-# CONFIG_CRYPTO_SHA1_ARM64_CE is not set
-# CONFIG_CRYPTO_SHA2_ARM64_CE is not set
-# CONFIG_CRYPTO_SHA512_ARM64_CE is not set
-# CONFIG_CRYPTO_SHA3_ARM64 is not set
-# CONFIG_CRYPTO_SM3_ARM64_CE is not set
-# CONFIG_CRYPTO_SM4_ARM64_CE is not set
-# CONFIG_CRYPTO_GHASH_ARM64_CE is not set
-# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set
-# CONFIG_CRYPTO_AES_ARM64 is not set
-# CONFIG_CRYPTO_AES_ARM64_CE is not set
-# CONFIG_CRYPTO_AES_ARM64_CE_CCM is not set
-# CONFIG_CRYPTO_AES_ARM64_CE_BLK is not set
-# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set
+CONFIG_CRYPTO_SHA256_ARM64=m
+CONFIG_CRYPTO_SHA512_ARM64=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64=m
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
 CONFIG_CRYPTO_CHACHA20_NEON=m
 CONFIG_CRYPTO_POLY1305_NEON=m
-# CONFIG_CRYPTO_NHPOLY1305_NEON is not set
-# CONFIG_CRYPTO_AES_ARM64_BS is not set
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
 
 #
 # General architecture-dependent options
@@ -813,6 +829,7 @@ CONFIG_BFQ_GROUP_IOSCHED=y
 # CONFIG_BFQ_CGROUP_DEBUG is not set
 # end of IO Schedulers
 
+CONFIG_PREEMPT_NOTIFIERS=y
 CONFIG_PADATA=y
 CONFIG_ASN1=y
 CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y
@@ -915,6 +932,7 @@ CONFIG_PAGE_REPORTING=y
 CONFIG_MIGRATION=y
 CONFIG_CONTIG_ALLOC=y
 CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_MMU_NOTIFIER=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
@@ -1803,7 +1821,7 @@ CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_EXTRA_FIRMWARE=""
 CONFIG_FW_LOADER_USER_HELPER=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_LOADER_COMPRESS=y
 # end of Firmware loader
 
 CONFIG_WANT_DEV_COREDUMP=y
@@ -5515,6 +5533,7 @@ CONFIG_DUMMY_CONSOLE=y
 CONFIG_DUMMY_CONSOLE_COLUMNS=80
 CONFIG_DUMMY_CONSOLE_ROWS=25
 CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
 # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
@@ -7611,6 +7630,7 @@ CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_CRYPTD=y
 CONFIG_CRYPTO_AUTHENC=m
 CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_SIMD=m
 CONFIG_CRYPTO_ENGINE=m
 
 #
@@ -7648,6 +7668,7 @@ CONFIG_CRYPTO_LRW=m
 CONFIG_CRYPTO_PCBC=m
 CONFIG_CRYPTO_XTS=m
 # CONFIG_CRYPTO_KEYWRAP is not set
+CONFIG_CRYPTO_NHPOLY1305=m
 # CONFIG_CRYPTO_ADIANTUM is not set
 CONFIG_CRYPTO_ESSIV=m
 
@@ -7677,8 +7698,8 @@ CONFIG_CRYPTO_RMD160=m
 CONFIG_CRYPTO_SHA1=y
 CONFIG_CRYPTO_SHA256=y
 CONFIG_CRYPTO_SHA512=y
-# CONFIG_CRYPTO_SHA3 is not set
-# CONFIG_CRYPTO_SM3 is not set
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SM3=m
 # CONFIG_CRYPTO_STREEBOG is not set
 CONFIG_CRYPTO_WP512=m
 
@@ -7753,6 +7774,7 @@ CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
 CONFIG_CRYPTO_LIB_POLY1305=m
 CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
 CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LIB_SM4=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_ALLWINNER=y
 # CONFIG_CRYPTO_DEV_SUN4I_SS is not set
@@ -7872,6 +7894,7 @@ CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
+CONFIG_INTERVAL_TREE=y
 CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT_MAP=y
index 5971fe34eb4f1f99889d5d8d3eeff3d5204da171..d8482de9286767d9e0e2123ac41cd8286d3db94b 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 5.15.6-ipfire Kernel Configuration
+# Linux/arm 5.15.22-ipfire Kernel Configuration
 #
 CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.1.0"
 CONFIG_CC_IS_GCC=y
@@ -1826,7 +1826,7 @@ CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_EXTRA_FIRMWARE=""
 CONFIG_FW_LOADER_USER_HELPER=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_LOADER_COMPRESS=y
 # end of Firmware loader
 
 CONFIG_WANT_DEV_COREDUMP=y
@@ -5484,6 +5484,7 @@ CONFIG_HDMI=y
 #
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
 # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
index 9ad4a2a83e6b1f82ae3e00ec0c477fef88bb1b23..0f322826eecf6435e4a9623613ffeb9a828d8b07 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.6-ipfire Kernel Configuration
+# Linux/x86 5.15.22-ipfire Kernel Configuration
 #
 CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.1.0"
 CONFIG_CC_IS_GCC=y
@@ -1830,7 +1830,7 @@ CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_EXTRA_FIRMWARE=""
 CONFIG_FW_LOADER_USER_HELPER=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_LOADER_COMPRESS=y
 CONFIG_FW_CACHE=y
 # end of Firmware loader
 
@@ -5327,6 +5327,7 @@ CONFIG_DUMMY_CONSOLE=y
 CONFIG_DUMMY_CONSOLE_COLUMNS=80
 CONFIG_DUMMY_CONSOLE_ROWS=25
 CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
@@ -6373,7 +6374,6 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
 CONFIG_THINKPAD_LMI=m
-CONFIG_X86_PLATFORM_DRIVERS_INTEL=y
 # CONFIG_INTEL_ATOMISP2_LED is not set
 # CONFIG_INTEL_ATOMISP2_PM is not set
 # CONFIG_INTEL_SAR_INT1092 is not set
index 57c3281395d1c7f00522a138a0ea8d8fc62c12f1..4d4ee40efdc9fee026401403db571f1d3eaaf8a8 100644 (file)
@@ -182,11 +182,8 @@ update_files = \.rules$|\.config$|\.conf$|\.txt$|\.map$
 # files from included files. Example to load stuff from "/etc/foo.conf".
 # include /etc/foo.conf
 
-# Include file for enabled sids.
-include /var/ipfire/suricata/oinkmaster-enabled-sids.conf
-
-# Include file for disabled sids.
-include /var/ipfire/suricata/oinkmaster-disabled-sids.conf
+# Include file for provider specific includes.
+include /var/ipfire/suricata/oinkmaster-provider-includes.conf
 
 # Include file which defines the runmode of suricata.
 include /var/ipfire/suricata/oinkmaster-modify-sids.conf
index 4afc1be07863c325290e8618f1509fcda8879257..2944299cc1633fd98f643cc0a4b234c10e685796 100644 (file)
@@ -1,3 +1,4 @@
+#usr/lib/perl5/site_perl/5.32.1/Net
 #usr/lib/perl5/site_perl/5.32.1/Net/DNS
 usr/lib/perl5/site_perl/5.32.1/Net/DNS.pm
 usr/lib/perl5/site_perl/5.32.1/Net/DNS/Domain.pm
diff --git a/config/rootfiles/common/aarch64/gdb b/config/rootfiles/common/aarch64/gdb
new file mode 100644 (file)
index 0000000..71df578
--- /dev/null
@@ -0,0 +1,77 @@
+#usr/bin/gcore
+#usr/bin/gdb
+#usr/bin/gdb-add-index
+#usr/bin/gdbserver
+#usr/bin/run
+#usr/include/gdb
+#usr/include/gdb/jit-reader.h
+#usr/include/sim
+#usr/include/sim/callback.h
+#usr/include/sim/sim.h
+#usr/lib/libaarch64-unknown-linux-gnu-sim.a
+#usr/lib/libinproctrace.so
+#usr/share/gdb
+#usr/share/gdb/python
+#usr/share/gdb/python/gdb
+#usr/share/gdb/python/gdb/FrameDecorator.py
+#usr/share/gdb/python/gdb/FrameIterator.py
+#usr/share/gdb/python/gdb/__init__.py
+#usr/share/gdb/python/gdb/command
+#usr/share/gdb/python/gdb/command/__init__.py
+#usr/share/gdb/python/gdb/command/explore.py
+#usr/share/gdb/python/gdb/command/frame_filters.py
+#usr/share/gdb/python/gdb/command/pretty_printers.py
+#usr/share/gdb/python/gdb/command/prompt.py
+#usr/share/gdb/python/gdb/command/type_printers.py
+#usr/share/gdb/python/gdb/command/unwinders.py
+#usr/share/gdb/python/gdb/command/xmethods.py
+#usr/share/gdb/python/gdb/frames.py
+#usr/share/gdb/python/gdb/function
+#usr/share/gdb/python/gdb/function/__init__.py
+#usr/share/gdb/python/gdb/function/as_string.py
+#usr/share/gdb/python/gdb/function/caller_is.py
+#usr/share/gdb/python/gdb/function/strfns.py
+#usr/share/gdb/python/gdb/printer
+#usr/share/gdb/python/gdb/printer/__init__.py
+#usr/share/gdb/python/gdb/printer/bound_registers.py
+#usr/share/gdb/python/gdb/printing.py
+#usr/share/gdb/python/gdb/prompt.py
+#usr/share/gdb/python/gdb/types.py
+#usr/share/gdb/python/gdb/unwinder.py
+#usr/share/gdb/python/gdb/xmethod.py
+#usr/share/gdb/syscalls
+#usr/share/gdb/syscalls/aarch64-linux.xml
+#usr/share/gdb/syscalls/amd64-linux.xml
+#usr/share/gdb/syscalls/arm-linux.xml
+#usr/share/gdb/syscalls/freebsd.xml
+#usr/share/gdb/syscalls/gdb-syscalls.dtd
+#usr/share/gdb/syscalls/i386-linux.xml
+#usr/share/gdb/syscalls/mips-n32-linux.xml
+#usr/share/gdb/syscalls/mips-n64-linux.xml
+#usr/share/gdb/syscalls/mips-o32-linux.xml
+#usr/share/gdb/syscalls/netbsd.xml
+#usr/share/gdb/syscalls/ppc-linux.xml
+#usr/share/gdb/syscalls/ppc64-linux.xml
+#usr/share/gdb/syscalls/s390-linux.xml
+#usr/share/gdb/syscalls/s390x-linux.xml
+#usr/share/gdb/syscalls/sparc-linux.xml
+#usr/share/gdb/syscalls/sparc64-linux.xml
+#usr/share/gdb/system-gdbinit
+#usr/share/gdb/system-gdbinit/elinos.py
+#usr/share/gdb/system-gdbinit/wrs-linux.py
+#usr/share/info/annotate.info
+#usr/share/info/gdb.info
+#usr/share/info/gdb.info-1
+#usr/share/info/gdb.info-2
+#usr/share/info/gdb.info-3
+#usr/share/info/gdb.info-4
+#usr/share/info/gdb.info-5
+#usr/share/info/gdb.info-6
+#usr/share/info/gdb.info-7
+#usr/share/info/gdb.info-8
+#usr/share/info/stabs.info
+#usr/share/man/man1/gcore.1
+#usr/share/man/man1/gdb-add-index.1
+#usr/share/man/man1/gdb.1
+#usr/share/man/man1/gdbserver.1
+#usr/share/man/man5/gdbinit.5
index 851ffeaa8e6e53fc4a3d391e76817e7337d4d961..fe24361884f3b5bbc2e9be95420a2f6d2ab35479 100644 (file)
@@ -189,6 +189,7 @@ boot/dtb-KVER-ipfire
 #boot/dtb-KVER-ipfire/rockchip/rk3326-odroid-go2.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3328-a1.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3328-evb.dtb
+#boot/dtb-KVER-ipfire/rockchip/rk3328-nanopi-r2s-oc.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3328-nanopi-r2s.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3328-roc-cc.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3328-rock-pi-e.dtb
@@ -216,6 +217,7 @@ boot/dtb-KVER-ipfire
 #boot/dtb-KVER-ipfire/rockchip/rk3399-nanopi-m4.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3399-nanopi-m4b.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3399-nanopi-neo4.dtb
+#boot/dtb-KVER-ipfire/rockchip/rk3399-nanopi-r4s-oc.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3399-nanopi-r4s.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3399-orangepi.dtb
 #boot/dtb-KVER-ipfire/rockchip/rk3399-pinebook-pro.dtb
@@ -6550,6 +6552,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/ARM64_ERRATUM_826319
 #lib/modules/KVER-ipfire/build/include/config/ARM64_ERRATUM_827319
 #lib/modules/KVER-ipfire/build/include/config/ARM64_ERRATUM_832075
+#lib/modules/KVER-ipfire/build/include/config/ARM64_ERRATUM_834220
 #lib/modules/KVER-ipfire/build/include/config/ARM64_ERRATUM_843419
 #lib/modules/KVER-ipfire/build/include/config/ARM64_ERRATUM_845719
 #lib/modules/KVER-ipfire/build/include/config/ARM64_ERRATUM_858921
@@ -6603,6 +6606,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/ARM_PMU_ACPI
 #lib/modules/KVER-ipfire/build/include/config/ARM_PSCI_FW
 #lib/modules/KVER-ipfire/build/include/config/ARM_RK3399_DMC_DEVFREQ
+#lib/modules/KVER-ipfire/build/include/config/ARM_SCMI_CPUFREQ
 #lib/modules/KVER-ipfire/build/include/config/ARM_SCMI_HAVE_MSG
 #lib/modules/KVER-ipfire/build/include/config/ARM_SCMI_HAVE_SHMEM
 #lib/modules/KVER-ipfire/build/include/config/ARM_SCMI_HAVE_TRANSPORT
@@ -7036,6 +7040,12 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_AEAD
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_AEAD2
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_AES
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_AES_ARM64
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_AES_ARM64_BS
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_AES_ARM64_CE
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_AES_ARM64_CE_BLK
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_AES_ARM64_CE_CCM
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_AES_ARM64_NEON_BLK
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_AKCIPHER
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_AKCIPHER2
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_ALGAPI
@@ -7062,6 +7072,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_CRC32
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_CRC32C
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_CRCT10DIF
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_CRCT10DIF_ARM64_CE
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_CRYPTD
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_CTR
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_CTS
@@ -7085,6 +7096,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_GCM
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_GF128MUL
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_GHASH
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_GHASH_ARM64_CE
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_HASH
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_HASH2
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_HASH_INFO
@@ -7108,6 +7120,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_LIB_POLY1305_GENERIC
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_LIB_POLY1305_RSIZE
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_LIB_SHA256
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_LIB_SM4
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_LRW
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_LZ4
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_LZ4HC
@@ -7117,6 +7130,8 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_MD4
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_MD5
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_MICHAEL_MIC
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_NHPOLY1305
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_NHPOLY1305_NEON
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_NULL
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_NULL2
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_PCBC
@@ -7132,10 +7147,21 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_SEQIV
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_SERPENT
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA1
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA1_ARM64_CE
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA256
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA256_ARM64
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA2_ARM64_CE
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA3
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA3_ARM64
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA512
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA512_ARM64
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SHA512_ARM64_CE
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SIMD
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_SKCIPHER
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_SKCIPHER2
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SM3
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SM3_ARM64_CE
+#lib/modules/KVER-ipfire/build/include/config/CRYPTO_SM4_ARM64_CE
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_TEA
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_TEST
 #lib/modules/KVER-ipfire/build/include/config/CRYPTO_TWOFISH
@@ -7613,6 +7639,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/FUTEX_PI
 #lib/modules/KVER-ipfire/build/include/config/FWNODE_MDIO
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER
+#lib/modules/KVER-ipfire/build/include/config/FW_LOADER_COMPRESS
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER_PAGED_BUF
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER_USER_HELPER
 #lib/modules/KVER-ipfire/build/include/config/GACT_PROB
@@ -7755,6 +7782,15 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/HAVE_KCSAN_COMPILER
 #lib/modules/KVER-ipfire/build/include/config/HAVE_KPROBES
 #lib/modules/KVER-ipfire/build/include/config/HAVE_KRETPROBES
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_ARCH_TLB_FLUSH_ALL
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_CPU_RELAX_INTERCEPT
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_EVENTFD
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_IRQCHIP
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_IRQFD
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_IRQ_BYPASS
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_IRQ_ROUTING
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_MSI
+#lib/modules/KVER-ipfire/build/include/config/HAVE_KVM_VCPU_RUN_PID_CHANGE
 #lib/modules/KVER-ipfire/build/include/config/HAVE_MOD_ARCH_SPECIFIC
 #lib/modules/KVER-ipfire/build/include/config/HAVE_MOVE_PMD
 #lib/modules/KVER-ipfire/build/include/config/HAVE_MOVE_PUD
@@ -7998,6 +8034,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/INPUT_YEALINK
 #lib/modules/KVER-ipfire/build/include/config/INTEGRITY
 #lib/modules/KVER-ipfire/build/include/config/INTEL_XWAY_PHY
+#lib/modules/KVER-ipfire/build/include/config/INTERVAL_TREE
 #lib/modules/KVER-ipfire/build/include/config/IOMMU_API
 #lib/modules/KVER-ipfire/build/include/config/IOMMU_DEFAULT_DMA_STRICT
 #lib/modules/KVER-ipfire/build/include/config/IOMMU_DMA
@@ -8145,6 +8182,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/IP_VS_WLC
 #lib/modules/KVER-ipfire/build/include/config/IP_VS_WRR
 #lib/modules/KVER-ipfire/build/include/config/IRQCHIP
+#lib/modules/KVER-ipfire/build/include/config/IRQ_BYPASS_MANAGER
 #lib/modules/KVER-ipfire/build/include/config/IRQ_DOMAIN
 #lib/modules/KVER-ipfire/build/include/config/IRQ_DOMAIN_HIERARCHY
 #lib/modules/KVER-ipfire/build/include/config/IRQ_FASTEOI_HIERARCHY_HANDLERS
@@ -8215,6 +8253,11 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/KSM
 #lib/modules/KVER-ipfire/build/include/config/KSZ884X_PCI
 #lib/modules/KVER-ipfire/build/include/config/KUSER_HELPERS
+#lib/modules/KVER-ipfire/build/include/config/KVM
+#lib/modules/KVER-ipfire/build/include/config/KVM_GENERIC_DIRTYLOG_READ_PROTECT
+#lib/modules/KVER-ipfire/build/include/config/KVM_MMIO
+#lib/modules/KVER-ipfire/build/include/config/KVM_VFIO
+#lib/modules/KVER-ipfire/build/include/config/KVM_XFER_TO_GUEST_WORK
 #lib/modules/KVER-ipfire/build/include/config/L2TP
 #lib/modules/KVER-ipfire/build/include/config/L2TP_ETH
 #lib/modules/KVER-ipfire/build/include/config/L2TP_IP
@@ -8503,6 +8546,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/MMU
 #lib/modules/KVER-ipfire/build/include/config/MMU_GATHER_RCU_TABLE_FREE
 #lib/modules/KVER-ipfire/build/include/config/MMU_GATHER_TABLE_FREE
+#lib/modules/KVER-ipfire/build/include/config/MMU_NOTIFIER
 #lib/modules/KVER-ipfire/build/include/config/MODPROBE_PATH
 #lib/modules/KVER-ipfire/build/include/config/MODULES
 #lib/modules/KVER-ipfire/build/include/config/MODULES_TREE_LOOKUP
@@ -9312,6 +9356,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/PPP_SYNC_TTY
 #lib/modules/KVER-ipfire/build/include/config/PPS
 #lib/modules/KVER-ipfire/build/include/config/PPTP
+#lib/modules/KVER-ipfire/build/include/config/PREEMPT_NOTIFIERS
 #lib/modules/KVER-ipfire/build/include/config/PREEMPT_VOLUNTARY
 #lib/modules/KVER-ipfire/build/include/config/PRESTERA
 #lib/modules/KVER-ipfire/build/include/config/PRESTERA_PCI
@@ -15469,6 +15514,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cryptouser.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cuda.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cxl_mem.h
+#lib/modules/KVER-ipfire/build/include/uapi/linux/cyclades.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cycx_cfm.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/dcbnl.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/dccp.h
@@ -18225,8 +18271,25 @@ lib/modules/KVER-ipfire/kernel
 #lib/modules/KVER-ipfire/kernel/arch
 #lib/modules/KVER-ipfire/kernel/arch/arm64
 #lib/modules/KVER-ipfire/kernel/arch/arm64/crypto
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/aes-arm64.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/aes-ce-blk.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/aes-ce-ccm.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/aes-ce-cipher.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/aes-neon-blk.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/aes-neon-bs.ko.xz
 #lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/chacha-neon.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/crct10dif-ce.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/ghash-ce.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/nhpoly1305-neon.ko.xz
 #lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/poly1305-neon.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sha1-ce.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sha2-ce.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sha256-arm64.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sha3-ce.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sha512-arm64.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sha512-ce.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sm3-ce.ko.xz
+#lib/modules/KVER-ipfire/kernel/arch/arm64/crypto/sm4-ce.ko.xz
 #lib/modules/KVER-ipfire/kernel/arch/arm64/lib
 #lib/modules/KVER-ipfire/kernel/arch/arm64/lib/xor-neon.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto
@@ -18255,6 +18318,7 @@ lib/modules/KVER-ipfire/kernel
 #lib/modules/KVER-ipfire/kernel/crypto/chacha_generic.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/cmac.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/crypto_engine.ko.xz
+#lib/modules/KVER-ipfire/kernel/crypto/crypto_simd.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/cts.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/ecdh_generic.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/echainiv.ko.xz
@@ -18271,12 +18335,15 @@ lib/modules/KVER-ipfire/kernel
 #lib/modules/KVER-ipfire/kernel/crypto/lzo.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/md4.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/michael_mic.ko.xz
+#lib/modules/KVER-ipfire/kernel/crypto/nhpoly1305.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/pcbc.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/pcrypt.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/poly1305_generic.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/rmd160.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/seed.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/serpent_generic.ko.xz
+#lib/modules/KVER-ipfire/kernel/crypto/sha3_generic.ko.xz
+#lib/modules/KVER-ipfire/kernel/crypto/sm3_generic.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/tcrypt.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/tea.ko.xz
 #lib/modules/KVER-ipfire/kernel/crypto/twofish_common.ko.xz
@@ -18362,6 +18429,7 @@ lib/modules/KVER-ipfire/kernel
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/armada-8k-cpufreq.ko.xz
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cppc_cpufreq.ko.xz
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/imx-cpufreq-dt.ko.xz
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/scmi-cpufreq.ko.xz
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/sun50i-cpufreq-nvmem.ko.xz
 #lib/modules/KVER-ipfire/kernel/drivers/crypto
 #lib/modules/KVER-ipfire/kernel/drivers/crypto/amlogic
@@ -20457,6 +20525,7 @@ lib/modules/KVER-ipfire/kernel
 #lib/modules/KVER-ipfire/kernel/lib/crypto/libcurve25519-generic.ko.xz
 #lib/modules/KVER-ipfire/kernel/lib/crypto/libcurve25519.ko.xz
 #lib/modules/KVER-ipfire/kernel/lib/crypto/libpoly1305.ko.xz
+#lib/modules/KVER-ipfire/kernel/lib/crypto/libsm4.ko.xz
 #lib/modules/KVER-ipfire/kernel/lib/lz4
 #lib/modules/KVER-ipfire/kernel/lib/lz4/lz4_compress.ko.xz
 #lib/modules/KVER-ipfire/kernel/lib/lz4/lz4hc_compress.ko.xz
index 72406dca84257c1e3764abfaa1c3355ba926c316..3cc1d3efad823fcb25812b938c9c10ee3824f828 100644 (file)
 #usr/include/linux/cryptouser.h
 #usr/include/linux/cuda.h
 #usr/include/linux/cxl_mem.h
+#usr/include/linux/cyclades.h
 #usr/include/linux/cycx_cfm.h
 #usr/include/linux/dcbnl.h
 #usr/include/linux/dccp.h
index c26d4591ba0ffd813f30e397f4173108ffcc7cc9..b249f4fdb72aee6739f8f8dcf7a3fd263505d8a4 100644 (file)
@@ -6,48 +6,54 @@
 #usr/bin/rustdoc
 #usr/etc/bash_completion.d
 #usr/etc/bash_completion.d/cargo
-#usr/lib/libchalk_derive-60c7d9b67167a9f2.so
-#usr/lib/librustc_driver-d05deb70c2a826c2.so
-#usr/lib/librustc_macros-6959a92dde7c0104.so
-#usr/lib/libserde_derive-f6c55381d3d185eb.so
-#usr/lib/libstd-78700ac2ab56c3bb.so
-#usr/lib/libtest-5140f7e2ec410eb4.so
-#usr/lib/libtracing_attributes-f1588bb03dae1fd1.so
+#usr/lib/libchalk_derive-bc37a4d3cc7afc0c.so
+#usr/lib/libcstr-42f6d4036d8672ac.so
+#usr/lib/librustc_driver-11eb9d5c5cc02062.so
+#usr/lib/librustc_macros-09b2561b6369ca7d.so
+#usr/lib/libserde_derive-8864815e24a22baf.so
+#usr/lib/libstd-bf1df1aed541d8ed.so
+#usr/lib/libtest-d888e7c03fa5be21.so
+#usr/lib/libtracing_attributes-f53307c6cf89c064.so
 #usr/lib/rustlib
 #usr/lib/rustlib/aarch64-unknown-linux-gnu
 #usr/lib/rustlib/aarch64-unknown-linux-gnu/bin
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/bin/gcc-ld
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/bin/gcc-ld/ld
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/bin/gcc-ld/ld64
 #usr/lib/rustlib/aarch64-unknown-linux-gnu/lib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libaddr2line-228db558b4700480.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libadler-f8e203c5b1ddf98b.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/liballoc-e22f07436e09e5de.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcfg_if-10f6c1cf2d7e4beb.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcompiler_builtins-81a70c8852741fae.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcore-3c0fae3704d95225.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgetopts-bf6c53d8d87e5474.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgimli-ee0753eb4294dd52.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libhashbrown-b407e6a2057ae6e3.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/liblibc-05c1d7ca8cdec168.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libminiz_oxide-449db24deb93dd8d.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libobject-8e2621586e9e42ed.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_abort-35141bf59368e7af.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_unwind-808231bb932c6507.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libproc_macro-52033248ff2e703e.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libprofiler_builtins-f29e4894fa03fc09.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-stable_rt.asan.a
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-stable_rt.lsan.a
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-stable_rt.msan.a
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-stable_rt.tsan.a
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_demangle-76d8cd0fb823c519.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-4e6c971b08227805.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_core-5291610c2695652b.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_std-f823a3559cc11aa8.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-78700ac2ab56c3bb.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-78700ac2ab56c3bb.so
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libterm-ccf3fc5c25933c6d.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libtest-5140f7e2ec410eb4.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libtest-5140f7e2ec410eb4.so
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunicode_width-fa2a3a9c86d3c072.rlib
-#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunwind-94e50e919db6c56e.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libaddr2line-7c1446e3e87b2b09.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libadler-299819e6b3a816f3.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/liballoc-005ebc4ebbf497c8.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcfg_if-8c8a3a61554c19ae.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcompiler_builtins-563a040e8905cead.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcore-ba3072fd9d1e03a2.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgetopts-5ec353a43bd92e81.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgimli-006ca31967fca06b.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libhashbrown-0aca47c72e768ead.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/liblibc-2afa71bd510d9f3f.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libmemchr-130cfc0a8bb148f7.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libminiz_oxide-29eccf1b0ae050d2.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libobject-cc0e548d3cbbd8f6.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_abort-d463132d20571180.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_unwind-abfc59ce51bd5da4.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libproc_macro-4dfeeacf6c120e7a.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libprofiler_builtins-d830e67ef735d81d.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-nightly_rt.asan.a
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-nightly_rt.hwasan.a
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-nightly_rt.lsan.a
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-nightly_rt.msan.a
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc-nightly_rt.tsan.a
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_demangle-340189b0709e545c.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-fcfea86764e35159.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_core-5a016b349f64c169.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_std-8b467de538f00f19.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-bf1df1aed541d8ed.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-bf1df1aed541d8ed.so
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd_detect-a94bb57c38a005c0.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libtest-d888e7c03fa5be21.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libtest-d888e7c03fa5be21.so
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunicode_width-5a0b6b47f00cd8ee.rlib
+#usr/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunwind-dc19104919b91c81.rlib
 #usr/lib/rustlib/components
 #usr/lib/rustlib/etc
 #usr/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
@@ -64,6 +70,8 @@
 #usr/lib/rustlib/rust-installer-version
 #usr/lib/rustlib/uninstall.sh
 #usr/libexec/cargo-credential-1password
+#usr/share/cargo
+#usr/share/cargo/registry
 #usr/share/doc/cargo
 #usr/share/doc/cargo/LICENSE-APACHE
 #usr/share/doc/cargo/LICENSE-MIT
 #usr/share/man/man1/cargo-package.1
 #usr/share/man/man1/cargo-pkgid.1
 #usr/share/man/man1/cargo-publish.1
+#usr/share/man/man1/cargo-report.1
 #usr/share/man/man1/cargo-run.1
 #usr/share/man/man1/cargo-rustc.1
 #usr/share/man/man1/cargo-rustdoc.1
index bef7b7986a74aa08aa79d8457b924f168e46aec3..ab22769e3af912b4a0a11b1199cf8f59d429dfd6 100644 (file)
@@ -8,6 +8,8 @@ boot/uboot.env
 #usr/share/u-boot
 #usr/share/u-boot/nanopi_r2s
 usr/share/u-boot/nanopi_r2s/u-boot-rockchip.bin
+#usr/share/u-boot/nanopi_r4s
+usr/share/u-boot/nanopi_r4s/u-boot-rockchip.bin
 #usr/share/u-boot/rpi
 usr/share/u-boot/rpi/u-boot-rpi3.bin
 usr/share/u-boot/rpi/u-boot-rpi4.bin
index 070087d54448c5f5b733bc9a293f534da9510e5f..e2eb690f1cb3f15b650bfbc912d88d67231c3a68 100644 (file)
@@ -8061,6 +8061,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/FUTEX_PI
 #lib/modules/KVER-ipfire/build/include/config/FWNODE_MDIO
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER
+#lib/modules/KVER-ipfire/build/include/config/FW_LOADER_COMPRESS
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER_PAGED_BUF
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER_USER_HELPER
 #lib/modules/KVER-ipfire/build/include/config/GACT_PROB
@@ -15960,6 +15961,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cryptouser.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cuda.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cxl_mem.h
+#lib/modules/KVER-ipfire/build/include/uapi/linux/cyclades.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cycx_cfm.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/dcbnl.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/dccp.h
index 8b028b07d063b054850857faf6bed9ae914c4d24..25517dff99582937fa858b404a3438997a5984b3 100644 (file)
 #usr/include/linux/cryptouser.h
 #usr/include/linux/cuda.h
 #usr/include/linux/cxl_mem.h
+#usr/include/linux/cyclades.h
 #usr/include/linux/cycx_cfm.h
 #usr/include/linux/dcbnl.h
 #usr/include/linux/dccp.h
index c84d35b77bd216ad958f31c18eae7c97c079c37b..fc9d0298231984947a7ed0fc81b39458ffeb49bd 100644 (file)
@@ -786,7 +786,7 @@ usr/lib/python3.8/lib-dynload/_ctypes_test.cpython-38-arm-linux-gnueabi.so
 usr/lib/python3.8/lib-dynload/_curses.cpython-38-arm-linux-gnueabi.so
 usr/lib/python3.8/lib-dynload/_curses_panel.cpython-38-arm-linux-gnueabi.so
 usr/lib/python3.8/lib-dynload/_datetime.cpython-38-arm-linux-gnueabi.so
-usr/lib/python3.8/lib-dynload/_dbm.cpython-38-arm-linux-gnueabi_failed.so
+usr/lib/python3.8/lib-dynload/_dbm.cpython-38-arm-linux-gnueabi.so
 usr/lib/python3.8/lib-dynload/_decimal.cpython-38-arm-linux-gnueabi.so
 usr/lib/python3.8/lib-dynload/_elementtree.cpython-38-arm-linux-gnueabi.so
 usr/lib/python3.8/lib-dynload/_gdbm.cpython-38-arm-linux-gnueabi.so
index ffe8318ab7f8d2e479c8862109e73390586fe512..39da25d4c119c5d3bc36821e4e3f6dd1bd9c7278 100644 (file)
@@ -6,43 +6,48 @@
 #usr/bin/rustdoc
 #usr/etc/bash_completion.d
 #usr/etc/bash_completion.d/cargo
-#usr/lib/libchalk_derive-60e6609799a3665c.so
-#usr/lib/librustc_driver-d9db5d9f5168f26a.so
-#usr/lib/librustc_macros-5adaaf63fffb4acc.so
-#usr/lib/libserde_derive-7dfe7ef76bb583c0.so
-#usr/lib/libstd-08ee4762acc7bd6c.so
-#usr/lib/libtest-ab3fca57c5ff3f13.so
-#usr/lib/libtracing_attributes-119e673def241fe0.so
+#usr/lib/libchalk_derive-a7aac87648f67dd9.so
+#usr/lib/libcstr-ca11439b0f1e1bec.so
+#usr/lib/librustc_driver-8b5e0f8365ad13be.so
+#usr/lib/librustc_macros-5f6bdd64c87d05ed.so
+#usr/lib/libserde_derive-bbec38f041e24373.so
+#usr/lib/libstd-5a81f0e7a81bb280.so
+#usr/lib/libtest-3d3f7e63207b7755.so
+#usr/lib/libtracing_attributes-e70e4864c8506b83.so
 #usr/lib/rustlib
 #usr/lib/rustlib/arm-unknown-linux-gnueabi
 #usr/lib/rustlib/arm-unknown-linux-gnueabi/bin
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/bin/gcc-ld
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/bin/gcc-ld/ld
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/bin/gcc-ld/ld64
 #usr/lib/rustlib/arm-unknown-linux-gnueabi/lib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libaddr2line-a93e1e1d8fc43c22.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libadler-b353a1d292e49fc9.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/liballoc-f19953fa31c5e53c.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libcfg_if-35e2f271631dab8b.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libcompiler_builtins-ddbc6586d7a17833.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libcore-14499a277447f4f6.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libgetopts-a643ba6ad20cd7fc.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libgimli-cc1b705e5055e3a6.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libhashbrown-081221f480fdcb96.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/liblibc-15548400be905d1f.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libminiz_oxide-d5d80e62031eaec6.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libobject-f538e004b85c6b56.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libpanic_abort-9719b08ba8e4a62e.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libpanic_unwind-67eb8cc728beb84e.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libproc_macro-6d2282bdaf511097.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_demangle-138ccc5a7c1205f8.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_std_workspace_alloc-48aee1e7bcd00a8b.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_std_workspace_core-d7f7aed366972d31.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_std_workspace_std-36a49e2bcef28653.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libstd-08ee4762acc7bd6c.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libstd-08ee4762acc7bd6c.so
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libterm-cde6bfa2a44e2ae0.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libtest-ab3fca57c5ff3f13.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libtest-ab3fca57c5ff3f13.so
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libunicode_width-070cf192d55ba738.rlib
-#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libunwind-0dfac9185d575a7e.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libaddr2line-e313097e00d59aff.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libadler-904ad4f3ea8e4644.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/liballoc-8a8ca2fa8fd7e921.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libcfg_if-5726f074bf370c96.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libcompiler_builtins-59d656a2d77b6ff1.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libcore-21d632ec5a739f36.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libgetopts-3f7143b969b1dc20.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libgimli-33924ee1ebd37000.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libhashbrown-1293c8e1e0e1e2ca.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/liblibc-e33c1d2e4e1c5607.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libmemchr-27b88fc4f04ffcea.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libminiz_oxide-5f1c39b893ff362d.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libobject-ddc4501dc811e1a0.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libpanic_abort-70c249ebcf7cabf7.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libpanic_unwind-c6741552d434440d.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libproc_macro-8bbf2a5f09c35911.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_demangle-ee45321cd0c23638.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_std_workspace_alloc-5f88fea53c4fd04e.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_std_workspace_core-16c9d9a485713471.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/librustc_std_workspace_std-8202290e15aa73c2.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libstd-5a81f0e7a81bb280.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libstd-5a81f0e7a81bb280.so
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libstd_detect-7a9162609ed190df.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libtest-3d3f7e63207b7755.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libtest-3d3f7e63207b7755.so
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libunicode_width-e3650df3aaead3dd.rlib
+#usr/lib/rustlib/arm-unknown-linux-gnueabi/lib/libunwind-2978ee66d1e38980.rlib
 #usr/lib/rustlib/components
 #usr/lib/rustlib/etc
 #usr/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
@@ -59,6 +64,8 @@
 #usr/lib/rustlib/rust-installer-version
 #usr/lib/rustlib/uninstall.sh
 #usr/libexec/cargo-credential-1password
+#usr/share/cargo
+#usr/share/cargo/registry
 #usr/share/doc/cargo
 #usr/share/doc/cargo/LICENSE-APACHE
 #usr/share/doc/cargo/LICENSE-MIT
@@ -88,6 +95,7 @@
 #usr/share/man/man1/cargo-package.1
 #usr/share/man/man1/cargo-pkgid.1
 #usr/share/man/man1/cargo-publish.1
+#usr/share/man/man1/cargo-report.1
 #usr/share/man/man1/cargo-run.1
 #usr/share/man/man1/cargo-rustc.1
 #usr/share/man/man1/cargo-rustdoc.1
index a89af5bcb7f0cf2552d6e27c1635342e1a0256e5..4ea64dc0c0111bb4729734fb3b8f10c4bb67a008 100644 (file)
@@ -274,24 +274,24 @@ usr/bin/nsupdate
 #usr/include/pk11/site.h
 #usr/include/pkcs11
 #usr/include/pkcs11/pkcs11.h
-usr/lib/libbind9-9.16.22.so
+usr/lib/libbind9-9.16.25.so
 #usr/lib/libbind9.la
 #usr/lib/libbind9.so
-usr/lib/libdns-9.16.22.so
+usr/lib/libdns-9.16.25.so
 #usr/lib/libdns.la
 #usr/lib/libdns.so
-usr/lib/libirs-9.16.22.so
+usr/lib/libirs-9.16.25.so
 #usr/lib/libirs.la
 #usr/lib/libirs.so
-usr/lib/libisc-9.16.22.so
+usr/lib/libisc-9.16.25.so
 #usr/lib/libisc.la
 #usr/lib/libisc.so
-usr/lib/libisccc-9.16.22.so
+usr/lib/libisccc-9.16.25.so
 #usr/lib/libisccc.la
 #usr/lib/libisccc.so
-usr/lib/libisccfg-9.16.22.so
+usr/lib/libisccfg-9.16.25.so
 #usr/lib/libisccfg.la
 #usr/lib/libisccfg.so
-usr/lib/libns-9.16.22.so
+usr/lib/libns-9.16.25.so
 #usr/lib/libns.la
 #usr/lib/libns.so
index 2dfc8ae1ffc96b9e984690fef04d0137e048668d..904c718c33efe037712b7b62b07c46f4e61f5621 100644 (file)
@@ -4,6 +4,7 @@ usr/sbin/convert-portfw
 usr/sbin/convert-snort
 usr/sbin/convert-xtaccess
 usr/sbin/convert-ids-modifysids-file
+usr/sbin/convert-ids-multiple-providers
 usr/sbin/firewall-policy
 #var/ipfire
 var/ipfire/addon-lang
index 4dcfe4a7d6460917d3c3e8f541bd6af557f20d92..ea0c2ded59131902f952497f67e8d22402c0871a 100644 (file)
@@ -2,22 +2,22 @@
 #usr/include/expat.h
 #usr/include/expat_config.h
 #usr/include/expat_external.h
-#usr/lib/cmake/expat-2.4.1
-#usr/lib/cmake/expat-2.4.1/expat-config-version.cmake
-#usr/lib/cmake/expat-2.4.1/expat-config.cmake
-#usr/lib/cmake/expat-2.4.1/expat-noconfig.cmake
-#usr/lib/cmake/expat-2.4.1/expat.cmake
+#usr/lib/cmake/expat-2.4.2
+#usr/lib/cmake/expat-2.4.2/expat-config-version.cmake
+#usr/lib/cmake/expat-2.4.2/expat-config.cmake
+#usr/lib/cmake/expat-2.4.2/expat-noconfig.cmake
+#usr/lib/cmake/expat-2.4.2/expat.cmake
 #usr/lib/libexpat.a
 #usr/lib/libexpat.la
 #usr/lib/libexpat.so
 usr/lib/libexpat.so.1
-usr/lib/libexpat.so.1.8.1
+usr/lib/libexpat.so.1.8.2
 #usr/lib/pkgconfig/expat.pc
 #usr/share/doc/expat
-#usr/share/doc/expat-2.4.1
-#usr/share/doc/expat-2.4.1/ok.min.css
-#usr/share/doc/expat-2.4.1/reference.html
-#usr/share/doc/expat-2.4.1/style.css
-#usr/share/doc/expat-2.4.1/valid-xhtml10.png
+#usr/share/doc/expat-2.4.2
+#usr/share/doc/expat-2.4.2/ok.min.css
+#usr/share/doc/expat-2.4.2/reference.html
+#usr/share/doc/expat-2.4.2/style.css
+#usr/share/doc/expat-2.4.2/valid-xhtml10.png
 #usr/share/doc/expat/AUTHORS
 #usr/share/doc/expat/changelog
index 24e9682e663b0b180ffa2f5259b2308c41ed233f..ceb06b4d69b046bb3f459b07832eecf421a8e282 100644 (file)
@@ -59,7 +59,7 @@
 #usr/lib/libfreetype.la
 #usr/lib/libfreetype.so
 usr/lib/libfreetype.so.6
-usr/lib/libfreetype.so.6.18.0
+usr/lib/libfreetype.so.6.18.1
 #usr/lib/pkgconfig/freetype2.pc
 #usr/share/aclocal/freetype2.m4
 #usr/share/man/man1/freetype-config.1
index a8289432d9033682760eb2c858e7a34022b2acc3..db3814f22424aaf3c2d9aea0d6c377c5a4bdd2d1 100644 (file)
@@ -1,16 +1,19 @@
+#usr/bin/gdbm_dump
+#usr/bin/gdbm_load
+#usr/bin/gdbmtool
 #usr/include/dbm.h
 #usr/include/gdbm.h
 #usr/include/ndbm.h
-#usr/info/gdbm.info
-#usr/lib/libgdbm.a
 #usr/lib/libgdbm.la
-usr/lib/libgdbm.so
-usr/lib/libgdbm.so.3
-usr/lib/libgdbm.so.3.0.0
-#usr/lib/libgdbm_compat.a
+#usr/lib/libgdbm.so
+usr/lib/libgdbm.so.6
+usr/lib/libgdbm.so.6.0.0
 #usr/lib/libgdbm_compat.la
-usr/lib/libgdbm_compat.so
-usr/lib/libgdbm_compat.so.3
-usr/lib/libgdbm_compat.so.3.0.0
-#usr/man/man3
-#usr/man/man3/gdbm.3
+#usr/lib/libgdbm_compat.so
+usr/lib/libgdbm_compat.so.4
+usr/lib/libgdbm_compat.so.4.0.0
+#usr/share/info/gdbm.info
+#usr/share/man/man1/gdbm_dump.1
+#usr/share/man/man1/gdbm_load.1
+#usr/share/man/man1/gdbmtool.1
+#usr/share/man/man3/gdbm.3
diff --git a/config/rootfiles/common/jq b/config/rootfiles/common/jq
new file mode 100644 (file)
index 0000000..7413eb8
--- /dev/null
@@ -0,0 +1,14 @@
+usr/bin/jq
+#usr/include/jq.h
+#usr/include/jv.h
+#usr/lib/libjq.a
+#usr/lib/libjq.la
+#usr/lib/libjq.so
+usr/lib/libjq.so.1
+usr/lib/libjq.so.1.0.4
+#usr/share/doc/jq
+#usr/share/doc/jq/AUTHORS
+#usr/share/doc/jq/COPYING
+#usr/share/doc/jq/README
+#usr/share/doc/jq/README.md
+#usr/share/man/man1/jq.1
index 56806fd1f2243b61056d73e30328884273cd1a6a..f46db860b7a24bf106760bfbafd7e18b2afbd6c7 100644 (file)
@@ -9,6 +9,6 @@ sbin/rmmod
 #usr/lib/libkmod.la
 #usr/lib/libkmod.so
 usr/lib/libkmod.so.2
-usr/lib/libkmod.so.2.3.6
+usr/lib/libkmod.so.2.3.7
 #usr/lib/pkgconfig/libkmod.pc
 #usr/share/bash-completion/completions/kmod
index 23257415930b80620f9be610c730169cd9b67617..db0215195adc98b2760ecc5847b8af107c1a2e3a 100644 (file)
@@ -5,5 +5,5 @@ etc/udev/rules.d/23-usb.rules
 #usr/lib/libusb-1.0.la
 #usr/lib/libusb-1.0.so
 usr/lib/libusb-1.0.so.0
-usr/lib/libusb-1.0.so.0.2.0
+usr/lib/libusb-1.0.so.0.3.0
 #usr/lib/pkgconfig/libusb-1.0.pc
index a1176d7afaa0f03095d66d4e6295532e577d6932..e3fbe2ce6f8593f08385696ce314cca0313c3141 100644 (file)
 #usr/lib/libxml2.la
 #usr/lib/libxml2.so
 usr/lib/libxml2.so.2
-usr/lib/libxml2.so.2.9.10
+usr/lib/libxml2.so.2.9.12
 #usr/lib/pkgconfig/libxml-2.0.pc
 #usr/lib/xml2Conf.sh
 #usr/share/aclocal/libxml.m4
-#usr/share/doc/libxml2-2.9.10
-#usr/share/doc/libxml2-2.9.10/Copyright
-#usr/share/doc/libxml2-2.9.10/examples
-#usr/share/doc/libxml2-2.9.10/examples/testHTML.c
-#usr/share/doc/libxml2-2.9.10/examples/testSAX.c
-#usr/share/doc/libxml2-2.9.10/examples/testXPath.c
-#usr/share/doc/libxml2-2.9.10/examples/xmllint.c
-#usr/share/doc/libxml2-2.9.10/html
-#usr/share/doc/libxml2-2.9.10/html/DOM.gif
-#usr/share/doc/libxml2-2.9.10/html/FAQ.html
-#usr/share/doc/libxml2-2.9.10/html/Libxml2-Logo-180x168.gif
-#usr/share/doc/libxml2-2.9.10/html/Libxml2-Logo-90x34.gif
-#usr/share/doc/libxml2-2.9.10/html/encoding.html
-#usr/share/doc/libxml2-2.9.10/html/examples.xml
-#usr/share/doc/libxml2-2.9.10/html/examples.xsl
-#usr/share/doc/libxml2-2.9.10/html/html
-#usr/share/doc/libxml2-2.9.10/html/html/book1.html
-#usr/share/doc/libxml2-2.9.10/html/html/home.png
-#usr/share/doc/libxml2-2.9.10/html/html/index.html
-#usr/share/doc/libxml2-2.9.10/html/html/left.png
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-DOCBparser.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-HTMLparser.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-HTMLtree.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-SAX.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-SAX2.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-c14n.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-catalog.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-chvalid.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-debugXML.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-dict.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-encoding.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-entities.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-globals.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-hash.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-lib.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-list.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-nanoftp.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-nanohttp.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-parser.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-parserInternals.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-pattern.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-relaxng.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-schemasInternals.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-schematron.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-threads.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-tree.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-uri.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-valid.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xinclude.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xlink.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlIO.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlautomata.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlerror.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlexports.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlmemory.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlmodule.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlreader.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlregexp.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlsave.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlschemas.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlschemastypes.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlstring.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlunicode.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlversion.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xmlwriter.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xpath.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xpathInternals.html
-#usr/share/doc/libxml2-2.9.10/html/html/libxml-xpointer.html
-#usr/share/doc/libxml2-2.9.10/html/html/right.png
-#usr/share/doc/libxml2-2.9.10/html/html/up.png
-#usr/share/doc/libxml2-2.9.10/html/index.html
-#usr/share/doc/libxml2-2.9.10/html/io1.c
-#usr/share/doc/libxml2-2.9.10/html/io1.res
-#usr/share/doc/libxml2-2.9.10/html/io2.c
-#usr/share/doc/libxml2-2.9.10/html/io2.res
-#usr/share/doc/libxml2-2.9.10/html/libxml.gif
-#usr/share/doc/libxml2-2.9.10/html/parse1.c
-#usr/share/doc/libxml2-2.9.10/html/parse2.c
-#usr/share/doc/libxml2-2.9.10/html/parse3.c
-#usr/share/doc/libxml2-2.9.10/html/parse4.c
-#usr/share/doc/libxml2-2.9.10/html/reader1.c
-#usr/share/doc/libxml2-2.9.10/html/reader1.res
-#usr/share/doc/libxml2-2.9.10/html/reader2.c
-#usr/share/doc/libxml2-2.9.10/html/reader3.c
-#usr/share/doc/libxml2-2.9.10/html/reader3.res
-#usr/share/doc/libxml2-2.9.10/html/reader4.c
-#usr/share/doc/libxml2-2.9.10/html/reader4.res
-#usr/share/doc/libxml2-2.9.10/html/redhat.gif
-#usr/share/doc/libxml2-2.9.10/html/smallfootonly.gif
-#usr/share/doc/libxml2-2.9.10/html/structure.gif
-#usr/share/doc/libxml2-2.9.10/html/test1.xml
-#usr/share/doc/libxml2-2.9.10/html/test2.xml
-#usr/share/doc/libxml2-2.9.10/html/test3.xml
-#usr/share/doc/libxml2-2.9.10/html/testWriter.c
-#usr/share/doc/libxml2-2.9.10/html/tree1.c
-#usr/share/doc/libxml2-2.9.10/html/tree1.res
-#usr/share/doc/libxml2-2.9.10/html/tree2.c
-#usr/share/doc/libxml2-2.9.10/html/tree2.res
-#usr/share/doc/libxml2-2.9.10/html/tst.xml
-#usr/share/doc/libxml2-2.9.10/html/tutorial
-#usr/share/doc/libxml2-2.9.10/html/tutorial/apa.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/apb.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/apc.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/apd.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ape.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/apf.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/apg.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/aph.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/api.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s02.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s03.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s04.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s05.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s06.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s07.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s08.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ar01s09.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/blank.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/1.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/10.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/2.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/3.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/4.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/5.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/6.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/7.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/8.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/callouts/9.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/caution.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/draft.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/home.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/important.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/next.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/note.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/prev.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/tip.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/toc-blank.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/toc-minus.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/toc-plus.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/up.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/images/warning.png
-#usr/share/doc/libxml2-2.9.10/html/tutorial/includeaddattribute.c
-#usr/share/doc/libxml2-2.9.10/html/tutorial/includeaddkeyword.c
-#usr/share/doc/libxml2-2.9.10/html/tutorial/includeconvert.c
-#usr/share/doc/libxml2-2.9.10/html/tutorial/includegetattribute.c
-#usr/share/doc/libxml2-2.9.10/html/tutorial/includekeyword.c
-#usr/share/doc/libxml2-2.9.10/html/tutorial/includexpath.c
-#usr/share/doc/libxml2-2.9.10/html/tutorial/index.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/ix01.html
-#usr/share/doc/libxml2-2.9.10/html/tutorial/xmltutorial.pdf
-#usr/share/doc/libxml2-2.9.10/html/w3c.png
-#usr/share/doc/libxml2-2.9.10/html/writer.xml
-#usr/share/doc/libxml2-2.9.10/html/xml.html
-#usr/share/doc/libxml2-2.9.10/html/xpath1.c
-#usr/share/doc/libxml2-2.9.10/html/xpath1.res
-#usr/share/doc/libxml2-2.9.10/html/xpath2.c
-#usr/share/doc/libxml2-2.9.10/html/xpath2.res
-#usr/share/gtk-doc
-#usr/share/gtk-doc/html
+#usr/share/doc/libxml2-2.9.12
+#usr/share/doc/libxml2-2.9.12/Copyright
+#usr/share/doc/libxml2-2.9.12/examples
+#usr/share/doc/libxml2-2.9.12/examples/testHTML.c
+#usr/share/doc/libxml2-2.9.12/examples/testSAX.c
+#usr/share/doc/libxml2-2.9.12/examples/testXPath.c
+#usr/share/doc/libxml2-2.9.12/examples/xmllint.c
+#usr/share/doc/libxml2-2.9.12/html
+#usr/share/doc/libxml2-2.9.12/html/DOM.gif
+#usr/share/doc/libxml2-2.9.12/html/FAQ.html
+#usr/share/doc/libxml2-2.9.12/html/Libxml2-Logo-180x168.gif
+#usr/share/doc/libxml2-2.9.12/html/Libxml2-Logo-90x34.gif
+#usr/share/doc/libxml2-2.9.12/html/encoding.html
+#usr/share/doc/libxml2-2.9.12/html/examples.xml
+#usr/share/doc/libxml2-2.9.12/html/examples.xsl
+#usr/share/doc/libxml2-2.9.12/html/html
+#usr/share/doc/libxml2-2.9.12/html/html/book1.html
+#usr/share/doc/libxml2-2.9.12/html/html/home.png
+#usr/share/doc/libxml2-2.9.12/html/html/index.html
+#usr/share/doc/libxml2-2.9.12/html/html/left.png
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-DOCBparser.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-HTMLparser.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-HTMLtree.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-SAX.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-SAX2.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-c14n.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-catalog.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-chvalid.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-debugXML.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-dict.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-encoding.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-entities.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-globals.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-hash.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-lib.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-list.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-nanoftp.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-nanohttp.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-parser.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-parserInternals.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-pattern.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-relaxng.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-schemasInternals.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-schematron.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-threads.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-tree.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-uri.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-valid.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xinclude.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xlink.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlIO.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlautomata.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlerror.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlexports.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlmemory.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlmodule.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlreader.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlregexp.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlsave.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlschemas.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlschemastypes.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlstring.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlunicode.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlversion.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xmlwriter.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xpath.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xpathInternals.html
+#usr/share/doc/libxml2-2.9.12/html/html/libxml-xpointer.html
+#usr/share/doc/libxml2-2.9.12/html/html/right.png
+#usr/share/doc/libxml2-2.9.12/html/html/up.png
+#usr/share/doc/libxml2-2.9.12/html/index.html
+#usr/share/doc/libxml2-2.9.12/html/io1.c
+#usr/share/doc/libxml2-2.9.12/html/io1.res
+#usr/share/doc/libxml2-2.9.12/html/io2.c
+#usr/share/doc/libxml2-2.9.12/html/io2.res
+#usr/share/doc/libxml2-2.9.12/html/libxml.gif
+#usr/share/doc/libxml2-2.9.12/html/parse1.c
+#usr/share/doc/libxml2-2.9.12/html/parse2.c
+#usr/share/doc/libxml2-2.9.12/html/parse3.c
+#usr/share/doc/libxml2-2.9.12/html/parse4.c
+#usr/share/doc/libxml2-2.9.12/html/reader1.c
+#usr/share/doc/libxml2-2.9.12/html/reader1.res
+#usr/share/doc/libxml2-2.9.12/html/reader2.c
+#usr/share/doc/libxml2-2.9.12/html/reader3.c
+#usr/share/doc/libxml2-2.9.12/html/reader3.res
+#usr/share/doc/libxml2-2.9.12/html/reader4.c
+#usr/share/doc/libxml2-2.9.12/html/reader4.res
+#usr/share/doc/libxml2-2.9.12/html/redhat.gif
+#usr/share/doc/libxml2-2.9.12/html/smallfootonly.gif
+#usr/share/doc/libxml2-2.9.12/html/structure.gif
+#usr/share/doc/libxml2-2.9.12/html/test1.xml
+#usr/share/doc/libxml2-2.9.12/html/test2.xml
+#usr/share/doc/libxml2-2.9.12/html/test3.xml
+#usr/share/doc/libxml2-2.9.12/html/testWriter.c
+#usr/share/doc/libxml2-2.9.12/html/tree1.c
+#usr/share/doc/libxml2-2.9.12/html/tree1.res
+#usr/share/doc/libxml2-2.9.12/html/tree2.c
+#usr/share/doc/libxml2-2.9.12/html/tree2.res
+#usr/share/doc/libxml2-2.9.12/html/tst.xml
+#usr/share/doc/libxml2-2.9.12/html/tutorial
+#usr/share/doc/libxml2-2.9.12/html/tutorial/apa.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/apb.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/apc.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/apd.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ape.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/apf.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/apg.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/aph.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/api.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s02.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s03.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s04.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s05.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s06.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s07.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s08.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ar01s09.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/blank.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/1.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/10.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/2.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/3.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/4.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/5.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/6.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/7.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/8.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/callouts/9.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/caution.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/draft.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/home.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/important.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/next.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/note.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/prev.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/tip.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/toc-blank.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/toc-minus.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/toc-plus.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/up.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/images/warning.png
+#usr/share/doc/libxml2-2.9.12/html/tutorial/includeaddattribute.c
+#usr/share/doc/libxml2-2.9.12/html/tutorial/includeaddkeyword.c
+#usr/share/doc/libxml2-2.9.12/html/tutorial/includeconvert.c
+#usr/share/doc/libxml2-2.9.12/html/tutorial/includegetattribute.c
+#usr/share/doc/libxml2-2.9.12/html/tutorial/includekeyword.c
+#usr/share/doc/libxml2-2.9.12/html/tutorial/includexpath.c
+#usr/share/doc/libxml2-2.9.12/html/tutorial/index.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/ix01.html
+#usr/share/doc/libxml2-2.9.12/html/tutorial/xmltutorial.pdf
+#usr/share/doc/libxml2-2.9.12/html/w3c.png
+#usr/share/doc/libxml2-2.9.12/html/writer.xml
+#usr/share/doc/libxml2-2.9.12/html/xml.html
+#usr/share/doc/libxml2-2.9.12/html/xpath1.c
+#usr/share/doc/libxml2-2.9.12/html/xpath1.res
+#usr/share/doc/libxml2-2.9.12/html/xpath2.c
+#usr/share/doc/libxml2-2.9.12/html/xpath2.res
 #usr/share/gtk-doc/html/libxml2
 #usr/share/gtk-doc/html/libxml2/general.html
 #usr/share/gtk-doc/html/libxml2/home.png
index 3c8d144a50d547cd345af2a6ba5a6a860851b135..fc96538abe7e457b69c4a9884e905c3285f8c176 100644 (file)
@@ -26,127 +26,114 @@ usr/bin/xsltproc
 #usr/include/libxslt/xsltexports.h
 #usr/include/libxslt/xsltlocale.h
 #usr/include/libxslt/xsltutils.h
-#usr/lib/libexslt.a
 #usr/lib/libexslt.la
-usr/lib/libexslt.so
+#usr/lib/libexslt.so
 usr/lib/libexslt.so.0
-usr/lib/libexslt.so.0.8.17
+usr/lib/libexslt.so.0.8.20
 #usr/lib/libxslt-plugins
-#usr/lib/libxslt.a
 #usr/lib/libxslt.la
-usr/lib/libxslt.so
+#usr/lib/libxslt.so
 usr/lib/libxslt.so.1
-usr/lib/libxslt.so.1.1.28
+usr/lib/libxslt.so.1.1.34
 #usr/lib/pkgconfig/libexslt.pc
 #usr/lib/pkgconfig/libxslt.pc
 #usr/lib/xsltConf.sh
 #usr/share/aclocal/libxslt.m4
-#usr/share/doc/libxslt-1.1.28
-#usr/share/doc/libxslt-1.1.28/html
-#usr/share/doc/libxslt-1.1.28/html/API.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk0.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk1.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk10.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk11.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk12.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk13.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk2.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk3.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk4.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk5.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk6.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk7.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk8.html
-#usr/share/doc/libxslt-1.1.28/html/APIchunk9.html
-#usr/share/doc/libxslt-1.1.28/html/APIconstructors.html
-#usr/share/doc/libxslt-1.1.28/html/APIfiles.html
-#usr/share/doc/libxslt-1.1.28/html/APIfunctions.html
-#usr/share/doc/libxslt-1.1.28/html/APIsymbols.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/APIchunk0.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/APIconstructors.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/APIfiles.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/APIfunctions.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/APIsymbols.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/bugs.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/docs.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/downloads.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/exslt.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/help.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/index.html
-#usr/share/doc/libxslt-1.1.28/html/EXSLT/intro.html
-#usr/share/doc/libxslt-1.1.28/html/FAQ.html
-#usr/share/doc/libxslt-1.1.28/html/Libxslt-Logo-180x168.gif
-#usr/share/doc/libxslt-1.1.28/html/Libxslt-Logo-90x34.gif
-#usr/share/doc/libxslt-1.1.28/html/bugs.html
-#usr/share/doc/libxslt-1.1.28/html/contexts.gif
-#usr/share/doc/libxslt-1.1.28/html/contribs.html
-#usr/share/doc/libxslt-1.1.28/html/docbook.html
-#usr/share/doc/libxslt-1.1.28/html/docs.html
-#usr/share/doc/libxslt-1.1.28/html/downloads.html
-#usr/share/doc/libxslt-1.1.28/html/extensions.html
-#usr/share/doc/libxslt-1.1.28/html/help.html
-#usr/share/doc/libxslt-1.1.28/html/html
-#usr/share/doc/libxslt-1.1.28/html/html/book1.html
-#usr/share/doc/libxslt-1.1.28/html/html/home.png
-#usr/share/doc/libxslt-1.1.28/html/html/index.html
-#usr/share/doc/libxslt-1.1.28/html/html/left.png
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-attributes.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-documents.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-extensions.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-extra.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-functions.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-imports.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-keys.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-lib.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-namespaces.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-numbersInternals.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-pattern.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-preproc.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-security.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-templates.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-transform.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-variables.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-xslt.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-xsltInternals.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-xsltexports.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-xsltlocale.html
-#usr/share/doc/libxslt-1.1.28/html/html/libxslt-xsltutils.html
-#usr/share/doc/libxslt-1.1.28/html/html/right.png
-#usr/share/doc/libxslt-1.1.28/html/html/up.png
-#usr/share/doc/libxslt-1.1.28/html/index.html
-#usr/share/doc/libxslt-1.1.28/html/internals.html
-#usr/share/doc/libxslt-1.1.28/html/intro.html
-#usr/share/doc/libxslt-1.1.28/html/news.html
-#usr/share/doc/libxslt-1.1.28/html/node.gif
-#usr/share/doc/libxslt-1.1.28/html/object.gif
-#usr/share/doc/libxslt-1.1.28/html/processing.gif
-#usr/share/doc/libxslt-1.1.28/html/python.html
-#usr/share/doc/libxslt-1.1.28/html/redhat.gif
-#usr/share/doc/libxslt-1.1.28/html/smallfootonly.gif
-#usr/share/doc/libxslt-1.1.28/html/stylesheet.gif
-#usr/share/doc/libxslt-1.1.28/html/templates.gif
-#usr/share/doc/libxslt-1.1.28/html/tutorial
-#usr/share/doc/libxslt-1.1.28/html/tutorial/libxslt_tutorial.c
-#usr/share/doc/libxslt-1.1.28/html/tutorial/libxslttutorial.html
-#usr/share/doc/libxslt-1.1.28/html/tutorial/libxslttutorial.xml
-#usr/share/doc/libxslt-1.1.28/html/tutorial2
-#usr/share/doc/libxslt-1.1.28/html/tutorial2/libxslt_pipes.c
-#usr/share/doc/libxslt-1.1.28/html/tutorial2/libxslt_pipes.html
-#usr/share/doc/libxslt-1.1.28/html/tutorial2/libxslt_pipes.xml
-#usr/share/doc/libxslt-1.1.28/html/xslt.html
-#usr/share/doc/libxslt-1.1.28/html/xsltproc.html
-#usr/share/doc/libxslt-1.1.28/html/xsltproc2.html
-#usr/share/doc/libxslt-python-1.1.28
-#usr/share/doc/libxslt-python-1.1.28/TODO
-#usr/share/doc/libxslt-python-1.1.28/examples
-#usr/share/doc/libxslt-python-1.1.28/examples/basic.py
-#usr/share/doc/libxslt-python-1.1.28/examples/exslt.py
-#usr/share/doc/libxslt-python-1.1.28/examples/extelem.py
-#usr/share/doc/libxslt-python-1.1.28/examples/extfunc.py
-#usr/share/doc/libxslt-python-1.1.28/examples/pyxsltproc.py
-#usr/share/doc/libxslt-python-1.1.28/examples/test.xml
-#usr/share/doc/libxslt-python-1.1.28/examples/test.xsl
+#usr/share/doc/libxslt-1.1.34
+#usr/share/doc/libxslt-1.1.34/html
+#usr/share/doc/libxslt-1.1.34/html/API.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk0.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk1.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk10.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk11.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk12.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk2.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk3.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk4.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk5.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk6.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk7.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk8.html
+#usr/share/doc/libxslt-1.1.34/html/APIchunk9.html
+#usr/share/doc/libxslt-1.1.34/html/APIconstructors.html
+#usr/share/doc/libxslt-1.1.34/html/APIfiles.html
+#usr/share/doc/libxslt-1.1.34/html/APIfunctions.html
+#usr/share/doc/libxslt-1.1.34/html/APIsymbols.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/APIchunk0.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/APIconstructors.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/APIfiles.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/APIfunctions.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/APIsymbols.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/bugs.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/docs.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/downloads.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/exslt.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/help.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/index.html
+#usr/share/doc/libxslt-1.1.34/html/EXSLT/intro.html
+#usr/share/doc/libxslt-1.1.34/html/FAQ.html
+#usr/share/doc/libxslt-1.1.34/html/Libxslt-Logo-180x168.gif
+#usr/share/doc/libxslt-1.1.34/html/Libxslt-Logo-90x34.gif
+#usr/share/doc/libxslt-1.1.34/html/bugs.html
+#usr/share/doc/libxslt-1.1.34/html/contexts.gif
+#usr/share/doc/libxslt-1.1.34/html/contribs.html
+#usr/share/doc/libxslt-1.1.34/html/docbook.html
+#usr/share/doc/libxslt-1.1.34/html/docs.html
+#usr/share/doc/libxslt-1.1.34/html/downloads.html
+#usr/share/doc/libxslt-1.1.34/html/extensions.html
+#usr/share/doc/libxslt-1.1.34/html/help.html
+#usr/share/doc/libxslt-1.1.34/html/html
+#usr/share/doc/libxslt-1.1.34/html/html/book1.html
+#usr/share/doc/libxslt-1.1.34/html/html/home.png
+#usr/share/doc/libxslt-1.1.34/html/html/index.html
+#usr/share/doc/libxslt-1.1.34/html/html/left.png
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-attributes.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-documents.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-extensions.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-extra.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-functions.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-imports.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-keys.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-lib.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-namespaces.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-numbersInternals.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-pattern.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-preproc.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-security.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-templates.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-transform.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-variables.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-xslt.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-xsltInternals.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-xsltexports.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-xsltlocale.html
+#usr/share/doc/libxslt-1.1.34/html/html/libxslt-xsltutils.html
+#usr/share/doc/libxslt-1.1.34/html/html/right.png
+#usr/share/doc/libxslt-1.1.34/html/html/up.png
+#usr/share/doc/libxslt-1.1.34/html/index.html
+#usr/share/doc/libxslt-1.1.34/html/internals.html
+#usr/share/doc/libxslt-1.1.34/html/intro.html
+#usr/share/doc/libxslt-1.1.34/html/news.html
+#usr/share/doc/libxslt-1.1.34/html/node.gif
+#usr/share/doc/libxslt-1.1.34/html/object.gif
+#usr/share/doc/libxslt-1.1.34/html/processing.gif
+#usr/share/doc/libxslt-1.1.34/html/python.html
+#usr/share/doc/libxslt-1.1.34/html/redhat.gif
+#usr/share/doc/libxslt-1.1.34/html/smallfootonly.gif
+#usr/share/doc/libxslt-1.1.34/html/stylesheet.gif
+#usr/share/doc/libxslt-1.1.34/html/templates.gif
+#usr/share/doc/libxslt-1.1.34/html/tutorial
+#usr/share/doc/libxslt-1.1.34/html/tutorial/libxslt_tutorial.c
+#usr/share/doc/libxslt-1.1.34/html/tutorial/libxslttutorial.html
+#usr/share/doc/libxslt-1.1.34/html/tutorial/libxslttutorial.xml
+#usr/share/doc/libxslt-1.1.34/html/tutorial2
+#usr/share/doc/libxslt-1.1.34/html/tutorial2/libxslt_pipes.c
+#usr/share/doc/libxslt-1.1.34/html/tutorial2/libxslt_pipes.html
+#usr/share/doc/libxslt-1.1.34/html/tutorial2/libxslt_pipes.xml
+#usr/share/doc/libxslt-1.1.34/html/xslt.html
+#usr/share/doc/libxslt-1.1.34/html/xsltproc.html
+#usr/share/doc/libxslt-1.1.34/html/xsltproc2.html
 #usr/share/man/man1/xsltproc.1
 #usr/share/man/man3/libexslt.3
 #usr/share/man/man3/libxslt.3
index 433b09fc8893de195eafa0ca00571466150fa9b9..f77ef8b700ad2581d6421a512a86f308a6a3e6f7 100644 (file)
@@ -24,8 +24,8 @@
 #usr/include/libyang/tree_schema.h
 #usr/include/libyang/version.h
 #usr/lib/libyang.so
-#usr/lib/libyang.so.2
-#usr/lib/libyang.so.2.1.4
+usr/lib/libyang.so.2
+usr/lib/libyang.so.2.1.4
 #usr/lib/pkgconfig
 #usr/lib/pkgconfig/libyang.pc
 #usr/share/man/man1/yanglint.1
index da35ef6a1e74e1897343b07ce669b72e8d9eab03..17a3ede6656410bd78ea146d66c5d2e7aa274ce5 100644 (file)
@@ -1,7 +1,7 @@
 bin/lspci
 bin/setpci
 lib/libpci.so.3
-lib/libpci.so.3.5.6
+lib/libpci.so.3.7.0
 sbin/update-pciids
 #usr/include/pci
 #usr/include/pci/config.h
index e5b02d1f7cb56cb6c32632f16efc8599a48e7f17..9d3e33496dcede5968252e8834b748b7e454fe42 100644 (file)
 #usr/lib/libpcre2-16.la
 #usr/lib/libpcre2-16.so
 usr/lib/libpcre2-16.so.0
-usr/lib/libpcre2-16.so.0.10.2
+usr/lib/libpcre2-16.so.0.10.4
 #usr/lib/libpcre2-32.la
 #usr/lib/libpcre2-32.so
 usr/lib/libpcre2-32.so.0
-usr/lib/libpcre2-32.so.0.10.2
+usr/lib/libpcre2-32.so.0.10.4
 #usr/lib/libpcre2-8.la
 #usr/lib/libpcre2-8.so
 usr/lib/libpcre2-8.so.0
-usr/lib/libpcre2-8.so.0.10.2
+usr/lib/libpcre2-8.so.0.10.4
 #usr/lib/libpcre2-posix.la
 #usr/lib/libpcre2-posix.so
 usr/lib/libpcre2-posix.so.3
-usr/lib/libpcre2-posix.so.3.0.0
+usr/lib/libpcre2-posix.so.3.0.1
 #usr/lib/pkgconfig/libpcre2-16.pc
 #usr/lib/pkgconfig/libpcre2-32.pc
 #usr/lib/pkgconfig/libpcre2-8.pc
 #usr/lib/pkgconfig/libpcre2-posix.pc
-#usr/share/doc/pcre-pcre2-10.37
-#usr/share/doc/pcre-pcre2-10.37/AUTHORS
-#usr/share/doc/pcre-pcre2-10.37/COPYING
-#usr/share/doc/pcre-pcre2-10.37/ChangeLog
-#usr/share/doc/pcre-pcre2-10.37/LICENCE
-#usr/share/doc/pcre-pcre2-10.37/NEWS
-#usr/share/doc/pcre-pcre2-10.37/README
-#usr/share/doc/pcre-pcre2-10.37/html
-#usr/share/doc/pcre-pcre2-10.37/html/NON-AUTOTOOLS-BUILD.txt
-#usr/share/doc/pcre-pcre2-10.37/html/README.txt
-#usr/share/doc/pcre-pcre2-10.37/html/index.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2-config.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_callout_enumerate.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy_with_tables.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_config.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_converted_pattern_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_dfa_match.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_error_message.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_mark.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_match_data_size.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_count.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_pointer.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_startchar.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_compile.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_free_unused_memory.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_match.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_assign.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create_from_pattern.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_convert.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_info.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_decode.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_encode.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_get_number_of_codes.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_bsr.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_callout.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_character_tables.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_extra_options.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_recursion_guard.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_depth_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_escape.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_separator.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_heap_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_match_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_max_pattern_length.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_newline.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_offset_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_parens_nest_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_memory_management.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_substitute_callout.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substitute.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_byname.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_bynumber.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_byname.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_bynumber.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_byname.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_bynumber.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_get.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_nametable_scan.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_number_from_name.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2api.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2build.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2callout.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2compat.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2convert.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2demo.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2grep.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2jit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2limits.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2matching.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2partial.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2pattern.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2perform.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2posix.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2sample.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2serialize.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2syntax.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2test.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2unicode.html
-#usr/share/doc/pcre-pcre2-10.37/pcre2-config.txt
-#usr/share/doc/pcre-pcre2-10.37/pcre2.txt
-#usr/share/doc/pcre-pcre2-10.37/pcre2grep.txt
-#usr/share/doc/pcre-pcre2-10.37/pcre2test.txt
+#usr/share/doc/pcre-pcre2-10.39
+#usr/share/doc/pcre-pcre2-10.39/AUTHORS
+#usr/share/doc/pcre-pcre2-10.39/COPYING
+#usr/share/doc/pcre-pcre2-10.39/ChangeLog
+#usr/share/doc/pcre-pcre2-10.39/LICENCE
+#usr/share/doc/pcre-pcre2-10.39/NEWS
+#usr/share/doc/pcre-pcre2-10.39/README
+#usr/share/doc/pcre-pcre2-10.39/html
+#usr/share/doc/pcre-pcre2-10.39/html/NON-AUTOTOOLS-BUILD.txt
+#usr/share/doc/pcre-pcre2-10.39/html/README.txt
+#usr/share/doc/pcre-pcre2-10.39/html/index.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2-config.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_callout_enumerate.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy_with_tables.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_config.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_converted_pattern_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_dfa_match.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_error_message.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_mark.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_match_data_size.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_count.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_pointer.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_startchar.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_compile.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_free_unused_memory.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_match.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_assign.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create_from_pattern.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_convert.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_info.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_decode.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_encode.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_get_number_of_codes.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_bsr.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_callout.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_character_tables.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_extra_options.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_recursion_guard.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_depth_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_escape.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_separator.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_heap_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_match_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_max_pattern_length.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_newline.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_offset_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_parens_nest_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_memory_management.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_substitute_callout.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substitute.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_byname.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_bynumber.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_byname.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_bynumber.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_byname.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_bynumber.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_get.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_nametable_scan.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_number_from_name.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2api.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2build.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2callout.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2compat.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2convert.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2demo.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2grep.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2jit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2limits.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2matching.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2partial.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2pattern.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2perform.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2posix.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2sample.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2serialize.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2syntax.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2test.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2unicode.html
+#usr/share/doc/pcre-pcre2-10.39/pcre2-config.txt
+#usr/share/doc/pcre-pcre2-10.39/pcre2.txt
+#usr/share/doc/pcre-pcre2-10.39/pcre2grep.txt
+#usr/share/doc/pcre-pcre2-10.39/pcre2test.txt
 #usr/share/man/man1/pcre2-config.1
 #usr/share/man/man1/pcre2grep.1
 #usr/share/man/man1/pcre2test.1
index c479c36ebe47162e3bdccfb1c67aac76ee087580..ffe058facc6a3b2e4f2fda84e8700fdcdd9f4ab5 100644 (file)
@@ -786,7 +786,7 @@ usr/lib/python3.8/lib-dynload/_ctypes_test.cpython-38-xxxMACHINExxx-linux-gnu.so
 usr/lib/python3.8/lib-dynload/_curses.cpython-38-xxxMACHINExxx-linux-gnu.so
 usr/lib/python3.8/lib-dynload/_curses_panel.cpython-38-xxxMACHINExxx-linux-gnu.so
 usr/lib/python3.8/lib-dynload/_datetime.cpython-38-xxxMACHINExxx-linux-gnu.so
-usr/lib/python3.8/lib-dynload/_dbm.cpython-38-xxxMACHINExxx-linux-gnu_failed.so
+usr/lib/python3.8/lib-dynload/_dbm.cpython-38-xxxMACHINExxx-linux-gnu.so
 usr/lib/python3.8/lib-dynload/_decimal.cpython-38-xxxMACHINExxx-linux-gnu.so
 usr/lib/python3.8/lib-dynload/_elementtree.cpython-38-xxxMACHINExxx-linux-gnu.so
 usr/lib/python3.8/lib-dynload/_gdbm.cpython-38-xxxMACHINExxx-linux-gnu.so
diff --git a/config/rootfiles/common/rust-aho-corasick b/config/rootfiles/common/rust-aho-corasick
new file mode 100644 (file)
index 0000000..8f8ede5
--- /dev/null
@@ -0,0 +1,35 @@
+#usr/share/cargo/registry/aho-corasick-0.7.18
+#usr/share/cargo/registry/aho-corasick-0.7.18/.cargo-checksum.json
+#usr/share/cargo/registry/aho-corasick-0.7.18/COPYING
+#usr/share/cargo/registry/aho-corasick-0.7.18/Cargo.toml
+#usr/share/cargo/registry/aho-corasick-0.7.18/Cargo.toml.deps
+#usr/share/cargo/registry/aho-corasick-0.7.18/DESIGN.md
+#usr/share/cargo/registry/aho-corasick-0.7.18/LICENSE-MIT
+#usr/share/cargo/registry/aho-corasick-0.7.18/README.md
+#usr/share/cargo/registry/aho-corasick-0.7.18/UNLICENSE
+#usr/share/cargo/registry/aho-corasick-0.7.18/rustfmt.toml
+#usr/share/cargo/registry/aho-corasick-0.7.18/src
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/ahocorasick.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/automaton.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/buffer.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/byte_frequencies.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/classes.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/dfa.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/error.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/lib.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/nfa.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/api.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/mod.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/pattern.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/rabinkarp.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/teddy
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/teddy/README.md
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/teddy/compile.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/teddy/mod.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/teddy/runtime.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/tests.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/packed/vector.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/prefilter.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/state_id.rs
+#usr/share/cargo/registry/aho-corasick-0.7.18/src/tests.rs
diff --git a/config/rootfiles/common/rust-autocfg b/config/rootfiles/common/rust-autocfg
new file mode 100644 (file)
index 0000000..d21ecce
--- /dev/null
@@ -0,0 +1,19 @@
+#usr/share/cargo/registry/autocfg-1.0.1
+#usr/share/cargo/registry/autocfg-1.0.1/.cargo-checksum.json
+#usr/share/cargo/registry/autocfg-1.0.1/Cargo.toml
+#usr/share/cargo/registry/autocfg-1.0.1/Cargo.toml.deps
+#usr/share/cargo/registry/autocfg-1.0.1/LICENSE-APACHE
+#usr/share/cargo/registry/autocfg-1.0.1/LICENSE-MIT
+#usr/share/cargo/registry/autocfg-1.0.1/README.md
+#usr/share/cargo/registry/autocfg-1.0.1/examples
+#usr/share/cargo/registry/autocfg-1.0.1/examples/integers.rs
+#usr/share/cargo/registry/autocfg-1.0.1/examples/paths.rs
+#usr/share/cargo/registry/autocfg-1.0.1/examples/traits.rs
+#usr/share/cargo/registry/autocfg-1.0.1/examples/versions.rs
+#usr/share/cargo/registry/autocfg-1.0.1/src
+#usr/share/cargo/registry/autocfg-1.0.1/src/error.rs
+#usr/share/cargo/registry/autocfg-1.0.1/src/lib.rs
+#usr/share/cargo/registry/autocfg-1.0.1/src/tests.rs
+#usr/share/cargo/registry/autocfg-1.0.1/src/version.rs
+#usr/share/cargo/registry/autocfg-1.0.1/tests
+#usr/share/cargo/registry/autocfg-1.0.1/tests/rustflags.rs
diff --git a/config/rootfiles/common/rust-block-buffer b/config/rootfiles/common/rust-block-buffer
new file mode 100644 (file)
index 0000000..6238cf8
--- /dev/null
@@ -0,0 +1,8 @@
+#usr/share/cargo/registry/block-buffer-0.9.0
+#usr/share/cargo/registry/block-buffer-0.9.0/.cargo-checksum.json
+#usr/share/cargo/registry/block-buffer-0.9.0/Cargo.toml
+#usr/share/cargo/registry/block-buffer-0.9.0/Cargo.toml.deps
+#usr/share/cargo/registry/block-buffer-0.9.0/LICENSE-APACHE
+#usr/share/cargo/registry/block-buffer-0.9.0/LICENSE-MIT
+#usr/share/cargo/registry/block-buffer-0.9.0/src
+#usr/share/cargo/registry/block-buffer-0.9.0/src/lib.rs
diff --git a/config/rootfiles/common/rust-cfg-if b/config/rootfiles/common/rust-cfg-if
new file mode 100644 (file)
index 0000000..f1e36da
--- /dev/null
@@ -0,0 +1,11 @@
+#usr/share/cargo/registry/cfg-if-1.0.0
+#usr/share/cargo/registry/cfg-if-1.0.0/.cargo-checksum.json
+#usr/share/cargo/registry/cfg-if-1.0.0/Cargo.toml
+#usr/share/cargo/registry/cfg-if-1.0.0/Cargo.toml.deps
+#usr/share/cargo/registry/cfg-if-1.0.0/LICENSE-APACHE
+#usr/share/cargo/registry/cfg-if-1.0.0/LICENSE-MIT
+#usr/share/cargo/registry/cfg-if-1.0.0/README.md
+#usr/share/cargo/registry/cfg-if-1.0.0/src
+#usr/share/cargo/registry/cfg-if-1.0.0/src/lib.rs
+#usr/share/cargo/registry/cfg-if-1.0.0/tests
+#usr/share/cargo/registry/cfg-if-1.0.0/tests/xcrate.rs
diff --git a/config/rootfiles/common/rust-cipher b/config/rootfiles/common/rust-cipher
new file mode 100644 (file)
index 0000000..51d6c58
--- /dev/null
@@ -0,0 +1,18 @@
+#usr/share/cargo/registry/cipher-0.3.0
+#usr/share/cargo/registry/cipher-0.3.0/.cargo-checksum.json
+#usr/share/cargo/registry/cipher-0.3.0/CHANGELOG.md
+#usr/share/cargo/registry/cipher-0.3.0/Cargo.toml
+#usr/share/cargo/registry/cipher-0.3.0/Cargo.toml.deps
+#usr/share/cargo/registry/cipher-0.3.0/LICENSE-APACHE
+#usr/share/cargo/registry/cipher-0.3.0/LICENSE-MIT
+#usr/share/cargo/registry/cipher-0.3.0/README.md
+#usr/share/cargo/registry/cipher-0.3.0/src
+#usr/share/cargo/registry/cipher-0.3.0/src/block.rs
+#usr/share/cargo/registry/cipher-0.3.0/src/common.rs
+#usr/share/cargo/registry/cipher-0.3.0/src/dev
+#usr/share/cargo/registry/cipher-0.3.0/src/dev.rs
+#usr/share/cargo/registry/cipher-0.3.0/src/dev/block.rs
+#usr/share/cargo/registry/cipher-0.3.0/src/dev/stream.rs
+#usr/share/cargo/registry/cipher-0.3.0/src/errors.rs
+#usr/share/cargo/registry/cipher-0.3.0/src/lib.rs
+#usr/share/cargo/registry/cipher-0.3.0/src/stream.rs
diff --git a/config/rootfiles/common/rust-crossbeam-channel b/config/rootfiles/common/rust-crossbeam-channel
new file mode 100644 (file)
index 0000000..6f3265d
--- /dev/null
@@ -0,0 +1,48 @@
+#usr/share/cargo/registry/crossbeam-channel-0.5.2
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/.cargo-checksum.json
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/CHANGELOG.md
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/Cargo.toml
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/Cargo.toml.deps
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/LICENSE-APACHE
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/LICENSE-MIT
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/LICENSE-THIRD-PARTY
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/README.md
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/benches
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/benches/crossbeam.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/examples
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/examples/fibonacci.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/examples/matching.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/examples/stopwatch.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/channel.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/context.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/counter.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/err.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors/array.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors/at.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors/list.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors/mod.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors/never.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors/tick.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/flavors/zero.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/lib.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/select.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/select_macro.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/utils.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/src/waker.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/after.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/array.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/golang.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/iter.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/list.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/mpsc.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/never.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/ready.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/same_channel.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/select.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/select_macro.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/thread_locals.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/tick.rs
+#usr/share/cargo/registry/crossbeam-channel-0.5.2/tests/zero.rs
diff --git a/config/rootfiles/common/rust-crossbeam-deque b/config/rootfiles/common/rust-crossbeam-deque
new file mode 100644 (file)
index 0000000..6398ccb
--- /dev/null
@@ -0,0 +1,16 @@
+#usr/share/cargo/registry/crossbeam-deque-0.8.1
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/.cargo-checksum.json
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/CHANGELOG.md
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/Cargo.toml
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/Cargo.toml.deps
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/LICENSE-APACHE
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/LICENSE-MIT
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/README.md
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/src
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/src/deque.rs
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/src/lib.rs
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/tests
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/tests/fifo.rs
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/tests/injector.rs
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/tests/lifo.rs
+#usr/share/cargo/registry/crossbeam-deque-0.8.1/tests/steal.rs
diff --git a/config/rootfiles/common/rust-crossbeam-epoch b/config/rootfiles/common/rust-crossbeam-epoch
new file mode 100644 (file)
index 0000000..d4c785a
--- /dev/null
@@ -0,0 +1,31 @@
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/.cargo-checksum.json
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/CHANGELOG.md
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/Cargo.toml
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/Cargo.toml.deps
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/LICENSE-APACHE
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/LICENSE-MIT
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/README.md
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/benches
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/benches/defer.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/benches/flush.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/benches/pin.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/build.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/examples
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/examples/sanitize.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/no_atomic.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/atomic.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/collector.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/default.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/deferred.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/epoch.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/guard.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/internal.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/lib.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/sync
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/sync/list.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/sync/mod.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/src/sync/queue.rs
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/tests
+#usr/share/cargo/registry/crossbeam-epoch-0.9.6/tests/loom.rs
diff --git a/config/rootfiles/common/rust-crossbeam-utils b/config/rootfiles/common/rust-crossbeam-utils
new file mode 100644 (file)
index 0000000..665ac10
--- /dev/null
@@ -0,0 +1,35 @@
+#usr/share/cargo/registry/crossbeam-utils-0.8.6
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/.cargo-checksum.json
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/CHANGELOG.md
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/Cargo.toml
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/Cargo.toml.deps
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/LICENSE-APACHE
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/LICENSE-MIT
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/README.md
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/benches
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/benches/atomic_cell.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/build.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/no_atomic.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/atomic
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/atomic/atomic_cell.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/atomic/consume.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/atomic/mod.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/atomic/seq_lock.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/atomic/seq_lock_wide.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/backoff.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/cache_padded.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/lib.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/sync
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/sync/mod.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/sync/parker.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/sync/sharded_lock.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/sync/wait_group.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/src/thread.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/tests
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/tests/atomic_cell.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/tests/cache_padded.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/tests/parker.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/tests/sharded_lock.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/tests/thread.rs
+#usr/share/cargo/registry/crossbeam-utils-0.8.6/tests/wait_group.rs
diff --git a/config/rootfiles/common/rust-crypto-common b/config/rootfiles/common/rust-crypto-common
new file mode 100644 (file)
index 0000000..05b7528
--- /dev/null
@@ -0,0 +1,10 @@
+#usr/share/cargo/registry/crypto-common-0.1.1
+#usr/share/cargo/registry/crypto-common-0.1.1/.cargo-checksum.json
+#usr/share/cargo/registry/crypto-common-0.1.1/CHANGELOG.md
+#usr/share/cargo/registry/crypto-common-0.1.1/Cargo.toml
+#usr/share/cargo/registry/crypto-common-0.1.1/Cargo.toml.deps
+#usr/share/cargo/registry/crypto-common-0.1.1/LICENSE-APACHE
+#usr/share/cargo/registry/crypto-common-0.1.1/LICENSE-MIT
+#usr/share/cargo/registry/crypto-common-0.1.1/README.md
+#usr/share/cargo/registry/crypto-common-0.1.1/src
+#usr/share/cargo/registry/crypto-common-0.1.1/src/lib.rs
diff --git a/config/rootfiles/common/rust-ctor b/config/rootfiles/common/rust-ctor
new file mode 100644 (file)
index 0000000..b0ba395
--- /dev/null
@@ -0,0 +1,9 @@
+#usr/share/cargo/registry/ctor-0.1.21
+#usr/share/cargo/registry/ctor-0.1.21/.cargo-checksum.json
+#usr/share/cargo/registry/ctor-0.1.21/Cargo.toml
+#usr/share/cargo/registry/ctor-0.1.21/Cargo.toml.deps
+#usr/share/cargo/registry/ctor-0.1.21/LICENSE-APACHE
+#usr/share/cargo/registry/ctor-0.1.21/LICENSE-MIT
+#usr/share/cargo/registry/ctor-0.1.21/src
+#usr/share/cargo/registry/ctor-0.1.21/src/example.rs
+#usr/share/cargo/registry/ctor-0.1.21/src/lib.rs
diff --git a/config/rootfiles/common/rust-digest b/config/rootfiles/common/rust-digest
new file mode 100644 (file)
index 0000000..d0182f1
--- /dev/null
@@ -0,0 +1,17 @@
+#usr/share/cargo/registry/digest-0.9.0
+#usr/share/cargo/registry/digest-0.9.0/.cargo-checksum.json
+#usr/share/cargo/registry/digest-0.9.0/CHANGELOG.md
+#usr/share/cargo/registry/digest-0.9.0/Cargo.toml
+#usr/share/cargo/registry/digest-0.9.0/Cargo.toml.deps
+#usr/share/cargo/registry/digest-0.9.0/LICENSE-APACHE
+#usr/share/cargo/registry/digest-0.9.0/LICENSE-MIT
+#usr/share/cargo/registry/digest-0.9.0/README.md
+#usr/share/cargo/registry/digest-0.9.0/src
+#usr/share/cargo/registry/digest-0.9.0/src/dev.rs
+#usr/share/cargo/registry/digest-0.9.0/src/digest.rs
+#usr/share/cargo/registry/digest-0.9.0/src/dyn_digest.rs
+#usr/share/cargo/registry/digest-0.9.0/src/errors.rs
+#usr/share/cargo/registry/digest-0.9.0/src/fixed.rs
+#usr/share/cargo/registry/digest-0.9.0/src/lib.rs
+#usr/share/cargo/registry/digest-0.9.0/src/variable.rs
+#usr/share/cargo/registry/digest-0.9.0/src/xof.rs
diff --git a/config/rootfiles/common/rust-dirs b/config/rootfiles/common/rust-dirs
new file mode 100644 (file)
index 0000000..b3dfb8b
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/dirs-1.0.5
+#usr/share/cargo/registry/dirs-1.0.5/.cargo-checksum.json
+#usr/share/cargo/registry/dirs-1.0.5/Cargo.toml
+#usr/share/cargo/registry/dirs-1.0.5/Cargo.toml.deps
+#usr/share/cargo/registry/dirs-1.0.5/LICENSE-APACHE
+#usr/share/cargo/registry/dirs-1.0.5/LICENSE-MIT
+#usr/share/cargo/registry/dirs-1.0.5/README.md
+#usr/share/cargo/registry/dirs-1.0.5/src
+#usr/share/cargo/registry/dirs-1.0.5/src/lib.rs
+#usr/share/cargo/registry/dirs-1.0.5/src/lin.rs
+#usr/share/cargo/registry/dirs-1.0.5/src/mac.rs
+#usr/share/cargo/registry/dirs-1.0.5/src/redox.rs
+#usr/share/cargo/registry/dirs-1.0.5/src/unix.rs
+#usr/share/cargo/registry/dirs-1.0.5/src/win.rs
diff --git a/config/rootfiles/common/rust-dissimilar b/config/rootfiles/common/rust-dissimilar
new file mode 100644 (file)
index 0000000..4685d42
--- /dev/null
@@ -0,0 +1,18 @@
+#usr/share/cargo/registry/dissimilar-1.0.3
+#usr/share/cargo/registry/dissimilar-1.0.3/.cargo-checksum.json
+#usr/share/cargo/registry/dissimilar-1.0.3/Cargo.toml
+#usr/share/cargo/registry/dissimilar-1.0.3/Cargo.toml.deps
+#usr/share/cargo/registry/dissimilar-1.0.3/LICENSE-APACHE
+#usr/share/cargo/registry/dissimilar-1.0.3/LICENSE-MIT
+#usr/share/cargo/registry/dissimilar-1.0.3/README.md
+#usr/share/cargo/registry/dissimilar-1.0.3/benches
+#usr/share/cargo/registry/dissimilar-1.0.3/benches/bench.rs
+#usr/share/cargo/registry/dissimilar-1.0.3/benches/document1.txt
+#usr/share/cargo/registry/dissimilar-1.0.3/benches/document2.txt
+#usr/share/cargo/registry/dissimilar-1.0.3/src
+#usr/share/cargo/registry/dissimilar-1.0.3/src/find.rs
+#usr/share/cargo/registry/dissimilar-1.0.3/src/lib.rs
+#usr/share/cargo/registry/dissimilar-1.0.3/src/range.rs
+#usr/share/cargo/registry/dissimilar-1.0.3/src/tests.rs
+#usr/share/cargo/registry/dissimilar-1.0.3/tests
+#usr/share/cargo/registry/dissimilar-1.0.3/tests/test.rs
diff --git a/config/rootfiles/common/rust-either b/config/rootfiles/common/rust-either
new file mode 100644 (file)
index 0000000..f712674
--- /dev/null
@@ -0,0 +1,12 @@
+#usr/share/cargo/registry/either-1.6.1
+#usr/share/cargo/registry/either-1.6.1/.cargo-checksum.json
+#usr/share/cargo/registry/either-1.6.1/Cargo.toml
+#usr/share/cargo/registry/either-1.6.1/Cargo.toml.deps
+#usr/share/cargo/registry/either-1.6.1/LICENSE-APACHE
+#usr/share/cargo/registry/either-1.6.1/LICENSE-MIT
+#usr/share/cargo/registry/either-1.6.1/README-crates.io.md
+#usr/share/cargo/registry/either-1.6.1/README.rst
+#usr/share/cargo/registry/either-1.6.1/src
+#usr/share/cargo/registry/either-1.6.1/src/lib.rs
+#usr/share/cargo/registry/either-1.6.1/src/serde_untagged.rs
+#usr/share/cargo/registry/either-1.6.1/src/serde_untagged_optional.rs
diff --git a/config/rootfiles/common/rust-generic-array b/config/rootfiles/common/rust-generic-array
new file mode 100644 (file)
index 0000000..8824267
--- /dev/null
@@ -0,0 +1,26 @@
+#usr/share/cargo/registry/generic-array-0.14.4
+#usr/share/cargo/registry/generic-array-0.14.4/.cargo-checksum.json
+#usr/share/cargo/registry/generic-array-0.14.4/CHANGELOG.md
+#usr/share/cargo/registry/generic-array-0.14.4/Cargo.toml
+#usr/share/cargo/registry/generic-array-0.14.4/Cargo.toml.deps
+#usr/share/cargo/registry/generic-array-0.14.4/DESIGN.md
+#usr/share/cargo/registry/generic-array-0.14.4/LICENSE
+#usr/share/cargo/registry/generic-array-0.14.4/README.md
+#usr/share/cargo/registry/generic-array-0.14.4/build.rs
+#usr/share/cargo/registry/generic-array-0.14.4/rustfmt.toml
+#usr/share/cargo/registry/generic-array-0.14.4/src
+#usr/share/cargo/registry/generic-array-0.14.4/src/arr.rs
+#usr/share/cargo/registry/generic-array-0.14.4/src/functional.rs
+#usr/share/cargo/registry/generic-array-0.14.4/src/hex.rs
+#usr/share/cargo/registry/generic-array-0.14.4/src/impl_serde.rs
+#usr/share/cargo/registry/generic-array-0.14.4/src/impls.rs
+#usr/share/cargo/registry/generic-array-0.14.4/src/iter.rs
+#usr/share/cargo/registry/generic-array-0.14.4/src/lib.rs
+#usr/share/cargo/registry/generic-array-0.14.4/src/sequence.rs
+#usr/share/cargo/registry/generic-array-0.14.4/tests
+#usr/share/cargo/registry/generic-array-0.14.4/tests/arr.rs
+#usr/share/cargo/registry/generic-array-0.14.4/tests/generics.rs
+#usr/share/cargo/registry/generic-array-0.14.4/tests/hex.rs
+#usr/share/cargo/registry/generic-array-0.14.4/tests/import_name.rs
+#usr/share/cargo/registry/generic-array-0.14.4/tests/iter.rs
+#usr/share/cargo/registry/generic-array-0.14.4/tests/mod.rs
diff --git a/config/rootfiles/common/rust-getrandom b/config/rootfiles/common/rust-getrandom
new file mode 100644 (file)
index 0000000..1f74e64
--- /dev/null
@@ -0,0 +1,38 @@
+#usr/share/cargo/registry/getrandom-0.2.4
+#usr/share/cargo/registry/getrandom-0.2.4/.cargo-checksum.json
+#usr/share/cargo/registry/getrandom-0.2.4/CHANGELOG.md
+#usr/share/cargo/registry/getrandom-0.2.4/Cargo.toml
+#usr/share/cargo/registry/getrandom-0.2.4/Cargo.toml.deps
+#usr/share/cargo/registry/getrandom-0.2.4/LICENSE-APACHE
+#usr/share/cargo/registry/getrandom-0.2.4/LICENSE-MIT
+#usr/share/cargo/registry/getrandom-0.2.4/README.md
+#usr/share/cargo/registry/getrandom-0.2.4/benches
+#usr/share/cargo/registry/getrandom-0.2.4/benches/mod.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src
+#usr/share/cargo/registry/getrandom-0.2.4/src/bsd_arandom.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/custom.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/dragonfly.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/error.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/error_impls.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/fuchsia.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/ios.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/js.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/lib.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/linux_android.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/macos.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/openbsd.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/rdrand.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/solaris_illumos.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/solid.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/use_file.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/util.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/util_libc.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/vxworks.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/wasi.rs
+#usr/share/cargo/registry/getrandom-0.2.4/src/windows.rs
+#usr/share/cargo/registry/getrandom-0.2.4/tests
+#usr/share/cargo/registry/getrandom-0.2.4/tests/common
+#usr/share/cargo/registry/getrandom-0.2.4/tests/common/mod.rs
+#usr/share/cargo/registry/getrandom-0.2.4/tests/custom.rs
+#usr/share/cargo/registry/getrandom-0.2.4/tests/normal.rs
+#usr/share/cargo/registry/getrandom-0.2.4/tests/rdrand.rs
diff --git a/config/rootfiles/common/rust-ghost b/config/rootfiles/common/rust-ghost
new file mode 100644 (file)
index 0000000..7ee6c3b
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/ghost-0.1.2
+#usr/share/cargo/registry/ghost-0.1.2/.cargo-checksum.json
+#usr/share/cargo/registry/ghost-0.1.2/Cargo.toml
+#usr/share/cargo/registry/ghost-0.1.2/Cargo.toml.deps
+#usr/share/cargo/registry/ghost-0.1.2/LICENSE-APACHE
+#usr/share/cargo/registry/ghost-0.1.2/LICENSE-MIT
+#usr/share/cargo/registry/ghost-0.1.2/README.md
+#usr/share/cargo/registry/ghost-0.1.2/src
+#usr/share/cargo/registry/ghost-0.1.2/src/args.rs
+#usr/share/cargo/registry/ghost-0.1.2/src/derive.rs
+#usr/share/cargo/registry/ghost-0.1.2/src/lib.rs
+#usr/share/cargo/registry/ghost-0.1.2/src/parse.rs
+#usr/share/cargo/registry/ghost-0.1.2/src/variance.rs
+#usr/share/cargo/registry/ghost-0.1.2/src/visibility.rs
diff --git a/config/rootfiles/common/rust-glob b/config/rootfiles/common/rust-glob
new file mode 100644 (file)
index 0000000..dffdf57
--- /dev/null
@@ -0,0 +1,11 @@
+#usr/share/cargo/registry/glob-0.3.0
+#usr/share/cargo/registry/glob-0.3.0/.cargo-checksum.json
+#usr/share/cargo/registry/glob-0.3.0/Cargo.toml
+#usr/share/cargo/registry/glob-0.3.0/Cargo.toml.deps
+#usr/share/cargo/registry/glob-0.3.0/LICENSE-APACHE
+#usr/share/cargo/registry/glob-0.3.0/LICENSE-MIT
+#usr/share/cargo/registry/glob-0.3.0/README.md
+#usr/share/cargo/registry/glob-0.3.0/src
+#usr/share/cargo/registry/glob-0.3.0/src/lib.rs
+#usr/share/cargo/registry/glob-0.3.0/tests
+#usr/share/cargo/registry/glob-0.3.0/tests/glob-std.rs
diff --git a/config/rootfiles/common/rust-hex b/config/rootfiles/common/rust-hex
new file mode 100644 (file)
index 0000000..561ed33
--- /dev/null
@@ -0,0 +1,16 @@
+#usr/share/cargo/registry/hex-0.4.3
+#usr/share/cargo/registry/hex-0.4.3/.cargo-checksum.json
+#usr/share/cargo/registry/hex-0.4.3/Cargo.toml
+#usr/share/cargo/registry/hex-0.4.3/Cargo.toml.deps
+#usr/share/cargo/registry/hex-0.4.3/LICENSE-APACHE
+#usr/share/cargo/registry/hex-0.4.3/LICENSE-MIT
+#usr/share/cargo/registry/hex-0.4.3/README.md
+#usr/share/cargo/registry/hex-0.4.3/benches
+#usr/share/cargo/registry/hex-0.4.3/benches/hex.rs
+#usr/share/cargo/registry/hex-0.4.3/src
+#usr/share/cargo/registry/hex-0.4.3/src/error.rs
+#usr/share/cargo/registry/hex-0.4.3/src/lib.rs
+#usr/share/cargo/registry/hex-0.4.3/src/serde.rs
+#usr/share/cargo/registry/hex-0.4.3/tests
+#usr/share/cargo/registry/hex-0.4.3/tests/serde.rs
+#usr/share/cargo/registry/hex-0.4.3/tests/version-number.rs
diff --git a/config/rootfiles/common/rust-home b/config/rootfiles/common/rust-home
new file mode 100644 (file)
index 0000000..227b5f2
--- /dev/null
@@ -0,0 +1,9 @@
+#usr/share/cargo/registry/home-0.5.3
+#usr/share/cargo/registry/home-0.5.3/.cargo-checksum.json
+#usr/share/cargo/registry/home-0.5.3/Cargo.toml
+#usr/share/cargo/registry/home-0.5.3/LICENSE-APACHE
+#usr/share/cargo/registry/home-0.5.3/LICENSE-MIT
+#usr/share/cargo/registry/home-0.5.3/README.md
+#usr/share/cargo/registry/home-0.5.3/src
+#usr/share/cargo/registry/home-0.5.3/src/lib.rs
+#usr/share/cargo/registry/home-0.5.3/src/windows.rs
diff --git a/config/rootfiles/common/rust-indoc b/config/rootfiles/common/rust-indoc
new file mode 100644 (file)
index 0000000..e9a7ce2
--- /dev/null
@@ -0,0 +1,38 @@
+#usr/share/cargo/registry/indoc-1.0.3
+#usr/share/cargo/registry/indoc-1.0.3/.cargo-checksum.json
+#usr/share/cargo/registry/indoc-1.0.3/Cargo.toml
+#usr/share/cargo/registry/indoc-1.0.3/Cargo.toml.deps
+#usr/share/cargo/registry/indoc-1.0.3/LICENSE-APACHE
+#usr/share/cargo/registry/indoc-1.0.3/LICENSE-MIT
+#usr/share/cargo/registry/indoc-1.0.3/README.md
+#usr/share/cargo/registry/indoc-1.0.3/src
+#usr/share/cargo/registry/indoc-1.0.3/src/error.rs
+#usr/share/cargo/registry/indoc-1.0.3/src/expr.rs
+#usr/share/cargo/registry/indoc-1.0.3/src/lib.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests
+#usr/share/cargo/registry/indoc-1.0.3/tests/compiletest.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/test_formatdoc.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/test_indoc.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/test_unindent.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/test_writedoc.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/no-arguments.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/no-arguments.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/non-lit.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/non-lit.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/non-string.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/non-string.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-binary.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-binary.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-extra-arg.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-extra-arg.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-no-arg.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-no-arg.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-no-display.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-no-display.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-no-named-arg.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/printdoc-no-named-arg.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/three-arguments.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/three-arguments.stderr
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/two-arguments.rs
+#usr/share/cargo/registry/indoc-1.0.3/tests/ui/two-arguments.stderr
diff --git a/config/rootfiles/common/rust-indoc-impl b/config/rootfiles/common/rust-indoc-impl
new file mode 100644 (file)
index 0000000..9888c9b
--- /dev/null
@@ -0,0 +1,9 @@
+#usr/share/cargo/registry/indoc-impl-0.3.6
+#usr/share/cargo/registry/indoc-impl-0.3.6/.cargo-checksum.json
+#usr/share/cargo/registry/indoc-impl-0.3.6/Cargo.toml
+#usr/share/cargo/registry/indoc-impl-0.3.6/Cargo.toml.deps
+#usr/share/cargo/registry/indoc-impl-0.3.6/LICENSE-APACHE
+#usr/share/cargo/registry/indoc-impl-0.3.6/LICENSE-MIT
+#usr/share/cargo/registry/indoc-impl-0.3.6/README.md
+#usr/share/cargo/registry/indoc-impl-0.3.6/src
+#usr/share/cargo/registry/indoc-impl-0.3.6/src/lib.rs
diff --git a/config/rootfiles/common/rust-instant b/config/rootfiles/common/rust-instant
new file mode 100644 (file)
index 0000000..1e8aee1
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/instant-0.1.12
+#usr/share/cargo/registry/instant-0.1.12/.cargo-checksum.json
+#usr/share/cargo/registry/instant-0.1.12/AUTHORS
+#usr/share/cargo/registry/instant-0.1.12/CHANGELOGS.md
+#usr/share/cargo/registry/instant-0.1.12/Cargo.toml
+#usr/share/cargo/registry/instant-0.1.12/Cargo.toml.deps
+#usr/share/cargo/registry/instant-0.1.12/LICENSE
+#usr/share/cargo/registry/instant-0.1.12/README.md
+#usr/share/cargo/registry/instant-0.1.12/src
+#usr/share/cargo/registry/instant-0.1.12/src/lib.rs
+#usr/share/cargo/registry/instant-0.1.12/src/native.rs
+#usr/share/cargo/registry/instant-0.1.12/src/wasm.rs
+#usr/share/cargo/registry/instant-0.1.12/tests
+#usr/share/cargo/registry/instant-0.1.12/tests/wasm.rs
diff --git a/config/rootfiles/common/rust-inventory b/config/rootfiles/common/rust-inventory
new file mode 100644 (file)
index 0000000..3ac1728
--- /dev/null
@@ -0,0 +1,11 @@
+#usr/share/cargo/registry/inventory-0.1.4
+#usr/share/cargo/registry/inventory-0.1.4/.cargo-checksum.json
+#usr/share/cargo/registry/inventory-0.1.4/Cargo.toml
+#usr/share/cargo/registry/inventory-0.1.4/Cargo.toml.deps
+#usr/share/cargo/registry/inventory-0.1.4/LICENSE-APACHE
+#usr/share/cargo/registry/inventory-0.1.4/LICENSE-MIT
+#usr/share/cargo/registry/inventory-0.1.4/README.md
+#usr/share/cargo/registry/inventory-0.1.4/examples
+#usr/share/cargo/registry/inventory-0.1.4/examples/flags.rs
+#usr/share/cargo/registry/inventory-0.1.4/src
+#usr/share/cargo/registry/inventory-0.1.4/src/lib.rs
diff --git a/config/rootfiles/common/rust-inventory-impl b/config/rootfiles/common/rust-inventory-impl
new file mode 100644 (file)
index 0000000..dbdbd59
--- /dev/null
@@ -0,0 +1,6 @@
+#usr/share/cargo/registry/inventory-impl-0.1.4
+#usr/share/cargo/registry/inventory-impl-0.1.4/.cargo-checksum.json
+#usr/share/cargo/registry/inventory-impl-0.1.4/Cargo.toml
+#usr/share/cargo/registry/inventory-impl-0.1.4/Cargo.toml.deps
+#usr/share/cargo/registry/inventory-impl-0.1.4/src
+#usr/share/cargo/registry/inventory-impl-0.1.4/src/lib.rs
diff --git a/config/rootfiles/common/rust-itoa b/config/rootfiles/common/rust-itoa
new file mode 100644 (file)
index 0000000..7993a7e
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/itoa-1.0.1
+#usr/share/cargo/registry/itoa-1.0.1/.cargo-checksum.json
+#usr/share/cargo/registry/itoa-1.0.1/Cargo.toml
+#usr/share/cargo/registry/itoa-1.0.1/Cargo.toml.deps
+#usr/share/cargo/registry/itoa-1.0.1/LICENSE-APACHE
+#usr/share/cargo/registry/itoa-1.0.1/LICENSE-MIT
+#usr/share/cargo/registry/itoa-1.0.1/README.md
+#usr/share/cargo/registry/itoa-1.0.1/benches
+#usr/share/cargo/registry/itoa-1.0.1/benches/bench.rs
+#usr/share/cargo/registry/itoa-1.0.1/src
+#usr/share/cargo/registry/itoa-1.0.1/src/lib.rs
+#usr/share/cargo/registry/itoa-1.0.1/src/udiv128.rs
+#usr/share/cargo/registry/itoa-1.0.1/tests
+#usr/share/cargo/registry/itoa-1.0.1/tests/test.rs
diff --git a/config/rootfiles/common/rust-lazy-static b/config/rootfiles/common/rust-lazy-static
new file mode 100644 (file)
index 0000000..eef471e
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/lazy-static-1.4.0
+#usr/share/cargo/registry/lazy-static-1.4.0/.cargo-checksum.json
+#usr/share/cargo/registry/lazy-static-1.4.0/Cargo.toml
+#usr/share/cargo/registry/lazy-static-1.4.0/Cargo.toml.deps
+#usr/share/cargo/registry/lazy-static-1.4.0/LICENSE-APACHE
+#usr/share/cargo/registry/lazy-static-1.4.0/LICENSE-MIT
+#usr/share/cargo/registry/lazy-static-1.4.0/README.md
+#usr/share/cargo/registry/lazy-static-1.4.0/src
+#usr/share/cargo/registry/lazy-static-1.4.0/src/core_lazy.rs
+#usr/share/cargo/registry/lazy-static-1.4.0/src/inline_lazy.rs
+#usr/share/cargo/registry/lazy-static-1.4.0/src/lib.rs
+#usr/share/cargo/registry/lazy-static-1.4.0/tests
+#usr/share/cargo/registry/lazy-static-1.4.0/tests/no_std.rs
+#usr/share/cargo/registry/lazy-static-1.4.0/tests/test.rs
diff --git a/config/rootfiles/common/rust-libc b/config/rootfiles/common/rust-libc
new file mode 100644 (file)
index 0000000..c7ae517
--- /dev/null
@@ -0,0 +1,277 @@
+#usr/share/cargo/registry/libc-0.2.108
+#usr/share/cargo/registry/libc-0.2.108/.cargo-checksum.json
+#usr/share/cargo/registry/libc-0.2.108/CONTRIBUTING.md
+#usr/share/cargo/registry/libc-0.2.108/Cargo.toml
+#usr/share/cargo/registry/libc-0.2.108/Cargo.toml.deps
+#usr/share/cargo/registry/libc-0.2.108/LICENSE-APACHE
+#usr/share/cargo/registry/libc-0.2.108/LICENSE-MIT
+#usr/share/cargo/registry/libc-0.2.108/README.md
+#usr/share/cargo/registry/libc-0.2.108/build.rs
+#usr/share/cargo/registry/libc-0.2.108/rustfmt.toml
+#usr/share/cargo/registry/libc-0.2.108/src
+#usr/share/cargo/registry/libc-0.2.108/src/fixed_width_ints.rs
+#usr/share/cargo/registry/libc-0.2.108/src/fuchsia
+#usr/share/cargo/registry/libc-0.2.108/src/fuchsia/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/fuchsia/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/fuchsia/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/fuchsia/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/fuchsia/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/hermit
+#usr/share/cargo/registry/libc-0.2.108/src/hermit/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/hermit/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/hermit/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/lib.rs
+#usr/share/cargo/registry/libc-0.2.108/src/macros.rs
+#usr/share/cargo/registry/libc-0.2.108/src/psp.rs
+#usr/share/cargo/registry/libc-0.2.108/src/sgx.rs
+#usr/share/cargo/registry/libc-0.2.108/src/solid
+#usr/share/cargo/registry/libc-0.2.108/src/solid/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/solid/arm.rs
+#usr/share/cargo/registry/libc-0.2.108/src/solid/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/switch.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix
+#usr/share/cargo/registry/libc-0.2.108/src/unix/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b32
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b32/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b32/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/aarch64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/aarch64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/aarch64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/x86_64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/x86_64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/b64/x86_64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/apple/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/dragonfly
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/dragonfly/errno.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/dragonfly/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/arm.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd11
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd12
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd13
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd14
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/powerpc.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/x86.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/x86_64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/freebsdlike/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd/arm.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd/powerpc.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd/sparc64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd/x86.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/netbsd/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/openbsd
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/openbsd/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/openbsd/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/openbsd/sparc64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/openbsd/x86.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/bsd/netbsdlike/openbsd/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/haiku
+#usr/share/cargo/registry/libc-0.2.108/src/unix/haiku/b32.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/haiku/b64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/haiku/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/haiku/native.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/haiku/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/hermit
+#usr/share/cargo/registry/libc-0.2.108/src/unix/hermit/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/hermit/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/hermit/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b32
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b32/arm.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b32/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b32/x86
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b32/x86/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b32/x86/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64/aarch64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64/aarch64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64/aarch64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64/x86_64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64/x86_64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/b64/x86_64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/android/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/emscripten
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/emscripten/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/emscripten/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/emscripten/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/generic
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/generic/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/mips
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/mips/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/powerpc
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/powerpc/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/sparc
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/arch/sparc/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/arm
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/arm/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/mips
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/mips/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/mips/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/powerpc.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/riscv32
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/sparc
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/sparc/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/x86
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/x86/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b32/x86/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/aarch64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/mips64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/mips64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/powerpc64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/riscv64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/s390x.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/sparc64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/x86_64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/gnu/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/arm
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/arm/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/hexagon.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/mips
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/mips/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/powerpc.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/x86
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/x86/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/aarch64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/aarch64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/mips64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/powerpc64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/riscv64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/s390x.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/x86_64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/x86_64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/musl/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/non_exhaustive.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/arm
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/arm/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/arm/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/arm/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips32
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mips/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/x86_64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/x86_64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/linux/uclibc/x86_64/other.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/linux_like/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/aarch64
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/aarch64/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/arm
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/arm/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/espidf
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/espidf/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/powerpc
+#usr/share/cargo/registry/libc-0.2.108/src/unix/newlib/powerpc/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/no_align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/redox
+#usr/share/cargo/registry/libc-0.2.108/src/unix/redox/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/solarish
+#usr/share/cargo/registry/libc-0.2.108/src/unix/solarish/compat.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/solarish/illumos.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/solarish/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/solarish/solaris.rs
+#usr/share/cargo/registry/libc-0.2.108/src/unix/solarish/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks/aarch64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks/arm.rs
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks/powerpc.rs
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks/powerpc64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks/x86.rs
+#usr/share/cargo/registry/libc-0.2.108/src/vxworks/x86_64.rs
+#usr/share/cargo/registry/libc-0.2.108/src/wasi.rs
+#usr/share/cargo/registry/libc-0.2.108/src/windows
+#usr/share/cargo/registry/libc-0.2.108/src/windows/gnu
+#usr/share/cargo/registry/libc-0.2.108/src/windows/gnu/align.rs
+#usr/share/cargo/registry/libc-0.2.108/src/windows/gnu/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/windows/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/src/windows/msvc
+#usr/share/cargo/registry/libc-0.2.108/src/windows/msvc/mod.rs
+#usr/share/cargo/registry/libc-0.2.108/tests
+#usr/share/cargo/registry/libc-0.2.108/tests/const_fn.rs
diff --git a/config/rootfiles/common/rust-lock_api b/config/rootfiles/common/rust-lock_api
new file mode 100644 (file)
index 0000000..5cee3ee
--- /dev/null
@@ -0,0 +1,11 @@
+#usr/share/cargo/registry/lock_api-0.4.5
+#usr/share/cargo/registry/lock_api-0.4.5/.cargo-checksum.json
+#usr/share/cargo/registry/lock_api-0.4.5/Cargo.toml
+#usr/share/cargo/registry/lock_api-0.4.5/Cargo.toml.deps
+#usr/share/cargo/registry/lock_api-0.4.5/LICENSE-APACHE
+#usr/share/cargo/registry/lock_api-0.4.5/LICENSE-MIT
+#usr/share/cargo/registry/lock_api-0.4.5/src
+#usr/share/cargo/registry/lock_api-0.4.5/src/lib.rs
+#usr/share/cargo/registry/lock_api-0.4.5/src/mutex.rs
+#usr/share/cargo/registry/lock_api-0.4.5/src/remutex.rs
+#usr/share/cargo/registry/lock_api-0.4.5/src/rwlock.rs
diff --git a/config/rootfiles/common/rust-log b/config/rootfiles/common/rust-log
new file mode 100644 (file)
index 0000000..8512ab6
--- /dev/null
@@ -0,0 +1,22 @@
+#usr/share/cargo/registry/log-0.4.14
+#usr/share/cargo/registry/log-0.4.14/.cargo-checksum.json
+#usr/share/cargo/registry/log-0.4.14/CHANGELOG.md
+#usr/share/cargo/registry/log-0.4.14/Cargo.toml
+#usr/share/cargo/registry/log-0.4.14/Cargo.toml.deps
+#usr/share/cargo/registry/log-0.4.14/LICENSE-APACHE
+#usr/share/cargo/registry/log-0.4.14/LICENSE-MIT
+#usr/share/cargo/registry/log-0.4.14/README.md
+#usr/share/cargo/registry/log-0.4.14/benches
+#usr/share/cargo/registry/log-0.4.14/benches/value.rs
+#usr/share/cargo/registry/log-0.4.14/build.rs
+#usr/share/cargo/registry/log-0.4.14/src
+#usr/share/cargo/registry/log-0.4.14/src/kv
+#usr/share/cargo/registry/log-0.4.14/src/kv/error.rs
+#usr/share/cargo/registry/log-0.4.14/src/kv/key.rs
+#usr/share/cargo/registry/log-0.4.14/src/kv/mod.rs
+#usr/share/cargo/registry/log-0.4.14/src/kv/source.rs
+#usr/share/cargo/registry/log-0.4.14/src/kv/value.rs
+#usr/share/cargo/registry/log-0.4.14/src/lib.rs
+#usr/share/cargo/registry/log-0.4.14/src/macros.rs
+#usr/share/cargo/registry/log-0.4.14/src/serde.rs
+#usr/share/cargo/registry/log-0.4.14/triagebot.toml
diff --git a/config/rootfiles/common/rust-memchr b/config/rootfiles/common/rust-memchr
new file mode 100644 (file)
index 0000000..bb50855
--- /dev/null
@@ -0,0 +1,56 @@
+#usr/share/cargo/registry/memchr-2.4.1
+#usr/share/cargo/registry/memchr-2.4.1/.cargo-checksum.json
+#usr/share/cargo/registry/memchr-2.4.1/COPYING
+#usr/share/cargo/registry/memchr-2.4.1/Cargo.toml
+#usr/share/cargo/registry/memchr-2.4.1/Cargo.toml.deps
+#usr/share/cargo/registry/memchr-2.4.1/LICENSE-MIT
+#usr/share/cargo/registry/memchr-2.4.1/README.md
+#usr/share/cargo/registry/memchr-2.4.1/UNLICENSE
+#usr/share/cargo/registry/memchr-2.4.1/build.rs
+#usr/share/cargo/registry/memchr-2.4.1/rustfmt.toml
+#usr/share/cargo/registry/memchr-2.4.1/scripts
+#usr/share/cargo/registry/memchr-2.4.1/scripts/make-byte-frequency-table
+#usr/share/cargo/registry/memchr-2.4.1/src
+#usr/share/cargo/registry/memchr-2.4.1/src/cow.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/lib.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/c.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/fallback.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/iter.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/naive.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/x86
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/x86/avx.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/x86/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/x86/sse2.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memchr/x86/sse42.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/byte_frequencies.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/genericsimd.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter/fallback.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter/genericsimd.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter/x86
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter/x86/avx.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter/x86/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/prefilter/x86/sse.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/rabinkarp.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/rarebytes.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/twoway.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/util.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/vector.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/x86
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/x86/avx.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/x86/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/memmem/x86/sse.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/tests
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/memchr
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/memchr/iter.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/memchr/memchr.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/memchr/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/memchr/simple.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/memchr/testdata.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/mod.rs
+#usr/share/cargo/registry/memchr-2.4.1/src/tests/x86_64-soft_float.json
diff --git a/config/rootfiles/common/rust-memoffset b/config/rootfiles/common/rust-memoffset
new file mode 100644 (file)
index 0000000..038c2cf
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/memoffset-0.6.5
+#usr/share/cargo/registry/memoffset-0.6.5/.cargo-checksum.json
+#usr/share/cargo/registry/memoffset-0.6.5/Cargo.toml
+#usr/share/cargo/registry/memoffset-0.6.5/Cargo.toml.deps
+#usr/share/cargo/registry/memoffset-0.6.5/LICENSE
+#usr/share/cargo/registry/memoffset-0.6.5/README.md
+#usr/share/cargo/registry/memoffset-0.6.5/build.rs
+#usr/share/cargo/registry/memoffset-0.6.5/ci
+#usr/share/cargo/registry/memoffset-0.6.5/ci/miri.sh
+#usr/share/cargo/registry/memoffset-0.6.5/src
+#usr/share/cargo/registry/memoffset-0.6.5/src/lib.rs
+#usr/share/cargo/registry/memoffset-0.6.5/src/offset_of.rs
+#usr/share/cargo/registry/memoffset-0.6.5/src/raw_field.rs
+#usr/share/cargo/registry/memoffset-0.6.5/src/span_of.rs
diff --git a/config/rootfiles/common/rust-num_cpus b/config/rootfiles/common/rust-num_cpus
new file mode 100644 (file)
index 0000000..8a2c706
--- /dev/null
@@ -0,0 +1,35 @@
+#usr/share/cargo/registry/num_cpus-1.13.1
+#usr/share/cargo/registry/num_cpus-1.13.1/.cargo-checksum.json
+#usr/share/cargo/registry/num_cpus-1.13.1/CHANGELOG.md
+#usr/share/cargo/registry/num_cpus-1.13.1/CONTRIBUTING.md
+#usr/share/cargo/registry/num_cpus-1.13.1/Cargo.toml
+#usr/share/cargo/registry/num_cpus-1.13.1/Cargo.toml.deps
+#usr/share/cargo/registry/num_cpus-1.13.1/LICENSE-APACHE
+#usr/share/cargo/registry/num_cpus-1.13.1/LICENSE-MIT
+#usr/share/cargo/registry/num_cpus-1.13.1/README.md
+#usr/share/cargo/registry/num_cpus-1.13.1/ci
+#usr/share/cargo/registry/num_cpus-1.13.1/ci/cgroups
+#usr/share/cargo/registry/num_cpus-1.13.1/ci/cgroups/Dockerfile
+#usr/share/cargo/registry/num_cpus-1.13.1/examples
+#usr/share/cargo/registry/num_cpus-1.13.1/examples/values.rs
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/ceil
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/ceil/cpu.cfs_period_us
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/ceil/cpu.cfs_quota_us
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/good
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/good/cpu.cfs_period_us
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/good/cpu.cfs_quota_us
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/zero-period
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/zero-period/cpu.cfs_period_us
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/cgroups/zero-period/cpu.cfs_quota_us
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/proc
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/proc/cgroups
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/proc/cgroups/cgroup
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/proc/cgroups/mountinfo
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/proc/cgroups/mountinfo_multi_opt
+#usr/share/cargo/registry/num_cpus-1.13.1/fixtures/cgroups/proc/cgroups/mountinfo_zero_opt
+#usr/share/cargo/registry/num_cpus-1.13.1/src
+#usr/share/cargo/registry/num_cpus-1.13.1/src/lib.rs
+#usr/share/cargo/registry/num_cpus-1.13.1/src/linux.rs
diff --git a/config/rootfiles/common/rust-once_cell b/config/rootfiles/common/rust-once_cell
new file mode 100644 (file)
index 0000000..d0b2c74
--- /dev/null
@@ -0,0 +1,24 @@
+#usr/share/cargo/registry/once_cell-1.9.0
+#usr/share/cargo/registry/once_cell-1.9.0/.cargo-checksum.json
+#usr/share/cargo/registry/once_cell-1.9.0/CHANGELOG.md
+#usr/share/cargo/registry/once_cell-1.9.0/Cargo.toml
+#usr/share/cargo/registry/once_cell-1.9.0/Cargo.toml.deps
+#usr/share/cargo/registry/once_cell-1.9.0/LICENSE-APACHE
+#usr/share/cargo/registry/once_cell-1.9.0/LICENSE-MIT
+#usr/share/cargo/registry/once_cell-1.9.0/README.md
+#usr/share/cargo/registry/once_cell-1.9.0/bors.toml
+#usr/share/cargo/registry/once_cell-1.9.0/examples
+#usr/share/cargo/registry/once_cell-1.9.0/examples/bench.rs
+#usr/share/cargo/registry/once_cell-1.9.0/examples/bench_acquire.rs
+#usr/share/cargo/registry/once_cell-1.9.0/examples/bench_vs_lazy_static.rs
+#usr/share/cargo/registry/once_cell-1.9.0/examples/lazy_static.rs
+#usr/share/cargo/registry/once_cell-1.9.0/examples/reentrant_init_deadlocks.rs
+#usr/share/cargo/registry/once_cell-1.9.0/examples/regex.rs
+#usr/share/cargo/registry/once_cell-1.9.0/examples/test_synchronization.rs
+#usr/share/cargo/registry/once_cell-1.9.0/src
+#usr/share/cargo/registry/once_cell-1.9.0/src/imp_pl.rs
+#usr/share/cargo/registry/once_cell-1.9.0/src/imp_std.rs
+#usr/share/cargo/registry/once_cell-1.9.0/src/lib.rs
+#usr/share/cargo/registry/once_cell-1.9.0/src/race.rs
+#usr/share/cargo/registry/once_cell-1.9.0/tests
+#usr/share/cargo/registry/once_cell-1.9.0/tests/it.rs
diff --git a/config/rootfiles/common/rust-parking_lot b/config/rootfiles/common/rust-parking_lot
new file mode 100644 (file)
index 0000000..f749b64
--- /dev/null
@@ -0,0 +1,25 @@
+#usr/share/cargo/registry/parking_lot-0.11.2
+#usr/share/cargo/registry/parking_lot-0.11.2/.cargo-checksum.json
+#usr/share/cargo/registry/parking_lot-0.11.2/CHANGELOG.md
+#usr/share/cargo/registry/parking_lot-0.11.2/Cargo.toml
+#usr/share/cargo/registry/parking_lot-0.11.2/Cargo.toml.deps
+#usr/share/cargo/registry/parking_lot-0.11.2/LICENSE-APACHE
+#usr/share/cargo/registry/parking_lot-0.11.2/LICENSE-MIT
+#usr/share/cargo/registry/parking_lot-0.11.2/README.md
+#usr/share/cargo/registry/parking_lot-0.11.2/bors.toml
+#usr/share/cargo/registry/parking_lot-0.11.2/src
+#usr/share/cargo/registry/parking_lot-0.11.2/src/condvar.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/deadlock.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/elision.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/fair_mutex.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/lib.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/mutex.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/once.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/raw_fair_mutex.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/raw_mutex.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/raw_rwlock.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/remutex.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/rwlock.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/src/util.rs
+#usr/share/cargo/registry/parking_lot-0.11.2/tests
+#usr/share/cargo/registry/parking_lot-0.11.2/tests/issue_203.rs
diff --git a/config/rootfiles/common/rust-parking_lot_core b/config/rootfiles/common/rust-parking_lot_core
new file mode 100644 (file)
index 0000000..01fd241
--- /dev/null
@@ -0,0 +1,26 @@
+#usr/share/cargo/registry/parking_lot_core-0.8.5
+#usr/share/cargo/registry/parking_lot_core-0.8.5/.cargo-checksum.json
+#usr/share/cargo/registry/parking_lot_core-0.8.5/Cargo.toml
+#usr/share/cargo/registry/parking_lot_core-0.8.5/Cargo.toml.deps
+#usr/share/cargo/registry/parking_lot_core-0.8.5/LICENSE-APACHE
+#usr/share/cargo/registry/parking_lot_core-0.8.5/LICENSE-MIT
+#usr/share/cargo/registry/parking_lot_core-0.8.5/build.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/lib.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/parking_lot.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/spinwait.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/generic.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/linux.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/mod.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/redox.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/sgx.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/unix.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/wasm.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/wasm_atomic.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/windows
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/windows/keyed_event.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/windows/mod.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/thread_parker/windows/waitaddress.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/util.rs
+#usr/share/cargo/registry/parking_lot_core-0.8.5/src/word_lock.rs
diff --git a/config/rootfiles/common/rust-paste b/config/rootfiles/common/rust-paste
new file mode 100644 (file)
index 0000000..af538d3
--- /dev/null
@@ -0,0 +1,47 @@
+#usr/share/cargo/registry/paste-1.0.3
+#usr/share/cargo/registry/paste-1.0.3/.cargo-checksum.json
+#usr/share/cargo/registry/paste-1.0.3/Cargo.toml
+#usr/share/cargo/registry/paste-1.0.3/Cargo.toml.deps
+#usr/share/cargo/registry/paste-1.0.3/LICENSE-APACHE
+#usr/share/cargo/registry/paste-1.0.3/LICENSE-MIT
+#usr/share/cargo/registry/paste-1.0.3/README.md
+#usr/share/cargo/registry/paste-1.0.3/src
+#usr/share/cargo/registry/paste-1.0.3/src/attr.rs
+#usr/share/cargo/registry/paste-1.0.3/src/error.rs
+#usr/share/cargo/registry/paste-1.0.3/src/lib.rs
+#usr/share/cargo/registry/paste-1.0.3/src/segment.rs
+#usr/share/cargo/registry/paste-1.0.3/tests
+#usr/share/cargo/registry/paste-1.0.3/tests/compiletest.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/test_attr.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/test_doc.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/test_expr.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/test_item.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/case-warning.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/case-warning.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-empty.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-empty.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-non-string.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-non-string.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-suffix.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-suffix.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-unexpected.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/env-unexpected.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/invalid-ident.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/invalid-ident.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/missing-paren-on-env.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/missing-paren-on-env.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/no-env-var.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/no-env-var.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/no-ident-after-colon.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/no-ident-after-colon.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unexpected-group.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unexpected-group.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unexpected-modifier.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unexpected-modifier.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unexpected-punct.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unexpected-punct.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unsupported-literal.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unsupported-literal.stderr
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unsupported-modifier.rs
+#usr/share/cargo/registry/paste-1.0.3/tests/ui/unsupported-modifier.stderr
diff --git a/config/rootfiles/common/rust-paste-impl b/config/rootfiles/common/rust-paste-impl
new file mode 100644 (file)
index 0000000..9cb1e48
--- /dev/null
@@ -0,0 +1,10 @@
+#usr/share/cargo/registry/paste-impl-0.1.18
+#usr/share/cargo/registry/paste-impl-0.1.18/.cargo-checksum.json
+#usr/share/cargo/registry/paste-impl-0.1.18/Cargo.toml
+#usr/share/cargo/registry/paste-impl-0.1.18/Cargo.toml.deps
+#usr/share/cargo/registry/paste-impl-0.1.18/LICENSE-APACHE
+#usr/share/cargo/registry/paste-impl-0.1.18/LICENSE-MIT
+#usr/share/cargo/registry/paste-impl-0.1.18/src
+#usr/share/cargo/registry/paste-impl-0.1.18/src/enum_hack.rs
+#usr/share/cargo/registry/paste-impl-0.1.18/src/error.rs
+#usr/share/cargo/registry/paste-impl-0.1.18/src/lib.rs
diff --git a/config/rootfiles/common/rust-pest b/config/rootfiles/common/rust-pest
new file mode 100644 (file)
index 0000000..611272e
--- /dev/null
@@ -0,0 +1,34 @@
+#usr/share/cargo/registry/pest-2.1.3
+#usr/share/cargo/registry/pest-2.1.3/.cargo-checksum.json
+#usr/share/cargo/registry/pest-2.1.3/Cargo.toml
+#usr/share/cargo/registry/pest-2.1.3/Cargo.toml.deps
+#usr/share/cargo/registry/pest-2.1.3/LICENSE-APACHE
+#usr/share/cargo/registry/pest-2.1.3/LICENSE-MIT
+#usr/share/cargo/registry/pest-2.1.3/_README.md
+#usr/share/cargo/registry/pest-2.1.3/examples
+#usr/share/cargo/registry/pest-2.1.3/examples/parens.rs
+#usr/share/cargo/registry/pest-2.1.3/src
+#usr/share/cargo/registry/pest-2.1.3/src/error.rs
+#usr/share/cargo/registry/pest-2.1.3/src/iterators
+#usr/share/cargo/registry/pest-2.1.3/src/iterators/flat_pairs.rs
+#usr/share/cargo/registry/pest-2.1.3/src/iterators/mod.rs
+#usr/share/cargo/registry/pest-2.1.3/src/iterators/pair.rs
+#usr/share/cargo/registry/pest-2.1.3/src/iterators/pairs.rs
+#usr/share/cargo/registry/pest-2.1.3/src/iterators/queueable_token.rs
+#usr/share/cargo/registry/pest-2.1.3/src/iterators/tokens.rs
+#usr/share/cargo/registry/pest-2.1.3/src/lib.rs
+#usr/share/cargo/registry/pest-2.1.3/src/macros.rs
+#usr/share/cargo/registry/pest-2.1.3/src/parser.rs
+#usr/share/cargo/registry/pest-2.1.3/src/parser_state.rs
+#usr/share/cargo/registry/pest-2.1.3/src/position.rs
+#usr/share/cargo/registry/pest-2.1.3/src/prec_climber.rs
+#usr/share/cargo/registry/pest-2.1.3/src/span.rs
+#usr/share/cargo/registry/pest-2.1.3/src/stack.rs
+#usr/share/cargo/registry/pest-2.1.3/src/token.rs
+#usr/share/cargo/registry/pest-2.1.3/src/unicode
+#usr/share/cargo/registry/pest-2.1.3/src/unicode/binary.rs
+#usr/share/cargo/registry/pest-2.1.3/src/unicode/category.rs
+#usr/share/cargo/registry/pest-2.1.3/src/unicode/mod.rs
+#usr/share/cargo/registry/pest-2.1.3/tests
+#usr/share/cargo/registry/pest-2.1.3/tests/calculator.rs
+#usr/share/cargo/registry/pest-2.1.3/tests/json.rs
diff --git a/config/rootfiles/common/rust-ppv-lite86 b/config/rootfiles/common/rust-ppv-lite86
new file mode 100644 (file)
index 0000000..041e1e4
--- /dev/null
@@ -0,0 +1,15 @@
+#usr/share/cargo/registry/ppv-lite86-0.2.16
+#usr/share/cargo/registry/ppv-lite86-0.2.16/.cargo-checksum.json
+#usr/share/cargo/registry/ppv-lite86-0.2.16/CHANGELOG.md
+#usr/share/cargo/registry/ppv-lite86-0.2.16/Cargo.toml
+#usr/share/cargo/registry/ppv-lite86-0.2.16/Cargo.toml.deps
+#usr/share/cargo/registry/ppv-lite86-0.2.16/LICENSE-APACHE
+#usr/share/cargo/registry/ppv-lite86-0.2.16/LICENSE-MIT
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src/generic.rs
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src/lib.rs
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src/soft.rs
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src/types.rs
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src/x86_64
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src/x86_64/mod.rs
+#usr/share/cargo/registry/ppv-lite86-0.2.16/src/x86_64/sse2.rs
diff --git a/config/rootfiles/common/rust-proc-macro-hack b/config/rootfiles/common/rust-proc-macro-hack
new file mode 100644 (file)
index 0000000..91b149b
--- /dev/null
@@ -0,0 +1,25 @@
+#usr/share/cargo/registry/proc-macro-hack-0.5.19
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/.cargo-checksum.json
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/Cargo.toml
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/Cargo.toml.deps
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/LICENSE-APACHE
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/LICENSE-MIT
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/README.md
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/build.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/src
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/src/error.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/src/iter.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/src/lib.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/src/parse.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/src/quote.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/compiletest.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/private.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/private.stderr
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/unexpected-arg.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/unexpected-arg.stderr
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/unexpected.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/unexpected.stderr
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/unknown-arg.rs
+#usr/share/cargo/registry/proc-macro-hack-0.5.19/tests/ui/unknown-arg.stderr
diff --git a/config/rootfiles/common/rust-proc-macro2 b/config/rootfiles/common/rust-proc-macro2
new file mode 100644 (file)
index 0000000..1acfef7
--- /dev/null
@@ -0,0 +1,21 @@
+#usr/share/cargo/registry/proc-macro2-1.0.36
+#usr/share/cargo/registry/proc-macro2-1.0.36/.cargo-checksum.json
+#usr/share/cargo/registry/proc-macro2-1.0.36/Cargo.toml
+#usr/share/cargo/registry/proc-macro2-1.0.36/Cargo.toml.deps
+#usr/share/cargo/registry/proc-macro2-1.0.36/LICENSE-APACHE
+#usr/share/cargo/registry/proc-macro2-1.0.36/LICENSE-MIT
+#usr/share/cargo/registry/proc-macro2-1.0.36/README.md
+#usr/share/cargo/registry/proc-macro2-1.0.36/build.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/src
+#usr/share/cargo/registry/proc-macro2-1.0.36/src/detection.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/src/fallback.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/src/lib.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/src/marker.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/src/parse.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/src/wrapper.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/tests
+#usr/share/cargo/registry/proc-macro2-1.0.36/tests/comments.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/tests/features.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/tests/marker.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/tests/test.rs
+#usr/share/cargo/registry/proc-macro2-1.0.36/tests/test_fmt.rs
diff --git a/config/rootfiles/common/rust-pyo3 b/config/rootfiles/common/rust-pyo3
new file mode 100644 (file)
index 0000000..8d49a81
--- /dev/null
@@ -0,0 +1,239 @@
+#usr/share/cargo/registry/pyo3-0.13.1
+#usr/share/cargo/registry/pyo3-0.13.1/.cargo-checksum.json
+#usr/share/cargo/registry/pyo3-0.13.1/CHANGELOG.md
+#usr/share/cargo/registry/pyo3-0.13.1/Cargo.toml
+#usr/share/cargo/registry/pyo3-0.13.1/Cargo.toml.deps
+#usr/share/cargo/registry/pyo3-0.13.1/Code-of-Conduct.md
+#usr/share/cargo/registry/pyo3-0.13.1/Contributing.md
+#usr/share/cargo/registry/pyo3-0.13.1/LICENSE
+#usr/share/cargo/registry/pyo3-0.13.1/Makefile
+#usr/share/cargo/registry/pyo3-0.13.1/README.md
+#usr/share/cargo/registry/pyo3-0.13.1/benches
+#usr/share/cargo/registry/pyo3-0.13.1/benches/bench_call.rs
+#usr/share/cargo/registry/pyo3-0.13.1/benches/bench_dict.rs
+#usr/share/cargo/registry/pyo3-0.13.1/benches/bench_list.rs
+#usr/share/cargo/registry/pyo3-0.13.1/benches/bench_pyobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/benches/bench_set.rs
+#usr/share/cargo/registry/pyo3-0.13.1/benches/bench_tuple.rs
+#usr/share/cargo/registry/pyo3-0.13.1/build.rs
+#usr/share/cargo/registry/pyo3-0.13.1/codecov.yml
+#usr/share/cargo/registry/pyo3-0.13.1/guide
+#usr/share/cargo/registry/pyo3-0.13.1/guide/book.toml
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/SUMMARY.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/advanced.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/building_and_distribution.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/changelog.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/class
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/class.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/class/protocols.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/conversions
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/conversions.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/conversions/tables.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/conversions/traits.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/debugging.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/exception.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/faq.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/features.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/function.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/index.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/logging.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/migration.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/module.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/parallelism.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/pypy.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/python_from_rust.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/rust_cpython.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/trait_bounds.md
+#usr/share/cargo/registry/pyo3-0.13.1/guide/src/types.md
+#usr/share/cargo/registry/pyo3-0.13.1/pyproject.toml
+#usr/share/cargo/registry/pyo3-0.13.1/src
+#usr/share/cargo/registry/pyo3-0.13.1/src/buffer.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/callback.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/basic.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/buffer.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/context.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/descr.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/gc.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/iter.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/macros.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/mapping.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/methods.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/mod.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/number.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/proto_methods.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/pyasync.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/class/sequence.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/conversion.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/derive_utils.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/err
+#usr/share/cargo/registry/pyo3-0.13.1/src/err/err_state.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/err/impls.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/err/mod.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/exceptions.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/LICENSE
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/README.md
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/bltinmodule.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/boolobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/bytearrayobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/bytesobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/ceval.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/code.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/codecs.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/compile.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/complexobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/context.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython/abstract_.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython/bytesobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython/ceval.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython/code.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython/dictobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython/frameobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/cpython/mod.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/datetime.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/descrobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/dictobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/enumobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/eval.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/fileobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/floatobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/funcobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/genobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/import.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/initconfig.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/intrcheck.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/iterobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/listobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/longobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/marshal.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/memoryobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/methodobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/mod.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/modsupport.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/moduleobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/object.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/objectabstract.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/objimpl.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/osmodule.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pyarena.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pycapsule.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pydebug.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pyerrors.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pyframe.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pyhash.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pylifecycle.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pymem.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pyport.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pystate.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pystrtod.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/pythonrun.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/rangeobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/setobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/sliceobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/structmember.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/structseq.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/sysmodule.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/traceback.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/tupleobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/typeslots.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/unicodeobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/warnings.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/ffi/weakrefobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/freelist.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/gil.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/instance.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/internal_tricks.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/lib.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/marshal.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/once_cell.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/panic.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/prelude.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/pycell.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/pyclass.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/pyclass_init.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/pyclass_slots.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/python.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/type_object.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/any.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/boolobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/bytearray.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/bytes.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/complex.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/datetime.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/dict.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/floatob.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/function.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/iterator.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/list.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/mod.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/module.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/num.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/sequence.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/set.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/slice.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/string.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/tuple.rs
+#usr/share/cargo/registry/pyo3-0.13.1/src/types/typeobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests
+#usr/share/cargo/registry/pyo3-0.13.1/tests/common.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_arithmetics.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_buffer_protocol.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_bytes.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_class_attributes.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_class_basics.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_class_conversion.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_class_new.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_compile_error.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_datetime.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_dict_iter.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_dunder.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_exceptions.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_frompyobject.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_gc.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_getter_setter.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_inheritance.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_mapping.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_methods.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_module.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_pyfunction.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_pyself.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_sequence.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_string.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_text_signature.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_unsendable_dict.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_variable_arguments.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/test_various.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/abi3_nativetype_inheritance.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/abi3_nativetype_inheritance.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_frompy_derive.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_frompy_derive.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_macro_args.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_macro_args.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_need_module_arg_position.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_need_module_arg_position.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_property_args.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_property_args.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_pyclass_args.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_pyclass_args.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_pymethod_names.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_pymethod_names.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_pymethod_receiver.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_pymethod_receiver.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_result_conversion.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/invalid_result_conversion.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/missing_clone.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/missing_clone.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/pyclass_send.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/pyclass_send.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/reject_generics.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/reject_generics.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/static_ref.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/static_ref.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/wrong_aspyref_lifetimes.rs
+#usr/share/cargo/registry/pyo3-0.13.1/tests/ui/wrong_aspyref_lifetimes.stderr
+#usr/share/cargo/registry/pyo3-0.13.1/tox.ini
diff --git a/config/rootfiles/common/rust-pyo3-build-config b/config/rootfiles/common/rust-pyo3-build-config
new file mode 100644 (file)
index 0000000..90809e2
--- /dev/null
@@ -0,0 +1,10 @@
+#usr/share/cargo/registry/pyo3-build-config-0.15.1
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/.cargo-checksum.json
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/Cargo.toml
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/Cargo.toml.deps
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/LICENSE
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/build.rs
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/src
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/src/errors.rs
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/src/impl_.rs
+#usr/share/cargo/registry/pyo3-build-config-0.15.1/src/lib.rs
diff --git a/config/rootfiles/common/rust-pyo3-macros b/config/rootfiles/common/rust-pyo3-macros
new file mode 100644 (file)
index 0000000..9126747
--- /dev/null
@@ -0,0 +1,7 @@
+#usr/share/cargo/registry/pyo3-macros-0.13.1
+#usr/share/cargo/registry/pyo3-macros-0.13.1/.cargo-checksum.json
+#usr/share/cargo/registry/pyo3-macros-0.13.1/Cargo.toml
+#usr/share/cargo/registry/pyo3-macros-0.13.1/Cargo.toml.deps
+#usr/share/cargo/registry/pyo3-macros-0.13.1/LICENSE
+#usr/share/cargo/registry/pyo3-macros-0.13.1/src
+#usr/share/cargo/registry/pyo3-macros-0.13.1/src/lib.rs
diff --git a/config/rootfiles/common/rust-pyo3-macros-backend b/config/rootfiles/common/rust-pyo3-macros-backend
new file mode 100644 (file)
index 0000000..9c81e67
--- /dev/null
@@ -0,0 +1,19 @@
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/.cargo-checksum.json
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/Cargo.toml
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/Cargo.toml.deps
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/LICENSE
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/defs.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/from_pyobject.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/konst.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/lib.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/method.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/module.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/proto_method.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/pyclass.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/pyfunction.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/pyimpl.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/pymethod.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/pyproto.rs
+#usr/share/cargo/registry/pyo3-macros-backend-0.13.1/src/utils.rs
diff --git a/config/rootfiles/common/rust-quote b/config/rootfiles/common/rust-quote
new file mode 100644 (file)
index 0000000..44c28c7
--- /dev/null
@@ -0,0 +1,34 @@
+#usr/share/cargo/registry/quote-1.0.15
+#usr/share/cargo/registry/quote-1.0.15/.cargo-checksum.json
+#usr/share/cargo/registry/quote-1.0.15/Cargo.toml
+#usr/share/cargo/registry/quote-1.0.15/Cargo.toml.deps
+#usr/share/cargo/registry/quote-1.0.15/LICENSE-APACHE
+#usr/share/cargo/registry/quote-1.0.15/LICENSE-MIT
+#usr/share/cargo/registry/quote-1.0.15/README.md
+#usr/share/cargo/registry/quote-1.0.15/rust-toolchain.toml
+#usr/share/cargo/registry/quote-1.0.15/src
+#usr/share/cargo/registry/quote-1.0.15/src/ext.rs
+#usr/share/cargo/registry/quote-1.0.15/src/format.rs
+#usr/share/cargo/registry/quote-1.0.15/src/ident_fragment.rs
+#usr/share/cargo/registry/quote-1.0.15/src/lib.rs
+#usr/share/cargo/registry/quote-1.0.15/src/runtime.rs
+#usr/share/cargo/registry/quote-1.0.15/src/spanned.rs
+#usr/share/cargo/registry/quote-1.0.15/src/to_tokens.rs
+#usr/share/cargo/registry/quote-1.0.15/tests
+#usr/share/cargo/registry/quote-1.0.15/tests/compiletest.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/test.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter-interpolated-dup.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter-interpolated-dup.stderr
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter-interpolated.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter-interpolated.stderr
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter-separated.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter-separated.stderr
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/does-not-have-iter.stderr
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/not-quotable.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/not-quotable.stderr
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/not-repeatable.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/not-repeatable.stderr
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/wrong-type-span.rs
+#usr/share/cargo/registry/quote-1.0.15/tests/ui/wrong-type-span.stderr
diff --git a/config/rootfiles/common/rust-rand b/config/rootfiles/common/rust-rand
new file mode 100644 (file)
index 0000000..545f4a8
--- /dev/null
@@ -0,0 +1,39 @@
+#usr/share/cargo/registry/rand-0.8.4
+#usr/share/cargo/registry/rand-0.8.4/.cargo-checksum.json
+#usr/share/cargo/registry/rand-0.8.4/CHANGELOG.md
+#usr/share/cargo/registry/rand-0.8.4/COPYRIGHT
+#usr/share/cargo/registry/rand-0.8.4/Cargo.toml
+#usr/share/cargo/registry/rand-0.8.4/LICENSE-APACHE
+#usr/share/cargo/registry/rand-0.8.4/LICENSE-MIT
+#usr/share/cargo/registry/rand-0.8.4/README.md
+#usr/share/cargo/registry/rand-0.8.4/src
+#usr/share/cargo/registry/rand-0.8.4/src/distributions
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/bernoulli.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/distribution.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/float.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/integer.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/mod.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/other.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/slice.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/uniform.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/utils.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/weighted.rs
+#usr/share/cargo/registry/rand-0.8.4/src/distributions/weighted_index.rs
+#usr/share/cargo/registry/rand-0.8.4/src/lib.rs
+#usr/share/cargo/registry/rand-0.8.4/src/prelude.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rng.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/adapter
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/adapter/mod.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/adapter/read.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/adapter/reseeding.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/mock.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/mod.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/small.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/std.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/thread.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/xoshiro128plusplus.rs
+#usr/share/cargo/registry/rand-0.8.4/src/rngs/xoshiro256plusplus.rs
+#usr/share/cargo/registry/rand-0.8.4/src/seq
+#usr/share/cargo/registry/rand-0.8.4/src/seq/index.rs
+#usr/share/cargo/registry/rand-0.8.4/src/seq/mod.rs
diff --git a/config/rootfiles/common/rust-rand-0.4 b/config/rootfiles/common/rust-rand-0.4
new file mode 100644 (file)
index 0000000..ecdb3c7
--- /dev/null
@@ -0,0 +1,41 @@
+#usr/share/cargo/registry/rand-0.4-0.4.6
+#usr/share/cargo/registry/rand-0.4-0.4.6/.cargo-checksum.json
+#usr/share/cargo/registry/rand-0.4-0.4.6/CHANGELOG.md
+#usr/share/cargo/registry/rand-0.4-0.4.6/Cargo.toml
+#usr/share/cargo/registry/rand-0.4-0.4.6/Cargo.toml.deps
+#usr/share/cargo/registry/rand-0.4-0.4.6/LICENSE-APACHE
+#usr/share/cargo/registry/rand-0.4-0.4.6/LICENSE-MIT
+#usr/share/cargo/registry/rand-0.4-0.4.6/README.md
+#usr/share/cargo/registry/rand-0.4-0.4.6/appveyor.yml
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/bench.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/distributions
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/distributions/exponential.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/distributions/gamma.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/distributions/mod.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/distributions/normal.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/generators.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/benches/misc.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/distributions
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/distributions/exponential.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/distributions/gamma.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/distributions/mod.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/distributions/normal.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/distributions/range.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/distributions/ziggurat_tables.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/jitter.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/lib.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/os.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/prng
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/prng/chacha.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/prng/isaac.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/prng/isaac64.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/prng/mod.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/prng/xorshift.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/rand_impls.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/read.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/reseeding.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/src/seq.rs
+#usr/share/cargo/registry/rand-0.4-0.4.6/utils
+#usr/share/cargo/registry/rand-0.4-0.4.6/utils/ziggurat_tables.py
diff --git a/config/rootfiles/common/rust-rand_chacha b/config/rootfiles/common/rust-rand_chacha
new file mode 100644 (file)
index 0000000..02f0903
--- /dev/null
@@ -0,0 +1,13 @@
+#usr/share/cargo/registry/rand_chacha-0.3.1
+#usr/share/cargo/registry/rand_chacha-0.3.1/.cargo-checksum.json
+#usr/share/cargo/registry/rand_chacha-0.3.1/CHANGELOG.md
+#usr/share/cargo/registry/rand_chacha-0.3.1/COPYRIGHT
+#usr/share/cargo/registry/rand_chacha-0.3.1/Cargo.toml
+#usr/share/cargo/registry/rand_chacha-0.3.1/Cargo.toml.deps
+#usr/share/cargo/registry/rand_chacha-0.3.1/LICENSE-APACHE
+#usr/share/cargo/registry/rand_chacha-0.3.1/LICENSE-MIT
+#usr/share/cargo/registry/rand_chacha-0.3.1/README.md
+#usr/share/cargo/registry/rand_chacha-0.3.1/src
+#usr/share/cargo/registry/rand_chacha-0.3.1/src/chacha.rs
+#usr/share/cargo/registry/rand_chacha-0.3.1/src/guts.rs
+#usr/share/cargo/registry/rand_chacha-0.3.1/src/lib.rs
diff --git a/config/rootfiles/common/rust-rand_core b/config/rootfiles/common/rust-rand_core
new file mode 100644 (file)
index 0000000..736a531
--- /dev/null
@@ -0,0 +1,16 @@
+#usr/share/cargo/registry/rand_core-0.6.3
+#usr/share/cargo/registry/rand_core-0.6.3/.cargo-checksum.json
+#usr/share/cargo/registry/rand_core-0.6.3/CHANGELOG.md
+#usr/share/cargo/registry/rand_core-0.6.3/COPYRIGHT
+#usr/share/cargo/registry/rand_core-0.6.3/Cargo.toml
+#usr/share/cargo/registry/rand_core-0.6.3/Cargo.toml.deps
+#usr/share/cargo/registry/rand_core-0.6.3/LICENSE-APACHE
+#usr/share/cargo/registry/rand_core-0.6.3/LICENSE-MIT
+#usr/share/cargo/registry/rand_core-0.6.3/README.md
+#usr/share/cargo/registry/rand_core-0.6.3/src
+#usr/share/cargo/registry/rand_core-0.6.3/src/block.rs
+#usr/share/cargo/registry/rand_core-0.6.3/src/error.rs
+#usr/share/cargo/registry/rand_core-0.6.3/src/impls.rs
+#usr/share/cargo/registry/rand_core-0.6.3/src/le.rs
+#usr/share/cargo/registry/rand_core-0.6.3/src/lib.rs
+#usr/share/cargo/registry/rand_core-0.6.3/src/os.rs
diff --git a/config/rootfiles/common/rust-rand_core-0.3.1 b/config/rootfiles/common/rust-rand_core-0.3.1
new file mode 100644 (file)
index 0000000..626984f
--- /dev/null
@@ -0,0 +1,15 @@
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/.cargo-checksum.json
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/CHANGELOG.md
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/COPYRIGHT
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/Cargo.toml
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/Cargo.toml.deps
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/LICENSE-APACHE
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/LICENSE-MIT
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/README.md
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/src
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/src/block.rs
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/src/error.rs
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/src/impls.rs
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/src/le.rs
+#usr/share/cargo/registry/rand_core-0.3.1-0.3.1/src/lib.rs
diff --git a/config/rootfiles/common/rust-rand_core-0.4.2 b/config/rootfiles/common/rust-rand_core-0.4.2
new file mode 100644 (file)
index 0000000..8194c52
--- /dev/null
@@ -0,0 +1,15 @@
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/.cargo-checksum.json
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/CHANGELOG.md
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/COPYRIGHT
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/Cargo.toml
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/Cargo.toml.deps
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/LICENSE-APACHE
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/LICENSE-MIT
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/README.md
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/src
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/src/block.rs
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/src/error.rs
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/src/impls.rs
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/src/le.rs
+#usr/share/cargo/registry/rand_core-0.4.2-0.4.2/src/lib.rs
diff --git a/config/rootfiles/common/rust-rand_hc b/config/rootfiles/common/rust-rand_hc
new file mode 100644 (file)
index 0000000..bccff3d
--- /dev/null
@@ -0,0 +1,12 @@
+#usr/share/cargo/registry/rand_hc-0.3.1
+#usr/share/cargo/registry/rand_hc-0.3.1/.cargo-checksum.json
+#usr/share/cargo/registry/rand_hc-0.3.1/CHANGELOG.md
+#usr/share/cargo/registry/rand_hc-0.3.1/COPYRIGHT
+#usr/share/cargo/registry/rand_hc-0.3.1/Cargo.toml
+#usr/share/cargo/registry/rand_hc-0.3.1/Cargo.toml.deps
+#usr/share/cargo/registry/rand_hc-0.3.1/LICENSE-APACHE
+#usr/share/cargo/registry/rand_hc-0.3.1/LICENSE-MIT
+#usr/share/cargo/registry/rand_hc-0.3.1/README.md
+#usr/share/cargo/registry/rand_hc-0.3.1/src
+#usr/share/cargo/registry/rand_hc-0.3.1/src/hc128.rs
+#usr/share/cargo/registry/rand_hc-0.3.1/src/lib.rs
diff --git a/config/rootfiles/common/rust-rayon b/config/rootfiles/common/rust-rayon
new file mode 100644 (file)
index 0000000..4eea650
--- /dev/null
@@ -0,0 +1,126 @@
+#usr/share/cargo/registry/rayon-1.5.1
+#usr/share/cargo/registry/rayon-1.5.1/.cargo-checksum.json
+#usr/share/cargo/registry/rayon-1.5.1/Cargo.toml
+#usr/share/cargo/registry/rayon-1.5.1/Cargo.toml.deps
+#usr/share/cargo/registry/rayon-1.5.1/FAQ.md
+#usr/share/cargo/registry/rayon-1.5.1/LICENSE-APACHE
+#usr/share/cargo/registry/rayon-1.5.1/LICENSE-MIT
+#usr/share/cargo/registry/rayon-1.5.1/README.md
+#usr/share/cargo/registry/rayon-1.5.1/RELEASES.md
+#usr/share/cargo/registry/rayon-1.5.1/build.rs
+#usr/share/cargo/registry/rayon-1.5.1/examples
+#usr/share/cargo/registry/rayon-1.5.1/examples/README.md
+#usr/share/cargo/registry/rayon-1.5.1/examples/cpu_monitor.rs
+#usr/share/cargo/registry/rayon-1.5.1/src
+#usr/share/cargo/registry/rayon-1.5.1/src/array.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/binary_heap.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/btree_map.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/btree_set.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/hash_map.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/hash_set.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/linked_list.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/mod.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/collections/vec_deque.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail/cannot_collect_filtermap_data.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail/cannot_zip_filtered_data.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail/cell_par_iter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail/mod.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail/must_use.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail/no_send_par_iter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/compile_fail/rc_par_iter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/delegate.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/chain.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/chunks.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/cloned.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/collect
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/collect/consumer.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/collect/mod.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/collect/test.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/copied.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/empty.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/enumerate.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/extend.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/filter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/filter_map.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/find.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/find_first_last
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/find_first_last/mod.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/find_first_last/test.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/flat_map.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/flat_map_iter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/flatten.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/flatten_iter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/fold.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/for_each.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/from_par_iter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/inspect.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/interleave.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/interleave_shortest.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/intersperse.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/len.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/map.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/map_with.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/mod.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/multizip.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/noop.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/once.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/panic_fuse.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/par_bridge.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/plumbing
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/plumbing/README.md
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/plumbing/mod.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/positions.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/product.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/reduce.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/repeat.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/rev.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/skip.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/splitter.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/step_by.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/sum.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/take.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/test.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/try_fold.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/try_reduce.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/try_reduce_with.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/unzip.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/update.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/while_some.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/zip.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/iter/zip_eq.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/lib.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/math.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/option.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/par_either.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/prelude.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/private.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/range.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/range_inclusive.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/result.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/slice
+#usr/share/cargo/registry/rayon-1.5.1/src/slice/mergesort.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/slice/mod.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/slice/quicksort.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/slice/test.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/split_producer.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/str.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/string.rs
+#usr/share/cargo/registry/rayon-1.5.1/src/vec.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests
+#usr/share/cargo/registry/rayon-1.5.1/tests/chars.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/clones.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/collect.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/cross-pool.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/debug.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/intersperse.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/issue671-unzip.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/issue671.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/iter_panic.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/named-threads.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/octillion.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/producer_split_at.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/sort-panic-safe.rs
+#usr/share/cargo/registry/rayon-1.5.1/tests/str.rs
diff --git a/config/rootfiles/common/rust-rayon-core b/config/rootfiles/common/rust-rayon-core
new file mode 100644 (file)
index 0000000..a5e7227
--- /dev/null
@@ -0,0 +1,48 @@
+#usr/share/cargo/registry/rayon-core-1.9.1
+#usr/share/cargo/registry/rayon-core-1.9.1/.cargo-checksum.json
+#usr/share/cargo/registry/rayon-core-1.9.1/Cargo.toml
+#usr/share/cargo/registry/rayon-core-1.9.1/Cargo.toml.deps
+#usr/share/cargo/registry/rayon-core-1.9.1/LICENSE-APACHE
+#usr/share/cargo/registry/rayon-core-1.9.1/LICENSE-MIT
+#usr/share/cargo/registry/rayon-core-1.9.1/README.md
+#usr/share/cargo/registry/rayon-core-1.9.1/build.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail/mod.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail/quicksort_race1.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail/quicksort_race2.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail/quicksort_race3.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail/rc_return.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail/rc_upvar.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/compile_fail/scope_join_bad.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/job.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/join
+#usr/share/cargo/registry/rayon-core-1.9.1/src/join/mod.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/join/test.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/latch.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/lib.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/log.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/private.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/registry.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/scope
+#usr/share/cargo/registry/rayon-core-1.9.1/src/scope/mod.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/scope/test.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/sleep
+#usr/share/cargo/registry/rayon-core-1.9.1/src/sleep/README.md
+#usr/share/cargo/registry/rayon-core-1.9.1/src/sleep/counters.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/sleep/mod.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/spawn
+#usr/share/cargo/registry/rayon-core-1.9.1/src/spawn/mod.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/spawn/test.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/test.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/thread_pool
+#usr/share/cargo/registry/rayon-core-1.9.1/src/thread_pool/mod.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/thread_pool/test.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/src/unwind.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/tests
+#usr/share/cargo/registry/rayon-core-1.9.1/tests/double_init_fail.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/tests/init_zero_threads.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/tests/scope_join.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/tests/scoped_threadpool.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/tests/simple_panic.rs
+#usr/share/cargo/registry/rayon-core-1.9.1/tests/stack_overflow_crash.rs
diff --git a/config/rootfiles/common/rust-rdrand b/config/rootfiles/common/rust-rdrand
new file mode 100644 (file)
index 0000000..f424a58
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/rdrand-0.4.0
+#usr/share/cargo/registry/rdrand-0.4.0/.cargo-checksum.json
+#usr/share/cargo/registry/rdrand-0.4.0/Cargo.toml
+#usr/share/cargo/registry/rdrand-0.4.0/Cargo.toml.deps
+#usr/share/cargo/registry/rdrand-0.4.0/LICENSE
+#usr/share/cargo/registry/rdrand-0.4.0/README.mkd
+#usr/share/cargo/registry/rdrand-0.4.0/appveyor.yml
+#usr/share/cargo/registry/rdrand-0.4.0/benches
+#usr/share/cargo/registry/rdrand-0.4.0/benches/rdrand.rs
+#usr/share/cargo/registry/rdrand-0.4.0/benches/rdseed.rs
+#usr/share/cargo/registry/rdrand-0.4.0/benches/std.rs
+#usr/share/cargo/registry/rdrand-0.4.0/src
+#usr/share/cargo/registry/rdrand-0.4.0/src/changelog.rs
+#usr/share/cargo/registry/rdrand-0.4.0/src/lib.rs
diff --git a/config/rootfiles/common/rust-regex b/config/rootfiles/common/rust-regex
new file mode 100644 (file)
index 0000000..d67b45e
--- /dev/null
@@ -0,0 +1,88 @@
+#usr/share/cargo/registry/regex-1.5.3
+#usr/share/cargo/registry/regex-1.5.3/.cargo-checksum.json
+#usr/share/cargo/registry/regex-1.5.3/CHANGELOG.md
+#usr/share/cargo/registry/regex-1.5.3/Cargo.toml
+#usr/share/cargo/registry/regex-1.5.3/Cargo.toml.deps
+#usr/share/cargo/registry/regex-1.5.3/HACKING.md
+#usr/share/cargo/registry/regex-1.5.3/LICENSE-APACHE
+#usr/share/cargo/registry/regex-1.5.3/LICENSE-MIT
+#usr/share/cargo/registry/regex-1.5.3/PERFORMANCE.md
+#usr/share/cargo/registry/regex-1.5.3/README.md
+#usr/share/cargo/registry/regex-1.5.3/UNICODE.md
+#usr/share/cargo/registry/regex-1.5.3/examples
+#usr/share/cargo/registry/regex-1.5.3/examples/regexdna-input.txt
+#usr/share/cargo/registry/regex-1.5.3/examples/regexdna-output.txt
+#usr/share/cargo/registry/regex-1.5.3/examples/shootout-regex-dna-bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/examples/shootout-regex-dna-cheat.rs
+#usr/share/cargo/registry/regex-1.5.3/examples/shootout-regex-dna-replace.rs
+#usr/share/cargo/registry/regex-1.5.3/examples/shootout-regex-dna-single-cheat.rs
+#usr/share/cargo/registry/regex-1.5.3/examples/shootout-regex-dna-single.rs
+#usr/share/cargo/registry/regex-1.5.3/examples/shootout-regex-dna.rs
+#usr/share/cargo/registry/regex-1.5.3/rustfmt.toml
+#usr/share/cargo/registry/regex-1.5.3/src
+#usr/share/cargo/registry/regex-1.5.3/src/backtrack.rs
+#usr/share/cargo/registry/regex-1.5.3/src/compile.rs
+#usr/share/cargo/registry/regex-1.5.3/src/dfa.rs
+#usr/share/cargo/registry/regex-1.5.3/src/error.rs
+#usr/share/cargo/registry/regex-1.5.3/src/exec.rs
+#usr/share/cargo/registry/regex-1.5.3/src/expand.rs
+#usr/share/cargo/registry/regex-1.5.3/src/find_byte.rs
+#usr/share/cargo/registry/regex-1.5.3/src/freqs.rs
+#usr/share/cargo/registry/regex-1.5.3/src/input.rs
+#usr/share/cargo/registry/regex-1.5.3/src/lib.rs
+#usr/share/cargo/registry/regex-1.5.3/src/literal
+#usr/share/cargo/registry/regex-1.5.3/src/literal/imp.rs
+#usr/share/cargo/registry/regex-1.5.3/src/literal/mod.rs
+#usr/share/cargo/registry/regex-1.5.3/src/pattern.rs
+#usr/share/cargo/registry/regex-1.5.3/src/pikevm.rs
+#usr/share/cargo/registry/regex-1.5.3/src/pool.rs
+#usr/share/cargo/registry/regex-1.5.3/src/prog.rs
+#usr/share/cargo/registry/regex-1.5.3/src/re_builder.rs
+#usr/share/cargo/registry/regex-1.5.3/src/re_bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/src/re_set.rs
+#usr/share/cargo/registry/regex-1.5.3/src/re_trait.rs
+#usr/share/cargo/registry/regex-1.5.3/src/re_unicode.rs
+#usr/share/cargo/registry/regex-1.5.3/src/sparse.rs
+#usr/share/cargo/registry/regex-1.5.3/src/testdata
+#usr/share/cargo/registry/regex-1.5.3/src/testdata/LICENSE
+#usr/share/cargo/registry/regex-1.5.3/src/testdata/README
+#usr/share/cargo/registry/regex-1.5.3/src/testdata/basic.dat
+#usr/share/cargo/registry/regex-1.5.3/src/testdata/nullsubexpr.dat
+#usr/share/cargo/registry/regex-1.5.3/src/testdata/repetition.dat
+#usr/share/cargo/registry/regex-1.5.3/src/utf8.rs
+#usr/share/cargo/registry/regex-1.5.3/test
+#usr/share/cargo/registry/regex-1.5.3/tests
+#usr/share/cargo/registry/regex-1.5.3/tests/api.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/api_str.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/consistent.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/crates_regex.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/crazy.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/flags.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/fowler.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/macros.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/macros_bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/macros_str.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/misc.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/multiline.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/noparse.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/regression.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/regression_fuzz.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/replace.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/searcher.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/set.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/shortest_match.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/suffix_reverse.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_backtrack.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_backtrack_bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_backtrack_utf8bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_crates_regex.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_default.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_default_bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_nfa.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_nfa_bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/test_nfa_utf8bytes.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/unicode.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/word_boundary.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/word_boundary_ascii.rs
+#usr/share/cargo/registry/regex-1.5.3/tests/word_boundary_unicode.rs
diff --git a/config/rootfiles/common/rust-regex-syntax b/config/rootfiles/common/rust-regex-syntax
new file mode 100644 (file)
index 0000000..ae6dd1a
--- /dev/null
@@ -0,0 +1,47 @@
+#usr/share/cargo/registry/regex-syntax-0.6.25
+#usr/share/cargo/registry/regex-syntax-0.6.25/.cargo-checksum.json
+#usr/share/cargo/registry/regex-syntax-0.6.25/Cargo.toml
+#usr/share/cargo/registry/regex-syntax-0.6.25/Cargo.toml.deps
+#usr/share/cargo/registry/regex-syntax-0.6.25/LICENSE-APACHE
+#usr/share/cargo/registry/regex-syntax-0.6.25/LICENSE-MIT
+#usr/share/cargo/registry/regex-syntax-0.6.25/README.md
+#usr/share/cargo/registry/regex-syntax-0.6.25/benches
+#usr/share/cargo/registry/regex-syntax-0.6.25/benches/bench.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/ast
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/ast/mod.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/ast/parse.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/ast/print.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/ast/visitor.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/either.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/error.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir/interval.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir/literal
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir/literal/mod.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir/mod.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir/print.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir/translate.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/hir/visitor.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/lib.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/parser.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/LICENSE-UNICODE
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/age.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/case_folding_simple.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/general_category.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/grapheme_cluster_break.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/mod.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/perl_decimal.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/perl_space.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/perl_word.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/property_bool.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/property_names.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/property_values.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/script.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/script_extension.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/sentence_break.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/unicode_tables/word_break.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/src/utf8.rs
+#usr/share/cargo/registry/regex-syntax-0.6.25/test
diff --git a/config/rootfiles/common/rust-remove_dir_all b/config/rootfiles/common/rust-remove_dir_all
new file mode 100644 (file)
index 0000000..39ddef8
--- /dev/null
@@ -0,0 +1,9 @@
+#usr/share/cargo/registry/remove_dir_all-0.5.3
+#usr/share/cargo/registry/remove_dir_all-0.5.3/.cargo-checksum.json
+#usr/share/cargo/registry/remove_dir_all-0.5.3/Cargo.toml
+#usr/share/cargo/registry/remove_dir_all-0.5.3/LICENCE-APACHE
+#usr/share/cargo/registry/remove_dir_all-0.5.3/LICENCE-MIT
+#usr/share/cargo/registry/remove_dir_all-0.5.3/README.md
+#usr/share/cargo/registry/remove_dir_all-0.5.3/src
+#usr/share/cargo/registry/remove_dir_all-0.5.3/src/fs.rs
+#usr/share/cargo/registry/remove_dir_all-0.5.3/src/lib.rs
diff --git a/config/rootfiles/common/rust-ryu b/config/rootfiles/common/rust-ryu
new file mode 100644 (file)
index 0000000..1dd2de6
--- /dev/null
@@ -0,0 +1,40 @@
+#usr/share/cargo/registry/ryu-1.0.9
+#usr/share/cargo/registry/ryu-1.0.9/.cargo-checksum.json
+#usr/share/cargo/registry/ryu-1.0.9/Cargo.toml
+#usr/share/cargo/registry/ryu-1.0.9/Cargo.toml.deps
+#usr/share/cargo/registry/ryu-1.0.9/LICENSE-APACHE
+#usr/share/cargo/registry/ryu-1.0.9/LICENSE-BOOST
+#usr/share/cargo/registry/ryu-1.0.9/README.md
+#usr/share/cargo/registry/ryu-1.0.9/benches
+#usr/share/cargo/registry/ryu-1.0.9/benches/bench.rs
+#usr/share/cargo/registry/ryu-1.0.9/examples
+#usr/share/cargo/registry/ryu-1.0.9/examples/upstream_benchmark.rs
+#usr/share/cargo/registry/ryu-1.0.9/src
+#usr/share/cargo/registry/ryu-1.0.9/src/buffer
+#usr/share/cargo/registry/ryu-1.0.9/src/buffer/mod.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/common.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/d2s.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/d2s_full_table.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/d2s_intrinsics.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/d2s_small_table.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/digit_table.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/f2s.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/f2s_intrinsics.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/lib.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/parse.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/pretty
+#usr/share/cargo/registry/ryu-1.0.9/src/pretty/exponent.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/pretty/mantissa.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/pretty/mod.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/s2d.rs
+#usr/share/cargo/registry/ryu-1.0.9/src/s2f.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests
+#usr/share/cargo/registry/ryu-1.0.9/tests/common_test.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests/d2s_table_test.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests/d2s_test.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests/exhaustive.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests/f2s_test.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests/macros
+#usr/share/cargo/registry/ryu-1.0.9/tests/macros/mod.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests/s2d_test.rs
+#usr/share/cargo/registry/ryu-1.0.9/tests/s2f_test.rs
diff --git a/config/rootfiles/common/rust-same-file b/config/rootfiles/common/rust-same-file
new file mode 100644 (file)
index 0000000..43cc861
--- /dev/null
@@ -0,0 +1,17 @@
+#usr/share/cargo/registry/same-file-1.0.6
+#usr/share/cargo/registry/same-file-1.0.6/.cargo-checksum.json
+#usr/share/cargo/registry/same-file-1.0.6/COPYING
+#usr/share/cargo/registry/same-file-1.0.6/Cargo.toml
+#usr/share/cargo/registry/same-file-1.0.6/Cargo.toml.deps
+#usr/share/cargo/registry/same-file-1.0.6/LICENSE-MIT
+#usr/share/cargo/registry/same-file-1.0.6/README.md
+#usr/share/cargo/registry/same-file-1.0.6/UNLICENSE
+#usr/share/cargo/registry/same-file-1.0.6/examples
+#usr/share/cargo/registry/same-file-1.0.6/examples/is_same_file.rs
+#usr/share/cargo/registry/same-file-1.0.6/examples/is_stderr.rs
+#usr/share/cargo/registry/same-file-1.0.6/rustfmt.toml
+#usr/share/cargo/registry/same-file-1.0.6/src
+#usr/share/cargo/registry/same-file-1.0.6/src/lib.rs
+#usr/share/cargo/registry/same-file-1.0.6/src/unix.rs
+#usr/share/cargo/registry/same-file-1.0.6/src/unknown.rs
+#usr/share/cargo/registry/same-file-1.0.6/src/win.rs
diff --git a/config/rootfiles/common/rust-scopeguard b/config/rootfiles/common/rust-scopeguard
new file mode 100644 (file)
index 0000000..963474f
--- /dev/null
@@ -0,0 +1,11 @@
+#usr/share/cargo/registry/scopeguard-1.1.0
+#usr/share/cargo/registry/scopeguard-1.1.0/.cargo-checksum.json
+#usr/share/cargo/registry/scopeguard-1.1.0/Cargo.toml
+#usr/share/cargo/registry/scopeguard-1.1.0/Cargo.toml.deps
+#usr/share/cargo/registry/scopeguard-1.1.0/LICENSE-APACHE
+#usr/share/cargo/registry/scopeguard-1.1.0/LICENSE-MIT
+#usr/share/cargo/registry/scopeguard-1.1.0/README.rst
+#usr/share/cargo/registry/scopeguard-1.1.0/examples
+#usr/share/cargo/registry/scopeguard-1.1.0/examples/readme.rs
+#usr/share/cargo/registry/scopeguard-1.1.0/src
+#usr/share/cargo/registry/scopeguard-1.1.0/src/lib.rs
diff --git a/config/rootfiles/common/rust-semver b/config/rootfiles/common/rust-semver
new file mode 100644 (file)
index 0000000..712a4eb
--- /dev/null
@@ -0,0 +1,15 @@
+#usr/share/cargo/registry/semver-0.9.0
+#usr/share/cargo/registry/semver-0.9.0/.cargo-checksum.json
+#usr/share/cargo/registry/semver-0.9.0/Cargo.toml
+#usr/share/cargo/registry/semver-0.9.0/Cargo.toml.deps
+#usr/share/cargo/registry/semver-0.9.0/LICENSE-APACHE
+#usr/share/cargo/registry/semver-0.9.0/LICENSE-MIT
+#usr/share/cargo/registry/semver-0.9.0/README.md
+#usr/share/cargo/registry/semver-0.9.0/src
+#usr/share/cargo/registry/semver-0.9.0/src/lib.rs
+#usr/share/cargo/registry/semver-0.9.0/src/version.rs
+#usr/share/cargo/registry/semver-0.9.0/src/version_req.rs
+#usr/share/cargo/registry/semver-0.9.0/tests
+#usr/share/cargo/registry/semver-0.9.0/tests/deprecation.rs
+#usr/share/cargo/registry/semver-0.9.0/tests/regression.rs
+#usr/share/cargo/registry/semver-0.9.0/tests/serde.rs
diff --git a/config/rootfiles/common/rust-semver-parser b/config/rootfiles/common/rust-semver-parser
new file mode 100644 (file)
index 0000000..bd7f229
--- /dev/null
@@ -0,0 +1,12 @@
+#usr/share/cargo/registry/semver-parser-0.7.0
+#usr/share/cargo/registry/semver-parser-0.7.0/.cargo-checksum.json
+#usr/share/cargo/registry/semver-parser-0.7.0/Cargo.toml
+#usr/share/cargo/registry/semver-parser-0.7.0/Cargo.toml.deps
+#usr/share/cargo/registry/semver-parser-0.7.0/LICENSE-APACHE
+#usr/share/cargo/registry/semver-parser-0.7.0/LICENSE-MIT
+#usr/share/cargo/registry/semver-parser-0.7.0/src
+#usr/share/cargo/registry/semver-parser-0.7.0/src/common.rs
+#usr/share/cargo/registry/semver-parser-0.7.0/src/lib.rs
+#usr/share/cargo/registry/semver-parser-0.7.0/src/range.rs
+#usr/share/cargo/registry/semver-parser-0.7.0/src/recognize.rs
+#usr/share/cargo/registry/semver-parser-0.7.0/src/version.rs
diff --git a/config/rootfiles/common/rust-serde b/config/rootfiles/common/rust-serde
new file mode 100644 (file)
index 0000000..e261e72
--- /dev/null
@@ -0,0 +1,32 @@
+#usr/share/cargo/registry/serde-1.0.136
+#usr/share/cargo/registry/serde-1.0.136/.cargo-checksum.json
+#usr/share/cargo/registry/serde-1.0.136/Cargo.toml
+#usr/share/cargo/registry/serde-1.0.136/LICENSE-APACHE
+#usr/share/cargo/registry/serde-1.0.136/LICENSE-MIT
+#usr/share/cargo/registry/serde-1.0.136/README.md
+#usr/share/cargo/registry/serde-1.0.136/build.rs
+#usr/share/cargo/registry/serde-1.0.136/crates-io.md
+#usr/share/cargo/registry/serde-1.0.136/src
+#usr/share/cargo/registry/serde-1.0.136/src/de
+#usr/share/cargo/registry/serde-1.0.136/src/de/format.rs
+#usr/share/cargo/registry/serde-1.0.136/src/de/ignored_any.rs
+#usr/share/cargo/registry/serde-1.0.136/src/de/impls.rs
+#usr/share/cargo/registry/serde-1.0.136/src/de/mod.rs
+#usr/share/cargo/registry/serde-1.0.136/src/de/seed.rs
+#usr/share/cargo/registry/serde-1.0.136/src/de/utf8.rs
+#usr/share/cargo/registry/serde-1.0.136/src/de/value.rs
+#usr/share/cargo/registry/serde-1.0.136/src/integer128.rs
+#usr/share/cargo/registry/serde-1.0.136/src/lib.rs
+#usr/share/cargo/registry/serde-1.0.136/src/macros.rs
+#usr/share/cargo/registry/serde-1.0.136/src/private
+#usr/share/cargo/registry/serde-1.0.136/src/private/de.rs
+#usr/share/cargo/registry/serde-1.0.136/src/private/doc.rs
+#usr/share/cargo/registry/serde-1.0.136/src/private/mod.rs
+#usr/share/cargo/registry/serde-1.0.136/src/private/ser.rs
+#usr/share/cargo/registry/serde-1.0.136/src/private/size_hint.rs
+#usr/share/cargo/registry/serde-1.0.136/src/ser
+#usr/share/cargo/registry/serde-1.0.136/src/ser/fmt.rs
+#usr/share/cargo/registry/serde-1.0.136/src/ser/impls.rs
+#usr/share/cargo/registry/serde-1.0.136/src/ser/impossible.rs
+#usr/share/cargo/registry/serde-1.0.136/src/ser/mod.rs
+#usr/share/cargo/registry/serde-1.0.136/src/std_error.rs
diff --git a/config/rootfiles/common/rust-serde_derive b/config/rootfiles/common/rust-serde_derive
new file mode 100644 (file)
index 0000000..99b7da5
--- /dev/null
@@ -0,0 +1,27 @@
+#usr/share/cargo/registry/serde_derive-1.0.136
+#usr/share/cargo/registry/serde_derive-1.0.136/.cargo-checksum.json
+#usr/share/cargo/registry/serde_derive-1.0.136/Cargo.toml
+#usr/share/cargo/registry/serde_derive-1.0.136/LICENSE-APACHE
+#usr/share/cargo/registry/serde_derive-1.0.136/LICENSE-MIT
+#usr/share/cargo/registry/serde_derive-1.0.136/README.md
+#usr/share/cargo/registry/serde_derive-1.0.136/build.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/crates-io.md
+#usr/share/cargo/registry/serde_derive-1.0.136/src
+#usr/share/cargo/registry/serde_derive-1.0.136/src/bound.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/de.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/dummy.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/fragment.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/ast.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/attr.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/case.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/check.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/ctxt.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/mod.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/receiver.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/respan.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/internals/symbol.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/lib.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/pretend.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/ser.rs
+#usr/share/cargo/registry/serde_derive-1.0.136/src/try.rs
diff --git a/config/rootfiles/common/rust-serde_json b/config/rootfiles/common/rust-serde_json
new file mode 100644 (file)
index 0000000..b5e7c1f
--- /dev/null
@@ -0,0 +1,96 @@
+#usr/share/cargo/registry/serde_json-1.0.78
+#usr/share/cargo/registry/serde_json-1.0.78/.cargo-checksum.json
+#usr/share/cargo/registry/serde_json-1.0.78/CONTRIBUTING.md
+#usr/share/cargo/registry/serde_json-1.0.78/Cargo.toml
+#usr/share/cargo/registry/serde_json-1.0.78/Cargo.toml.deps
+#usr/share/cargo/registry/serde_json-1.0.78/LICENSE-APACHE
+#usr/share/cargo/registry/serde_json-1.0.78/LICENSE-MIT
+#usr/share/cargo/registry/serde_json-1.0.78/README.md
+#usr/share/cargo/registry/serde_json-1.0.78/build.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src
+#usr/share/cargo/registry/serde_json-1.0.78/src/de.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/error.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/features_check
+#usr/share/cargo/registry/serde_json-1.0.78/src/features_check/error.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/features_check/mod.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/io
+#usr/share/cargo/registry/serde_json-1.0.78/src/io/core.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/io/mod.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/iter.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/algorithm.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/bhcomp.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/bignum.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/cached.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/cached_float80.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/digit.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/errors.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/exponent.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/float.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/large_powers.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/large_powers32.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/large_powers64.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/math.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/mod.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/num.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/parse.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/rounding.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/shift.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lexical/small_powers.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/lib.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/macros.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/map.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/number.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/raw.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/read.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/ser.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/value
+#usr/share/cargo/registry/serde_json-1.0.78/src/value/de.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/value/from.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/value/index.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/value/mod.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/value/partial_eq.rs
+#usr/share/cargo/registry/serde_json-1.0.78/src/value/ser.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests
+#usr/share/cargo/registry/serde_json-1.0.78/tests/compiletest.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/debug.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical/algorithm.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical/exponent.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical/float.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical/math.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical/num.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical/parse.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/lexical/rounding.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/macros
+#usr/share/cargo/registry/serde_json-1.0.78/tests/macros/mod.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/map.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/regression
+#usr/share/cargo/registry/serde_json-1.0.78/tests/regression.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/regression/issue520.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/regression/issue795.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/regression/issue845.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/stream.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/test.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/missing_colon.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/missing_colon.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/missing_comma.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/missing_comma.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/missing_value.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/missing_value.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/not_found.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/not_found.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/parse_expr.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/parse_expr.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/parse_key.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/parse_key.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_after_array_element.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_after_array_element.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_after_map_entry.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_after_map_entry.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_colon.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_colon.stderr
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_comma.rs
+#usr/share/cargo/registry/serde_json-1.0.78/tests/ui/unexpected_comma.stderr
diff --git a/config/rootfiles/common/rust-smallvec b/config/rootfiles/common/rust-smallvec
new file mode 100644 (file)
index 0000000..9992e32
--- /dev/null
@@ -0,0 +1,18 @@
+#usr/share/cargo/registry/smallvec-1.8.0
+#usr/share/cargo/registry/smallvec-1.8.0/.cargo-checksum.json
+#usr/share/cargo/registry/smallvec-1.8.0/Cargo.toml
+#usr/share/cargo/registry/smallvec-1.8.0/Cargo.toml.deps
+#usr/share/cargo/registry/smallvec-1.8.0/LICENSE-APACHE
+#usr/share/cargo/registry/smallvec-1.8.0/LICENSE-MIT
+#usr/share/cargo/registry/smallvec-1.8.0/README.md
+#usr/share/cargo/registry/smallvec-1.8.0/benches
+#usr/share/cargo/registry/smallvec-1.8.0/benches/bench.rs
+#usr/share/cargo/registry/smallvec-1.8.0/scripts
+#usr/share/cargo/registry/smallvec-1.8.0/scripts/run_miri.sh
+#usr/share/cargo/registry/smallvec-1.8.0/src
+#usr/share/cargo/registry/smallvec-1.8.0/src/arbitrary.rs
+#usr/share/cargo/registry/smallvec-1.8.0/src/lib.rs
+#usr/share/cargo/registry/smallvec-1.8.0/src/specialization.rs
+#usr/share/cargo/registry/smallvec-1.8.0/src/tests.rs
+#usr/share/cargo/registry/smallvec-1.8.0/tests
+#usr/share/cargo/registry/smallvec-1.8.0/tests/macro.rs
diff --git a/config/rootfiles/common/rust-syn b/config/rootfiles/common/rust-syn
new file mode 100644 (file)
index 0000000..0c5682b
--- /dev/null
@@ -0,0 +1,106 @@
+#usr/share/cargo/registry/syn-1.0.86
+#usr/share/cargo/registry/syn-1.0.86/.cargo-checksum.json
+#usr/share/cargo/registry/syn-1.0.86/Cargo.toml
+#usr/share/cargo/registry/syn-1.0.86/LICENSE-APACHE
+#usr/share/cargo/registry/syn-1.0.86/LICENSE-MIT
+#usr/share/cargo/registry/syn-1.0.86/README.md
+#usr/share/cargo/registry/syn-1.0.86/benches
+#usr/share/cargo/registry/syn-1.0.86/benches/file.rs
+#usr/share/cargo/registry/syn-1.0.86/benches/rust.rs
+#usr/share/cargo/registry/syn-1.0.86/build.rs
+#usr/share/cargo/registry/syn-1.0.86/src
+#usr/share/cargo/registry/syn-1.0.86/src/attr.rs
+#usr/share/cargo/registry/syn-1.0.86/src/await.rs
+#usr/share/cargo/registry/syn-1.0.86/src/bigint.rs
+#usr/share/cargo/registry/syn-1.0.86/src/buffer.rs
+#usr/share/cargo/registry/syn-1.0.86/src/custom_keyword.rs
+#usr/share/cargo/registry/syn-1.0.86/src/custom_punctuation.rs
+#usr/share/cargo/registry/syn-1.0.86/src/data.rs
+#usr/share/cargo/registry/syn-1.0.86/src/derive.rs
+#usr/share/cargo/registry/syn-1.0.86/src/discouraged.rs
+#usr/share/cargo/registry/syn-1.0.86/src/error.rs
+#usr/share/cargo/registry/syn-1.0.86/src/export.rs
+#usr/share/cargo/registry/syn-1.0.86/src/expr.rs
+#usr/share/cargo/registry/syn-1.0.86/src/ext.rs
+#usr/share/cargo/registry/syn-1.0.86/src/file.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen
+#usr/share/cargo/registry/syn-1.0.86/src/gen/clone.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen/debug.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen/eq.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen/fold.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen/hash.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen/visit.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen/visit_mut.rs
+#usr/share/cargo/registry/syn-1.0.86/src/gen_helper.rs
+#usr/share/cargo/registry/syn-1.0.86/src/generics.rs
+#usr/share/cargo/registry/syn-1.0.86/src/group.rs
+#usr/share/cargo/registry/syn-1.0.86/src/ident.rs
+#usr/share/cargo/registry/syn-1.0.86/src/item.rs
+#usr/share/cargo/registry/syn-1.0.86/src/lib.rs
+#usr/share/cargo/registry/syn-1.0.86/src/lifetime.rs
+#usr/share/cargo/registry/syn-1.0.86/src/lit.rs
+#usr/share/cargo/registry/syn-1.0.86/src/lookahead.rs
+#usr/share/cargo/registry/syn-1.0.86/src/mac.rs
+#usr/share/cargo/registry/syn-1.0.86/src/macros.rs
+#usr/share/cargo/registry/syn-1.0.86/src/op.rs
+#usr/share/cargo/registry/syn-1.0.86/src/parse.rs
+#usr/share/cargo/registry/syn-1.0.86/src/parse_macro_input.rs
+#usr/share/cargo/registry/syn-1.0.86/src/parse_quote.rs
+#usr/share/cargo/registry/syn-1.0.86/src/pat.rs
+#usr/share/cargo/registry/syn-1.0.86/src/path.rs
+#usr/share/cargo/registry/syn-1.0.86/src/print.rs
+#usr/share/cargo/registry/syn-1.0.86/src/punctuated.rs
+#usr/share/cargo/registry/syn-1.0.86/src/reserved.rs
+#usr/share/cargo/registry/syn-1.0.86/src/sealed.rs
+#usr/share/cargo/registry/syn-1.0.86/src/span.rs
+#usr/share/cargo/registry/syn-1.0.86/src/spanned.rs
+#usr/share/cargo/registry/syn-1.0.86/src/stmt.rs
+#usr/share/cargo/registry/syn-1.0.86/src/thread.rs
+#usr/share/cargo/registry/syn-1.0.86/src/token.rs
+#usr/share/cargo/registry/syn-1.0.86/src/tt.rs
+#usr/share/cargo/registry/syn-1.0.86/src/ty.rs
+#usr/share/cargo/registry/syn-1.0.86/src/verbatim.rs
+#usr/share/cargo/registry/syn-1.0.86/src/whitespace.rs
+#usr/share/cargo/registry/syn-1.0.86/tests
+#usr/share/cargo/registry/syn-1.0.86/tests/.gitignore
+#usr/share/cargo/registry/syn-1.0.86/tests/common
+#usr/share/cargo/registry/syn-1.0.86/tests/common/eq.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/common/mod.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/common/parse.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/debug
+#usr/share/cargo/registry/syn-1.0.86/tests/debug/gen.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/debug/mod.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/macros
+#usr/share/cargo/registry/syn-1.0.86/tests/macros/mod.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/regression
+#usr/share/cargo/registry/syn-1.0.86/tests/regression.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/regression/issue1108.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/repo
+#usr/share/cargo/registry/syn-1.0.86/tests/repo/mod.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/repo/progress.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_asyncness.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_attribute.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_derive_input.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_expr.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_generics.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_grouping.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_ident.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_item.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_iterators.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_lit.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_meta.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_parse_buffer.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_parse_stream.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_pat.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_path.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_precedence.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_receiver.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_round_trip.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_shebang.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_should_parse.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_size.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_stmt.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_token_trees.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_ty.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/test_visibility.rs
+#usr/share/cargo/registry/syn-1.0.86/tests/zzz_stable.rs
diff --git a/config/rootfiles/common/rust-synstructure b/config/rootfiles/common/rust-synstructure
new file mode 100644 (file)
index 0000000..c28b190
--- /dev/null
@@ -0,0 +1,8 @@
+#usr/share/cargo/registry/synstructure-0.12.6
+#usr/share/cargo/registry/synstructure-0.12.6/.cargo-checksum.json
+#usr/share/cargo/registry/synstructure-0.12.6/Cargo.toml
+#usr/share/cargo/registry/synstructure-0.12.6/LICENSE
+#usr/share/cargo/registry/synstructure-0.12.6/README.md
+#usr/share/cargo/registry/synstructure-0.12.6/src
+#usr/share/cargo/registry/synstructure-0.12.6/src/lib.rs
+#usr/share/cargo/registry/synstructure-0.12.6/src/macros.rs
diff --git a/config/rootfiles/common/rust-tempdir b/config/rootfiles/common/rust-tempdir
new file mode 100644 (file)
index 0000000..2ed5c39
--- /dev/null
@@ -0,0 +1,12 @@
+#usr/share/cargo/registry/tempdir-0.3.7
+#usr/share/cargo/registry/tempdir-0.3.7/.cargo-checksum.json
+#usr/share/cargo/registry/tempdir-0.3.7/Cargo.toml
+#usr/share/cargo/registry/tempdir-0.3.7/Cargo.toml.deps
+#usr/share/cargo/registry/tempdir-0.3.7/LICENSE-APACHE
+#usr/share/cargo/registry/tempdir-0.3.7/LICENSE-MIT
+#usr/share/cargo/registry/tempdir-0.3.7/README.md
+#usr/share/cargo/registry/tempdir-0.3.7/appveyor.yml
+#usr/share/cargo/registry/tempdir-0.3.7/src
+#usr/share/cargo/registry/tempdir-0.3.7/src/lib.rs
+#usr/share/cargo/registry/tempdir-0.3.7/tests
+#usr/share/cargo/registry/tempdir-0.3.7/tests/smoke.rs
diff --git a/config/rootfiles/common/rust-termcolor b/config/rootfiles/common/rust-termcolor
new file mode 100644 (file)
index 0000000..bc71d7f
--- /dev/null
@@ -0,0 +1,11 @@
+#usr/share/cargo/registry/termcolor-1.1.2
+#usr/share/cargo/registry/termcolor-1.1.2/.cargo-checksum.json
+#usr/share/cargo/registry/termcolor-1.1.2/COPYING
+#usr/share/cargo/registry/termcolor-1.1.2/Cargo.toml
+#usr/share/cargo/registry/termcolor-1.1.2/Cargo.toml.deps
+#usr/share/cargo/registry/termcolor-1.1.2/LICENSE-MIT
+#usr/share/cargo/registry/termcolor-1.1.2/README.md
+#usr/share/cargo/registry/termcolor-1.1.2/UNLICENSE
+#usr/share/cargo/registry/termcolor-1.1.2/rustfmt.toml
+#usr/share/cargo/registry/termcolor-1.1.2/src
+#usr/share/cargo/registry/termcolor-1.1.2/src/lib.rs
diff --git a/config/rootfiles/common/rust-toml b/config/rootfiles/common/rust-toml
new file mode 100644 (file)
index 0000000..3c93796
--- /dev/null
@@ -0,0 +1,23 @@
+#usr/share/cargo/registry/toml-0.5.8
+#usr/share/cargo/registry/toml-0.5.8/.cargo-checksum.json
+#usr/share/cargo/registry/toml-0.5.8/Cargo.toml
+#usr/share/cargo/registry/toml-0.5.8/Cargo.toml.deps
+#usr/share/cargo/registry/toml-0.5.8/LICENSE-APACHE
+#usr/share/cargo/registry/toml-0.5.8/LICENSE-MIT
+#usr/share/cargo/registry/toml-0.5.8/README.md
+#usr/share/cargo/registry/toml-0.5.8/examples
+#usr/share/cargo/registry/toml-0.5.8/examples/decode.rs
+#usr/share/cargo/registry/toml-0.5.8/examples/enum_external.rs
+#usr/share/cargo/registry/toml-0.5.8/examples/toml2json.rs
+#usr/share/cargo/registry/toml-0.5.8/src
+#usr/share/cargo/registry/toml-0.5.8/src/datetime.rs
+#usr/share/cargo/registry/toml-0.5.8/src/de.rs
+#usr/share/cargo/registry/toml-0.5.8/src/lib.rs
+#usr/share/cargo/registry/toml-0.5.8/src/macros.rs
+#usr/share/cargo/registry/toml-0.5.8/src/map.rs
+#usr/share/cargo/registry/toml-0.5.8/src/ser.rs
+#usr/share/cargo/registry/toml-0.5.8/src/spanned.rs
+#usr/share/cargo/registry/toml-0.5.8/src/tokens.rs
+#usr/share/cargo/registry/toml-0.5.8/src/value.rs
+#usr/share/cargo/registry/toml-0.5.8/tests
+#usr/share/cargo/registry/toml-0.5.8/tests/enum_external_deserialize.rs
diff --git a/config/rootfiles/common/rust-toolchain_find b/config/rootfiles/common/rust-toolchain_find
new file mode 100644 (file)
index 0000000..58bb51a
--- /dev/null
@@ -0,0 +1,12 @@
+#usr/share/cargo/registry/toolchain_find-0.1.4
+#usr/share/cargo/registry/toolchain_find-0.1.4/.cargo-checksum.json
+#usr/share/cargo/registry/toolchain_find-0.1.4/Cargo.toml
+#usr/share/cargo/registry/toolchain_find-0.1.4/Cargo.toml.deps
+#usr/share/cargo/registry/toolchain_find-0.1.4/LICENSE
+#usr/share/cargo/registry/toolchain_find-0.1.4/README.md
+#usr/share/cargo/registry/toolchain_find-0.1.4/examples
+#usr/share/cargo/registry/toolchain_find-0.1.4/examples/main.rs
+#usr/share/cargo/registry/toolchain_find-0.1.4/src
+#usr/share/cargo/registry/toolchain_find-0.1.4/src/lib.rs
+#usr/share/cargo/registry/toolchain_find-0.1.4/tests
+#usr/share/cargo/registry/toolchain_find-0.1.4/tests/integration.rs
diff --git a/config/rootfiles/common/rust-trybuild b/config/rootfiles/common/rust-trybuild
new file mode 100644 (file)
index 0000000..3e1cd0d
--- /dev/null
@@ -0,0 +1,49 @@
+#usr/share/cargo/registry/trybuild-1.0.54
+#usr/share/cargo/registry/trybuild-1.0.54/.cargo-checksum.json
+#usr/share/cargo/registry/trybuild-1.0.54/Cargo.toml
+#usr/share/cargo/registry/trybuild-1.0.54/Cargo.toml.deps
+#usr/share/cargo/registry/trybuild-1.0.54/LICENSE-APACHE
+#usr/share/cargo/registry/trybuild-1.0.54/LICENSE-MIT
+#usr/share/cargo/registry/trybuild-1.0.54/README.md
+#usr/share/cargo/registry/trybuild-1.0.54/build.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src
+#usr/share/cargo/registry/trybuild-1.0.54/src/cargo.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/dependencies.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/diff.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/directory.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/env.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/error.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/features.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/flock.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/lib.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/manifest.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/message.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/normalize.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/path.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/run.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/rustflags.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/term.rs
+#usr/share/cargo/registry/trybuild-1.0.54/src/tests.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests
+#usr/share/cargo/registry/trybuild-1.0.54/tests/test.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/compile-fail-0.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/compile-fail-1.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/compile-fail-2.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/compile-fail-2.stderr
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/compile-fail-3.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/compile-fail-3.stderr
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/print-both.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/print-stderr.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/print-stdout.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-fail.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-0.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-1.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-2.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-3.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-4.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-5.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-6.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-7.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-8.rs
+#usr/share/cargo/registry/trybuild-1.0.54/tests/ui/run-pass-9.rs
diff --git a/config/rootfiles/common/rust-typenum b/config/rootfiles/common/rust-typenum
new file mode 100644 (file)
index 0000000..03ab8e2
--- /dev/null
@@ -0,0 +1,27 @@
+#usr/share/cargo/registry/typenum-1.15.0
+#usr/share/cargo/registry/typenum-1.15.0/.cargo-checksum.json
+#usr/share/cargo/registry/typenum-1.15.0/CHANGELOG.md
+#usr/share/cargo/registry/typenum-1.15.0/Cargo.toml
+#usr/share/cargo/registry/typenum-1.15.0/Cargo.toml.deps
+#usr/share/cargo/registry/typenum-1.15.0/LICENSE
+#usr/share/cargo/registry/typenum-1.15.0/LICENSE-APACHE
+#usr/share/cargo/registry/typenum-1.15.0/LICENSE-MIT
+#usr/share/cargo/registry/typenum-1.15.0/README.md
+#usr/share/cargo/registry/typenum-1.15.0/build
+#usr/share/cargo/registry/typenum-1.15.0/build/main.rs
+#usr/share/cargo/registry/typenum-1.15.0/build/op.rs
+#usr/share/cargo/registry/typenum-1.15.0/build/tests.rs
+#usr/share/cargo/registry/typenum-1.15.0/clippy.toml
+#usr/share/cargo/registry/typenum-1.15.0/rustfmt.toml
+#usr/share/cargo/registry/typenum-1.15.0/src
+#usr/share/cargo/registry/typenum-1.15.0/src/array.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/bit.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/int.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/lib.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/marker_traits.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/operator_aliases.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/private.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/type_operators.rs
+#usr/share/cargo/registry/typenum-1.15.0/src/uint.rs
+#usr/share/cargo/registry/typenum-1.15.0/tests
+#usr/share/cargo/registry/typenum-1.15.0/tests/test.rs
diff --git a/config/rootfiles/common/rust-ucd-trie b/config/rootfiles/common/rust-ucd-trie
new file mode 100644 (file)
index 0000000..e71389a
--- /dev/null
@@ -0,0 +1,13 @@
+#usr/share/cargo/registry/ucd-trie-0.1.3
+#usr/share/cargo/registry/ucd-trie-0.1.3/.cargo-checksum.json
+#usr/share/cargo/registry/ucd-trie-0.1.3/Cargo.toml
+#usr/share/cargo/registry/ucd-trie-0.1.3/Cargo.toml.deps
+#usr/share/cargo/registry/ucd-trie-0.1.3/LICENSE-APACHE
+#usr/share/cargo/registry/ucd-trie-0.1.3/LICENSE-MIT
+#usr/share/cargo/registry/ucd-trie-0.1.3/README.md
+#usr/share/cargo/registry/ucd-trie-0.1.3/benches
+#usr/share/cargo/registry/ucd-trie-0.1.3/benches/bench.rs
+#usr/share/cargo/registry/ucd-trie-0.1.3/src
+#usr/share/cargo/registry/ucd-trie-0.1.3/src/general_category.rs
+#usr/share/cargo/registry/ucd-trie-0.1.3/src/lib.rs
+#usr/share/cargo/registry/ucd-trie-0.1.3/src/owned.rs
diff --git a/config/rootfiles/common/rust-unicode-xid b/config/rootfiles/common/rust-unicode-xid
new file mode 100644 (file)
index 0000000..01ae4ac
--- /dev/null
@@ -0,0 +1,14 @@
+#usr/share/cargo/registry/unicode-xid-0.2.1
+#usr/share/cargo/registry/unicode-xid-0.2.1/.cargo-checksum.json
+#usr/share/cargo/registry/unicode-xid-0.2.1/COPYRIGHT
+#usr/share/cargo/registry/unicode-xid-0.2.1/Cargo.toml
+#usr/share/cargo/registry/unicode-xid-0.2.1/Cargo.toml.deps
+#usr/share/cargo/registry/unicode-xid-0.2.1/LICENSE-APACHE
+#usr/share/cargo/registry/unicode-xid-0.2.1/LICENSE-MIT
+#usr/share/cargo/registry/unicode-xid-0.2.1/README.md
+#usr/share/cargo/registry/unicode-xid-0.2.1/src
+#usr/share/cargo/registry/unicode-xid-0.2.1/src/lib.rs
+#usr/share/cargo/registry/unicode-xid-0.2.1/src/tables.rs
+#usr/share/cargo/registry/unicode-xid-0.2.1/src/tests.rs
+#usr/share/cargo/registry/unicode-xid-0.2.1/tests
+#usr/share/cargo/registry/unicode-xid-0.2.1/tests/exhaustive_tests.rs
diff --git a/config/rootfiles/common/rust-unindent b/config/rootfiles/common/rust-unindent
new file mode 100644 (file)
index 0000000..ab90590
--- /dev/null
@@ -0,0 +1,9 @@
+#usr/share/cargo/registry/unindent-0.1.7
+#usr/share/cargo/registry/unindent-0.1.7/.cargo-checksum.json
+#usr/share/cargo/registry/unindent-0.1.7/Cargo.toml
+#usr/share/cargo/registry/unindent-0.1.7/Cargo.toml.deps
+#usr/share/cargo/registry/unindent-0.1.7/LICENSE-APACHE
+#usr/share/cargo/registry/unindent-0.1.7/LICENSE-MIT
+#usr/share/cargo/registry/unindent-0.1.7/README.md
+#usr/share/cargo/registry/unindent-0.1.7/src
+#usr/share/cargo/registry/unindent-0.1.7/src/lib.rs
diff --git a/config/rootfiles/common/rust-version-check b/config/rootfiles/common/rust-version-check
new file mode 100644 (file)
index 0000000..13fe86c
--- /dev/null
@@ -0,0 +1,12 @@
+#usr/share/cargo/registry/version-check-0.9.4
+#usr/share/cargo/registry/version-check-0.9.4/.cargo-checksum.json
+#usr/share/cargo/registry/version-check-0.9.4/Cargo.toml
+#usr/share/cargo/registry/version-check-0.9.4/Cargo.toml.deps
+#usr/share/cargo/registry/version-check-0.9.4/LICENSE-APACHE
+#usr/share/cargo/registry/version-check-0.9.4/LICENSE-MIT
+#usr/share/cargo/registry/version-check-0.9.4/README.md
+#usr/share/cargo/registry/version-check-0.9.4/src
+#usr/share/cargo/registry/version-check-0.9.4/src/channel.rs
+#usr/share/cargo/registry/version-check-0.9.4/src/date.rs
+#usr/share/cargo/registry/version-check-0.9.4/src/lib.rs
+#usr/share/cargo/registry/version-check-0.9.4/src/version.rs
diff --git a/config/rootfiles/common/rust-walkdir b/config/rootfiles/common/rust-walkdir
new file mode 100644 (file)
index 0000000..1a1f8a5
--- /dev/null
@@ -0,0 +1,21 @@
+#usr/share/cargo/registry/walkdir-2.3.2
+#usr/share/cargo/registry/walkdir-2.3.2/.cargo-checksum.json
+#usr/share/cargo/registry/walkdir-2.3.2/COPYING
+#usr/share/cargo/registry/walkdir-2.3.2/Cargo.toml
+#usr/share/cargo/registry/walkdir-2.3.2/Cargo.toml.deps
+#usr/share/cargo/registry/walkdir-2.3.2/LICENSE-MIT
+#usr/share/cargo/registry/walkdir-2.3.2/README.md
+#usr/share/cargo/registry/walkdir-2.3.2/UNLICENSE
+#usr/share/cargo/registry/walkdir-2.3.2/compare
+#usr/share/cargo/registry/walkdir-2.3.2/compare/nftw.c
+#usr/share/cargo/registry/walkdir-2.3.2/compare/walk.py
+#usr/share/cargo/registry/walkdir-2.3.2/rustfmt.toml
+#usr/share/cargo/registry/walkdir-2.3.2/src
+#usr/share/cargo/registry/walkdir-2.3.2/src/dent.rs
+#usr/share/cargo/registry/walkdir-2.3.2/src/error.rs
+#usr/share/cargo/registry/walkdir-2.3.2/src/lib.rs
+#usr/share/cargo/registry/walkdir-2.3.2/src/tests
+#usr/share/cargo/registry/walkdir-2.3.2/src/tests/mod.rs
+#usr/share/cargo/registry/walkdir-2.3.2/src/tests/recursive.rs
+#usr/share/cargo/registry/walkdir-2.3.2/src/tests/util.rs
+#usr/share/cargo/registry/walkdir-2.3.2/src/util.rs
index 0b0c83f578fb94fabf2858a1f45004184f3d0b88..7fc85235a814e882d3fba1192fa81e45049ea9a5 100644 (file)
@@ -2,14 +2,16 @@ bin/login
 bin/passwd
 bin/su
 #etc/.pwd.lock
-#etc/default
-#etc/default/useradd
 etc/limits
 etc/login.access
 etc/login.defs
 #etc/passwd-
 etc/shadow
 #etc/shadow-
+#lib/libsubid.la
+#lib/libsubid.so
+lib/libsubid.so.4
+lib/libsubid.so.4.0.0
 sbin/nologin
 #usr/bin/chage
 #usr/bin/chfn
@@ -22,6 +24,8 @@ sbin/nologin
 #usr/bin/newgrp
 #usr/bin/newuidmap
 #usr/bin/sg
+#usr/include/shadow
+#usr/include/shadow/subid.h
 #usr/lib/libshadow.so
 #usr/sbin/chgpasswd
 usr/sbin/chpasswd
@@ -42,48 +46,3 @@ usr/sbin/userdel
 usr/sbin/usermod
 #usr/sbin/vigr
 #usr/sbin/vipw
-#usr/share/man/man1/chage.1
-#usr/share/man/man1/chfn.1
-#usr/share/man/man1/chsh.1
-#usr/share/man/man1/expiry.1
-#usr/share/man/man1/gpasswd.1
-#usr/share/man/man1/login.1
-#usr/share/man/man1/newgidmap.1
-#usr/share/man/man1/newgrp.1
-#usr/share/man/man1/newuidmap.1
-#usr/share/man/man1/passwd.1
-#usr/share/man/man1/sg.1
-#usr/share/man/man1/su.1
-#usr/share/man/man3/shadow.3
-#usr/share/man/man5/faillog.5
-#usr/share/man/man5/gshadow.5
-#usr/share/man/man5/limits.5
-#usr/share/man/man5/login.access.5
-#usr/share/man/man5/login.defs.5
-#usr/share/man/man5/porttime.5
-#usr/share/man/man5/shadow.5
-#usr/share/man/man5/suauth.5
-#usr/share/man/man5/subgid.5
-#usr/share/man/man5/subuid.5
-#usr/share/man/man8/chgpasswd.8
-#usr/share/man/man8/chpasswd.8
-#usr/share/man/man8/faillog.8
-#usr/share/man/man8/groupadd.8
-#usr/share/man/man8/groupdel.8
-#usr/share/man/man8/groupmems.8
-#usr/share/man/man8/groupmod.8
-#usr/share/man/man8/grpck.8
-#usr/share/man/man8/grpconv.8
-#usr/share/man/man8/grpunconv.8
-#usr/share/man/man8/lastlog.8
-#usr/share/man/man8/logoutd.8
-#usr/share/man/man8/newusers.8
-#usr/share/man/man8/nologin.8
-#usr/share/man/man8/pwck.8
-#usr/share/man/man8/pwconv.8
-#usr/share/man/man8/pwunconv.8
-#usr/share/man/man8/useradd.8
-#usr/share/man/man8/userdel.8
-#usr/share/man/man8/usermod.8
-#usr/share/man/man8/vigr.8
-#usr/share/man/man8/vipw.8
index 2a407ed445c20d77d6a9165bf606df9277c79f81..50c77a114806de3b228d9916389796720bec4d7a 100644 (file)
@@ -521,15 +521,60 @@ usr/lib/squid/errors/en/error-details.txt
 #usr/lib/squid/errors/es
 #usr/lib/squid/errors/es-ar
 #usr/lib/squid/errors/es-bo
+#usr/lib/squid/errors/es-bz
 #usr/lib/squid/errors/es-cl
 #usr/lib/squid/errors/es-co
 #usr/lib/squid/errors/es-cr
+#usr/lib/squid/errors/es-cu
 #usr/lib/squid/errors/es-do
 #usr/lib/squid/errors/es-ec
 #usr/lib/squid/errors/es-es
 #usr/lib/squid/errors/es-gt
 #usr/lib/squid/errors/es-hn
 #usr/lib/squid/errors/es-mx
+#usr/lib/squid/errors/es-mx/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/es-mx/ERR_ACL_TIME_QUOTA_EXCEEDED
+#usr/lib/squid/errors/es-mx/ERR_AGENT_CONFIGURE
+#usr/lib/squid/errors/es-mx/ERR_AGENT_WPAD
+#usr/lib/squid/errors/es-mx/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/es-mx/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/es-mx/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/es-mx/ERR_CONFLICT_HOST
+#usr/lib/squid/errors/es-mx/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/es-mx/ERR_DIR_LISTING
+#usr/lib/squid/errors/es-mx/ERR_DNS_FAIL
+#usr/lib/squid/errors/es-mx/ERR_ESI
+#usr/lib/squid/errors/es-mx/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/es-mx/ERR_FTP_DISABLED
+#usr/lib/squid/errors/es-mx/ERR_FTP_FAILURE
+#usr/lib/squid/errors/es-mx/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/es-mx/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/es-mx/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/es-mx/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/es-mx/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/es-mx/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/es-mx/ERR_GATEWAY_FAILURE
+#usr/lib/squid/errors/es-mx/ERR_ICAP_FAILURE
+#usr/lib/squid/errors/es-mx/ERR_INVALID_REQ
+#usr/lib/squid/errors/es-mx/ERR_INVALID_RESP
+#usr/lib/squid/errors/es-mx/ERR_INVALID_URL
+#usr/lib/squid/errors/es-mx/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/es-mx/ERR_NO_RELAY
+#usr/lib/squid/errors/es-mx/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/es-mx/ERR_PRECONDITION_FAILED
+#usr/lib/squid/errors/es-mx/ERR_PROTOCOL_UNKNOWN
+#usr/lib/squid/errors/es-mx/ERR_READ_ERROR
+#usr/lib/squid/errors/es-mx/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/es-mx/ERR_SECURE_CONNECT_FAIL
+#usr/lib/squid/errors/es-mx/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/es-mx/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/es-mx/ERR_TOO_BIG
+#usr/lib/squid/errors/es-mx/ERR_UNSUP_HTTPVERSION
+#usr/lib/squid/errors/es-mx/ERR_UNSUP_REQ
+#usr/lib/squid/errors/es-mx/ERR_URN_RESOLVE
+#usr/lib/squid/errors/es-mx/ERR_WRITE_ERROR
+#usr/lib/squid/errors/es-mx/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/es-mx/error-details.txt
 #usr/lib/squid/errors/es-ni
 #usr/lib/squid/errors/es-pa
 #usr/lib/squid/errors/es-pe
@@ -1673,6 +1718,7 @@ usr/lib/squid/errors/ru/error-details.txt
 #usr/lib/squid/errors/sl/ERR_WRITE_ERROR
 #usr/lib/squid/errors/sl/ERR_ZERO_SIZE_OBJECT
 #usr/lib/squid/errors/sl/error-details.txt
+#usr/lib/squid/errors/spq
 #usr/lib/squid/errors/sr
 #usr/lib/squid/errors/sr-cyrl
 #usr/lib/squid/errors/sr-cyrl-cs
@@ -2185,10 +2231,10 @@ usr/lib/squid/errors/tr/error-details.txt
 usr/lib/squid/ext_delayer_acl
 usr/lib/squid/ext_edirectory_userip_acl
 usr/lib/squid/ext_file_userip_acl
+usr/lib/squid/ext_kerberos_sid_group_acl
 usr/lib/squid/ext_ldap_group_acl
 usr/lib/squid/ext_session_acl
 usr/lib/squid/ext_sql_session_acl
-usr/lib/squid/ext_time_quota_acl
 usr/lib/squid/ext_unix_group_acl
 usr/lib/squid/ext_wbinfo_group_acl
 usr/lib/squid/helper-mux
@@ -2273,10 +2319,10 @@ usr/sbin/updxlrator
 #usr/share/man/man8/ext_delayer_acl.8
 #usr/share/man/man8/ext_edirectory_userip_acl.8
 #usr/share/man/man8/ext_file_userip_acl.8
+#usr/share/man/man8/ext_kerberos_sid_group_acl.8
 #usr/share/man/man8/ext_ldap_group_acl.8
 #usr/share/man/man8/ext_session_acl.8
 #usr/share/man/man8/ext_sql_session_acl.8
-#usr/share/man/man8/ext_time_quota_acl.8
 #usr/share/man/man8/ext_unix_group_acl.8
 #usr/share/man/man8/ext_wbinfo_group_acl.8
 #usr/share/man/man8/helper-mux.8
index 41193f4ead4d2b612e164d843bc3101ca8714567..7f9ff8156e425460e50928c2beb9eb5d55150f57 100644 (file)
@@ -39,9 +39,6 @@ usr/share/suricata
 #usr/share/suricata/rules/tls-events.rules
 var/ipfire/suricata/suricata-default-rules.yaml
 var/lib/suricata
-var/lib/suricata/classification.config
-var/lib/suricata/reference.config
-var/lib/suricata/threshold.config
 var/log/suricata
 #var/log/suricata/certs
 #var/log/suricata/files
index 5ad0d658a7fee71239952917be9372aaf880f582..e0da3a80247097dba1a379183272f142c887b2f5 100644 (file)
@@ -25,20 +25,20 @@ usr/bin/tclsh8.6
 #usr/include/tdbc.h
 #usr/include/tdbcDecls.h
 #usr/include/tdbcInt.h
-#usr/lib/itcl4.2.1
-usr/lib/itcl4.2.1/itcl.tcl
-usr/lib/itcl4.2.1/itclConfig.sh
-usr/lib/itcl4.2.1/itclHullCmds.tcl
-usr/lib/itcl4.2.1/itclWidget.tcl
-usr/lib/itcl4.2.1/libitcl4.2.1.so
-usr/lib/itcl4.2.1/libitclstub4.2.1.a
-usr/lib/itcl4.2.1/pkgIndex.tcl
+#usr/lib/itcl4.2.2
+usr/lib/itcl4.2.2/itcl.tcl
+usr/lib/itcl4.2.2/itclConfig.sh
+usr/lib/itcl4.2.2/itclHullCmds.tcl
+usr/lib/itcl4.2.2/itclWidget.tcl
+usr/lib/itcl4.2.2/libitcl4.2.2.so
+usr/lib/itcl4.2.2/libitclstub4.2.2.a
+usr/lib/itcl4.2.2/pkgIndex.tcl
 usr/lib/libtcl8.6.so
 #usr/lib/libtclstub8.6.a
 #usr/lib/pkgconfig/tcl.pc
-#usr/lib/sqlite3.34.0
-usr/lib/sqlite3.34.0/libsqlite3.34.0.so
-usr/lib/sqlite3.34.0/pkgIndex.tcl
+#usr/lib/sqlite3.36.0
+usr/lib/sqlite3.36.0/libsqlite3.36.0.so
+usr/lib/sqlite3.36.0/pkgIndex.tcl
 #usr/lib/tcl8
 #usr/lib/tcl8.6
 usr/lib/tcl8.6/auto.tcl
@@ -46,6 +46,7 @@ usr/lib/tcl8.6/clock.tcl
 usr/lib/tcl8.6/encoding
 usr/lib/tcl8.6/encoding/ascii.enc
 usr/lib/tcl8.6/encoding/big5.enc
+usr/lib/tcl8.6/encoding/cns11643.enc
 usr/lib/tcl8.6/encoding/cp1250.enc
 usr/lib/tcl8.6/encoding/cp1251.enc
 usr/lib/tcl8.6/encoding/cp1252.enc
@@ -89,6 +90,7 @@ usr/lib/tcl8.6/encoding/iso2022-kr.enc
 usr/lib/tcl8.6/encoding/iso2022.enc
 usr/lib/tcl8.6/encoding/iso8859-1.enc
 usr/lib/tcl8.6/encoding/iso8859-10.enc
+usr/lib/tcl8.6/encoding/iso8859-11.enc
 usr/lib/tcl8.6/encoding/iso8859-13.enc
 usr/lib/tcl8.6/encoding/iso8859-14.enc
 usr/lib/tcl8.6/encoding/iso8859-15.enc
@@ -267,7 +269,7 @@ usr/lib/tcl8.6/tm.tcl
 usr/lib/tcl8.6/word.tcl
 #usr/lib/tcl8/8.4
 usr/lib/tcl8/8.4/platform
-usr/lib/tcl8/8.4/platform-1.0.15.tm
+usr/lib/tcl8/8.4/platform-1.0.18.tm
 usr/lib/tcl8/8.4/platform/shell-1.1.4.tm
 #usr/lib/tcl8/8.5
 usr/lib/tcl8/8.5/msgcat-1.6.1.tm
@@ -275,32 +277,33 @@ usr/lib/tcl8/8.5/tcltest-2.5.3.tm
 #usr/lib/tcl8/8.6
 usr/lib/tcl8/8.6/http-2.9.5.tm
 usr/lib/tcl8/8.6/tdbc
-usr/lib/tcl8/8.6/tdbc/sqlite3-1.1.2.tm
+usr/lib/tcl8/8.6/tdbc/sqlite3-1.1.3.tm
 usr/lib/tclConfig.sh
 usr/lib/tclooConfig.sh
-#usr/lib/tdbc1.1.2
-usr/lib/tdbc1.1.2/libtdbc1.1.2.so
-usr/lib/tdbc1.1.2/libtdbcstub1.1.2.a
-usr/lib/tdbc1.1.2/pkgIndex.tcl
-usr/lib/tdbc1.1.2/tdbc.tcl
-usr/lib/tdbc1.1.2/tdbcConfig.sh
-#usr/lib/tdbcmysql1.1.2
-usr/lib/tdbcmysql1.1.2/libtdbcmysql1.1.2.so
-usr/lib/tdbcmysql1.1.2/pkgIndex.tcl
-usr/lib/tdbcmysql1.1.2/tdbcmysql.tcl
-#usr/lib/tdbcodbc1.1.2
-usr/lib/tdbcodbc1.1.2/libtdbcodbc1.1.2.so
-usr/lib/tdbcodbc1.1.2/pkgIndex.tcl
-usr/lib/tdbcodbc1.1.2/tdbcodbc.tcl
-#usr/lib/tdbcpostgres1.1.2
-usr/lib/tdbcpostgres1.1.2/libtdbcpostgres1.1.2.so
-usr/lib/tdbcpostgres1.1.2/pkgIndex.tcl
-usr/lib/tdbcpostgres1.1.2/tdbcpostgres.tcl
-#usr/lib/thread2.8.6
-usr/lib/thread2.8.6/libthread2.8.6.so
-usr/lib/thread2.8.6/pkgIndex.tcl
-usr/lib/thread2.8.6/ttrace.tcl
+usr/lib/tdbc1.1.3
+usr/lib/tdbc1.1.3/libtdbc1.1.3.so
+usr/lib/tdbc1.1.3/libtdbcstub1.1.3.a
+usr/lib/tdbc1.1.3/pkgIndex.tcl
+usr/lib/tdbc1.1.3/tdbc.tcl
+usr/lib/tdbc1.1.3/tdbcConfig.sh
+#usr/lib/tdbcmysql1.1.3
+usr/lib/tdbcmysql1.1.3/libtdbcmysql1.1.3.so
+usr/lib/tdbcmysql1.1.3/pkgIndex.tcl
+usr/lib/tdbcmysql1.1.3/tdbcmysql.tcl
+#usr/lib/tdbcodbc1.1.3
+usr/lib/tdbcodbc1.1.3/libtdbcodbc1.1.3.so
+usr/lib/tdbcodbc1.1.3/pkgIndex.tcl
+usr/lib/tdbcodbc1.1.3/tdbcodbc.tcl
+#usr/lib/tdbcpostgres1.1.3
+usr/lib/tdbcpostgres1.1.3/libtdbcpostgres1.1.3.so
+usr/lib/tdbcpostgres1.1.3/pkgIndex.tcl
+usr/lib/tdbcpostgres1.1.3/tdbcpostgres.tcl
+#usr/lib/thread2.8.7
+usr/lib/thread2.8.7/libthread2.8.7.so
+usr/lib/thread2.8.7/pkgIndex.tcl
+usr/lib/thread2.8.7/ttrace.tcl
 #usr/man/man1/tclsh.1
+#usr/man/man3
 #usr/man/man3/DString.3
 #usr/man/man3/Notifier.3
 #usr/man/man3/RegExp.3
@@ -603,6 +606,7 @@ usr/lib/thread2.8.6/ttrace.tcl
 #usr/man/man3/Tcl_GetLongFromObj.3
 #usr/man/man3/Tcl_GetMaster.3
 #usr/man/man3/Tcl_GetMathFuncInfo.3
+#usr/man/man3/Tcl_GetMemoryInfo.3
 #usr/man/man3/Tcl_GetModeFromStat.3
 #usr/man/man3/Tcl_GetModificationTimeFromStat.3
 #usr/man/man3/Tcl_GetNameOfExecutable.3
@@ -697,6 +701,8 @@ usr/lib/thread2.8.6/ttrace.tcl
 #usr/man/man3/Tcl_LoadFile.3
 #usr/man/man3/Tcl_LogCommandInfo.3
 #usr/man/man3/Tcl_Main.3
+#usr/man/man3/Tcl_MainEx.3
+#usr/man/man3/Tcl_MainExW.3
 #usr/man/man3/Tcl_MakeFileChannel.3
 #usr/man/man3/Tcl_MakeSafe.3
 #usr/man/man3/Tcl_MakeTcpClientChannel.3
index 1162c3ab12a08f53f05f3c321bb6a8ea441e83e0..2ebf4f95cfde7a92c26e74f907728b286999f735 100644 (file)
@@ -2,11 +2,6 @@ usr/bin/lsusb
 usr/bin/lsusb.py
 usr/bin/usb-devices
 usr/bin/usbhid-dump
-usr/sbin/update-usbids.sh
-#usr/share/hwdata
-#usr/share/hwdata/usb.ids
 #usr/share/man/man1/usb-devices.1
 #usr/share/man/man8/lsusb.8
 #usr/share/man/man8/usbhid-dump.8
-#usr/share/pkgconfig
-#usr/share/pkgconfig/usbutils.pc
index 452d6543af4ba705354bb717fda2dba6443436c7..a908053b1f56c155802d834b5f89ab26e1996b9a 100644 (file)
@@ -302,6 +302,7 @@ srv/web/ipfire/html/images/view-refresh.png
 srv/web/ipfire/html/images/wakeup.gif
 srv/web/ipfire/html/images/window-new.png
 srv/web/ipfire/html/include
+srv/web/ipfire/html/include/pakfire.js
 srv/web/ipfire/html/include/rrdimage.js
 srv/web/ipfire/html/include/zoneconf.js
 srv/web/ipfire/html/index.cgi
index 962590af5ce3e80a8f0706432d96c259146d9919..068cc36d3e6ac5acfed39393893a5b1bc224e376 100644 (file)
@@ -86,8 +86,6 @@ lib/firmware/intel-ucode/06-6a-06
 lib/firmware/intel-ucode/06-7a-01
 lib/firmware/intel-ucode/06-7a-08
 lib/firmware/intel-ucode/06-7e-05
-lib/firmware/intel-ucode/06-86-04
-lib/firmware/intel-ucode/06-86-05
 lib/firmware/intel-ucode/06-8a-01
 lib/firmware/intel-ucode/06-8c-01
 lib/firmware/intel-ucode/06-8c-02
index c2eaa6ef0b2d2fabd306d95bd0557252a0278726..a01af1fc48cada71f3d1669e830ada47602ab50b 100644 (file)
@@ -7611,6 +7611,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/FW_ATTR_CLASS
 #lib/modules/KVER-ipfire/build/include/config/FW_CACHE
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER
+#lib/modules/KVER-ipfire/build/include/config/FW_LOADER_COMPRESS
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER_PAGED_BUF
 #lib/modules/KVER-ipfire/build/include/config/FW_LOADER_USER_HELPER
 #lib/modules/KVER-ipfire/build/include/config/GACT_PROB
@@ -11057,7 +11058,6 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/config/X86_PKG_TEMP_THERMAL
 #lib/modules/KVER-ipfire/build/include/config/X86_PLATFORM_DEVICES
 #lib/modules/KVER-ipfire/build/include/config/X86_PLATFORM_DRIVERS_DELL
-#lib/modules/KVER-ipfire/build/include/config/X86_PLATFORM_DRIVERS_INTEL
 #lib/modules/KVER-ipfire/build/include/config/X86_PMEM_LEGACY
 #lib/modules/KVER-ipfire/build/include/config/X86_PMEM_LEGACY_DEVICE
 #lib/modules/KVER-ipfire/build/include/config/X86_PM_TIMER
@@ -15948,6 +15948,7 @@ etc/modprobe.d/ipv6.conf
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cryptouser.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cuda.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cxl_mem.h
+#lib/modules/KVER-ipfire/build/include/uapi/linux/cyclades.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/cycx_cfm.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/dcbnl.h
 #lib/modules/KVER-ipfire/build/include/uapi/linux/dccp.h
index 4ba12fb00ffd6616cfe42771604b49159759ed1c..ef1e1ad5b54de7840cc34ba2d97d299e47be3d1e 100644 (file)
 #usr/include/linux/cryptouser.h
 #usr/include/linux/cuda.h
 #usr/include/linux/cxl_mem.h
+#usr/include/linux/cyclades.h
 #usr/include/linux/cycx_cfm.h
 #usr/include/linux/dcbnl.h
 #usr/include/linux/dccp.h
index 6f4c7fd45415fcdeb2feaaa6116ea0557971c243..019a89d1331747a96a72e5020c4133b2b49ac805 100644 (file)
@@ -4,13 +4,12 @@
 #usr/bin/rust-lldb
 #usr/bin/rustc
 #usr/bin/rustdoc
-#usr/etc
 #usr/etc/bash_completion.d
 #usr/etc/bash_completion.d/cargo
-#usr/lib/libLLVM-11-rust-1.51.0-stable.so
-#usr/lib/librustc_driver-7ea116e55de24565.so
-#usr/lib/libstd-b1047a2788193be4.so
-#usr/lib/libtest-db2b7a6bef408fa0.so
+#usr/lib/libLLVM-13-rust-1.60.0-nightly.so
+#usr/lib/librustc_driver-aa47d0f7d4285ece.so
+#usr/lib/libstd-516357af627e1a7d.so
+#usr/lib/libtest-99495cca8bccf19c.so
 #usr/lib/rustlib
 #usr/lib/rustlib/components
 #usr/lib/rustlib/etc
 #usr/lib/rustlib/uninstall.sh
 #usr/lib/rustlib/x86_64-unknown-linux-gnu
 #usr/lib/rustlib/x86_64-unknown-linux-gnu/bin
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld64
 #usr/lib/rustlib/x86_64-unknown-linux-gnu/lib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-4b4efaa8c4601753.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-eaad965909c4200f.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-d4ef8bf89076ed01.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-2642d2bccc00517a.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e2523c360f03ba10.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-3aaf8f932781f33e.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-95dbee16e1f1413e.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-d36e07ed2cc56ee4.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-58a065cdff5508a2.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-760e48b3f782e7f5.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c6b02b522c91c060.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-dca728ac8ed54d87.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-e64bb1b2baa83853.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-e8e399e2092f3b2a.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-54c67f2a732d07c8.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libprofiler_builtins-3d6f66b0d6604f40.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-stable_rt.asan.a
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-stable_rt.lsan.a
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-stable_rt.msan.a
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-stable_rt.tsan.a
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-3855d04b1bb40ceb.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-82aeeedcc8d1450a.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-36070e2029bb21ea.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-bb10221986b0d0dc.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-b1047a2788193be4.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-b1047a2788193be4.so
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-48aa4fef4e05ebc9.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-db2b7a6bef408fa0.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-db2b7a6bef408fa0.so
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-ca628c5eca5e5caf.rlib
-#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-5c4d6c9d7595f844.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-02ebc04a72bd9433.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-5a532766d1e80b5b.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-ffaac76756e3f83b.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-b3d84848ab790cf7.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-f98cce041f593917.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-0e3656b1fda5fd7b.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-77187b6b5d97d3f9.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-5cbc32ae14534ca9.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-c79b77d9c2e73c7a.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-f48e57d6d73020ee.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-d995c6cafdb3d253.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c94e3d0069d19330.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-d08f0c83526179dc.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-f2a00a4b18a6afb5.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9cb5ef8235cf10de.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-275d566364a3bbaa.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libprofiler_builtins-04b3e9d05bd6d948.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-nightly_rt.asan.a
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-nightly_rt.lsan.a
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-nightly_rt.msan.a
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-nightly_rt.tsan.a
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-7f98f837d3579544.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-c7b2792f3bc0d0eb.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-2a6a2797f7a73818.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-79fa9b4a33efec6c.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-516357af627e1a7d.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-516357af627e1a7d.so
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-969ebc8623abfcc9.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-99495cca8bccf19c.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-99495cca8bccf19c.so
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-726cf7a6ceb83d9a.rlib
+#usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-7558dde8464d46ce.rlib
 #usr/libexec/cargo-credential-1password
+#usr/share/cargo
+#usr/share/cargo/registry
 #usr/share/doc/cargo
 #usr/share/doc/cargo/LICENSE-APACHE
 #usr/share/doc/cargo/LICENSE-MIT
@@ -91,6 +96,7 @@
 #usr/share/man/man1/cargo-package.1
 #usr/share/man/man1/cargo-pkgid.1
 #usr/share/man/man1/cargo-publish.1
+#usr/share/man/man1/cargo-report.1
 #usr/share/man/man1/cargo-run.1
 #usr/share/man/man1/cargo-rustc.1
 #usr/share/man/man1/cargo-rustdoc.1
index 83e11e4c80430190697920475371680027594e71..c0f4eee731927255425aabde2256ab77b6048ae4 100644 (file)
@@ -10,7 +10,7 @@ usr/bin/zstdmt
 #usr/lib/libzstd.a
 #usr/lib/libzstd.so
 usr/lib/libzstd.so.1
-usr/lib/libzstd.so.1.5.0
+usr/lib/libzstd.so.1.5.1
 #usr/lib/pkgconfig/libzstd.pc
 #usr/share/man/man1/unzstd.1
 #usr/share/man/man1/zstd.1
diff --git a/config/rootfiles/core/164/filelists/aarch64/linux b/config/rootfiles/core/164/filelists/aarch64/linux
new file mode 120000 (symlink)
index 0000000..3a2532b
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/aarch64/linux
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/aarch64/linux-initrd b/config/rootfiles/core/164/filelists/aarch64/linux-initrd
new file mode 120000 (symlink)
index 0000000..8acdb0f
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/aarch64/linux-initrd
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/aarch64/u-boot b/config/rootfiles/core/164/filelists/aarch64/u-boot
new file mode 120000 (symlink)
index 0000000..2a16bdb
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/aarch64/u-boot
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/armv6l/linux b/config/rootfiles/core/164/filelists/armv6l/linux
new file mode 120000 (symlink)
index 0000000..aee1f4d
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv6l/linux
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/armv6l/linux-initrd b/config/rootfiles/core/164/filelists/armv6l/linux-initrd
new file mode 120000 (symlink)
index 0000000..4af11bf
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv6l/linux-initrd
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/bind b/config/rootfiles/core/164/filelists/bind
new file mode 120000 (symlink)
index 0000000..48a0eba
--- /dev/null
@@ -0,0 +1 @@
+../../../common/bind
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/diffutils b/config/rootfiles/core/164/filelists/diffutils
new file mode 120000 (symlink)
index 0000000..a5c02f3
--- /dev/null
@@ -0,0 +1 @@
+../../../common/diffutils
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/expat b/config/rootfiles/core/164/filelists/expat
new file mode 120000 (symlink)
index 0000000..e1923cf
--- /dev/null
@@ -0,0 +1 @@
+../../../common/expat
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/files b/config/rootfiles/core/164/filelists/files
new file mode 100644 (file)
index 0000000..278dc20
--- /dev/null
@@ -0,0 +1,20 @@
+etc/collectd.conf
+etc/rc.d/init.d/firewall
+etc/rc.d/init.d/leds
+etc/rc.d/init.d/partresize
+etc/rc.d/init.d/squid
+etc/suricata/suricata.yaml
+etc/sysctl.conf
+opt/pakfire/lib/functions.pl
+srv/web/ipfire/cgi-bin/ids.cgi
+srv/web/ipfire/cgi-bin/logs.cgi/log.dat
+srv/web/ipfire/cgi-bin/optionsfw.cgi
+srv/web/ipfire/cgi-bin/pakfire.cgi
+srv/web/ipfire/html/include/pakfire.js
+usr/sbin/convert-ids-multiple-providers
+usr/sbin/convert-snort
+var/ipfire/backup/bin/backup.pl
+var/ipfire/backup/include
+var/ipfire/graphs.pl
+var/ipfire/ids-functions.pl
+var/ipfire/urlfilter/autoupdate/autoupdate.urls
diff --git a/config/rootfiles/core/164/filelists/gdbm b/config/rootfiles/core/164/filelists/gdbm
new file mode 120000 (symlink)
index 0000000..ecf63bf
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gdbm
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/hdparm b/config/rootfiles/core/164/filelists/hdparm
new file mode 120000 (symlink)
index 0000000..b644751
--- /dev/null
@@ -0,0 +1 @@
+../../../common/hdparm
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/ids-ruleset-sources b/config/rootfiles/core/164/filelists/ids-ruleset-sources
new file mode 120000 (symlink)
index 0000000..a226ada
--- /dev/null
@@ -0,0 +1 @@
+../../../common/ids-ruleset-sources
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/jq b/config/rootfiles/core/164/filelists/jq
new file mode 120000 (symlink)
index 0000000..5377b9c
--- /dev/null
@@ -0,0 +1 @@
+../../../common/jq
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/kmod b/config/rootfiles/core/164/filelists/kmod
new file mode 120000 (symlink)
index 0000000..0020e19
--- /dev/null
@@ -0,0 +1 @@
+../../../common/kmod
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/libusb b/config/rootfiles/core/164/filelists/libusb
new file mode 120000 (symlink)
index 0000000..edbe8c2
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libusb
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/libxml2 b/config/rootfiles/core/164/filelists/libxml2
new file mode 120000 (symlink)
index 0000000..242e69f
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libxml2
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/libxslt b/config/rootfiles/core/164/filelists/libxslt
new file mode 120000 (symlink)
index 0000000..bf9d766
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libxslt
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/libyang b/config/rootfiles/core/164/filelists/libyang
new file mode 120000 (symlink)
index 0000000..50c26d0
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libyang
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/lvm2 b/config/rootfiles/core/164/filelists/lvm2
new file mode 120000 (symlink)
index 0000000..d640870
--- /dev/null
@@ -0,0 +1 @@
+../../../common/lvm2
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/oinkmaster b/config/rootfiles/core/164/filelists/oinkmaster
new file mode 120000 (symlink)
index 0000000..75029e6
--- /dev/null
@@ -0,0 +1 @@
+../../../common/oinkmaster
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/pciutils b/config/rootfiles/core/164/filelists/pciutils
new file mode 120000 (symlink)
index 0000000..aeb45e7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pciutils
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/pcre2 b/config/rootfiles/core/164/filelists/pcre2
new file mode 120000 (symlink)
index 0000000..4482cae
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pcre2
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/poppler-data b/config/rootfiles/core/164/filelists/poppler-data
new file mode 120000 (symlink)
index 0000000..957aa91
--- /dev/null
@@ -0,0 +1 @@
+../../../common/poppler-data
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/tcl b/config/rootfiles/core/164/filelists/tcl
new file mode 120000 (symlink)
index 0000000..7f620c6
--- /dev/null
@@ -0,0 +1 @@
+../../../common/tcl
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/usbutils b/config/rootfiles/core/164/filelists/usbutils
new file mode 120000 (symlink)
index 0000000..31db5a7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/usbutils
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/x86_64/intel-microcode b/config/rootfiles/core/164/filelists/x86_64/intel-microcode
new file mode 120000 (symlink)
index 0000000..d5ac074
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/intel-microcode
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/x86_64/linux b/config/rootfiles/core/164/filelists/x86_64/linux
new file mode 120000 (symlink)
index 0000000..0615b5b
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/linux
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/x86_64/linux-initrd b/config/rootfiles/core/164/filelists/x86_64/linux-initrd
new file mode 120000 (symlink)
index 0000000..1b9fff7
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/linux-initrd
\ No newline at end of file
diff --git a/config/rootfiles/core/164/filelists/zstd b/config/rootfiles/core/164/filelists/zstd
new file mode 120000 (symlink)
index 0000000..d6d4a3b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/zstd
\ No newline at end of file
diff --git a/config/rootfiles/core/164/update.sh b/config/rootfiles/core/164/update.sh
new file mode 100644 (file)
index 0000000..a0650db
--- /dev/null
@@ -0,0 +1,146 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire 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 3 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2022 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+core=164
+
+exit_with_error() {
+       # Set last succesfull installed core.
+       echo $(($core-1)) > /opt/pakfire/db/core/mine
+       # force fsck at next boot, this may fix free space on xfs
+       touch /forcefsck
+       # don't start pakfire again at error
+       killall -KILL pak_update
+       /usr/bin/logger -p syslog.emerg -t ipfire \
+               "core-update-${core}: $1"
+       exit $2
+}
+
+# Remove old core updates from pakfire cache to save space...
+for (( i=1; i<=$core; i++ )); do
+       rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+KVER="xxxKVERxxx"
+
+# Backup uEnv.txt if exist
+if [ -e /boot/uEnv.txt ]; then
+       cp -vf /boot/uEnv.txt /boot/uEnv.txt.org
+fi
+
+# Do some sanity checks.
+case $(uname -r) in
+       *-ipfire*)
+               # Ok.
+               ;;
+       *)
+               exit_with_error "ERROR cannot update. No IPFire Kernel." 1
+               ;;
+esac
+
+# Check diskspace on root
+ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+
+if [ $ROOTSPACE -lt 100000 ]; then
+       exit_with_error "ERROR cannot update because not enough free space on root." 2
+       exit 2
+fi
+
+# Remove files
+# Remove the old kernel
+rm -rf /boot/System.map-*
+rm -rf /boot/config-*
+rm -rf /boot/ipfirerd-*
+rm -rf /boot/initramfs-*
+rm -rf /boot/vmlinuz-*
+rm -rf /boot/uImage-*
+rm -rf /boot/zImage-*
+rm -rf /boot/uInit-*
+rm -rf /boot/dtb-*
+rm -rf /lib/modules
+
+# Stop services
+/etc/init.d/collectd stop
+/etc/init.d/suricata stop
+
+# Extract files
+extract_files
+
+# update linker config
+ldconfig
+
+# Update Language cache
+/usr/local/bin/update-lang-cache
+
+# Filesytem cleanup
+/usr/local/bin/filesystem-cleanup
+
+# Run convert script for IDS multiple providers
+/usr/sbin/convert-ids-multiple-providers
+
+# Add missing configuration settings to optionsfw configuration
+echo "DROPHOSTILE=off" > /var/ipfire/optionsfw/settings
+echo "DROPSPOOFEDMARTIAN=on" > /var/ipfire/optionsfw/settings
+
+# Apply sysctl changes
+/etc/init.d/sysctl start
+
+# Start services
+/etc/init.d/firewall restart
+/etc/init.d/collectd start
+/etc/init.d/squid restart
+/etc/init.d/suricata start
+
+# remove lm_sensor config after collectd was started
+# to reserch sensors at next boot with updated kernel
+rm -f  /etc/sysconfig/lm_sensors
+
+# Upadate Kernel version uEnv.txt
+if [ -e /boot/uEnv.txt ]; then
+       sed -i -e "s/KVER=.*/KVER=${KVER}/g" /boot/uEnv.txt
+fi
+
+# call user update script (needed for some arm boards)
+if [ -e /boot/pakfire-kernel-update ]; then
+       /boot/pakfire-kernel-update ${KVER}
+fi
+
+# This update needs a reboot...
+touch /var/run/need_reboot
+
+# Finish
+/etc/init.d/fireinfo start
+sendprofile
+
+# Update grub config to display new core version
+if [ -e /boot/grub/grub.cfg ]; then
+       grub-mkconfig -o /boot/grub/grub.cfg
+fi
+
+sync
+
+# Don't report the exitcode last command
+exit 0
+
diff --git a/config/rootfiles/oldcore/163/core-files b/config/rootfiles/oldcore/163/core-files
new file mode 100644 (file)
index 0000000..0dec37e
--- /dev/null
@@ -0,0 +1,5 @@
+etc/system-release
+etc/issue
+etc/os-release
+srv/web/ipfire/cgi-bin/credits.cgi
+var/ipfire/langs
diff --git a/config/rootfiles/oldcore/163/exclude b/config/rootfiles/oldcore/163/exclude
new file mode 100644 (file)
index 0000000..818039f
--- /dev/null
@@ -0,0 +1,34 @@
+boot/config.txt
+boot/grub/grub.cfg
+boot/grub/grubenv
+etc/alternatives
+etc/collectd.custom
+etc/default/grub
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+etc/localtime
+etc/shadow
+etc/snort/snort.conf
+etc/ssl/openssl.cnf
+etc/sudoers
+etc/sysconfig/firewall.local
+etc/sysconfig/rc.local
+etc/udev/rules.d/30-persistent-network.rules
+srv/web/ipfire/html/proxy.pac
+usr/share/xt_geoip
+var/ipfire/dma
+var/ipfire/time
+var/ipfire/firewall/locationblock
+var/ipfire/fwhosts/customlocationgrp
+var/ipfire/ovpn
+var/ipfire/urlfilter/blacklist
+var/ipfire/urlfilter/settings
+var/lib/alternatives
+var/lib/location/database.db
+var/log/cache
+var/log/dhcpcd.log
+var/log/messages
+var/state/dhcp/dhcpd.leases
+var/updatecache
diff --git a/config/rootfiles/oldcore/163/filelists/freetype b/config/rootfiles/oldcore/163/filelists/freetype
new file mode 120000 (symlink)
index 0000000..79ec5c4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/freetype
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/163/filelists/shadow b/config/rootfiles/oldcore/163/filelists/shadow
new file mode 120000 (symlink)
index 0000000..c0824b7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/shadow
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/163/filelists/squid b/config/rootfiles/oldcore/163/filelists/squid
new file mode 120000 (symlink)
index 0000000..2dc8372
--- /dev/null
@@ -0,0 +1 @@
+../../../common/squid
\ No newline at end of file
index 241b14b9b17373c840a75fea73ba1cc63615a69c..820232797e63e1fb07450c0a417f14fb696359b4 100644 (file)
@@ -1,4 +1,5 @@
 usr/bin/netcat
+#usr/info
 #usr/info/dir
 #usr/info/netcat.info
 #usr/man/man1/netcat.1
index 1c531b82011c1afb0657b1d9cfc5951bbc268d62..e57ead0691cb78488567742ee5cf0b3e0e4c0d2f 100644 (file)
@@ -6,8 +6,12 @@ etc/libvirt/libvirtd.conf
 #etc/libvirt/nwfilter/allow-arp.xml
 #etc/libvirt/nwfilter/allow-dhcp-server.xml
 #etc/libvirt/nwfilter/allow-dhcp.xml
+#etc/libvirt/nwfilter/allow-dhcpv6-server.xml
+#etc/libvirt/nwfilter/allow-dhcpv6.xml
 #etc/libvirt/nwfilter/allow-incoming-ipv4.xml
+#etc/libvirt/nwfilter/allow-incoming-ipv6.xml
 #etc/libvirt/nwfilter/allow-ipv4.xml
+#etc/libvirt/nwfilter/allow-ipv6.xml
 #etc/libvirt/nwfilter/clean-traffic-gateway.xml
 #etc/libvirt/nwfilter/clean-traffic.xml
 #etc/libvirt/nwfilter/no-arp-ip-spoofing.xml
@@ -15,6 +19,8 @@ etc/libvirt/libvirtd.conf
 #etc/libvirt/nwfilter/no-arp-spoofing.xml
 #etc/libvirt/nwfilter/no-ip-multicast.xml
 #etc/libvirt/nwfilter/no-ip-spoofing.xml
+#etc/libvirt/nwfilter/no-ipv6-multicast.xml
+#etc/libvirt/nwfilter/no-ipv6-spoofing.xml
 #etc/libvirt/nwfilter/no-mac-broadcast.xml
 #etc/libvirt/nwfilter/no-mac-spoofing.xml
 #etc/libvirt/nwfilter/no-other-l2-traffic.xml
@@ -24,6 +30,7 @@ etc/libvirt/libvirtd.conf
 etc/libvirt/qemu-lockd.conf
 etc/libvirt/qemu.conf
 etc/libvirt/virt-login-shell.conf
+etc/libvirt/virtchd.conf
 etc/libvirt/virtinterfaced.conf
 etc/libvirt/virtlockd.conf
 etc/libvirt/virtlogd.conf
@@ -44,8 +51,10 @@ usr/bin/virsh
 usr/bin/virt-admin
 usr/bin/virt-host-validate
 usr/bin/virt-login-shell
+usr/bin/virt-pki-query-dn
 usr/bin/virt-pki-validate
 usr/bin/virt-qemu-run
+usr/bin/virt-ssh-helper
 usr/bin/virt-xml-validate
 #usr/include/libvirt
 #usr/include/libvirt/libvirt-admin.h
@@ -67,45 +76,33 @@ usr/bin/virt-xml-validate
 #usr/include/libvirt/libvirt.h
 #usr/include/libvirt/virterror.h
 #usr/lib/libvirt
-#usr/lib/libvirt-admin.la
 #usr/lib/libvirt-admin.so
 usr/lib/libvirt-admin.so.0
-usr/lib/libvirt-admin.so.0.6005.0
-#usr/lib/libvirt-lxc.la
+usr/lib/libvirt-admin.so.0.7010.0
 #usr/lib/libvirt-lxc.so
 usr/lib/libvirt-lxc.so.0
-usr/lib/libvirt-lxc.so.0.6005.0
-#usr/lib/libvirt-qemu.la
+usr/lib/libvirt-lxc.so.0.7010.0
 #usr/lib/libvirt-qemu.so
 usr/lib/libvirt-qemu.so.0
-usr/lib/libvirt-qemu.so.0.6005.0
-#usr/lib/libvirt.la
+usr/lib/libvirt-qemu.so.0.7010.0
 #usr/lib/libvirt.so
 usr/lib/libvirt.so.0
-usr/lib/libvirt.so.0.6005.0
+usr/lib/libvirt.so.0.7010.0
 #usr/lib/libvirt/connection-driver
-#usr/lib/libvirt/connection-driver/libvirt_driver_interface.la
+usr/lib/libvirt/connection-driver/libvirt_driver_ch.so
 usr/lib/libvirt/connection-driver/libvirt_driver_interface.so
-#usr/lib/libvirt/connection-driver/libvirt_driver_nodedev.la
 usr/lib/libvirt/connection-driver/libvirt_driver_nodedev.so
-#usr/lib/libvirt/connection-driver/libvirt_driver_nwfilter.la
 usr/lib/libvirt/connection-driver/libvirt_driver_nwfilter.so
-#usr/lib/libvirt/connection-driver/libvirt_driver_qemu.la
 usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so
-#usr/lib/libvirt/connection-driver/libvirt_driver_secret.la
 usr/lib/libvirt/connection-driver/libvirt_driver_secret.so
-#usr/lib/libvirt/connection-driver/libvirt_driver_storage.la
 usr/lib/libvirt/connection-driver/libvirt_driver_storage.so
 #usr/lib/libvirt/lock-driver
-#usr/lib/libvirt/lock-driver/lockd.la
 usr/lib/libvirt/lock-driver/lockd.so
 #usr/lib/libvirt/storage-backend
-#usr/lib/libvirt/storage-backend/libvirt_storage_backend_fs.la
 usr/lib/libvirt/storage-backend/libvirt_storage_backend_fs.so
-#usr/lib/libvirt/storage-backend/libvirt_storage_backend_logical.la
 usr/lib/libvirt/storage-backend/libvirt_storage_backend_logical.so
+usr/lib/libvirt/storage-backend/libvirt_storage_backend_vstorage.so
 #usr/lib/libvirt/storage-file
-#usr/lib/libvirt/storage-file/libvirt_storage_file_fs.la
 usr/lib/libvirt/storage-file/libvirt_storage_file_fs.so
 #usr/lib/pkgconfig/libvirt-admin.pc
 #usr/lib/pkgconfig/libvirt-lxc.pc
@@ -116,6 +113,7 @@ usr/lib/sysctl.d/60-libvirtd.conf
 usr/libexec/libvirt_iohelper
 usr/libexec/virt-login-shell-helper
 usr/sbin/libvirtd
+usr/sbin/virtchd
 usr/sbin/virtinterfaced
 usr/sbin/virtlockd
 usr/sbin/virtlogd
@@ -134,6 +132,7 @@ usr/sbin/virtstoraged
 #usr/share/augeas/lenses/tests/test_libvirt_lockd.aug
 #usr/share/augeas/lenses/tests/test_libvirtd.aug
 #usr/share/augeas/lenses/tests/test_libvirtd_qemu.aug
+#usr/share/augeas/lenses/tests/test_virtchd.aug
 #usr/share/augeas/lenses/tests/test_virtinterfaced.aug
 #usr/share/augeas/lenses/tests/test_virtlockd.aug
 #usr/share/augeas/lenses/tests/test_virtlogd.aug
@@ -143,6 +142,7 @@ usr/sbin/virtstoraged
 #usr/share/augeas/lenses/tests/test_virtqemud.aug
 #usr/share/augeas/lenses/tests/test_virtsecretd.aug
 #usr/share/augeas/lenses/tests/test_virtstoraged.aug
+#usr/share/augeas/lenses/virtchd.aug
 #usr/share/augeas/lenses/virtinterfaced.aug
 #usr/share/augeas/lenses/virtlockd.aug
 #usr/share/augeas/lenses/virtlogd.aug
@@ -204,244 +204,18 @@ usr/sbin/virtstoraged
 #usr/share/doc/libvirt/examples/xml/test/testnodeinline.xml
 #usr/share/doc/libvirt/examples/xml/test/testpool.xml
 #usr/share/doc/libvirt/examples/xml/test/testvol.xml
-#usr/share/doc/libvirt/html
-#usr/share/doc/libvirt/html/404.html
-#usr/share/doc/libvirt/html/acl.html
-#usr/share/doc/libvirt/html/aclpolkit.html
-#usr/share/doc/libvirt/html/advanced-tests.html
-#usr/share/doc/libvirt/html/android-chrome-192x192.png
-#usr/share/doc/libvirt/html/android-chrome-256x256.png
-#usr/share/doc/libvirt/html/api.html
-#usr/share/doc/libvirt/html/api_extension.html
-#usr/share/doc/libvirt/html/apple-touch-icon.png
-#usr/share/doc/libvirt/html/apps.html
-#usr/share/doc/libvirt/html/architecture.gif
-#usr/share/doc/libvirt/html/architecture.html
-#usr/share/doc/libvirt/html/auditlog.html
-#usr/share/doc/libvirt/html/auth.html
-#usr/share/doc/libvirt/html/best-practices.html
-#usr/share/doc/libvirt/html/bindings.html
-#usr/share/doc/libvirt/html/browserconfig.xml
-#usr/share/doc/libvirt/html/bugs.html
-#usr/share/doc/libvirt/html/cgroups.html
-#usr/share/doc/libvirt/html/ci.html
-#usr/share/doc/libvirt/html/coding-style.html
-#usr/share/doc/libvirt/html/committer-guidelines.html
-#usr/share/doc/libvirt/html/compiling.html
-#usr/share/doc/libvirt/html/contact.html
-#usr/share/doc/libvirt/html/contribute.html
-#usr/share/doc/libvirt/html/csharp.html
-#usr/share/doc/libvirt/html/daemons.html
-#usr/share/doc/libvirt/html/dbus.html
-#usr/share/doc/libvirt/html/developer-tooling.html
-#usr/share/doc/libvirt/html/devguide.html
-#usr/share/doc/libvirt/html/docs.html
-#usr/share/doc/libvirt/html/downloads.html
-#usr/share/doc/libvirt/html/drivers.html
-#usr/share/doc/libvirt/html/drvbhyve.html
-#usr/share/doc/libvirt/html/drvesx.html
-#usr/share/doc/libvirt/html/drvhyperv.html
-#usr/share/doc/libvirt/html/drvlxc.html
-#usr/share/doc/libvirt/html/drvnodedev.html
-#usr/share/doc/libvirt/html/drvopenvz.html
-#usr/share/doc/libvirt/html/drvqemu.html
-#usr/share/doc/libvirt/html/drvremote.html
-#usr/share/doc/libvirt/html/drvsecret.html
-#usr/share/doc/libvirt/html/drvtest.html
-#usr/share/doc/libvirt/html/drvvbox.html
-#usr/share/doc/libvirt/html/drvvirtuozzo.html
-#usr/share/doc/libvirt/html/drvvmware.html
-#usr/share/doc/libvirt/html/drvxen.html
-#usr/share/doc/libvirt/html/errors.html
-#usr/share/doc/libvirt/html/favicon-16x16.png
-#usr/share/doc/libvirt/html/favicon-32x32.png
-#usr/share/doc/libvirt/html/favicon.ico
-#usr/share/doc/libvirt/html/firewall.html
-#usr/share/doc/libvirt/html/fonts
-#usr/share/doc/libvirt/html/fonts/LICENSE.rst
-#usr/share/doc/libvirt/html/fonts/overpass-bold-italic.woff
-#usr/share/doc/libvirt/html/fonts/overpass-bold.woff
-#usr/share/doc/libvirt/html/fonts/overpass-italic.woff
-#usr/share/doc/libvirt/html/fonts/overpass-light-italic.woff
-#usr/share/doc/libvirt/html/fonts/overpass-light.woff
-#usr/share/doc/libvirt/html/fonts/overpass-mono-bold.woff
-#usr/share/doc/libvirt/html/fonts/overpass-mono-light.woff
-#usr/share/doc/libvirt/html/fonts/overpass-mono-regular.woff
-#usr/share/doc/libvirt/html/fonts/overpass-mono-semibold.woff
-#usr/share/doc/libvirt/html/fonts/overpass-regular.woff
-#usr/share/doc/libvirt/html/fonts/stylesheet.css
-#usr/share/doc/libvirt/html/format.html
-#usr/share/doc/libvirt/html/formatbackup.html
-#usr/share/doc/libvirt/html/formatcaps.html
-#usr/share/doc/libvirt/html/formatcheckpoint.html
-#usr/share/doc/libvirt/html/formatdomain.html
-#usr/share/doc/libvirt/html/formatdomaincaps.html
-#usr/share/doc/libvirt/html/formatnetwork.html
-#usr/share/doc/libvirt/html/formatnetworkport.html
-#usr/share/doc/libvirt/html/formatnode.html
-#usr/share/doc/libvirt/html/formatnwfilter.html
-#usr/share/doc/libvirt/html/formatsecret.html
-#usr/share/doc/libvirt/html/formatsnapshot.html
-#usr/share/doc/libvirt/html/formatstorage.html
-#usr/share/doc/libvirt/html/formatstoragecaps.html
-#usr/share/doc/libvirt/html/formatstorageencryption.html
-#usr/share/doc/libvirt/html/generic.css
-#usr/share/doc/libvirt/html/goals.html
-#usr/share/doc/libvirt/html/governance.html
-#usr/share/doc/libvirt/html/hacking.html
-#usr/share/doc/libvirt/html/hooks.html
-#usr/share/doc/libvirt/html/html
-#usr/share/doc/libvirt/html/html/home.png
-#usr/share/doc/libvirt/html/html/index-admin.html
-#usr/share/doc/libvirt/html/html/index-lxc.html
-#usr/share/doc/libvirt/html/html/index-qemu.html
-#usr/share/doc/libvirt/html/html/index.html
-#usr/share/doc/libvirt/html/html/left.png
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-admin.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-common.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-domain-checkpoint.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-domain-snapshot.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-domain.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-event.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-host.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-interface.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-lxc.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-network.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-nodedev.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-nwfilter.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-qemu.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-secret.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-storage.html
-#usr/share/doc/libvirt/html/html/libvirt-libvirt-stream.html
-#usr/share/doc/libvirt/html/html/libvirt-virterror.html
-#usr/share/doc/libvirt/html/html/right.png
-#usr/share/doc/libvirt/html/html/up.png
-#usr/share/doc/libvirt/html/hvsupport.html
-#usr/share/doc/libvirt/html/index.html
-#usr/share/doc/libvirt/html/internals
-#usr/share/doc/libvirt/html/internals.html
-#usr/share/doc/libvirt/html/internals/command.html
-#usr/share/doc/libvirt/html/internals/eventloop.html
-#usr/share/doc/libvirt/html/internals/locking.html
-#usr/share/doc/libvirt/html/internals/rpc.html
-#usr/share/doc/libvirt/html/java.html
-#usr/share/doc/libvirt/html/js
-#usr/share/doc/libvirt/html/js/main.js
-#usr/share/doc/libvirt/html/kbase
-#usr/share/doc/libvirt/html/kbase.html
-#usr/share/doc/libvirt/html/kbase/backing_chains.html
-#usr/share/doc/libvirt/html/kbase/domainstatecapture.html
-#usr/share/doc/libvirt/html/kbase/incrementalbackupinternals.html
-#usr/share/doc/libvirt/html/kbase/kvm-realtime.html
-#usr/share/doc/libvirt/html/kbase/launch_security_sev.html
-#usr/share/doc/libvirt/html/kbase/locking-lockd.html
-#usr/share/doc/libvirt/html/kbase/locking-sanlock.html
-#usr/share/doc/libvirt/html/kbase/locking.html
-#usr/share/doc/libvirt/html/kbase/qemu-passthrough-security.html
-#usr/share/doc/libvirt/html/kbase/rpm-deployment.html
-#usr/share/doc/libvirt/html/kbase/s390_protected_virt.html
-#usr/share/doc/libvirt/html/kbase/secureusage.html
-#usr/share/doc/libvirt/html/kbase/virtiofs.html
-#usr/share/doc/libvirt/html/libvirt-daemon-arch.png
-#usr/share/doc/libvirt/html/libvirt-driver-arch.png
-#usr/share/doc/libvirt/html/libvirt-go-xml.html
-#usr/share/doc/libvirt/html/libvirt-go.html
-#usr/share/doc/libvirt/html/libvirt-object-model.png
-#usr/share/doc/libvirt/html/libvirt-virConnect-example.png
-#usr/share/doc/libvirt/html/libvirt.css
-#usr/share/doc/libvirt/html/logging.html
-#usr/share/doc/libvirt/html/logos
-#usr/share/doc/libvirt/html/logos/logo-banner-dark-256.png
-#usr/share/doc/libvirt/html/logos/logo-banner-dark-800.png
-#usr/share/doc/libvirt/html/logos/logo-banner-dark.svg
-#usr/share/doc/libvirt/html/logos/logo-banner-light-256.png
-#usr/share/doc/libvirt/html/logos/logo-banner-light-800.png
-#usr/share/doc/libvirt/html/logos/logo-banner-light.svg
-#usr/share/doc/libvirt/html/logos/logo-base.svg
-#usr/share/doc/libvirt/html/logos/logo-square-128.png
-#usr/share/doc/libvirt/html/logos/logo-square-192.png
-#usr/share/doc/libvirt/html/logos/logo-square-256.png
-#usr/share/doc/libvirt/html/logos/logo-square-96.png
-#usr/share/doc/libvirt/html/logos/logo-square-powered-128.png
-#usr/share/doc/libvirt/html/logos/logo-square-powered-192.png
-#usr/share/doc/libvirt/html/logos/logo-square-powered-256.png
-#usr/share/doc/libvirt/html/logos/logo-square-powered-96.png
-#usr/share/doc/libvirt/html/logos/logo-square-powered.svg
-#usr/share/doc/libvirt/html/logos/logo-square.svg
-#usr/share/doc/libvirt/html/main.css
-#usr/share/doc/libvirt/html/manifest.json
-#usr/share/doc/libvirt/html/manpages
-#usr/share/doc/libvirt/html/manpages/index.html
-#usr/share/doc/libvirt/html/manpages/libvirtd.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-atset1.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-atset2.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-atset3.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-linux.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-osx.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-qnum.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-usb.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-win32.html
-#usr/share/doc/libvirt/html/manpages/virkeycode-xtkbd.html
-#usr/share/doc/libvirt/html/manpages/virkeyname-linux.html
-#usr/share/doc/libvirt/html/manpages/virkeyname-osx.html
-#usr/share/doc/libvirt/html/manpages/virkeyname-win32.html
-#usr/share/doc/libvirt/html/manpages/virsh.html
-#usr/share/doc/libvirt/html/manpages/virt-admin.html
-#usr/share/doc/libvirt/html/manpages/virt-host-validate.html
-#usr/share/doc/libvirt/html/manpages/virt-login-shell.html
-#usr/share/doc/libvirt/html/manpages/virt-pki-validate.html
-#usr/share/doc/libvirt/html/manpages/virt-qemu-run.html
-#usr/share/doc/libvirt/html/manpages/virt-sanlock-cleanup.html
-#usr/share/doc/libvirt/html/manpages/virt-xml-validate.html
-#usr/share/doc/libvirt/html/manpages/virtlockd.html
-#usr/share/doc/libvirt/html/manpages/virtlogd.html
-#usr/share/doc/libvirt/html/migration-managed-direct.png
-#usr/share/doc/libvirt/html/migration-managed-p2p.png
-#usr/share/doc/libvirt/html/migration-native.png
-#usr/share/doc/libvirt/html/migration-tunnel.png
-#usr/share/doc/libvirt/html/migration-unmanaged-direct.png
-#usr/share/doc/libvirt/html/migration.html
-#usr/share/doc/libvirt/html/mobile.css
-#usr/share/doc/libvirt/html/mstile-150x150.png
-#usr/share/doc/libvirt/html/newreposetup.html
-#usr/share/doc/libvirt/html/news.html
-#usr/share/doc/libvirt/html/node.gif
-#usr/share/doc/libvirt/html/nss.html
-#usr/share/doc/libvirt/html/pci-addresses.html
-#usr/share/doc/libvirt/html/pci-hotplug.html
-#usr/share/doc/libvirt/html/php.html
-#usr/share/doc/libvirt/html/platforms.html
-#usr/share/doc/libvirt/html/programming-languages.html
-#usr/share/doc/libvirt/html/python.html
-#usr/share/doc/libvirt/html/remote.html
-#usr/share/doc/libvirt/html/securityprocess.html
-#usr/share/doc/libvirt/html/storage.html
-#usr/share/doc/libvirt/html/strategy.html
-#usr/share/doc/libvirt/html/styleguide.html
-#usr/share/doc/libvirt/html/submitting-patches.html
-#usr/share/doc/libvirt/html/support.html
-#usr/share/doc/libvirt/html/testapi.html
-#usr/share/doc/libvirt/html/testsuites.html
-#usr/share/doc/libvirt/html/testtck.html
-#usr/share/doc/libvirt/html/tlscerts.html
-#usr/share/doc/libvirt/html/uri.html
-#usr/share/doc/libvirt/html/virshcmdref.html
-#usr/share/doc/libvirt/html/windows.html
 #usr/share/libvirt
-#usr/share/libvirt/api
-usr/share/libvirt/api/libvirt-admin-api.xml
-usr/share/libvirt/api/libvirt-api.xml
-usr/share/libvirt/api/libvirt-lxc-api.xml
-usr/share/libvirt/api/libvirt-qemu-api.xml
 #usr/share/libvirt/cpu_map
-#usr/share/libvirt/cpu_map/arm_Falkor.xml
-#usr/share/libvirt/cpu_map/arm_Kunpeng-920.xml
-#usr/share/libvirt/cpu_map/arm_ThunderX299xx.xml
-#usr/share/libvirt/cpu_map/arm_cortex-a53.xml
-#usr/share/libvirt/cpu_map/arm_cortex-a57.xml
-#usr/share/libvirt/cpu_map/arm_cortex-a72.xml
-#usr/share/libvirt/cpu_map/arm_features.xml
-#usr/share/libvirt/cpu_map/arm_vendors.xml
+usr/share/libvirt/cpu_map/arm_FT-2000plus.xml
+usr/share/libvirt/cpu_map/arm_Falkor.xml
+usr/share/libvirt/cpu_map/arm_Kunpeng-920.xml
+usr/share/libvirt/cpu_map/arm_Tengyun-S2500.xml
+usr/share/libvirt/cpu_map/arm_ThunderX299xx.xml
+usr/share/libvirt/cpu_map/arm_cortex-a53.xml
+usr/share/libvirt/cpu_map/arm_cortex-a57.xml
+usr/share/libvirt/cpu_map/arm_cortex-a72.xml
+usr/share/libvirt/cpu_map/arm_features.xml
+usr/share/libvirt/cpu_map/arm_vendors.xml
 usr/share/libvirt/cpu_map/index.xml
 usr/share/libvirt/cpu_map/ppc64_POWER6.xml
 usr/share/libvirt/cpu_map/ppc64_POWER7.xml
@@ -461,6 +235,8 @@ usr/share/libvirt/cpu_map/x86_Conroe.xml
 usr/share/libvirt/cpu_map/x86_Cooperlake.xml
 usr/share/libvirt/cpu_map/x86_Dhyana.xml
 usr/share/libvirt/cpu_map/x86_EPYC-IBPB.xml
+usr/share/libvirt/cpu_map/x86_EPYC-Milan.xml
+usr/share/libvirt/cpu_map/x86_EPYC-Rome.xml
 usr/share/libvirt/cpu_map/x86_EPYC.xml
 usr/share/libvirt/cpu_map/x86_Haswell-IBRS.xml
 usr/share/libvirt/cpu_map/x86_Haswell-noTSX-IBRS.xml
@@ -488,6 +264,7 @@ usr/share/libvirt/cpu_map/x86_Skylake-Client.xml
 usr/share/libvirt/cpu_map/x86_Skylake-Server-IBRS.xml
 usr/share/libvirt/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
 usr/share/libvirt/cpu_map/x86_Skylake-Server.xml
+usr/share/libvirt/cpu_map/x86_Snowridge.xml
 usr/share/libvirt/cpu_map/x86_Westmere-IBRS.xml
 usr/share/libvirt/cpu_map/x86_Westmere.xml
 usr/share/libvirt/cpu_map/x86_athlon.xml
@@ -507,57 +284,57 @@ usr/share/libvirt/cpu_map/x86_phenom.xml
 usr/share/libvirt/cpu_map/x86_qemu32.xml
 usr/share/libvirt/cpu_map/x86_qemu64.xml
 usr/share/libvirt/cpu_map/x86_vendors.xml
-#usr/share/libvirt/schemas
-usr/share/libvirt/schemas/basictypes.rng
-usr/share/libvirt/schemas/capability.rng
-usr/share/libvirt/schemas/cputypes.rng
-usr/share/libvirt/schemas/domain.rng
-#usr/share/libvirt/schemas/domainbackup.rng
-usr/share/libvirt/schemas/domaincaps.rng
-usr/share/libvirt/schemas/domaincheckpoint.rng
-usr/share/libvirt/schemas/domaincommon.rng
-usr/share/libvirt/schemas/domainsnapshot.rng
-usr/share/libvirt/schemas/interface.rng
-usr/share/libvirt/schemas/network.rng
-usr/share/libvirt/schemas/networkcommon.rng
-usr/share/libvirt/schemas/networkport.rng
-usr/share/libvirt/schemas/nodedev.rng
-usr/share/libvirt/schemas/nwfilter.rng
-usr/share/libvirt/schemas/nwfilter_params.rng
-usr/share/libvirt/schemas/nwfilterbinding.rng
-usr/share/libvirt/schemas/secret.rng
-usr/share/libvirt/schemas/storagecommon.rng
-usr/share/libvirt/schemas/storagepool.rng
-usr/share/libvirt/schemas/storagepoolcaps.rng
-usr/share/libvirt/schemas/storagevol.rng
 #usr/share/libvirt/test-screenshot.png
-#usr/share/man/man1/virsh.1
-#usr/share/man/man1/virt-admin.1
-#usr/share/man/man1/virt-host-validate.1
-#usr/share/man/man1/virt-login-shell.1
-#usr/share/man/man1/virt-pki-validate.1
-#usr/share/man/man1/virt-qemu-run.1
-#usr/share/man/man1/virt-xml-validate.1
-#usr/share/man/man7/virkeycode-atset1.7
-#usr/share/man/man7/virkeycode-atset2.7
-#usr/share/man/man7/virkeycode-atset3.7
-#usr/share/man/man7/virkeycode-linux.7
-#usr/share/man/man7/virkeycode-osx.7
-#usr/share/man/man7/virkeycode-qnum.7
-#usr/share/man/man7/virkeycode-usb.7
-#usr/share/man/man7/virkeycode-win32.7
-#usr/share/man/man7/virkeycode-xtkbd.7
-#usr/share/man/man7/virkeyname-linux.7
-#usr/share/man/man7/virkeyname-osx.7
-#usr/share/man/man7/virkeyname-win32.7
-#usr/share/man/man8/libvirtd.8
-#usr/share/man/man8/virtlockd.8
-#usr/share/man/man8/virtlogd.8
+#usr/share/locale/as/LC_MESSAGES/libvirt.mo
+#usr/share/locale/bg/LC_MESSAGES/libvirt.mo
+#usr/share/locale/bn_IN/LC_MESSAGES/libvirt.mo
+#usr/share/locale/bs/LC_MESSAGES/libvirt.mo
+#usr/share/locale/ca/LC_MESSAGES/libvirt.mo
+#usr/share/locale/cs/LC_MESSAGES/libvirt.mo
+#usr/share/locale/da/LC_MESSAGES/libvirt.mo
+#usr/share/locale/de/LC_MESSAGES/libvirt.mo
+#usr/share/locale/el/LC_MESSAGES/libvirt.mo
+#usr/share/locale/en_GB/LC_MESSAGES/libvirt.mo
+#usr/share/locale/es/LC_MESSAGES/libvirt.mo
+#usr/share/locale/fi/LC_MESSAGES/libvirt.mo
+#usr/share/locale/fr/LC_MESSAGES/libvirt.mo
+#usr/share/locale/gu/LC_MESSAGES/libvirt.mo
+#usr/share/locale/hi/LC_MESSAGES/libvirt.mo
+#usr/share/locale/hu/LC_MESSAGES/libvirt.mo
+#usr/share/locale/id/LC_MESSAGES/libvirt.mo
+#usr/share/locale/it/LC_MESSAGES/libvirt.mo
+#usr/share/locale/ja/LC_MESSAGES/libvirt.mo
+#usr/share/locale/kn/LC_MESSAGES/libvirt.mo
+#usr/share/locale/ko/LC_MESSAGES/libvirt.mo
+#usr/share/locale/mk/LC_MESSAGES/libvirt.mo
+#usr/share/locale/ml/LC_MESSAGES/libvirt.mo
+#usr/share/locale/mr/LC_MESSAGES/libvirt.mo
+#usr/share/locale/ms/LC_MESSAGES/libvirt.mo
+#usr/share/locale/nb/LC_MESSAGES/libvirt.mo
+#usr/share/locale/nl/LC_MESSAGES/libvirt.mo
+#usr/share/locale/or/LC_MESSAGES/libvirt.mo
+#usr/share/locale/pa/LC_MESSAGES/libvirt.mo
+#usr/share/locale/pl/LC_MESSAGES/libvirt.mo
+#usr/share/locale/pt/LC_MESSAGES/libvirt.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/libvirt.mo
+#usr/share/locale/ru/LC_MESSAGES/libvirt.mo
+#usr/share/locale/si/LC_MESSAGES/libvirt.mo
+#usr/share/locale/sr/LC_MESSAGES/libvirt.mo
+#usr/share/locale/sr@latin/LC_MESSAGES/libvirt.mo
+#usr/share/locale/sv/LC_MESSAGES/libvirt.mo
+#usr/share/locale/ta/LC_MESSAGES/libvirt.mo
+#usr/share/locale/te/LC_MESSAGES/libvirt.mo
+#usr/share/locale/tr/LC_MESSAGES/libvirt.mo
+#usr/share/locale/uk/LC_MESSAGES/libvirt.mo
+#usr/share/locale/vi/LC_MESSAGES/libvirt.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/libvirt.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/libvirt.mo
 #var/cache/libvirt
 #var/cache/libvirt/qemu
 var/ipfire/backup/addons/includes/libvirt
 #var/lib/libvirt
 #var/lib/libvirt/boot
+#var/lib/libvirt/ch
 #var/lib/libvirt/filesystems
 #var/lib/libvirt/images
 #var/lib/libvirt/lockd
index eed7b03038fdc846107a45cf64d86c73c3abccb7..c1253037e922bec12e188c60fe14e6e0141b7610 100644 (file)
@@ -1,3 +1,4 @@
+#usr/lib/perl5/site_perl/5.32.1/File
 usr/lib/perl5/site_perl/5.32.1/File/ReadBackwards.pm
 #usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/File
 #usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/File/ReadBackwards
index cb6e9b03730203221b0a82eeb9dd648f9ce41af2..b3576d39f4138638d64c8011e7083955f136980d 100644 (file)
 #usr/lib/python3.8/site-packages/easy-install.pth
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/PKG-INFO
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/SOURCES.txt
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/dependency_links.txt
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/entry_points.txt
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/not-zip-safe
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/requires.txt
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/top_level.txt
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/_distutils_hack
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/_distutils_hack/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/_distutils_hack/override.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/__init__.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/appdirs.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/__about__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/_compat.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/_structures.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/_typing.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/markers.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/requirements.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/specifiers.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/tags.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/utils.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/version.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/pyparsing.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/extern
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/extern/__init__.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests/data
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests/data/my-test-package-source
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests/data/my-test-package-source/setup.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_deprecation_warning.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/_msvccompiler.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/archive_util.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/bcppcompiler.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/ccompiler.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/cmd.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_dumb.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_msi.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_rpm.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_wininst.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_clib.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_ext.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_py.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_scripts.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/check.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/clean.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/config.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_data.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_egg_info.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_headers.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_lib.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_scripts.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/py37compat.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/register.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/sdist.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/upload.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/config.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/core.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/cygwinccompiler.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/debug.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/dep_util.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/dir_util.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/dist.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/errors.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/extension.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/fancy_getopt.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/file_util.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/filelist.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/log.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/msvc9compiler.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/msvccompiler.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/py35compat.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/py38compat.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/spawn.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/sysconfig.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/text_file.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/unixccompiler.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/util.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/version.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/versionpredicate.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_imp.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/ordered_set.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/__about__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/_compat.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/_structures.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/_typing.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/markers.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/requirements.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/specifiers.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/tags.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/utils.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/version.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/pyparsing.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/archive_util.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/build_meta.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/cli-32.exe
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/cli-64.exe
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/cli.exe
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/alias.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/bdist_egg.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/bdist_rpm.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/build_clib.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/build_ext.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/build_py.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/develop.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/dist_info.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/easy_install.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/egg_info.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install_egg_info.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install_lib.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install_scripts.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/launcher
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO/PKG-INFO
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO/SOURCES.txt
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO/dependency_links.txt
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO/entry_points.txt
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO/not-zip-safe
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO/requires.txt
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/EGG-INFO/top_level.txt
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/_distutils_hack
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/_distutils_hack/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/_distutils_hack/override.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/__init__.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/appdirs.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/__about__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/_compat.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/_structures.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/_typing.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/markers.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/requirements.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/specifiers.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/tags.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/utils.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/packaging/version.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/_vendor/pyparsing.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/extern
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/extern/__init__.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/tests
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/tests/data
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/tests/data/my-test-package-source
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/pkg_resources/tests/data/my-test-package-source/setup.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_deprecation_warning.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/_msvccompiler.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/archive_util.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/bcppcompiler.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/ccompiler.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/cmd.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/bdist.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/bdist_dumb.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/bdist_msi.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/bdist_rpm.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/bdist_wininst.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/build.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/build_clib.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/build_ext.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/build_py.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/build_scripts.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/check.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/clean.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/config.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/install.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/install_data.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/install_egg_info.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/install_headers.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/install_lib.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/install_scripts.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/py37compat.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/register.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/sdist.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/command/upload.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/config.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/core.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/cygwinccompiler.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/debug.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/dep_util.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/dir_util.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/dist.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/errors.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/extension.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/fancy_getopt.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/file_util.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/filelist.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/log.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/msvc9compiler.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/msvccompiler.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/py35compat.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/py38compat.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/spawn.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/sysconfig.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/text_file.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/unixccompiler.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/util.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/version.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_distutils/versionpredicate.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_imp.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/__init__.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/more_itertools
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/more_itertools/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/more_itertools/more.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/more_itertools/recipes.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/ordered_set.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/__about__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/_compat.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/_structures.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/_typing.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/markers.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/requirements.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/specifiers.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/tags.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/utils.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/packaging/version.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/_vendor/pyparsing.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/archive_util.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/build_meta.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/cli-32.exe
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/cli-64.exe
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/cli.exe
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/alias.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/bdist_egg.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/bdist_rpm.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/build_clib.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/build_ext.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/build_py.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/develop.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/dist_info.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/easy_install.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/egg_info.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/install.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/install_egg_info.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/install_lib.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/install_scripts.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/launcher
 #manifest.xml
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/py36compat.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/register.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/rotate.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/saveopts.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/sdist.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/setopt.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/test.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/upload.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/upload_docs.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/config.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/dep_util.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/depends.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/dist.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/errors.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/extension.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/extern
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/extern/__init__.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/glob.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/gui-32.exe
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/gui-64.exe
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/gui.exe
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/installer.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/launch.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/lib2to3_ex.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/monkey.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/msvc.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/namespaces.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/package_index.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/py34compat.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/sandbox.py
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/script
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/py36compat.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/register.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/rotate.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/saveopts.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/sdist.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/setopt.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/test.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/upload.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/command/upload_docs.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/config.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/dep_util.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/depends.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/dist.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/errors.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/extension.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/extern
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/extern/__init__.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/glob.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/gui-32.exe
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/gui-64.exe
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/gui.exe
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/installer.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/launch.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/monkey.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/msvc.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/namespaces.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/package_index.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/py34compat.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/sandbox.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/script
 #(dev).tmpl
-#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/script.tmpl
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/ssl_support.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/unicode_utils.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/version.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/wheel.py
-usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/windows_support.py
+#usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/script.tmpl
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/unicode_utils.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/version.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/wheel.py
+usr/lib/python3.8/site-packages/setuptools-58.0.4-py3.8.egg/setuptools/windows_support.py
 #usr/lib/python3.8/site-packages/setuptools.pth
index 4432643343a199bc107c0abde2957010f6609340..6d1652cd1bb1a1a60bccb1d6b7c56eb07e3c07dc 100644 (file)
@@ -1,9 +1,10 @@
 lib/udev/rules.d/65-kvm.rules
 usr/bin/elf2dmp
 usr/bin/qemu
+usr/bin/qemu-aarch64
 usr/bin/qemu-arm
 usr/bin/qemu-edid
-usr/bin/qemu-ga
+#usr/bin/qemu-ga
 usr/bin/qemu-i386
 usr/bin/qemu-img
 usr/bin/qemu-io
@@ -11,6 +12,7 @@ usr/bin/qemu-nbd
 usr/bin/qemu-pr-helper
 usr/bin/qemu-riscv64
 usr/bin/qemu-storage-daemon
+usr/bin/qemu-system-aarch64
 usr/bin/qemu-system-arm
 usr/bin/qemu-system-i386
 usr/bin/qemu-system-riscv64
@@ -54,7 +56,7 @@ usr/share/qemu/bios-256k.bin
 usr/share/qemu/bios-microvm.bin
 usr/share/qemu/bios.bin
 #usr/share/qemu/canyonlands.dtb
-#usr/share/qemu/edk2-aarch64-code.fd
+usr/share/qemu/edk2-aarch64-code.fd
 usr/share/qemu/edk2-arm-code.fd
 usr/share/qemu/edk2-arm-vars.fd
 usr/share/qemu/edk2-i386-code.fd
@@ -74,7 +76,7 @@ usr/share/qemu/efi-vmxnet3.rom
 usr/share/qemu/firmware
 usr/share/qemu/firmware/50-edk2-i386-secure.json
 usr/share/qemu/firmware/50-edk2-x86_64-secure.json
-#usr/share/qemu/firmware/60-edk2-aarch64.json
+usr/share/qemu/firmware/60-edk2-aarch64.json
 usr/share/qemu/firmware/60-edk2-arm.json
 usr/share/qemu/firmware/60-edk2-i386.json
 usr/share/qemu/firmware/60-edk2-x86_64.json
@@ -124,8 +126,8 @@ usr/share/qemu/npcm7xx_bootrom.bin
 #usr/share/qemu/openbios-sparc64
 #usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.bin
 #usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
-#usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.bin
-#usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.bin
+usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
 #usr/share/qemu/palcode-clipper
 #usr/share/qemu/petalogix-ml605.dtb
 #usr/share/qemu/petalogix-s3adsp1800.dtb
diff --git a/config/rootfiles/packages/qemu-ga b/config/rootfiles/packages/qemu-ga
new file mode 100644 (file)
index 0000000..78f3688
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin/qemu-ga
+etc/rc.d/init.d/qemu-ga
index d99597aa6710583aab045086833d46e064fbf10e..a9559d6c42960fa66a9effe2189373a402ba8038 100644 (file)
@@ -251,13 +251,16 @@ CHFN_RESTRICT             rwh
 # If set to MD5, MD5-based algorithm will be used for encrypting password
 # If set to SHA256, SHA256-based algorithm will be used for encrypting password
 # If set to SHA512, SHA512-based algorithm will be used for encrypting password
+# If set to BCRYPT, BCRYPT-based algorithm will be used for encrypting password
+# If set to YESCRYPT, YESCRYPT-based algorithm will be used for encrypting password
 # If set to DES, DES-based algorithm will be used for encrypting password (default)
+# MD5 and DES should not be used for new hashes, see crypt(5) for recommendations.
 # Overrides the MD5_CRYPT_ENAB option
 #
 # Note: If you use PAM, it is recommended to use a value consistent with
 # the PAM modules configuration.
 #
-ENCRYPT_METHOD SHA512
+ENCRYPT_METHOD YESCRYPT
 
 #
 # Only works if ENCRYPT_METHOD is set to SHA256 or SHA512.
diff --git a/config/suricata/convert-ids-multiple-providers b/config/suricata/convert-ids-multiple-providers
new file mode 100644 (file)
index 0000000..a082508
--- /dev/null
@@ -0,0 +1,284 @@
+#!/usr/bin/perl
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2021 IPFire Development Team <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+use strict;
+
+require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/ids-functions.pl";
+
+# Old file declarations
+my $old_rules_settings_file = "$IDS::settingsdir/rules-settings";
+my $old_used_rulefiles_file = "$IDS::settingsdir/suricata-used-rulefiles.yaml";
+my $old_enabled_sids_file = "$IDS::settingsdir/oinkmaster-enabled-sids.conf";
+my $old_disabled_sids_file = "$IDS::settingsdir/oinkmaster-disabled-sids.conf";
+my $old_rules_tarball = "/var/tmp/idsrules.tar.gz";
+
+# Script wide variable to store the used ruleset provider.
+my $ruleset_provider;
+
+# Hashes to store the old and new settings.
+my %old_rules_settings = ();
+my %idssettings = ();
+my %providers_settings = ();
+
+exit unless(-f $IDS::ids_settings_file and -f $old_rules_settings_file);
+
+# Read-in all settings.
+&General::readhash($old_rules_settings_file, \%old_rules_settings);
+&General::readhash($IDS::ids_settings_file, \%idssettings);
+
+#
+## Step 1: Create new file layout
+#
+&IDS::check_and_create_filelayout();
+
+#
+## Step 2: Migrate automatic update interval.
+#
+
+# Get old configured autoupdate interval.
+my $autoupdate_interval = $old_rules_settings{'AUTOUPDATE_INTERVAL'};
+
+# Check for valid intervals.
+if ($autoupdate_interval eq "off" || $autoupdate_interval eq "daily" || $autoupdate_interval eq "weekly") {
+       # Put the setting to the new configuration location.
+       $idssettings{'AUTOUPDATE_INTERVAL'} = $autoupdate_interval;
+} else {
+       # Swith to default which should be weekly.
+       $idssettings{'AUTOUPDATE_INTERVAL'} = "weekly";
+}
+
+# Store the updated idssettings file.
+&General::writehash($IDS::ids_settings_file, \%idssettings);
+
+#
+## Step 3: Migrate the providers settings.
+#
+
+# Try to get the previously configured provider.
+$ruleset_provider = $old_rules_settings{'RULES'};
+
+# Exit the script if no ruleset provider has configured.
+exit unless ($ruleset_provider);
+
+# Defaults.
+my $id = "1";
+my $enabled = "enabled";
+my $autoupdate_status = "enabled";
+
+# Try to get a configured subscription code.
+my $subscription_code = $old_rules_settings{'OINKCODE'};
+
+# Check if the autoupdate should be disabled.
+if ($idssettings{'AUTOUPDATE_INTERVAL'} eq "off") {
+       # Set the autoupdate for the provider to disabled.
+       $autoupdate_status = "disabled";
+}
+
+# Create and assign the provider structure to the providers hash.
+$providers_settings{$id} = [ "$ruleset_provider", "$subscription_code", "$autoupdate_status", "$enabled" ];
+
+# Write the converted provider settings to the new providers-settings file.
+&General::writehasharray($IDS::providers_settings_file, \%providers_settings);
+
+# Set correct ownership.
+&IDS::set_ownership("$IDS::providers_settings_file");
+
+# Remove old rules settings file.
+unlink($old_rules_settings_file);
+
+#
+## Step 4: Rename downloaded rulestarball to new name sheme.
+#
+
+# Check if a rulestarball exists.
+if (-f $old_rules_tarball) {
+       # Load perl module which contains the move command.
+       use File::Copy;
+
+       # Call function to generate the path and filename for the new rules tarball name.
+       my $new_rules_tarball = &IDS::_get_dl_rulesfile($ruleset_provider);
+
+       # Move the rulestarball to the new location.
+       move($old_rules_tarball, $new_rules_tarball);
+
+       # Set correct ownership.
+       &IDS::set_ownership("$new_rules_tarball");
+}
+
+#
+## Step 5: Migrate oinkmaster configuration files for enabled and disabled rules.
+#
+
+# Read-in old enabled / disabled sids files.
+my %enabled_disabled_sids = (
+       &IDS::read_enabled_disabled_sids_file($old_enabled_sids_file),
+       &IDS::read_enabled_disabled_sids_file($old_disabled_sids_file)
+);
+
+# Check if any modifications have been done.
+if (%enabled_disabled_sids) {
+       # Get path and filename for new file.
+       my $oinkmaster_provider_modified_sids_file = &IDS::get_oinkmaster_provider_modified_sids_file($ruleset_provider);
+
+       # Open the new file for writing.
+       open (FILE, ">", $oinkmaster_provider_modified_sids_file) or die "Could not write to $oinkmaster_provider_modified_sids_file. $!\n";
+
+       # Write header to the files.
+       print PROVIDER_MOD_FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
+
+       # Loop through the hash.
+       foreach my $sid (keys %enabled_disabled_sids) {
+               # Check if the sid is enabled.
+               if ($enabled_disabled_sids{$sid} eq "enabled") {
+                       # Print the sid as enabled to the file.
+                       print FILE "enablesid $sid\n";
+               # Check if the sid is disabled.
+               } elsif ($enabled_disabled_sids{$sid} eq "disabled") {
+                       # Print the sid as disabled to the file.
+                       print FILE "disablesid $sid\n";
+               # Something strange happende - skip the current sid.
+               } else {
+                       next;
+               }
+       }
+
+       # Close the file handle.
+       close(FILE);
+
+       # Add the provider modifications file to the oinkmaster provider includes file.
+       &IDS::alter_oinkmaster_provider_includes_file("add", "$ruleset_provider");
+
+       # Set correct ownership for the new generated file.
+       &IDS::set_ownership("$oinkmaster_provider_modified_sids_file");
+}
+
+# Set correct ownership for the main file.
+&IDS::set_ownership("$IDS::oinkmaster_provider_includes_file");
+
+# Remove old files.
+unlink($old_enabled_sids_file);
+unlink($old_disabled_sids_file);
+
+#
+## Step 6: Call oinkmaster and regenerate the ruleset structures.
+#
+&IDS::oinkmaster();
+
+# Set correct ownerships.
+&IDS::set_ownership("$IDS::rulespath");
+
+#
+## Step 7: Migrate used rulefiles into new format.
+#
+
+# Check if the a used rulesfile exists.
+if (-f $old_used_rulefiles_file) {
+       # Array to collect the used rulefiles.
+       my @used_rulefiles = ();
+
+       # Open the file or used rulefiles and read-in content.
+       open(FILE, $old_used_rulefiles_file) or die "Could not open $old_used_rulefiles_file. $!\n";
+
+       while (<FILE>) {
+               # Assign the current line to a nice variable.
+               my $line = $_;
+
+               # Remove newlines.
+               chomp($line);
+
+               # Skip comments.
+               next if ($line =~ /\#/);
+
+               # Skip blank  lines.
+               next if ($line =~ /^\s*$/);
+
+               # Gather the rulefile.
+               if ($line =~ /.*- (.*)/) {
+                       my $rulefile = $1;
+
+                       # Skip whitelist.rules and local.rules
+                       next if ($rulefile eq "whitelist.rules" || $rulefile eq "local.rules");
+
+                       # Splitt the filename into chunks.
+                       my @filename = split("-", $rulefile);
+
+                       # Reverse the array.
+                       @filename = reverse(@filename);
+
+                       # Get the amount of elements in the array.
+                       my $elements = @filename;
+
+                       # Remove last element of the hash.
+                       # It contains the vendor name, which will be replaced.
+                       if ($elements >= 3) {
+                               # Remove last element from hash.
+                               pop(@filename);
+                       }
+
+                       # Check if the last element of the filename does not
+                       # contain the providers name.
+                       if ($filename[-1] ne "$ruleset_provider") {
+                               # Add provider name as last element.
+                               push(@filename, $ruleset_provider);
+                       }
+
+                       # Reverse the array back.
+                       @filename = reverse(@filename);
+
+                       # Generate the name for the rulesfile.
+                       $rulefile = join("-", @filename);
+
+                       # Add the rulefile to the array of used rulesfiles.
+                       push(@used_rulefiles, $rulefile);
+               }
+       }
+
+       # Close the file.
+       close(FILE);
+
+       # Write the new provider exclusive used rulesfiles file.
+       &IDS::write_used_provider_rulefiles_file($ruleset_provider, @used_rulefiles);
+
+       # Write main used rulefiles file.
+       &IDS::write_main_used_rulefiles_file("$ruleset_provider");
+
+       # Get the provider specific used rulefiles file name.
+       my $provider_used_rulefiles_file = &IDS::get_used_provider_rulesfile_file($ruleset_provider);
+
+       # Set correct ownerships.
+       &IDS::set_ownership("$provider_used_rulefiles_file");
+       &IDS::set_ownership("$IDS::suricata_used_providers_file");
+       &IDS::set_ownership("$IDS::suricata_default_rulefiles_file");
+}
+
+# Remove old used rulefiles file.
+unlink($old_used_rulefiles_file);
+
+#
+## Step 8: Reload the IDS ruleset if running.
+#
+
+# Check if the IDS is running.
+if(&IDS::ids_is_running()) {
+       # Call suricatactrl to restart it.
+       &IDS::call_suricatactrl("restart");
+}
index 7d75233b4fa29e5b40b8c468d1f7a6d982df36f2..dc068eb2f6c6893cab2c87ddb61da4c68c65e0a9 100644 (file)
@@ -118,14 +118,10 @@ my %snortsettings;
 #
 # Add default value for MONITOR_TRAFFIC_ONLY which will be "on"
 # when migrating from snort to the new IDS.
-my %idssettings = (
-       "MONITOR_TRAFFIC_ONLY" => "on",
-);
-
-# Hash which contains the RULES settings.
 #
 # Set default value for UPDATE_INTERVAL to weekly.
-my %rulessettings = (
+my %idssettings = (
+       "MONITOR_TRAFFIC_ONLY" => "on",
        "AUTOUPDATE_INTERVAL" => "weekly",
 );
 
@@ -159,17 +155,27 @@ foreach my $zone (@network_zones) {
        }
 }
 
-# Grab the choosen ruleset from snort settings hash and store it in the rules
-# settings hash.
-$rulessettings{"RULES"} = $snortsettings{"RULES"};
+# Hash to store the provider settings.
+my %providersettings = ();
+
+# Default ID.
+$id = "1";
+
+# Grab the choosen ruleset from snort settings hash.
+my $provider = $snortsettings{"RULES"};
+my $subscription_code;
 
 # Check if an oinkcode has been provided.
 if($snortsettings{"OINKCODE"}) {
-       # Take the oinkcode from snort settings hash and store it in the rules
-       # settings hash.
-       $rulessettings{"OINKCODE"} = $snortsettings{"OINKCODE"};
+       # Take the oinkcode from snort settings hash.
+       $subscription_code = $snortsettings{"OINKCODE"};
 }
 
+# Generate providers config line and add it to the provider settings hash.
+#
+# Enabled automatic ruleste updates and the usage of the provider.
+$providersettings{$id} = [ "$provider", "$subscription_code", "enabled", "enabled" ];
+
 #
 ## Step 4: Import guardian settings and whitelist if the addon is installed.
 #
@@ -225,8 +231,8 @@ if (-f $guardian_meta) {
 # Write IDS settings.
 &General::writehash("$IDS::ids_settings_file", \%idssettings);
 
-# Write rules settings.
-&General::writehash("$IDS::rules_settings_file", \%rulessettings);
+# Write provider settings.
+&General::writehash("$IDS::providers_settings_file", \%providersettings);
 
 #
 ## Step 6: Generate and write the file to modify the ruleset.
@@ -242,16 +248,19 @@ if (-f $guardian_meta) {
 ## Step 7: Move rulestarball to its new location.
 #
 
+# Grab file and path to store the provider rules tarball.
+my $rulestarball = &IDS::_get_dl_rulesfile($provider);
+
 # Check if a rulestarball has been downloaded yet.
 if (-f $snort_rules_tarball) {
        # Load perl module which contains the move command.
        use File::Copy;
 
        # Move the rulestarball to the new location.
-       move($snort_rules_tarball, $IDS::rulestarball);
+       move($snort_rules_tarball, $rulestarball);
 
        # Set correct ownership.
-       &IDS::set_ownership("$IDS::rulestarball");
+       &IDS::set_ownership("$rulestarball");
 
 # In case no tarball is present, try to download the ruleset.
 } else {
@@ -270,7 +279,7 @@ if (-f $snort_rules_tarball) {
 #
 
 # Check if a rulestarball is present.
-if (-f $IDS::rulestarball) {
+if (-f $rulestarball) {
        # Launch oinkmaster by calling the subfunction.
        &IDS::oinkmaster();
 
@@ -312,10 +321,10 @@ if (-f $IDS::rulestarball) {
 ## Step 12: Setup automatic ruleset updates.
 #
 
-# Check if a ruleset is configured.
-if($rulessettings{"RULES"}) {
+# Check if a provider is configured.
+if(%providersettings) {
        # Call suricatactrl and setup the periodic update mechanism.
-       &IDS::call_suricatactrl("cron", $rulessettings{'AUTOUPDATE_INTERVAL'});
+       &IDS::call_suricatactrl("cron", $idssettings{'AUTOUPDATE_INTERVAL'});
 }
 
 #
@@ -362,7 +371,16 @@ while (my $line = <SNORTCONF>) {
 close(SNORTCONF);
 
 # Pass the array of enabled rule files to the subfunction and write the file.
-&IDS::write_used_rulefiles_file(@enabled_rule_files);
+&IDS::write_used_provider_rulefiles_file("$provider", @enabled_rule_files);
+&IDS::write_main_used_rulefiles_file("$provider");
+
+# Grab the used provider rulesfile file path and name.
+my $used_provider_rulesfile_file = &IDS::get_used_provider_rulesfile_file("$provider");
+
+# Set correct ownership for new files.
+&IDS::set_ownership("$suricata_used_providers_file");
+&IDS::set_ownership("$suricata_static_rulefiles_file");
+&IDS::set_ownership("$used_provider_rulesfile_file");
 
 #
 ## Step 14: Start the IDS if enabled.
index a00cef94548d47834754c194d41db4c26f1d7931..7da1ecc1d61d4f8e1e731c56870c7d8185ba247d 100644 (file)
-# Ruleset for registered sourcefire users.
-registered = https://www.snort.org/rules/snortrules-snapshot-29161.tar.gz?oinkcode=<oinkcode>
+package IDS::Ruleset;
 
-# Ruleset for registered sourcefire users with valid subscription.
-subscripted = https://www.snort.org/rules/snortrules-snapshot-29161.tar.gz?oinkcode=<oinkcode>
+# This file contains the supported ruleset providers.
+#
+# Each one is defined as a hash in the main hash.
+# It's name acts as handle/key and the key/value pair acts as data part.
+# So the structure is like the following:
+#
+# handle => {
+#      summary => A short summary of the service. This also will be shown if no translation string is available for the WUI.
+#      website => The website of the ruleset provider.
+#      tr_string => The translation string which is used by the WUI and part of the language files.
+#      requires_subscription => "True/False" - If some kind of registration code is required in order to download the ruleset.
+#      dl_url => The download URL to grab the ruleset.
+#      dl_type => "archive/plain" - To specify, if the downloaded file is a packed archive or a plain text file.
+# },
 
-# Community rules from sourcefire.
-community = https://www.snort.org/rules/community
+# Hash which contains the supported ruleset providers.
+our %Providers = (
+       # Ruleset for registered sourcefire users.
+       registered => {
+               summary => "Talos VRT rules for registered users",
+               website => "https://www.snort.org",
+               tr_string => "registered user rules",
+               requires_subscription => "True",
+               dl_url => "https://www.snort.org/rules/snortrules-snapshot-29190.tar.gz?oinkcode=<subscription_code>",
+               dl_type => "archive",
+       },
 
-# Emerging threads community rules.
-emerging = https://rules.emergingthreats.net/open/suricata-5.0/emerging.rules.tar.gz
+       # Ruleset for registered sourcefire users with a valid subsription.
+       subscripted => {
+               summary => "Talos VRT rules with subscription",
+               website => "https://www.snort.org",
+               tr_string => "subscripted user rules",
+               requires_subscription => "True",
+               dl_url => "https://www.snort.org/rules/snortrules-snapshot-29190.tar.gz?oinkcode=<subscription_code>",
+               dl_type => "archive",
+       },
 
-# Emerging threads pro rules.
-emerging_pro = https://rules.emergingthreatspro.com/<oinkcode>/suricata-5.0/etpro.rules.tar.gz
+       # Community rules from sourcefire.
+       community => {
+               summary => "Snort/VRT GPLv2 Community Rules",
+               website => "https://www.snort.org",
+               tr_string => "community rules",
+               requires_subscription => "False",
+               dl_url => "https://www.snort.org/rules/community",
+               dl_type => "archive",
+       },
 
+       # Emerging threads community rules.
+       emerging => {
+               summary => "Emergingthreats.net Community Rules",
+               website => "https://emergingthreats.net/",
+               tr_string => "emerging rules",
+               requires_subscription => "False",
+               dl_url => "https://rules.emergingthreats.net/open/suricata-5.0/emerging.rules.tar.gz",
+               dl_type => "archive",
+       },
+
+       # Emerging threads Pro rules.
+       emerging_pro => {
+               summary => "Emergingthreats.net Pro Rules",
+               website => "https://emergingthreats.net/",
+               tr_string => "emerging pro rules",
+               requires_subscription => "True",
+               dl_url => "https://rules.emergingthreatspro.com/<subscription_code>/suricata-5.0/etpro.rules.tar.gz",
+               dl_type => "archive",
+       },
+
+       # Abuse.ch SSLBL JA3 fingerprint rules.
+       sslbl_ja3 => {
+               summary => "Abuse.ch SSLBL JA3 Rules",
+               website => "https://sslbl.abuse.ch/",
+               tr_string => "sslbl ja3 fingerprint rules",
+               requires_subscription => "False",
+               dl_url => "https://sslbl.abuse.ch/blacklist/ja3_fingerprints.rules",
+               dl_type => "plain",
+       },
+
+       # Abuse.ch SSLBL Blacklist rules.
+       sslbl_blacklist => {
+               summary => "Abuse.ch SSLBL Blacklist Rules",
+               website => "https://sslbl.abuse.ch/",
+               tr_string => "sslbl blacklist rules",
+               requires_subscription => "False",
+               dl_url => "https://sslbl.abuse.ch/blacklist/sslblacklist.rules",
+               dl_type => "plain",
+       },
+
+       # Abuse.ch URLhaus Blacklist rules.
+       urlhaus => {
+               summary => "Abuse.ch URLhaus Blacklist Rules",
+               website => "https://urlhaus.abuse.ch/",
+               tr_string => "urlhaus blacklist rules",
+               requires_subscription => "False",
+               dl_url => "https://urlhaus.abuse.ch/downloads/urlhaus_suricata.tar.gz",
+               dl_type => "archive",
+       },
+
+       # Etnetera Aggressive Blacklist.
+       etnetera_aggresive => {
+               summary => "Etnetera Aggressive Blacklist Rules",
+               website => "https://security.etnetera.cz/",
+               tr_string => "etnetera aggressive blacklist rules",
+               requires_subscription => "False",
+               dl_url => "https://security.etnetera.cz/feeds/etn_aggressive.rules",
+               dl_type => "plain",
+       },
+
+       # OISF Traffic ID rules.
+       oisf_trafficid => {
+               summary => "OISF Traffic ID Rules",
+               website => "https://www.openinfosecfoundation.org/",
+               tr_string => "oisf traffic id rules",
+               requires_subscription => "False",
+               dl_url => "https://openinfosecfoundation.org/rules/trafficid/trafficid.rules",
+               dl_type => "plain",
+       },
+
+       # Positive Technologies Attack Detection Team rules.
+       attack_detection => {
+               summary => "PT Attack Detection Team Rules",
+               website => "https://github.com/ptresearch/AttackDetection",
+               tr_string => "attack detection team rules",
+               requires_subscription => "False",
+               dl_url => "https://raw.githubusercontent.com/ptresearch/AttackDetection/master/pt.rules.tar.gz",
+               dl_type => "archive",
+       },
+
+       # Secureworks Security rules.
+       secureworks_security => {
+               summary => "Secureworks Security Ruleset",
+               website => "https://www.secureworks.com",
+               tr_string => "secureworks security ruleset",
+               requires_subscription => "True",
+               dl_url => "https://ws.secureworks.com/ti/ruleset/<subscription_code>/Suricata_suricata-security_latest.tgz",
+               dl_type => "archive",
+       },
+
+       # Secureworks Malware rules.
+       secureworks_malware => {
+               summary => "Secureworks Malware Ruleset",
+               website => "https://www.secureworks.com",
+               tr_string => "secureworks malware ruleset",
+               requires_subscription => "True",
+               dl_url => "https://ws.secureworks.com/ti/ruleset/<subscription_code>/Suricata_suricata-malware_latest.tgz",
+               dl_type => "archive",
+       },
+
+       # Secureworks Enhanced rules.
+       secureworks_enhanced => {
+               summary => "Secureworks Enhanced Ruleset",
+               website => "https://www.secureworks.com",
+               tr_string => "secureworks enhanced ruleset",
+               requires_subscription => "True",
+               dl_url => "https://ws.secureworks.com/ti/ruleset/<subscription_code>/Suricata_suricata-enhanced_latest.tgz",
+               dl_type => "archive",
+       },
+
+       # Travis B. Green hunting rules.
+       tgreen => {
+               summary => "Travis Green - Hunting rules",
+               website => "https://github.com/travisbgreen/hunting-rules",
+               tr_string => "travis green hunting rules",
+               requires_subscription => "False",
+               dl_url => "https://raw.githubusercontent.com/travisbgreen/hunting-rules/master/hunting.rules",
+               dl_type => "plain",
+       },
+);
index b4a188d4045287b3e46ebc7eda6c7ef6a2174101..6fbc7b3ee1bacbf2ab17815230205d1db0f3a551 100644 (file)
@@ -46,16 +46,15 @@ vars:
 ##
 default-rule-path: /var/lib/suricata
 rule-files:
-    # Include enabled ruleset files from external file
-    include: /var/ipfire/suricata/suricata-used-rulefiles.yaml
+    # Include enabled ruleset files from external file.
+    include: /var/ipfire/suricata/suricata-used-providers.yaml
 
     # Include default rules.
     include: /var/ipfire/suricata/suricata-default-rules.yaml
 
-classification-file: /var/lib/suricata/classification.config
-reference-config-file: /var/lib/suricata/reference.config
-threshold-file: /var/lib/suricata/threshold.config
-
+classification-file: /usr/share/suricata/classification.config
+reference-config-file: /usr/share/suricata/reference.config
+threshold-file: /usr/share/suricata/threshold.config
 
 ##
 ## Logging options.
@@ -64,7 +63,7 @@ default-log-dir: /var/log/suricata/
 
 # global stats configuration
 stats:
-  enabled: yes
+  enabled: no
   # The interval field (in seconds) controls at what interval
   # the loggers are invoked.
   interval: 8
@@ -318,7 +317,7 @@ logging:
   # compiled with the --enable-debug configure option.
   #
   # This value is overriden by the SC_LOG_LEVEL env var.
-  default-log-level: notice
+  default-log-level: Info
 
   # A regex to filter output.  Can be overridden in an output section.
   # Defaults to empty (no filter).
@@ -522,6 +521,41 @@ app-layer:
            double-decode-path: no
            double-decode-query: no
 
+    # Note: Modbus probe parser is minimalist due to the poor significant field
+    # Only Modbus message length (greater than Modbus header length)
+    # And Protocol ID (equal to 0) are checked in probing parser
+    # It is important to enable detection port and define Modbus port
+    # to avoid false positive
+    modbus:
+      # How many unreplied Modbus requests are considered a flood.
+      # If the limit is reached, app-layer-event:modbus.flooded; will match.
+      #request-flood: 500
+
+      enabled: no
+      detection-ports:
+        dp: 502
+      # According to MODBUS Messaging on TCP/IP Implementation Guide V1.0b, it
+      # is recommended to keep the TCP connection opened with a remote device
+      # and not to open and close it for each MODBUS/TCP transaction. In that
+      # case, it is important to set the depth of the stream reassembling as
+      # unlimited (stream.reassembly.depth: 0)
+
+      # Stream reassembly size for modbus. By default track it completely.
+      stream-depth: 0
+
+    # DNP3
+    dnp3:
+      enabled: no
+      detection-ports:
+        dp: 20000
+
+    # SCADA EtherNet/IP and CIP protocol support
+    enip:
+      enabled: no
+      detection-ports:
+        dp: 44818
+        sp: 44818
+
     ntp:
       enabled: yes
     dhcp:
index fbf0d29beb4b89ed95a8f15d6633ca8c0441fdae..db99501f8f0179bded9a7158880050aa1cdecc61 100644 (file)
@@ -1,3 +1 @@
-Shalla Secure Services,http://www.shallalist.de/Downloads/shallalist.tar.gz
-MESD,http://squidguard.mesd.k12.or.us/blacklists.tgz
 Univ. Toulouse,ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
index 4e8b28fd84caabdaa1f934e2bcc25ab9d93bd694..27e61e9bb5e0da01f83237e6b98a057cc12015d0 100644 (file)
@@ -20,6 +20,7 @@
 ###############################################################################
 
 use strict;
+use experimental 'smartmatch';
 
 # enable only the following on debugging purpose
 #use warnings;
@@ -31,12 +32,14 @@ require "${General::swroot}/header.pl";
 require "${General::swroot}/ids-functions.pl";
 require "${General::swroot}/network-functions.pl";
 
+# Import ruleset providers file.
+require "$IDS::rulesetsourcesfile";
+
 my %color = ();
 my %mainsettings = ();
 my %idsrules = ();
 my %idssettings=();
-my %rulessettings=();
-my %rulesetsources = ();
+my %used_providers=();
 my %cgiparams=();
 my %checked=();
 my %selected=();
@@ -248,63 +251,57 @@ if (-e $IDS::storederrorfile) {
         unlink($IDS::storederrorfile);
 }
 
-## Grab all available rules and store them in the idsrules hash.
-#
-# Open rules directory and do a directory listing.
-opendir(DIR, $IDS::rulespath) or die $!;
-       # Loop through the direcory.
-       while (my $file = readdir(DIR)) {
-
-               # We only want files.
-               next unless (-f "$IDS::rulespath/$file");
+# Gather ruleset details.
+if ($cgiparams{'RULESET'}) {
+       ## Grab all available rules and store them in the idsrules hash.
+       #
 
-               # Ignore empty files.
-               next if (-z "$IDS::rulespath/$file");
+       # Get enabled providers.
+       my @enabled_providers = &IDS::get_enabled_providers();
 
-               # Use a regular expression to find files ending in .rules
-               next unless ($file =~ m/\.rules$/);
+       # Open rules directory and do a directory listing.
+       opendir(DIR, $IDS::rulespath) or die $!;
+               # Loop through the direcory.
+               while (my $file = readdir(DIR)) {
 
-               # Ignore files which are not read-able.
-               next unless (-R "$IDS::rulespath/$file");
+                       # We only want files.
+                       next unless (-f "$IDS::rulespath/$file");
 
-               # Skip whitelist rules file.
-               next if( $file eq "whitelist.rules");
+                       # Ignore empty files.
+                       next if (-z "$IDS::rulespath/$file");
 
-               # Call subfunction to read-in rulefile and add rules to
-               # the idsrules hash.
-               &readrulesfile("$file");
-       }
+                       # Use a regular expression to find files ending in .rules
+                       next unless ($file =~ m/\.rules$/);
 
-closedir(DIR);
+                       # Ignore files which are not read-able.
+                       next unless (-R "$IDS::rulespath/$file");
 
-# Gather used rulefiles.
-#
-# Check if the file for activated rulefiles is not empty.
-if(-f $IDS::used_rulefiles_file) {
-       # Open the file for used rulefile and read-in content.
-       open(FILE, $IDS::used_rulefiles_file) or die "Could not open $IDS::used_rulefiles_file. $!\n";
+                       # Skip whitelist rules file.
+                       next if( $file eq "whitelist.rules");
 
-       # Read-in content.
-       my @lines = <FILE>;
+                       # Splitt vendor from filename.
+                       my @filename_parts = split(/-/, $file);
 
-       # Close file.
-       close(FILE);
+                       # Assign vendor name for easy processing.
+                       my $vendor = @filename_parts[0];
 
-       # Loop through the array.
-       foreach my $line (@lines) {
-               # Remove newlines.
-               chomp($line);
+                       # Skip rulefile if the provider is disabled.
+                       next unless ($vendor ~~ @enabled_providers);
 
-               # Skip comments.
-               next if ($line =~ /\#/);
+                       # Call subfunction to read-in rulefile and add rules to
+                       # the idsrules hash.
+                       &readrulesfile("$file");
+               }
 
-               # Skip blank  lines.
-               next if ($line =~ /^\s*$/);
+       closedir(DIR);
 
-               # Gather rule sid and message from the ruleline.
-               if ($line =~ /.*- (.*)/) {
-                       my $rulefile = $1;
+       # Loop through the array of used providers.
+       foreach my $provider (@enabled_providers) {
+               # Gather used rulefiles.
+               my @used_rulesfiles = &IDS::read_used_provider_rulesfiles($provider);
 
+               # Loop through the array of used rulesfiles.
+               foreach my $rulefile (@used_rulesfiles) {
                        # Check if the current rulefile exists in the %idsrules hash.
                        # If not, the file probably does not exist anymore or contains
                        # no rules.
@@ -316,103 +313,11 @@ if(-f $IDS::used_rulefiles_file) {
        }
 }
 
-# Save ruleset configuration.
-if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
-       my %oldsettings;
-       my %rulesetsources;
-
-       # Read-in current (old) IDS settings.
-       &General::readhash("$IDS::rules_settings_file", \%oldsettings);
-
-       # Get all available ruleset locations.
-       &General::readhash("$IDS::rulesetsourcesfile", \%rulesetsources);
-
-       # Prevent form name from been stored in conf file.
-       delete $cgiparams{'RULESET'};
-
-       # Grab the URL based on the choosen vendor.
-       my $url = $rulesetsources{$cgiparams{'RULES'}};
-
-       # Check if the choosen vendor (URL) requires an subscription/oinkcode.
-       if ($url =~ /\<oinkcode\>/ ) {
-               # Check if an subscription/oinkcode has been provided.
-               if ($cgiparams{'OINKCODE'}) {
-                       # Check if the oinkcode contains unallowed chars.
-                       unless ($cgiparams{'OINKCODE'} =~ /^[a-z0-9]+$/) {
-                               $errormessage = $Lang::tr{'invalid input for oink code'};
-                       }
-               } else {
-                       # Print an error message, that an subsription/oinkcode is required for this
-                       # vendor.
-                       $errormessage = $Lang::tr{'ids oinkcode required'};
-               }
-       }
-
-       # Go on if there are no error messages.
-       if (!$errormessage) {
-               # Store settings into settings file.
-               &General::writehash("$IDS::rules_settings_file", \%cgiparams);
-
-               # Check if the the automatic rule update hass been touched.
-               if($cgiparams{'AUTOUPDATE_INTERVAL'} ne $oldsettings{'AUTOUPDATE_INTERVAL'}) {
-                       # Call suricatactrl to set the new interval.
-                       &IDS::call_suricatactrl("cron", $cgiparams{'AUTOUPDATE_INTERVAL'});
-               }
-
-               # Check if a ruleset is present - if not or the source has been changed download it.
-               if((! %idsrules) || ($oldsettings{'RULES'} ne $cgiparams{'RULES'})) {
-                       # Check if the red device is active.
-                       unless (-e "${General::swroot}/red/active") {
-                               $errormessage = "$Lang::tr{'could not download latest updates'} - $Lang::tr{'system is offline'}";
-                       }
-
-                       # Check if enough free disk space is availabe.
-                       if(&IDS::checkdiskspace()) {
-                               $errormessage = "$Lang::tr{'not enough disk space'}";
-                       }
-
-                       # Check if any errors happend.
-                       unless ($errormessage) {
-                               # Lock the webpage and print notice about downloading
-                               # a new ruleset.
-                               &working_notice("$Lang::tr{'ids working'}");
-
-                               # Write the modify sid's file and pass the taken ruleaction.
-                               &IDS::write_modify_sids_file();
-
-                               # Call subfunction to download the ruleset.
-                               if(&IDS::downloadruleset()) {
-                                       $errormessage = $Lang::tr{'could not download latest updates'};
-
-                                       # Call function to store the errormessage.
-                                       &IDS::_store_error_message($errormessage);
-                               } else {
-                                       # Call subfunction to launch oinkmaster.
-                                       &IDS::oinkmaster();
-                               }
-
-                               # Check if the IDS is running.
-                               if(&IDS::ids_is_running()) {
-                                       # Call suricatactrl to stop the IDS - because of the changed
-                                       # ruleset - the use has to configure it before suricata can be
-                                       # used again.
-                                       &IDS::call_suricatactrl("stop");
-                               }
-
-                               # Perform a reload of the page.
-                               &reload();
-                       }
-               }
-       }
-
 # Save ruleset.
-} elsif ($cgiparams{'RULESET'} eq $Lang::tr{'ids apply'}) {
+if ($cgiparams{'RULESET'} eq $Lang::tr{'ids apply'}) {
        # Arrays to store which rulefiles have been enabled and will be used.
        my @enabled_rulefiles;
 
-       # Hash to store the user-enabled and disabled sids.
-       my %enabled_disabled_sids;
-
        # Store if a restart of suricata is required.
        my $suricata_restart_required;
 
@@ -434,86 +339,138 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
                }
        }
 
-       # Read-in the files for enabled/disabled sids.
-       # This will be done by calling the read_enabled_disabled_sids_file function two times
-       # and merge the returned hashes together into the enabled_disabled_sids hash.
-       %enabled_disabled_sids = (
-               &read_enabled_disabled_sids_file($IDS::disabled_sids_file),
-               &read_enabled_disabled_sids_file($IDS::enabled_sids_file));
+       # Open oinkmaster main include file for provider modifications.
+       open(OINKM_INCL_FILE, ">", "$IDS::oinkmaster_provider_includes_file") or die "Could not open $IDS::oinkmaster_provider_includes_file. $!\n";
 
-       # Loop through the hash of idsrules.
-       foreach my $rulefile (keys %idsrules) {
-               # Loop through the single rules of the rulefile.
-               foreach my $sid (keys %{$idsrules{$rulefile}}) {
-                       # Skip the current sid if it is not numeric.
-                       next unless ($sid =~ /\d+/ );
-
-                       # Check if there exists a key in the cgiparams hash for this sid.
-                       if (exists($cgiparams{$sid})) {
-                               # Look if the rule is disabled.
-                               if ($idsrules{$rulefile}{$sid}{'State'} eq "off") {
-                                       # Check if the state has been set to 'on'.
-                                       if ($cgiparams{$sid} eq "on") {
-                                               # Add/Modify the sid to/in the enabled_disabled_sids hash.
-                                               $enabled_disabled_sids{$sid} = "enabled";
+       # Print file header and notice about autogenerated file.
+       print OINKM_INCL_FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
+
+       # Get enabled providers.
+       my @enabled_providers = &IDS::get_enabled_providers();
+
+       # Loop through the array of enabled providers.
+       foreach my $provider (@enabled_providers) {
+               # Hash to store the used-enabled and disabled sids.
+               my %enabled_disabled_sids;
+
+               # Generate modified sids file name for the current processed provider.
+               my $providers_modified_sids_file = &IDS::get_oinkmaster_provider_modified_sids_file($provider);
+
+               # Check if a modified sids file for this provider exists.
+               if (-f $providers_modified_sids_file) {
+                       # Read-in the file for enabled/disabled sids.
+                       %enabled_disabled_sids = &IDS::read_enabled_disabled_sids_file($providers_modified_sids_file);
+               }
+
+               # Loop through the hash of idsrules.
+               foreach my $rulefile (keys %idsrules) {
+                       # Split the rulefile to get the vendor.
+                       my @filename_parts = split(/-/, $rulefile);
+
+                       # Assign rulefile vendor.
+                       my $rulefile_vendor = @filename_parts[0];
+
+                       # Skip the rulefile if the vendor is not our current processed provider.
+                       next unless ($rulefile_vendor eq $provider);
+
+                       # Loop through the single rules of the rulefile.
+                       foreach my $sid (keys %{$idsrules{$rulefile}}) {
+                               # Skip the current sid if it is not numeric.
+                               next unless ($sid =~ /\d+/ );
+
+                               # Check if there exists a key in the cgiparams hash for this sid.
+                               if (exists($cgiparams{$sid})) {
+                                       # Look if the rule is disabled.
+                                       if ($idsrules{$rulefile}{$sid}{'State'} eq "off") {
+                                               # Check if the state has been set to 'on'.
+                                               if ($cgiparams{$sid} eq "on") {
+                                                       # Add/Modify the sid to/in the enabled_disabled_sids hash.
+                                                       $enabled_disabled_sids{$sid} = "enabled";
+
+                                                       # Drop item from cgiparams hash.
+                                                       delete $cgiparams{$rulefile}{$sid};
+                                               }
+                                       }
+                               } else {
+                                       # Look if the rule is enabled.
+                                       if ($idsrules{$rulefile}{$sid}{'State'} eq "on") {
+                                               # Check if the state is 'on' and should be disabled.
+                                               # In this case there is no entry
+                                               # for the sid in the cgiparams hash.
+                                               # Add/Modify it to/in the enabled_disabled_sids hash.
+                                               $enabled_disabled_sids{$sid} = "disabled";
 
                                                # Drop item from cgiparams hash.
                                                delete $cgiparams{$rulefile}{$sid};
                                        }
                                }
-                       } else {
-                               # Look if the rule is enabled.
-                               if ($idsrules{$rulefile}{$sid}{'State'} eq "on") {
-                                       # Check if the state is 'on' and should be disabled.
-                                       # In this case there is no entry
-                                       # for the sid in the cgiparams hash.
-                                       # Add/Modify it to/in the enabled_disabled_sids hash.
-                                       $enabled_disabled_sids{$sid} = "disabled";
-
-                                       # Drop item from cgiparams hash.
-                                       delete $cgiparams{$rulefile}{$sid};
-                               }
                        }
                }
-       }
 
-       # Open enabled sid's file for writing.
-       open(ENABLED_FILE, ">$IDS::enabled_sids_file") or die "Could not write to $IDS::enabled_sids_file. $!\n";
-
-       # Open disabled sid's file for writing.
-       open(DISABLED_FILE, ">$IDS::disabled_sids_file") or die "Could not write to $IDS::disabled_sids_file. $!\n";
-
-       # Write header to the files.
-       print ENABLED_FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
-       print DISABLED_FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
-
-       # Check if the hash for enabled/disabled files contains any entries.
-       if (%enabled_disabled_sids) {
-               # Loop through the hash.
-               foreach my $sid (keys %enabled_disabled_sids) {
-                       # Check if the sid is enabled.
-                       if ($enabled_disabled_sids{$sid} eq "enabled") {
-                               # Print the sid to the enabled_sids file.
-                               print ENABLED_FILE "enablesid $sid\n";
-                       # Check if the sid is disabled.
-                       } elsif ($enabled_disabled_sids{$sid} eq "disabled") {
-                               # Print the sid to the disabled_sids file.
-                               print DISABLED_FILE "disablesid $sid\n";
-                       # Something strange happende - skip the current sid.
-                       } else {
-                               next;
+               # Check if the hash for enabled/disabled sids contains any entries.
+               if (%enabled_disabled_sids) {
+                       # Open providers modified sids file for writing.
+                       open(PROVIDER_MOD_FILE, ">$providers_modified_sids_file") or die "Could not write to $providers_modified_sids_file. $!\n";
+
+                       # Write header to the files.
+                       print PROVIDER_MOD_FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
+
+                       # Loop through the hash.
+                       foreach my $sid (keys %enabled_disabled_sids) {
+                               # Check if the sid is enabled.
+                               if ($enabled_disabled_sids{$sid} eq "enabled") {
+                                       # Print the sid to the enabled_sids file.
+                                       print PROVIDER_MOD_FILE "enablesid $sid\n";
+                               # Check if the sid is disabled.
+                               } elsif ($enabled_disabled_sids{$sid} eq "disabled") {
+                                       # Print the sid to the disabled_sids file.
+                                       print PROVIDER_MOD_FILE "disablesid $sid\n";
+                               # Something strange happende - skip the current sid.
+                               } else {
+                                       next;
+                               }
                        }
+
+                       # Close file handle for the providers modified sids file.
+                       close(PROVIDER_MOD_FILE);
+
+                       # Add the file to the oinkmasters include file.
+                       print OINKM_INCL_FILE "include $providers_modified_sids_file\n";
                }
        }
 
-       # Close file for enabled_sids after writing.
-       close(ENABLED_FILE);
+       # Close the file handle after writing.
+       close(OINKM_INCL_FILE);
+
+       # Handle enabled / disabled rulefiles.
+       #
+
+       # Loop through the array of enabled providers.
+       foreach my $provider(@enabled_providers) {
+               # Array to store the rulefiles which belong to the current processed provider.
+               my @provider_rulefiles = ();
+
+               # Loop through the array of enabled rulefiles.
+               foreach my $rulesfile (@enabled_rulefiles) {
+                       # Split the rulefile name.
+                       my @filename_parts = split(/-/, "$rulesfile");
+
+                       # Assign vendor name for easy processings.
+                       my $vendor = @filename_parts[0];
+
+                       # Check if the rulesvendor is our current processed enabled provider.
+                       if ("$vendor" eq "$provider") {
+                               # Add the rulesfile to the array of provider rulesfiles.
+                               push(@provider_rulefiles, $rulesfile);
+                       }
 
-       # Close file for disabled_sids after writing.
-       close(DISABLED_FILE);
+                       # Call function and write the providers used rulesfile file.
+                       &IDS::write_used_provider_rulefiles_file($provider, @provider_rulefiles);
+               }
+       }
 
        # Call function to generate and write the used rulefiles file.
-       &IDS::write_used_rulefiles_file(@enabled_rulefiles);
+       &IDS::write_main_used_rulefiles_file(@enabled_providers);
 
        # Lock the webpage and print message.
        &working_notice("$Lang::tr{'ids apply ruleset changes'}");
@@ -537,7 +494,10 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
        &reload();
 
 # Download new ruleset.
-} elsif ($cgiparams{'RULESET'} eq $Lang::tr{'update ruleset'}) {
+} elsif ($cgiparams{'PROVIDERS'} eq $Lang::tr{'ids force ruleset update'}) {
+       # Assign given provider handle.
+       my $provider = $cgiparams{'PROVIDER'};
+
        # Check if the red device is active.
        unless (-e "${General::swroot}/red/active") {
                $errormessage = "$Lang::tr{'could not download latest updates'} - $Lang::tr{'system is offline'}";
@@ -555,8 +515,8 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
                &working_notice("$Lang::tr{'ids download new ruleset'}");
 
                # Call subfunction to download the ruleset.
-               if(&IDS::downloadruleset()) {
-                       $errormessage = $Lang::tr{'could not download latest updates'};
+               if(&IDS::downloadruleset($provider)) {
+                       $errormessage = "$provider - $Lang::tr{'could not download latest updates'}";
 
                        # Call function to store the errormessage.
                        &IDS::_store_error_message($errormessage);
@@ -577,6 +537,61 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
                        &reload();
                }
        }
+
+# Reset a provider to it's defaults.
+} elsif ($cgiparams{'PROVIDERS'} eq "$Lang::tr{'ids reset provider'}") {
+       # Grab provider handle from cgihash.
+       my $provider = $cgiparams{'PROVIDER'};
+
+       # Lock the webpage and print message.
+       &working_notice("$Lang::tr{'ids apply ruleset changes'}");
+
+       # Create new empty file for used rulefiles
+       # for this provider.
+       &IDS::write_used_provider_rulefiles_file($provider);
+
+       # Call function to get the path and name for the given providers
+       # oinkmaster modified sids file.
+       my $provider_modified_sids_file = &IDS::get_oinkmaster_provider_modified_sids_file($provider);
+
+       # Check if the file exists.
+       if (-f $provider_modified_sids_file) {
+               # Remove the file, as requested.
+               unlink("$provider_modified_sids_file");
+       }
+
+       # Alter the oinkmaster provider includes file and remove the provider.
+       &IDS::alter_oinkmaster_provider_includes_file("remove", $provider);
+
+       # Regenerate ruleset.
+       &IDS::oinkmaster();
+
+       # Check if the IDS is running.
+       if(&IDS::ids_is_running()) {
+               # Get enabled providers.
+               my @enabled_providers = &IDS::get_enabled_providers();
+
+               # Get amount of enabled providers.
+               my $amount = @enabled_providers;
+
+               # Check if at least one enabled provider remains.
+               if ($amount >= 1) {
+                       # Call suricatactrl to perform a reload.
+                       &IDS::call_suricatactrl("restart");
+
+               # Stop suricata if no enabled provider remains.
+               } else {
+                       # Call suricatactrel to perform the stop.
+                       &IDS::call_suricatactrl("stop");
+               }
+       }
+
+       # Undefine providers flag.
+       undef($cgiparams{'PROVIDERS'});
+
+       # Reload page.
+       &reload();
+
 # Save IDS settings.
 } elsif ($cgiparams{'IDS'} eq $Lang::tr{'save'}) {
        my %oldidssettings;
@@ -586,14 +601,17 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
        # Read-in current (old) IDS settings.
        &General::readhash("$IDS::ids_settings_file", \%oldidssettings);
 
+       # Get enabled providers.
+       my @enabled_providers = &IDS::get_enabled_providers();
+
        # Prevent form name from been stored in conf file.
        delete $cgiparams{'IDS'};
 
        # Check if the IDS should be enabled.
        if ($cgiparams{'ENABLE_IDS'} eq "on") {
-               # Check if any ruleset is available. Otherwise abort and display an error.
-               unless(%idsrules) {
-                       $errormessage = $Lang::tr{'ids no ruleset available'};
+               # Check if at least one provider is enabled. Otherwise abort and display an error.
+               unless(@enabled_providers) {
+                       $errormessage = $Lang::tr{'ids no enabled ruleset provider'};
                }
 
                # Loop through the array of available interfaces.
@@ -620,6 +638,12 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
                &General::writehash("$IDS::ids_settings_file", \%cgiparams);
        }
 
+       # Check if the the automatic rule update hass been touched.
+       if($cgiparams{'AUTOUPDATE_INTERVAL'} ne $oldidssettings{'AUTOUPDATE_INTERVAL'}) {
+               # Call suricatactrl to set the new interval.
+               &IDS::call_suricatactrl("cron", $cgiparams{'AUTOUPDATE_INTERVAL'});
+       }
+
        # Generate file to store the home net.
        &IDS::generate_home_net_file();
 
@@ -634,8 +658,8 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
 
        # Check if "MONITOR_TRAFFIC_ONLY" has been changed.
        if($cgiparams{'MONITOR_TRAFFIC_ONLY'} ne $oldidssettings{'MONITOR_TRAFFIC_ONLY'}) {
-               # Check if a ruleset exists.
-               if (%idsrules) {
+               # Check if at least one provider is enabled.
+               if (@enabled_providers) {
                        # Lock the webpage and print message.
                        &working_notice("$Lang::tr{'ids working'}");
 
@@ -667,295 +691,698 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
                # Perform a reload of the page.
                &reload();
        }
-}
-
-# Read-in idssettings and rulesetsettings
-&General::readhash("$IDS::ids_settings_file", \%idssettings);
-&General::readhash("$IDS::rules_settings_file", \%rulessettings);
 
-# If no autoupdate intervall has been configured yet, set default value.
-unless(exists($rulessettings{'AUTOUPDATE_INTERVAL'})) {
-       # Set default to "weekly".
-       $rulessettings{'AUTOUPDATE_INTERVAL'} = 'weekly';
-}
+# Toggle Enable/Disable autoupdate for a provider
+} elsif ($cgiparams{'AUTOUPDATE'} eq $Lang::tr{'toggle enable disable'}) {
+       my %used_providers = ();
 
-# Read-in ignored hosts.
-&General::readhasharray("$IDS::settingsdir/ignored", \%ignored);
-
-$checked{'ENABLE_IDS'}{'off'} = '';
-$checked{'ENABLE_IDS'}{'on'} = '';
-$checked{'ENABLE_IDS'}{$idssettings{'ENABLE_IDS'}} = "checked='checked'";
-$checked{'MONITOR_TRAFFIC_ONLY'}{'off'} = '';
-$checked{'MONITOR_TRAFFIC_ONLY'}{'on'} = '';
-$checked{'MONITOR_TRAFFIC_ONLY'}{$idssettings{'MONITOR_TRAFFIC_ONLY'}} = "checked='checked'";
-$selected{'RULES'}{'nothing'} = '';
-$selected{'RULES'}{'community'} = '';
-$selected{'RULES'}{'emerging'} = '';
-$selected{'RULES'}{'registered'} = '';
-$selected{'RULES'}{'subscripted'} = '';
-$selected{'RULES'}{$rulessettings{'RULES'}} = "selected='selected'";
-$selected{'AUTOUPDATE_INTERVAL'}{'off'} = '';
-$selected{'AUTOUPDATE_INTERVAL'}{'daily'} = '';
-$selected{'AUTOUPDATE_INTERVAL'}{'weekly'} = '';
-$selected{'AUTOUPDATE_INTERVAL'}{$rulessettings{'AUTOUPDATE_INTERVAL'}} = "selected='selected'";
+       # Only go further, if an ID has been passed.
+       if ($cgiparams{'ID'}) {
+               # Assign the given ID.
+               my $id = $cgiparams{'ID'};
 
-&Header::openpage($Lang::tr{'intrusion detection system'}, 1, '');
+               # Undef the given ID.
+               undef($cgiparams{'ID'});
 
-### Java Script ###
-print"<script>\n";
+               # Read-in providers settings file.
+               &General::readhasharray($IDS::providers_settings_file, \%used_providers);
 
-# Java script variable declaration for show and hide.
-print"var show = \"$Lang::tr{'ids show'}\"\;\n";
-print"var hide = \"$Lang::tr{'ids hide'}\"\;\n";
+               # Grab the configured status of the corresponding entry.
+               my $status_autoupdate = $used_providers{$id}[2];
 
-print <<END
-       // Java Script function to show/hide the text input field for
-       // Oinkcode/Subscription code.
-       var update_code = function() {
-               if(\$('#RULES').val() == 'registered') {
-                       \$('#code').show();
-               } else if(\$('#RULES').val() == 'subscripted') {
-                       \$('#code').show();
-               } else if(\$('#RULES').val() == 'emerging_pro') {
-                       \$('#code').show();
+               # Switch the status.
+               if ($status_autoupdate eq "disabled") {
+                       $status_autoupdate = "enabled";
                } else {
-                       \$('#code').hide();
+                       $status_autoupdate = "disabled";
                }
-       };
 
-       // JQuery function to call corresponding function when
-       // the ruleset is changed or the page is loaded for showing/hiding
-       // the code area.
-       \$(document).ready(function() {
-               \$('#RULES').change(update_code);
-               update_code();
-       });
+               # Modify the status of the existing entry.
+               $used_providers{$id} = ["$used_providers{$id}[0]", "$used_providers{$id}[1]", "$status_autoupdate", "$used_providers{$id}[3]"];
 
-       // Tiny java script function to show/hide the rules
-       // of a given category.
-       function showhide(tblname) {
-               \$("#" + tblname).toggle();
+               # Write the changed hash to the providers settings file.
+               &General::writehasharray($IDS::providers_settings_file, \%used_providers);
+       }
 
-               // Get current content of the span element.
-               var content = document.getElementById("span_" + tblname);
+# Add/Edit a provider to the list of used providers.
+#
+} elsif (($cgiparams{'PROVIDERS'} eq "$Lang::tr{'add'}") || ($cgiparams{'PROVIDERS'} eq "$Lang::tr{'update'}")) {
+       my %used_providers = ();
 
-               if (content.innerHTML === show) {
-                       content.innerHTML = hide;
-               } else {
-                       content.innerHTML = show;
-               }
-       }
-</script>
-END
-;
+       # Read-in providers settings file.
+       &General::readhasharray("$IDS::providers_settings_file", \%used_providers);
 
-&Header::openbigbox('100%', 'left', '', $errormessage);
+       # Assign some nice human-readable values.
+       my $provider = $cgiparams{'PROVIDER'};
+       my $subscription_code = $cgiparams{'SUBSCRIPTION_CODE'};
+       my $status_autoupdate;
 
-if ($errormessage) {
-       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
-       print "<class name='base'>$errormessage\n";
-       print "&nbsp;</class>\n";
-       &Header::closebox();
-}
+       # Handle autoupdate checkbox.
+       if ($cgiparams{'ENABLE_AUTOUPDATE'} eq "on") {
+               $status_autoupdate = "enabled";
+       } else {
+               $status_autoupdate = "disabled";
+       }
 
-# Draw current state of the IDS
-&Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system'});
+       # Check if we are going to add a new provider.
+       if ($cgiparams{'PROVIDERS'} eq "$Lang::tr{'add'}") {
+               # Loop through the hash of used providers.
+               foreach my $id ( keys %used_providers) {
+                       # Check if the choosen provider is already in use.
+                       if ($used_providers{$id}[0] eq "$provider") {
+                               # Assign error message.
+                               $errormessage = "$Lang::tr{'ids the choosen provider is already in use'}";
+                       }
+               }
+       }
 
-# Check if the IDS is running and obtain the process-id.
-my $pid = &IDS::ids_is_running();
+       # Check if the provider requires a subscription code.
+       if ($IDS::Ruleset::Providers{$provider}{'requires_subscription'} eq "True") {
+               # Check if an subscription code has been provided.
+               if ($subscription_code) {
+                       # Check if the code contains unallowed chars.
+                       unless ($subscription_code =~ /^[a-z0-9]+$/) {
+                               $errormessage = $Lang::tr{'invalid input for subscription code'};
+                       }
+               } else {
+                       # Print an error message, that an subsription code is required for this
+                       # provider.
+                       $errormessage = $Lang::tr{'ids subscription code required'};
+               }
+       }
 
-# Display some useful information, if suricata daemon is running.
-if ($pid) {
-       # Gather used memory.
-       my $memory = &get_memory_usage($pid);
+       # Go further if there was no error.
+       if ($errormessage eq '') {
+               my $id;
+               my $status;
 
-       print <<END;
-               <table width='95%' cellspacing='0' class='tbl'>
-                       <tr>
-                               <th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'intrusion detection'}</strong></th>
-                       </tr>
+               # Check if we should edit an existing entry and got an ID.
+               if (($cgiparams{'PROVIDERS'} eq $Lang::tr{'update'}) && ($cgiparams{'ID'})) {
+                       # Assin the provided id.
+                       $id = $cgiparams{'ID'};
 
-                       <tr>
-                               <td class='base'>$Lang::tr{'guardian daemon'}</td>
-                               <td align='center' colspan='2' width='75%' bgcolor='${Header::colourgreen}'><font color='white'><strong>$Lang::tr{'running'}</strong></font></td>
-                       </tr>
+                       # Undef the given ID.
+                       undef($cgiparams{'ID'});
 
-                       <tr>
-                               <td class='base'></td>
-                               <td bgcolor='$color{'color20'}' align='center'><strong>PID</strong></td>
-                               <td bgcolor='$color{'color20'}' align='center'><strong>$Lang::tr{'memory'}</strong></td>
-                       </tr>
+                       # Grab the configured status of the corresponding entry.
+                       $status = $used_providers{$id}[3];
+               } else {
+                       # Each newly added entry automatically should be enabled.
+                       $status = "enabled";
 
-                       <tr>
-                               <td class='base'></td>
-                               <td bgcolor='$color{'color22'}' align='center'>$pid</td>
-                               <td bgcolor='$color{'color22'}' align='center'>$memory KB</td>
-                       </tr>
-               </table>
-END
-} else {
-       # Otherwise display a hint that the service is not launched.
-       print <<END;
-               <table width='95%' cellspacing='0' class='tbl'>
-                       <tr>
-                               <th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'intrusion detection'}</strong></th>
-                       </tr>
+                       # Generate the ID for the new entry.
+                       #
+                       # Sort the keys by their ID and store them in an array.
+                       my @keys = sort { $a <=> $b } keys %used_providers;
 
-                       <tr>
-                               <td class='base'>$Lang::tr{'guardian daemon'}</td>
-                               <td align='center' width='75%' bgcolor='${Header::colourred}'><font color='white'><strong>$Lang::tr{'stopped'}</strong></font></td>
-                       </tr>
-               </table>
-END
-}
+                       # Reverse the key array.
+                       my @reversed = reverse(@keys);
 
-# Only show this area, if a ruleset is present.
-if (%idsrules) {
+                       # Obtain the last used id.
+                       my $last_id = @reversed[0];
 
-       print <<END
+                       # Increase the last id by one and use it as id for the new entry.
+                       $id = ++$last_id;
+               }
 
-       <br><br><h2>$Lang::tr{'settings'}</h2>
+               # Add/Modify the entry to/in the used providers hash..
+               $used_providers{$id} = ["$provider", "$subscription_code", "$status_autoupdate", "$status"];
 
-       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-               <table width='100%' border='0'>
-                       <tr>
-                               <td class='base' colspan='2'>
-                                       <input type='checkbox' name='ENABLE_IDS' $checked{'ENABLE_IDS'}{'on'}>&nbsp;$Lang::tr{'ids enable'}
-                               </td>
+               # Write the changed hash to the providers settings file.
+               &General::writehasharray($IDS::providers_settings_file, \%used_providers);
 
-                               <td class='base' colspan='2'>
-                                       <input type='checkbox' name='MONITOR_TRAFFIC_ONLY' $checked{'MONITOR_TRAFFIC_ONLY'}{'on'}>&nbsp;$Lang::tr{'ids monitor traffic only'}
-                       </td>
-                       </tr>
+               # Check if a new provider will be added.
+               if ($cgiparams{'PROVIDERS'} eq $Lang::tr{'add'}) {
+                       # Check if the red device is active.
+                       unless (-e "${General::swroot}/red/active") {
+                               $errormessage = "$Lang::tr{'ids could not add provider'} - $Lang::tr{'system is offline'}";
+                       }
 
-                       <tr>
-                               <td><br><br></td>
-                               <td><br><br></td>
-                               <td><br><br></td>
-                               <td><br><br></td>
-                       </tr>
+                       # Check if enough free disk space is availabe.
+                       if(&IDS::checkdiskspace()) {
+                               $errormessage = "$Lang::tr{'ids could not add provider'} - $Lang::tr{'not enough disk space'}";
+                       }
 
-                       <tr>
-                               <td colspan='4'><b>$Lang::tr{'ids monitored interfaces'}</b><br></td>
-                       </tr>
+                       # Check if any errors happend.
+                       unless ($errormessage) {
+                               # Lock the webpage and print notice about downloading
+                               # a new ruleset.
+                               &working_notice("$Lang::tr{'ids working'}");
 
-                       <tr>
-END
-;
+                               # Download the ruleset.
+                               if(&IDS::downloadruleset($provider)) {
+                                       $errormessage = "$Lang::tr{'ids could not add provider'} - $Lang::tr{'ids unable to download the ruleset'}";
+
+                                       # Call function to store the errormessage.
+                                       &IDS::_store_error_message($errormessage);
 
-       # Loop through the array of available networks and print config options.
-       foreach my $zone (@network_zones) {
-               my $checked_input;
-               my $checked_forward;
+                                       # Remove the configured provider again.
+                                       &remove_provider($id);
+                               } else {
+                                       # Extract the ruleset
+                                       &IDS::extractruleset($provider);
 
-               # Convert current zone name to upper case.
-               my $zone_upper = uc($zone);
+                                       # Move the ruleset.
+                                       &IDS::move_tmp_ruleset();
 
-               # Set zone name.
-               my $zone_name = $zone;
+                                       # Cleanup temporary directory.
+                                       &IDS::cleanup_tmp_directory();
 
-               # Dirty hack to get the correct language string for the red zone.
-               if ($zone eq "red") {
-                       $zone_name = "red1";
-               }
+                                       # Create new empty file for used rulefiles
+                                       # for this provider.
+                                       &IDS::write_used_provider_rulefiles_file($provider);
+                               }
 
-               # Grab checkbox status from settings hash.
-               if ($idssettings{"ENABLE_IDS_$zone_upper"} eq "on") {
-                       $checked_input = "checked = 'checked'";
+                               # Perform a reload of the page.
+                               &reload();
+                       }
                }
 
-               print "<td class='base' width='20%'>\n";
-               print "<input type='checkbox' name='ENABLE_IDS_$zone_upper' $checked_input>\n";
-               print "&nbsp;$Lang::tr{'enabled on'}<font color='$colourhash{$zone}'> $Lang::tr{$zone_name}</font>\n";
-               print "</td>\n";
        }
 
-print <<END
-                       </tr>
-               </table>
+       # Undefine providers flag.
+       undef($cgiparams{'PROVIDERS'});
 
-               <br><br>
+## Toggle Enabled/Disabled for an existing provider.
+#
+} elsif ($cgiparams{'PROVIDERS'} eq $Lang::tr{'toggle enable disable'}) {
+       my %used_providers = ();
+       my $provider_includes_action;
 
-               <table width='100%'>
-                       <tr>
-                               <td align='right'><input type='submit' name='IDS' value='$Lang::tr{'save'}' /></td>
-                       </tr>
-               </table>
-       </form>
-END
-;
+       # Value if oinkmaster has to be executed.
+       my $oinkmaster = "False";
 
-}
+       # Only go further, if an ID has been passed.
+       if ($cgiparams{'ID'}) {
+               # Assign the given ID.
+               my $id = $cgiparams{'ID'};
 
-&Header::closebox();
+               # Undef the given ID.
+               undef($cgiparams{'ID'});
 
-# Draw elements for ruleset configuration.
-&Header::openbox('100%', 'center', $Lang::tr{'ids ruleset settings'});
+               # Read-in file which contains the provider settings.
+               &General::readhasharray($IDS::providers_settings_file, \%used_providers);
 
-print <<END
-<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-        <table width='100%' border='0'>
-               <tr>
-                       <td><b>$Lang::tr{'ids rules update'}</b></td>
-                       <td><b>$Lang::tr{'ids automatic rules update'}</b></td>
-               </tr>
+               # Grab the configured status of the corresponding entry.
+               my $status = $used_providers{$id}[3];
 
-               <tr>
-                       <td><select name='RULES' id='RULES'>
-                               <option value='emerging' $selected{'RULES'}{'emerging'} >$Lang::tr{'emerging rules'}</option>
-                               <option value='emerging_pro' $selected{'RULES'}{'emerging_pro'} >$Lang::tr{'emerging pro rules'}</option>
-                               <option value='community' $selected{'RULES'}{'community'} >$Lang::tr{'community rules'}</option>
-                               <option value='registered' $selected{'RULES'}{'registered'} >$Lang::tr{'registered user rules'}</option>
-                               <option value='subscripted' $selected{'RULES'}{'subscripted'} >$Lang::tr{'subscripted user rules'}</option>
-                       </select>
-                       </td>
-
-                       <td>
-                               <select name='AUTOUPDATE_INTERVAL'>
-                                       <option value='off' $selected{'AUTOUPDATE_INTERVAL'}{'off'} >- $Lang::tr{'Disabled'} -</option>
-                                       <option value='daily' $selected{'AUTOUPDATE_INTERVAL'}{'daily'} >$Lang::tr{'Daily'}</option>
-                                       <option value='weekly' $selected{'AUTOUPDATE_INTERVAL'}{'weekly'} >$Lang::tr{'Weekly'}</option>
-                               </select>
-                       </td>
-               </tr>
+               # Grab the provider handle.
+               my $provider_handle = $used_providers{$id}[0];
 
-               <tr>
-                       <td colspan='2'><br><br></td>
-               </tr>
+               # Switch the status.
+               if ($status eq "enabled") {
+                       $status = "disabled";
 
-               <tr style='display:none' id='code'>
-                       <td colspan='2'>Oinkcode:&nbsp;<input type='text' size='40' name='OINKCODE' value='$rulessettings{'OINKCODE'}'></td>
-               </tr>
+                       # Set the provider includes action to "remove" for removing the entry.
+                       $provider_includes_action = "remove";
+               } else {
+                       $status = "enabled";
 
-               <tr>
-                       <td>&nbsp;</td>
+                       # Set the provider includes action to "add".
+                       $provider_includes_action = "add";
+
+                       # This operation requires to launch oinkmaster.
+                       $oinkmaster = "True";
+               }
+
+               # Modify the status of the existing entry.
+               $used_providers{$id} = ["$used_providers{$id}[0]", "$used_providers{$id}[1]", "$used_providers{$id}[2]", "$status"];
+
+               # Write the changed hash to the providers settings file.
+               &General::writehasharray($IDS::providers_settings_file, \%used_providers);
+
+               # Get all enabled providers.
+               my @enabled_providers = &IDS::get_enabled_providers();
+
+               # Write the main providers include file.
+               &IDS::write_main_used_rulefiles_file(@enabled_providers);
+
+               # Call function to alter the oinkmasters provider includes file and
+               # add or remove the provider.
+               &IDS::alter_oinkmaster_provider_includes_file($provider_includes_action, $provider_handle);
+
+               # Check if oinkmaster has to be executed.
+               if ($oinkmaster eq "True") {
+                       # Lock the webpage and print message.
+                       &working_notice("$Lang::tr{'ids apply ruleset changes'}");
+
+                       # Launch oinkmaster.
+                       &IDS::oinkmaster();
+               }
+
+               # Check if the IDS is running.
+               if(&IDS::ids_is_running()) {
+                       # Gather the amount of enabled providers (elements in the array).
+                       my $amount = @enabled_providers;
+
+                       # Check if there are still enabled ruleset providers.
+                       if ($amount >= 1) {
+                               # Call suricatactrl to perform a restart.
+                               &IDS::call_suricatactrl("restart");
+
+                       # No active ruleset provider, suricata has to be stopped.
+                       } else {
+                               # Stop suricata.
+                               &IDS::call_suricatactrl("stop");
+                       }
+               }
+
+               # Undefine providers flag.
+               undef($cgiparams{'PROVIDERS'});
+
+               # Reload page.
+               &reload();
+       }
+
+## Remove provider from the list of used providers.
+#
+} elsif ($cgiparams{'PROVIDERS'} eq $Lang::tr{'remove'}) {
+       # Assign a nice human-readable variable.
+       my $id = $cgiparams{'ID'};
+
+       # Grab the provider name bevore deleting.
+       my $provider = &get_provider_handle($id);
+
+       # Remove the provider.
+       &remove_provider($id);
+
+       # Undef the given ID.
+       undef($cgiparams{'ID'});
+
+       # Lock the webpage and print message.
+       &working_notice("$Lang::tr{'ids apply ruleset changes'}");
+
+       # Drop the stored ruleset file.
+       &IDS::drop_dl_rulesfile($provider);
+
+       # Get the name of the provider rulessets include file.
+       my $provider_used_rulefile = &IDS::get_used_provider_rulesfile_file($provider);
+
+       # Drop the file, it is not longer needed.
+       unlink("$provider_used_rulefile");
+
+       # Call function to get the path and name for the given providers
+       # oinkmaster modified sids file.
+       my $provider_modified_sids_file = &IDS::get_oinkmaster_provider_modified_sids_file($provider);
+
+       # Check if the file exists.
+       if (-f $provider_modified_sids_file) {
+               # Remove the file, which is not longer needed.
+               unlink("$provider_modified_sids_file");
+       }
+
+       # Alter the oinkmaster provider includes file and remove the provider.
+       &IDS::alter_oinkmaster_provider_includes_file("remove", $provider);
+
+       # Regenerate ruleset.
+       &IDS::oinkmaster();
+
+       # Gather all enabled providers.
+       my @enabled_providers = &IDS::get_enabled_providers();
+
+       # Regenerate main providers include file.
+       &IDS::write_main_used_rulefiles_file(@enabled_providers);
+
+       # Check if the IDS is running.
+       if(&IDS::ids_is_running()) {
+               # Get amount of enabled providers.
+               my $amount = @enabled_providers;
+
+               # Check if at least one enabled provider remains.
+               if ($amount >= 1) {
+                       # Call suricatactrl to perform a reload.
+                       &IDS::call_suricatactrl("restart");
+
+               # Stop suricata if no enabled provider remains.
+               } else {
+                       # Call suricatactrel to perform the stop.
+                       &IDS::call_suricatactrl("stop");
+               }
+       }
+
+       # Undefine providers flag.
+       undef($cgiparams{'PROVIDERS'});
+
+       # Reload page.
+       &reload();
+}
+
+&Header::openpage($Lang::tr{'intrusion detection system'}, 1, '');
+
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+&show_display_error_message();
+
+if ($cgiparams{'RULESET'} eq "$Lang::tr{'ids customize ruleset'}" ) {
+       &show_customize_ruleset();
+} elsif ($cgiparams{'PROVIDERS'} ne "") {
+       &show_add_provider();
+} else {
+       &show_mainpage();
+}
+
+&Header::closebigbox();
+&Header::closepage();
+
+#
+## Tiny function to show if a error message happened.
+#
+sub show_display_error_message() {
+       if ($errormessage) {
+               &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+                       print "<class name='base'>$errormessage\n";
+                       print "&nbsp;</class>\n";
+               &Header::closebox();
+       }
+}
+
+#
+## Function to display the main IDS page.
+#
+sub show_mainpage() {
+       # Read-in idssettings and provider settings.
+       &General::readhash("$IDS::ids_settings_file", \%idssettings);
+       &General::readhasharray("$IDS::providers_settings_file", \%used_providers);
+
+       # If no autoupdate intervall has been configured yet, set default value.
+       unless(exists($idssettings{'AUTOUPDATE_INTERVAL'})) {
+               # Set default to "weekly".
+               $idssettings{'AUTOUPDATE_INTERVAL'} = 'weekly';
+       }
+
+       # Read-in ignored hosts.
+       &General::readhasharray("$IDS::settingsdir/ignored", \%ignored);
 
-                       <td align='right'>
+       $checked{'ENABLE_IDS'}{'off'} = '';
+       $checked{'ENABLE_IDS'}{'on'} = '';
+       $checked{'ENABLE_IDS'}{$idssettings{'ENABLE_IDS'}} = "checked='checked'";
+       $checked{'MONITOR_TRAFFIC_ONLY'}{'off'} = '';
+       $checked{'MONITOR_TRAFFIC_ONLY'}{'on'} = '';
+       $checked{'MONITOR_TRAFFIC_ONLY'}{$idssettings{'MONITOR_TRAFFIC_ONLY'}} = "checked='checked'";
+       $selected{'AUTOUPDATE_INTERVAL'}{'off'} = '';
+       $selected{'AUTOUPDATE_INTERVAL'}{'daily'} = '';
+       $selected{'AUTOUPDATE_INTERVAL'}{'weekly'} = '';
+       $selected{'AUTOUPDATE_INTERVAL'}{$idssettings{'AUTOUPDATE_INTERVAL'}} = "selected='selected'";
+
+       # Draw current state of the IDS
+       &Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system'});
+
+       # Check if the IDS is running and obtain the process-id.
+       my $pid = &IDS::ids_is_running();
+
+       # Display some useful information, if suricata daemon is running.
+       if ($pid) {
+               # Gather used memory.
+               my $memory = &get_memory_usage($pid);
+
+               print <<END;
+                       <table width='95%' cellspacing='0' class='tbl'>
+                               <tr>
+                                       <th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'intrusion detection'}</strong></th>
+                               </tr>
+
+                               <tr>
+                                       <td class='base'>$Lang::tr{'guardian daemon'}</td>
+                                       <td align='center' colspan='2' width='75%' bgcolor='${Header::colourgreen}'><font color='white'><strong>$Lang::tr{'running'}</strong></font></td>
+                               </tr>
+
+                               <tr>
+                                       <td class='base'></td>
+                                       <td bgcolor='$color{'color20'}' align='center'><strong>PID</strong></td>
+                                       <td bgcolor='$color{'color20'}' align='center'><strong>$Lang::tr{'memory'}</strong></td>
+                               </tr>
+
+                               <tr>
+                                       <td class='base'></td>
+                                       <td bgcolor='$color{'color22'}' align='center'>$pid</td>
+                                       <td bgcolor='$color{'color22'}' align='center'>$memory KB</td>
+                               </tr>
+                       </table>
+END
+       } else {
+               # Otherwise display a hint that the service is not launched.
+               print <<END;
+                       <table width='95%' cellspacing='0' class='tbl'>
+                               <tr>
+                                       <th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'intrusion detection'}</strong></th>
+                               </tr>
+
+                               <tr>
+                                       <td class='base'>$Lang::tr{'guardian daemon'}</td>
+                                       <td align='center' width='75%' bgcolor='${Header::colourred}'><font color='white'><strong>$Lang::tr{'stopped'}</strong></font></td>
+                               </tr>
+                       </table>
+END
+       }
+
+       # Only show this area, if at least one ruleset provider is configured.
+       if (%used_providers) {
+
+print <<END
+
+               <br><br><h2>$Lang::tr{'settings'}</h2>
+
+               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                       <table width='100%' border='0'>
+                               <tr>
+                                       <td class='base' colspan='2'>
+                                               <input type='checkbox' name='ENABLE_IDS' $checked{'ENABLE_IDS'}{'on'}>&nbsp;$Lang::tr{'ids enable'}
+                                       </td>
+
+                                       <td class='base' colspan='2'>
+                                               <input type='checkbox' name='MONITOR_TRAFFIC_ONLY' $checked{'MONITOR_TRAFFIC_ONLY'}{'on'}>&nbsp;$Lang::tr{'ids monitor traffic only'}
+                               </td>
+                               </tr>
+
+                               <tr>
+                                       <td><br><br></td>
+                                       <td><br><br></td>
+                                       <td><br><br></td>
+                                       <td><br><br></td>
+                               </tr>
+
+                               <tr>
+                                       <td colspan='4'><b>$Lang::tr{'ids monitored interfaces'}</b><br></td>
+                               </tr>
+
+                               <tr>
 END
 ;
-                       # Show the "Update Ruleset"-Button only if a ruleset has been downloaded yet and automatic updates are disabled.
-                       if ((%idsrules) && ($rulessettings{'AUTOUPDATE_INTERVAL'} eq "off")) {
-                               # Display button to update the ruleset.
-                               print"<input type='submit' name='RULESET' value='$Lang::tr{'update ruleset'}'>\n";
+
+               # Loop through the array of available networks and print config options.
+               foreach my $zone (@network_zones) {
+                       my $checked_input;
+                       my $checked_forward;
+
+                       # Convert current zone name to upper case.
+                       my $zone_upper = uc($zone);
+
+                       # Set zone name.
+                       my $zone_name = $zone;
+
+                       # Dirty hack to get the correct language string for the red zone.
+                       if ($zone eq "red") {
+                               $zone_name = "red1";
+                       }
+
+                       # Grab checkbox status from settings hash.
+                       if ($idssettings{"ENABLE_IDS_$zone_upper"} eq "on") {
+                               $checked_input = "checked = 'checked'";
+                       }
+
+                       print "<td class='base' width='20%'>\n";
+                       print "<input type='checkbox' name='ENABLE_IDS_$zone_upper' $checked_input>\n";
+                       print "&nbsp;$Lang::tr{'enabled on'}<font color='$colourhash{$zone}'> $Lang::tr{$zone_name}</font>\n";
+                       print "</td>\n";
                }
-print <<END;
-                               <input type='submit' name='RULESET' value='$Lang::tr{'save'}'>
-                       </td>
 
-               </tr>
-       </table>
-</form>
+print <<END
+                               </tr>
+
+                               <tr>
+                                       <td><br><br></td>
+                                       <td><br><br></td>
+                                       <td><br><br></td>
+                                       <td><br><br></td>
+                               </tr>
+
+                               <tr>
+                                       <td colspan='4'><b>$Lang::tr{'ids automatic rules update'}</b></td>
+                               </tr>
+
+                               <tr>
+                                       <td>
+                                               <select name='AUTOUPDATE_INTERVAL'>
+                                                       <option value='off' $selected{'AUTOUPDATE_INTERVAL'}{'off'} >- $Lang::tr{'Disabled'} -</option>
+                                                       <option value='daily' $selected{'AUTOUPDATE_INTERVAL'}{'daily'} >$Lang::tr{'Daily'}</option>
+                                                       <option value='weekly' $selected{'AUTOUPDATE_INTERVAL'}{'weekly'} >$Lang::tr{'Weekly'}</option>
+                                               </select>
+                                       </td>
+                               </tr>
+                       </table>
+
+                       <br><br>
+
+                       <table width='100%'>
+                               <tr>
+                                       <td align='right'><input type='submit' name='IDS' value='$Lang::tr{'save'}' /></td>
+                               </tr>
+                       </table>
+               </form>
 END
 ;
 
-&Header::closebox();
+       }
 
-#
-# Whitelist / Ignorelist
-#
-&Header::openbox('100%', 'center', $Lang::tr{'ids ignored hosts'});
+       &Header::closebox();
+
+       #
+       # Used Ruleset Providers section.
+       #
+       &Header::openbox('100%', 'center', $Lang::tr{'ids ruleset settings'});
+
+print <<END;
+       <table width='100%' border='0'>
+               <tr>
+                       <td class='base' bgcolor='$color{'color20'}'><b>$Lang::tr{'ids provider'}</b></td>
+                       <td class='base' bgcolor='$color{'color20'}'><b>$Lang::tr{'date'}</b></td>
+                       <td class='base' bgcolor='$color{'color20'}' align='center'><b>$Lang::tr{'ids autoupdates'}</b></td>
+                       <td class='base' bgcolor='$color{'color20'}'></td>
+                       <td class='base' colspan='3' bgcolor='$color{'color20'}'></td>
+               </tr>
+END
+               my $line = 1;
+
+               # Check if some providers has been configured.
+               if (keys (%used_providers)) {
+                       my $col = "";
+
+                       # Loop through all entries of the hash.
+                       foreach my $id (sort keys(%used_providers)) {
+                               # Assign data array positions to some nice variable names.
+                               my $provider = $used_providers{$id}[0];
+                               my $provider_name = &get_provider_name($provider);
+                               my $rulesetdate = &IDS::get_ruleset_date($provider);
+
+                               my $subscription_code = $used_providers{$id}[1];
+                               my $autoupdate_status = $used_providers{$id}[2];
+                               my $status  = $used_providers{$id}[3];
+
+                               # Check if the item number is even or not.
+                               if ($line % 2) {
+                                       $col="bgcolor='$color{'color22'}'";
+                               } else {
+                                       $col="bgcolor='$color{'color20'}'";
+                               }
+
+                               # Choose icons for the checkboxes.
+                               my $status_gif;
+                               my $status_gdesc;
+                               my $autoupdate_status_gif;
+                               my $autoupdate_status_gdesc;
+
+                               # Check if the status is enabled and select the correct image and description.
+                               if ($status eq 'enabled' ) {
+                                       $status_gif = 'on.gif';
+                                       $status_gdesc = $Lang::tr{'click to disable'};
+                               } else {
+                                       $status_gif = 'off.gif';
+                                       $status_gdesc = $Lang::tr{'click to enable'};
+                               }
+
+                               # Check if the autoupdate status is enabled and select the correct image and description.
+                               if ($autoupdate_status eq 'enabled') {
+                                       $autoupdate_status_gif = 'on.gif';
+                                       $autoupdate_status_gdesc = $Lang::tr{'click to disable'};
+                               } else {
+                                       $autoupdate_status_gif = 'off.gif';
+                                       $autoupdate_status_gdesc = $Lang::tr{'click to enable'};
+                               }
 
 print <<END;
+                               <tr>
+                                       <td width='33%' class='base' $col>$provider_name</td>
+                                       <td width='30%' class='base' $col>$rulesetdate</td>
+
+                                       <td align='center' $col>
+                                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                                       <input type='hidden' name='AUTOUPDATE' value='$Lang::tr{'toggle enable disable'}' />
+                                                       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$autoupdate_status_gif' alt='$autoupdate_status_gdesc' title='$autoupdate_status_gdesc' />
+                                                       <input type='hidden' name='ID' value='$id' />
+                                               </form>
+                                       </td>
+
+                                       <td align='center' $col>
+                                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                                       <input type='hidden' name='PROVIDERS' value='$Lang::tr{'toggle enable disable'}'>
+                                                       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$status_gif' alt='$status_gdesc' title='$status_gdesc'>
+                                                       <input type='hidden' name='ID' value='$id'>
+                                               </form>
+                                       </td>
+
+                                       <td align='center' $col>
+                                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                                       <input type='hidden' name='PROVIDERS' value='$Lang::tr{'edit'}'>
+                                                       <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}'>
+                                                       <input type='hidden' name='ID' value='$id'>
+                                               </form>
+                                       </td>
+
+                                       <td align='center' $col>
+                                               <form method='post' name='$provider' action='$ENV{'SCRIPT_NAME'}'>
+                                                       <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}'>
+                                                       <input type='hidden' name='ID' value='$id'>
+                                                       <input type='hidden' name='PROVIDERS' value='$Lang::tr{'remove'}'>
+                                               </form>
+                                       </td>
+                               </tr>
+END
+                       # Increment lines value.
+                       $line++;
+
+                       }
+
+               } else {
+                       # Print notice that currently no hosts are ignored.
+                       print "<tr>\n";
+                       print "<td class='base' colspan='2'>$Lang::tr{'guardian no entries'}</td>\n";
+                       print "</tr>\n";
+               }
+
+       print "</table>\n";
+
+       # Section to add new elements or edit existing ones.
+print <<END;
+       <br>
+       <hr>
+       <br>
+
+       <div align='right'>
+               <table width='100%'>
+                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                               <tr>
+END
+
+                                       # Only show this button if a ruleset provider is configured.
+                                       if (%used_providers) {
+                                               print "<input type='submit' name='RULESET' value='$Lang::tr{'ids customize ruleset'}'>\n";
+                                       }
+print <<END;
+                                       <input type='submit' name='PROVIDERS' value='$Lang::tr{'ids add provider'}'>
+                               </tr>
+                       </form>
+               </table>
+       </div>
+END
+
+       &Header::closebox();
+
+       #
+       # Whitelist / Ignorelist
+       #
+       &Header::openbox('100%', 'center', $Lang::tr{'ids ignored hosts'});
+
+       print <<END;
        <table width='100%'>
                <tr>
                        <td class='base' bgcolor='$color{'color20'}'><b>$Lang::tr{'ip address'}</b></td>
@@ -1003,17 +1430,17 @@ print <<END;
 
                                        <td align='center' $col>
                                                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                                                       <input type='hidden' name='WHITELIST' value='$Lang::tr{'toggle enable disable'}' />
-                                                       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />
-                                                       <input type='hidden' name='ID' value='$key' />
+                                                       <input type='hidden' name='WHITELIST' value='$Lang::tr{'toggle enable disable'}'>
+                                                       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc'>
+                                                       <input type='hidden' name='ID' value='$key'>
                                                </form>
                                        </td>
 
                                        <td align='center' $col>
                                                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                                                       <input type='hidden' name='WHITELIST' value='$Lang::tr{'edit'}' />
-                                                       <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />
-                                                       <input type='hidden' name='ID' value='$key' />
+                                                       <input type='hidden' name='WHITELIST' value='$Lang::tr{'edit'}'>
+                                                       <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}'>
+                                                       <input type='hidden' name='ID' value='$key'>
                                                </form>
                                        </td>
 
@@ -1023,188 +1450,465 @@ print <<END;
                                                        <input type='hidden' name='ID' value='$key'>
                                                        <input type='hidden' name='WHITELIST' value='$Lang::tr{'remove'}'>
                                                </form>
-                                       </td>
-                               </tr>
+                                               </td>
+                                       </tr>
 END
+                               }
+                       } else {
+                               # Print notice that currently no hosts are ignored.
+                               print "<tr>\n";
+                               print "<td class='base' colspan='2'>$Lang::tr{'guardian no entries'}</td>\n";
+                               print "</tr>\n";
                        }
-               } else {
-                       # Print notice that currently no hosts are ignored.
-                       print "<tr>\n";
-                       print "<td class='base' colspan='2'>$Lang::tr{'guardian no entries'}</td>\n";
-                       print "</tr>\n";
-               }
 
-       print "</table>\n";
+               print "</table>\n";
 
-       # Section to add new elements or edit existing ones.
+               # Section to add new elements or edit existing ones.
 print <<END;
-       <br>
-       <hr>
-       <br>
+               <br>
+               <hr>
+               <br>
 
-       <div align='center'>
-               <table width='100%'>
+               <div align='center'>
+                       <table width='100%'>
 END
 
-       # Assign correct headline and button text.
-       my $buttontext;
-       my $entry_address;
-       my $entry_remark;
+               # Assign correct headline and button text.
+               my $buttontext;
+               my $entry_address;
+               my $entry_remark;
 
-       # Check if an ID (key) has been given, in this case an existing entry should be edited.
-       if ($cgiparams{'ID'} ne '') {
-               $buttontext = $Lang::tr{'update'};
-                       print "<tr><td class='boldbase' colspan='3'><b>$Lang::tr{'update'}</b></td></tr>\n";
+               # Check if an ID (key) has been given, in this case an existing entry should be edited.
+               if ($cgiparams{'ID'} ne '') {
+                       $buttontext = $Lang::tr{'update'};
+                               print "<tr><td class='boldbase' colspan='3'><b>$Lang::tr{'update'}</b></td></tr>\n";
 
-                       # Grab address and remark for the given key.
-                       $entry_address = $ignored{$cgiparams{'ID'}}[0];
-                       $entry_remark = $ignored{$cgiparams{'ID'}}[1];
-               } else {
-                       $buttontext = $Lang::tr{'add'};
-                       print "<tr><td class='boldbase' colspan='3'><b>$Lang::tr{'dnsforward add a new entry'}</b></td></tr>\n";
-               }
+                               # Grab address and remark for the given key.
+                               $entry_address = $ignored{$cgiparams{'ID'}}[0];
+                               $entry_remark = $ignored{$cgiparams{'ID'}}[1];
+                       } else {
+                               $buttontext = $Lang::tr{'add'};
+                               print "<tr><td class='boldbase' colspan='3'><b>$Lang::tr{'dnsforward add a new entry'}</b></td></tr>\n";
+                       }
 
 print <<END;
-                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                       <input type='hidden' name='ID' value='$cgiparams{'ID'}'>
-                       <tr>
-                               <td width='30%'>$Lang::tr{'ip address'}: </td>
-                               <td width='50%'><input type='text' name='IGNORE_ENTRY_ADDRESS' value='$entry_address' size='24' /></td>
+                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                               <input type='hidden' name='ID' value='$cgiparams{'ID'}'>
+                               <tr>
+                                       <td width='30%'>$Lang::tr{'ip address'}: </td>
+                                       <td width='50%'><input type='text' name='IGNORE_ENTRY_ADDRESS' value='$entry_address' size='24' /></td>
 
-                               <td width='30%'>$Lang::tr{'remark'}: </td>
-                               <td wicth='50%'><input type='text' name=IGNORE_ENTRY_REMARK value='$entry_remark' size='24' /></td>
-                               <td align='center' width='20%'><input type='submit' name='WHITELIST' value='$buttontext' /></td>
-                       </tr>
-                       </form>
-               </table>
-       </div>
+                                       <td width='30%'>$Lang::tr{'remark'}: </td>
+                                       <td wicth='50%'><input type='text' name=IGNORE_ENTRY_REMARK value='$entry_remark' size='24' /></td>
+                                       <td align='center' width='20%'><input type='submit' name='WHITELIST' value='$buttontext' /></td>
+                               </tr>
+                               </form>
+                       </table>
+               </div>
 END
 
-&Header::closebox();
+       &Header::closebox();
+}
 
-# Only show the section for configuring the ruleset if one is present.
-if (%idsrules) {
-       # Load neccessary perl modules for file stat and to format the timestamp.
-       use File::stat;
-       use POSIX qw( strftime );
+#
+## Function to show the customize ruleset section.
+#
+sub show_customize_ruleset() {
+       ### Java Script ###
+       print"<script>\n";
 
-       # Call stat on the rulestarball.
-       my $stat = stat("$IDS::rulestarball");
+       # Java script variable declaration for show and hide.
+       print"var show = \"$Lang::tr{'ids show'}\"\;\n";
+       print"var hide = \"$Lang::tr{'ids hide'}\"\;\n";
 
-       if (defined $stat) {
-               # Get timestamp the file creation.
-               my $mtime = $stat->mtime;
+print <<END
+       // Tiny javascript function to show/hide the rules
+       // of a given category.
+       function showhide(tblname) {
+               \$("#" + tblname).toggle();
 
-               # Convert into human read-able format.
-               my $rulesdate = strftime('%Y-%m-%d %H:%M:%S', localtime($mtime));
+               // Get current content of the span element.
+               var content = document.getElementById("span_" + tblname);
 
-               &Header::openbox('100%', 'LEFT', "$Lang::tr{'intrusion detection system rules'} ($rulesdate)" );
+               if (content.innerHTML === show) {
+                       content.innerHTML = hide;
+               } else {
+                       content.innerHTML = show;
+               }
+       }
+       </script>
+END
+;
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'intrusion detection system rules'}" );
+       print"<form method='POST' action='$ENV{'SCRIPT_NAME'}'>\n";
+
+       # Output display table for rule files
+       print "<table width='100%'>\n";
 
-               print"<form method='POST' action='$ENV{'SCRIPT_NAME'}'>\n";
+       # Loop over each rule file
+       foreach my $rulefile (sort keys(%idsrules)) {
+               my $rulechecked = '';
 
-               # Output display table for rule files
+               # Check if rule file is enabled
+               if ($idsrules{$rulefile}{'Rulefile'}{'State'} eq 'on') {
+                       $rulechecked = 'CHECKED';
+               }
+
+               # Convert rulefile name into category name.
+               my $categoryname = &_rulefile_to_category($rulefile);
+
+               # Table and rows for the rule files.
+               print"<tr>\n";
+               print"<td class='base' width='5%'>\n";
+               print"<input type='checkbox' name='$rulefile' $rulechecked>\n";
+               print"</td>\n";
+               print"<td class='base' width='90%'><b>$rulefile</b></td>\n";
+               print"<td class='base' width='5%' align='right'>\n";
+               print"<a href=\"javascript:showhide('$categoryname')\"><span id='span_$categoryname'>$Lang::tr{'ids show'}</span></a>\n";
+               print"</td>\n";
+               print"</tr>\n";
+
+               # Rows which will be hidden per default and will contain the single rules.
+               print"<tr  style='display:none' id='$categoryname'>\n";
+               print"<td colspan='3'>\n";
+
+               # Local vars
+               my $lines;
+               my $rows;
+               my $col;
+
+               # New table for the single rules.
                print "<table width='100%'>\n";
 
-               # Loop over each rule file
-               foreach my $rulefile (sort keys(%idsrules)) {
-                       my $rulechecked = '';
+               # Loop over rule file rules
+               foreach my $sid (sort {$a <=> $b} keys(%{$idsrules{$rulefile}})) {
+                       # Local vars
+                       my $ruledefchecked = '';
+
+                       # Skip rulefile itself.
+                       next if ($sid eq "Rulefile");
 
-                       # Check if rule file is enabled
-                       if ($idsrules{$rulefile}{'Rulefile'}{'State'} eq 'on') {
-                               $rulechecked = 'CHECKED';
+                       # If 2 rules have been displayed, start a new row
+                       if (($lines % 2) == 0) {
+                               print "</tr><tr>\n";
+
+                               # Increase rows by once.
+                               $rows++;
                        }
 
-                       # Convert rulefile name into category name.
-                       my $categoryname = &_rulefile_to_category($rulefile);
+                       # Colour lines.
+                       if ($rows % 2) {
+                               $col="bgcolor='$color{'color20'}'";
+                       } else {
+                               $col="bgcolor='$color{'color22'}'";
+                       }
 
-                       # Table and rows for the rule files.
-                       print"<tr>\n";
-                       print"<td class='base' width='5%'>\n";
-                       print"<input type='checkbox' name='$rulefile' $rulechecked>\n";
-                       print"</td>\n";
-                       print"<td class='base' width='90%'><b>$rulefile</b></td>\n";
-                       print"<td class='base' width='5%' align='right'>\n";
-                       print"<a href=\"javascript:showhide('$categoryname')\"><span id='span_$categoryname'>$Lang::tr{'ids show'}</span></a>\n";
-                       print"</td>\n";
-                       print"</tr>\n";
+                       # Set rule state
+                       if ($idsrules{$rulefile}{$sid}{'State'} eq 'on') {
+                               $ruledefchecked = 'CHECKED';
+                       }
 
-                       # Rows which will be hidden per default and will contain the single rules.
-                       print"<tr  style='display:none' id='$categoryname'>\n";
-                       print"<td colspan='3'>\n";
+                       # Create rule checkbox and display rule description
+                       print "<td class='base' width='5%' align='right' $col>\n";
+                       print "<input type='checkbox' NAME='$sid' $ruledefchecked>\n";
+                       print "</td>\n";
+                       print "<td class='base' width='45%' $col>$idsrules{$rulefile}{$sid}{'Description'}</td>";
 
-                       # Local vars
-                       my $lines;
-                       my $rows;
-                       my $col;
+                       # Increment rule count
+                       $lines++;
+               }
 
-                       # New table for the single rules.
-                       print "<table width='100%'>\n";
+               # If do not have a second rule for row, create empty cell
+               if (($lines % 2) != 0) {
+                       print "<td class='base'></td>";
+               }
+
+               # Close display table
+               print "</tr></table></td></tr>";
+       }
 
-                       # Loop over rule file rules
-                       foreach my $sid (sort {$a <=> $b} keys(%{$idsrules{$rulefile}})) {
-                               # Local vars
-                               my $ruledefchecked = '';
+       # Close display table
+       print "</table>";
 
-                               # Skip rulefile itself.
-                               next if ($sid eq "Rulefile");
+       print <<END
+<table width='100%'>
+<tr>
+       <td width='100%' align='right'>
+               <input type='submit' value='$Lang::tr{'fwhost back'}'>
+               <input type='submit' name='RULESET' value='$Lang::tr{'ids apply'}'>
+       </td>
+</tr>
+</table>
+</form>
+END
+;
+       &Header::closebox();
+}
 
-                               # If 2 rules have been displayed, start a new row
-                               if (($lines % 2) == 0) {
-                                       print "</tr><tr>\n";
+#
+## Function to show section for add/edit a provider.
+#
+sub show_add_provider() {
+       my %used_providers = ();
+       my @subscription_providers;
 
-                                       # Increase rows by once.
-                                       $rows++;
-                               }
+       # Read -in providers settings file.
+       &General::readhasharray("$IDS::providers_settings_file", \%used_providers);
 
-                               # Colour lines.
-                               if ($rows % 2) {
-                                       $col="bgcolor='$color{'color20'}'";
-                               } else {
-                                       $col="bgcolor='$color{'color22'}'";
-                               }
+       # Get all supported ruleset providers.
+       my @ruleset_providers = &IDS::get_ruleset_providers();
 
-                               # Set rule state
-                               if ($idsrules{$rulefile}{$sid}{'State'} eq 'on') {
-                                       $ruledefchecked = 'CHECKED';
-                               }
+       ### Java Script ###
+       print "<script>\n";
 
-                               # Create rule checkbox and display rule description
-                               print "<td class='base' width='5%' align='right' $col>\n";
-                               print "<input type='checkbox' NAME='$sid' $ruledefchecked>\n";
-                               print "</td>\n";
-                               print "<td class='base' width='45%' $col>$idsrules{$rulefile}{$sid}{'Description'}</td>";
+       # Generate Java Script Object which contains the URL of the providers.
+       print "\t// Object, which contains the webpages of the ruleset providers.\n";
+       print "\tvar url = {\n";
 
-                               # Increment rule count
-                               $lines++;
-                       }
+       # Loop through the array of supported providers.
+       foreach my $provider (@ruleset_providers) {
+               # Check if the provider requires a subscription.
+               if ($IDS::Ruleset::Providers{$provider}{'requires_subscription'} eq "True") {
+                       # Add the provider to the array of subscription_providers.
+                       push(@subscription_providers, $provider);
+               }
 
-                       # If do not have a second rule for row, create empty cell
-                       if (($lines % 2) != 0) {
-                               print "<td class='base'></td>";
-                       }
+               # Grab the URL for the provider.
+               my $url = $IDS::Ruleset::Providers{$provider}{'website'};
 
-                       # Close display table
-                       print "</tr></table></td></tr>";
+               # Print the URL to the Java Script Object.
+               print "\t\t$provider: \"$url\"\,\n";
+       }
+
+       # Close the Java Script Object declaration.
+       print "\t}\;\n\n";
+
+       # Generate Java Script Array which contains the provider that requires a subscription.
+       my $line = "";
+       $line = join("', '", @subscription_providers);
+
+       print "\t// Array which contains the providers that requires a subscription.\n";
+       print "\tsubscription_provider = ['$line']\;\n\n";
+
+print <<END
+       // Java Script function to swap the text input field for
+       // entering a subscription code.
+       var update_provider = function() {
+               if(inArray(\$('#PROVIDER').val(), subscription_provider)) {
+                       \$('.subscription_code').show();
+               } else {
+                       \$('.subscription_code').hide();
                }
 
-               # Close display table
-               print "</table>";
+               // Call function to change the website url.
+               change_url(\$('#PROVIDER').val());
+       };
 
-               print <<END
-<table width='100%'>
-<tr>
-       <td width='100%' align='right'><input type='submit' name='RULESET' value='$Lang::tr{'ids apply'}'></td>
-</tr>
-</table>
-</form>
+       // Java Script function to check if a given value is part of
+       // an array.
+       function inArray(value,array) {
+               var count=array.length;
+
+               for(var i=0;i<count;i++) {
+                       if(array[i]===value){
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
+       // Tiny function to change the website url based on the selected element in the "PROVIDERS"
+       // dropdown menu.
+       function change_url(provider) {
+               // Get and change the href to the corresponding url.
+               document.getElementById("website").href = url[provider];
+       }
+
+       // JQuery function to call corresponding function when
+       // the ruleset provider is changed or the page is loaded for showing/hiding
+       // the subscription_code area.
+       \$(document).ready(function() {
+               \$('#PROVIDER').change(update_provider);
+                       update_provider();
+       });
+
+       </script>
 END
 ;
-               &Header::closebox();
+
+       # Check if an existing provider should be edited.
+       if($cgiparams{'PROVIDERS'} eq "$Lang::tr{'edit'}") {
+               # Check if autoupdate is enabled for this provider.
+               if ($used_providers{$cgiparams{'ID'}}[2] eq "enabled") {
+                       # Set the checkbox to be checked.
+                       $checked{'ENABLE_AUTOUPDATE'} = "checked='checked'";
+               }
+
+               # Display section to force an rules update and to reset the provider.
+               &show_additional_provider_actions();
+
+       } elsif ($cgiparams{'PROVIDERS'} eq "$Lang::tr{'ids add provider'}") {
+               # Set the autoupdate to true as default.
+               $checked{'ENABLE_AUTOUPDATE'} = "checked='checked'";
        }
+
+       &Header::openbox('100%', 'center', $Lang::tr{'ids provider settings'});
+
+print <<END
+       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+               <table width='100%' border='0'>
+                       <tr>
+                               <td colspan='2'><b>$Lang::tr{'ids provider'}</b></td>
+                       </tr>
+
+                       <tr>
+                               <td width='40%'>
+                                       <input type='hidden' name='ID' value='$cgiparams{'ID'}'>
+END
+;
+                                       # Value to allow disabling the dropdown menu.
+                                       my $disabled;
+
+                                       # Check if we are in edit mode.
+                                       if ($cgiparams{'PROVIDERS'} eq "$Lang::tr{'edit'}") {
+                                               $disabled = "disabled";
+
+                                               # Add hidden input with the provider because the disable select does not provider
+                                               # this.
+                                               print "<input type='hidden' name='PROVIDER' value='$used_providers{$cgiparams{'ID'}}[0]'>\n";
+                                       }
+
+                                       print "<select name='PROVIDER' id='PROVIDER' $disabled>\n";
+                                               # Temporary hash to store the provier names and their handles.
+                                               my %tmphash = ();
+
+                                               # Loop through the array of ruleset providers.
+                                               foreach my $handle (@ruleset_providers) {
+                                                       # Get the provider name.
+                                                       my $name = &get_provider_name($handle);
+
+                                                       # Add the grabbed provider  name and handle to the
+                                                       # temporary hash.
+                                                       $tmphash{$name} = "$handle";
+                                               }
+
+                                               # Sort and loop through the temporary hash.
+                                               foreach my $provider_name ( sort keys %tmphash ) {
+                                                       # Grab the provider handle.
+                                                       my $provider = $tmphash{$provider_name};
+
+                                                       # Pre-select the provider if one is given.
+                                                       if (($used_providers{$cgiparams{'ID'}}[0] eq "$provider") || ($cgiparams{'PROVIDER'} eq "$provider")) {
+                                                               $selected{$provider} = "selected='selected'";
+                                                       }
+
+                                                       # Add the provider to the dropdown menu.
+                                                       print "<option value='$provider' $selected{$provider}>$provider_name</option>\n";
+                                               }
+print <<END
+                                       </select>
+                               </td>
+
+                               <td width='60%'>
+                                       <b><a id="website" target="_blank" href="#">$Lang::tr{'ids visit provider website'}</a></b>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td colspan='2'><br><br></td>
+                       </tr>
+
+                       <tr class='subscription_code' style='display:none' id='subscription_code'>
+                               <td colspan='2'>
+                                       <table border='0'>
+                                               <tr>
+                                                       <td>
+                                                               <b>$Lang::tr{'subscription code'}</b>
+                                                       </td>
+                                               </tr>
+
+                                               <tr>
+                                                       <td>
+                                                               <input type='text' size='40' name='SUBSCRIPTION_CODE' value='$used_providers{$cgiparams{'ID'}}[1]'>
+                                                       </td>
+                                               </tr>
+
+                                               <tr>
+                                                       <td><br><br></td>
+                                               </tr>
+                                       </table>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td colspan='2'>
+                                       <input type='checkbox' name='ENABLE_AUTOUPDATE' $checked{'ENABLE_AUTOUPDATE'}>&nbsp;$Lang::tr{'ids enable automatic updates'}
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td colspan='2' align='right'>
+                                       <input type='submit' value='$Lang::tr{'back'}'>
+END
+;
+                               # Check if a provider should be added or edited.
+                               if ($cgiparams{'PROVIDERS'} eq "$Lang::tr{'edit'}") {
+                                       # Display button for updating the existing provider.
+                                       print "<input type='submit' name='PROVIDERS' value='$Lang::tr{'update'}'>\n";
+                               } else {
+                                       # Display button to add the new provider.
+                                       print "<input type='submit' name='PROVIDERS' value='$Lang::tr{'add'}'>\n";
+                               }
+print <<END
+                               </td>
+                       </tr>
+               </table>
+       </form>
+END
+;
+       &Header::closebox();
 }
 
-&Header::closebigbox();
-&Header::closepage();
+#
+## Function to show the area where additional provider actions can be done.
+#
+sub show_additional_provider_actions() {
+       my $disabled;
+       my %used_providers = ();
+
+       # Read-in providers settings file.
+       &General::readhasharray("$IDS::providers_settings_file", \%used_providers);
+
+       # Assign variable for provider handle.
+       my $provider = "$used_providers{$cgiparams{'ID'}}[0]";
+
+       # Call function to get the path and name for the given providers
+       # oinkmaster modified sids file.
+       my $provider_modified_sids_file = &IDS::get_oinkmaster_provider_modified_sids_file($provider);
+
+       # Disable the reset provider button if no provider modified sids file exists.
+       unless (-f $provider_modified_sids_file) {
+               $disabled = "disabled";
+       }
+
+       &Header::openbox('100%', 'center', "");
+       print <<END
+               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                       <table width='100%' border="0">
+                               <tr>
+                                       <td align='center'>
+                                               <input type='hidden' name='PROVIDER' value='$provider'>
+                                               <input type='submit' name='PROVIDERS' value='$Lang::tr{'ids reset provider'}' $disabled>
+                                               <input type='submit' name='PROVIDERS' value='$Lang::tr{'ids force ruleset update'}'>
+                                       </td>
+                               </tr>
+                       </table>
+               </form>
+END
+;
+       &Header::closebox();
+}
 
 #
 ## A function to display a notice, to lock the webpage and
@@ -1270,7 +1974,7 @@ sub readrulesfile ($) {
                my $msg;
 
                # Gather rule sid and message from the ruleline.
-               if ($line =~ m/.*msg:\"(.*?)\"\; .* sid:(.*?); /) {
+               if ($line =~ m/.*msg:\s*\"(.*?)\"\;.*sid:\s*(.*?); /) {
                        $msg = $1;
                        $sid = $2;
 
@@ -1332,54 +2036,62 @@ sub get_memory_usage($) {
 }
 
 #
-## Function to read-in the given enabled or disables sids file.
+## Function to get the provider handle by a given ID.
 #
-sub read_enabled_disabled_sids_file($) {
-       my ($file) = @_;
-
-       # Temporary hash to store the sids and their state. It will be
-       # returned at the end of this function.
-       my %temphash;
-
-       # Open the given filename.
-       open(FILE, "$file") or die "Could not open $file. $!\n";
-
-       # Loop through the file.
-       while(<FILE>) {
-               # Remove newlines.
-               chomp $_;
-
-               # Skip blank lines.
-               next if ($_ =~ /^\s*$/);
-
-               # Skip coments.
-               next if ($_ =~ /^\#/);
-
-               # Splitt line into sid and state part.
-               my ($state, $sid) = split(" ", $_);
-
-               # Skip line if the sid is not numeric.
-               next unless ($sid =~ /\d+/ );
-
-               # Check if the sid was enabled.
-               if ($state eq "enablesid") {
-                       # Add the sid and its state as enabled to the temporary hash.
-                       $temphash{$sid} = "enabled";
-               # Check if the sid was disabled.
-               } elsif ($state eq "disablesid") {
-                       # Add the sid and its state as disabled to the temporary hash.
-                       $temphash{$sid} = "disabled";
-               # Invalid state - skip the current sid and state.
-               } else {
-                       next;
-               }
+sub get_provider_handle($) {
+       my ($id) = @_;
+
+       my %used_providers = ();
+
+       # Read-in provider settings file.
+       &General::readhasharray($IDS::providers_settings_file, \%used_providers);
+
+       # Obtain the provider handle for the given ID.
+       my $provider_handle = $used_providers{$cgiparams{'ID'}}[0];
+
+       # Return the handle.
+       return $provider_handle;
+}
+
+#
+## Function to get the provider name from the language file or providers file for a given handle.
+#
+sub get_provider_name($) {
+       my ($handle) = @_;
+       my $provider_name;
+
+       # Get the required translation string for the given provider handle.
+       my $tr_string = $IDS::Ruleset::Providers{$handle}{'tr_string'};
+
+       # Check if the translation string is available in the language files.
+       if ($Lang::tr{$tr_string}) {
+               # Use the translated string from the language file.
+               $provider_name = $Lang::tr{$tr_string};
+       } else {
+               # Fallback and use the provider summary from the providers file.
+               $provider_name = $IDS::Ruleset::Providers{$handle}{'summary'};
        }
 
-       # Close filehandle.
-       close(FILE);
+       # Return the obtained provider name.
+       return $provider_name;
+}
+
+#
+## Function to remove a provider by a given ID.
+#
+sub remove_provider($) {
+       my ($id) = @_;
+
+       my %used_providers = ();
+
+       # Read-in provider settings file.
+       &General::readhasharray($IDS::providers_settings_file, \%used_providers);
+
+       # Drop entry from the hash.
+       delete($used_providers{$id});
 
-       # Return the hash.
-       return %temphash;
+       # Write the changed hash to the provider settings file.
+       &General::writehasharray($IDS::providers_settings_file, \%used_providers);
 }
 
 #
index 0d6c6722a6c749da035efa3cccd54f4a8227cf23..3364b7bea5bb4eac1c6df9204edd4d45dc824055 100644 (file)
@@ -62,7 +62,7 @@ my %sections = (
         'ipfire' => '(ipfire: )',
         'ipsec' => '(ipsec_[\w_]+: |pluto\[.*\]: |charon: |vpnwatch: )',
         'kernel' => '(kernel: (?!DROP_))',
-        'monit' => '(monit\[.*\]: )',
+        'monit' => '(monit\[.*?\]: )',
         'ntp' => '(ntpd(?:ate)?\[.*\]: )',
        'oinkmaster' => '(oinkmaster\[.*\]: )',
         'openvpn' => '(openvpnserver\[.*\]: |.*n2n\[.*\]: )',
index 1ecf4f180cf6947ecad3c95ff9a6dd1fdc81d8aa..481d5bdbd266dd7c62f2fbb53c1ce1d8661819af 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2014-2020  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2014-2021  IPFire Team  <info@ipfire.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        #
@@ -110,6 +110,12 @@ $checked{'DROPWIRELESSINPUT'}{$settings{'DROPWIRELESSINPUT'}} = "checked='checke
 $checked{'DROPWIRELESSFORWARD'}{'off'} = '';
 $checked{'DROPWIRELESSFORWARD'}{'on'} = '';
 $checked{'DROPWIRELESSFORWARD'}{$settings{'DROPWIRELESSFORWARD'}} = "checked='checked'";
+$checked{'DROPSPOOFEDMARTIAN'}{'off'} = '';
+$checked{'DROPSPOOFEDMARTIAN'}{'on'} = '';
+$checked{'DROPSPOOFEDMARTIAN'}{$settings{'DROPSPOOFEDMARTIAN'}} = "checked='checked'";
+$checked{'DROPHOSTILE'}{'off'} = '';
+$checked{'DROPHOSTILE'}{'on'} = '';
+$checked{'DROPHOSTILE'}{$settings{'DROPHOSTILE'}} = "checked='checked'";
 $checked{'DROPPROXY'}{'off'} = '';
 $checked{'DROPPROXY'}{'on'} = '';
 $checked{'DROPPROXY'}{$settings{'DROPPROXY'}} = "checked='checked'";
@@ -195,24 +201,82 @@ END
        <br>
 
 <table width='95%' cellspacing='0'>
-<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw logging'}</b></td></tr>
-<tr><td align='left' width='60%'>$Lang::tr{'drop newnotsyn'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPNEWNOTSYN' value='on' $checked{'DROPNEWNOTSYN'}{'on'} />/
-                                                                                                                                                                               <input type='radio' name='DROPNEWNOTSYN' value='off' $checked{'DROPNEWNOTSYN'}{'off'} /> $Lang::tr{'off'}</td></tr>
-<tr><td align='left' width='60%'>$Lang::tr{'drop input'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPINPUT' value='on' $checked{'DROPINPUT'}{'on'} />/
-                                                                                                                                                                               <input type='radio' name='DROPINPUT' value='off' $checked{'DROPINPUT'}{'off'} /> $Lang::tr{'off'}</td></tr>
-<tr><td align='left' width='60%'>$Lang::tr{'drop forward'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPFORWARD' value='on' $checked{'DROPFORWARD'}{'on'} />/
-                                                                                                                                                                               <input type='radio' name='DROPFORWARD' value='off' $checked{'DROPFORWARD'}{'off'} /> $Lang::tr{'off'}</td></tr>
-<tr><td align='left' width='60%'>$Lang::tr{'drop outgoing'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPOUTGOING' value='on' $checked{'DROPOUTGOING'}{'on'} />/
-                                                                                                                                                                               <input type='radio' name='DROPOUTGOING' value='off' $checked{'DROPOUTGOING'}{'off'} /> $Lang::tr{'off'}</td></tr>
-<tr><td align='left' width='60%'>$Lang::tr{'drop portscan'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPPORTSCAN' value='on' $checked{'DROPPORTSCAN'}{'on'} />/
-                                                                                                                                                                               <input type='radio' name='DROPPORTSCAN' value='off' $checked{'DROPPORTSCAN'}{'off'} /> $Lang::tr{'off'}</td></tr>
-<tr><td align='left' width='60%'>$Lang::tr{'drop wirelessinput'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPWIRELESSINPUT' value='on' $checked{'DROPWIRELESSINPUT'}{'on'} />/
-                                                                                                                                                                               <input type='radio' name='DROPWIRELESSINPUT' value='off' $checked{'DROPWIRELESSINPUT'}{'off'} /> $Lang::tr{'off'}</td></tr>
-<tr><td align='left' width='60%'>$Lang::tr{'drop wirelessforward'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPWIRELESSFORWARD' value='on' $checked{'DROPWIRELESSFORWARD'}{'on'} />/
-                                                                                                                                                                               <input type='radio' name='DROPWIRELESSFORWARD' value='off' $checked{'DROPWIRELESSFORWARD'}{'off'} /> $Lang::tr{'off'}</td></tr>
+       <tr bgcolor='$color{'color20'}'>
+               <td colspan='2' align='left'><b>$Lang::tr{'fw logging'}</b></td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop newnotsyn'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPNEWNOTSYN' value='on' $checked{'DROPNEWNOTSYN'}{'on'} />/
+                       <input type='radio' name='DROPNEWNOTSYN' value='off' $checked{'DROPNEWNOTSYN'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop input'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPINPUT' value='on' $checked{'DROPINPUT'}{'on'} />/
+                       <input type='radio' name='DROPINPUT' value='off' $checked{'DROPINPUT'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop forward'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPFORWARD' value='on' $checked{'DROPFORWARD'}{'on'} />/
+                       <input type='radio' name='DROPFORWARD' value='off' $checked{'DROPFORWARD'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop outgoing'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPOUTGOING' value='on' $checked{'DROPOUTGOING'}{'on'} />/
+                       <input type='radio' name='DROPOUTGOING' value='off' $checked{'DROPOUTGOING'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop portscan'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPPORTSCAN' value='on' $checked{'DROPPORTSCAN'}{'on'} />/
+                       <input type='radio' name='DROPPORTSCAN' value='off' $checked{'DROPPORTSCAN'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop wirelessinput'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPWIRELESSINPUT' value='on' $checked{'DROPWIRELESSINPUT'}{'on'} />/
+                       <input type='radio' name='DROPWIRELESSINPUT' value='off' $checked{'DROPWIRELESSINPUT'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop wirelessforward'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPWIRELESSFORWARD' value='on' $checked{'DROPWIRELESSFORWARD'}{'on'} />/
+                       <input type='radio' name='DROPWIRELESSFORWARD' value='off' $checked{'DROPWIRELESSFORWARD'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop spoofed martians'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPSPOOFEDMARTIAN' value='on' $checked{'DROPSPOOFEDMARTIAN'}{'on'} />/
+                       <input type='radio' name='DROPSPOOFEDMARTIAN' value='off' $checked{'DROPSPOOFEDMARTIAN'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
 </table>
 <br/>
 
+<table width='95%' cellspacing='0'>
+       <tr bgcolor='$color{'color20'}'>
+               <td colspan='2' align='left'><b>$Lang::tr{'fw red'}</b></td>
+       </tr>
+       <tr>
+               <td align='left' width='60%'>$Lang::tr{'drop hostile'}</td>
+               <td align='left'>
+                       $Lang::tr{'on'} <input type='radio' name='DROPHOSTILE' value='on' $checked{'DROPHOSTILE'}{'on'} />/
+                       <input type='radio' name='DROPHOSTILE' value='off' $checked{'DROPHOSTILE'}{'off'} /> $Lang::tr{'off'}
+               </td>
+       </tr>
+</table>
+<br>
+
 <table width='95%' cellspacing='0'>
 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw blue'}</b></td></tr>
 <tr><td align='left' width='60%'>$Lang::tr{'drop proxy'}</td><td align='left'>$Lang::tr{'on'} <input type='radio' name='DROPPROXY' value='on' $checked{'DROPPROXY'}{'on'} />/
index f2381f03126b0463ea0ad86affe8847aab5838bd..51f586aa253f07695f28f3d05d3c3647fe409471 100644 (file)
@@ -20,6 +20,7 @@
 ###############################################################################
 
 use strict;
+use List::Util qw(any);
 
 # enable only the following on debugging purpose
 #use warnings;
@@ -36,31 +37,155 @@ my %color = ();
 my %pakfiresettings = ();
 my %mainsettings = ();
 
-&Header::showhttpheaders();
+# Load general settings
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
 
+# Get CGI request data
 $cgiparams{'ACTION'} = '';
 $cgiparams{'VALID'} = '';
 
 $cgiparams{'INSPAKS'} = '';
 $cgiparams{'DELPAKS'} = '';
 
-my $page_lock;
+&Header::getcgihash(\%cgiparams);
 
-sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'pagerefresh'}</font></center>";&Header::closebox();}
+### Process AJAX/JSON request ###
+if($cgiparams{'ACTION'} eq 'json-getstatus') {
+       # Send HTTP headers
+       _start_json_output();
 
-&Header::getcgihash(\%cgiparams);
+       # Read /var/log/messages backwards until a "Pakfire started" header is found,
+       # to capture all messages of the last (i.e. current) Pakfire run
+       my @messages = `tac /var/log/messages | sed -n '/pakfire:/{p;/Pakfire.*started/q}'`;
 
-&General::readhash("${General::swroot}/main/settings", \%mainsettings);
-&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
+       # Test if the log contains an error message (fastest implementation, stops at first match)
+       my $failure = any{ index($_, 'ERROR') != -1 } @messages;
+
+       # Collect Pakfire status
+       my %status = (
+               'running' => &_is_pakfire_busy() || "0",
+               'running_since' => &General::age("$Pakfire::lockfile") || "0s",
+               'reboot' => (-e "/var/run/need_reboot") || "0",
+               'failure' => $failure || "0"
+       );
+
+       # Start JSON file
+       print "{\n";
+
+       foreach my $key (keys %status) {
+               my $value = $status{$key};
+               print qq{\t"$key": "$value",\n};
+       }
+
+       # Print sanitized messages in reverse order to undo previous "tac"
+       print qq{\t"messages": [\n};
+       for my $index (reverse (0 .. $#messages)) {
+               my $line = $messages[$index];
+               $line =~ s/[[:cntrl:]<>&\\]+//g;
+
+               print qq{\t\t"$line"};
+               print ",\n" unless $index < 1;
+       }
+       print "\n\t]\n";
+
+       # Finalize JSON file & stop
+       print "}";
+       exit;
+}
+
+### Start pakfire page ###
+&Header::showhttpheaders();
+
+###--- HTML HEAD ---###
+my $extraHead = <<END
+<style>
+       /* Main screen */
+       table#pfmain {
+               width: 100%;
+               border-style: hidden;
+               table-layout: fixed;
+       }
+
+       #pfmain td {
+               padding: 5px 20px 0;
+               text-align: center;
+       }
+       #pfmain tr:not(:last-child) > td {
+               padding-bottom: 1.5em;
+       }
+       #pfmain tr > td.heading {
+               padding: 0;
+               font-weight: bold;
+               background-color: $color{'color20'};
+       }
+
+       .pflist {
+               width: 100%;
+               text-align: left;
+               margin-bottom: 0.8em;
+       }
+
+       /* Pakfire log viewer */
+       section#pflog-header {
+               width: 100%;
+               display: flex;
+               text-align: left;
+               align-items: center;
+               column-gap: 20px;
+       }
+       #pflog-header > div:last-child {
+               margin-left: auto;
+               margin-right: 20px;
+       }
+       #pflog-header span {
+               line-height: 1.3em;
+       }
+       #pflog-header span:empty::before {
+               content: "\\200b"; /* zero width space */
+       }
+
+       pre#pflog-messages {
+               margin-top: 0.7em;
+               padding-top: 0.7em;
+               border-top: 0.5px solid $Header::bordercolour;
 
-&Header::openpage($Lang::tr{'pakfire configuration'}, 1);
+               text-align: left;
+               min-height: 15em;
+               overflow-x: auto;
+       }
+</style>
+
+<script src="/include/pakfire.js"></script>
+<script>
+       // Translations
+       pakfire.i18n.load({
+               'working': '$Lang::tr{'pakfire working'}',
+               'finished': '$Lang::tr{'pakfire finished'}',
+               'finished error': '$Lang::tr{'pakfire finished error'}',
+               'since': '$Lang::tr{'since'}',
+
+               'link_return': '<a href="$ENV{'SCRIPT_NAME'}">$Lang::tr{'pakfire return'}</a>',
+               'link_reboot': '<a href="/cgi-bin/shutdown.cgi">$Lang::tr{'needreboot'}</a>'
+       });
+
+       // AJAX auto refresh interval (in ms, default: 1000)
+       //pakfire.refreshInterval = 1000;
+
+       // Enable returning to main screen (delay in ms)
+       pakfire.setupPageReload(true, 3000);
+</script>
+END
+;
+###--- END HTML HEAD ---###
+
+&Header::openpage($Lang::tr{'pakfire configuration'}, 1, $extraHead);
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
-if (($cgiparams{'ACTION'} eq 'install') && (! -e $Pakfire::lockfile)) {
+# Process Pakfire commands
+if (($cgiparams{'ACTION'} eq 'install') && (! &_is_pakfire_busy())) {
        my @pkgs = split(/\|/, $cgiparams{'INSPAKS'});
        if ("$cgiparams{'FORCE'}" eq "on") {
-               # Lock the page.
-               $page_lock = "1";
                &General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", @pkgs);
        } else {
                &Header::openbox("100%", "center", $Lang::tr{'request'});
@@ -74,20 +199,23 @@ END
                        print "$_\n";
                }
                print <<END;
-               </pre>
-               <tr><td colspan='2'>$Lang::tr{'pakfire accept all'}
-               <tr><td colspan='2'>&nbsp;
+               </pre></td></tr>
+               <tr><td colspan='2'>$Lang::tr{'pakfire accept all'}</td></tr>
+               <tr><td colspan='2'>&nbsp;</td></tr>
                <tr><td align='right'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
                                                        <input type='hidden' name='INSPAKS' value='$cgiparams{'INSPAKS'}' />
                                                        <input type='hidden' name='FORCE' value='on' />
                                                        <input type='hidden' name='ACTION' value='install' />
                                                        <input type='image' alt='$Lang::tr{'install'}' title='$Lang::tr{'install'}' src='/images/go-next.png' />
                                                </form>
+                               </td>
                                <td align='left'>
                                                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
                                                        <input type='hidden' name='ACTION' value='' />
                                                        <input type='image' alt='$Lang::tr{'abort'}' title='$Lang::tr{'abort'}' src='/images/dialog-error.png' />
                                                </form>
+                               </td>
+                       </tr>
                </table>
 END
                &Header::closebox();
@@ -95,11 +223,9 @@ END
                &Header::closepage();
                exit;
        }
-} elsif (($cgiparams{'ACTION'} eq 'remove') && (! -e $Pakfire::lockfile)) {
+} elsif (($cgiparams{'ACTION'} eq 'remove') && (! &_is_pakfire_busy())) {
        my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
        if ("$cgiparams{'FORCE'}" eq "on") {
-               # Lock the page.
-               $page_lock = "1";
                &General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", @pkgs);
        } else {
                &Header::openbox("100%", "center", $Lang::tr{'request'});
@@ -113,20 +239,23 @@ END
                        print "$_\n";
                }
                print <<END;
-               </pre>
-               <tr><td colspan='2'>$Lang::tr{'pakfire uninstall all'}
-               <tr><td colspan='2'>&nbsp;
+               </pre></td></tr>
+               <tr><td colspan='2'>$Lang::tr{'pakfire uninstall all'}</td></tr>
+               <tr><td colspan='2'>&nbsp;</td></tr>
                <tr><td align='right'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
                                                        <input type='hidden' name='DELPAKS' value='$cgiparams{'DELPAKS'}' />
                                                        <input type='hidden' name='FORCE' value='on' />
                                                        <input type='hidden' name='ACTION' value='remove' />
                                                        <input type='image' alt='$Lang::tr{'uninstall'}' title='$Lang::tr{'uninstall'}' src='/images/go-next.png' />
                                                </form>
+                               </td>
                                <td align='left'>
                                                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
                                                        <input type='hidden' name='ACTION' value='' />
                                                        <input type='image' alt='$Lang::tr{'abort'}' title='$Lang::tr{'abort'}' src='/images/dialog-error.png' />
                                                </form>
+                               </td>
+                       </tr>
                </table>
 END
                &Header::closebox();
@@ -135,13 +264,9 @@ END
                exit;
        }
 
-} elsif (($cgiparams{'ACTION'} eq 'update') && (! -e $Pakfire::lockfile)) {
-       # Set variable to lock the page.
-       $page_lock = "1";
+} elsif (($cgiparams{'ACTION'} eq 'update') && (! &_is_pakfire_busy())) {
        &General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors");
-} elsif (($cgiparams{'ACTION'} eq 'upgrade') && (!-e $Pakfire::lockfile)) {
-       # Lock the page.
-       $page_lock = "1";
+} elsif (($cgiparams{'ACTION'} eq 'upgrade') && (! &_is_pakfire_busy())) {
        &General::system_background("/usr/local/bin/pakfire", "upgrade", "-y", "--no-colors");
 } elsif ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") {
        $pakfiresettings{"TREE"} = $cgiparams{"TREE"};
@@ -177,70 +302,35 @@ if ($errormessage) {
        &Header::closebox();
 }
 
-# Check if a page lock is required.
-if ($page_lock) {
-       &Header::openbox('Waiting', 1, ,);
-               print <<END;
-               <table>
-                       <tr>
-                               <td>
-                                       <img src='/images/indicator.gif' alt='$Lang::tr{'active'}' title='$Lang::tr{'active'}'>
-                               </td>
+# Show log output while Pakfire is running
+if(&_is_pakfire_busy()) {
+       &Header::openbox("100%", "center", "Pakfire");
+
+       print <<END
+<section id="pflog-header">
+       <div><img src="/images/indicator.gif" alt="$Lang::tr{'active'}" title="$Lang::tr{'pagerefresh'}"></div>
+       <div>
+               <span id="pflog-status">$Lang::tr{'pakfire working'}</span><br>
+               <span id="pflog-time"></span><br>
+               <span id="pflog-action"></span>
+       </div>
+       <div><a href="$ENV{'SCRIPT_NAME'}"><img src="/images/view-refresh.png" alt="$Lang::tr{'refresh'}" title="$Lang::tr{'refresh'}"></a></div>
+</section>
+
+<!-- Pakfire log messages -->
+<pre id="pflog-messages"></pre>
+<script>
+       // Start automatic log refresh
+       pakfire.running = true;
+</script>
 
-                               <td>
-                                       $Lang::tr{'pakfire working'}
-                               </td>
-                       </tr>
-               </table>
 END
-       &Header::closebox();
-
-       # Infinite loop to lock the page until pakfire lockfile is present.
-       while($page_lock) {
-               unless (-e $Pakfire::lockfile) {
-                       sleep(1);
-               } else {
-                       # Release page lock.
-                       undef($page_lock);
-
-                       # Break loop.
-                       last;
-               }
-       }
-
-       # Perform page reload.
-       print "<meta http-equiv='refresh' content='1;'>\n";
-       exit;
-}
+;
 
-# Check if pakfire is already running. In this case a lockfile is present.
-if (-e $Pakfire::lockfile) {
-       &Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='10;'>" );
-       print <<END;
-       <table>
-               <tr><td>
-                               <img src='/images/indicator.gif' alt='$Lang::tr{'active'}' title='$Lang::tr{'active'}' />&nbsp;
-                       <td>
-                               $Lang::tr{'pakfire working'}
-               <tr><td colspan='2' align='center'>
-                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                               <input type='image' alt='$Lang::tr{'reload'}' title='$Lang::tr{'reload'}' src='/images/view-refresh.png' />
-                       </form>
-               <tr><td colspan='2' align='left'><code>
-END
-       my @output = `grep pakfire /var/log/messages | tail -20`;
-       foreach (@output) {
-               print "$_<br>";
-       }
-       print <<END;
-                       </code>
-               </table>
-END
        &Header::closebox();
        &Header::closebigbox();
        &Header::closepage();
        exit;
-       refreshpage();
 }
 
 my $core_release = `cat /opt/pakfire/db/core/mine 2>/dev/null`;
@@ -253,70 +343,69 @@ my $packages_update_age = &General::age("/opt/pakfire/db/lists/packages_list.db"
 &Header::openbox("100%", "center", "Pakfire");
 
 print <<END;
-       <table width='95%' cellpadding='5'>
+       <table id="pfmain">
 END
 if ( -e "/var/run/need_reboot") {
-       print "<tr><td align='center' colspan='2'><font color='red'>$Lang::tr{'needreboot'}!</font></td></tr>";
-       print "<tr><td colspan='2'>&nbsp;</font></td></tr>"
+       print "\t\t<tr><td colspan='2'><a href='/cgi-bin/shutdown.cgi'>$Lang::tr{'needreboot'}!</a></td></tr>\n";
 }
 print <<END;
-               <tr><td width="50%" bgcolor='$color{'color20'}' align="center"><b>$Lang::tr{'pakfire system state'}:</b>
-
-                       <td width="50%" bgcolor='$color{'color20'}' align="center"><b>$Lang::tr{'available updates'}:</b></tr>
-
-               <tr><td align="center">$Lang::tr{'pakfire core update level'}: $core_release<hr />
-                                       $Lang::tr{'pakfire last update'} $core_update_age $Lang::tr{'pakfire ago'}<br />
-                                       $Lang::tr{'pakfire last serverlist update'} $server_update_age $Lang::tr{'pakfire ago'}<br />
-                                       $Lang::tr{'pakfire last core list update'} $corelist_update_age $Lang::tr{'pakfire ago'}<br />
+               <tr><td class="heading">$Lang::tr{'pakfire system state'}:</td>
+                       <td class="heading">$Lang::tr{'available updates'}:</td></tr>
+
+               <tr><td><strong>$Lang::tr{'pakfire core update level'}: $core_release</strong>
+                               <hr>
+                               <div class="pflist">
+                                       $Lang::tr{'pakfire last update'} $core_update_age $Lang::tr{'pakfire ago'}<br>
+                                       $Lang::tr{'pakfire last serverlist update'} $server_update_age $Lang::tr{'pakfire ago'}<br>
+                                       $Lang::tr{'pakfire last core list update'} $corelist_update_age $Lang::tr{'pakfire ago'}<br>
                                        $Lang::tr{'pakfire last package update'} $packages_update_age $Lang::tr{'pakfire ago'}
-                                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                                               <input type='hidden' name='ACTION' value='update' /><br />
-                                               <input type='submit' value='$Lang::tr{'calamaris refresh list'}' /><br />
-                                       </form>
-<br />
-                               <td align="center">
+                               </div>
                                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                                       <select name="UPDPAKS" size="5" disabled>
+                                       <input type='hidden' name='ACTION' value='update' />
+                                       <input type='submit' value='$Lang::tr{'calamaris refresh list'}' />
+                               </form>
+                       </td>
+                       <td>
+                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                       <select name="UPDPAKS" class="pflist" size="5" disabled>
 END
-                                               &Pakfire::dblist("upgrade", "forweb");
+
+       &Pakfire::dblist("upgrade", "forweb");
        print <<END;
                                        </select>
-                                       <br />
                                        <input type='hidden' name='ACTION' value='upgrade' />
                                        <input type='image' alt='$Lang::tr{'upgrade'}' title='$Lang::tr{'upgrade'}' src='/images/document-save.png' />
                                 </form>
+                       </td>
+               </tr>
+               <tr><td class="heading">$Lang::tr{'pakfire available addons'}</td>
+                       <td class="heading">$Lang::tr{'pakfire installed addons'}</td></tr>
 
-               <tr><td colspan="2"><!-- Just an empty line -->&nbsp;
-               <tr><td bgcolor='$color{'color20'}' align="center"><b>$Lang::tr{'pakfire available addons'}</b>
-                               <td bgcolor='$color{'color20'}' align="center"><b>$Lang::tr{'pakfire installed addons'}</b>
-               <tr><td style="padding:5px 10px 20px 20px" align="center">
-                       <p>$Lang::tr{'pakfire install description'}</p>
-                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                               <select name="INSPAKS" size="10" multiple>
+               <tr><td><p>$Lang::tr{'pakfire install description'}</p>
+                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                       <select name="INSPAKS" class="pflist" size="10" multiple>
 END
-                       &Pakfire::dblist("notinstalled", "forweb");
 
-print <<END;
-                               </select>
-                               <br />
-                               <input type='hidden' name='ACTION' value='install' />
-                               <input type='image' alt='$Lang::tr{'install'}' title='$Lang::tr{'install'}' src='/images/list-add.png' />
-                       </form>
-
-               <td style="padding:5px 10px 20px 20px" align="center">
-                       <p>$Lang::tr{'pakfire uninstall description'}</p>
-                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                       <select name="DELPAKS" size="10" multiple>
+       &Pakfire::dblist("notinstalled", "forweb");
+       print <<END;
+                                       </select>
+                                       <input type='hidden' name='ACTION' value='install' />
+                                       <input type='image' alt='$Lang::tr{'install'}' title='$Lang::tr{'install'}' src='/images/list-add.png' />
+                               </form>
+                       </td>
+                       <td><p>$Lang::tr{'pakfire uninstall description'}</p>
+                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                       <select name="DELPAKS" class="pflist" size="10" multiple>
 END
 
-                       &Pakfire::dblist("installed", "forweb");
-
-print <<END;
-                       </select>
-                       <br />
-                       <input type='hidden' name='ACTION' value='remove' />
-                       <input type='image' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' src='/images/list-remove.png' />
-               </form>
+       &Pakfire::dblist("installed", "forweb");
+       print <<END;
+                                       </select>
+                                       <input type='hidden' name='ACTION' value='remove' />
+                                       <input type='image' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' src='/images/list-remove.png' />
+                               </form>
+                       </td>
+               </tr>
        </table>
 END
 
@@ -351,3 +440,32 @@ END
 &Header::closebox();
 &Header::closebigbox();
 &Header::closepage();
+
+###--- Internal functions ---###
+
+# Check if pakfire is already running (extend test here if necessary)
+sub _is_pakfire_busy {
+       # Return immediately if lockfile is present
+       if(-e "$Pakfire::lockfile") {
+               return 1;
+       }
+
+       # Check if a PID of a running pakfire instance is found
+       # (The system backpipe command is safe, because no user input is computed.)
+       my $pakfire_pid = `pidof -s /usr/local/bin/pakfire`;
+       chomp($pakfire_pid);
+
+       if($pakfire_pid) {
+               return 1;
+       }
+
+       # Pakfire isn't running
+       return 0;
+}
+
+# Send HTTP headers
+sub _start_json_output {
+       print "Cache-Control: no-cache, no-store\n";
+       print "Content-Type: application/json\n";
+       print "\n"; # End of HTTP headers
+}
diff --git a/html/html/include/pakfire.js b/html/html/include/pakfire.js
new file mode 100644 (file)
index 0000000..44a40c7
--- /dev/null
@@ -0,0 +1,327 @@
+/*#############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+#############################################################################*/
+
+"use strict";
+
+// Pakfire Javascript functions (requires jQuery)
+class PakfireJS {
+       constructor() {
+               //--- Public properties ---
+               // Translation strings
+               this.i18n = new PakfireI18N();
+
+               //--- Private properties ---
+               // Status flags (access outside constructor only with setter/getter)
+               this._states = Object.create(null);
+               this._states.running = false;
+               this._states.reboot = false;
+               this._states.failure = false;
+
+               // Status refresh helper
+               this._autoRefresh = {
+                       delay: 1000, //Delay between requests (minimum: 500, default: 1s)
+                       jsonAction: 'getstatus', //CGI POST action parameter
+                       timeout: 5000, //XHR timeout (0 to disable, default: 5s)
+
+                       delayTimer: null, //setTimeout reference
+                       jqXHR: undefined, //jQuery.ajax promise reference
+                       get runningDelay() { //Waiting for end of delay
+                               return (this.delayTimer !== null);
+                       },
+                       get runningXHR() { //Waiting for CGI response
+                               return (this.jqXHR && (this.jqXHR.state() === 'pending'));
+                       },
+                       get isRunning() {
+                               return (this.runningDelay || this.runningXHR);
+                       }
+               };
+
+               // Return to main screen helper
+               this._pageReload = {
+                       delay: 1000, //Delay before page reload (default: 1s)
+                       enabled: false, //Reload disabled by default
+
+                       delayTimer: null, //setTimeout reference
+                       get isTriggered() { //Reload timer started
+                               return (this.delayTimer !== null);
+                       }
+               };
+       }
+
+       //### Public properties ###
+
+       // Note on using the status flags
+       // running: Pakfire is performing a task.
+       //    Writing "true" activates the periodic AJAX/JSON status polling, writing "false" stops polling.
+       //    When the task has been completed, status polling stops and this returns to "false".
+       //    The page can then be reloaded to go back to the main screen. Writing "false" does not trigger a reload.
+       //    "refreshInterval" and "setupPageReload" can be used to adjust the respective behaviour.
+       // reboot: An update requires a reboot.
+       //    If set to "true", a link to the reboot menu is shown after the task is completed.
+       // failure: An error has occured.
+       //    To display the error log, the page does not return to the main screen.
+
+       // Pakfire is running (true/false)
+       set running(state) {
+               if(this._states.running !== state) {
+                       this._states.running = state;
+                       this._states_onChange('running');
+               }
+       }
+       get running() {
+               return this._states.running;
+       }
+
+       // Reboot needed (true/false)
+       set reboot(state) {
+               if(this._states.reboot !== state) {
+                       this._states.reboot = state;
+                       this._states_onChange('reboot');
+               }
+       }
+       get reboot() {
+               return this._states.reboot;
+       }
+
+       // Error encountered (true/false)
+       set failure(state) {
+               if(this._states.failure !== state) {
+                       this._states.failure = state;
+                       this._states_onChange('failure');
+               }
+       }
+       get failure() {
+               return this._states.failure;
+       }
+
+       // Status refresh interval in ms
+       set refreshInterval(delay) {
+               if(delay < 500) {
+                       delay = 500; //enforce reasonable minimum
+               }
+               this._autoRefresh.delay = delay;
+       }
+       get refreshInterval() {
+               return this._autoRefresh.delay;
+       }
+
+       // Configure page reload after successful task (returns to main screen)
+       // delay: In ms
+       setupPageReload(enabled, delay) {
+               if(delay < 0) {
+                       delay = 0;
+               }
+               this._pageReload.delay = delay;
+               this._pageReload.enabled = enabled;
+       }
+
+       // Document loaded (call once from jQuery.ready)
+       documentReady() {
+               // Status refresh late start
+               if(this.running && (! this._autoRefresh.isRunning)) {
+                       this._autoRefresh_runNow();
+               }
+       }
+
+       // Reload entire CGI page (clears POST/GET data from history)
+       documentReload() {
+               let url = window.location.origin + window.location.pathname;
+               window.location.replace(url);
+       }
+
+       //### Private properties ###
+
+       // Pakfire status change handler
+       // property: Affected status (running, reboot, ...)
+       _states_onChange(property) {
+               // Always update UI
+               if(this.running) {
+                       $('#pflog-status').text(this.i18n.get('working'));
+                       $('#pflog-action').empty();
+               } else {
+                       if(this.failure) {
+                               $('#pflog-status').text(this.i18n.get('finished error'));
+                       } else {
+                               $('#pflog-status').text(this.i18n.get('finished'));
+                       }
+                       if(this.reboot) { //Enable return or reboot links in UI
+                               $('#pflog-action').html(this.i18n.get('link_return') + " &bull; " + this.i18n.get('link_reboot'));
+                       } else {
+                               $('#pflog-action').html(this.i18n.get('link_return'));
+                       }
+               }
+
+               // Start/stop status refresh if Pakfire started/stopped
+               if(property === 'running') {
+                       if(this.running) {
+                               this._autoRefresh_runNow();
+                       } else {
+                               this._autoRefresh_clearSchedule();
+                       }
+               }
+
+               // Always stay in the log viewer if Pakfire failed
+               if(property === 'failure') {
+                       if(this.failure) {
+                               this._pageReload_cancel();
+                       }
+               }
+       }
+
+       //--- Status refresh scheduling functions ---
+
+       // Immediately perform AJAX status refresh request
+       _autoRefresh_runNow() {
+               if(this._autoRefresh.runningXHR) {
+                       return; // Don't send multiple requests
+               }
+               this._autoRefresh_clearSchedule(); // Stop scheduled refresh, will send immediately
+
+               // Send AJAX request, attach listeners
+               this._autoRefresh.jqXHR = this._JSON_get(this._autoRefresh.jsonAction, this._autoRefresh.timeout);
+               this._autoRefresh.jqXHR.done(function() { // Request succeeded
+                       if(this.running) { // Keep refreshing while Pakfire is running
+                               this._autoRefresh_scheduleRun();
+                       }
+               });
+               this._autoRefresh.jqXHR.fail(function() { // Request failed
+                       this._autoRefresh_scheduleRun(); // Try refreshing until valid status is received
+               });
+       }
+
+       // Schedule next refresh
+       _autoRefresh_scheduleRun() {
+               if(this._autoRefresh.runningDelay || this._autoRefresh.runningXHR) {
+                       return; // Refresh already scheduled or in progress
+               }
+               this._autoRefresh.delayTimer = window.setTimeout(function() {
+                       this._autoRefresh.delayTimer = null;
+                       this._autoRefresh_runNow();
+               }.bind(this), this._autoRefresh.delay);
+       }
+
+       // Stop scheduled refresh (can still be refreshed up to 1x if XHR is already sent)
+       _autoRefresh_clearSchedule() {
+               if(this._autoRefresh.runningDelay) {
+                       window.clearTimeout(this._autoRefresh.delayTimer);
+                       this._autoRefresh.delayTimer = null;
+               }
+       }
+
+       // Start delayed page reload to return to main screen
+       _pageReload_trigger() {
+               if((! this._pageReload.enabled) || this._pageReload.isTriggered) {
+                       return; // Disabled or already started
+               }
+               this._pageReload.delayTimer = window.setTimeout(function() {
+                       this._pageReload.delayTimer = null;
+                       this.documentReload();
+               }.bind(this), this._pageReload.delay);
+       }
+
+       // Stop scheduled reload
+       _pageReload_cancel() {
+               if(this._pageReload.isTriggered) {
+                       window.clearTimeout(this._pageReload.delayTimer);
+                       this._pageReload.delayTimer = null;
+               }
+       }
+
+       //--- JSON request & data handling ---
+
+       // Load JSON data from Pakfire CGI, using a POST request
+       // action: POST paramter "json-[action]"
+       // maxTime: XHR timeout, 0 = no timeout
+       _JSON_get(action, maxTime = 0) {
+               return $.ajax({
+                       url: '/cgi-bin/pakfire.cgi',
+                       method: 'POST',
+                       timeout: maxTime,
+                       context: this,
+                       data: {'ACTION': `json-${action}`},
+                       dataType: 'json' //automatically check and convert result
+               })
+                       .done(function(response) {
+                               this._JSON_process(action, response);
+                       });
+       }
+
+       // Process successful response from Pakfire CGI
+       // action: POST paramter "json-[action]" used to send request
+       // data: JSON data object
+       _JSON_process(action, data) {
+               // Pakfire status refresh
+               if(action === this._autoRefresh.jsonAction) {
+                       // Update status flags
+                       this.running = (data['running'] != '0');
+                       this.reboot = (data['reboot'] != '0');
+                       this.failure = (data['failure'] != '0');
+
+                       // Update timer display
+                       if(this.running && data['running_since']) {
+                               $('#pflog-time').text(this.i18n.get('since') + " " + data['running_since']);
+                       } else {
+                               $('#pflog-time').empty();
+                       }
+
+                       // Print log messages
+                       let messages = "";
+                       data['messages'].forEach(function(line) {
+                               messages += `${line}\n`;
+                       });
+                       $('#pflog-messages').text(messages);
+
+                       // Pakfire finished without errors, return to main screen
+                       if((! this.running) && (! this.failure)) {
+                               this._pageReload_trigger();
+                       }
+               }
+       }
+}
+
+// Simple translation strings helper
+// Format: {key: "translation"}
+class PakfireI18N {
+       constructor() {
+               this._strings = Object.create(null); //Object without prototypes
+       }
+
+       // Get translation
+       get(key) {
+               if(Object.prototype.hasOwnProperty.call(this._strings, key)) {
+                       return this._strings[key];
+               }
+               return `(undefined string '${key}')`;
+       }
+
+       // Load key/translation object
+       load(translations) {
+               if(translations instanceof Object) {
+                       Object.assign(this._strings, translations);
+               }
+       }
+}
+
+//### Initialize Pakfire ###
+const pakfire = new PakfireJS();
+
+$(function() {
+       pakfire.documentReady();
+});
index c81b28fea62ff2b657ab5ce82098214f81bb85e5..cf34fd86eeede2b9232a9146a0778151dbfab764 100644 (file)
@@ -1,4 +1,4 @@
-%tr = ( 
+%tr = (
 %tr,
 
 '24 hours' => '24 Stunden',
 'drop action1' => 'Standardverhalten der (Outgoing) Firewall in Modus "Blocked"',
 'drop action2' => 'Standardverhalten der (Input) Firewall',
 'drop forward' => 'Verworfene, von der Firewall weitergeleitete Pakete protokollieren',
+'drop hostile' => 'Pakete von und zu bösartigen Netzen (Spamhaus DROP-Listing, etc.) verwerfen',
 'drop input' => 'Verworfene eingehende Pakete protokollieren',
 'drop newnotsyn' => 'Verworfene neue Pakete ohne SYN-Markierung protokollieren (NewNotSYN)',
 'drop outgoing' => 'Verworfene, von der Firewall ausgehende Pakete protokollieren',
 'drop portscan' => 'Verworfene Portscan Pakete protokollieren',
 'drop proxy' => 'Alle Pakete verwerfen, die nicht direkt an den Proxy gerichtet sind',
 'drop samba' => 'Alle Pakete an Microsoftdienste verwerfen (Ports 135, 137, 138, 139, 445 und 1025)',
+'drop spoofed martians' => 'Verworfene gefälschte Pakete und Marsianer protokollieren',
 'drop wirelessforward' => 'Verworfene weitergeleitete Wireless-Pakete protokollieren',
 'drop wirelessinput' => 'Verworfene eingehende Wireless-Pakete protokollieren',
 'dst port' => 'Zielport',
 'from email server' => 'Von E-Mail-Server',
 'from email user' => 'Von E-Mail-Benutzer',
 'from warn email bad' => 'Von E-Mail-Adresse ist nicht gültig',
-'fw blue' => 'Firewalloptionen für das Blaue Interface',
+'fw blue' => 'Firewalloptionen für das blaue Interface',
 'fw default drop' => 'Firewallrichtlinie',
 'fw logging' => 'Firewallprotokollierung',
 'fw settings' => 'Firewalleinstellungen',
 'fw settings dropdown' => 'Alle Netzwerke auf Regelerstellungsseite anzeigen',
 'fw settings remark' => 'Anmerkungen in Regeltabelle anzeigen',
 'fw settings ruletable' => 'Leere Regeltabellen anzeigen',
+'fw red' => 'Firewalloptionen für das rote Interface',
 'fwdfw ACCEPT' => 'Akzeptieren (ACCEPT)',
 'fwdfw DROP' => 'Verwerfen (DROP)',
 'fwdfw MODE1' => 'Alle Pakete verwerfen',
 'host deny' => 'Liste der nicht Zugriffsberechtigten',
 'host ip' => 'Host IP-Adresse',
 'host to net vpn' => 'Host-zu-Netz Virtual Private Network (RoadWarrior)',
+'hostile networks' => 'Bösartige Netze',
 'hostname' => 'Hostname',
 'hostname and domain already in use' => 'Hostname und Domain werden bereits benutzt.',
 'hostname cant be empty' => 'Hostname darf nicht leer bleiben.',
 'idle' => 'Leerlauf',
 'idle timeout' => 'Leerlaufwartezeit in Minuten (0 zum Deaktivieren):',
 'idle timeout not set' => 'Leerlaufwartezeit nicht angegeben.',
+'ids add provider' => 'Provider hinzufügen',
 'ids apply' => 'Ãœbernehmen',
 'ids apply ruleset changes' => 'Regeländerungen werden Ã¼bernommen. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
+'ids autoupdates' => 'Automatische Updates',
 'ids automatic rules update' => 'Automatische Regelaktualisierung',
-'ids download new ruleset' => 'Das neue Regelsatz wird heruntergeladen und entpackt. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
+'ids could not add provider' => 'Provider konnte nicht hinzugefügt werden',
+'ids customize ruleset' => 'Regelset anpassen',
+'ids download new ruleset' => 'Das neue Regelset wird heruntergeladen und entpackt. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
 'ids enable' => 'Einbruchsverhinderungssystem aktivieren',
+'ids enable automatic updates' => 'Automatische Updates aktivieren',
+'ids force ruleset update' => 'Regelset jetzt aktualisieren',
 'ids hide' => 'Verstecken',
 'ids ignored hosts' => 'Ausnahmeliste',
 'ids log hits' => 'Gesamtanzahl der Regeltreffer für',
 'ids monitor traffic only' => 'Netzwerkpakete nur Ã¼berprüfen (nicht verwerfen)',
 'ids monitored interfaces' => 'Ãœberwachte Netzwerkzonen',
 'ids no network zone' => 'Bitte wählen Sie mindestens eine zu Ã¼berwachende Netzwerkzone aus',
-'ids no ruleset available' => 'Es ist kein Regelsatz verfügbar. Bitte laden Sie einen Regelsatz herunter.',
+'ids no enabled ruleset provider' => 'Es ist kein aktivierter Provider verfügbar. Bitte aktivieren Sie einen oder fügen Sie einen Provider hinzu.',
 'ids oinkcode required' => 'Für den ausgewählten Regelsatz wird ein Abonnement oder ein Oinkcode benötigt',
+'ids provider' => 'Regelset-Anbieter',
+'ids provider settings' => 'Regelset-Anbieter-Einstellungen',
+'ids reset provider' => 'Providereinstellungen zurücksetzen',
 'ids rules update' => 'Regelsatz',
 'ids ruleset autoupdate in progress' => 'Der Regelsatz wird gerade aktualisiert. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
 'ids ruleset settings' => 'Regelsatzeinstellungen',
 'ids show' => 'Anzeigen',
+'ids the choosen provider is already in use' => 'Der gewhählte Provider wird bereits verwendet.',
+'ids unable to download the ruleset' => 'Das Regelset konnte nicht heruntergeladen werden.',
+'ids visit provider website' => 'Anbieter-Webseite besuchen',
 'ids working' => 'Änderungen werden Ã¼bernommen. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde.',
 'iface' => 'Iface',
 'ignore filter' => '&quot;Ignorieren&quot;-Filter',
 'pakfire configuration' => 'Pakfire Konfiguration',
 'pakfire core update auto' => 'Core- und Addon-Updates automatisch installieren:',
 'pakfire core update level' => 'Core-Update-Level',
+'pakfire finished' => 'Pakfire ist fertig! Kehre zurück...',
+'pakfire finished error' => 'Pakfire ist fertig! Fehler sind aufgetreten, bitte Ã¼berprüfen Sie die Log-Ausgabe, bevor Sie fortfahren.',
 'pakfire health check' => 'Mirrors auf Erreichbarkeit prüfen (Ping):',
 'pakfire install description' => 'Wählen Sie ein oder mehrere Pakete zur Installation aus und drücken Sie auf das plus-Symbol.',
 'pakfire install package' => 'Sie möchten folgende Pakete installieren: ',
 'pakfire last update' => 'Letztes Update ist',
 'pakfire possible dependency' => ' Möglicherweise haben diese Pakete Abhängigkeiten, d.h. andere Pakete müssen zusätzlich installiert werden. Dazu sehen Sie unten eine Liste.',
 'pakfire register' => 'Registrierung am Pakfire-Server:',
+'pakfire return' => 'Zurück zu Pakfire',
 'pakfire system state' => 'System Status',
 'pakfire tree' => 'Zu verwendendes Pakfire-Repository:',
 'pakfire tree stable' => 'Veröffentlichte Versionen (stable)',
 'spectre variant 1' => 'Spectre-Variante 1',
 'spectre variant 2' => 'Spectre-Variante 2',
 'spectre variant 4' => 'Spectre-Variante 4',
+'spoofed or martians' => 'Gefälscht/Marsianer',
 'squid extension methods' => 'Ihre <tt>extension_methods</tt> Liste',
 'squid extension methods invalid' => 'Ihre  \'extension_methods\' Liste darf nur Worte aus Großbuchstaben und Ziffer enthalten, die mittels eines Leerzeichens getrennt werden.',
 'squid fix cache' => 'Zwischenspeicher reparieren',
index 46092534febe9497123c71659ff289fd75a94055..b170647139b9a8657048a12b450013e64fb1b7f9 100644 (file)
@@ -1,4 +1,4 @@
-%tr = ( 
+%tr = (
 %tr,
 
 '24 hours' => '24 Hours',
 'drop action1' => 'Default behaviour of (outgoing) firewall in mode "Blocked"',
 'drop action2' => 'Default behaviour of (input) firewall',
 'drop forward' => 'Log dropped forward packets',
+'drop hostile' => 'Drop packets from and to hostile networks (listed at Spamhaus DROP, etc.)',
 'drop input' => 'Log dropped input packets',
 'drop newnotsyn' => 'Log dropped new not SYN packets',
 'drop outgoing' => 'Log dropped outgoing packets',
 'drop portscan' => 'Log dropped portscan packets',
 'drop proxy' => 'Drop all packets not addressed to proxy',
 'drop samba' => 'Drop all Microsoft ports 135,137,138,139,445,1025',
+'drop spoofed martians' => 'Log dropped spoofed packets and marsians',
 'drop wirelessforward' => 'Log dropped wireless forward packets',
 'drop wirelessinput' => 'Log dropped wireless input packets',
 'dst port' => 'Dst Port',
 'fw settings dropdown' => 'Show all networks on rulecreation site',
 'fw settings remark' => 'Show remarks in ruletable',
 'fw settings ruletable' => 'Show empty ruletables',
+'fw red' => 'Firewall options for RED interface',
 'fwdfw ACCEPT' => 'ACCEPT',
 'fwdfw DROP' => 'DROP',
 'fwdfw MODE1' => 'Drop all packets',
 'host deny' => 'list with denied hosts',
 'host ip' => 'Host IP address',
 'host to net vpn' => 'Host-to-Net Virtual Private Network (RoadWarrior)',
+'hostile networks' => 'Hostile networks',
 'hostname' => 'Hostname',
 'hostname and domain already in use' => 'Hostname and domain already in use.',
 'hostname cant be empty' => 'Hostname cannot be empty.',
 'idle' => 'Idle',
 'idle timeout' => 'Idle timeout (mins; 0 to disable):',
 'idle timeout not set' => 'Idle timeout not set.',
+'ids add provider' => 'Add provider',
 'ids apply' => 'Apply',
 'ids apply ruleset changes' => 'The ruleset changes are being applied. Please wait until all operations have completed successfully...',
+'ids autoupdates' => 'Automatic updates',
 'ids automatic rules update' => 'Automatic Rule Update',
+'ids could not add provider' => 'Could not add provider',
+'ids customize ruleset' => 'Customize ruleset',
 'ids download new ruleset' => 'Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...',
 'ids enable' => 'Enable Intrusion Prevention System',
+'ids enable automatic updates' => 'Enable automatic updates',
+'ids force ruleset update' => 'Force ruleset update',
 'ids hide' => 'Hide',
 'ids ignored hosts' => 'Whitelisted Hosts',
 'ids log hits' => 'Total of number of activated rules for',
 'ids monitor traffic only' => 'Monitor traffic only',
 'ids monitored interfaces' => 'Monitored Interfaces',
 'ids no network zone' => 'Please select at least one network zone to be monitored',
-'ids no ruleset available' => 'No ruleset is available. Please download one first',
-'ids oinkcode required' => 'The selected ruleset requires a subscription or an Oinkcode',
+'ids no enabled ruleset provider' => 'No enabled ruleset is available. Please activate or add one first.',
+'ids subscription code required' => 'The selected ruleset requires a subscription code',
+'ids provider' => 'Provider',
+'ids provider settings' => 'Provider settings',
+'ids reset provider' => 'Reset provider',
 'ids rules update' => 'Ruleset',
 'ids ruleset autoupdate in progress' => 'Ruleset update in progress. Please wait until all operations have completed successfully...',
 'ids ruleset settings' => 'Ruleset Settings',
 'ids show' => 'Show',
+'ids the choosen provider is already in use' => 'The choosen provider is already in use.',
+'ids unable to download the ruleset' => 'Unable to download the ruleset',
+'ids visit provider website' => 'Visit provider website',
 'ids working' => 'Changes are being applied. Please wait until all operations have completed successfully...',
 'iface' => 'Iface',
 'ignore filter' => 'Ignore filter',
 'invalid input for max clients' => 'Invalid input for Max Clients. The maximum of 1024 clients has been exceeded',
 'invalid input for mode' => 'Invalid input for mode',
 'invalid input for name' => 'Invalid input for user\'s full name or system hostname',
-'invalid input for oink code' => 'Invalid input for Oink code',
+'invalid input for subscription code' => 'Invalid input for subscription code',
 'invalid input for organization' => 'Invalid input for organization',
 'invalid input for remote host/ip' => 'Invalid input for remote host/ip.',
 'invalid input for state or province' => 'Invalid input for state or province.',
 'pakfire configuration' => 'Pakfire Configuration',
 'pakfire core update auto' => 'Install core and addon updates automatically:',
 'pakfire core update level' => 'Core-Update-Level',
+'pakfire finished' => 'Pakfire has finished! Returning...',
+'pakfire finished error' => 'Pakfire has finished! Errors occurred, please check the log output before proceeding.',
 'pakfire health check' => 'Check if mirror is reachable (ping):',
 'pakfire install description' => 'Please choose one or more items from the list below and click the plus to install.',
 'pakfire install package' => 'You want to install the following packages: ',
 'pakfire last update' => 'Last update made',
 'pakfire possible dependency' => ' There may be depending packages, here is a list of packages that need to be installed.',
 'pakfire register' => 'Register at pakfire-server:',
+'pakfire return' => 'Return to Pakfire',
 'pakfire system state' => 'System Status',
 'pakfire tree' => 'Repository',
 'pakfire tree stable' => 'Stable',
 'spectre variant 1' => 'Spectre Variant 1',
 'spectre variant 2' => 'Spectre Variant 2',
 'spectre variant 4' => 'Spectre Variant 4',
+'spoofed or martians' => 'Spoofed/Martians',
 'squid extension methods' => 'Your <tt>extension_methods</tt> list',
 'squid extension methods invalid' => 'Your \'extension_methods\' list can only contain uppercase words of letters and digits, separated with a space. ',
 'squid fix cache' => 'Repair cache',
 'subnet is invalid' => 'Netmask is invalid',
 'subnet mask' => 'Subnet Mask',
 'subscripted user rules' => 'Talos VRT rules with subscription',
+'subscription code' => 'Subscription code',
 'successfully refreshed updates list' => 'Successfully refreshed updates list.',
 'summaries kept' => 'Keep summaries for',
 'sunday' => 'Sunday',
index 76a07b088f6a34dfd69686e76e33288b309da409..3e4de3b3fd48eaddd07bc76be60b0aaca78ceadd 100644 (file)
 unexport BUILD_ARCH BUILD_PLATFORM BUILDTARGET CROSSTARGET TOOLCHAIN TOOLS_DIR
 unexport XZ_OPT
 
+# Basic Variables
+EMPTY :=
+COMMA := ,
+SPACE := $(EMPTY) $(EMPTY)
+define NEWLINE
+
+
+endef
+
+# Basic Functions
+join-with      = $(subst $(SPACE),$(1),$(strip $(2)))
+
 PARALLELISM = $(shell echo $$( \
        if [ -n "$(MAX_PARALLELISM)" ] && [ $(MAX_PARALLELISM) -lt 1 ]; then \
                echo 1 ; \
@@ -140,7 +152,88 @@ ifeq "$(BUILD_ARCH)" "aarch64"
 endif
 
 # Rust
-export CARGOPATH = $(HOME)/.cargo
+RUST_ARCH  = $(BUILD_ARCH)
+
+ifeq "$(BUILD_ARCH)" "armv6l"
+       RUST_PLATFORM = arm-unknown-linux-gnueabi
+else
+       RUST_PLATFORM = $(RUST_ARCH)-unknown-linux-gnu
+endif
+
+CARGO_PATH     = $(DIR_APP)/.cargo
+CARGO_REGISTRY = /usr/share/cargo/registry
+
+CRATE_NAME = $(patsubst rust-%,%,$(firstword $(MAKEFILE_LIST)))
+CRATE_VER  = $(VER)
+CRATE_PATH = $(CARGO_REGISTRY)/$(CRATE_NAME)-$(CRATE_VER)
+
+define CARGO_CONFIG
+[build]
+rustflags = [$(call join-with,$(COMMA)$(SPACE),$(foreach flag,$(RUSTFLAGS),"$(flag)"))]
+
+[env]
+CFLAGS = "$(CFLAGS)"
+CXXFLAGS = "$(CXXFLAGS)"
+LDFLAGS = "$(LDFLAGS)"
+
+[term]
+verbose = true
+
+[source]
+
+[source.local-registry]
+directory = "$(CARGO_REGISTRY)"
+
+[source.crates-io]
+registry = "https://crates.io"
+replace-with = "local-registry"
+endef
+export CARGO_CONFIG
+
+# Set to false if you want to skip the binary install step
+CARGO_HAS_BIN = true
+
+CARGO = \
+       CARGOPATH=$(CARGO_PATH) \
+       RUSTC_BOOTSTRAP=1 \
+       cargo \
+       --offline
+
+CARGO_OPTIONS = \
+       $(MAKETUNING) \
+       -Z avoid-dev-deps
+
+define CARGO_PREPARE
+       mkdir -p $(CARGO_PATH) && \
+       echo "$${CARGO_CONFIG}" > $(CARGO_PATH)/config && \
+       rm -f Cargo.lock
+endef
+
+CARGO_BUILD = \
+       $(CARGO) \
+       build \
+       --release \
+       $(CARGO_OPTIONS)
+
+# Checks whether this crate has a right taregt
+CARGO_TARGET_CHECK = $(CARGO) metadata --format-version 1 --no-deps | \
+       jq -e ".packages[].targets[].kind | any(. == \"$(1)\")" | grep -q "true"
+
+define CARGO_INSTALL
+       mkdir -pv "$(CRATE_PATH)" && \
+       if $(call CARGO_TARGET_CHECK,lib) || $(call CARGO_TARGET_CHECK,rlib) || $(call CARGO_TARGET_CHECK,proc-macro); then \
+               awk \
+                       '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' \
+                       < Cargo.toml > Cargo.toml.deps && \
+               $(CARGO) package -l | grep -wEv "Cargo.(lock|toml.orig)" \
+                       | xargs -d "\n" cp -v --parents -a -t $(CRATE_PATH) && \
+               install -v -m 644 Cargo.toml.deps $(CRATE_PATH)/Cargo.toml && \
+               echo "{\"files\":{},\"package\":\"\"}" > $(CRATE_PATH)/.cargo-checksum.json; \
+       fi && \
+       if $(CARGO_HAS_BIN) && $(call CARGO_TARGET_CHECK,bin); then \
+               $(CARGO) install $(CARGO_OPTIONS) --no-track --path .; \
+       fi
+endef
 
 ###############################################################################
 # Common Macro Definitions
@@ -183,7 +276,7 @@ define POSTBUILD
        @echo "Updating linker cache..."
        @type -p ldconfig >/dev/null && ldconfig || :
        @echo "Install done; saving file list to $(TARGET) ..."
-       @rm -rf $(GOPATH) $(CARGOPATH)
+       @rm -rf $(GOPATH) /root/.cargo
        @$(FIND_FILES) > $(DIR_SRC)/lsalrnew
        @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' > $(TARGET)_diff
        @cp -f $(DIR_SRC)/lsalrnew $(DIR_SRC)/lsalr
index 8544f0f1f6fea6b79ecb20e196d6bf95267a2f57..fc6e7654e38905356e36c1f822e3e4236c5099c8 100644 (file)
--- a/lfs/bind
+++ b/lfs/bind
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -25,7 +25,7 @@
 
 include Config
 
-VER        = 9.16.22
+VER        = 9.16.25
 
 THISAPP    = bind-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -43,7 +43,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6a45478b33c04c830d4263635d8cd137
+$(DL_FILE)_MD5 = 361a54fc5ebeb3a1af77abec08b33661
 
 install : $(TARGET)
 
index 69e5d8c0f8c0db1e090cca4f1aeebd45c9b571f1..1fffd99d9ea414e28c5bc34f07e2c1133997a8d9 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.104.1
+VER        = 0.104.2
 
 THISAPP    = clamav-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = clamav
-PAK_VER    = 58
+PAK_VER    = 59
 
 DEPS       =
 
@@ -46,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 49b9bb94d5b2cafc761f8fbe660d3bfa
+$(DL_FILE)_MD5 = ad099675f2c09c07850e36496b06c552
 
 install : $(TARGET)
 
index e0156c7467519a111d20bbec9f4e3f2bf233a24f..9f3188aab9e28b29c134eca51a56dc1d9f37ac2f 100644 (file)
@@ -114,7 +114,7 @@ $(TARGET) :
        echo  "ENABLED=off"             > $(CONFIG_ROOT)/vpn/settings
        echo  "01"                      > $(CONFIG_ROOT)/certs/serial
        echo  "nameserver    1.2.3.4"   > $(CONFIG_ROOT)/ppp/fake-resolv.conf
-       echo  "DROPNEWNOTSYN=on"                >> $(CONFIG_ROOT)/optionsfw/settings
+       echo  "DROPNEWNOTSYN=on"        >> $(CONFIG_ROOT)/optionsfw/settings
        echo  "DROPINPUT=on"            >> $(CONFIG_ROOT)/optionsfw/settings
        echo  "DROPFORWARD=on"          >> $(CONFIG_ROOT)/optionsfw/settings
        echo  "FWPOLICY=DROP"           >> $(CONFIG_ROOT)/optionsfw/settings
@@ -130,6 +130,8 @@ $(TARGET) :
        echo  "SHOWDROPDOWN=off"        >> $(CONFIG_ROOT)/optionsfw/settings
        echo  "DROPWIRELESSINPUT=on"    >> $(CONFIG_ROOT)/optionsfw/settings
        echo  "DROPWIRELESSFORWARD=on"  >> $(CONFIG_ROOT)/optionsfw/settings
+       echo  "DROPSPOOFEDMARTIAN=on"   >> $(CONFIG_ROOT)/optionsfw/settings
+       echo  "DROPHOSTILE=on"          >> $(CONFIG_ROOT)/optionsfw/settings
        echo  "POLICY=MODE2"            >> $(CONFIG_ROOT)/firewall/settings
        echo  "POLICY1=MODE2"           >> $(CONFIG_ROOT)/firewall/settings
        echo  "USE_ISP_NAMESERVERS=on"  >> $(CONFIG_ROOT)/dns/settings
@@ -138,6 +140,7 @@ $(TARGET) :
        # Install snort to suricata converter.
        cp $(DIR_SRC)/config/suricata/convert-snort     /usr/sbin/convert-snort
        cp $(DIR_SRC)/config/suricata/convert-ids-modifysids-file   /usr/sbin/convert-ids-modifysids-file
+       cp $(DIR_SRC)/config/suricata/convert-ids-multiple-providers /usr/sbin/convert-ids-multiple-providers
 
        # set converters executable
        chmod 755 /usr/sbin/convert-*
index 03c278d2a2b2566d2155f69f1d7b346434f053ff..1a956663c7fd343fb49ada44a39c5eec8ce7c6fe 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.7
+VER        = 3.8
 
 THISAPP    = diffutils-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -47,7 +47,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4824adc0e95dbbf11dfbdfaad6a1e461
+$(DL_FILE)_MD5 = 6a6b0fdc72acfe3f2829aab477876fbc
 
 install : $(TARGET)
 
index 8aaca95247c9e0c5c11c311920136e182fdd96ed..a0d8a20b13d03c101ffd9c7b2969bafa9c72d34e 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.6.1
+VER        = 1.7.0
 
 THISAPP    = dnsdist-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = dnsdist
-PAK_VER    = 10
+PAK_VER    = 11
 
 SUP_ARCH   = x86_64 aarch64
 
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fc314583a33d1256fecb41dac64a77e3
+$(DL_FILE)_MD5 = 51cca04895eb04278ba01491a5f24984
 
 install : $(TARGET)
 
index 7627447f3819160725f790daac5fc5aa562d1c30..b2df59ca3d1382123fd6f9a79b9140a7b48582fa 100644 (file)
--- a/lfs/expat
+++ b/lfs/expat
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.4.1
+VER        = 2.4.2
 
 THISAPP    = expat-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 476cdf4b5e40280316fff36b2086a390
+$(DL_FILE)_MD5 = 58780ad6944d02f6cf6ba332838694b2
 
 install : $(TARGET)
 
index 4dbf41eb59e1275b7334f1f903f38f5ba8907f8e..a34de3722748de92d62aa3bc85b0af4dbbcc0bab 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.11.0
+VER        = 2.11.1
 
 THISAPP    = freetype-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f931582653774e310ed3a7e49b7167a3
+$(DL_FILE)_MD5 = 24e79233d607ded439ef36ff1f3ab68f
 
 install : $(TARGET)
 
diff --git a/lfs/frr b/lfs/frr
index 1af776eb6430cf4fbdb4168d9b97d4ed2ec27bf5..04f1aa590c6613fa725965cf60c8d619f5904d0c 100644 (file)
--- a/lfs/frr
+++ b/lfs/frr
@@ -32,9 +32,9 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = frr
-PAK_VER    = 2
+PAK_VER    = 3
 
-DEPS       =
+DEPS       = elfutils
 
 CFLAGS    += -fcommon
 
diff --git a/lfs/gdb b/lfs/gdb
index 79ed0b3860bc82fb98cc60825a8d1e51cb3c6cc9..4f1d02d0a7984f8904e49d1adb9e436939f6e92b 100644 (file)
--- a/lfs/gdb
+++ b/lfs/gdb
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 11.1
+VER        = 11.2
 
 THISAPP    = gdb-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 257cb0f67927f79acf636d8c01e19990
+$(DL_FILE)_MD5 = 433bd0904caa31c247b1b1867f2f911d
 
 install : $(TARGET)
 
index 23d17dad143dab2a972ffa67c142da27e7071fbc..6f96d2f3c630550f5e969c1f997626f2dfa7cf74 100644 (file)
--- a/lfs/gdbm
+++ b/lfs/gdbm
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.8.3
+VER        = 1.20
 
 THISAPP    = gdbm-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 1d1b1d5c0245b1c00aff92da751e9aa1
+$(DL_FILE)_MD5 = 006c19b8b60828fd6916a16f3496bd3c
 
 install : $(TARGET)
 
@@ -71,9 +71,18 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        $(UPDATE_AUTOMAKE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && ./configure \
+                       --prefix=/usr \
+                       --disable-nls \
+                       --disable-static
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make BINOWN=root BINGRP=root install
+       cd $(DIR_APP) && ./configure \
+                       --prefix=/usr \
+                       --disable-nls \
+                       --disable-static \
+                       --enable-libgdbm-compat
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make BINOWN=root BINGRP=root install
-       cd $(DIR_APP) && make BINOWN=root BINGRP=root install-compat
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 87d961d154e097f4cf6b7e9d0ce5749cb5194670..ecb8fc96f452bedd1b87ee899191aa9b59e9e9cc 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 9.55
+VER        = 9.63
 
 THISAPP    = hdparm-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = adae46e9564075ae288af8082d5ad9fd
+$(DL_FILE)_MD5 = cea97ea2aa164f66817adc98c6814280
 
 install : $(TARGET)
 
index d0a235947604e7dcccd53909782cdbdc0d7d3238..db720b51199e49cbf80fbf45996af8ed84f20fb3 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 20210608
+VER        = 20220207
 
 THISAPP    = Intel-Linux-Processor-Microcode-Data-Files-microcode-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -41,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 769cab71e957b83121a1f4a07f1c4409
+$(DL_FILE)_MD5 = 7ac3ef4212c41b8b1f555f87e07d6c66
 
 install : $(TARGET)
 
diff --git a/lfs/jq b/lfs/jq
new file mode 100644 (file)
index 0000000..067063e
--- /dev/null
+++ b/lfs/jq
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2020  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.6
+
+THISAPP    = jq-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = e68fbd6a992e36f1ac48c99bbf825d6b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr \
+               --without-oniguruma
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 3d9acd89923ef2ccbc968102c96fcb3efcbd456d..5499002b6e1198468652b524de23b26cc7994156 100644 (file)
--- a/lfs/kmod
+++ b/lfs/kmod
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 28
+VER        = 29
 
 THISAPP    = kmod-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 0a2b887b1b3dfb8c0b3f41f598203e56
+$(DL_FILE)_MD5 = e81e63acd80697d001c8d85c1acb38a0
 
 install : $(TARGET)
 
index 4b99a6d1848767239eb16a3d8215112147897013..ec633ee201efa36f8eb35b7f9a1797b187a9e8d3 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.0.23
+VER        = 1.0.25
 
 THISAPP    = libusb-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 1e29700f6a134766d32b36b8d1d61a95
+$(DL_FILE)_MD5 = 4d8d9aa4656ec1e97eda5ef8d2071aaf
 
 install : $(TARGET)
 
index 701528c1da569c33a85129a6e9e6614758d410b9..4409fe4e5065de3e5a221bee385e6fc833a31094 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
 
 include Config
 
-VER        = 6.5.0
+VER        = 7.10.0
 
 THISAPP    = libvirt-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-SUP_ARCH   = x86_64
+SUP_ARCH   = x86_64 aarch64
 PROG       = libvirt
-PAK_VER    = 26
+PAK_VER    = 28
 
 DEPS       = ebtables libpciaccess libtirpc libyajl ncat qemu
 
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 19ea5c0d18bed1515c23a9e9c7427dc0
+$(DL_FILE)_MD5 = 435d27a73b25c936e0451cc4397ab986
 
 install : $(TARGET)
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -80,45 +80,39 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libvirt/0001-Change-default-behavior-of-libvirt-guests.sh-for-IPF.patch
 
-       mkdir -p -v $(DIR_APP)/build_libvirt && cd $(DIR_APP)/build_libvirt
-
-       cd $(DIR_APP)/build_libvirt && ../autogen.sh --no-git
-
-       cd $(DIR_APP)/build_libvirt && ../configure \
+       cd $(DIR_APP) && meson \
                --prefix=/usr \
                --localstatedir=/var \
                --sysconfdir=/etc \
-               --without-sasl \
-               --without-vbox \
-               --without-lxc \
-               --without-esx \
-               --without-vmware \
-               --without-openvz \
-               --without-firewalld \
-               --without-network \
-               --with-interface \
-               --with-virtualport \
-               --with-macvtap \
-               --without-wireshark-dissector \
-               --disable-nls \
-               --without-test-suite \
-               --without-dbus \
-               --with-qemu-user=nobody \
-               --with-qemu-group=kvm \
-               --with-storage-dir \
-               --with-storage-fs \
-               --with-storage-lvm \
-               --without-storage-iscsi \
-               --without-storage-scsi \
-               --without-storage-mpath \
-               --without-storage-disk \
-               --without-storage-rbd \
-               --without-storage-sheepdog \
-               --without-storage-gluster \
-               --without-storage-zfs
-
-       cd $(DIR_APP)/build_libvirt && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP)/build_libvirt && make install
+               -D docs=disabled \
+               -D sasl=disabled \
+               -D driver_vbox=disabled \
+               -D driver_lxc=disabled \
+               -D driver_esx=disabled \
+               -D driver_vmware=disabled \
+               -D driver_openvz=disabled \
+               -D firewalld=disabled \
+               -D driver_network=disabled \
+               -D driver_interface=enabled \
+               -D wireshark_dissector=disabled \
+               -D nls=disabled \
+               -D tests=disabled \
+               -D qemu_user=nobody \
+               -D qemu_group=kvm \
+               -D storage_dir=enabled \
+               -D storage_fs=enabled \
+               -D storage_lvm=enabled \
+               -D storage_iscsi=disabled \
+               -D storage_scsi=disabled \
+               -D storage_mpath=disabled \
+               -D storage_disk=disabled \
+               -D storage_rbd=disabled \
+               -D storage_sheepdog=disabled \
+               -D storage_gluster=disabled \
+               -D storage_zfs=disabled \
+               builddir/
+       cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_APP) && ninja -C builddir/ install
 
        #install initscripts
        $(call INSTALL_INITSCRIPT,libvirtd)
index fd4b5e577853b59b08d839d6273a350f7a2f3057..adf3ab0a0056cd5c688121c581cfde608514107f 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.9.10
+VER        = 2.9.12
 
 THISAPP    = libxml2-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 10942a1dc23137a8aa07f0639cbfece5
+$(DL_FILE)_MD5 = f433a39be087a9f0b197eb2307ad9f75
 
 install : $(TARGET)
 
index 159956b1a48caab73ea54256b1c206bc44fd5eb2..78a5695018c31ea5f37d53611b3776621f6c53bb 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.1.28
+VER        = 1.1.34
 
 THISAPP    = libxslt-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 9667bf6f9310b957254fdcf6596600b7
+$(DL_FILE)_MD5 = db8765c8d076f1b6caafd9f2542a304a
 
 install : $(TARGET)
 
index 85d44137c1a63e86b7202d7666c0ac85ee798d21..7a7236eabfba588f1bc364a1e97d2238944e1ba0 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,8 +24,8 @@
 
 include Config
 
-VER         = 5.15.6
-ARM_PATCHES = 5.15-ipfire2
+VER         = 5.15.23
+ARM_PATCHES = 5.15-ipfire5
 
 THISAPP    = linux-$(VER)
 DL_FILE    = linux-$(VER).tar.xz
@@ -73,8 +73,8 @@ objects =$(DL_FILE) \
 $(DL_FILE)                                     = $(URL_IPFIRE)/$(DL_FILE)
 arm-multi-patches-$(ARM_PATCHES).patch.xz      = $(URL_IPFIRE)/arm-multi-patches-$(ARM_PATCHES).patch.xz
 
-$(DL_FILE)_MD5                                 = b4e333919e9fddfdd46308cc38ceda1d
-arm-multi-patches-$(ARM_PATCHES).patch.xz_MD5  = 9cab549a71b19b07e0c5c103ccf3c321
+$(DL_FILE)_MD5                                 = 5e4405eabbf6b365fd5c9252f666ca60
+arm-multi-patches-$(ARM_PATCHES).patch.xz_MD5  = 5b588bcdf9d21cc7e8ce57c94b775195
 
 install : $(TARGET)
 
@@ -110,7 +110,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        ln -svf linux-$(VER) $(DIR_SRC)/linux
 
        # Layer7-patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-5.15-layer7.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-5.15.17-layer7.patch
 
        # DVB Patches
        cd $(DIR_APP) && patch -Np2 < $(DIR_SRC)/src/patches/v4l-dvb_fix_tua6034_pll.patch
index 9b19c1d1421069767b0d316d2cd594a59e80f3f5..fc87e333a4f672760ff2399eecc71106d04f58da 100644 (file)
--- a/lfs/lvm2
+++ b/lfs/lvm2
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.02.187
+VER        = 2.02.188
 
 THISAPP    = LVM2.$(VER)
 DL_FILE    = $(THISAPP).tgz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7941cbe16126ef334b4aa8fcb5c985b5
+$(DL_FILE)_MD5 = 6f942117cad9c18b0e38af08b72d86b6
 
 install : $(TARGET)
 
index 044fe560ff0ebc1e40f6ebb44c2c2f9771d34e3e..51b7e0101e18c42ae66a7d9848a989f2b1cfc8ac 100644 (file)
--- a/lfs/monit
+++ b/lfs/monit
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.29.0
+VER        = 5.30.0
 
 THISAPP    = monit-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = monit
-PAK_VER    = 16
+PAK_VER    = 17
 
 DEPS       =
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 8a0546d0d52216b22ebd57acc0bb1e03
+$(DL_FILE)_MD5 = d1a1b2349e8d0f833b3057c7b102b09d
 
 install : $(TARGET)
 
index 2068c5a0c84c3c17895bdf85e183240cf9fb8ce1..995c3c0a4201e794c05be37f6e7f61e69b91a405 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.5.6
+VER        = 3.7.0
 
 THISAPP    = pciutils-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 63b347d2bb5719b7769c03a1bb72a5b7
+$(DL_FILE)_MD5 = 51554c538b5a57b61123326e14ea28a1
 
 install : $(TARGET)
 
index fd9548a73ff0c8c3bd825b8e5487c8613ff2427a..00bea92033e2d8cda8b40dabfedb37f2d4d87128 100644 (file)
--- a/lfs/pcre2
+++ b/lfs/pcre2
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 10.37
+VER        = 10.39
 
 THISAPP    = pcre2-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -54,7 +54,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a0b59d89828f62d2e1caac04f7c51e0b
+$(DL_FILE)_MD5 = 7389e3524de2cda3d21fde8c224febf1
 
 install : $(TARGET)
 
index 761dd17d5ff1c57d02937d0da2d3afee343ee9d1..f107296be4af87279370fec498222d33f4cbca9b 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.4.10
+VER        = 0.4.11
 
 THISAPP    = poppler-data-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a7f15fb2f26c60a7a92093cfdf2378d5
+$(DL_FILE)_MD5 = 506eeed773f3ed8684d8c45961c025d4
 
 install : $(TARGET)
 
index 3c765d2a8f1ac320dad7751c7a898d2b20cbc7bd..3aac89207527e6714f8b1ea1761bb0daf5b00c8b 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 56.2.0
+VER        = 58.0.4
 
 THISAPP    = setuptools-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = python3-setuptools
-PAK_VER    = 3
+PAK_VER    = 4
 
 DEPS       =
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e8caf0f129f585a887bb3cbb528149d1
+$(DL_FILE)_MD5 = 17245af34e1a7d54976bca8c1bf092b7
 
 install : $(TARGET)
 
index 9ece6ea7df3f50a0b6ff9762db08fc7451373d47..caf16e8300107aee970ec1ade4aaeb62c8d7c65d 100644 (file)
--- a/lfs/qemu
+++ b/lfs/qemu
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,6 +24,7 @@
 
 include Config
 
+# If you update the version also qemu-ga !!!
 VER        = 6.1.0
 
 THISAPP    = qemu-$(VER)
@@ -31,9 +32,8 @@ DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-SUP_ARCH   = x86_64
 PROG       = qemu
-PAK_VER    = 31
+PAK_VER    = 32
 
 DEPS       = libusbredir spice libseccomp
 
@@ -41,10 +41,12 @@ TARGETS    = \
        i386-linux-user \
        x86_64-linux-user \
        arm-linux-user \
+       aarch64-linux-user \
        riscv64-linux-user \
        i386-softmmu \
        x86_64-softmmu \
        arm-softmmu \
+       aarch64-softmmu \
        riscv64-softmmu
 
 ###############################################################################
diff --git a/lfs/qemu-ga b/lfs/qemu-ga
new file mode 100644 (file)
index 0000000..1a89d4e
--- /dev/null
@@ -0,0 +1,59 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 6.1.0
+THISAPP    = qemu-ga-$(VER)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = qemu-ga
+PAK_VER    = 1
+
+DEPS       = 
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+download : 
+
+md5 : 
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : 
+       @$(PREBUILD)
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,qemu-ga)
+
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 7ff84379ba009f62cc4fc0698b076147e7156b83..bfb114d706507d804f1401add7d0402674728e40 100644 (file)
--- a/lfs/rust
+++ b/lfs/rust
 
 include Config
 
-VER        = 1.51.0
+VER        = 2022-01-27
 
-THISAPP    = rust-$(VER)
-DL_FILE    = $(THISAPP)-$(RUST_BOOTSTRAP).tar.gz
+# From https://static.rust-lang.org/dist/2022-01-27/
+
+THISAPP    = rust-nightly-$(VER)
+DL_FILE    = $(THISAPP)-$(RUST_PLATFORM).tar.xz
 DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)-$(RUST_BOOTSTRAP)
+DIR_APP    = $(DIR_SRC)/rust-nightly-$(RUST_PLATFORM)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = x86_64 aarch64 armv6l
 
-RUST_ARCH  = $(BUILD_ARCH)
-
-ifeq "$(BUILD_ARCH)" "armv6l"
-       RUST_BOOTSTRAP = arm-unknown-linux-gnueabi
-else
-       RUST_BOOTSTRAP = $(RUST_ARCH)-unknown-linux-gnu
-endif
-
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -49,9 +43,9 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(THISAPP)-x86_64-unknown-linux-gnu.tar.gz_MD5 =  efc4d147e25918e60678a69fcaf67b55
-$(THISAPP)-aarch64-unknown-linux-gnu.tar.gz_MD5 = e85e1758b9770bae16c253825e2ecf9c
-$(THISAPP)-arm-unknown-linux-gnueabi.tar.gz_MD5 = da4fa1b2bd21dc6d2d7e791d8faaa3eb
+$(THISAPP)-x86_64-unknown-linux-gnu.tar.xz_MD5 =  42ae351e32e3d570c2c1612c9a9037ee
+$(THISAPP)-aarch64-unknown-linux-gnu.tar.xz_MD5 = 70504d2ad8ec793672d54c64e5c74593
+$(THISAPP)-arm-unknown-linux-gnueabi.tar.xz_MD5 = a6dfbd26b7057260ee07c15afa325b9f
 
 install : $(TARGET)
 
@@ -80,15 +74,18 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
        cd $(DIR_APP) && ./install.sh \
-               --components=cargo,rustc,rust-std-$(RUST_BOOTSTRAP) \
+               --components=cargo,rustc,rust-std-$(RUST_PLATFORM) \
                --prefix=/usr \
                --disable-ldconfig
 
        # Remove LLVM tools
-       rm -vf /usr/lib/rustlib/$(RUST_BOOTSTRAP)/bin/rust-ll{d,vm-dwp}
+       rm -vf /usr/lib/rustlib/$(RUST_PLATFORM)/bin/rust-ll{d,vm-dwp}
+
+       # Create local registry
+       mkdir -pv $(CARGO_REGISTRY)
 
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/rust-aho-corasick b/lfs/rust-aho-corasick
new file mode 100644 (file)
index 0000000..f7d34b6
--- /dev/null
@@ -0,0 +1,82 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.7.18
+
+THISAPP    = aho-corasick-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+CARGO_HAS_BIN = false
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = eae13dc4e891b7baecf8cbe859d3ed98
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-autocfg b/lfs/rust-autocfg
new file mode 100644 (file)
index 0000000..9bd1b3d
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.1
+
+THISAPP    = autocfg-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c6443ec8d007c729ba5482008d0c864d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-block-buffer b/lfs/rust-block-buffer
new file mode 100644 (file)
index 0000000..ab7b998
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.0
+
+THISAPP    = block-buffer-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c7fbaf61245dc847237ab7c72b3ee9ea
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-cfg-if b/lfs/rust-cfg-if
new file mode 100644 (file)
index 0000000..ab619bd
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.0
+
+THISAPP    = cfg-if-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c19029e153996a1faa164dad90ea0e4b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD) --no-default-features
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-cipher b/lfs/rust-cipher
new file mode 100644 (file)
index 0000000..93a87fd
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.3.0
+
+THISAPP    = cipher-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5f2578209a4d7964623462e402375ac0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-crossbeam-channel b/lfs/rust-crossbeam-channel
new file mode 100644 (file)
index 0000000..abc4b18
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.5.2
+
+THISAPP    = crossbeam-channel-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = aff0bda2af5b4c828090938c132df6cc
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-crossbeam-deque b/lfs/rust-crossbeam-deque
new file mode 100644 (file)
index 0000000..e16c1e7
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.8.1
+
+THISAPP    = crossbeam-deque-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 93c803ad55de44eedc24870f83d0279b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-crossbeam-epoch b/lfs/rust-crossbeam-epoch
new file mode 100644 (file)
index 0000000..4abf4fc
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.6
+
+THISAPP    = crossbeam-epoch-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = da3aea556f33915b53fdf75d06f2b343
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-crossbeam-utils b/lfs/rust-crossbeam-utils
new file mode 100644 (file)
index 0000000..ed30b18
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.8.6
+
+THISAPP    = crossbeam-utils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ebc03f2b58387f1974dc8609022daf47
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-crypto-common b/lfs/rust-crypto-common
new file mode 100644 (file)
index 0000000..5ecb4d0
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.1
+
+THISAPP    = crypto-common-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 52db2669bd417af74eac71566e05ba54
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-ctor b/lfs/rust-ctor
new file mode 100644 (file)
index 0000000..41841f5
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.21
+
+THISAPP    = ctor-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 10c9ec124683092e8fc0cb93ce0de640
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-digest b/lfs/rust-digest
new file mode 100644 (file)
index 0000000..0cbcccf
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.0
+
+THISAPP    = digest-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 493a2f042d86baa5c6bac75202c64554
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-dirs b/lfs/rust-dirs
new file mode 100644 (file)
index 0000000..1a6e488
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.5
+
+THISAPP    = dirs-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f9f233221c0202b616d6957925c41ac8
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-dirs-1.0.5-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-dissimilar b/lfs/rust-dissimilar
new file mode 100644 (file)
index 0000000..6412cec
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.3
+
+THISAPP    = dissimilar-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 7b8827b90334eeef6eaeef02f20a1138
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-either b/lfs/rust-either
new file mode 100644 (file)
index 0000000..895ffe6
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.6.1
+
+THISAPP    = either-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b4e2b229c362ad0dd313ff631816d5db
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-generic-array b/lfs/rust-generic-array
new file mode 100644 (file)
index 0000000..7b8713f
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.14.4
+
+THISAPP    = generic-array-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0087eeb60e463d28321cecf77cbd11c3
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-getrandom b/lfs/rust-getrandom
new file mode 100644 (file)
index 0000000..80021a4
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.2.4
+
+THISAPP    = getrandom-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 451eb77431ccd2ff10b2d70b71c3b00b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-getrandom-0.2.4-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-ghost b/lfs/rust-ghost
new file mode 100644 (file)
index 0000000..6622a58
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.2
+
+THISAPP    = ghost-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9450434fa0a127e3ec2b392918c3ccde
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-glob b/lfs/rust-glob
new file mode 100644 (file)
index 0000000..84664ec
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.3.0
+
+THISAPP    = glob-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = bdf055aea4571c922265c590f2461393
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-hex b/lfs/rust-hex
new file mode 100644 (file)
index 0000000..0b56c7a
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.4.3
+
+THISAPP    = rust-hex-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9e633fd8251996e808e202651e419989
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-home b/lfs/rust-home
new file mode 100644 (file)
index 0000000..26aa071
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.5.3
+
+THISAPP    = home-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f0150480559dc5abce7dae50559eab62
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-home-0.5.3-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-indoc b/lfs/rust-indoc
new file mode 100644 (file)
index 0000000..1c8eb30
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.3
+
+THISAPP    = indoc-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c7af902de34516e8672b8d857b638136
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-indoc-impl b/lfs/rust-indoc-impl
new file mode 100644 (file)
index 0000000..e2ddc7a
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.3.6
+
+THISAPP    = indoc-impl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9273d518c1b6082859f526fe56c9cd7c
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-instant b/lfs/rust-instant
new file mode 100644 (file)
index 0000000..37235cd
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.12
+
+THISAPP    = instant-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5f153f7135dceb02f88266121c836b4e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-inventory b/lfs/rust-inventory
new file mode 100644 (file)
index 0000000..9d06bc6
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.4
+
+THISAPP    = inventory-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0c9337a620009495e9f32b4af5b99c7e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-inventory-impl b/lfs/rust-inventory-impl
new file mode 100644 (file)
index 0000000..56acac6
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.4
+
+THISAPP    = inventory-impl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5a7f1174b2f5cb1bdc9c21dad7ac3243
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-itoa b/lfs/rust-itoa
new file mode 100644 (file)
index 0000000..ad407a0
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.1
+
+THISAPP    = itoa-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5c98b89b530b563b6e5f6e1b631c4b35
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-lazy-static b/lfs/rust-lazy-static
new file mode 100644 (file)
index 0000000..1c93e46
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4.0
+
+THISAPP    = lazy-static.rs-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 7f653b84415ea12a3342115c5f769b5f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-libc b/lfs/rust-libc
new file mode 100644 (file)
index 0000000..ac7288b
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.2.108
+
+THISAPP    = libc-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = af430b339e79db69a43c900c4904eadd
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-lock_api b/lfs/rust-lock_api
new file mode 100644 (file)
index 0000000..078e168
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.4.5
+
+THISAPP    = lock_api-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 90bcfdd7962fdd94b0f3a70a0819d3cc
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-log b/lfs/rust-log
new file mode 100644 (file)
index 0000000..7b0fc7c
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.4.14
+
+THISAPP    = log-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 40e508baeee8cdccbc471489b0f449ff
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-memchr b/lfs/rust-memchr
new file mode 100644 (file)
index 0000000..c20958c
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.4.1
+
+THISAPP    = memchr-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ff4d3ae9ab57b1bfb93f64357b10eca6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-memoffset b/lfs/rust-memoffset
new file mode 100644 (file)
index 0000000..2574642
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.6.5
+
+THISAPP    = memoffset-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 76124c2327f642cddf19a4aa50cbcb7d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-num_cpus b/lfs/rust-num_cpus
new file mode 100644 (file)
index 0000000..d5dcaa6
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.13.1
+
+THISAPP    = num_cpus-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c5e50e299295e662ad19c58428d6e085
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-num_cpus-1.13.1-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-once_cell b/lfs/rust-once_cell
new file mode 100644 (file)
index 0000000..77575d9
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.9.0
+
+THISAPP    = once_cell-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9e544fc057bf6032dd55b02f87b8dbf4
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-parking_lot b/lfs/rust-parking_lot
new file mode 100644 (file)
index 0000000..808cbd7
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.11.2
+
+THISAPP    = parking_lot-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 12e4ba5909e1f30b9142932571eaa4da
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-parking_lot_core b/lfs/rust-parking_lot_core
new file mode 100644 (file)
index 0000000..fdacf44
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.8.5
+
+THISAPP    = parking_lot_core-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 233dee08f26c9cbe78f29b66c0c20ccd
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-parking_lot_core-0.8.5-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-paste b/lfs/rust-paste
new file mode 100644 (file)
index 0000000..ed9da7e
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.3
+
+THISAPP    = paste-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b54002d8948b6ff5d39ef84b3ea19457
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-paste-impl b/lfs/rust-paste-impl
new file mode 100644 (file)
index 0000000..8214139
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.18
+
+THISAPP    = paste-impl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 22030e124dbac93658e25bb2753d93db
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-pest b/lfs/rust-pest
new file mode 100644 (file)
index 0000000..9118cbd
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.1.3
+
+THISAPP    = pest-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 37cf6acd1c3259eefeba636e4cc9b365
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-ppv-lite86 b/lfs/rust-ppv-lite86
new file mode 100644 (file)
index 0000000..596d338
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.2.16
+
+THISAPP    = ppv-lite86-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ae91c97885d67994a342820cf7d59fb2
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-proc-macro-hack b/lfs/rust-proc-macro-hack
new file mode 100644 (file)
index 0000000..f1d4a62
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.5.19
+
+THISAPP    = proc-macro-hack-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c7c38eb603bed6f42edbc4294806a44a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-proc-macro2 b/lfs/rust-proc-macro2
new file mode 100644 (file)
index 0000000..a4ef4ea
--- /dev/null
@@ -0,0 +1,82 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.36
+
+THISAPP    = proc-macro2-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+CARGO_HAS_BIN = false
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1510c390646bb7e10d8f7b08f3470bff
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-pyo3 b/lfs/rust-pyo3
new file mode 100644 (file)
index 0000000..d3d64d3
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.13.1
+
+THISAPP    = pyo3-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0395704798312bb825ff0fd2b4b8a272
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-pyo3-build-config b/lfs/rust-pyo3-build-config
new file mode 100644 (file)
index 0000000..9caa9d0
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.15.1
+
+THISAPP    = pyo3-build-config-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 6ea0eabb562ac744a908c1ca5bb45fa9
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-pyo3-macros b/lfs/rust-pyo3-macros
new file mode 100644 (file)
index 0000000..c09317c
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.13.1
+
+THISAPP    = pyo3-macros-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 4927536c238b442318b76f2e9a04270e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-pyo3-macros-backend b/lfs/rust-pyo3-macros-backend
new file mode 100644 (file)
index 0000000..b7881da
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.13.1
+
+THISAPP    = pyo3-macros-backend-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c9ba21ba868db15852145e6d327e8a68
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-quote b/lfs/rust-quote
new file mode 100644 (file)
index 0000000..b6925f1
--- /dev/null
@@ -0,0 +1,82 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.15
+
+THISAPP    = quote-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+CARGO_HAS_BIN = false
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c294b4ad6e6b07b60444203f8a3f653f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rand b/lfs/rust-rand
new file mode 100644 (file)
index 0000000..33b350b
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.8.4
+
+THISAPP    = rand-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d5489ff3f6a307622ba98c4def55cdb5
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rand-0.4 b/lfs/rust-rand-0.4
new file mode 100644 (file)
index 0000000..0599eff
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.4.6
+
+THISAPP    = rand-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/rand-0.4-$(VER)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 6b3b72771c6fd35ab18abd6182c80da2
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-rand-0.4.6-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rand_chacha b/lfs/rust-rand_chacha
new file mode 100644 (file)
index 0000000..36a338b
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.3.1
+
+THISAPP    = rand_chacha-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = e30085994bbeb4b7f4895d48216d5476
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rand_core b/lfs/rust-rand_core
new file mode 100644 (file)
index 0000000..a97b0fd
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.6.3
+
+THISAPP    = rand_core-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ae5dab3db7dc317e16bb6f9e7eb15d14
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rand_core-0.3.1 b/lfs/rust-rand_core-0.3.1
new file mode 100644 (file)
index 0000000..c08bf29
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.3.1
+
+THISAPP    = rand_core-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8cab41822d03dfa674870315308fa392
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rand_core-0.4.2 b/lfs/rust-rand_core-0.4.2
new file mode 100644 (file)
index 0000000..c7fb73b
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.4.2
+
+THISAPP    = rand_core-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 35ddcd36701a1a6711cc3aec85909f41
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rand_hc b/lfs/rust-rand_hc
new file mode 100644 (file)
index 0000000..2f0da18
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.3.1
+
+THISAPP    = rand_hc-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 792d44fd2c664a81c10d7b261c5fda06
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rayon b/lfs/rust-rayon
new file mode 100644 (file)
index 0000000..b96c3d5
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.5.1
+
+THISAPP    = rayon-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 41b00d1e0264d76da321d4ee0b03baae
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rayon-core b/lfs/rust-rayon-core
new file mode 100644 (file)
index 0000000..cfd0e4e
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.9.1
+
+THISAPP    = rayon-core-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = be7c328cd6073cb72cae911580c7ddcf
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-rdrand b/lfs/rust-rdrand
new file mode 100644 (file)
index 0000000..1f62256
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.4.0
+
+THISAPP    = rdrand-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c8d655d206cbe48b84a22544d6fc6d15
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-regex b/lfs/rust-regex
new file mode 100644 (file)
index 0000000..d85f801
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.5.3
+
+THISAPP    = regex-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ef6aa032329d1beaa91211f405b0e2f3
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-regex-syntax b/lfs/rust-regex-syntax
new file mode 100644 (file)
index 0000000..9b10afd
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.6.25
+
+THISAPP    = regex-syntax-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 82401c70623ccc1bfc0bcb5c3b0ac8b7
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-remove_dir_all b/lfs/rust-remove_dir_all
new file mode 100644 (file)
index 0000000..da43043
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.5.3
+
+THISAPP    = remove_dir_all-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0538d1da369f3e3f0412aa4d735c1b61
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-remove_dir_all-0.5.3-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-ryu b/lfs/rust-ryu
new file mode 100644 (file)
index 0000000..e3ff372
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.9
+
+THISAPP    = ryu-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 7fe15f165a1812b23e5b1980aa364de2
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-same-file b/lfs/rust-same-file
new file mode 100644 (file)
index 0000000..1d758de
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.6
+
+THISAPP    = same-file-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 2d8d8b377d144f5e32b4f65a69eb0b24
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-same-file-1.0.6-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-scopeguard b/lfs/rust-scopeguard
new file mode 100644 (file)
index 0000000..a04f3bc
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.1.0
+
+THISAPP    = scopeguard-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b4a0a98a54439a5a37952c8879187ee3
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-semver b/lfs/rust-semver
new file mode 100644 (file)
index 0000000..79a354c
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.0
+
+THISAPP    = semver-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 64111c20b69aa1532fb66b70c4660b55
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-semver-parser b/lfs/rust-semver-parser
new file mode 100644 (file)
index 0000000..ae0706a
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.7.0
+
+THISAPP    = semver-parser-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8b4d8c7b6e3a060d365bc1ad650929fa
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-serde b/lfs/rust-serde
new file mode 100644 (file)
index 0000000..13e638e
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.136
+
+THISAPP    = serde-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 26db061b899590e33ff564e55c8d42cb
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP)/serde && $(CARGO_PREPARE)
+       cd $(DIR_APP)/serde && $(CARGO_BUILD)
+       cd $(DIR_APP)/serde && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-serde_derive b/lfs/rust-serde_derive
new file mode 100644 (file)
index 0000000..aa661f4
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.136
+
+THISAPP    = serde_derive-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 7c532e05dc3b2bd295136a297260c4dc
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-serde_json b/lfs/rust-serde_json
new file mode 100644 (file)
index 0000000..03d06f7
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.78
+
+THISAPP    = serde_json-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = db84a7441d879d4e8a33f5f9bcc98b8f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-smallvec b/lfs/rust-smallvec
new file mode 100644 (file)
index 0000000..8f8590c
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.8.0
+
+THISAPP    = smallvec-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 6249245cf12427da0a4f37bc3d294ff4
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-syn b/lfs/rust-syn
new file mode 100644 (file)
index 0000000..a49a7ad
--- /dev/null
@@ -0,0 +1,82 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.86
+
+THISAPP    = syn-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+CARGO_HAS_BIN = false
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 4e6019cbb4979bf5cc050f919af013a5
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-synstructure b/lfs/rust-synstructure
new file mode 100644 (file)
index 0000000..1c3ce41
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.12.6
+
+THISAPP    = synstructure-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8f6b6cc71be0473b79c65abfea592c07
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-tempdir b/lfs/rust-tempdir
new file mode 100644 (file)
index 0000000..0fdafbc
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.3.7
+
+THISAPP    = tempdir-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f0aee4e0a16e43d6f11e6eaa09d2f913
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-termcolor b/lfs/rust-termcolor
new file mode 100644 (file)
index 0000000..68fd6ba
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.1.2
+
+THISAPP    = termcolor-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ebdff467249aa3dca005a441dc824236
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-termcolor-1.1.2-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-toml b/lfs/rust-toml
new file mode 100644 (file)
index 0000000..c171761
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.5.8
+
+THISAPP    = toml-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = db6fe956ec67f88412df3a627158a7ba
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-toolchain_find b/lfs/rust-toolchain_find
new file mode 100644 (file)
index 0000000..fe124c0
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.4
+
+THISAPP    = toolchain_find-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 87a6442cb84c2c91370d5f31e45a7bc6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-trybuild b/lfs/rust-trybuild
new file mode 100644 (file)
index 0000000..1d7a215
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.54
+
+THISAPP    = trybuild-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 068feb78d27b210511738a30e840ec91
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-typenum b/lfs/rust-typenum
new file mode 100644 (file)
index 0000000..58ed462
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.15.0
+
+THISAPP    = typenum-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 56b6f40864b38e821f56a30b23452def
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-ucd-trie b/lfs/rust-ucd-trie
new file mode 100644 (file)
index 0000000..9177af1
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.3
+
+THISAPP    = ucd-trie-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 6cae4969689ecc3b4b4c31a9fb9539a6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-unicode-xid b/lfs/rust-unicode-xid
new file mode 100644 (file)
index 0000000..5b120ef
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.2.1
+
+THISAPP    = unicode-xid-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9e723a88eb283ac361c99a4692dabc60
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-unindent b/lfs/rust-unindent
new file mode 100644 (file)
index 0000000..85b3f8f
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.7
+
+THISAPP    = unindent-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0db9f7738460991fc27d0e866e6e5885
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-version-check b/lfs/rust-version-check
new file mode 100644 (file)
index 0000000..af4cd98
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.4
+
+THISAPP    = version_check-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0a0e5946f8d683bfb406d1da58b3649f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rust-walkdir b/lfs/rust-walkdir
new file mode 100644 (file)
index 0000000..87aeacc
--- /dev/null
@@ -0,0 +1,81 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.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 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.3.2
+
+THISAPP    = walkdir-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 580dd7d12690c726da7d5075f3442a74
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rust-walkdir-2.3.2-fix-metadata.patch
+       cd $(DIR_APP) && $(CARGO_PREPARE)
+       cd $(DIR_APP) && $(CARGO_BUILD)
+       cd $(DIR_APP) && $(CARGO_INSTALL)
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index a82de374a4355a068fb07d408ac09bca365bad02..1505e5adee9f79e3a36cb2ded08d06db57b7859d 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.2.1
+VER        = 4.11.1
 
 THISAPP    = shadow-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 2bfafe7d4962682d31b5eba65dba4fc8
+$(DL_FILE)_MD5 = 5a95ec069aa91508167d02fecafaa912
 
 install : $(TARGET)
 
@@ -70,12 +70,14 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/shadow-4.2.1-suppress_installation_of_groups.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/shadow-4.11.1-suppress_installation_of_groups.patch
        $(UPDATE_AUTOMAKE)
        cd $(DIR_APP) && ./configure \
                --libdir=/lib \
                --sysconfdir=/etc \
+               --with-yescrypt \
                --enable-shared \
+               --disable-static \
                --without-selinux \
                --disable-nls \
                --with-group-name-max-length=32
index d6570b80d4667d2104b74746b31a4161d6f6f8b5..b25f594a99745209dc281fad4e77dc766ce6df5f 100644 (file)
--- a/lfs/squid
+++ b/lfs/squid
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.16
+VER        = 5.2
 
 THISAPP    = squid-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -46,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d200064f7050969680f628d26b8c704d
+$(DL_FILE)_MD5 = 102984f3ea382a1fa5bd917c2ee155ec
 
 install : $(TARGET)
 
@@ -127,7 +127,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                --enable-icap-client \
                --enable-zph-qos \
                --with-dl \
-               --with-filedescriptors=$$(( 16384 * 64 )) \
                --with-large-files \
                --without-gnutls \
                --without-netfilter-conntrack
index 6a24a02ab8194cbee7143f427a8f8c6f7680d9a7..a870e3668c63216096e02dc9a6221c146d9ce10a 100644 (file)
@@ -100,15 +100,19 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # Install yaml file for loading default rules.
        install -m 0664 $(DIR_SRC)/config/suricata/suricata-default-rules.yaml /var/ipfire/suricata
 
+       # Set correct ownership for the default rules file.
+       chown nobody:nobody /var/ipfire/suricata/suricata-default-rules.yaml
+
        # Create emtpy rules directory.
        -mkdir -p /var/lib/suricata
 
        # Move config files for references, threshold and classification
        # to the rules directory.
-       mv /etc/suricata/*.config /var/lib/suricata
+       rm -rfv /etc/suricata/*.config
 
-       # Set correct permissions for the files.
-       chmod 644 /var/lib/suricata/*.config
+       # Set correct ownership for the classifiction config file.
+       # (File has to be writeable for the nobody user)
+       chown nobody:nobody /usr/share/suricata/classification.config
 
        # Set correct ownership for /var/lib/suricata and the
        # contained files
diff --git a/lfs/tcl b/lfs/tcl
index e4b15c7fb2473e04109e41eaabb42f05133c9cd1..b9026a89cd05c9953d772e3c52d9be8e9e1241d8 100644 (file)
--- a/lfs/tcl
+++ b/lfs/tcl
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 8.6.11
+VER        = 8.6.12
 
 THISAPP    = tcl$(VER)
 DL_FILE    = $(THISAPP)-src.tar.gz
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 8a4c004f48984a03a7747e9ba06e4da4
+$(DL_FILE)_MD5 = 87ea890821d2221f2ab5157bc5eb885f
 
 install : $(TARGET)
 
index 4fd6289d9f8cf42d0f975be072bbe6f158c4b801..b68cd6faf038a6e56a132091ee33b60649482f91 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.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        #
@@ -35,17 +35,21 @@ SUP_ARCH   = armv6l aarch64
 
 CFLAGS    := $(patsubst -fstack-protector-strong,,$(CFLAGS))
 
+ATF_VER    = 2.6
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) arm-trusted-firmware-2.5.tar.gz
+objects = $(DL_FILE) arm-trusted-firmware-$(ATF_VER).tar.gz arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-arm-trusted-firmware-2.5.tar.gz = $(DL_FROM)/arm-trusted-firmware-2.5.tar.gz
+arm-trusted-firmware-$(ATF_VER).tar.gz = $(DL_FROM)/arm-trusted-firmware-$(ATF_VER).tar.gz
+arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz = $(DL_FROM)/arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz
 
 $(DL_FILE)_MD5 = 7afbe0ef070dc0e8e970c57a08e3f336
-arm-trusted-firmware-2.5.tar.gz_MD5 = a3c01d2a73d5171e3f1c0737ff5321d9
+arm-trusted-firmware-$(ATF_VER).tar.gz_MD5 = 2622f7077e30436b2310bea0232c7cec
+arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz_MD5 = b81fc982c982f06c439043385a5ba8ea
 
 install : $(TARGET)
 
@@ -183,22 +187,37 @@ else
        cd $(DIR_APP) && make distclean
 
        # Nanopi R2S
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/u-boot/rockchip/generate-2-ethaddr.diff
-       cd $(DIR_APP) && rm -rf arm-trusted-firmware-2.5
-       cd $(DIR_APP) && tar axf $(DIR_DL)/arm-trusted-firmware-2.5.tar.gz
-       cd $(DIR_APP)/arm-trusted-firmware-2.5 && make PLAT=rk3328 ARCH=aarch64 DEBUG=0 bl31
-       cd $(DIR_APP) && cp arm-trusted-firmware-2.5/build/rk3328/release/bl31/bl31.elf bl31.elf
-       cd $(DIR_APP) && rm -rf arm-trusted-firmware-2.5
+#      cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/u-boot/rockchip/generate-2-ethaddr.diff
+       cd $(DIR_APP) && rm -rf arm-trusted-firmware-$(ATF_VER)
+       cd $(DIR_APP) && tar axf $(DIR_DL)/arm-trusted-firmware-$(ATF_VER).tar.gz
+       cd $(DIR_APP)/arm-trusted-firmware-$(ATF_VER) && make PLAT=rk3328 ARCH=aarch64 DEBUG=0 bl31
+       cd $(DIR_APP) && cp arm-trusted-firmware-$(ATF_VER)/build/rk3328/release/bl31/bl31.elf bl31.elf
+       cd $(DIR_APP) && rm -rf arm-trusted-firmware-$(ATF_VER)
        -mkdir -pv /usr/share/u-boot/nanopi_r2s
        cd $(DIR_APP) && make CROSS_COMPILE="" nanopi-r2s-rk3328_config
        cd $(DIR_APP) && sed -i -e 's!^CONFIG_IDENT_STRING=.*!CONFIG_IDENT_STRING=" Nanopi R2S - IPFire.org"!' .config
        cd $(DIR_APP) && sed -i -e 's!^CONFIG_BOOTCOMMAND=.*!CONFIG_BOOTCOMMAND="console=ttyS2,115200n8;run distro_bootcmd"!' .config
-       cd $(DIR_APP) && sed -i -e 's!^CONFIG_BAUDRATE=.*!CONFIG_BAUDRATE=115200"!' .config
+       cd $(DIR_APP) && sed -i -e 's!^CONFIG_BAUDRATE=.*!CONFIG_BAUDRATE=115200!' .config
+       cd $(DIR_APP) && sed -i -e 's!.*CONFIG_MISC_INIT_R.*!# CONFIG_MISC_INIT_R is not set!' .config
        cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)"
        cd $(DIR_APP) && install -v -m 644 u-boot-rockchip.bin \
                /usr/share/u-boot/nanopi_r2s/u-boot-rockchip.bin
        cd $(DIR_APP) && make distclean
 
+       # Nanopi R4S
+       # arm trusted firmware for rk3399 cannot build without cortex m0 gcc crosscompiler
+       cd $(DIR_APP) && tar axf $(DIR_DL)/arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz
+       -mkdir -pv /usr/share/u-boot/nanopi_r4s
+       cd $(DIR_APP) && make CROSS_COMPILE="" nanopi-r4s-rk3399_config
+       cd $(DIR_APP) && sed -i -e 's!^CONFIG_IDENT_STRING=.*!CONFIG_IDENT_STRING=" Nanopi R4S - IPFire.org"!' .config
+       cd $(DIR_APP) && sed -i -e 's!^CONFIG_BOOTCOMMAND=.*!CONFIG_BOOTCOMMAND="console=ttyS2,115200n8;run distro_bootcmd"!' .config
+       cd $(DIR_APP) && sed -i -e 's!^CONFIG_BAUDRATE=.*!CONFIG_BAUDRATE=115200!' .config
+#      cd $(DIR_APP) && sed -i -e 's!.*CONFIG_MISC_INIT_R.*!CONFIG_MISC_INIT_R=y!' .config
+       cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)"
+       cd $(DIR_APP) && install -v -m 644 u-boot-rockchip.bin \
+               /usr/share/u-boot/nanopi_r4s/u-boot-rockchip.bin
+       cd $(DIR_APP) && make distclean
+
 endif
        # create an empty 128 KB File for the u-boot env
        dd if=/dev/zero of=/boot/uboot.env bs=1K count=128
index 9e919cbec859f8fe98718297559a10a28691c5b2..5ac2e657429e354be8676709a9e418af0bcb283d 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2021  IPFire Team  <info@ipfire.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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 007
+VER        = 013
 
 THISAPP    = usbutils-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c9df5107ae9d26b10a1736a261250139
+$(DL_FILE)_MD5 = 91b0c9a3382d6f4c382df7a98462de2e
 
 install : $(TARGET)
 
@@ -71,6 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        $(UPDATE_AUTOMAKE)
+       cd $(DIR_APP) && ./autogen.sh
        cd $(DIR_APP) && ./configure    --prefix=/usr \
                                        --datadir=/usr/share/hwdata \
                                        --disable-zlib
index 773d0df570e461019b52d2c53d3306e52dde685c..982c987915a9e6299e9af9d99019f151a679bb59 100644 (file)
--- a/lfs/zstd
+++ b/lfs/zstd
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.5.0
+VER        = 1.5.1
 
 THISAPP    = zstd-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -49,7 +49,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a6eb7fb1f2c21fa80030a47993853e92
+$(DL_FILE)_MD5 = b97d53547220355907dedec7de9a4f29
 
 install : $(TARGET)
 
diff --git a/make.sh b/make.sh
index 7568ee232f588347088a9108051dfc3704930e0f..79798834a55eab4d7afad15cb193ec00b66c0412 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -26,7 +26,7 @@ NAME="IPFire"                                                 # Software name
 SNAME="ipfire"                                                 # Short name
 # If you update the version don't forget to update backupiso and add it to core update
 VERSION="2.27"                                                 # Version number
-CORE="163"                                                     # Core Level (Filename)
+CORE="164"                                                     # Core Level (Filename)
 SLOGAN="www.ipfire.org"                                                # Software slogan
 CONFIG_ROOT=/var/ipfire                                                # Configuration rootdir
 MAX_RETRIES=1                                                  # prefetch/check loop
@@ -170,7 +170,6 @@ configure_build() {
                        CROSSTARGET="${build_arch}-cross-linux-gnueabi"
                        BUILD_PLATFORM="arm"
                        CFLAGS_ARCH="-march=armv6zk+fp -mfpu=vfp -mfloat-abi=softfp -fomit-frame-pointer"
-                       #RUSTFLAGS="-Ccodegen-units=1"
                        ;;
 
                riscv64)
@@ -205,6 +204,8 @@ configure_build() {
        CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
        CXXFLAGS="${CFLAGS}"
 
+       RUSTFLAGS="-Copt-level=3 -Clink-arg=-Wl,-z,relro,-z,now -Ccodegen-units=1 --cap-lints=warn ${RUSTFLAGS_ARCH}"
+
        # Determine parallelism
        # We assume that each process consumes about
        # 128MB of memory. Therefore we find out how
@@ -1128,6 +1129,7 @@ buildbase() {
        lfsmake2 util-linux
        lfsmake2 vim
        lfsmake2 e2fsprogs
+       lfsmake2 jq
 }
 
 buildipfire() {
@@ -1213,6 +1215,90 @@ buildipfire() {
   lfsmake2 sqlite
   lfsmake2 libffi
   lfsmake2 python3
+  lfsmake2 rust
+  lfsmake2 rust-dissimilar
+  lfsmake2 rust-cfg-if
+  lfsmake2 rust-libc
+  lfsmake2 rust-getrandom
+  lfsmake2 rust-typenum
+  lfsmake2 rust-version-check
+  lfsmake2 rust-generic-array
+  lfsmake2 rust-cipher
+  lfsmake2 rust-hex
+  lfsmake2 rust-unicode-xid
+  lfsmake2 rust-proc-macro2
+  lfsmake2 rust-quote
+  lfsmake2 rust-syn
+  lfsmake2 rust-home
+  lfsmake2 rust-lazy-static
+  lfsmake2 rust-memchr
+  lfsmake2 rust-aho-corasick
+  lfsmake2 rust-regex-syntax
+  lfsmake2 rust-regex
+  lfsmake2 rust-ucd-trie
+  lfsmake2 rust-pest
+  lfsmake2 rust-semver-parser
+  lfsmake2 rust-semver
+  lfsmake2 rust-same-file
+  lfsmake2 rust-walkdir
+  lfsmake2 rust-dirs
+  lfsmake2 rust-toolchain_find
+  lfsmake2 rust-serde
+  lfsmake2 rust-itoa
+  lfsmake2 rust-ryu
+  lfsmake2 rust-serde_json
+  lfsmake2 rust-synstructure
+  lfsmake2 rust-block-buffer
+  lfsmake2 rust-crypto-common
+  lfsmake2 rust-digest
+  lfsmake2 rust-ppv-lite86
+  lfsmake2 rust-rand_core
+  lfsmake2 rust-rand_core-0.4.2
+  lfsmake2 rust-rand_core-0.3.1
+  lfsmake2 rust-rand_chacha
+  lfsmake2 rust-rand_hc
+  lfsmake2 rust-rand
+  lfsmake2 rust-rdrand
+  lfsmake2 rust-rand-0.4
+  lfsmake2 rust-log
+  lfsmake2 rust-num_cpus
+  lfsmake2 rust-crossbeam-utils
+  lfsmake2 rust-autocfg
+  lfsmake2 rust-memoffset
+  lfsmake2 rust-scopeguard
+  lfsmake2 rust-crossbeam-epoch
+  lfsmake2 rust-crossbeam-deque
+  lfsmake2 rust-either
+  lfsmake2 rust-crossbeam-channel
+  lfsmake2 rust-rayon-core
+  lfsmake2 rust-rayon
+  lfsmake2 rust-remove_dir_all
+  lfsmake2 rust-tempdir
+  lfsmake2 rust-glob
+  lfsmake2 rust-once_cell
+  lfsmake2 rust-termcolor
+  lfsmake2 rust-toml
+  lfsmake2 rust-serde_derive
+  lfsmake2 rust-trybuild
+  lfsmake2 rust-unindent
+  lfsmake2 rust-proc-macro-hack
+  lfsmake2 rust-indoc-impl
+  lfsmake2 rust-indoc
+  lfsmake2 rust-instant
+  lfsmake2 rust-lock_api
+  lfsmake2 rust-smallvec
+  lfsmake2 rust-parking_lot_core
+  lfsmake2 rust-parking_lot
+  lfsmake2 rust-paste-impl
+  lfsmake2 rust-paste
+  lfsmake2 rust-ctor
+  lfsmake2 rust-ghost
+  lfsmake2 rust-inventory-impl
+  lfsmake2 rust-inventory
+  lfsmake2 rust-pyo3-build-config
+  lfsmake2 rust-pyo3-macros-backend
+  lfsmake2 rust-pyo3-macros
+  lfsmake2 rust-pyo3
   lfsmake2 gdb
   lfsmake2 grub
   lfsmake2 efivar
@@ -1339,7 +1425,6 @@ buildipfire() {
   lfsmake2 rrdtool
   lfsmake2 setup
   lfsmake2 libdnet
-  lfsmake2 rust
   lfsmake2 jansson
   lfsmake2 yaml
   lfsmake2 libhtp
@@ -1599,6 +1684,7 @@ buildipfire() {
   lfsmake2 libcdada
   lfsmake2 pmacct
   lfsmake2 squid-asnbl
+  lfsmake2 qemu-ga
 }
 
 buildinstaller() {
@@ -1957,7 +2043,7 @@ check-manualpages)
        fi
        ;;
 *)
-       echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies|check-manualpages}"
+       echo "Usage: $0 [OPTIONS] {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies|check-manualpages}"
        cat doc/make.sh-usage
        ;;
 esac
diff --git a/src/initscripts/packages/qemu-ga b/src/initscripts/packages/qemu-ga
new file mode 100755 (executable)
index 0000000..68863f8
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Begin $rc_base/init.d/qemu-guest-agent
+
+
+. /etc/sysconfig/rc
+. $rc_functions
+
+case "$1" in
+       start)
+               boot_mesg "Starting QEMU Guest Agent..."
+               /usr/bin/qemu-ga -m virtio-serial -p /dev/virtio-ports/org.qemu.guest_agent.0 -f /run/qemu-ga.pid -d
+               evaluate_retval
+               ;;
+
+       stop)
+               boot_mesg "Stopping QEMU Guest Agent..."
+               killproc /usr/bin/qemu-ga
+               ;;
+
+       restart)
+               $0 stop
+               sleep 3
+               $0 start
+               ;;
+
+       status)
+               statusproc /usr/bin/qemu-ga
+               ;;
+
+
+       *)
+               echo "Usage: $0 {start|stop|restart|status}"
+               exit 1
+               ;;
+esac
+
+
+# End $rc_base/init.d/qemu-guest-agent
index 75ea8abdfecb86c33d18aed087665ab5de2d6fad..48653ff5793763ae887101f7db11d8f76bedde1f 100644 (file)
@@ -7,6 +7,9 @@ eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings)
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 eval $(/usr/local/bin/readhash /var/ipfire/optionsfw/settings)
 IFACE=`/bin/cat /var/ipfire/red/iface 2> /dev/null | /usr/bin/tr -d '\012'`
+if [ -z $IFACE ]; then
+       IFACE="red0"
+fi
 
 if [ -f /var/ipfire/red/device ]; then
        DEVICE=`/bin/cat /var/ipfire/red/device 2> /dev/null | /usr/bin/tr -d '\012'`
@@ -80,6 +83,14 @@ iptables_init() {
        fi
        iptables -A NEWNOTSYN  -j DROP -m comment --comment "DROP_NEWNOTSYN"
 
+       # Log and subsequently drop spoofed packets or "martians", arriving from sources
+       # on interfaces where we don't expect them
+       iptables -N SPOOFED_MARTIAN
+       if [ "$DROPSPOOFEDMARTIAN" == "on" ]; then
+               iptables -A SPOOFED_MARTIAN  -m limit --limit 10/second -j LOG  --log-prefix "DROP_SPOOFED_MARTIAN "
+       fi
+       iptables -A SPOOFED_MARTIAN -j DROP -m comment --comment "DROP_SPOOFED_MARTIAN"
+
        # Chain to contain all the rules relating to bad TCP flags
        iptables -N BADTCP
 
@@ -110,7 +121,7 @@ iptables_init() {
        # Connection tracking chains
        iptables -N CONNTRACK
        iptables -A CONNTRACK -m conntrack --ctstate ESTABLISHED -j ACCEPT
-       iptables -A CONNTRACK -m conntrack --ctstate INVALID -j DROP
+       iptables -A CONNTRACK -m conntrack --ctstate INVALID -j LOG_DROP
        iptables -A CONNTRACK -p icmp -m conntrack --ctstate RELATED -j ACCEPT
 
        # Restore any connection marks
@@ -131,12 +142,24 @@ iptables_init() {
        iptables -t nat -N CUSTOMPOSTROUTING
        iptables -t nat -A POSTROUTING -j CUSTOMPOSTROUTING
 
+       # Log and drop any traffic from and to networks known as being hostile, posing
+       # a technical threat to our users (i. e. listed at Spamhaus DROP et al.)
+       iptables -N HOSTILE
+       if [ "$DROPHOSTILE" == "on" ]; then
+               iptables -A HOSTILE -m limit --limit 10/second -j LOG  --log-prefix "DROP_HOSTILE "
+               iptables -A INPUT   -i $IFACE -m geoip --src-cc XD -j HOSTILE
+               iptables -A FORWARD -i $IFACE -m geoip --src-cc XD -j HOSTILE
+               iptables -A FORWARD -o $IFACE -m geoip --dst-cc XD -j HOSTILE
+               iptables -A OUTPUT  -o $IFACE -m geoip --src-cc XD -j HOSTILE
+       fi
+       iptables -A HOSTILE -j DROP -m comment --comment "DROP_HOSTILE"
+
        # P2PBLOCK
        iptables -N P2PBLOCK
        iptables -A INPUT -j P2PBLOCK
        iptables -A FORWARD -j P2PBLOCK
        iptables -A OUTPUT -j P2PBLOCK
-       
+
        # IPS (Guardian) chains
        iptables -N GUARDIAN
        iptables -A INPUT -j GUARDIAN
@@ -177,14 +200,18 @@ iptables_init() {
        iptables -A INPUT -j ICMPINPUT
        iptables -A ICMPINPUT -p icmp --icmp-type 8 -j ACCEPT
 
-       # Accept everything on loopback
+       # Accept everything on loopback if source/destination is loopback space...
        iptables -N LOOPBACK
-       iptables -A LOOPBACK -i lo -j ACCEPT
-       iptables -A LOOPBACK -o lo -j ACCEPT
+       iptables -A LOOPBACK -i lo -s 127.0.0.0/8 -j ACCEPT
+       iptables -A LOOPBACK -o lo -d 127.0.0.0/8 -j ACCEPT
+
+       # ... and drop everything else on the loopback interface, since no other traffic should appear there
+       iptables -A LOOPBACK -i lo -j SPOOFED_MARTIAN
+       iptables -A LOOPBACK -o lo -j SPOOFED_MARTIAN
 
-       # Filter all packets with loopback addresses on non-loopback interfaces.
-       iptables -A LOOPBACK -s 127.0.0.0/8 -j DROP
-       iptables -A LOOPBACK -d 127.0.0.0/8 -j DROP
+       # Filter all packets with loopback addresses on non-loopback interfaces (spoofed)
+       iptables -A LOOPBACK -s 127.0.0.0/8 -j SPOOFED_MARTIAN
+       iptables -A LOOPBACK -d 127.0.0.0/8 -j SPOOFED_MARTIAN
 
        for i in INPUT FORWARD OUTPUT; do
                iptables -A ${i} -j LOOPBACK
@@ -227,6 +254,10 @@ iptables_init() {
                iptables -A OUTPUT -o "${BLUE_DEV}" -j DHCPBLUEOUTPUT
        fi
 
+       # Tor (inbound)
+       iptables -N TOR_INPUT
+       iptables -A INPUT -j TOR_INPUT
+
        # Location Block
        iptables -N LOCATIONBLOCK
        iptables -A INPUT -j LOCATIONBLOCK
@@ -260,12 +291,10 @@ iptables_init() {
        iptables -N OVPNINPUT
        iptables -A INPUT -j OVPNINPUT
 
-       # Tor (inbound and outbound)
-       iptables -N TOR_INPUT
-       iptables -A INPUT -j TOR_INPUT
+       # Tor (outbound)
        iptables -N TOR_OUTPUT
        iptables -A OUTPUT -j TOR_OUTPUT
-       
+
        # Jump into the actual firewall ruleset.
        iptables -N INPUTFW
        iptables -A INPUT -j INPUTFW
@@ -360,6 +389,17 @@ iptables_red_up() {
        iptables -F REDFORWARD
        iptables -t nat -F REDNAT
 
+       # Prohibit spoofing our own IP address on RED
+       if [ -f /var/ipfire/red/active ]; then
+               REDIP="$( cat /var/ipfire/red/local-ipaddress )";
+
+               if [ "$IFACE" != "" ]; then
+                       iptables -A REDINPUT -s $REDIP -i $IFACE -j SPOOFED_MARTIAN
+               elif [ "$DEVICE" != "" ]; then
+                       iptables -A REDINPUT -s $REDIP -i $DEVICE -j SPOOFED_MARTIAN
+               fi
+       fi
+
        # PPPoE / PPTP Device
        if [ "$IFACE" != "" ]; then
                # PPPoE / PPTP
index 07147ce6c5f50c097c00b4103198b39968419db2..d68426acf2332bf8668d68fa8c14c5a9c9c37f3a 100644 (file)
@@ -121,11 +121,16 @@ case "${1}" in
                setup_netdev_trigger nanopi-r1:green:wan ${RED_DEV} tx rx
                setup_netdev_trigger nanopi-r1:green:lan ${GREEN_DEV} tx rx
 
-               # Nanopi R1 start
+               # Nanopi R2S start
                setup_heartbeat_trigger nanopi-r2s:red:sys
                setup_netdev_trigger nanopi-r2s:green:wan ${RED_DEV} tx rx
                setup_netdev_trigger nanopi-r2s:green:lan ${GREEN_DEV} tx rx
 
+               # Nanopi R4S start
+               setup_heartbeat_trigger nanopi-r4s:green:sys
+               setup_netdev_trigger nanopi-r4s:green:wan ${RED_DEV} tx rx
+               setup_netdev_trigger nanopi-r4s:green:lan ${GREEN_DEV} tx rx
+
                exit 0
        ;;
 
@@ -166,6 +171,12 @@ case "${1}" in
                disable_led_trigger nanopi-r2s:green:wan
                disable_led_trigger nanopi-r2s:green:lan
 
+               # Nanopi R4S stop
+               disable_led_trigger nanopi-r4s:green:sys
+               enable_led nanopi-r4s:green:sys
+               disable_led_trigger nanopi-r4s:green:wan
+               disable_led_trigger nanopi-r4s:green:lan
+
                exit 0
        ;;
 
index 2206ca451604a948e12f139eb5506f37e3b2ebe7..307cc5927f2630dbfcf078631726ac3c2935457d 100644 (file)
@@ -51,17 +51,29 @@ case "${1}" in
                                scon="on"
                        fi
 
-                       # Install AP6112 wlan config on NanoPi R1
+                       mount /boot > /dev/null
                        case "$(< /proc/device-tree/model )" in
-                               "FriendlyElec NanoPi-R1")
+                               FriendlyElec\ NanoPi?R1* )
+                                       # Install AP6112 wlan config on NanoPi R1
                                        cp -f   /lib/firmware/brcm/brcmfmac43430-sdio.AP6212.txt \
                                                /lib/firmware/brcm/brcmfmac43430-sdio.txt
                                        cp -f   /lib/firmware/brcm/brcmfmac43430a0-sdio.ONDA-V80_PLUS.txt \
                                                /lib/firmware/brcm/brcmfmac43430a0-sdio.txt
                                ;;
+                               FriendlyElec\ NanoPi?R2* )
+                                       # Generate MAC address at first boot
+                                       SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]`
+                                       echo ethaddr=$SWMAC:00 >> /boot/uEnv.txt
+                                       echo eth1addr=$SWMAC:01 >> /boot/uEnv.txt
+                               ;;
+                               FriendlyElec\ NanoPi?R4* )
+                                       # Generate MAC address at first boot
+                                       SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]`
+                                       echo ethaddr=$SWMAC:00 >> /boot/uEnv.txt
+                                       echo eth1addr=$SWMAC:01 >> /boot/uEnv.txt
+                               ;;
                        esac 2>/dev/null
 
-                       mount /boot > /dev/null
                        if [ -e /boot/grub/grub.cfg ]; then
                                # swtich permanent to serial console if it was selected on first boot
                                if [ "${scon}" = "on" ]; then
index 7255c0aca03d5c8db21a61725cc872e76556054b..09e7a044334c57c9abc8ca9579fdacb8c6c8e137 100644 (file)
@@ -48,6 +48,7 @@ transparent() {
 
 case "$1" in
        start)
+               ulimit -n 32768
                getpids "squid"
 
                if [ -n "${pidlist}" ]; then
index 2f34763d5d324a06446d7a64c3d213e580a2ba70..cb448a766a01cd4f7692b119005ee14e65a5e478 100644 (file)
@@ -524,13 +524,13 @@ sub dblist {
                foreach $line (sort @db) {
                        next unless ($line =~ /.*;.*;.*;/ );
                        $use_color = "";
-                       $count++;
                        @templine = split(/\;/,$line);
                        if ("$filter" eq "notinstalled") {
                                next if ( -e "$Conf::dbdir/installed/meta-$templine[0]" );
                        } elsif ("$filter" eq "installed") {
                                next unless ( -e "$Conf::dbdir/installed/meta-$templine[0]" );
                        }
+                       $count++;
                        if ("$forweb" eq "forweb")
                         {
                                if ("$filter" eq "notinstalled") {
diff --git a/src/paks/qemu-ga/install.sh b/src/paks/qemu-ga/install.sh
new file mode 100644 (file)
index 0000000..6980820
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire 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.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2022 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+extract_files
+restore_backup ${NAME}
+
+# add symlinks for qemu-ga
+
+ln -s /etc/rc.d/init.d/qemu-ga /etc/rc.d/rc0.d/K00qemu-ga
+ln -s /etc/rc.d/init.d/qemu-ga /etc/rc.d/rc3.d/S99qemu-ga
+ln -s /etc/rc.d/init.d/qemu-ga /etc/rc.d/rc6.d/K00qemu-ga
+
+start_service --background ${NAME}
diff --git a/src/paks/qemu-ga/uninstall.sh b/src/paks/qemu-ga/uninstall.sh
new file mode 100644 (file)
index 0000000..cc1115b
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire 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.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2022 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+stop_service ${NAME}
+make_backup ${NAME}
+
+# remove symlinks
+
+rm -f /etc/rc.d/rc0.d/K00qemu-ga /etc/rc.d/rc3.d/S99qemu-ga /etc/rc.d/rc6.d/K00qemu-ga
+
+remove_files
diff --git a/src/paks/qemu-ga/update.sh b/src/paks/qemu-ga/update.sh
new file mode 100644 (file)
index 0000000..ea2505f
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire 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.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2007-2022 IPFire-Team <info@ipfire.org>.                   #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+extract_backup_includes
+./uninstall.sh
+./install.sh
index 12af9a5f36f5732e4a67baa5567b74e1170855e4..774f52e046104d9e7dd8e22684b344dea53ca3fb 100644 (file)
@@ -1,30 +1,15 @@
-From a50fa0195e36773d57593006152828ce2c0523fd Mon Sep 17 00:00:00 2001
-From: Jonatan Schlag <jonatan.schlag@ipfire.org>
-Date: Fri, 6 May 2016 11:38:08 +0200
-Subject: [PATCH] Change default behavior of libvirt-guests.sh for IPFire
-
-Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
----
- tools/libvirt-guests.sh.in | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
-index 7f74b85..87aceb7 100644
---- a/tools/libvirt-guests.sh.in
-+++ b/tools/libvirt-guests.sh.in
-@@ -30,9 +30,9 @@ test ! -r "$sysconfdir"/rc.d/init.d/functions ||
+--- libvirt-7.10.0/tools/libvirt-guests.sh.in.orig     2021-12-01 10:51:11.942943000 +0100
++++ libvirt-7.10.0/tools/libvirt-guests.sh.in  2022-01-11 12:32:37.765715377 +0100
+@@ -30,9 +30,9 @@
  
  export TEXTDOMAIN="@PACKAGE@" TEXTDOMAINDIR="@localedir@"
  
--URIS=default
--ON_BOOT=start
--ON_SHUTDOWN=suspend
-+URIS=qemu:///system
-+ON_BOOT=ignore
-+ON_SHUTDOWN=shutdown
+-URIS="default"
+-ON_BOOT="start"
+-ON_SHUTDOWN="suspend"
++URIS="qemu:///system"
++ON_BOOT="ignore"
++ON_SHUTDOWN="shutdown"
  SHUTDOWN_TIMEOUT=300
  PARALLEL_SHUTDOWN=0
  START_DELAY=0
--- 
-2.1.4
-
similarity index 95%
rename from src/patches/linux/linux-5.15-layer7.patch
rename to src/patches/linux/linux-5.15.17-layer7.patch
index 80b6895a47e494c89dc8ce9bd955e9f8c60cb8c6..0dafa16c7b671646ff32efea819d9c37d4b99c36 100644 (file)
@@ -1,22 +1,20 @@
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 841e2f0f5240..636e5abedb08 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -768,6 +768,9 @@ struct sk_buff {
+diff -Naur a/include/linux/skbuff.h b/include/linux/skbuff.h
+--- a/include/linux/skbuff.h   2022-01-27 10:05:44.000000000 +0000
++++ b/include/linux/skbuff.h   2022-01-29 08:04:32.984637671 +0000
+@@ -772,6 +772,9 @@
  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
        unsigned long            _nfct;
-+#endif
+ #endif
 +#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
 +      char                    layer7_flags[1];
- #endif
++#endif
        unsigned int            len,
                                data_len;
-diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
-index cc663c68ddc4..55655f5ee4f2 100644
---- a/include/net/netfilter/nf_conntrack.h
-+++ b/include/net/netfilter/nf_conntrack.h
-@@ -117,6 +117,23 @@ struct nf_conn {
+       __u16                   mac_len,
+diff -Naur a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
+--- a/include/net/netfilter/nf_conntrack.h     2022-01-27 10:05:44.000000000 +0000
++++ b/include/net/netfilter/nf_conntrack.h     2022-01-29 08:04:32.984637671 +0000
+@@ -117,6 +117,23 @@
        /* Extensions */
        struct nf_ct_ext *ext;
  
@@ -40,11 +38,9 @@ index cc663c68ddc4..55655f5ee4f2 100644
        /* Storage reserved for other modules, must be the last member */
        union nf_conntrack_proto proto;
  };
-diff --git a/include/uapi/linux/netfilter/xt_layer7.h b/include/uapi/linux/netfilter/xt_layer7.h
-new file mode 100644
-index 000000000000..147cd6477858
---- /dev/null
-+++ b/include/uapi/linux/netfilter/xt_layer7.h
+diff -Naur a/include/uapi/linux/netfilter/xt_layer7.h b/include/uapi/linux/netfilter/xt_layer7.h
+--- a/include/uapi/linux/netfilter/xt_layer7.h 1970-01-01 00:00:00.000000000 +0000
++++ b/include/uapi/linux/netfilter/xt_layer7.h 2022-01-29 08:04:32.984637671 +0000
 @@ -0,0 +1,13 @@
 +#ifndef _XT_LAYER7_H
 +#define _XT_LAYER7_H
@@ -59,11 +55,10 @@ index 000000000000..147cd6477858
 +};
 +
 +#endif /* _XT_LAYER7_H */
-diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
-index 92a747896f80..0152bdbc338e 100644
---- a/net/netfilter/Kconfig
-+++ b/net/netfilter/Kconfig
-@@ -1389,6 +1389,26 @@ config NETFILTER_XT_MATCH_L2TP
+diff -Naur a/net/netfilter/Kconfig b/net/netfilter/Kconfig
+--- a/net/netfilter/Kconfig    2022-01-27 10:05:44.000000000 +0000
++++ b/net/netfilter/Kconfig    2022-01-29 08:04:32.988637605 +0000
+@@ -1389,6 +1389,26 @@
  
        To compile it as a module, choose M here. If unsure, say N.
  
@@ -90,11 +85,10 @@ index 92a747896f80..0152bdbc338e 100644
  config NETFILTER_XT_MATCH_LENGTH
        tristate '"length" match support'
        depends on NETFILTER_ADVANCED
-diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
-index aab20e575ecd..0dfd2c3df9e1 100644
---- a/net/netfilter/Makefile
-+++ b/net/netfilter/Makefile
-@@ -201,6 +201,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT) += xt_recent.o
+diff -Naur a/net/netfilter/Makefile b/net/netfilter/Makefile
+--- a/net/netfilter/Makefile   2022-01-27 10:05:44.000000000 +0000
++++ b/net/netfilter/Makefile   2022-01-29 08:04:32.988637605 +0000
+@@ -201,6 +201,7 @@
  obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
@@ -102,11 +96,10 @@ index aab20e575ecd..0dfd2c3df9e1 100644
  obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o
-diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
-index 770a63103c7a..5951aedc010a 100644
---- a/net/netfilter/nf_conntrack_core.c
-+++ b/net/netfilter/nf_conntrack_core.c
-@@ -636,6 +636,11 @@ destroy_conntrack(struct nf_conntrack *nfct)
+diff -Naur a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
+--- a/net/netfilter/nf_conntrack_core.c        2022-01-27 10:05:44.000000000 +0000
++++ b/net/netfilter/nf_conntrack_core.c        2022-01-29 08:04:32.992637539 +0000
+@@ -636,6 +636,11 @@
         */
        nf_ct_remove_expectations(ct);
  
@@ -118,11 +111,10 @@ index 770a63103c7a..5951aedc010a 100644
        nf_ct_del_from_dying_or_unconfirmed_list(ct);
  
        local_bh_enable();
-diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
-index 80f675d884b2..3e7c0a85bdcf 100644
---- a/net/netfilter/nf_conntrack_standalone.c
-+++ b/net/netfilter/nf_conntrack_standalone.c
-@@ -370,6 +370,11 @@ static int ct_seq_show(struct seq_file *s, void *v)
+diff -Naur a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
+--- a/net/netfilter/nf_conntrack_standalone.c  2022-01-27 10:05:44.000000000 +0000
++++ b/net/netfilter/nf_conntrack_standalone.c  2022-01-29 08:04:32.992637539 +0000
+@@ -370,6 +370,11 @@
        ct_show_zone(s, ct, NF_CT_DEFAULT_ZONE_DIR);
        ct_show_delta_time(s, ct);
  
@@ -134,11 +126,9 @@ index 80f675d884b2..3e7c0a85bdcf 100644
        seq_printf(s, "use=%u\n", atomic_read(&ct->ct_general.use));
  
        if (seq_has_overflowed(s))
-diff --git a/net/netfilter/regexp/regexp.c b/net/netfilter/regexp/regexp.c
-new file mode 100644
-index 000000000000..900698886531
---- /dev/null
-+++ b/net/netfilter/regexp/regexp.c
+diff -Naur a/net/netfilter/regexp/regexp.c b/net/netfilter/regexp/regexp.c
+--- a/net/netfilter/regexp/regexp.c    1970-01-01 00:00:00.000000000 +0000
++++ b/net/netfilter/regexp/regexp.c    2022-01-29 08:04:32.992637539 +0000
 @@ -0,0 +1,1197 @@
 +/*
 + * regcomp and regexec -- regsub and regerror are elsewhere
@@ -1337,11 +1327,9 @@ index 000000000000..900698886531
 +#endif
 +
 +
-diff --git a/net/netfilter/regexp/regexp.h b/net/netfilter/regexp/regexp.h
-new file mode 100644
-index 000000000000..a72eba71fb61
---- /dev/null
-+++ b/net/netfilter/regexp/regexp.h
+diff -Naur a/net/netfilter/regexp/regexp.h b/net/netfilter/regexp/regexp.h
+--- a/net/netfilter/regexp/regexp.h    1970-01-01 00:00:00.000000000 +0000
++++ b/net/netfilter/regexp/regexp.h    2022-01-29 08:04:32.992637539 +0000
 @@ -0,0 +1,41 @@
 +/*
 + * Definitions etc. for regexp(3) routines.
@@ -1384,22 +1372,18 @@ index 000000000000..a72eba71fb61
 +void regerror(char *s);
 +
 +#endif
-diff --git a/net/netfilter/regexp/regmagic.h b/net/netfilter/regexp/regmagic.h
-new file mode 100644
-index 000000000000..5acf4478ff71
---- /dev/null
-+++ b/net/netfilter/regexp/regmagic.h
+diff -Naur a/net/netfilter/regexp/regmagic.h b/net/netfilter/regexp/regmagic.h
+--- a/net/netfilter/regexp/regmagic.h  1970-01-01 00:00:00.000000000 +0000
++++ b/net/netfilter/regexp/regmagic.h  2022-01-29 08:04:32.992637539 +0000
 @@ -0,0 +1,5 @@
 +/*
 + * The first byte of the regexp internal "program" is actually this magic
 + * number; the start node begins in the second byte.
 + */
 +#define       MAGIC   0234
-diff --git a/net/netfilter/regexp/regsub.c b/net/netfilter/regexp/regsub.c
-new file mode 100644
-index 000000000000..339631f06f00
---- /dev/null
-+++ b/net/netfilter/regexp/regsub.c
+diff -Naur a/net/netfilter/regexp/regsub.c b/net/netfilter/regexp/regsub.c
+--- a/net/netfilter/regexp/regsub.c    1970-01-01 00:00:00.000000000 +0000
++++ b/net/netfilter/regexp/regsub.c    2022-01-29 08:04:32.992637539 +0000
 @@ -0,0 +1,95 @@
 +/*
 + * regsub
@@ -1496,11 +1480,9 @@ index 000000000000..339631f06f00
 +      }
 +      *dst++ = '\0';
 +}
-diff --git a/net/netfilter/xt_layer7.c b/net/netfilter/xt_layer7.c
-new file mode 100644
-index 000000000000..a7eb760123bf
---- /dev/null
-+++ b/net/netfilter/xt_layer7.c
+diff -Naur a/net/netfilter/xt_layer7.c b/net/netfilter/xt_layer7.c
+--- a/net/netfilter/xt_layer7.c        1970-01-01 00:00:00.000000000 +0000
++++ b/net/netfilter/xt_layer7.c        2022-01-29 08:04:32.992637539 +0000
 @@ -0,0 +1,666 @@
 +/*
 +  Kernel module to match application layer (OSI layer 7) data in connections.
diff --git a/src/patches/rust-dirs-1.0.5-fix-metadata.patch b/src/patches/rust-dirs-1.0.5-fix-metadata.patch
new file mode 100644 (file)
index 0000000..0c51222
--- /dev/null
@@ -0,0 +1,13 @@
+--- dirs-1.0.5/Cargo.toml.orig 2022-01-28 11:09:27.494645462 +0000
++++ dirs-1.0.5/Cargo.toml      2022-01-28 11:09:36.902405967 +0000
+@@ -19,10 +19,5 @@
+ keywords = ["xdg", "basedir", "app_dirs", "path", "folder"]
+ license = "MIT OR Apache-2.0"
+ repository = "https://github.com/soc/dirs-rs"
+-[target."cfg(target_os = \"redox\")".dependencies.redox_users]
+-version = "0.3.0"
+ [target."cfg(unix)".dependencies.libc]
+ version = "0.2"
+-[target."cfg(windows)".dependencies.winapi]
+-version = "0.3"
+-features = ["knownfolders", "objbase", "shlobj", "winbase", "winerror"]
diff --git a/src/patches/rust-getrandom-0.2.4-fix-metadata.patch b/src/patches/rust-getrandom-0.2.4-fix-metadata.patch
new file mode 100644 (file)
index 0000000..083b6d6
--- /dev/null
@@ -0,0 +1,36 @@
+--- getrandom-0.2.4/Cargo.toml.orig    2022-01-27 18:43:09.339254197 +0000
++++ getrandom-0.2.4/Cargo.toml 2022-01-27 18:44:42.583701271 +0000
+@@ -20,33 +20,13 @@
+ [target.'cfg(unix)'.dependencies]
+ libc = { version = "0.2.64", default-features = false }
+-[target.'cfg(target_os = "wasi")'.dependencies]
+-wasi = "0.10"
+-
+-[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
+-wasm-bindgen = { version = "0.2.62", default-features = false, optional = true }
+-js-sys = { version = "0.3", optional = true }
+-[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies]
+-wasm-bindgen-test = "0.3.18"
+-
+ [features]
+ # Implement std-only traits for getrandom::Error
+ std = []
+ # Feature to enable fallback RDRAND-based implementation on x86/x86_64
+ rdrand = []
+-# Feature to enable JavaScript bindings on wasm32-unknown-unknown
+-js = ["wasm-bindgen", "js-sys"]
+ # Feature to enable custom RNG implementations
+ custom = []
+-# Unstable feature to support being a libstd dependency
+-rustc-dep-of-std = [
+-  "compiler_builtins",
+-  "core",
+-  "libc/rustc-dep-of-std",
+-  "wasi/rustc-dep-of-std",
+-]
+-# Unstable/test-only feature to run wasm-bindgen tests in a browser
+-test-in-browser = []
+ [package.metadata.docs.rs]
+ features = ["std", "custom"]
diff --git a/src/patches/rust-home-0.5.3-fix-metadata.patch b/src/patches/rust-home-0.5.3-fix-metadata.patch
new file mode 100644 (file)
index 0000000..78e154a
--- /dev/null
@@ -0,0 +1,14 @@
+--- home-0.5.3/Cargo.toml.orig 2022-01-28 09:48:10.902178349 +0000
++++ home-0.5.3/Cargo.toml      2022-01-28 09:48:19.413558260 +0000
+@@ -15,11 +15,3 @@
+ readme = "README.md"
+ repository = "https://github.com/brson/home"
+ description = "Shared definitions of home directories"
+-
+-[target."cfg(windows)".dependencies.winapi]
+-version = "0.3"
+-features = [
+-    "shlobj",
+-    "std",
+-    "winerror",
+-]
diff --git a/src/patches/rust-num_cpus-1.13.1-fix-metadata.patch b/src/patches/rust-num_cpus-1.13.1-fix-metadata.patch
new file mode 100644 (file)
index 0000000..8d5f5bf
--- /dev/null
@@ -0,0 +1,10 @@
+--- num_cpus-1.13.1/Cargo.toml.orig    2022-01-28 14:11:47.332191720 +0000
++++ num_cpus-1.13.1/Cargo.toml 2022-01-28 14:11:52.848099901 +0000
+@@ -20,7 +20,5 @@
+ categories = ["hardware-support"]
+ license = "MIT OR Apache-2.0"
+ repository = "https://github.com/seanmonstar/num_cpus"
+-[target."cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))".dependencies.hermit-abi]
+-version = "0.1.3"
+ [target."cfg(not(windows))".dependencies.libc]
+ version = "0.2.26"
diff --git a/src/patches/rust-parking_lot_core-0.8.5-fix-metadata.patch b/src/patches/rust-parking_lot_core-0.8.5-fix-metadata.patch
new file mode 100644 (file)
index 0000000..a42273a
--- /dev/null
@@ -0,0 +1,13 @@
+--- parking_lot_core-0.8.5/Cargo.toml.orig     2022-01-28 15:27:51.382373138 +0000
++++ parking_lot_core-0.8.5/Cargo.toml  2022-01-28 15:28:01.218817389 +0000
+@@ -43,10 +43,5 @@
+ [features]
+ deadlock_detection = ["petgraph", "thread-id", "backtrace"]
+ nightly = []
+-[target."cfg(target_os = \"redox\")".dependencies.redox_syscall]
+-version = "0.2.8"
+ [target."cfg(unix)".dependencies.libc]
+ version = "0.2.95"
+-[target."cfg(windows)".dependencies.winapi]
+-version = "0.3.9"
+-features = ["winnt", "ntstatus", "minwindef", "winerror", "winbase", "errhandlingapi", "handleapi"]
diff --git a/src/patches/rust-rand-0.4.6-fix-metadata.patch b/src/patches/rust-rand-0.4.6-fix-metadata.patch
new file mode 100644 (file)
index 0000000..09aa60c
--- /dev/null
@@ -0,0 +1,18 @@
+--- rand-0.4.6/Cargo.toml.orig 2022-01-28 14:06:03.486357507 +0000
++++ rand-0.4.6/Cargo.toml      2022-01-28 14:06:19.606044332 +0000
+@@ -25,15 +25,5 @@
+ [target.'cfg(unix)'.dependencies]
+ libc = { version = "0.2", optional = true }
+-[target.'cfg(windows)'.dependencies]
+-winapi = { version = "0.3", features = ["minwindef", "ntsecapi", "profileapi", "winnt"] }
+-
+ [workspace]
+ members = ["rand-derive"]
+-
+-[target.'cfg(target_os = "fuchsia")'.dependencies]
+-fuchsia-cprng = "0.1.0"
+-
+-[target.'cfg(target_env = "sgx")'.dependencies]
+-rdrand = "0.4.0"
+-rand_core = { version = "0.3", default-features = false }
diff --git a/src/patches/rust-remove_dir_all-0.5.3-fix-metadata.patch b/src/patches/rust-remove_dir_all-0.5.3-fix-metadata.patch
new file mode 100644 (file)
index 0000000..2ceb3b6
--- /dev/null
@@ -0,0 +1,9 @@
+--- remove_dir_all-0.5.3/Cargo.toml.orig       2022-01-28 14:45:52.179136723 +0000
++++ remove_dir_all-0.5.3/Cargo.toml    2022-01-28 14:46:03.559249000 +0000
+@@ -23,6 +23,4 @@
+ repository = "https://github.com/XAMPPRocky/remove_dir_all.git"
+ [dev-dependencies.doc-comment]
+ version = "0.3"
+-[target."cfg(windows)".dependencies.winapi]
+-version = "0.3"
+ features = ["std", "errhandlingapi", "winerror", "fileapi", "winbase"]
diff --git a/src/patches/rust-same-file-1.0.6-fix-metadata.patch b/src/patches/rust-same-file-1.0.6-fix-metadata.patch
new file mode 100644 (file)
index 0000000..4c5d061
--- /dev/null
@@ -0,0 +1,8 @@
+--- same-file-1.0.6/Cargo.toml.orig    2022-01-28 10:46:49.087608618 +0000
++++ same-file-1.0.6/Cargo.toml 2022-01-28 10:47:01.307598832 +0000
+@@ -25,5 +25,3 @@
+ repository = "https://github.com/BurntSushi/same-file"
+ [dev-dependencies.doc-comment]
+ version = "0.3"
+-[target."cfg(windows)".dependencies.winapi-util]
+-version = "0.1.1"
diff --git a/src/patches/rust-termcolor-1.1.2-fix-metadata.patch b/src/patches/rust-termcolor-1.1.2-fix-metadata.patch
new file mode 100644 (file)
index 0000000..0193d74
--- /dev/null
@@ -0,0 +1,10 @@
+--- termcolor-1.1.2/Cargo.toml.orig    2022-01-28 14:51:30.895317372 +0000
++++ termcolor-1.1.2/Cargo.toml 2022-01-28 14:51:36.466706492 +0000
+@@ -27,7 +27,3 @@
+ [lib]
+ name = "termcolor"
+ bench = false
+-
+-[dev-dependencies]
+-[target."cfg(windows)".dependencies.winapi-util]
+-version = "0.1.3"
diff --git a/src/patches/rust-walkdir-2.3.2-fix-metadata.patch b/src/patches/rust-walkdir-2.3.2-fix-metadata.patch
new file mode 100644 (file)
index 0000000..5d804a2
--- /dev/null
@@ -0,0 +1,17 @@
+--- walkdir-2.3.2/Cargo.toml.orig      2022-01-28 10:48:41.943483058 +0000
++++ walkdir-2.3.2/Cargo.toml   2022-01-28 10:48:54.391464719 +0000
+@@ -28,14 +28,6 @@
+ version = "1.0.1"
+ [dev-dependencies.doc-comment]
+ version = "0.3"
+-[target."cfg(windows)".dependencies.winapi]
+-version = "0.3"
+-features = ["std", "winnt"]
+-
+-[target."cfg(windows)".dependencies.winapi-util]
+-version = "0.1.1"
+-[badges.appveyor]
+-repository = "BurntSushi/walkdir"
+ [badges.travis-ci]
+ repository = "BurntSushi/walkdir"
diff --git a/src/patches/shadow-4.11.1-suppress_installation_of_groups.patch b/src/patches/shadow-4.11.1-suppress_installation_of_groups.patch
new file mode 100644 (file)
index 0000000..cee41ab
--- /dev/null
@@ -0,0 +1,279 @@
+diff -Naur shadow-4.11.1-orig/man/cs/Makefile.in shadow-4.11.1/man/cs/Makefile.in
+--- shadow-4.11.1-orig/man/cs/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/cs/Makefile.in   2022-01-17 13:04:13.758312001 +0100
+@@ -326,12 +326,12 @@
+       man8/groupadd.8 \
+       man8/groupdel.8 \
+       man8/groupmod.8 \
+-      man1/groups.1 \
++      man1/ \
+       man8/grpck.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+       man8/nologin.8 \
+-      man5/passwd.5 \
++      man5/ \
+       man5/shadow.5 \
+       man1/su.1 \
+       man8/vipw.8
+diff -Naur shadow-4.11.1-orig/man/da/Makefile.in shadow-4.11.1/man/da/Makefile.in
+--- shadow-4.11.1-orig/man/da/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/da/Makefile.in   2022-01-17 13:05:29.513200259 +0100
+@@ -323,7 +323,7 @@
+ top_srcdir = @top_srcdir@
+ # 2012.01.28 - activate manpages with more than 50% translated messages
+-man_MANS = man1/chfn.1 man8/groupdel.8 man1/groups.1 man5/gshadow.5 \
++man_MANS = man1/chfn.1 man8/groupdel.8 man1/ man5/gshadow.5 \
+       man8/logoutd.8 man1/newgrp.1 man8/nologin.8 man1/sg.1 \
+       man8/vigr.8 man8/vipw.8 $(am__append_1)
+ man_nopam = 
+diff -Naur shadow-4.11.1-orig/man/de/Makefile.in shadow-4.11.1/man/de/Makefile.in
+--- shadow-4.11.1-orig/man/de/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/de/Makefile.in   2022-01-17 13:06:43.188118562 +0100
+@@ -324,11 +324,11 @@
+ top_srcdir = @top_srcdir@
+ man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
+       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
+-      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
+       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
+-      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
++      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
+       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
+       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
+       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
+diff -Naur shadow-4.11.1-orig/man/es/Makefile.in shadow-4.11.1/man/es/Makefile.in
+--- shadow-4.11.1-orig/man/es/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/es/Makefile.in   2022-01-17 13:07:24.967505172 +0100
+@@ -292,7 +292,7 @@
+ #     man1/login.1 \
+ #     man1/newgrp.1 \
+ #     man1/passwd.1 \
+-#     man5/passwd.5 \
++#     man5/ \
+ #     man1/su.1 \
+ #     man8/vigr.8 \
+ #     man8/vipw.8
+diff -Naur shadow-4.11.1-orig/man/fr/Makefile.in shadow-4.11.1/man/fr/Makefile.in
+--- shadow-4.11.1-orig/man/fr/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/fr/Makefile.in   2022-01-17 13:08:52.850214886 +0100
+@@ -326,11 +326,11 @@
+ top_srcdir = @top_srcdir@
+ man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
+       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
+-      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++    man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
+       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
+-      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
++      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
+       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
+       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
+       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
+diff -Naur shadow-4.11.1-orig/man/hu/Makefile.in shadow-4.11.1/man/hu/Makefile.in
+--- shadow-4.11.1-orig/man/hu/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/hu/Makefile.in   2022-01-17 13:09:43.917465155 +0100
+@@ -321,12 +321,12 @@
+ man_MANS = \
+       man1/chsh.1 \
+       man1/gpasswd.1 \
+-      man1/groups.1 \
++      man1/ \
+       man8/lastlog.8 \
+       man1/login.1 \
+       man1/newgrp.1 \
+       man1/passwd.1 \
+-      man5/passwd.5 \
++      man5/ \
+       man1/sg.1 \
+       man1/su.1
+diff -Naur shadow-4.11.1-orig/man/it/Makefile.in shadow-4.11.1/man/it/Makefile.in
+--- shadow-4.11.1-orig/man/it/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/it/Makefile.in   2022-01-17 13:10:43.664587974 +0100
+@@ -324,11 +324,11 @@
+ top_srcdir = @top_srcdir@
+ man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
+       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
+-      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
+       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
+-      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
++      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
+       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
+       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
+       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
+diff -Naur shadow-4.11.1-orig/man/ja/Makefile.in shadow-4.11.1/man/ja/Makefile.in
+--- shadow-4.11.1-orig/man/ja/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/ja/Makefile.in   2022-01-17 13:11:27.991937191 +0100
+@@ -322,10 +322,10 @@
+ top_srcdir = @top_srcdir@
+ man_MANS = man1/chage.1 man1/chfn.1 man8/chpasswd.8 man1/chsh.1 \
+       man1/expiry.1 man5/faillog.5 man8/faillog.8 man1/gpasswd.1 \
+-      man8/groupadd.8 man8/groupdel.8 man8/groupmod.8 man1/groups.1 \
++      man8/groupadd.8 man8/groupdel.8 man8/groupmod.8 man1/ \
+       man8/grpck.8 man8/grpconv.8 man8/grpunconv.8 man8/lastlog.8 \
+       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
+-      man8/newusers.8 man1/passwd.1 man5/passwd.5 man8/pwck.8 \
++      man8/newusers.8 man1/passwd.1 man5/ man8/pwck.8 \
+       man8/pwconv.8 man8/pwunconv.8 man1/sg.1 man5/shadow.5 \
+       man1/su.1 man5/suauth.5 man8/useradd.8 man8/userdel.8 \
+       man8/usermod.8 man8/vigr.8 man8/vipw.8 $(am__append_1)
+diff -Naur shadow-4.11.1-orig/man/ko/Makefile.in shadow-4.11.1/man/ko/Makefile.in
+--- shadow-4.11.1-orig/man/ko/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/ko/Makefile.in   2022-01-17 13:12:18.603194118 +0100
+@@ -321,9 +321,9 @@
+ man_MANS = \
+       man1/chfn.1 \
+       man1/chsh.1 \
+-      man1/groups.1 \
++      man1/ \
+       man1/login.1 \
+-      man5/passwd.5 \
++      man5/ \
+       man1/su.1 \
+       man8/vigr.8 \
+       man8/vipw.8
+diff -Naur shadow-4.11.1-orig/man/Makefile.in shadow-4.11.1/man/Makefile.in
+--- shadow-4.11.1-orig/man/Makefile.in 2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/Makefile.in      2022-01-17 13:13:43.341950016 +0100
+@@ -392,11 +392,11 @@
+ @USE_NLS_TRUE@SUBDIRS = po cs da de es fi fr hu id it ja ko pl pt_BR ru sv tr zh_CN zh_TW
+ man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
+       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
+-      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
+       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
+-      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
++      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
+       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
+       man3/shadow.3 man5/shadow.5 man5/suauth.5 man8/useradd.8 \
+       man8/userdel.8 man8/usermod.8 man8/vigr.8 man8/vipw.8 \
+diff -Naur shadow-4.11.1-orig/man/pl/Makefile.in shadow-4.11.1/man/pl/Makefile.in
+--- shadow-4.11.1-orig/man/pl/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/pl/Makefile.in   2022-01-17 13:14:42.781077363 +0100
+@@ -325,8 +325,8 @@
+ # 2012.01.28 - activate manpages with more than 50% translated messages
+ man_MANS = man1/chage.1 man1/chsh.1 man1/expiry.1 man5/faillog.5 \
+-      man8/faillog.8 man3/getspnam.3 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++      man8/faillog.8 man3/ man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man8/lastlog.8 man8/logoutd.8 man1/newgrp.1 man1/sg.1 \
+       man3/shadow.3 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
+       man8/vipw.8 $(am__append_1)
+diff -Naur shadow-4.11.1-orig/man/pt_BR/Makefile.in shadow-4.11.1/man/pt_BR/Makefile.in
+--- shadow-4.11.1-orig/man/pt_BR/Makefile.in   2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/pt_BR/Makefile.in        2022-01-17 13:15:09.668682617 +0100
+@@ -323,7 +323,7 @@
+       man8/groupadd.8 \
+       man8/groupdel.8 \
+       man8/groupmod.8 \
+-      man5/passwd.5 \
++      man5/ \
+       man5/shadow.5
+ EXTRA_DIST = $(man_MANS)
+diff -Naur shadow-4.11.1-orig/man/ru/Makefile.in shadow-4.11.1/man/ru/Makefile.in
+--- shadow-4.11.1-orig/man/ru/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/ru/Makefile.in   2022-01-17 13:16:07.647831387 +0100
+@@ -324,11 +324,11 @@
+ top_srcdir = @top_srcdir@
+ man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
+       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
+-      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
+       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
+-      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
++      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
+       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
+       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
+       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
+diff -Naur shadow-4.11.1-orig/man/sv/Makefile.in shadow-4.11.1/man/sv/Makefile.in
+--- shadow-4.11.1-orig/man/sv/Makefile.in      2022-01-03 04:09:23.000000000 +0100
++++ shadow-4.11.1/man/sv/Makefile.in   2022-01-17 13:16:58.503084748 +0100
+@@ -325,10 +325,10 @@
+ # 2012.01.28 - activate manpages with more than 50% translated messages
+ man_MANS = man1/chage.1 man1/chsh.1 man1/expiry.1 man5/faillog.5 \
+-      man8/faillog.8 man3/getspnam.3 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++      man8/faillog.8 man3/ man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man5/gshadow.5 man8/lastlog.8 man8/logoutd.8 man1/newgrp.1 \
+-      man8/nologin.8 man1/passwd.1 man5/passwd.5 man8/pwck.8 \
++      man8/nologin.8 man1/passwd.1 man5/ man8/pwck.8 \
+       man1/sg.1 man3/shadow.3 man5/suauth.5 man8/userdel.8 \
+       man8/vigr.8 man8/vipw.8 $(am__append_1)
+ man_nopam = \
+diff -Naur shadow-4.11.1-orig/man/tr/Makefile.in shadow-4.11.1/man/tr/Makefile.in
+--- shadow-4.11.1-orig/man/tr/Makefile.in      2022-01-03 04:09:24.000000000 +0100
++++ shadow-4.11.1/man/tr/Makefile.in   2022-01-17 13:17:28.478644677 +0100
+@@ -326,7 +326,7 @@
+       man8/groupmod.8 \
+       man1/login.1 \
+       man1/passwd.1 \
+-      man5/passwd.5 \
++      man5/ \
+       man5/shadow.5 \
+       man1/su.1 \
+       man8/useradd.8 \
+diff -Naur shadow-4.11.1-orig/man/zh_CN/Makefile.in shadow-4.11.1/man/zh_CN/Makefile.in
+--- shadow-4.11.1-orig/man/zh_CN/Makefile.in   2022-01-03 04:09:24.000000000 +0100
++++ shadow-4.11.1/man/zh_CN/Makefile.in        2022-01-17 13:18:26.633790862 +0100
+@@ -324,11 +324,11 @@
+ top_srcdir = @top_srcdir@
+ man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
+       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
+-      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
+-      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
++      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
++      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
+       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
+       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
+-      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
++      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
+       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
+       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
+       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
+diff -Naur shadow-4.11.1-orig/man/zh_TW/Makefile.in shadow-4.11.1/man/zh_TW/Makefile.in
+--- shadow-4.11.1-orig/man/zh_TW/Makefile.in   2022-01-03 04:09:24.000000000 +0100
++++ shadow-4.11.1/man/zh_TW/Makefile.in        2022-01-17 13:18:55.225371102 +0100
+@@ -328,7 +328,7 @@
+       man8/groupadd.8 \
+       man8/groupdel.8 \
+       man8/groupmod.8 \
+-      man5/passwd.5 \
++      man5/ \
+       man1/su.1 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+diff -Naur shadow-4.11.1-orig/src/Makefile.in shadow-4.11.1/src/Makefile.in
+--- shadow-4.11.1-orig/src/Makefile.in 2022-01-03 04:09:24.000000000 +0100
++++ shadow-4.11.1/src/Makefile.in      2022-01-17 13:20:19.360135889 +0100
+@@ -88,8 +88,7 @@
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-bin_PROGRAMS = groups$(EXEEXT) login$(EXEEXT) $(am__EXEEXT_1) \
+-      $(am__EXEEXT_2)
++bin_PROGRAMS = login$(EXEEXT) $(am__EXEEXT_1)
+ sbin_PROGRAMS = nologin$(EXEEXT)
+ ubin_PROGRAMS = faillog$(EXEEXT) lastlog$(EXEEXT) chage$(EXEEXT) \
+       chfn$(EXEEXT) chsh$(EXEEXT) expiry$(EXEEXT) gpasswd$(EXEEXT) \
diff --git a/src/patches/shadow-4.2.1-suppress_installation_of_groups.patch b/src/patches/shadow-4.2.1-suppress_installation_of_groups.patch
deleted file mode 100644 (file)
index f9f09c4..0000000
+++ /dev/null
@@ -1,446 +0,0 @@
-diff -crB shadow-4.2.1-a/man/cs/Makefile.in shadow-4.2.1-b/man/cs/Makefile.in
-*** shadow-4.2.1-a/man/cs/Makefile.in  2014-05-09 16:49:46.000000000 +0000
---- shadow-4.2.1-b/man/cs/Makefile.in  2016-03-13 10:47:55.924166976 +0000
-***************
-*** 300,311 ****
-       man8/groupadd.8 \
-       man8/groupdel.8 \
-       man8/groupmod.8 \
-!      man1/groups.1 \
-       man8/grpck.8 \
-       man5/gshadow.5 \
-       man8/lastlog.8 \
-       man8/nologin.8 \
-!      man5/passwd.5 \
-       man5/shadow.5 \
-       man1/su.1 \
-       man8/vipw.8
---- 300,311 ----
-       man8/groupadd.8 \
-       man8/groupdel.8 \
-       man8/groupmod.8 \
-!      man1/ \
-       man8/grpck.8 \
-       man5/gshadow.5 \
-       man8/lastlog.8 \
-       man8/nologin.8 \
-!      man5/ \
-       man5/shadow.5 \
-       man1/su.1 \
-       man8/vipw.8
-diff -crB shadow-4.2.1-a/man/da/Makefile.in shadow-4.2.1-b/man/da/Makefile.in
-*** shadow-4.2.1-a/man/da/Makefile.in  2014-05-09 16:49:46.000000000 +0000
---- shadow-4.2.1-b/man/da/Makefile.in  2016-03-13 10:47:55.928166977 +0000
-***************
-*** 298,304 ****
-  top_srcdir = @top_srcdir@
-  
-  # 2012.01.28 - activate manpages with more than 50% translated messages
-! man_MANS = man1/chfn.1 man8/groupdel.8 man1/groups.1 man5/gshadow.5 \
-       man8/logoutd.8 man1/newgrp.1 man8/nologin.8 man1/sg.1 \
-       man8/vigr.8 man8/vipw.8 $(am__append_1)
-  man_nopam = 
---- 298,304 ----
-  top_srcdir = @top_srcdir@
-  
-  # 2012.01.28 - activate manpages with more than 50% translated messages
-! man_MANS = man1/chfn.1 man8/groupdel.8 man1/ man5/gshadow.5 \
-       man8/logoutd.8 man1/newgrp.1 man8/nologin.8 man1/sg.1 \
-       man8/vigr.8 man8/vipw.8 $(am__append_1)
-  man_nopam = 
-diff -crB shadow-4.2.1-a/man/de/Makefile.in shadow-4.2.1-b/man/de/Makefile.in
-*** shadow-4.2.1-a/man/de/Makefile.in  2014-05-09 16:49:46.000000000 +0000
---- shadow-4.2.1-b/man/de/Makefile.in  2016-03-13 10:47:55.916166976 +0000
-***************
-*** 299,309 ****
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
---- 299,309 ----
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-diff -crB shadow-4.2.1-a/man/es/Makefile.in shadow-4.2.1-b/man/es/Makefile.in
-*** shadow-4.2.1-a/man/es/Makefile.in  2014-05-09 16:49:46.000000000 +0000
---- shadow-4.2.1-b/man/es/Makefile.in  2016-03-13 10:47:55.872166975 +0000
-***************
-*** 266,272 ****
-  #    man1/login.1 \
-  #    man1/newgrp.1 \
-  #    man1/passwd.1 \
-! #    man5/passwd.5 \
-  #    man1/su.1 \
-  #    man8/vigr.8 \
-  #    man8/vipw.8
---- 266,272 ----
-  #    man1/login.1 \
-  #    man1/newgrp.1 \
-  #    man1/passwd.1 \
-! #    man5/ \
-  #    man1/su.1 \
-  #    man8/vigr.8 \
-  #    man8/vipw.8
-diff -crB shadow-4.2.1-a/man/fr/Makefile.in shadow-4.2.1-b/man/fr/Makefile.in
-*** shadow-4.2.1-a/man/fr/Makefile.in  2014-05-09 16:49:46.000000000 +0000
---- shadow-4.2.1-b/man/fr/Makefile.in  2016-03-13 10:47:55.984166978 +0000
-***************
-*** 301,311 ****
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
---- 301,311 ----
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-diff -crB shadow-4.2.1-a/man/hu/Makefile.in shadow-4.2.1-b/man/hu/Makefile.in
-*** shadow-4.2.1-a/man/hu/Makefile.in  2014-05-09 16:49:46.000000000 +0000
---- shadow-4.2.1-b/man/hu/Makefile.in  2016-03-13 10:47:55.972166978 +0000
-***************
-*** 295,306 ****
-  man_MANS = \
-       man1/chsh.1 \
-       man1/gpasswd.1 \
-!      man1/groups.1 \
-       man8/lastlog.8 \
-       man1/login.1 \
-       man1/newgrp.1 \
-       man1/passwd.1 \
-!      man5/passwd.5 \
-       man1/sg.1 \
-       man1/su.1
-  
---- 295,306 ----
-  man_MANS = \
-       man1/chsh.1 \
-       man1/gpasswd.1 \
-!      man1/ \
-       man8/lastlog.8 \
-       man1/login.1 \
-       man1/newgrp.1 \
-       man1/passwd.1 \
-!      man5/ \
-       man1/sg.1 \
-       man1/su.1
-  
-diff -crB shadow-4.2.1-a/man/it/Makefile.in shadow-4.2.1-b/man/it/Makefile.in
-*** shadow-4.2.1-a/man/it/Makefile.in  2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/it/Makefile.in  2016-03-13 10:47:55.896166976 +0000
-***************
-*** 299,309 ****
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
---- 299,309 ----
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-diff -crB shadow-4.2.1-a/man/ja/Makefile.in shadow-4.2.1-b/man/ja/Makefile.in
-*** shadow-4.2.1-a/man/ja/Makefile.in  2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/ja/Makefile.in  2016-03-13 10:47:55.932166977 +0000
-***************
-*** 296,305 ****
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chpasswd.8 man1/chsh.1 \
-       man1/expiry.1 man5/faillog.5 man8/faillog.8 man1/gpasswd.1 \
-!      man8/groupadd.8 man8/groupdel.8 man8/groupmod.8 man1/groups.1 \
-       man8/grpck.8 man8/grpconv.8 man8/grpunconv.8 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man1/passwd.1 man5/passwd.5 man8/pwck.8 \
-       man8/pwconv.8 man8/pwunconv.8 man1/sg.1 man5/shadow.5 \
-       man1/su.1 man5/suauth.5 man8/useradd.8 man8/userdel.8 \
-       man8/usermod.8 man8/vigr.8 man8/vipw.8 $(am__append_1)
---- 296,305 ----
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chpasswd.8 man1/chsh.1 \
-       man1/expiry.1 man5/faillog.5 man8/faillog.8 man1/gpasswd.1 \
-!      man8/groupadd.8 man8/groupdel.8 man8/groupmod.8 man1/ \
-       man8/grpck.8 man8/grpconv.8 man8/grpunconv.8 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man1/passwd.1 man5/ man8/pwck.8 \
-       man8/pwconv.8 man8/pwunconv.8 man1/sg.1 man5/shadow.5 \
-       man1/su.1 man5/suauth.5 man8/useradd.8 man8/userdel.8 \
-       man8/usermod.8 man8/vigr.8 man8/vipw.8 $(am__append_1)
-diff -crB shadow-4.2.1-a/man/ko/Makefile.in shadow-4.2.1-b/man/ko/Makefile.in
-*** shadow-4.2.1-a/man/ko/Makefile.in  2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/ko/Makefile.in  2016-03-13 10:47:55.940166977 +0000
-***************
-*** 295,303 ****
-  man_MANS = \
-       man1/chfn.1 \
-       man1/chsh.1 \
-!      man1/groups.1 \
-       man1/login.1 \
-!      man5/passwd.5 \
-       man1/su.1 \
-       man8/vigr.8 \
-       man8/vipw.8
---- 295,303 ----
-  man_MANS = \
-       man1/chfn.1 \
-       man1/chsh.1 \
-!      man1/ \
-       man1/login.1 \
-!      man5/ \
-       man1/su.1 \
-       man8/vigr.8 \
-       man8/vipw.8
-diff -crB shadow-4.2.1-a/man/Makefile.in shadow-4.2.1-b/man/Makefile.in
-*** shadow-4.2.1-a/man/Makefile.in     2014-05-09 16:49:46.000000000 +0000
---- shadow-4.2.1-b/man/Makefile.in     2016-03-13 10:47:55.880166976 +0000
-***************
-*** 365,375 ****
-  @USE_NLS_TRUE@SUBDIRS = po cs da de es fi fr hu id it ja ko pl pt_BR ru sv tr zh_CN zh_TW
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
---- 365,375 ----
-  @USE_NLS_TRUE@SUBDIRS = po cs da de es fi fr hu id it ja ko pl pt_BR ru sv tr zh_CN zh_TW
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-diff -crB shadow-4.2.1-a/man/pl/Makefile.in shadow-4.2.1-b/man/pl/Makefile.in
-*** shadow-4.2.1-a/man/pl/Makefile.in  2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/pl/Makefile.in  2016-03-13 10:47:55.912166976 +0000
-***************
-*** 300,307 ****
-  
-  # 2012.01.28 - activate manpages with more than 50% translated messages
-  man_MANS = man1/chage.1 man1/chsh.1 man1/expiry.1 man5/faillog.5 \
-!      man8/faillog.8 man3/getspnam.3 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man8/lastlog.8 man8/logoutd.8 man1/newgrp.1 man1/sg.1 \
-       man3/shadow.3 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-       man8/vipw.8 $(am__append_1)
---- 300,307 ----
-  
-  # 2012.01.28 - activate manpages with more than 50% translated messages
-  man_MANS = man1/chage.1 man1/chsh.1 man1/expiry.1 man5/faillog.5 \
-!      man8/faillog.8 man3/ man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man8/lastlog.8 man8/logoutd.8 man1/newgrp.1 man1/sg.1 \
-       man3/shadow.3 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-       man8/vipw.8 $(am__append_1)
-diff -crB shadow-4.2.1-a/man/pt_BR/Makefile.in shadow-4.2.1-b/man/pt_BR/Makefile.in
-*** shadow-4.2.1-a/man/pt_BR/Makefile.in       2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/pt_BR/Makefile.in       2016-03-13 10:47:55.904166976 +0000
-***************
-*** 297,303 ****
-       man8/groupadd.8 \
-       man8/groupdel.8 \
-       man8/groupmod.8 \
-!      man5/passwd.5 \
-       man5/shadow.5
-  
-  EXTRA_DIST = $(man_MANS)
---- 297,303 ----
-       man8/groupadd.8 \
-       man8/groupdel.8 \
-       man8/groupmod.8 \
-!      man5/ \
-       man5/shadow.5
-  
-  EXTRA_DIST = $(man_MANS)
-diff -crB shadow-4.2.1-a/man/ru/Makefile.in shadow-4.2.1-b/man/ru/Makefile.in
-*** shadow-4.2.1-a/man/ru/Makefile.in  2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/ru/Makefile.in  2016-03-13 10:47:55.944166977 +0000
-***************
-*** 299,309 ****
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
---- 299,309 ----
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-diff -crB shadow-4.2.1-a/man/sv/Makefile.in shadow-4.2.1-b/man/sv/Makefile.in
-*** shadow-4.2.1-a/man/sv/Makefile.in  2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/sv/Makefile.in  2016-03-13 10:47:55.988166978 +0000
-***************
-*** 300,309 ****
-  
-  # 2012.01.28 - activate manpages with more than 50% translated messages
-  man_MANS = man1/chage.1 man1/chsh.1 man1/expiry.1 man5/faillog.5 \
-!      man8/faillog.8 man3/getspnam.3 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man5/gshadow.5 man8/lastlog.8 man8/logoutd.8 man1/newgrp.1 \
-!      man8/nologin.8 man1/passwd.1 man5/passwd.5 man8/pwck.8 \
-       man1/sg.1 man3/shadow.3 man5/suauth.5 man8/userdel.8 \
-       man8/vigr.8 man8/vipw.8 $(am__append_1)
-  man_nopam = \
---- 300,309 ----
-  
-  # 2012.01.28 - activate manpages with more than 50% translated messages
-  man_MANS = man1/chage.1 man1/chsh.1 man1/expiry.1 man5/faillog.5 \
-!      man8/faillog.8 man3/ man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man5/gshadow.5 man8/lastlog.8 man8/logoutd.8 man1/newgrp.1 \
-!      man8/nologin.8 man1/passwd.1 man5/ man8/pwck.8 \
-       man1/sg.1 man3/shadow.3 man5/suauth.5 man8/userdel.8 \
-       man8/vigr.8 man8/vipw.8 $(am__append_1)
-  man_nopam = \
-diff -crB shadow-4.2.1-a/man/tr/Makefile.in shadow-4.2.1-b/man/tr/Makefile.in
-*** shadow-4.2.1-a/man/tr/Makefile.in  2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/tr/Makefile.in  2016-03-13 10:47:55.964166977 +0000
-***************
-*** 300,306 ****
-       man8/groupmod.8 \
-       man1/login.1 \
-       man1/passwd.1 \
-!      man5/passwd.5 \
-       man5/shadow.5 \
-       man1/su.1 \
-       man8/useradd.8 \
---- 300,306 ----
-       man8/groupmod.8 \
-       man1/login.1 \
-       man1/passwd.1 \
-!      man5/ \
-       man5/shadow.5 \
-       man1/su.1 \
-       man8/useradd.8 \
-diff -crB shadow-4.2.1-a/man/zh_CN/Makefile.in shadow-4.2.1-b/man/zh_CN/Makefile.in
-*** shadow-4.2.1-a/man/zh_CN/Makefile.in       2014-05-09 16:49:47.000000000 +0000
---- shadow-4.2.1-b/man/zh_CN/Makefile.in       2016-03-13 10:47:55.952166977 +0000
-***************
-*** 299,309 ****
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/getspnam.3 man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/groups.1 man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/passwd.5 \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
---- 299,309 ----
-  top_srcdir = @top_srcdir@
-  man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
-       man1/chsh.1 man1/expiry.1 man5/faillog.5 man8/faillog.8 \
-!      man3/ man1/gpasswd.1 man8/groupadd.8 man8/groupdel.8 \
-!      man8/groupmems.8 man8/groupmod.8 man1/ man8/grpck.8 \
-       man8/grpconv.8 man8/grpunconv.8 man5/gshadow.5 man8/lastlog.8 \
-       man1/login.1 man5/login.defs.5 man8/logoutd.8 man1/newgrp.1 \
-!      man8/newusers.8 man8/nologin.8 man1/passwd.1 man5/ \
-       man8/pwck.8 man8/pwconv.8 man8/pwunconv.8 man1/sg.1 \
-       man3/shadow.3 man5/shadow.5 man1/su.1 man5/suauth.5 \
-       man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
-diff -crB shadow-4.2.1-a/man/zh_TW/Makefile.in shadow-4.2.1-b/man/zh_TW/Makefile.in
-*** shadow-4.2.1-a/man/zh_TW/Makefile.in       2014-05-09 16:49:48.000000000 +0000
---- shadow-4.2.1-b/man/zh_TW/Makefile.in       2016-03-13 10:47:55.956166977 +0000
-***************
-*** 302,308 ****
-       man8/groupadd.8 \
-       man8/groupdel.8 \
-       man8/groupmod.8 \
-!      man5/passwd.5 \
-       man1/su.1 \
-       man8/useradd.8 \
-       man8/userdel.8 \
---- 302,308 ----
-       man8/groupadd.8 \
-       man8/groupdel.8 \
-       man8/groupmod.8 \
-!      man5/ \
-       man1/su.1 \
-       man8/useradd.8 \
-       man8/userdel.8 \
-diff -crB shadow-4.2.1-a/src/Makefile.in shadow-4.2.1-b/src/Makefile.in
-*** shadow-4.2.1-a/src/Makefile.in     2014-05-09 16:49:48.000000000 +0000
---- shadow-4.2.1-b/src/Makefile.in     2016-03-13 10:47:38.824166600 +0000
-***************
-*** 78,84 ****
-  POST_UNINSTALL = :
-  build_triplet = @build@
-  host_triplet = @host@
-! bin_PROGRAMS = groups$(EXEEXT) login$(EXEEXT) su$(EXEEXT)
-  sbin_PROGRAMS = nologin$(EXEEXT)
-  ubin_PROGRAMS = faillog$(EXEEXT) lastlog$(EXEEXT) chage$(EXEEXT) \
-       chfn$(EXEEXT) chsh$(EXEEXT) expiry$(EXEEXT) gpasswd$(EXEEXT) \
---- 78,84 ----
-  POST_UNINSTALL = :
-  build_triplet = @build@
-  host_triplet = @host@
-! bin_PROGRAMS = login$(EXEEXT) su$(EXEEXT)
-  sbin_PROGRAMS = nologin$(EXEEXT)
-  ubin_PROGRAMS = faillog$(EXEEXT) lastlog$(EXEEXT) chage$(EXEEXT) \
-       chfn$(EXEEXT) chsh$(EXEEXT) expiry$(EXEEXT) gpasswd$(EXEEXT) \
index dbe5b6849c3da172c83f4c42c69057cd34151863..10a2709074dfecc3575834d9a7970269b6501b65 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2018 IPFire Team  <info@ipfire.org>                           #
+# Copyright (C) 2018-2021 IPFire Team  <info@ipfire.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        #
@@ -26,6 +26,9 @@ require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/ids-functions.pl";
 require "${General::swroot}/lang.pl";
 
+# Hash to store the configured providers.
+my %providers = ();
+
 # The user and group name as which this script should be run.
 my $run_as = 'nobody';
 
@@ -39,6 +42,17 @@ if ( $> == 0 ) {
        POSIX::setuid( $uid );
 }
 
+# Check if the IDS lock file exists.
+# In this case the WUI or another instance currently is altering the
+# ruleset.
+if (-f "$IDS::ids_page_lock_file") {
+       # Store notice to the syslog.
+       &IDS::_log_to_syslog("Another process currently is altering the IDS ruleset.");
+
+       # Exit.
+       exit 0;
+}
+
 # Check if the red device is active.
 unless (-e "${General::swroot}/red/active") {
        # Store notice in the syslog.
@@ -63,20 +77,36 @@ if(&IDS::checkdiskspace()) {
 # Lock the IDS page.
 &IDS::lock_ids_page();
 
-# Call the download function and gather the new ruleset.
-if(&IDS::downloadruleset()) {
-       # Store error message for displaying in the WUI.
-       &IDS::_store_error_message("$Lang::tr{'could not download latest updates'}");
+# Grab the configured providers.
+&General::readhasharray("$IDS::providers_settings_file", \%providers);
 
-       # Unlock the IDS page.
-       &IDS::unlock_ids_page();
+# Loop through the array of available providers.
+foreach my $id (keys %providers) {
+       # Assign some nice variabled.
+       my $provider = $providers{$id}[0];
+       my $autoupdate_status = $providers{$id}[3];
 
-       # Exit.
-       exit 0;
-}
+       # Skip the provider if autoupdate is not enabled.
+       next unless($autoupdate_status eq "enabled");
+
+       # Call the download function and gather the new ruleset for the current processed provider.
+       if(&IDS::downloadruleset($provider)) {
+               # Store error message for displaying in the WUI.
+               &IDS::_store_error_message("$provider: $Lang::tr{'could not download latest updates'}");
+
+               # Unlock the IDS page.
+               &IDS::unlock_ids_page();
 
-# Set correct ownership for the downloaded tarball.
-&IDS::set_ownership("$IDS::rulestarball");
+               # Exit.
+               exit 0;
+       }
+
+       # Get path and name of the stored rules file or archive.
+       my $stored_file = &IDS::_get_dl_rulesfile($provider);
+
+       # Set correct ownership for the downloaded tarball.
+       &IDS::set_ownership("$stored_file");
+}
 
 # Call oinkmaster to alter the ruleset.
 &IDS::oinkmaster();
index a5288bf862cd6958e60b23668a5017c9538b26c0..1a55a4da9bf5d08601f96899885a90c84620c7c1 100755 (executable)
@@ -33,23 +33,30 @@ if [ "${?}" == "0" ]; then
        echo "Comment this and create it at initskript if needed !"
 fi
 
-grep -r '/x86_64' ./config/rootfiles/ --exclude gcc --exclude *linux* --exclude-dir oldcore --exclude-dir x86_64 >/dev/null 2>&1
+grep -r '/x86_64' ./config/rootfiles/ --exclude gcc --exclude rust-libc \
+    --exclude rust-ppv-lite86 --exclude rust-memchr --exclude *linux* \
+    --exclude-dir oldcore --exclude-dir x86_64 >/dev/null 2>&1
 if [ "${?}" == "0" ]; then
        echo "Error! '/x86_64' in rootfiles files found!"
-       grep -r '/x86_64' ./config/rootfiles/ --exclude gcc --exclude *linux* --exclude-dir oldcore --exclude-dir x86_64
+       grep -r '/x86_64' ./config/rootfiles/ --exclude gcc --exclude rust-libc \
+    --exclude rust-ppv-lite86 --exclude rust-memchr --exclude *linux* \
+    --exclude-dir oldcore --exclude-dir x86_64
        echo "Replace by xxxMACHINExxx !"
 fi
 
-grep -r '/armv5tel' ./config/rootfiles/ --exclude gcc --exclude-dir oldcore --exclude-dir armv5tel >/dev/null 2>&1
+grep -r '/armv6l' ./config/rootfiles/ --exclude gcc --exclude rust-libc \
+    --exclude-dir oldcore --exclude-dir armv5tel >/dev/null 2>&1
 if [ "${?}" == "0" ]; then
-       echo "Error! '/armv5tel' in rootfiles files found!"
-       grep -r '/armv5tel' ./config/rootfiles/ --exclude gcc --exclude-dir oldcore --exclude-dir armv5tel
+       echo "Error! '/armv6l' in rootfiles files found!"
+       grep -r '/armv6l' ./config/rootfiles/ --exclude gcc \
+    --exclude-dir oldcore --exclude-dir armv5tel
        echo "Replace by xxxMACHINExxx !"
 fi
 
-grep -r '/aarch64' ./config/rootfiles/ --exclude gcc --exclude gdb --exclude liburcu --exclude gdb --exclude-dir oldcore --exclude-dir aarch64 >/dev/null 2>&1
+grep -r '/aarch64' ./config/rootfiles/ --exclude gcc --exclude rust-libc --exclude gdb --exclude liburcu --exclude gdb --exclude-dir oldcore --exclude-dir aarch64 >/dev/null 2>&1
 if [ "${?}" == "0" ]; then
        echo "Error! '/aarch64' in rootfiles files found!"
-       grep -r '/aarch64' ./config/rootfiles/ --exclude gcc --exclude-dir oldcore --exclude-dir aarch64
+       grep -r '/aarch64' ./config/rootfiles/ --exclude gcc --exclude rust-libc \
+    --exclude-dir oldcore --exclude-dir aarch64
        echo "Replace by xxxMACHINExxx !"
 fi
diff --git a/tools/download-rust-crate b/tools/download-rust-crate
new file mode 100755 (executable)
index 0000000..bae6b60
--- /dev/null
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+set -o pipefail
+
+RUST_TEMPLATE="lfs/rust-rand"
+
+fetch_latest_version() {
+       local name="${1}"
+
+       if ! curl --silent "https://crates.io/api/v1/crates/${name}" | \
+                       jq --raw-output .crate.max_stable_version; then
+               echo "${0}: Could not find the latest stable version of ${name}" >&2
+               return 1
+       fi
+}
+
+main() {
+       local name="${1}"
+       local version="${2}"
+
+       if [ -z "${name}" ]; then
+               echo "${0}: You need to pass a name of a crate" >&2
+               return 2
+       fi
+
+       if [ -z "${version}" ]; then
+               version="$(fetch_latest_version "${name}")"
+               if [ -z "${version}" ]; then
+                       # error message has already been printed
+                       return 1
+               fi
+       fi
+
+       # Compose download URL
+       local url="https://crates.io/api/v1/crates/${name}/${version}/download"
+       local download="$(mktemp)"
+
+       # Perform download
+       if ! curl -L "${url}" -o "${download}"; then
+               echo "${0}: Could not download ${name}-${version}" >&2
+               unlink "${download}"
+               return 1
+       fi
+
+       # Check if download is an orderly tar file
+       if ! tar tvf "${download}" &>/dev/null; then
+               echo "${0}: Download is not a tar file" >&2
+               unlink "${download}"
+               return 1
+       fi
+
+       # Hash the downloaded file
+       local md5sum="$(md5sum "${download}" | awk '{ print $1 }')"
+       if [ -z "${md5sum}" ]; then
+               echo "${0}: Could not hash download" >&2
+               unlink "${download}"
+               return 1
+       fi
+
+       local filename="cache/${name}-${version}.tar.gz"
+
+       # Move to final destination
+       if ! install -m 644 "${download}" "${filename}"; then
+               echo "${0}: Could not move downloaded file to ${filename}" >&2
+               unlink "${download}"
+               return 1
+       fi
+
+       # Remove download
+       unlink "${download}"
+
+       # Create a new LFS file
+       sed < "${RUST_TEMPLATE}" > "lfs/rust-${name}" \
+               -e "s/^VER.*/VER        = ${version}/" \
+               -e "s/^THISAPP.*/THISAPP    = ${name}-\$(VER)/" \
+               -e "s/^\$(DL_FILE)_MD5.*/\$(DL_FILE)_MD5 = ${md5sum}/"
+
+       echo "Done"
+       return 0
+}
+
+main "$@" || exit $?