about summary refs log tree commit diff
path: root/etc/portage
diff options
context:
space:
mode:
Diffstat (limited to 'etc/portage')
-rw-r--r--etc/portage/env/ccache.conf3
-rw-r--r--etc/portage/env/debug.conf3
-rw-r--r--etc/portage/env/gcc.conf5
-rw-r--r--etc/portage/env/llvm.conf7
-rw-r--r--etc/portage/env/tmp.conf1
-rw-r--r--etc/portage/make.conf42
l---------etc/portage/make.profile1
-rw-r--r--etc/portage/modules1
-rw-r--r--etc/portage/package.accept_keywords/00-misc.conf8
-rw-r--r--etc/portage/package.accept_keywords/10-overlay.conf0
-rw-r--r--etc/portage/package.accept_keywords/99-auto.conf0
-rw-r--r--etc/portage/package.env/00-misc.conf17
-rw-r--r--etc/portage/package.env/99-auto.conf0
-rw-r--r--etc/portage/package.mask/00-misc.conf0
-rw-r--r--etc/portage/package.mask/50-python.conf6
-rw-r--r--etc/portage/package.mask/99-auto.conf0
-rw-r--r--etc/portage/package.unmask/00-misc.conf0
-rw-r--r--etc/portage/package.unmask/99-auto.conf0
-rw-r--r--etc/portage/package.use/00-misc-category.conf73
-rw-r--r--etc/portage/package.use/05-misc-virtual.conf2
-rw-r--r--etc/portage/package.use/10-misc-package.conf80
-rw-r--r--etc/portage/package.use/20-emacs.conf18
-rw-r--r--etc/portage/package.use/30-lib-static.conf18
-rw-r--r--etc/portage/package.use/30-lib.conf38
-rw-r--r--etc/portage/package.use/40-dev.conf34
-rw-r--r--etc/portage/package.use/50-javascript.conf1
-rw-r--r--etc/portage/package.use/50-lua.conf10
-rw-r--r--etc/portage/package.use/50-perl.conf4
-rw-r--r--etc/portage/package.use/50-python.conf50
-rw-r--r--etc/portage/package.use/60-qt.conf11
-rw-r--r--etc/portage/package.use/99-auto.conf0
-rw-r--r--etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch12
-rw-r--r--etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch14
-rw-r--r--etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch648
-rw-r--r--etc/portage/patches/sys-apps/pmount/btrfs.patch12
-rw-r--r--etc/portage/patches/sys-power/suspend/gcc-10.patch93
-rw-r--r--etc/portage/patches/x11-misc/xsnow/compositor.patch1501
-rw-r--r--etc/portage/repos.conf/eselect-repo.conf12
-rw-r--r--etc/portage/repos.conf/gentoo.conf19
-rw-r--r--etc/portage/savedconfig/app-shells/fzy-1.0-r114
-rw-r--r--etc/portage/savedconfig/media-gfx/sxiv-9999130
-rw-r--r--etc/portage/savedconfig/sys-apps/busybox-1.33.1-r11200
-rw-r--r--etc/portage/savedconfig/sys-kernel/linux-firmware-999999991
-rw-r--r--etc/portage/savedconfig/x11-misc/dmenu-999918
-rw-r--r--etc/portage/savedconfig/x11-misc/slock-1.412
-rw-r--r--etc/portage/savedconfig/x11-terms/st-9999323
-rw-r--r--etc/portage/savedconfig/x11-wm/dwm-999999
-rw-r--r--etc/portage/smart-live-rebuild.conf2
48 files changed, 4543 insertions, 0 deletions
diff --git a/etc/portage/env/ccache.conf b/etc/portage/env/ccache.conf
new file mode 100644
index 0000000..70e42c0
--- /dev/null
+++ b/etc/portage/env/ccache.conf
@@ -0,0 +1,3 @@
+CCACHE_DIR="/var/cache/ccache"
+CCACHE_SIZE="8G"
+FEATURES="${FEATURES} ccache"
diff --git a/etc/portage/env/debug.conf b/etc/portage/env/debug.conf
new file mode 100644
index 0000000..c8c8d83
--- /dev/null
+++ b/etc/portage/env/debug.conf
@@ -0,0 +1,3 @@
+CFLAGS="${CFLAGS} -ggdb"
+CXXFLAGS="${CXXFLAGS} -ggdb"
+FEATURES="${FEATURES} installsources splitdebug -nostrip compressdebug"
diff --git a/etc/portage/env/gcc.conf b/etc/portage/env/gcc.conf
new file mode 100644
index 0000000..43cc122
--- /dev/null
+++ b/etc/portage/env/gcc.conf
@@ -0,0 +1,5 @@
+AR="gcc-ar"
+CC="gcc"
+CXX="g++"
+NM="gcc-nm"
+RANLIB="gcc-ranlib"
diff --git a/etc/portage/env/llvm.conf b/etc/portage/env/llvm.conf
new file mode 100644
index 0000000..f2571ff
--- /dev/null
+++ b/etc/portage/env/llvm.conf
@@ -0,0 +1,7 @@
+AR="llvm-ar"
+CC="clang"
+CXX="clang++"
+CXXFLAGS="${CXXFLAGS} -stdlib=libc++"
+LDFLAGS="${LDFLAGS} -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind"
+NM="llvm-nm"
+RANLIB="llvm-ranlib"
diff --git a/etc/portage/env/tmp.conf b/etc/portage/env/tmp.conf
new file mode 100644
index 0000000..0d8ade7
--- /dev/null
+++ b/etc/portage/env/tmp.conf
@@ -0,0 +1 @@
+PORTAGE_TMPDIR="/var/tmp"
diff --git a/etc/portage/make.conf b/etc/portage/make.conf
new file mode 100644
index 0000000..104c00a
--- /dev/null
+++ b/etc/portage/make.conf
@@ -0,0 +1,42 @@
+CFLAGS="-march=native -O2 -pipe"
+CXXFLAGS="${CFLAGS}"
+FFLAGS="${CFLAGS}"
+FCFLAGS="${FFLAGS}"
+F77FLAGS="${FFLAGS}"
+
+CPU_FLAGS_X86="avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ### i5-2520M
+
+MAKEOPTS="-j5"
+
+GENTOO_MIRRORS="https://mirror.yandex.ru/gentoo-distfiles/"
+
+PORTAGE_LOGDIR="/var/log/portage"
+PORTAGE_ELOG_CLASSES="*"
+PORTAGE_ELOG_SYSTEM="echo:warn,error,qa save:*"
+
+PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
+PORTAGE_NICENESS=3
+
+PORTAGE_TMPDIR="/tmp"
+#PORTAGE_TMPDIR="/var/tmp"
+
+EMERGE_DEFAULT_OPTS="--alert=y --ask=y --backtrack=10000 --color=y --ignore-built-slot-operator-deps=y --keep-going=y --quiet-build=y --quiet-fail=y --verbose=y --with-bdeps=y"
+
+CLEAN_DELAY=0
+EMERGE_WARNING_DELAY=0
+
+EBEEP_IGNORE=1
+EPAUSE_IGNORE=1
+
+FEATURES="-assume-digests -binpkg-decompress -binpkg-dostrip -binpkg-logs -binpkg-multi-insatnce -buildpkg -buildsyspkg -candy -case-insensitive-fs -ccache cgroup clean-logs collision-protect -compress-build-logs -compress-index -compressdebug config-protect-if-modified -digest -distcc distlocks -downgrade-backup ebuild-locks fail-clean -fakeroot fixlafiles -force-mirror -force-prefix -getbinpkg -icecream -installsources ipc-sandbox -keeptemp -keepwork -lmirror merge-sync metadata-transfer -mirror multilib-strict network-sandbox -network-sandbox-proxy news -noauto -noclean -nodoc -noinfo -noman -nostrip -notitles parallel-fetch parallel-install pid-sandbox -pkgdir-index-trusted -prelink-checksums preserve-libs protect-owned python-trace qa-unresolved-soname-deps sandbox -sesandbox sfperms sign -skiprocheck split-elog split-log -splitdebug -strict -stricter -suidctl -test -test-fail-continue unknown-features-filter unknown-features-warn -unmerge-backup unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync -webrsync-gpg xattr"
+
+ACCEPT_KEYWORDS="amd64 ~amd64"
+ACCEPT_LICENSE="*"
+
+LC_COLLATE="C"
+LC_CTYPE="C"
+LC_MESSAGES="C"
+
+PAX_MARKINGS="XT"
+
+USE="-*" ### To make my life even more miserable...
diff --git a/etc/portage/make.profile b/etc/portage/make.profile
new file mode 120000
index 0000000..7f2eaa8
--- /dev/null
+++ b/etc/portage/make.profile
@@ -0,0 +1 @@
+../../var/db/repos/gentoo/profiles/default/linux/amd64/17.1/no-multilib
\ No newline at end of file
diff --git a/etc/portage/modules b/etc/portage/modules
new file mode 100644
index 0000000..677b254
--- /dev/null
+++ b/etc/portage/modules
@@ -0,0 +1 @@
+portdbapi.auxdbmodule = portage.cache.sqlite.database
diff --git a/etc/portage/package.accept_keywords/00-misc.conf b/etc/portage/package.accept_keywords/00-misc.conf
new file mode 100644
index 0000000..6ac1d01
--- /dev/null
+++ b/etc/portage/package.accept_keywords/00-misc.conf
@@ -0,0 +1,8 @@
+app-admin/eclean-kernel **
+media-sound/mpdscribble **
+sys-kernel/linux-firmware **
+x11-misc/dmenu **
+x11-misc/slock **
+x11-misc/xgetres **
+x11-terms/st **
+x11-wm/dwm **
diff --git a/etc/portage/package.accept_keywords/10-overlay.conf b/etc/portage/package.accept_keywords/10-overlay.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.accept_keywords/10-overlay.conf
diff --git a/etc/portage/package.accept_keywords/99-auto.conf b/etc/portage/package.accept_keywords/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.accept_keywords/99-auto.conf
diff --git a/etc/portage/package.env/00-misc.conf b/etc/portage/package.env/00-misc.conf
new file mode 100644
index 0000000..4d0f4b1
--- /dev/null
+++ b/etc/portage/package.env/00-misc.conf
@@ -0,0 +1,17 @@
+dev-java/icedtea        tmp.conf
+dev-java/openjdk        tmp.conf
+dev-lang/ghc            tmp.conf
+dev-lang/rust           tmp.conf
+dev-qt/qtwebengine      tmp.conf
+sys-devel/clang         tmp.conf
+sys-devel/gcc           tmp.conf
+sys-devel/llvm          tmp.conf
+
+dev-libs/editline       debug.conf
+dev-libs/libedit        debug.conf
+sys-libs/glibc          debug.conf
+sys-libs/musl           debug.conf
+sys-libs/ncurses        debug.conf
+sys-libs/slang          debug.conf
+x11-libs/libX*          debug.conf
+x11-libs/xcb*           debug.conf
diff --git a/etc/portage/package.env/99-auto.conf b/etc/portage/package.env/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.env/99-auto.conf
diff --git a/etc/portage/package.mask/00-misc.conf b/etc/portage/package.mask/00-misc.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.mask/00-misc.conf
diff --git a/etc/portage/package.mask/50-python.conf b/etc/portage/package.mask/50-python.conf
new file mode 100644
index 0000000..f4336b9
--- /dev/null
+++ b/etc/portage/package.mask/50-python.conf
@@ -0,0 +1,6 @@
+#dev-lang/python:2.7
+dev-lang/python:3.6
+dev-lang/python:3.7
+dev-lang/python:3.8
+#dev-lang/python:3.9
+dev-lang/python:3.10
diff --git a/etc/portage/package.mask/99-auto.conf b/etc/portage/package.mask/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.mask/99-auto.conf
diff --git a/etc/portage/package.unmask/00-misc.conf b/etc/portage/package.unmask/00-misc.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.unmask/00-misc.conf
diff --git a/etc/portage/package.unmask/99-auto.conf b/etc/portage/package.unmask/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.unmask/99-auto.conf
diff --git a/etc/portage/package.use/00-misc-category.conf b/etc/portage/package.use/00-misc-category.conf
new file mode 100644
index 0000000..19d5216
--- /dev/null
+++ b/etc/portage/package.use/00-misc-category.conf
@@ -0,0 +1,73 @@
+*/* L10N: en
+*/* VIDEO_CARDS: intel i915 i965
+*/* acl
+*/* aio
+*/* asm
+*/* caps
+*/* cron
+*/* elogind
+*/* filecaps
+*/* gmp
+*/* http2
+*/* hwdb
+*/* jemalloc
+*/* jumbo-build
+*/* kmod
+*/* libbsd
+*/* logrotate
+*/* lto
+*/* native-extensions
+*/* native-symlinks
+*/* openmp
+*/* openrc
+*/* pam
+*/* pgo
+*/* threads
+*/* udev
+*/* urandom
+*/* xattr
+
+*/* system-av1
+*/* system-binutils
+*/* system-boost
+*/* system-cmark
+*/* system-ffmpeg
+*/* system-harfbuzz
+*/* system-heimdal
+*/* system-icu
+*/* system-ipxe
+*/* system-jpeg
+*/* system-jsoncpp
+*/* system-lcms
+*/* system-leveldb
+*/* system-libcxx
+*/* system-libevent
+*/* system-libvpx
+*/* system-libyaml
+*/* system-llvm
+*/* system-lua
+*/* system-lz4
+*/* system-mathjax
+*/* system-mesa
+*/* system-numpy
+*/* system-python
+*/* system-qemu
+*/* system-seabios
+*/* system-sqlite
+*/* system-ssl
+*/* system-tbb
+*/* system-webp
+*/* system-zlib
+
+media-*/*       alsa
+
+media-fonts/*   X
+media-libs/*    X
+x11-*/*         X xinerama
+
+app-dicts/*     L10N: en en-US en-GB ja la ru tt
+app-i18n/*      L10N: en en-US en-GB ja la ru tt
+media-fonts/*   L10N: *
+
+net-*/*         ipv6 ssl
+www-*/*         ipv6 ssl
diff --git a/etc/portage/package.use/05-misc-virtual.conf b/etc/portage/package.use/05-misc-virtual.conf
new file mode 100644
index 0000000..bde2b60
--- /dev/null
+++ b/etc/portage/package.use/05-misc-virtual.conf
@@ -0,0 +1,2 @@
+virtual/* -*
+virtual/* ABI_X86: 64
diff --git a/etc/portage/package.use/10-misc-package.conf b/etc/portage/package.use/10-misc-package.conf
new file mode 100644
index 0000000..640dd52
--- /dev/null
+++ b/etc/portage/package.use/10-misc-package.conf
@@ -0,0 +1,80 @@
+app-admin/doas persist
+app-admin/eclean-kernel zstd
+app-admin/pass X dmenu git
+app-admin/pass-otp qrcode
+app-arch/alien bzip2
+app-arch/dpkg bzip2
+app-arch/pigz symlink
+app-arch/rpm zstd
+app-arch/tar minimal
+app-arch/xz-utils extra-filters
+app-crypt/gnupg bzip2 readline ssl user-socket tofu
+app-crypt/p11-kit asn1 trust
+app-crypt/pinentry ncurses
+app-laptop/laptop-mode-tools acpi
+app-misc/abduco savedconfig
+app-misc/ca-certificates cacert
+app-portage/eix sqlite
+app-portage/gemato gpg
+app-portage/portage-utils qmanifest qtegrity
+app-shells/fzy savedconfig
+app-shells/zsh unicode
+app-text/aspell L10N: en ru
+app-text/editorconfig-core-c cli
+app-text/hunspell L10N: en ru
+app-text/mupdf X
+media-gfx/imv X gif jpeg png
+media-gfx/sxiv exif gif jpeg png savedconfig
+media-sound/alsa-utils ncurses
+media-sound/mpd flac id3tag mpg123 sqlite unicode zlib
+media-video/ffmpeg X bzip2 chromium dav1d encode fdk fontconfig gpl hardcoded-tables vorbis libass libdrm librtmp libxml2 lzma libv4l mp3 network opus opengl openssl theora v4l vaapi vpx x264 x265 xvid zlib
+media-video/mpv X archive drm egl cli gbm jpeg lcms libass opengl tools vaapi zlib
+media-video/rtmpdump ssl
+net-analyzer/tcpdump drop-root
+net-firewall/iptables conntrack netlink nftables pcap
+net-fs/nfs-utils libmount
+net-misc/aria2 bittorrent libuv libxml2
+net-misc/curl alt-svc brotli hsts openssl zstd CURL_SSL: openssl
+net-misc/freerdp X
+net-misc/mosh client
+net-misc/openssh X hpn scp
+net-misc/rsync xxhash zstd
+net-vpn/openvpn down-root lzo openssl plugins
+net-vpn/wireguard-tools wg-quick
+net-wireless/aircrack-ng airdrop-ng airgraph-ng experimental netlink sqlite
+net-wireless/iwd client
+sys-apps/busybox ipv6
+sys-apps/dbus X
+sys-apps/debianutils installkernel
+sys-apps/ethtool netlink
+sys-apps/hwids net pci usb
+sys-apps/hwloc X cpuid libudev netloc pci xml
+sys-apps/iproute2 iptables ipv6
+sys-apps/man-db manpager
+sys-apps/net-tools arp hostname ipv6
+sys-apps/openrc netifrc
+sys-apps/portage gentoo-dev ipc native-extensions rsync-verify
+sys-apps/shadow su
+sys-apps/smartmontools daemon
+sys-apps/util-linux logger
+sys-auth/pambase passwdqc sha512
+sys-firmware/intel-microcode hostonly split-ucode
+sys-fs/btrfs-progs zstd
+sys-fs/cryptsetup openssl
+sys-fs/e2fsprogs fuse
+sys-fs/lvm2 thin
+sys-fs/ntfs3g ntfsprogs
+sys-fs/squashfs-tools* lz4 lzma lzo xz zstd
+sys-fs/squashfs-tools-ng tools
+sys-kernel/genkernel-next cryptsetup
+sys-kernel/linux-firmware redistributable savedconfig
+sys-process/fcron system-crontab
+sys-process/htop hwloc lm-sensors unicode
+sys-process/procps kill ncurses
+x11-base/xorg-drivers INPUT_DEVICES: libinput
+x11-base/xorg-server xorg
+x11-drivers/xf86-video-intel dri sna xvmc
+x11-misc/dmenu savedconfig
+x11-misc/slock savedconfig
+x11-terms/st savedconfig
+x11-wm/dwm savedconfig
diff --git a/etc/portage/package.use/20-emacs.conf b/etc/portage/package.use/20-emacs.conf
new file mode 100644
index 0000000..271fd61
--- /dev/null
+++ b/etc/portage/package.use/20-emacs.conf
@@ -0,0 +1,18 @@
+*/emacs* gui
+
+app-editors/emacs dynamic-loading
+app-editors/emacs gif
+app-editors/emacs harfbuzz
+app-editors/emacs inotify
+app-editors/emacs jpeg
+app-editors/emacs json
+app-editors/emacs libxml2
+app-editors/emacs png
+app-editors/emacs source
+app-editors/emacs ssl
+app-editors/emacs wide-int
+app-editors/emacs xft
+app-editors/emacs xpm
+app-editors/emacs zlib
+
+net-mail/mu emacs
diff --git a/etc/portage/package.use/30-lib-static.conf b/etc/portage/package.use/30-lib-static.conf
new file mode 100644
index 0000000..898ec4c
--- /dev/null
+++ b/etc/portage/package.use/30-lib-static.conf
@@ -0,0 +1,18 @@
+app-arch/bzip2      static-libs
+app-arch/libarchive static-libs
+app-arch/lz4        static-libs
+app-arch/xz-utils   static-libs
+app-arch/zstd       static-libs
+dev-libs/jansson    static-libs
+dev-libs/jemalloc   static-libs
+dev-libs/json-c     static-libs
+dev-libs/libbsd     static-libs
+dev-libs/libedit    static-libs
+dev-libs/libsodium  static-libs
+dev-libs/lzo        static-libs
+net-libs/czmq       static-libs
+net-libs/libnet     static-libs
+net-libs/nghttp2    static-libs
+net-libs/zeromq     static-libs
+net-libs/zmqpp      static-libs
+sys-libs/zlib       static-libs
diff --git a/etc/portage/package.use/30-lib.conf b/etc/portage/package.use/30-lib.conf
new file mode 100644
index 0000000..20bfcff
--- /dev/null
+++ b/etc/portage/package.use/30-lib.conf
@@ -0,0 +1,38 @@
+app-arch/libarchive bzip2 lz4 lzma lzo zlib zstd
+dev-libs/boost bzip2 context icu lzma nls tools zlib zstd
+dev-libs/elfutils bzip2 lzma utils zstd
+dev-libs/glib mime
+dev-libs/gmime crypt
+dev-libs/jemalloc lazy-lock xmalloc
+dev-libs/libpcre jit unicode
+dev-libs/libpcre2 jit pcre16 pcre32 unicode
+dev-libs/libverto libevent
+dev-libs/libxml2 icu
+media-libs/dav1d 10bit 8bit
+media-libs/freetype adobe-cff cleartype_hinting harfbuzz png
+media-libs/gd fontconfig jpeg png truetype zlib
+media-libs/harfbuzz glib graphite icu truetype
+media-libs/imlib2 gif jpeg png
+media-libs/libass harfbuzz fontconfig
+media-libs/libepoxy egl
+media-libs/libsdl2 kms opengl sound video xinerama
+media-libs/libtheora encode
+media-libs/libvpx svc
+media-libs/mesa classic dri3 egl gbm zstd
+media-libs/opencv contrib contribxfeatures2d download features2d jpeg png v4l
+media-libs/opusfile float
+media-libs/sdl2-image gif jpeg png
+media-libs/sdl2-mixer flac mp3 opus vorbis wav
+media-libs/x264 interlaced
+media-libs/x265 10bit 12bit
+net-libs/czmq http-client http-server
+net-libs/libmicrohttpd epoll thread-names
+net-libs/libpcap netlink
+net-libs/zeromq pgm sodium unwind
+sys-libs/libomp hwloc offload ompt
+sys-libs/ncurses unicode
+sys-libs/readline unicode utils
+sys-libs/timezone-data leaps-timezone
+sys-libs/zlib minizip
+x11-libs/libva drm
+x11-libs/libxcb xkb
diff --git a/etc/portage/package.use/40-dev.conf b/etc/portage/package.use/40-dev.conf
new file mode 100644
index 0000000..babdff8
--- /dev/null
+++ b/etc/portage/package.use/40-dev.conf
@@ -0,0 +1,34 @@
+### GNU
+sys-devel/binutils gold plugins
+sys-devel/gcc graphite jit lto nptl pgo sanitize vtv zstd
+sys-devel/gdb client lzma multitarget source-highlight xml xxhash
+sys-devel/gettext git
+sys-libs/glibc static-pie
+
+### LLVM
+*/* LLVM_TARGETS: AArch64 X86
+dev-util/lldb libedit
+sys-devel/clang default-compiler-rt default-libcxx default-lld static-analyzer xml
+sys-devel/clang-runtime compiler-rt libcxx sanitize
+sys-devel/llvm exegesis libedit libffi xar xml
+sys-libs/compiler-rt* clang
+sys-libs/compiler-rt-sanitizers asan cfi dfsan gwp-asan hwasan libfuzzer lsan memprof msan profile safestack scudo tsan ubsan xray
+sys-libs/libcxx libcxxabi
+sys-libs/libcxx* libunwind
+
+dev-util/ltrace unwind
+dev-util/perf demangle libpfm slang unwind
+dev-util/pkgconf pkg-config
+dev-util/strace unwind
+
+dev-vcs/git blksha1 curl gpg webdav
+dev-vcs/mercurial gpg
+dev-vcs/subversion sasl
+
+app-emulation/* seccomp
+app-emulation/containerd btrfs device-mapper
+app-emulation/docker btrfs device-mapper
+app-emulation/lxc ssl tools
+app-emulation/podman btrfs fuse rootless
+app-emulation/qemu alsa capstone fdt io-uring pin-upstream-blobs sdl sdl-image vde vhost-net vhost-user-fs virtfs zstd QEMU_SOFTMMU_TARGETS: aarch64 x86_64 QEMU_USER_TARGETS: aarch64 x86_64
+app-emulation/runc ambient kmem
diff --git a/etc/portage/package.use/50-javascript.conf b/etc/portage/package.use/50-javascript.conf
new file mode 100644
index 0000000..b6de8f4
--- /dev/null
+++ b/etc/portage/package.use/50-javascript.conf
@@ -0,0 +1 @@
+net-libs/nodejs icu -lto ssl
diff --git a/etc/portage/package.use/50-lua.conf b/etc/portage/package.use/50-lua.conf
new file mode 100644
index 0000000..135b389
--- /dev/null
+++ b/etc/portage/package.use/50-lua.conf
@@ -0,0 +1,10 @@
+media-video/mpv lua
+
+app-text/texlive-core     luajittex
+dev-texlive/texlive-basic luajittex
+
+dev-lua/*           LUA_TARGETS: luajit
+
+app-editors/neovim  LUA_SINGLE_TARGET: luajit
+dev-lua/*           LUA_SINGLE_TARGET: luajit
+media-video/mpv     LUA_SINGLE_TARGET: luajit
diff --git a/etc/portage/package.use/50-perl.conf b/etc/portage/package.use/50-perl.conf
new file mode 100644
index 0000000..6bc4427
--- /dev/null
+++ b/etc/portage/package.use/50-perl.conf
@@ -0,0 +1,4 @@
+dev-lang/perl minimal
+dev-perl/*    minimal
+
+sys-apps/moreutils perl
diff --git a/etc/portage/package.use/50-python.conf b/etc/portage/package.use/50-python.conf
new file mode 100644
index 0000000..bec4248
--- /dev/null
+++ b/etc/portage/package.use/50-python.conf
@@ -0,0 +1,50 @@
+dev-lang/python-exec-conf PYTHON_TARGETS: python3_9
+dev-lang/python:2.7 xml
+dev-lang/python:3.9 ipv6 ncurses readline sqlite ssl xml
+
+app-arch/brotli     python
+dev-libs/libxml2    python
+dev-util/lldb       python
+net-wireless/lorcon python
+sys-devel/gdb       python
+
+dev-python/PyQt5 dbus declarative gui multimedia network opengl printsupport ssl svg sql webchannel widgets
+dev-python/pyyaml libyaml
+dev-python/rarfile compressed
+
+app-admin/eclean-kernel         PYTHON_TARGETS: python3_9
+app-arch/brotli                 PYTHON_TARGETS: python3_9
+app-emulation/docker-compose    PYTHON_TARGETS: python3_9
+app-emulation/qemu              PYTHON_TARGETS: python3_9
+app-portage/*                   PYTHON_TARGETS: python3_9
+dev-libs/libxml2                PYTHON_TARGETS: python3_9
+dev-python/*                    PYTHON_TARGETS: python3_9
+dev-util/cppcheck               PYTHON_TARGETS: python3_9
+dev-util/meson*                 PYTHON_TARGETS: python3_9
+dev-util/perf                   PYTHON_TARGETS: python3_9
+dev-util/pkgcheck               PYTHON_TARGETS: python3_9
+dev-util/scons                  PYTHON_TARGETS: python3_9
+dev-vcs/mercurial               PYTHON_TARGETS: python3_9
+media-video/mpv                 PYTHON_TARGETS: python3_9
+media-video/subliminal          PYTHON_TARGETS: python3_9
+net-misc/youtube-dl             PYTHON_TARGETS: python3_9
+net-wireless/aircrack-ng        PYTHON_TARGETS: python3_9
+net-wireless/lorcon             PYTHON_TARGETS: python3_9
+sys-apps/pkgcore                PYTHON_TARGETS: python3_9
+sys-apps/portage                PYTHON_TARGETS: python3_9
+virtual/*                       PYTHON_TARGETS: python3_9
+www-client/qutebrowser          PYTHON_TARGETS: python3_9
+x11-base/xcb-proto              PYTHON_TARGETS: python3_9
+
+app-eselect/eselect-repository  PYTHON_SINGLE_TARGET: python3_9
+app-text/asciidoc               PYTHON_SINGLE_TARGET: python3_9
+dev-util/bear                   PYTHON_SINGLE_TARGET: python3_9
+dev-util/cvise                  PYTHON_SINGLE_TARGET: python3_9
+dev-util/glib-utils             PYTHON_SINGLE_TARGET: python3_9
+dev-util/include-what-you-use   PYTHON_SINGLE_TARGET: python3_9
+dev-util/itstool                PYTHON_SINGLE_TARGET: python3_9
+dev-util/lldb                   PYTHON_SINGLE_TARGET: python3_9
+dev-util/rr                     PYTHON_SINGLE_TARGET: python3_9
+sys-apps/usbutils               PYTHON_SINGLE_TARGET: python3_9
+sys-devel/clang                 PYTHON_SINGLE_TARGET: python3_9
+sys-devel/gdb                   PYTHON_SINGLE_TARGET: python3_9
diff --git a/etc/portage/package.use/60-qt.conf b/etc/portage/package.use/60-qt.conf
new file mode 100644
index 0000000..b5bef56
--- /dev/null
+++ b/etc/portage/package.use/60-qt.conf
@@ -0,0 +1,11 @@
+dev-qt/* X
+dev-qt/* alsa
+dev-qt/* dbus
+dev-qt/* qml
+dev-qt/* widgets
+dev-qt/qtcore icu
+dev-qt/qtdeclarative jit
+dev-qt/qtgui gif jpeg png
+dev-qt/qtnetwork ssl
+dev-qt/qtsql postgres sqlite
+dev-qt/qtwidgets png
diff --git a/etc/portage/package.use/99-auto.conf b/etc/portage/package.use/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.use/99-auto.conf
diff --git a/etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch b/etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch
new file mode 100644
index 0000000..7b74439
--- /dev/null
+++ b/etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch
@@ -0,0 +1,12 @@
+diff --git a/Distribution/Gentoo/PkgManager.hs b/Distribution/Gentoo/PkgManager.hs
+index 8e8cf0a..e7a3cef 100644
+--- a/Distribution/Gentoo/PkgManager.hs
++++ b/Distribution/Gentoo/PkgManager.hs
+@@ -95,6 +95,7 @@ defaultPMFlags               :: PkgManager -> [String]
+ defaultPMFlags Portage       = [ "--oneshot"
+                                , "--keep-going"
+                                , "--complete-graph"
++                               , "--ask=n"
+                                ]
+ defaultPMFlags PkgCore       = [ "--deep"
+                                , "--oneshot"
diff --git a/etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch b/etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch
new file mode 100644
index 0000000..80886ef
--- /dev/null
+++ b/etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch
@@ -0,0 +1,14 @@
+diff --git i/modules/gapi/cmake/DownloadADE.cmake w/modules/gapi/cmake/DownloadADE.cmake
+index ee1b645..26d1ce4 100644
+--- i/modules/gapi/cmake/DownloadADE.cmake
++++ w/modules/gapi/cmake/DownloadADE.cmake
+@@ -1,7 +1,7 @@
+ set(ade_src_dir "${OpenCV_BINARY_DIR}/3rdparty/ade")
+-set(ade_filename "v0.1.1f.zip")
++set(ade_filename "v0.1.1f.tar.gz")
+ set(ade_subdir "ade-0.1.1f")
+-set(ade_md5 "b624b995ec9c439cbc2e9e6ee940d3a2")
++set(ade_md5 "07749ec1fb889049bd81518925efd224")
+ ocv_download(FILENAME ${ade_filename}
+              HASH ${ade_md5}
+              URL
diff --git a/etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch b/etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch
new file mode 100644
index 0000000..c4dfc9a
--- /dev/null
+++ b/etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch
@@ -0,0 +1,648 @@
+diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
+--- coreutils-8.32/src/copy.c	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/copy.c	2020-05-23 13:25:09.286684100 +0200
+@@ -129,6 +129,72 @@
+   dev_t dev;
+ };
+ 
++struct progress_status {
++  int iCountDown;
++  char ** cProgressField;
++  struct timeval last_time;
++  int last_size, iBarLength;
++  struct stat src_open_sb;
++};
++
++/* Begin progress Mod*/
++static void file_progress_bar ( char * _cDest, int _iBarLength, long _lProgress, long _lTotal )
++{
++    double dPercent = (double) _lProgress / (double) _lTotal * 100.f;
++    sprintf( _cDest + ( _iBarLength - 6), "%4.1f", dPercent );
++    _cDest[_iBarLength - 2] = ' ';
++
++    int i;
++    for ( i=1; i<=_iBarLength - 9; i++)
++    {
++        if ( dPercent > (double) (i-1) / (_iBarLength - 10) * 100.f )
++        {
++            _cDest[i] = '=';
++        }
++        else
++        {
++            _cDest[i] = ' ';
++        }
++    }
++    for ( i=1; i<_iBarLength - 9; i++)
++    {
++        if ( ( _cDest[i+1] == ' ' ) && ( _cDest[i] == '=' ) )
++            _cDest[i] = '>' ;
++    }
++}
++
++int file_size_format ( char * _cDst, long _lSize, int _iCounter )
++{
++  int iCounter = _iCounter;
++  double dSize = ( double ) _lSize;
++  while ( dSize >= 1000. )
++  {
++    dSize /= 1024.;
++    iCounter++;
++  }
++
++  /* get unit */
++  char * sUnit;
++  if ( iCounter == 0 )
++    sUnit = "B";
++  else if ( iCounter == 1 )
++    sUnit = "KiB";
++  else if ( iCounter == 2 )
++    sUnit = "MiB";
++  else if ( iCounter == 3 )
++    sUnit = "GiB";
++  else if ( iCounter == 4 )
++    sUnit = "TiB";
++  else
++    sUnit = "N/A";
++
++  /* write number */
++  return sprintf ( _cDst, "%5.1f %s", dSize, sUnit );
++}
++/* END progress mod */
++
++
++
+ /* Initial size of the cp.dest_info hash table.  */
+ #define DEST_INFO_INITIAL_CAPACITY 61
+ 
+@@ -261,7 +327,8 @@
+              size_t hole_size, bool punch_holes,
+              char const *src_name, char const *dst_name,
+              uintmax_t max_n_read, off_t *total_n_read,
+-             bool *last_write_made_hole)
++             bool *last_write_made_hole,
++             struct progress_status *s_progress)
+ {
+   *last_write_made_hole = false;
+   *total_n_read = 0;
+@@ -270,6 +337,83 @@
+ 
+   while (max_n_read)
+     {
++
++    if (progress) {
++          /* BEGIN progress mod */
++          /* update countdown */
++          s_progress->iCountDown--;
++          char * sProgressBar = s_progress->cProgressField[5];
++          if ( s_progress->iCountDown < 0 )
++            s_progress->iCountDown = 100;
++
++          /* just print one line with the percentage, but not always */
++          if ( s_progress->iCountDown == 0 )
++          {
++            /* calculate current speed */
++            struct timeval cur_time;
++            gettimeofday ( & cur_time, NULL );
++            int cur_size = g_iTotalWritten + *total_n_read / 1024;
++            int usec_elapsed = cur_time.tv_usec - s_progress->last_time.tv_usec;
++            double sec_elapsed = ( double ) usec_elapsed / 1000000.f;
++            sec_elapsed += ( double ) ( cur_time.tv_sec - s_progress->last_time.tv_sec );
++            int copy_speed = ( int ) ( ( double ) ( cur_size - s_progress->last_size )
++              / sec_elapsed );
++            char s_copy_speed[20];
++            file_size_format ( s_copy_speed, copy_speed, 1 );
++            /* update vars */
++            s_progress->last_time = cur_time;
++            s_progress->last_size = cur_size;
++
++            /* how many time has passed since the start? */
++            int isec_elapsed = cur_time.tv_sec - g_oStartTime.tv_sec;
++            int sec_remaining = ( int ) ( ( double ) isec_elapsed / cur_size
++              * g_iTotalSize ) - isec_elapsed;
++            int min_remaining = sec_remaining / 60;
++            sec_remaining -= min_remaining * 60;
++            int hours_remaining = min_remaining / 60;
++            min_remaining -= hours_remaining * 60;
++            /* print out */
++            sprintf ( s_progress->cProgressField[3],
++              "Copying at %s/s (about %uh %um %us remaining)", s_copy_speed,
++              hours_remaining, min_remaining, sec_remaining );
++
++            int fs_len;
++            if ( g_iTotalFiles > 1 )
++            {
++              /* global progress bar */
++              file_progress_bar ( s_progress->cProgressField[2], s_progress->iBarLength,
++                                  g_iTotalWritten + *total_n_read / 1024, g_iTotalSize );
++
++              /* print the global status */
++              fs_len = file_size_format ( s_progress->cProgressField[1] + s_progress->iBarLength - 21,
++                                              g_iTotalWritten + *total_n_read / 1024, 1 );
++              s_progress->cProgressField[1][s_progress->iBarLength - 21 + fs_len] = ' ';
++            }
++
++            /* current progress bar */
++            file_progress_bar ( sProgressBar, s_progress->iBarLength, *total_n_read, s_progress->src_open_sb.st_size );
++
++            /* print the status */
++            fs_len = file_size_format ( s_progress->cProgressField[4] + s_progress->iBarLength - 21, *total_n_read, 0 );
++            s_progress->cProgressField[4][s_progress->iBarLength - 21 + fs_len] = ' ';
++
++            /* print the field */
++            int it;
++            for ( it = g_iTotalFiles>1 ? 0 : 3; it < 6; it++ )
++            {
++              printf ( "\033[K%s\n", s_progress->cProgressField[it] );
++              if ( strlen ( s_progress->cProgressField[it] ) < s_progress->iBarLength )
++                printf ( "" );
++            }
++            if ( g_iTotalFiles > 1 )
++              printf ( "\r\033[6A" );
++            else
++              printf ( "\r\033[3A" );
++            fflush ( stdout );
++          }
++          /* END progress mod */
++      }
++
+       ssize_t n_read = read (src_fd, buf, MIN (max_n_read, buf_size));
+       if (n_read < 0)
+         {
+@@ -354,6 +498,14 @@
+          certain files in /proc or /sys with linux kernels.  */
+     }
+ 
++    /* BEGIN progress mod */
++    if (progress) {
++          /* update total size */
++          g_iTotalWritten += *total_n_read / 1024;
++          g_iFilesCopied++;
++    }
++    /* END progress mod */
++
+   /* Ensure a trailing hole is created, so that subsequent
+      calls of sparse_copy() start at the correct offset.  */
+   if (make_hole && ! create_hole (dest_fd, dst_name, punch_holes, psize))
+@@ -422,7 +574,9 @@
+              size_t hole_size, off_t src_total_size,
+              enum Sparse_type sparse_mode,
+              char const *src_name, char const *dst_name,
+-             bool *require_normal_copy)
++             bool *require_normal_copy,
++             int iCountDown, char ** cProgressField, struct timeval last_time,
++             int last_size, int iBarLength, struct stat src_open_sb)
+ {
+   struct extent_scan scan;
+   off_t last_ext_start = 0;
+@@ -553,10 +707,16 @@
+               last_ext_len = ext_len;
+               bool read_hole;
+ 
++              struct timeval a;
++              struct stat b;
++
++              struct progress_status s_progress={iCountDown, cProgressField, last_time, last_size, iBarLength, src_open_sb};
++
++
+               if ( ! sparse_copy (src_fd, dest_fd, buf, buf_size,
+                                   sparse_mode == SPARSE_ALWAYS ? hole_size: 0,
+                                   true, src_name, dst_name, ext_len, &n_read,
+-                                  &read_hole))
++                                  &read_hole,&s_progress))
+                 goto fail;
+ 
+               dest_pos = ext_start + n_read;
+@@ -1305,6 +1465,70 @@
+       buf_alloc = xmalloc (buf_size + buf_alignment);
+       buf = ptr_align (buf_alloc, buf_alignment);
+ 
++      /* BEGIN progress mod */
++      /* create a field of 6 lines */
++      char ** cProgressField = ( char ** ) calloc ( 6, sizeof ( char * ) );
++      /* get console width */
++      int iBarLength = 80;
++      struct winsize win;
++      if ( ioctl (STDOUT_FILENO, TIOCGWINSZ, (char *) &win) == 0 && win.ws_col > 0 )
++         iBarLength = win.ws_col;
++      /* create rows */
++      int it;
++      for ( it = 0; it < 6; it++ )
++      {
++        cProgressField[it] = ( char * ) malloc ( iBarLength + 1 );
++        /* init with spaces */
++        int j;
++        for ( j = 0; j < iBarLength; j++ )
++          cProgressField[it][j] = ' ';
++        cProgressField[it][iBarLength] = '\0';
++      }
++
++      /* global progress bar? */
++      if ( g_iTotalFiles > 1 )
++      {
++        /* init global progress bar */
++        cProgressField[2][0] = '[';
++        cProgressField[2][iBarLength - 8] = ']';
++        cProgressField[2][iBarLength - 7] = ' ';
++        cProgressField[2][iBarLength - 1] = '%';
++
++        /* total size */
++        cProgressField[1][iBarLength - 11] = '/';
++        file_size_format ( cProgressField[1] + iBarLength - 9, g_iTotalSize, 1 );
++
++        /* show how many files were written */
++        int sum_length = sprintf ( cProgressField[1], "%d files copied so far...", g_iFilesCopied );
++        cProgressField[1][sum_length] = ' ';
++      }
++
++      /* truncate filename? */
++      int fn_length;
++      if ( strlen ( src_name ) > iBarLength - 22 )
++        fn_length =
++          sprintf ( cProgressField[4], "...%s", src_name + ( strlen ( src_name ) - iBarLength + 25 ) );
++      else
++        fn_length = sprintf ( cProgressField[4], "%s", src_name );
++      cProgressField[4][fn_length] = ' ';
++
++      /* filesize */
++      cProgressField[4][iBarLength - 11] = '/';
++      file_size_format ( cProgressField[4] + iBarLength - 9, src_open_sb.st_size, 0 );
++
++      int iCountDown = 1;
++      char * sProgressBar = cProgressField[5];
++      sProgressBar[0] = '[';
++      sProgressBar[iBarLength - 8] = ']';
++      sProgressBar[iBarLength - 7] = ' ';
++      sProgressBar[iBarLength - 1] = '%';
++
++      /* this will always save the time in between */
++      struct timeval last_time;
++      gettimeofday ( & last_time, NULL );
++      int last_size = g_iTotalWritten;
++      /* END progress mod */
++
+       if (sparse_src)
+         {
+           bool normal_copy_required;
+@@ -1316,7 +1540,9 @@
+           if (extent_copy (source_desc, dest_desc, buf, buf_size, hole_size,
+                            src_open_sb.st_size,
+                            make_holes ? x->sparse_mode : SPARSE_NEVER,
+-                           src_name, dst_name, &normal_copy_required))
++                           src_name, dst_name, &normal_copy_required,
++                           iCountDown, cProgressField, last_time, last_size,
++                           iBarLength, src_open_sb))
+             goto preserve_metadata;
+ 
+           if (! normal_copy_required)
+@@ -1328,11 +1554,12 @@
+ 
+       off_t n_read;
+       bool wrote_hole_at_eof;
++      struct progress_status s_progress = { iCountDown, cProgressField, last_time, last_size, iBarLength, src_open_sb};
+       if (! sparse_copy (source_desc, dest_desc, buf, buf_size,
+                          make_holes ? hole_size : 0,
+                          x->sparse_mode == SPARSE_ALWAYS, src_name, dst_name,
+                          UINTMAX_MAX, &n_read,
+-                         &wrote_hole_at_eof))
++                         &wrote_hole_at_eof, &s_progress))
+         {
+           return_val = false;
+           goto close_src_and_dst_desc;
+@@ -1343,6 +1570,14 @@
+           return_val = false;
+           goto close_src_and_dst_desc;
+         }
++       /* BEGIN progress mod */
++      if (progress) {
++            int i;
++            for ( i = 0; i < 6; i++ )
++              free ( cProgressField[i] );
++            free ( cProgressField );
++      }
++      /* END progress mod */
+     }
+ 
+ preserve_metadata:
+Only in coreutils-8.32-patched/src: copy.c.orig
+diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h
+--- coreutils-8.32/src/copy.h	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/copy.h	2020-05-23 13:25:09.286684100 +0200
+@@ -234,6 +234,9 @@
+      Create destination directories as usual. */
+   bool symbolic_link;
+ 
++  /* If true, draw a nice progress bar on screen */
++  bool progress_bar;
++
+   /* If true, do not copy a nondirectory that has an existing destination
+      with the same or newer modification time. */
+   bool update;
+@@ -304,4 +307,15 @@
+ bool chown_failure_ok (struct cp_options const *) _GL_ATTRIBUTE_PURE;
+ mode_t cached_umask (void);
+ 
++/* BEGIN OF PROGRESS MOD */
++int file_size_format ( char * _cDst, long _lSize, int _iCounter );
++
++__attribute__((__common__)) long g_iTotalSize;
++__attribute__((__common__)) long g_iTotalWritten;
++__attribute__((__common__)) int g_iFilesCopied;
++__attribute__((__common__)) struct timeval g_oStartTime;
++__attribute__((__common__)) int g_iTotalFiles;
++__attribute__((__common__)) bool progress;
++/* END OF PROGRESS MOD */
++
+ #endif
+Only in coreutils-8.32-patched/src: copy.h.orig
+diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c
+--- coreutils-8.32/src/cp.c	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/cp.c	2020-05-23 13:25:09.286684100 +0200
+@@ -131,6 +131,7 @@
+   {"symbolic-link", no_argument, NULL, 's'},
+   {"target-directory", required_argument, NULL, 't'},
+   {"update", no_argument, NULL, 'u'},
++  {"progress-bar", no_argument, NULL, 'g'},
+   {"verbose", no_argument, NULL, 'v'},
+   {GETOPT_SELINUX_CONTEXT_OPTION_DECL},
+   {GETOPT_HELP_OPTION_DECL},
+@@ -170,6 +171,7 @@
+   -f, --force                  if an existing destination file cannot be\n\
+                                  opened, remove it and try again (this option\n\
+                                  is ignored when the -n option is also used)\n\
++  -g, --progress-bar           add a progress bar\n\
+   -i, --interactive            prompt before overwrite (overrides a previous -n\
+ \n\
+                                   option)\n\
+@@ -635,6 +637,70 @@
+         die (EXIT_FAILURE, 0, _("target %s is not a directory"),
+              quoteaf (file[n_files - 1]));
+     }
++    struct timeval start_time;
++    if (progress) {
++        /* BEGIN progress mod */
++        g_iTotalSize = 0;
++        g_iTotalFiles = 0;
++        g_iFilesCopied = 0;
++        g_iTotalWritten = 0;
++
++        /* save time */
++        gettimeofday ( & start_time, NULL );
++        g_oStartTime = start_time;
++
++        printf ( "Calculating total size... \r" );
++        fflush ( stdout );
++        long iTotalSize = 0;
++        int iFiles = n_files;
++        if ( ! target_directory )
++          iFiles = n_files - 1;
++        int j;
++
++        /* how many files are we copying */
++        char command[1024];
++        sprintf( command, "find \"%s\" -type f | wc -l", file[0]);
++        FILE *fp ;
++        char output[1024];
++        fp = popen(command,"r");
++        if ( fp == NULL || fgets(output, sizeof(output)-1, fp) == NULL)
++            printf("failed to run find.\n");
++        else
++            g_iTotalFiles = atoi( output ) ;
++
++        for (j = 0; j < iFiles; j++)
++        {
++          /* call du -s for each file */
++          /* create command */
++          char command[1024];
++          sprintf ( command, "du -s \"%s\"", file[j] );
++          /* TODO: replace all quote signs in file[i] */
++
++          FILE *fp;
++          char output[1024];
++
++          /* run command */
++          fp = popen(command, "r");
++          if (fp == NULL || fgets(output, sizeof(output)-1, fp) == NULL) {
++            printf("failed to run du.\n" );
++          }
++          else
++          {
++            /* isolate size */
++            strchr ( output, '\t' )[0] = '\0';
++            iTotalSize += atol ( output );
++
++            printf ( "Calculating total size... %ld\r", iTotalSize );
++            fflush ( stdout );
++          }
++
++          /* close */
++          pclose(fp);
++        }
++        g_iTotalSize = iTotalSize;
++        /* END progress mod */
++    }
++
+ 
+   if (target_directory)
+     {
+@@ -777,6 +843,46 @@
+       ok = copy (source, new_dest, 0, x, &unused, NULL);
+     }
+ 
++    if (progress) {
++        /* BEGIN progress mod */
++        /* remove everything */
++        int i;
++        if ( g_iTotalFiles > 1 )
++        {
++          for ( i = 0; i < 6; i++ )
++            printf ( "\033[K\n" );
++          printf ( "\r\033[6A" );
++        }
++        else
++        {
++          for ( i = 0; i < 3; i++ )
++            printf ( "\033[K\n" );
++          printf ( "\r\033[3A" );
++        }
++
++        /* save time */
++        struct timeval end_time;
++        gettimeofday ( & end_time, NULL );
++        int usec_elapsed = end_time.tv_usec - start_time.tv_usec;
++        double sec_elapsed = ( double ) usec_elapsed / 1000000.f;
++        sec_elapsed += ( double ) ( end_time.tv_sec - start_time.tv_sec );
++
++        /* get total size */
++        char sTotalWritten[20];
++        file_size_format ( sTotalWritten, g_iTotalSize, 1 );
++        /* TODO: using g_iTotalWritten would be more correct, but is less accurate */
++
++        /* calculate speed */
++        int copy_speed = ( int ) ( ( double ) g_iTotalWritten / sec_elapsed );
++        char s_copy_speed[20];
++        file_size_format ( s_copy_speed, copy_speed, 1 );
++
++        /* good-bye message */
++        printf ( "%d files (%s) copied in %.1f seconds (%s/s).\n", g_iFilesCopied, sTotalWritten,
++                 sec_elapsed, s_copy_speed );
++        /* END progress mod */
++    }
++
+   return ok;
+ }
+ 
+@@ -812,6 +918,7 @@
+   x->recursive = false;
+   x->sparse_mode = SPARSE_AUTO;
+   x->symbolic_link = false;
++  x->progress_bar = false;
+   x->set_mode = false;
+   x->mode = 0;
+ 
+@@ -950,7 +1057,7 @@
+   selinux_enabled = (0 < is_selinux_enabled ());
+   cp_option_init (&x);
+ 
+-  while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:TZ",
++  while ((c = getopt_long (argc, argv, "abdfgHilLnprst:uvxPRS:TZ",
+                            long_opts, NULL))
+          != -1)
+     {
+@@ -1007,6 +1114,10 @@
+           x.unlink_dest_after_failed_open = true;
+           break;
+ 
++        case 'g':
++          progress = true;
++          break;
++
+         case 'H':
+           x.dereference = DEREF_COMMAND_LINE_ARGUMENTS;
+           break;
+diff -aur coreutils-8.32/src/mv.c coreutils-8.32-patched/src/mv.c
+--- coreutils-8.32/src/mv.c	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/mv.c	2020-05-23 13:25:09.286684100 +0200
+@@ -66,6 +66,7 @@
+   {"target-directory", required_argument, NULL, 't'},
+   {"update", no_argument, NULL, 'u'},
+   {"verbose", no_argument, NULL, 'v'},
++  {"progress-ar", no_argument, NULL, 'g'},
+   {GETOPT_HELP_OPTION_DECL},
+   {GETOPT_VERSION_OPTION_DECL},
+   {NULL, 0, NULL, 0}
+@@ -168,10 +169,86 @@
+ static bool
+ do_move (const char *source, const char *dest, const struct cp_options *x)
+ {
++  struct timeval start_time;
++
+   bool copy_into_self;
+   bool rename_succeeded;
++  if(progress && x->rename_errno != 0) {
++    /* BEGIN progress mod */
++    g_iTotalSize = 0;
++    g_iFilesCopied = 0;
++    g_iTotalWritten = 0;
++
++    gettimeofday (& start_time, NULL);
++    g_oStartTime = start_time;
++
++    printf ("Calculating total size... \r");
++    fflush (stdout);
++    long iTotalSize = 0;
++    /* call du -s for each file */
++    /* create command */
++    char command[1024];
++    sprintf ( command, "du -s '%s'", source );
++    /* TODO: replace all quote signs in file[i] */
++
++    FILE *fp;
++    char output[1024];
++
++    /* run command */
++    fp = popen(command, "r");
++    if (fp == NULL || fgets(output, sizeof(output)-1, fp) == NULL) {
++      //printf("failed to run du.\n" );
++    }
++    else
++    {
++      /* isolate size */
++      strchr ( output, '\t' )[0] = '\0';
++      iTotalSize += atol ( output );
++      printf ( "Calculating total size... %ld\r", iTotalSize );
++      fflush ( stdout );
++    }
++
++    /* close */
++    pclose(fp);
++    g_iTotalSize = iTotalSize;
++    /* END progress mod */
++
++  }
++
+   bool ok = copy (source, dest, false, x, &copy_into_self, &rename_succeeded);
+ 
++  if (progress && (x->rename_errno != 0 && ok)) {
++    /* BEGIN progress mod */
++    /* remove everything */
++    int i;
++    int limit = (g_iTotalFiles > 1 ? 6 : 3);
++    for ( i = 0; i < limit; i++ )
++      printf ( "\033[K\n" );
++    printf ( "\r\033[3A" );
++
++    /* save time */
++    struct timeval end_time;
++    gettimeofday ( & end_time, NULL );
++    int usec_elapsed = end_time.tv_usec - start_time.tv_usec;
++    double sec_elapsed = ( double ) usec_elapsed / 1000000.f;
++    sec_elapsed += ( double ) ( end_time.tv_sec - start_time.tv_sec );
++
++    /* get total size */
++    char sTotalWritten[20];
++    file_size_format ( sTotalWritten, g_iTotalSize, 1 );
++    /* TODO: using g_iTotalWritten would be more correct, but is less accurate */
++
++    /* calculate speed */
++    int copy_speed = ( int ) ( ( double ) g_iTotalWritten / sec_elapsed );
++    char s_copy_speed[20];
++    file_size_format ( s_copy_speed, copy_speed, 1 );
++
++    /* good-bye message */
++    printf ( "%d files (%s) moved in %.1f seconds (%s/s).\n", g_iFilesCopied, sTotalWritten,
++             sec_elapsed, s_copy_speed );
++    /* END progress mod */
++  }
++
+   if (ok)
+     {
+       char const *dir_to_remove;
+@@ -306,6 +383,7 @@
+ \n\
+   -b                           like --backup but does not accept an argument\n\
+   -f, --force                  do not prompt before overwriting\n\
++  -g, --progress-bar           add progress-bar\n\
+   -i, --interactive            prompt before overwrite\n\
+   -n, --no-clobber             do not overwrite an existing file\n\
+ If you specify more than one of -i, -f, -n, only the final one takes effect.\n\
+@@ -361,7 +439,7 @@
+   /* Try to disable the ability to unlink a directory.  */
+   priv_set_remove_linkdir ();
+ 
+-  while ((c = getopt_long (argc, argv, "bfint:uvS:TZ", long_options, NULL))
++  while ((c = getopt_long (argc, argv, "bfint:uvgS:TZ", long_options, NULL))
+          != -1)
+     {
+       switch (c)
+@@ -407,6 +485,11 @@
+         case 'v':
+           x.verbose = true;
+           break;
++
++        case 'g':
++          progress = true;
++          break;
++
+         case 'S':
+           make_backups = true;
+           backup_suffix = optarg;
diff --git a/etc/portage/patches/sys-apps/pmount/btrfs.patch b/etc/portage/patches/sys-apps/pmount/btrfs.patch
new file mode 100644
index 0000000..098e086
--- /dev/null
+++ b/etc/portage/patches/sys-apps/pmount/btrfs.patch
@@ -0,0 +1,12 @@
+diff --git a/src/fs.c b/src/fs.c
+index 65ea0c7..6758d63 100644
+--- a/src/fs.c
++++ b/src/fs.c
+@@ -29,6 +29,7 @@ static struct FS supported_fs[] = {
+     { "ext3", "nodev,noauto,nosuid,user,errors=remount-ro", 0, NULL, 0 },
+     { "ext2", "nodev,noauto,nosuid,user,errors=remount-ro", 0, NULL, 0 },
+     { "ext4", "nodev,noauto,nosuid,user,errors=remount-ro", 0, NULL, 0 },
++    { "btrfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
+     { "reiserfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
+     { "reiser4", "nodev,noauto,nosuid,user", 0, NULL, 0 },
+     { "xfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
diff --git a/etc/portage/patches/sys-power/suspend/gcc-10.patch b/etc/portage/patches/sys-power/suspend/gcc-10.patch
new file mode 100644
index 0000000..00da540
--- /dev/null
+++ b/etc/portage/patches/sys-power/suspend/gcc-10.patch
@@ -0,0 +1,93 @@
+diff -Nupr suspend~/s2ram-x86.h suspend/s2ram-x86.h
+--- suspend~/s2ram-x86.h	2012-09-15 22:23:44.000000000 +0200
++++ suspend/s2ram-x86.h	2020-05-14 19:04:21.979507630 +0200
+@@ -18,9 +18,9 @@
+ /* Item size */
+ #define ITEMSZ  1024
+ 
+-char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
++extern char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
+ 
+-int flags, force, fb_nosuspend, no_kms_flag;
++extern int flags, force, fb_nosuspend, no_kms_flag;
+ 
+ #define HACKS_LONG_OPTS \
+ 	{\
+diff -Nupr suspend~/s2ram-x86.c suspend/s2ram-x86.c
+--- suspend~/s2ram-x86.c	2012-09-15 22:23:44.000000000 +0200
++++ suspend/s2ram-x86.c	2020-05-14 19:33:34.683394349 +0200
+@@ -38,6 +38,10 @@ static int vbe_mode = -1, dmi_scanned;
+ #define S2RAM_NOFB	126
+ #define S2RAM_UNKNOWN	127
+ 
++/* extern in s2ram-{{arch}}.h */
++char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
++int flags, force, fb_nosuspend, no_kms_flag;
++
+ void identify_machine(void)
+ {
+ 	if (!dmi_scanned) {
+diff -Nupr suspend~/load.c suspend/load.c
+--- suspend~/load.c	2020-05-14 18:54:12.683547000 +0200
++++ suspend/load.c	2020-05-14 19:15:39.056797202 +0200
+@@ -549,7 +549,7 @@ static int decrypt_key(struct image_head
+ 		memcpy(key, res, KEY_SIZE);
+ 		memcpy(ivec, res + KEY_SIZE, CIPHER_BLOCK);
+ 	} else {
+-		fprintf(stderr,"The main key has invalid length %i, need %i\n", s, KEY_SIZE + CIPHER_BLOCK);
++		fprintf(stderr,"The main key has invalid length %zu, need %i\n", s, KEY_SIZE + CIPHER_BLOCK);
+ 		ret = -ENODATA;
+ 	}
+ 	gcry_free(res);
+diff -Nupr suspend~/vbetool/vbetool.c suspend/vbetool/vbetool.c
+--- suspend~/vbetool/vbetool.c	2012-09-15 22:23:44.000000000 +0200
++++ suspend/vbetool/vbetool.c	2020-05-14 19:14:21.587468876 +0200
+@@ -320,7 +320,7 @@ char *__save_state(int *psize)
+ 
+ 	memset(&r, 0, sizeof(r));
+ 
+-	fprintf(stderr, "Allocated buffer at %p (base is 0x%x)\n", buffer,
++	fprintf(stderr, "Allocated buffer at %p (base is 0x%zx)\n", buffer,
+ 			LRMI_base_addr());
+ 
+ 	r.eax = 0x4f04;
+diff -Nupr suspend~/vbetool/vbetool.c suspend/vbetool/vbetool.c
+--- suspend~/vbetool/vbetool.c	2020-05-14 20:16:16.880562075 +0200
++++ suspend/vbetool/vbetool.c	2020-05-14 20:50:20.563096451 +0200
+@@ -243,9 +243,9 @@ void restore_state_from(char *data)
+ 	r.eax = 0x4f04;
+ 	r.ecx = 0xf;		/* all states */
+ 	r.edx = 2;		/* restore state */
+-	r.es = (unsigned int) (data - LRMI_base_addr()) >> 4;
+-	r.ebx = (unsigned int) (data - LRMI_base_addr()) & 0xf;
+-	r.ds = 0x0040;
++	r.es  = (unsigned short) (((data - (char*) LRMI_base_addr()) >> 4) & 0xffff);
++	r.ebx = (unsigned int)    ((data - (char*) LRMI_base_addr()) & 0xf);
++	r.ds  = 0x0040;
+ 
+ 	if (!LRMI_int(0x10, &r)) {
+ 		fprintf(stderr,
+@@ -327,9 +327,9 @@ char *__save_state(int *psize)
+ 	r.ecx = 0xf;		/* all states */
+ 	r.edx = 1;		/* save state */
+ 	
+-	r.es = (unsigned int) (buffer - LRMI_base_addr()) >> 4;
+-	r.ebx = (unsigned int) (buffer - LRMI_base_addr()) & 0xf;
+-	r.ds = 0x0040;
++	r.es  = (unsigned short) (((buffer - (char*) LRMI_base_addr()) >> 4) & 0xffff);
++	r.ebx = (unsigned int)    ((buffer - (char*) LRMI_base_addr()) & 0xf);
++	r.ds  = 0x0040;
+ 
+ 	fprintf(stderr, "ES: 0x%04X EBX: 0x%04X\n", r.es, r.ebx);
+ 
+@@ -525,8 +525,8 @@ int do_get_panel_id(int just_dimensions)
+     .ebx = 0x0001
+   };
+   struct panel_id *id = LRMI_alloc_real(sizeof(struct panel_id));
+-  r.es = (unsigned short)(((int)(id-LRMI_base_addr()) >> 4) & 0xffff);
+-  r.edi = (unsigned long)(id-LRMI_base_addr()) & 0xf;
++  r.es  = (unsigned short) (((id - LRMI_base_addr()) >> 4) & 0xffff);
++  r.edi = (unsigned long)   ((id - LRMI_base_addr()) & 0xf);
+ 
+   if(sizeof(struct panel_id) != 32)
+     return fprintf(stderr, "oops: panel_id, sizeof struct panel_id != 32, it's %ld...\n", sizeof(struct panel_id)), 7;
diff --git a/etc/portage/patches/x11-misc/xsnow/compositor.patch b/etc/portage/patches/x11-misc/xsnow/compositor.patch
new file mode 100644
index 0000000..7ecedf0
--- /dev/null
+++ b/etc/portage/patches/x11-misc/xsnow/compositor.patch
@@ -0,0 +1,1501 @@
+diff -rupN ./xsnow-1.42/make2.com xsnow-comp-tmp/make2.com
+--- ./xsnow-1.42/make2.com	1995-11-19 06:53:27.000000000 -0500
++++ xsnow-comp-tmp/make2.com	1969-12-31 19:00:00.000000000 -0500
+@@ -1,51 +0,0 @@
+-$! Compile and link Xsnow under VMS 
+-$!
+-$! Get compiler info
+-$!
+-$ CFLAGS = "/optimize"
+-$ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "" -
+-        .and. CFLAGS - "/VAXC" .eqs. CFLAGS
+-$ all_cflags = CFLAGS
+-$ if decc then all_cflags = "/DECC/PREFIX=ALL " + all_cflags
+-$!
+-$!      Build the option-file
+-$!
+-$ open/write optf xsnow.opt
+-$ write optf "xsnow"
+-$ if .not.decc then write optf "SYS$SHARE:ucx$ipc/lib"
+-$ write optf "Identification=""Xsnow 1.39""
+-$!
+-$!
+-$!  Find out which X-Version we're running.  This will fail for older
+-$!  VMS versions (i.e., v5.5-1).  Therefore, choose DECWindows XUI for
+-$!  default.
+-$!
+-$ On Error Then GoTo XUI
+-$ @sys$update:decw$get_image_version sys$share:decw$xlibshr.exe decw$version
+-$ if f$extract(4,3,decw$version).eqs."1.0"
+-$ then
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$ endif
+-$ if f$extract(4,3,decw$version).eqs."1.1"
+-$ then
+-$   write optf "sys$share:decw$xmulibshr.exe/share"
+-$   write optf "sys$share:decw$xtshr.exe/share"
+-$ endif
+-$ if f$extract(4,3,decw$version).eqs."1.2"
+-$ then
+-$   write optf "sys$share:decw$xmulibshrr5.exe/share"
+-$   write optf "sys$share:decw$xtlibshrr5.exe/share"
+-$ endif
+-$ GoTo MAIN
+-$!
+-$XUI:
+-$!
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$MAIN:
+-$!
+-$ write optf "sys$share:decw$xlibshr.exe/share"
+-$ if .not.decc then write optf "SYS$SHARE:VAXCRTL/SHARE"
+-$ close optf
+-$ cc'all_cflags' xsnow.c
+-$ link xsnow.opt/opt
+-$ exit
+diff -rupN ./xsnow-1.42/make.com xsnow-comp-tmp/make.com
+--- ./xsnow-1.42/make.com	1995-11-19 06:53:27.000000000 -0500
++++ xsnow-comp-tmp/make.com	1969-12-31 19:00:00.000000000 -0500
+@@ -1,85 +0,0 @@
+-$! Compile and link Xsnow under VMS 
+-$!
+-$! Get compiler info
+-$!
+-$ XSNOW_VERSION = "Xsnow 1.37"
+-$ 
+-$ echo := write sys$output
+-$ echo " --- This is a command procedure to build ''XSNOW_VERSION' ---"
+-$ 
+-$ CFLAGS = "/OPTIMIZE"
+-$ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "" -
+-        .and. CFLAGS - "/VAXC" .eqs. CFLAGS
+-$ all_cflags = CFLAGS
+-$ if decc then all_cflags = "/DECC/PREFIX=ALL " + all_cflags
+-$!
+-$!      Build the option-file
+-$!
+-$ open/write optf xsnow.opt
+-$ write optf "xsnow"
+-$ if .not.decc 
+-$ then 
+-$ 	if f$trnlmn("MULTINET").nes.""
+-$ 	then
+-$ 		! Try first the SHARE in MULTINET:
+-$		write optf "MULTINET:UCX$IPC_SHR/SHARE"
+-$ 	else
+-$ 		! Well, try the OLB then ...
+-$ 		if f$search("SYS$SHARE:UCX$IPC.OLB").nes."" 
+-$ 		then write optf "SYS$SHARE:ucx$ipc/lib"
+-$ 		endif
+-$ 	endif
+-$ endif
+-$ write optf "Identification=""''XSNOW_VERSION'""
+-$!
+-$!
+-$!  Find out which X-Version we're running.  This will fail for older
+-$!  VMS versions (i.e., v5.5-1).  Therefore, choose DECWindows XUI for
+-$!  default.
+-$!
+-$ On Error Then GoTo XUI
+-$ IF F$SEARCH("SYS$UPDATE:DECW$GET_IMAGE_VERSION.COM").NES.""
+-$ THEN
+-$  @sys$update:decw$get_image_version sys$share:decw$xlibshr.exe decw$version
+-$  if f$extract(4,3,decw$version).eqs."1.0"
+-$  then
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$  endif
+-$  if f$extract(4,3,decw$version).eqs."1.1"
+-$  then
+-$   write optf "sys$share:decw$xmulibshr.exe/share"
+-$   write optf "sys$share:decw$xtshr.exe/share"
+-$  endif
+-$  if f$extract(4,3,decw$version).eqs."1.2"
+-$  then
+-$   write optf "sys$share:decw$xmulibshrr5.exe/share"
+-$   write optf "sys$share:decw$xtlibshrr5.exe/share"
+-$  endif
+-$  GoTo MAIN
+-$ ENDIF
+-$!
+-$XUI:
+-$!
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$MAIN:
+-$!
+-$ set noon
+-$ write optf "sys$share:decw$xlibshr.exe/share"
+-$ if .not.decc then write optf "SYS$SHARE:VAXCRTL/SHARE"
+-$ close optf
+-$ echo " . Compiling Xsnow "
+-$ cc'all_cflags' xsnow.c
+-$ echo " . Linking Xsnow"
+-$ on error then goto ERR
+-$ link xsnow.opt/opt
+-$ echo ""
+-$ echo "Xsnow is ready."
+-$ echo "  XSNOW :== $''f$env("DEFAULT")'XSNOW"
+-$ echo ""
+-$ XSNOW :== $'f$env("DEFAULT")'XSNOW
+-$ exit
+-$ 
+-$ ERR:
+-$  echo ""
+-$  echo "An error occur while linking Xsnow - Sorry"
+-$ EXIT
+diff -rupN ./xsnow-1.42/Makefile xsnow-comp-tmp/Makefile
+--- ./xsnow-1.42/Makefile	2001-12-15 18:43:31.000000000 -0500
++++ xsnow-comp-tmp/Makefile	1969-12-31 19:00:00.000000000 -0500
+@@ -1,957 +0,0 @@
+-# Makefile generated by imake - do not edit!
+-# $TOG: imake.c /main/104 1998/03/24 12:45:15 kaleb $
+-
+-# ----------------------------------------------------------------------
+-# Makefile generated from "Imake.tmpl" and <Imakefile>
+-# $TOG: Imake.tmpl /main/249 1997/10/13 15:28:56 kaleb $
+-#
+-#
+-#
+-#
+-# $XFree86: xc/config/cf/Imake.tmpl,v 3.87 2000/12/02 19:06:57 herrb Exp $
+-# ----------------------------------------------------------------------
+-
+-all::
+-
+-.SUFFIXES: .i
+-
+-# $TOG: Imake.cf /main/30 1998/04/28 13:55:25 barstow $
+-
+-# $XFree86: xc/config/cf/Imake.cf,v 3.63 2000/11/06 19:24:00 dawes Exp $
+-
+-# Keep cpp from replacing path elements containing 1/i586/i686
+-
+-#  for compatibility with 3.3.x
+-
+-# -----------------------------------------------------------------------
+-# site-specific configuration parameters that need to come before
+-# the platform-specific parameters - edit site.def to change
+-
+-# site:  $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+-
+-# site:  $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+-
+-# $XFree86: xc/config/cf/xf86site.def,v 3.170 2000/12/14 16:38:45 dawes Exp $
+-
+-# ----------------------------------------------------------------------
+-# platform-specific configuration parameters - edit linux.cf to change
+-
+-# platform:  $TOG: linux.cf /main/47 1998/04/17 11:32:51 mgreess
+-
+-# platform:  $XFree86: xc/config/cf/linux.cf,v 3.157 2000/12/14 17:00:46 dawes Exp $
+-
+-# operating system:  SuSE Linux [ELF] (2.4.0)
+-# libc:	(6.2.0)
+-# binutils:	(30)
+-
+-# $TOG: lnxLib.rules /main/14 1998/03/16 11:15:30 mgreess $
+-# $XFree86: xc/config/cf/lnxLib.rules,v 3.38 2000/06/15 20:49:56 dawes Exp $
+-
+-# $XFree86: xc/config/cf/xfree86.cf,v 3.338 2000/12/14 16:59:06 dawes Exp $
+-
+-# $TOG: xfree86.cf /main/38 1997/10/22 13:01:59 kaleb $
+-
+-AFB_DEFS = -DUSE_AFB
+-
+-DRIVERSDKDIR = $(USRLIBDIR)/Server
+-DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules
+-DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include
+-
+-       XF86SRC = $(SERVERSRC)/hw/xfree86
+-    XF86COMSRC = $(XF86SRC)/common
+- XF86PARSERSRC = $(XF86SRC)/parser
+-     XF86OSSRC = $(XF86SRC)/os-support
+- XF86DRIVERSRC = $(XF86SRC)/drivers
+-     DRIVERSRC = $(XF86DRIVERSRC)
+-
+-        XFREE86DOCDIR = $(DOCDIR)
+-      XFREE86PSDOCDIR = $(DOCPSDIR)
+-    XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
+-XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
+-
+-# $XConsortium: xf86.rules /main/9 1996/10/31 14:54:26 kaleb $
+-# $XFree86: xc/config/cf/xf86.rules,v 3.32 2000/10/30 23:02:06 tsi Exp $
+-
+-# ----------------------------------------------------------------------
+-# site-specific configuration parameters that go after
+-# the platform-specific parameters - edit site.def to change
+-
+-# site:  $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+-
+-# site:  $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+-
+-# ---------------------------------------------------------------------
+-# Imake rules for building libraries, programs, scripts, and data files
+-# rules:  $TOG: Imake.rules /main/227 1998/02/02 12:07:57 kaleb $
+-#
+-#
+-#
+-#
+-# rules:  $XFree86: xc/config/cf/Imake.rules,v 3.86 2000/12/12 17:05:30 dawes Exp $
+-
+- _NULLCMD_ = @ echo -n
+-
+-GLIDE2INCDIR = /usr/include/glide
+-
+-GLIDE3INCDIR = /usr/include/glide3
+-
+-GLIDE3LIBNAME = glide3
+-
+-TKLIBNAME =
+-
+-TKLIBDIR =
+-
+-TCLLIBNAME =
+-
+-TCLIBDIR =
+-
+-          PATHSEP = /
+-            SHELL = /bin/sh -e
+-
+-              TOP = .
+-      CURRENT_DIR = .
+-
+-            IMAKE = imake
+-           DEPEND = gccmakedep
+-        MKDIRHIER = mkdir -p
+-          REVPATH = revpath
+-    EXPORTLISTGEN =
+-             RMAN = rman
+-      RMANOPTIONS = -f HTML
+-        CONFIGSRC = $(TOP)/config
+-         IMAKESRC = $(CONFIGSRC)/imake
+-        DEPENDSRC = $(CONFIGSRC)/util
+-
+-          INCROOT = /usr/X11R6/include
+-        USRLIBDIR = /usr/X11R6/lib
+-           VARDIR = /var
+-        VARLIBDIR = $(VARDIR)/lib
+-  SYSTEMUSRLIBDIR = /usr/lib
+-  SYSTEMUSRINCDIR = /usr/include
+-         SHLIBDIR = /usr/X11R6/lib
+-       LINTLIBDIR = $(USRLIBDIR)/lint
+-          MANPATH = /usr/X11R6/man
+-    MANSOURCEPATH = $(MANPATH)/man
+-           MANDIR = $(MANSOURCEPATH)1
+-        LIBMANDIR = $(MANSOURCEPATH)3
+-       FILEMANDIR = $(MANSOURCEPATH)5
+-       MISCMANDIR = $(MANSOURCEPATH)$(MISCMANSUFFIX)
+-     DRIVERMANDIR = $(MANSOURCEPATH)$(DRIVERMANSUFFIX)
+-     LOGDIRECTORY = $(VARDIR)/log
+-
+-        VARRUNDIR = $(VARDIR)/run
+-
+-         VARDBDIR = /var/lib
+-
+-               AR = ar clq
+-  BOOTSTRAPCFLAGS =
+-               CC = gcc
+-               AS = as
+-
+-.SUFFIXES: .cc
+-
+-              CXX = c++
+-          CXXFILT = c++filt
+-           CXXLIB =
+-    CXXDEBUGFLAGS = -O2
+-CXXDEPENDINCLUDES =
+- CXXEXTRA_DEFINES =
+-CXXEXTRA_INCLUDES =
+-   CXXSTD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(CXXPROJECT_DEFINES)
+-       CXXOPTIONS =
+-      CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
+-       CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(CXXEXTRA_DEFINES) $(DEFINES)
+-         CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
+-
+-         COMPRESS = compress
+-          GZIPCMD = gzip
+-              CPP = /lib/cpp $(STD_CPP_DEFINES)
+-           RAWCPP = /lib/cpp -undef $(STD_CPP_OPTIONS)
+-    PREPROCESSCMD = gcc -E $(STD_CPP_DEFINES)
+-          INSTALL = install
+-     INSTALLFLAGS = -c
+-               LD = ld
+-              LEX = flex -l
+-               M4 = m4
+-          M4FLAGS =
+-           LEXLIB = -lfl
+-             YACC = bison -y
+-           CCYACC = bison -y
+-             LINT = lint
+-      LINTLIBFLAG = -C
+-         LINTOPTS = -axz
+-               LN = ln -s
+-             MAKE = make
+-               MV = mv -f
+-               CP = cp
+-
+-           RANLIB = ranlib
+-  RANLIBINSTFLAGS =
+-
+-               RM = rm -f
+-             PERL = perl
+-         PERLOPTS =
+-        MANSUFFIX = 1x
+-     LIBMANSUFFIX = 3x
+-    FILEMANSUFFIX = 5x
+-    MISCMANSUFFIX = 7
+-  DRIVERMANSUFFIX = 4
+-          MANDEFS = -D__filemansuffix__=$(FILEMANSUFFIX) -D__miscmansuffix__=$(MISCMANSUFFIX) -D__drivermansuffix__=$(DRIVERMANSUFFIX) -D__projectroot__=$(PROJECTROOT)
+-
+-            TROFF = groff -Tps
+-            NROFF = nroff
+-         MSMACROS = -ms
+-        MANMACROS = -man
+-              TBL = tbl
+-              EQN = eqn
+-             NEQN = neqn
+-              COL = col
+-         COLFLAGS = -b
+-            MODCC = gcc
+-           MODCPP = /lib/cpp
+-        MODCFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREAD_CFLAGS) $(ALLDEFINES)
+-            MODAS = as
+-       MODASFLAGS =
+-            MODLD = ld
+-       MODLDFLAGS =
+-MODLDCOMBINEFLAGS = -r
+-            MODAR = ar clq
+-        MODRANLIB =
+-
+-     STD_INCLUDES =
+-  STD_CPP_OPTIONS = -traditional
+-  STD_CPP_DEFINES = -traditional -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(PROJECT_DEFINES)
+-      STD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(PROJECT_DEFINES)
+- EXTRA_LOAD_FLAGS =
+-  EXTRA_LDOPTIONS =
+-  EXTRA_LIBRARIES =
+-             TAGS = ctags
+-
+-   PARALLELMFLAGS =
+-
+-    SHAREDCODEDEF =
+-         SHLIBDEF =
+-
+-     SHLIBLDFLAGS = -shared
+-
+-         PICFLAGS = -fPIC
+-
+-      CXXPICFLAGS = -fPIC
+-
+-    PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO
+-
+-     INSTPGMFLAGS =
+-
+-     INSTBINFLAGS = -m 0755
+-     INSTUIDFLAGS = -m 4711
+-     INSTLIBFLAGS = -m 0644
+-     INSTINCFLAGS = -m 0444
+-     INSTMANFLAGS = -m 0444
+-     INSTDATFLAGS = -m 0444
+-    INSTKMEMFLAGS = -m 4711
+-
+-      PROJECTROOT = /usr/X11R6
+-
+-      CDEBUGFLAGS = -O2
+-        CCOPTIONS =
+-
+-      ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES)
+-       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES)
+-           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
+-        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+-         LDPRELIB = -L$(USRLIBDIR)
+-        LDPOSTLIB =
+-        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)  $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+-     CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+-
+-           LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+-
+-           CCLINK = $(CC)
+-
+-          CXXLINK = $(CXX)
+-
+-     LDSTRIPFLAGS = -x
+-   LDCOMBINEFLAGS = -r
+-      DEPENDFLAGS =
+-
+-# Not sure this belongs here
+-         TKLIBDIR =
+-         TKINCDIR =
+-        TKLIBNAME =
+-        TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME)
+-        TCLLIBDIR =
+-        TCLINCDIR =
+-       TCLLIBNAME =
+-       TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME)
+-
+-        MACROFILE = linux.cf
+-           RM_CMD = $(RM)
+-
+-    IMAKE_DEFINES =
+-
+-         IRULESRC = $(CONFIGDIR)
+-        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
+-
+-     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl 			$(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) 			$(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xf86site.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES)
+-
+-# $TOG: X11.rules /main/4 1997/04/30 15:23:24 kaleb $
+-
+-# $XFree86: xc/config/cf/X11.rules,v 1.5 2000/11/06 19:24:00 dawes Exp $
+-
+-# ----------------------------------------------------------------------
+-# X Window System Build Parameters and Rules
+-# $TOG: X11.tmpl /main/308 1998/06/16 15:14:24 msr $
+-#
+-#
+-#
+-#
+-# $XFree86: xc/config/cf/X11.tmpl,v 1.93 2000/12/15 18:18:04 keithp Exp $
+-
+-STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
+-
+-FCHOWN_DEFINES = -DHAS_FCHOWN
+-
+-# -----------------------------------------------------------------------
+-# X Window System make variables; these need to be coordinated with rules
+-
+-             XTOP = $(TOP)
+-           BINDIR = /usr/X11R6/bin
+-     BUILDINCROOT = $(TOP)/exports
+-      BUILDINCDIR = $(BUILDINCROOT)/include
+-      BUILDINCTOP = ../..
+-      BUILDLIBDIR = $(TOP)/exports/lib
+-      BUILDLIBTOP = ../..
+-      BUILDBINDIR = $(TOP)/exports/bin
+-      BUILDBINTOP = ../..
+-   BUILDMODULEDIR = $(BUILDLIBDIR)/modules
+-   BUILDMODULETOP = $(BUILDLIBTOP)/..
+-    XBUILDINCROOT = $(XTOP)/exports
+-     XBUILDINCDIR = $(XBUILDINCROOT)/include/X11
+-     XBUILDINCTOP = ../../..
+-     XBUILDBINDIR = $(XBUILDINCROOT)/bin
+-           INCDIR = $(INCROOT)
+-           ADMDIR = /usr/adm
+-           LIBDIR = $(USRLIBDIR)/X11
+-       LIBEXECDIR = /usr/X11R6/libexec
+-        MODULEDIR = $(USRLIBDIR)/modules
+-   TOP_X_INCLUDES =
+-
+-        ETCX11DIR = /etc/X11
+-
+-          CONFDIR = $(ETCX11DIR)
+-
+-           DOCDIR = $(LIBDIR)/doc
+-       DOCHTMLDIR = $(DOCDIR)/html
+-         DOCPSDIR = $(DOCDIR)/PostScript
+-          FONTDIR = $(LIBDIR)/fonts
+-     ENCODINGSDIR = $(FONTDIR)/encodings
+-         XINITDIR = $(LIBDIR)/xinit
+-           XDMDIR = /etc/X11/xdm
+-        XDMVARDIR = $(VARLIBDIR)/xdm
+-           TWMDIR = $(LIBDIR)/twm
+-           XSMDIR = $(LIBDIR)/xsm
+-           NLSDIR = $(LIBDIR)/nls
+-       XLOCALEDIR = $(LIBDIR)/locale
+-        PEXAPIDIR = $(LIBDIR)/PEX
+-      LBXPROXYDIR = $(LIBDIR)/lbxproxy
+-  PROXYMANAGERDIR = $(LIBDIR)/proxymngr
+-        XPRINTDIR = $(LIBDIR)/xserver
+-      XAPPLOADDIR = $(LIBDIR)/app-defaults
+-       FONTCFLAGS = -t
+-
+-     INSTAPPFLAGS = $(INSTDATFLAGS)
+-
+-              RGB = $(BINDIR)/rgb
+-            FONTC = $(BINDIR)/bdftopcf
+-        MKFONTDIR = $(BINDIR)/mkfontdir
+-      MKHTMLINDEX = $(BINDIR)/mkhtmlindex
+-          UCS2ANY = $(BINDIR)/ucs2any.pl
+-      BDFTRUNCATE = $(BINDIR)/bdftruncate.pl
+-     UCSMAPPREFIX = $(FONTDIR)/util/map-
+-
+-     HTMLINDEXCMD = HtmlIndexCmd
+-
+-       DOCUTILSRC = $(XTOP)/doc/util
+-        CLIENTSRC = $(TOP)/clients
+-          DEMOSRC = $(TOP)/demos
+-       XDOCMACROS = $(DOCUTILSRC)/macros.t
+-       XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
+-       PROGRAMSRC = $(TOP)/programs
+-           LIBSRC = $(XTOP)/lib
+-          FONTSRC = $(XTOP)/fonts
+-     ENCODINGSSRC = $(FONTSRC)/encodings
+-       INCLUDESRC = $(BUILDINCROOT)/include
+-      XINCLUDESRC = $(INCLUDESRC)/X11
+-        SERVERSRC = $(XTOP)/programs/Xserver
+-       CONTRIBSRC = $(XTOP)/../contrib
+-   UNSUPPORTEDSRC = $(XTOP)/unsupported
+-           DOCSRC = $(XTOP)/doc
+-           RGBSRC = $(XTOP)/programs/rgb
+-      BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
+-     MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
+-    FONTSERVERSRC = $(PROGRAMSRC)/xfs
+-       FONTINCSRC = $(XTOP)/include/fonts
+-        EXTINCSRC = $(XTOP)/include/extensions
+-      FTSOURCEDIR = $(TOP)/extras/FreeType
+-     XTTSOURCEDIR = $(TOP)/extras/X-TrueType
+-       MESASRCDIR = $(TOP)/extras/Mesa
+-  OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample
+-        PSWRAPSRC = $(XTOP)/config/pswrap
+-     TRANSCOMMSRC = $(LIBSRC)/xtrans
+-   TRANS_INCLUDES = -I$(TRANSCOMMSRC)
+- CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES)
+-
+-       XENVLIBDIR = $(USRLIBDIR)
+-   CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR)
+-
+-# $TOG: lnxLib.tmpl /main/7 1998/03/20 14:26:41 mgreess $
+-# $XFree86: xc/config/cf/lnxLib.tmpl,v 3.12 1999/06/27 14:07:17 dawes Exp $
+-
+-          XLIBSRC = $(LIBSRC)/X11
+-
+-SOXLIBREV = 6.2
+-DEPXONLYLIB =
+-XONLYLIB =  -lX11
+-
+-LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln
+-
+-         XLIBONLY = $(XONLYLIB)
+-
+-      XEXTLIBSRC = $(LIBSRC)/Xext
+-
+-SOXEXTREV = 6.4
+-DEPEXTENSIONLIB =
+-EXTENSIONLIB =  -lXext
+-
+-LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln
+-
+-LINTEXTENSIONLIB = $(LINTEXTENSION)
+-          DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
+-             XLIB = $(EXTENSIONLIB) $(XONLYLIB)
+-         LINTXLIB = $(LINTXONLYLIB)
+-
+-    XSSLIBSRC = $(LIBSRC)/Xss
+-
+-DEPXSSLIB = $(USRLIBDIR)/libXss.a
+-XSSLIB =  -lXss
+-
+-LINTXSS = $(LINTLIBDIR)/llib-lXss.ln
+-
+-    XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
+-
+-SOXXF86MISCREV = 1.0
+-DEPXXF86MISCLIB =
+-XXF86MISCLIB =  -lXxf86misc
+-
+-LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln
+-
+-    XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
+-
+-SOXXF86VMREV = 1.0
+-DEPXXF86VMLIB =
+-XXF86VMLIB =  -lXxf86vm
+-
+-LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln
+-
+-    XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
+-
+-SOXXF86DGAREV = 1.0
+-DEPXXF86DGALIB =
+-XXF86DGALIB =  -lXxf86dga
+-
+-LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln
+-
+-    XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
+-
+-DEPXXF86RUSHLIB = $(USRLIBDIR)/libXxf86rush.a
+-XXF86RUSHLIB =  -lXxf86rush
+-
+-LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln
+-
+-    XVLIBSRC = $(LIBSRC)/Xv
+-
+-SOXVREV = 1.0
+-DEPXVLIB =
+-XVLIB =  -lXv
+-
+-LINTXV = $(LINTLIBDIR)/llib-lXv.ln
+-
+-    XINERAMALIBSRC = $(LIBSRC)/Xinerama
+-
+-DEPXINERAMALIB = $(USRLIBDIR)/libXinerama.a
+-XINERAMALIB =  -lXinerama
+-
+-LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+-
+-    XINERAMALIBSRC = $(LIBSRC)/Xinerama
+-
+-DEPXINERAMALIB = $(USRLIBDIR)/libXinerama.a
+-XINERAMALIB =  -lXinerama
+-
+-LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+-
+-    DPSLIBSRC = $(LIBSRC)/dps
+-
+-SODPSREV = 1.0
+-DEPDPSLIB =
+-DPSLIB =  -ldps
+-
+-LINTDPS = $(LINTLIBDIR)/llib-ldps.ln
+-
+-    DPSTKLIBSRC = $(LIBSRC)/dpstk
+-
+-SODPSTKREV = 1.0
+-DEPDPSTKLIB =
+-DPSTKLIB =  -ldpstk
+-
+-LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln
+-
+-    PSRESLIBSRC = $(LIBSRC)/psres
+-
+-SOPSRESREV = 1.0
+-DEPPSRESLIB =
+-PSRESLIB =  -lpsres
+-
+-LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln
+-
+-    GLXLIBSRC = $(LIBSRC)/GL
+-
+-SOGLREV = 1.2
+-DEPGLXLIB =
+-GLXLIB =  -lGL
+-
+-LINTGLX = $(LINTLIBDIR)/llib-lGL.ln
+-
+-    GLWIDGETSRC = $(LIBSRC)/GLw
+-
+-DEPGLWLIB = $(USRLIBDIR)/libGLw.a
+-GLWLIB =  -lGLw
+-
+-LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln
+-
+-    XRENDERLIBSRC = $(LIBSRC)/Xrender
+-
+-SOXRENDERREV = 1.0
+-DEPXRENDERLIB =
+-XRENDERLIB =  -lXrender
+-
+-LINTXRENDER = $(LINTLIBDIR)/llib-lXrender.ln
+-
+-    XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
+-
+-DEPXFONTCACHELIB = $(USRLIBDIR)/libXfontcache.a
+-XFONTCACHELIB =  -lXfontcache
+-
+-LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln
+-
+-         XAUTHSRC = $(LIBSRC)/Xau
+-
+-DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
+-XAUTHLIB =  -lXau
+-
+-LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln
+-
+-      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
+-
+-DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a
+-XDMCPLIB =  -lXdmcp
+-
+-LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln
+-
+-           XMUSRC = $(LIBSRC)/Xmu
+-
+-SOXMUREV = 6.2
+-DEPXMULIB =
+-XMULIB =  -lXmu
+-
+-LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
+-
+-       OLDXLIBSRC = $(LIBSRC)/oldX
+-
+-DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
+-OLDXLIB =  -loldX
+-
+-LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln
+-
+-         XPLIBSRC = $(LIBSRC)/Xp
+-
+-SOXPREV = 6.2
+-DEPXPLIB =
+-XPLIB =  -lXp
+-
+-LINTXP = $(LINTLIBDIR)/llib-lXp.ln
+-
+-       TOOLKITSRC = $(LIBSRC)/Xt
+-
+-SOXTREV = 6.0
+-DEPXTOOLONLYLIB =
+-XTOOLONLYLIB =  -lXt
+-
+-LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln
+-
+-      DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
+-         XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
+-     LINTXTOOLLIB = $(LINTXTOOLONLYLIB)
+-
+-       XALIBSRC = $(LIBSRC)/Xa
+-
+-SOXAREV = 1.0
+-DEPXALIB =
+-XALIB =  -lXa
+-
+-LINTXA = $(LINTLIBDIR)/llib-lXa.ln
+-
+-       AWIDGETSRC = $(LIBSRC)/Xaw
+-
+-SOXAWREV = 7.0
+-DEPXAWLIB =
+-XAWLIB =  -lXaw
+-
+-LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
+-
+-       AWIDGET6SRC = $(LIBSRC)/Xaw6
+-
+-SOXAW6REV = 6.1
+-DEPXAW6LIB =
+-XAW6LIB =  -lXaw
+-
+-LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln
+-
+-         XILIBSRC = $(LIBSRC)/Xi
+-
+-SOXINPUTREV = 6.0
+-DEPXILIB =
+-XILIB =  -lXi
+-
+-LINTXI = $(LINTLIBDIR)/llib-lXi.ln
+-
+-      XTESTLIBSRC = $(LIBSRC)/Xtst
+-
+-SOXTESTREV = 6.1
+-DEPXTESTLIB =
+-XTESTLIB =  -lXtst
+-
+-LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln
+-
+-        PEXLIBSRC = $(LIBSRC)/PEX5
+-
+-SOPEXREV = 6.0
+-DEPPEXLIB =
+-PEXLIB =  -lPEX5
+-
+-LINTPEX = $(LINTLIBDIR)/llib-lPEX5.ln
+-
+-        XIELIBSRC = $(LIBSRC)/XIE
+-
+-SOXIEREV = 6.0
+-DEPXIELIB =
+-XIELIB =  -lXIE
+-
+-LINTXIE = $(LINTLIBDIR)/llib-lXIE.ln
+-
+-      PHIGSLIBSRC = $(LIBSRC)/PHIGS
+-
+-DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a
+-PHIGSLIB =  -lphigs
+-
+-LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln
+-
+-DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
+-XBSDLIB =  -lXbsd
+-
+-LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln
+-
+-           ICESRC = $(LIBSRC)/ICE
+-
+-SOICEREV = 6.3
+-DEPICELIB =
+-ICELIB =  -lICE
+-
+-LINTICE = $(LINTLIBDIR)/llib-lICE.ln
+-
+-            SMSRC = $(LIBSRC)/SM
+-
+-SOSMREV = 6.0
+-DEPSMLIB =
+-SMLIB =  -lSM
+-
+-LINTSM = $(LINTLIBDIR)/llib-lSM.ln
+-
+-           XKEYSRC = $(LIBSRC)/Xkey
+-
+-SOXKEYREV = 6.0
+-DEPXKEYLIB =
+-XKEYLIB =  -lXkey
+-
+-LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln
+-
+-         FSLIBSRC = $(LIBSRC)/FS
+-
+-DEPFSLIB = $(USRLIBDIR)/libFS.a
+-FSLIB =  -lFS
+-
+-LINTFS = $(LINTLIBDIR)/llib-lFS.ln
+-
+-         FONTLIBSRC = $(LIBSRC)/font
+-
+-SOFONTREV = 1.3
+-DEPFONTLIB =
+-FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC)  -lXfont
+-
+-LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+-#
+-SOFONTREV = 1.3
+-DEPXFONTLIB =
+-XFONTLIB =  -lXfont
+-
+-LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+-
+-     FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
+-
+-DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a
+-FONTSTUBLIB =  -lfntstubs
+-
+-LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln
+-         DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
+-            FONTLIB = $(XFONTLIB) $(FONTSTUBLIB)
+-
+-          XPMLIBSRC = $(LIBSRC)/Xpm
+-
+-SOXPMREV = 4.11
+-DEPXPMLIB =
+-XPMLIB =  -lXpm
+-
+-LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln
+-
+-          XFTLIBSRC = $(LIBSRC)/Xft
+-
+-SOXFTREV = 1.0
+-DEPXFTLIB =
+-XFTLIB =  -lXft
+-
+-LINTXFT = $(LINTLIBDIR)/llib-lXft.ln
+-
+-FREETYPE2DIR = freetype-2.0.1
+-FREETYPE2LIBDIR = freetype-2.0.1/lib
+-FREETYPE2INCDIR = freetype-2.0.1/include/freetype2
+-FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)
+-FREETYPE2LIB = -L$(FREETYPE2LIBDIR) -lfreetype
+-FREETYPE2DEFINES = -DFREETYPE2
+-
+-    XKBFILELIBSRC = $(LIBSRC)/xkbfile
+-
+-DEPXKBFILELIB = $(USRLIBDIR)/libxkbfile.a
+-XKBFILELIB =  -lxkbfile
+-
+-LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln
+-
+-     XKBCOMPCMD = $(BINDIR)/xkbcomp
+-
+-    XKBUILIBSRC = $(LIBSRC)/xkbui
+-
+-DEPXKBUILIB = $(USRLIBDIR)/libxkbui.a
+-XKBUILIB =  -lxkbui
+-
+-LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln
+-
+-          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
+-
+-         DEPLIBS1 = $(DEPLIBS)
+-         DEPLIBS2 = $(DEPLIBS)
+-         DEPLIBS3 = $(DEPLIBS)
+-         DEPLIBS4 = $(DEPLIBS)
+-         DEPLIBS5 = $(DEPLIBS)
+-         DEPLIBS6 = $(DEPLIBS)
+-         DEPLIBS7 = $(DEPLIBS)
+-         DEPLIBS8 = $(DEPLIBS)
+-         DEPLIBS9 = $(DEPLIBS)
+-         DEPLIBS10 = $(DEPLIBS)
+-
+-XMULIBONLY = -lXmu
+-XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
+-
+-        CONFIGDIR = $(LIBDIR)/config
+-
+-    USRLIBDIRPATH = $(USRLIBDIR)
+-        LDPRELIBS = -L$(USRLIBDIR)
+-       LDPOSTLIBS =
+-     TOP_INCLUDES = -I$(INCROOT) $(TOP_X_INCLUDES)
+-  PROJECT_DEFINES =
+-
+-CXXPROJECT_DEFINES =
+-
+-# ----------------------------------------------------------------------
+-# start of Imakefile
+-
+-SYS_LIBRARIES = -lm -lXpm
+-LOCAL_LIBRARIES = $(XLIB)
+-DEPLIBS = $(DEPXLIB)
+-SRCS = xsnow.c toon_root.c xsnow.h vroot.h
+-OBJS = xsnow.o toon_root.o
+-
+- PROGRAM = xsnow
+-
+-all:: xsnow
+-
+-xsnow: $(OBJS) $(DEPLIBS)
+-	$(RM) $@
+-	$(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS)  $(EXTRA_LOAD_FLAGS)
+-
+-install:: xsnow
+-	@if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \
+-	else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi
+-	$(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS)  xsnow $(DESTDIR)$(BINDIR)/xsnow
+-
+-install.man:: xsnow.man
+-	@if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \
+-	else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi
+-	$(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xsnow.man $(DESTDIR)$(MANDIR)/xsnow.$(MANSUFFIX)
+-
+-depend::
+-	$(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
+-
+-lint:
+-	$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
+-lint1:
+-	$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
+-
+-clean::
+-	$(RM) xsnow
+-
+-# ----------------------------------------------------------------------
+-# common rules for all Makefiles - do not edit
+-
+-.c.i:
+-	$(RM) $@
+-	 $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@
+-
+-.SUFFIXES: .s
+-
+-.c.s:
+-	$(RM) $@
+-	 $(CC) -S $(CFLAGS) $(_NOOP_) $*.c
+-
+-emptyrule::
+-
+-clean::
+-	$(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut  "#"*
+-
+-Makefile::
+-	-@if [ -f Makefile ]; then set -x; \
+-	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
+-	else exit 0; fi
+-	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+-
+-tags::
+-	$(TAGS) -w *.[ch]
+-	$(TAGS) -xw *.[ch] > TAGS
+-
+-man_keywords::
+-
+-html_index::
+-
+-# ----------------------------------------------------------------------
+-# empty rules for directories that do not have SUBDIRS - do not edit
+-
+-install::
+-	@echo "install in $(CURRENT_DIR) done"
+-
+-install.man::
+-	@echo "install.man in $(CURRENT_DIR) done"
+-
+-install.sdk::
+-	@echo "install.sdk in $(CURRENT_DIR) done"
+-
+-Makefiles::
+-
+-includes::
+-
+-depend::
+-
+-# ----------------------------------------------------------------------
+-# dependencies generated by makedepend
+-
+-# DO NOT DELETE
+-xsnow.o: xsnow.c /usr/X11R6/include/X11/Intrinsic.h \
+- /usr/X11R6/include/X11/Xlib.h /usr/include/sys/types.h \
+- /usr/include/features.h /usr/include/sys/cdefs.h \
+- /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stddef.h \
+- /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+- /usr/include/sys/select.h /usr/include/bits/select.h \
+- /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
+- /usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
+- /usr/X11R6/include/X11/Xosdefs.h /usr/X11R6/include/X11/Xutil.h \
+- /usr/X11R6/include/X11/Xresource.h /usr/include/string.h \
+- /usr/X11R6/include/X11/Core.h /usr/X11R6/include/X11/Composite.h \
+- /usr/X11R6/include/X11/Constraint.h /usr/X11R6/include/X11/Object.h \
+- /usr/X11R6/include/X11/RectObj.h /usr/X11R6/include/X11/Xos.h \
+- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+- /usr/include/sys/stat.h /usr/include/bits/stat.h \
+- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+- /usr/include/bits/confname.h /usr/include/getopt.h \
+- /usr/include/sys/time.h /usr/include/bits/time.h \
+- /usr/X11R6/include/X11/Xarch.h /usr/X11R6/include/X11/xpm.h \
+- /usr/include/stdio.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stdarg.h \
+- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+- /usr/include/bits/wchar.h /usr/include/gconv.h \
+- /usr/include/bits/stdio_lim.h /usr/include/math.h \
+- /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h \
+- /usr/include/bits/mathcalls.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/float.h \
+- /usr/include/signal.h /usr/include/bits/signum.h \
+- /usr/include/bits/siginfo.h /usr/include/bits/wordsize.h \
+- /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h \
+- /usr/include/asm/sigcontext.h /usr/include/bits/sigstack.h \
+- /usr/include/ucontext.h /usr/include/sys/ucontext.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/limits.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/syslimits.h \
+- /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+- /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+- /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+- /usr/include/bits/waitstatus.h /usr/include/alloca.h xsnow.h \
+- pixmaps/snow00.xbm pixmaps/snow01.xbm pixmaps/snow02.xbm \
+- pixmaps/snow03.xbm pixmaps/snow04.xbm pixmaps/snow05.xbm \
+- pixmaps/snow06.xbm pixmaps/tannenbaum.xbm pixmaps/BigSanta1.XPM \
+- pixmaps/BigSanta2.XPM pixmaps/BigSanta3.XPM pixmaps/BigSanta4.XPM \
+- pixmaps/BigSantaRudolf1.XPM pixmaps/BigSantaRudolf2.XPM \
+- pixmaps/BigSantaRudolf3.XPM pixmaps/BigSantaRudolf4.XPM \
+- pixmaps/MediumSanta1.XPM pixmaps/MediumSanta2.XPM \
+- pixmaps/MediumSanta3.XPM pixmaps/MediumSanta4.XPM \
+- pixmaps/MediumSantaRudolf1.XPM pixmaps/MediumSantaRudolf2.XPM \
+- pixmaps/MediumSantaRudolf3.XPM pixmaps/MediumSantaRudolf4.XPM \
+- pixmaps/RegularSanta1.XPM pixmaps/RegularSanta2.XPM \
+- pixmaps/RegularSanta3.XPM pixmaps/RegularSanta4.XPM \
+- pixmaps/RegularSantaRudolf1.XPM pixmaps/RegularSantaRudolf2.XPM \
+- pixmaps/RegularSantaRudolf3.XPM pixmaps/RegularSantaRudolf4.XPM \
+- toon.h /usr/X11R6/include/X11/extensions/shape.h
+-toon_root.o: toon_root.c toon.h /usr/X11R6/include/X11/Intrinsic.h \
+- /usr/X11R6/include/X11/Xlib.h /usr/include/sys/types.h \
+- /usr/include/features.h /usr/include/sys/cdefs.h \
+- /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stddef.h \
+- /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+- /usr/include/sys/select.h /usr/include/bits/select.h \
+- /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
+- /usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
+- /usr/X11R6/include/X11/Xosdefs.h /usr/X11R6/include/X11/Xutil.h \
+- /usr/X11R6/include/X11/Xresource.h /usr/include/string.h \
+- /usr/X11R6/include/X11/Core.h /usr/X11R6/include/X11/Composite.h \
+- /usr/X11R6/include/X11/Constraint.h /usr/X11R6/include/X11/Object.h \
+- /usr/X11R6/include/X11/RectObj.h /usr/X11R6/include/X11/Xos.h \
+- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+- /usr/include/sys/stat.h /usr/include/bits/stat.h \
+- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+- /usr/include/bits/confname.h /usr/include/getopt.h \
+- /usr/include/sys/time.h /usr/include/bits/time.h \
+- /usr/X11R6/include/X11/Xarch.h /usr/X11R6/include/X11/xpm.h \
+- /usr/X11R6/include/X11/extensions/shape.h \
+- /usr/X11R6/include/X11/Xatom.h /usr/X11R6/include/X11/Xproto.h \
+- /usr/X11R6/include/X11/Xmd.h /usr/X11R6/include/X11/Xprotostr.h \
+- /usr/include/stdio.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stdarg.h \
+- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+- /usr/include/bits/wchar.h /usr/include/gconv.h \
+- /usr/include/bits/stdio_lim.h
+diff -rupN ./xsnow-1.42/PATCH_LICENSE xsnow-comp-tmp/PATCH_LICENSE
+--- ./xsnow-1.42/PATCH_LICENSE	1969-12-31 19:00:00.000000000 -0500
++++ xsnow-comp-tmp/PATCH_LICENSE	2016-02-27 19:47:13.444837394 -0500
+@@ -0,0 +1,21 @@
++The MIT License (MIT)
++
++Copyright (c) 2016 Austin Anderson
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
+diff -rupN ./xsnow-1.42/xsnow.c xsnow-comp-tmp/xsnow.c
+--- ./xsnow-1.42/xsnow.c	2001-12-15 18:44:47.000000000 -0500
++++ xsnow-comp-tmp/xsnow.c	2016-02-27 19:47:13.448170769 -0500
+@@ -212,7 +212,8 @@
+ 	etc.
+ */
+ #define VERSION "Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)\n\
+-WWW: http://www.euronet.nl/~rja/Xsnow/\n"
++WWW: http://www.euronet.nl/~rja/Xsnow/\n\
++Compositor patch v1 https://github.com/protractorninja/xsnow-comp-patch\n"
+ 
+ #ifdef VMS
+ #include <socket.h>
+@@ -253,6 +254,7 @@ typedef int ErrorHandler();
+ #endif
+ Display *display;
+ int screen;
++Window snowWin;
+ Window rootWin;
+ char toon_message[TOON_MESSAGE_LENGTH] = "";
+ Window Parent;
+@@ -272,6 +274,7 @@ int NoKeepSnow = 0;
+ int NoKeepSBot = 0;
+ int NoKeepSWin = 0;
+ int NoPopuphandling = 1;
++int ForceNewWindow = 0;
+ int NoWind = 0;
+ unsigned int borderWidth = 0;
+ int SnowOffset = 0;
+@@ -321,6 +324,7 @@ XRectangle AddRect;
+ unsigned int RunCounter = 0;
+ int SantaUpdateFactor = 3;
+ /* Forward decls */
++int  HasCompositor();
+ void Usage();
+ void SigHandler();
+ void SigHupHandler();
+@@ -506,6 +510,9 @@ char *av[];
+ 				printf("\nThis is %s\n\n", VERSION);
+ 				exit(0);
+ 			}
++			else if (strcmp(arg, "-nouseroot") == 0) {
++				ForceNewWindow = 1;
++			}
+ 			else {
+ 				Usage();
+ 			}
+@@ -553,10 +560,29 @@ char *av[];
+ 		}
+ 		screen = DefaultScreen(display);
+ 		rootWin = ToonGetRootWindow(display, screen, &Parent);
+-		black = BlackPixel(display, screen);
+-		white = WhitePixel(display, screen);
+ 		display_width = DisplayWidth(display, screen);
+ 		display_height = DisplayHeight(display, screen);
++		if (HasCompositor(display, screen) || ForceNewWindow) {
++			NoSanta = 1;
++			XVisualInfo vinfo;
++			XMatchVisualInfo(display, DefaultScreen(display), 32, TrueColor, &vinfo);
++			XSetWindowAttributes attr;
++			attr.colormap = XCreateColormap(display, rootWin, vinfo.visual, AllocNone);
++			attr.border_pixel = 0;
++			attr.background_pixel = 0;
++			attr.override_redirect = 1;
++			snowWin = XCreateWindow(display, rootWin, 0, 0, display_width, display_height, 0, vinfo.depth, InputOutput, vinfo.visual, CWColormap | CWBorderPixel | CWBackPixel | CWOverrideRedirect, &attr);
++			XClassHint* hint = XAllocClassHint();
++			hint->res_name = "xsnow";
++			hint->res_class = "xsnow";
++			XSetClassHint(display, snowWin, hint);
++			XMapRaised(display, snowWin);
++			XLowerWindow(display, snowWin);
++		} else {
++			snowWin = rootWin;
++		}
++		black = BlackPixel(display, screen);
++		white = WhitePixel(display, screen);
+ 		center_x = display_width / 2;
+ 		center_y = display_height / 2;
+ 		current_snow_height = display_height;
+@@ -566,13 +592,13 @@ char *av[];
+ 		}
+ 		for (flake=0; flake<=SNOWFLAKEMAXTYPE; flake++) {
+ 			rp = &snowPix[flake];
+-			rp->pixmap = XCreateBitmapFromData(display, rootWin,
++			rp->pixmap = XCreateBitmapFromData(display, snowWin,
+ 						rp->snowBits, rp->width, rp->height);
+ 			if (rp->height > MaxSnowFlakeHeight) MaxSnowFlakeHeight = rp->height;
+ 		}
+ 		snowflakes = (Snow *)malloc(sizeof(Snow) * MAXSNOWFLAKES);
+ 		tp = &tannenbaumPix[0];
+-		tp->pixmap = XCreateBitmapFromData(display, rootWin,
++		tp->pixmap = XCreateBitmapFromData(display, snowWin,
+ 						tp->tannenbaumBits, tp->width, tp->height);
+ 		InitSantaPixymaps();
+ 		redPix =   AllocNamedColor(redColor, black);
+@@ -581,21 +607,21 @@ char *av[];
+ 		blackPix = AllocNamedColor(blackColor, black);
+ 		snowcPix = AllocNamedColor(snowColor, white);   
+ 		trPix = AllocNamedColor(trColor, black);
+-		gc = XCreateGC(display, rootWin, 0, NULL);
++		gc = XCreateGC(display, snowWin, 0, NULL);
+ 		XGetGCValues(display, gc, 0, &xgcv);
+ 		XSetForeground(display, gc, blackPix);
+ 		XSetFillStyle(display, gc, FillStippled);
+ 		if(strcmp(bgColor,"none") != 0) {
+ 			bgPix = AllocNamedColor(bgColor, white);
+-			XSetWindowBackground(display, rootWin, bgPix);
+-			XClearWindow(display, rootWin);
++			XSetWindowBackground(display, snowWin, bgPix);
++			XClearWindow(display, snowWin);
+ 			XFlush(display);
+ 			if (!UseFillForClear) {
+ 				printf("\nNote: when using backgrounds of one color also specifying\n");
+ 				printf("      -solidbg MAY greatly improve performance!\n");
+ 			}
+ 			else {
+-				ClearSnowGC = XCreateGC(display, rootWin, 0L, &xgcv);
++				ClearSnowGC = XCreateGC(display, snowWin, 0L, &xgcv);
+ 				XCopyGC(display,gc,0,ClearSnowGC);
+ 				XSetForeground(display,ClearSnowGC, bgPix);
+ 			}
+@@ -608,13 +634,13 @@ char *av[];
+ 			exit(1);
+ 		}
+ 		for (flake=0; flake<=SNOWFLAKEMAXTYPE; flake++) {
+-			SnowGC[flake] = XCreateGC(display, rootWin, 0L, &xgcv);
++			SnowGC[flake] = XCreateGC(display, snowWin, 0L, &xgcv);
+ 			XCopyGC(display,gc,0,SnowGC[flake]);
+ 			XSetStipple(display, SnowGC[flake], snowPix[flake].pixmap);
+ 			XSetForeground(display,SnowGC[flake],snowcPix);
+ 			XSetFillStyle(display, SnowGC[flake], FillStippled);
+ 		}
+-		TreesGC = XCreateGC(display, rootWin, 0L, &xgcv);
++		TreesGC = XCreateGC(display, snowWin, 0L, &xgcv);
+ 		XCopyGC(display,gc,0,TreesGC);
+ 		XSetStipple(display, TreesGC, tannenbaumPix[0].pixmap);
+ 		XSetForeground(display,TreesGC,trPix);
+@@ -678,7 +704,7 @@ rc = MWR(1);
+ 														ev.xconfigure.width,
+ 														ev.xconfigure.height,
+ 														ev.xconfigure.border_width,
+-														(rootWin == ev.xconfigure.event)  
++														(snowWin == ev.xconfigure.event)  
+ 												);
+ 									printf("ConfigureNotify calling DDLT\n");
+ 									#endif
+@@ -772,7 +798,7 @@ rc = MWR(1);
+ 		XDestroyRegion(PrevWr);
+ 		XDestroyRegion(WDR);
+ 		XDestroyRegion(rscrr);
+-		XClearWindow(display, rootWin);
++		XClearWindow(display, snowWin);
+ 		XCloseDisplay(display);
+ 		exit(0);
+ }		/* End of the snow */
+@@ -809,6 +835,7 @@ Usage()
+ 		USEPRT("       -nokeepsnowonwindows\n");
+ 		USEPRT("       -nokeepsnowonscreen\n");
+ 		USEPRT("       -nonopopup\n");
++		USEPRT("       -nouseroot\n");
+ 		USEPRT("       -version\n\n");
+ 		USEPRT("Recommended: xsnow -bg SkyBlue3\n");
+ 		exit(1);
+@@ -827,7 +854,7 @@ SigHupHandler()
+ 	XSetForeground(display,FurGC,trPix);
+ 	XSetFillStyle(display,FurGC, FillSolid);
+ 	XSetRegion(display,FurGC,snscr);
+-	XFillRectangle(display,rootWin,FurGC,0,0,display_width,display_height);
++	XFillRectangle(display,snowWin,FurGC,0,0,display_width,display_height);
+ 	XFlush(display);
+ 	signal(SIGHUP, Sig_Hup_ptr);
+ }
+@@ -1002,7 +1029,7 @@ int rx;
+ 		Snow *snow;
+ 		snow = &snowflakes[rx];
+ 		XSetTSOrigin(display, SnowGC[snow->whatFlake], snow->intX, snow->intY);
+-		XFillRectangle(display, rootWin, SnowGC[snow->whatFlake],
++		XFillRectangle(display, snowWin, SnowGC[snow->whatFlake],
+ 				 snow->intX, snow->intY,
+ 				 snowPix[snow->whatFlake].width, snowPix[snow->whatFlake].height);
+ }
+@@ -1015,13 +1042,13 @@ int rx;
+ 		snow = &snowflakes[rx];
+ 	 
+ 		if (UseFillForClear) {
+-			XFillRectangle(display, rootWin, ClearSnowGC,
++			XFillRectangle(display, snowWin, ClearSnowGC,
+ 								 snow->intX, snow->intY,
+ 								 snowPix[snow->whatFlake].width, 
+ 								 snowPix[snow->whatFlake].height);
+ 			}
+ 		else {
+-			XClearArea(display, rootWin, 
++			XClearArea(display, snowWin, 
+ 								 snow->intX, snow->intY,
+ 								 snowPix[snow->whatFlake].width, 
+ 								 snowPix[snow->whatFlake].height,
+@@ -1050,7 +1077,7 @@ DrawTannenbaum(x,y)
+ int x,y;
+ {
+ 		XSetTSOrigin(display, TreesGC, x,y);
+-		XFillRectangle(display, rootWin, TreesGC,
++		XFillRectangle(display, snowWin, TreesGC,
+ 				 x,y,
+ 				 tannenbaumPix[0].width, tannenbaumPix[0].height);
+ }
+@@ -1065,49 +1092,49 @@ void InitSantaPixymaps()
+ 	switch (SantaSize) {
+ 		case 0:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*RegularSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*RegularSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+ 		case 1:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*MediumSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*MediumSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+ 		case 2:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*BigSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*BigSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+@@ -1196,7 +1223,7 @@ DrawSanta() {
+ 											SantaX,SantaY);
+ 	rc = XCopyArea(			display,
+ 											SantaPixmap[CurrentSanta],
+-											rootWin,
++											snowWin,
+ 											gc,
+ 											0,0,SantaWidth,SantaHeight,
+ 											SantaX,SantaY);
+@@ -1209,7 +1236,7 @@ DrawSanta() {
+ void
+ EraseSanta()
+ {
+-	XClearArea(display, rootWin,
++	XClearArea(display, snowWin,
+ 						 SantaX , SantaY,     
+ 						 SantaWidth,SantaHeight,
+ 						 False);
+@@ -1245,6 +1272,17 @@ Pixel dfltPix;
+ 	return pix;
+ }
+ /* ------------------------------------------------------------------ */ 
++int
++HasCompositor(dpy, screen)
++Display * dpy;
++int screen;
++{
++    char prop_name[20];
++    snprintf(prop_name, 20, "_NET_WM_CM_S%d", screen);
++    Atom prop_atom = XInternAtom(dpy, prop_name, False);
++    return XGetSelectionOwner(dpy, prop_atom) != None;
++}
++/* ------------------------------------------------------------------ */ 
+ void sig_alarm()
+ {
+ 		int rand=RandInt(100);
+@@ -1405,7 +1443,7 @@ int DDLT() {
+ 		printf("DDLT: diffR: (%d,%d,%d,%d)\n",
+ 						DiffRect.x,DiffRect.y,DiffRect.x+DiffRect.width,DiffRect.y+DiffRect.height); 
+ 		#endif
+-	  if (0) XClearArea(display, rootWin,
++	  if (0) XClearArea(display, snowWin,
+ 	             				DiffRect.x,
+ 	             				DiffRect.y,
+ 	             				DiffRect.width,              
+@@ -1470,7 +1508,7 @@ int ClearX, ClearY;
+ 		#if debug
+ 		printf("HEAr: clearing (%d,%d,%d,%d)\n", AddX,AddY,AddRect.width,AddRect.height);
+ 		#endif
+-	  XClearArea(display, rootWin,
++	  XClearArea(display, snowWin,
+ 	             AddX,
+ 	             AddY,
+ 	             AddRect.width,              
+@@ -1479,3 +1517,4 @@ int ClearX, ClearY;
+ 	  XSubtractRegion(snscr,SubR, snscr);
+ 	XDestroyRegion(SubR);
+ }
++/* vim: set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab : */
+diff -rupN ./xsnow-1.42/xsnow.hlp xsnow-comp-tmp/xsnow.hlp
+--- ./xsnow-1.42/xsnow.hlp	2000-12-19 15:26:36.000000000 -0500
++++ xsnow-comp-tmp/xsnow.hlp	2016-02-27 19:47:13.448170769 -0500
+@@ -99,6 +99,12 @@
+  all windows, then specify this option. Symptom would be that no snow is
+  kept on any window, but only at the screen bottom
+ 
++    -nouseroot
++ Do not draw on the desktop's root window; instead, create a new window
++ underneath all others and draw there. Should be automatically enabled if
++ you are using a compositing window manger. Also useful if you want to set
++ a background color (with -bg) that won't remain after xsnow exits.
++
+     -version
+  Prints the current Xsnow version.
+ 
+diff -rupN ./xsnow-1.42/xsnow.man xsnow-comp-tmp/xsnow.man
+--- ./xsnow-1.42/xsnow.man	2001-12-15 18:11:04.000000000 -0500
++++ xsnow-comp-tmp/xsnow.man	2016-02-27 19:47:13.448170769 -0500
+@@ -107,6 +107,12 @@ nature. If however, you use an Xserver t
+ all windows, then specify this option. Symptom would be that no snow
+ is kept on any window, but only at the screen bottom.
+ .TP 8
++-nouseroot
++Do not draw on the desktop's root window; instead, create a new window
++underneath all others and draw there. Should be automatically enabled if
++you are using a compositing window manger. Also useful if you want to set
++a background color (with -bg) that won't remain after xsnow exits.
++.TP 8
+ -version
+ Prints the current Xsnow version and does not start Xsnow.
+ The current version (of this man page) is 1.42, December 14th 2001
diff --git a/etc/portage/repos.conf/eselect-repo.conf b/etc/portage/repos.conf/eselect-repo.conf
new file mode 100644
index 0000000..f6bf3d2
--- /dev/null
+++ b/etc/portage/repos.conf/eselect-repo.conf
@@ -0,0 +1,12 @@
+# created by eselect-repo
+
+[azahi]
+location = /var/db/repos/azahi
+sync-type = git
+sync-uri = https://github.com/azahi/azahi-overlay.git
+
+[ricerlay]
+location = /var/db/repos/ricerlay
+sync-type = git
+sync-uri = https://github.com/gentoo-mirror/ricerlay.git
+
diff --git a/etc/portage/repos.conf/gentoo.conf b/etc/portage/repos.conf/gentoo.conf
new file mode 100644
index 0000000..3836cf5
--- /dev/null
+++ b/etc/portage/repos.conf/gentoo.conf
@@ -0,0 +1,19 @@
+[DEFAULT]
+main-repo = gentoo
+
+[gentoo]
+auto-sync = yes
+location = /var/db/repos/gentoo
+sync-allow-hardlinks = no
+sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
+sync-openpgp-key-refresh-retry-count = 40
+sync-openpgp-key-refresh-retry-delay-exp-base = 2
+sync-openpgp-key-refresh-retry-delay-max = 60
+sync-openpgp-key-refresh-retry-delay-mult = 4
+sync-openpgp-key-refresh-retry-overall-timeout = 1200
+sync-rsync-verify-jobs = 1
+sync-rsync-verify-max-age = 24
+sync-rsync-verify-metamanifest = yes
+sync-type = rsync
+sync-uri = rsync://rsync.ru.gentoo.org/gentoo-portage
+sync-webrsync-verify-signature = true
diff --git a/etc/portage/savedconfig/app-shells/fzy-1.0-r1 b/etc/portage/savedconfig/app-shells/fzy-1.0-r1
new file mode 100644
index 0000000..411f7ca
--- /dev/null
+++ b/etc/portage/savedconfig/app-shells/fzy-1.0-r1
@@ -0,0 +1,14 @@
+#define TTY_COLOR_HIGHLIGHT TTY_COLOR_YELLOW
+
+#define SCORE_GAP_LEADING -0.005
+#define SCORE_GAP_TRAILING -0.005
+#define SCORE_GAP_INNER -0.01
+#define SCORE_MATCH_CONSECUTIVE 1.0
+#define SCORE_MATCH_SLASH 0.9
+#define SCORE_MATCH_WORD 0.8
+#define SCORE_MATCH_CAPITAL 0.7
+#define SCORE_MATCH_DOT 0.6
+
+#define KEYTIMEOUT 25
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/media-gfx/sxiv-9999 b/etc/portage/savedconfig/media-gfx/sxiv-9999
new file mode 100644
index 0000000..7b64c15
--- /dev/null
+++ b/etc/portage/savedconfig/media-gfx/sxiv-9999
@@ -0,0 +1,130 @@
+#ifdef _WINDOW_CONFIG
+
+enum {
+	WIN_WIDTH  = 800,
+	WIN_HEIGHT = 600
+};
+
+#endif
+#ifdef _IMAGE_CONFIG
+
+static const float zoom_levels[] = {
+	 12.5,  25.0,  50.0,  75.0,
+	100.0, 150.0, 200.0, 400.0, 800.0
+};
+
+enum { SLIDESHOW_DELAY = 5 };
+
+static const double GAMMA_MAX   = 10.0;
+static const int    GAMMA_RANGE = 32;
+
+static const int PAN_FRACTION = 5;
+
+static const bool ANTI_ALIAS = true;
+
+static const bool ALPHA_LAYER = false;
+
+#endif
+#ifdef _THUMBS_CONFIG
+
+static const int thumb_sizes[] = { 32, 64, 96, 128, 160 };
+
+static const int THUMB_SIZE = 3;
+
+#endif
+#ifdef _MAPPINGS_CONFIG
+
+static const keymap_t keys[] = {
+	/* modifiers    key               function              argument */
+	{ 0,            XK_q,             g_quit,               None },
+	{ 0,            XK_Return,        g_switch_mode,        None },
+	{ 0,            XK_f,             g_toggle_fullscreen,  None },
+	{ 0,            XK_b,             g_toggle_bar,         None },
+	{ ControlMask,  XK_x,             g_prefix_external,    None },
+	{ 0,            XK_g,             g_first,              None },
+	{ 0,            XK_G,             g_n_or_last,          None },
+	{ 0,            XK_r,             g_reload_image,       None },
+	{ 0,            XK_D,             g_remove_image,       None },
+	{ ControlMask,  XK_h,             g_scroll_screen,      DIR_LEFT },
+	{ ControlMask,  XK_Left,          g_scroll_screen,      DIR_LEFT },
+	{ ControlMask,  XK_j,             g_scroll_screen,      DIR_DOWN },
+	{ ControlMask,  XK_Down,          g_scroll_screen,      DIR_DOWN },
+	{ ControlMask,  XK_k,             g_scroll_screen,      DIR_UP },
+	{ ControlMask,  XK_Up,            g_scroll_screen,      DIR_UP },
+	{ ControlMask,  XK_l,             g_scroll_screen,      DIR_RIGHT },
+	{ ControlMask,  XK_Right,         g_scroll_screen,      DIR_RIGHT },
+	{ 0,            XK_plus,          g_zoom,               +1 },
+	{ 0,            XK_KP_Add,        g_zoom,               +1 },
+	{ 0,            XK_minus,         g_zoom,               -1 },
+	{ 0,            XK_KP_Subtract,   g_zoom,               -1 },
+	{ 0,            XK_m,             g_toggle_image_mark,  None },
+	{ 0,            XK_M,             g_mark_range,         None },
+	{ ControlMask,  XK_m,             g_reverse_marks,      None },
+	{ ControlMask,  XK_u,             g_unmark_all,         None },
+	{ 0,            XK_N,             g_navigate_marked,    +1 },
+	{ 0,            XK_P,             g_navigate_marked,    -1 },
+	{ 0,            XK_braceleft,     g_change_gamma,       -1 },
+	{ 0,            XK_braceright,    g_change_gamma,       +1 },
+	{ ControlMask,  XK_g,             g_change_gamma,        0 },
+
+	{ 0,            XK_h,             t_move_sel,           DIR_LEFT },
+	{ 0,            XK_Left,          t_move_sel,           DIR_LEFT },
+	{ 0,            XK_j,             t_move_sel,           DIR_DOWN },
+	{ 0,            XK_Down,          t_move_sel,           DIR_DOWN },
+	{ 0,            XK_k,             t_move_sel,           DIR_UP },
+	{ 0,            XK_Up,            t_move_sel,           DIR_UP },
+	{ 0,            XK_l,             t_move_sel,           DIR_RIGHT },
+	{ 0,            XK_Right,         t_move_sel,           DIR_RIGHT },
+	{ 0,            XK_R,             t_reload_all,         None },
+
+	{ 0,            XK_n,             i_navigate,           +1 },
+	{ 0,            XK_n,             i_scroll_to_edge,     DIR_LEFT | DIR_UP },
+	{ 0,            XK_space,         i_navigate,           +1 },
+	{ 0,            XK_p,             i_navigate,           -1 },
+	{ 0,            XK_p,             i_scroll_to_edge,     DIR_LEFT | DIR_UP },
+	{ 0,            XK_BackSpace,     i_navigate,           -1 },
+	{ 0,            XK_bracketright,  i_navigate,           +10 },
+	{ 0,            XK_bracketleft,   i_navigate,           -10 },
+	{ ControlMask,  XK_6,             i_alternate,          None },
+	{ ControlMask,  XK_n,             i_navigate_frame,     +1 },
+	{ ControlMask,  XK_p,             i_navigate_frame,     -1 },
+	{ ControlMask,  XK_space,         i_toggle_animation,   None },
+	{ 0,            XK_h,             i_scroll,             DIR_LEFT },
+	{ 0,            XK_Left,          i_scroll,             DIR_LEFT },
+	{ 0,            XK_j,             i_scroll,             DIR_DOWN },
+	{ 0,            XK_Down,          i_scroll,             DIR_DOWN },
+	{ 0,            XK_k,             i_scroll,             DIR_UP },
+	{ 0,            XK_Up,            i_scroll,             DIR_UP },
+	{ 0,            XK_l,             i_scroll,             DIR_RIGHT },
+	{ 0,            XK_Right,         i_scroll,             DIR_RIGHT },
+	{ 0,            XK_H,             i_scroll_to_edge,     DIR_LEFT },
+	{ 0,            XK_J,             i_scroll_to_edge,     DIR_DOWN },
+	{ 0,            XK_K,             i_scroll_to_edge,     DIR_UP },
+	{ 0,            XK_L,             i_scroll_to_edge,     DIR_RIGHT },
+	{ 0,            XK_equal,         i_set_zoom,           100 },
+	{ 0,            XK_w,             i_fit_to_win,         SCALE_DOWN },
+	{ 0,            XK_W,             i_fit_to_win,         SCALE_FIT },
+	{ 0,            XK_e,             i_fit_to_win,         SCALE_WIDTH },
+	{ 0,            XK_E,             i_fit_to_win,         SCALE_HEIGHT },
+	{ 0,            XK_less,          i_rotate,             DEGREE_270 },
+	{ 0,            XK_greater,       i_rotate,             DEGREE_90 },
+	{ 0,            XK_question,      i_rotate,             DEGREE_180 },
+	{ 0,            XK_bar,           i_flip,               FLIP_HORIZONTAL },
+	{ 0,            XK_underscore,    i_flip,               FLIP_VERTICAL },
+	{ 0,            XK_a,             i_toggle_antialias,   None },
+	{ 0,            XK_A,             i_toggle_alpha,       None },
+	{ 0,            XK_s,             i_slideshow,          None },
+};
+
+static const button_t buttons[] = {
+	/* modifiers    button            function              argument */
+	{ 0,            1,                i_cursor_navigate,    None },
+	{ 0,            2,                i_drag,               DRAG_ABSOLUTE },
+	{ 0,            3,                g_switch_mode,        None },
+	{ 0,            4,                g_zoom,               +1 },
+	{ 0,            5,                g_zoom,               -1 },
+};
+
+#endif
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/sys-apps/busybox-1.33.1-r1 b/etc/portage/savedconfig/sys-apps/busybox-1.33.1-r1
new file mode 100644
index 0000000..48365bf
--- /dev/null
+++ b/etc/portage/savedconfig/sys-apps/busybox-1.33.1-r1
@@ -0,0 +1,1200 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.33.1
+# Tue Aug 17 14:34:57 2021
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Settings
+#
+CONFIG_DESKTOP=y
+CONFIG_EXTRA_COMPAT=y
+CONFIG_FEDORA_COMPAT=y
+CONFIG_INCLUDE_SUSv2=y
+CONFIG_LONG_OPTS=y
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_LFS=y
+CONFIG_PAM=y
+CONFIG_FEATURE_DEVPTS=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_PID_FILE_PATH="/run"
+CONFIG_BUSYBOX=y
+CONFIG_FEATURE_SHOW_SCRIPT=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_INSTALL_NO_USR=y
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+CONFIG_FEATURE_PREFER_APPLETS=y
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_SYSLOG_INFO=y
+CONFIG_FEATURE_SYSLOG=y
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS=""
+CONFIG_EXTRA_LDFLAGS=""
+CONFIG_EXTRA_LDLIBS=""
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_STACK_OPTIMIZATION_386=y
+CONFIG_STATIC_LIBGCC=y
+
+#
+# Installation Options ("make install" behavior)
+#
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_DEBUG_SANITIZE is not set
+CONFIG_UNIT_TEST=y
+# CONFIG_WERROR is not set
+CONFIG_WARN_SIMPLE_MSG=y
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Library Tuning
+#
+# CONFIG_FEATURE_USE_BSS_TAIL is not set
+CONFIG_FLOAT_DURATION=y
+CONFIG_FEATURE_RTMINMAX=y
+CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SMALL=1
+CONFIG_SHA3_SMALL=1
+CONFIG_FEATURE_FAST_TOP=y
+CONFIG_FEATURE_ETC_NETWORKS=y
+CONFIG_FEATURE_ETC_SERVICES=y
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=255
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y
+CONFIG_FEATURE_REVERSE_SEARCH=y
+CONFIG_FEATURE_TAB_COMPLETION=y
+CONFIG_FEATURE_USERNAME_COMPLETION=y
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_EDITING_WINCH=y
+CONFIG_FEATURE_EDITING_ASK_TERMINAL=y
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+CONFIG_UNICODE_COMBINING_WCHARS=y
+CONFIG_UNICODE_WIDE_WCHARS=y
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+CONFIG_UNICODE_PRESERVE_BROKEN=y
+CONFIG_FEATURE_NON_POSIX_CP=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_USE_SENDFILE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_FEATURE_SKIP_ROOTFS=y
+# CONFIG_MONOTONIC_SYSCALL is not set
+CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+CONFIG_FEATURE_SEAMLESS_LZMA=y
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_FEATURE_AR_CREATE=y
+CONFIG_UNCOMPRESS=y
+CONFIG_GUNZIP=y
+CONFIG_ZCAT=y
+CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
+CONFIG_BUNZIP2=y
+CONFIG_BZCAT=y
+CONFIG_UNLZMA=y
+CONFIG_LZCAT=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZCAT=y
+CONFIG_XZ=y
+CONFIG_BZIP2=y
+CONFIG_BZIP2_SMALL=8
+CONFIG_FEATURE_BZIP2_DECOMPRESS=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+CONFIG_GZIP=y
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_GZIP_FAST=0
+CONFIG_FEATURE_GZIP_LEVELS=y
+CONFIG_FEATURE_GZIP_DECOMPRESS=y
+CONFIG_LZOP=y
+CONFIG_UNLZOP=y
+CONFIG_LZOPCAT=y
+CONFIG_LZOP_COMPR_HIGH=y
+# CONFIG_RPM is not set
+# CONFIG_RPM2CPIO is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_TO_COMMAND=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNZIP=y
+CONFIG_FEATURE_UNZIP_CDF=y
+CONFIG_FEATURE_UNZIP_BZIP2=y
+CONFIG_FEATURE_UNZIP_LZMA=y
+CONFIG_FEATURE_UNZIP_XZ=y
+CONFIG_FEATURE_LZMA_FAST=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_FEATURE_CATN=y
+CONFIG_FEATURE_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_FEATURE_CP_REFLINK=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_FEATURE_DATE_NANO=y
+CONFIG_FEATURE_DATE_COMPAT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_FEATURE_DD_STATUS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_FANCY=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_EXPAND=y
+CONFIG_UNEXPAND=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FACTOR=y
+CONFIG_FALSE=y
+# CONFIG_FOLD is not set
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+# CONFIG_HOSTID is not set
+CONFIG_ID=y
+CONFIG_GROUPS=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LINK=y
+CONFIG_LN=y
+# CONFIG_LOGNAME is not set
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_WIDTH=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_SHA1SUM=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
+CONFIG_SHA3SUM=y
+
+#
+# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+CONFIG_MKDIR=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MKTEMP=y
+CONFIG_MV=y
+CONFIG_NICE=y
+CONFIG_NL=y
+CONFIG_NOHUP=y
+CONFIG_NPROC=y
+# CONFIG_OD is not set
+CONFIG_PASTE=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_SEQ=y
+CONFIG_SHRED=y
+CONFIG_SHUF=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_FEATURE_STAT_FILESYSTEM=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_FEATURE_SYNC_FANCY=y
+CONFIG_FSYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_TEST1=y
+CONFIG_TEST2=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TIMEOUT=y
+CONFIG_TOUCH=y
+CONFIG_FEATURE_TOUCH_NODEREF=y
+CONFIG_FEATURE_TOUCH_SUSV3=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TRUNCATE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNAME_OSNAME="GNU/Linux"
+CONFIG_BB_ARCH=y
+CONFIG_UNIQ=y
+CONFIG_UNLINK=y
+CONFIG_USLEEP=y
+# CONFIG_UUDECODE is not set
+CONFIG_BASE32=y
+CONFIG_BASE64=y
+# CONFIG_UUENCODE is not set
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_W=y
+CONFIG_USERS=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options
+#
+CONFIG_FEATURE_VERBOSE=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_FGCONSOLE=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_SETFONT=y
+CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y
+CONFIG_DEFAULT_SETFONT_DIR=""
+
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+CONFIG_FEATURE_LOADFONT_RAW=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Debian Utilities
+#
+CONFIG_PIPE_PROGRESS=y
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_WHICH=y
+
+#
+# klibc-utils
+#
+CONFIG_MINIPS=y
+CONFIG_NUKE=y
+CONFIG_RESUME=y
+CONFIG_RUN_INIT=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+# CONFIG_FEATURE_AWK_LIBM is not set
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_REGEX_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_UNDO=y
+CONFIG_FEATURE_VI_UNDO_QUEUE=y
+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_EXECUTABLE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_EXEC_PLUS=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+CONFIG_FEATURE_FIND_QUIT=y
+CONFIG_FEATURE_FIND_DELETE=y
+CONFIG_FEATURE_FIND_EMPTY=y
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_FEATURE_FIND_LINKS=y
+CONFIG_GREP=y
+CONFIG_EGREP=y
+CONFIG_FGREP=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
+CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y
+CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y
+
+#
+# Init Utilities
+#
+# CONFIG_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+CONFIG_GINIT=y
+CONFIG_HALT=y
+CONFIG_POWEROFF=y
+CONFIG_REBOOT=y
+CONFIG_FEATURE_WAIT_FOR_INIT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+CONFIG_INIT=y
+CONFIG_LINUXRC=y
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=0
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_INIT_QUIET=y
+CONFIG_FEATURE_INIT_COREDUMPS=y
+CONFIG_INIT_TERMINAL_TYPE="linux"
+CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+CONFIG_USE_BB_PWD_GRP=y
+CONFIG_USE_BB_SHADOW=y
+CONFIG_USE_BB_CRYPT=y
+CONFIG_USE_BB_CRYPT_SHA=y
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_ADDUSER=y
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_LAST_ID=60000
+CONFIG_FIRST_SYSTEM_ID=100
+CONFIG_LAST_SYSTEM_ID=999
+CONFIG_CHPASSWD=y
+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
+CONFIG_CRYPTPW=y
+CONFIG_MKPASSWD=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=y
+CONFIG_LOGIN=y
+CONFIG_LOGIN_SESSION_AS_CHILD=y
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY=y
+# CONFIG_SULOGIN is not set
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+CONFIG_TUNE2FS=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODPROBE_SMALL=y
+CONFIG_DEPMOD=y
+CONFIG_INSMOD=y
+CONFIG_LSMOD=y
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+CONFIG_MODINFO=y
+CONFIG_MODPROBE=y
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+CONFIG_RMMOD=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
+CONFIG_BLKDISCARD=y
+CONFIG_BLKID=y
+CONFIG_FEATURE_BLKID_TYPE=y
+CONFIG_BLOCKDEV=y
+CONFIG_CAL=y
+CONFIG_CHRT=y
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FALLOCATE=y
+CONFIG_FATATTR=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
+CONFIG_FEATURE_FDISK_WRITABLE=y
+CONFIG_FEATURE_AIX_LABEL=y
+CONFIG_FEATURE_SGI_LABEL=y
+CONFIG_FEATURE_SUN_LABEL=y
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+CONFIG_FLOCK=y
+CONFIG_FDFLUSH=y
+CONFIG_FREERAMDISK=y
+# CONFIG_FSCK_MINIX is not set
+CONFIG_FSFREEZE=y
+CONFIG_FSTRIM=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+CONFIG_HD=y
+CONFIG_XXD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IONICE=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_FANCY=y
+CONFIG_LOSETUP=y
+CONFIG_LSPCI=y
+CONFIG_LSUSB=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_FEATURE_MDEV_DAEMON=y
+CONFIG_MESG=y
+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
+CONFIG_MKE2FS=y
+CONFIG_MKFS_EXT2=y
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+CONFIG_MKFS_REISER=y
+CONFIG_MKDOSFS=y
+CONFIG_MKFS_VFAT=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_UUID=y
+CONFIG_MORE=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+CONFIG_FEATURE_MOUNT_VERBOSE=y
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_FEATURE_MOUNT_OTHERTAB=y
+CONFIG_MOUNTPOINT=y
+CONFIG_NOLOGIN=y
+CONFIG_NOLOGIN_DEPENDENCIES=y
+CONFIG_NSENTER=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+CONFIG_RENICE=y
+CONFIG_REV=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SCRIPTREPLAY=y
+CONFIG_SETARCH=y
+CONFIG_LINUX32=y
+CONFIG_LINUX64=y
+CONFIG_SETPRIV=y
+CONFIG_FEATURE_SETPRIV_DUMP=y
+CONFIG_FEATURE_SETPRIV_CAPABILITIES=y
+CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y
+CONFIG_SETSID=y
+CONFIG_SWAPON=y
+CONFIG_FEATURE_SWAPON_DISCARD=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWAPOFF=y
+CONFIG_FEATURE_SWAPONOFF_LABEL=y
+CONFIG_SWITCH_ROOT=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+# CONFIG_FEATURE_TASKSET_CPULIST is not set
+CONFIG_UEVENT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+CONFIG_UNSHARE=y
+CONFIG_WALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_BCACHE=y
+CONFIG_FEATURE_VOLUMEID_BTRFS=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_EROFS=y
+CONFIG_FEATURE_VOLUMEID_EXFAT=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_F2FS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_LFS=y
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_MINIX=y
+CONFIG_FEATURE_VOLUMEID_NILFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+CONFIG_FEATURE_VOLUMEID_UBIFS=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_FEATURE_COMPRESS_BBCONFIG=y
+CONFIG_BC=y
+# CONFIG_DC is not set
+CONFIG_FEATURE_DC_BIG=y
+# CONFIG_FEATURE_DC_LIBM is not set
+CONFIG_FEATURE_BC_INTERACTIVE=y
+CONFIG_FEATURE_BC_LONG_OPTIONS=y
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+CONFIG_FEATURE_CHAT_TTY_HIFI=y
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y
+CONFIG_FEATURE_CHAT_SEND_ESCAPES=y
+CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y
+CONFIG_FEATURE_CHAT_CLR_ABORT=y
+CONFIG_CONSPY=y
+CONFIG_CROND=y
+CONFIG_FEATURE_CROND_D=y
+CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
+CONFIG_FEATURE_CROND_SPECIAL_TIMES=y
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
+# CONFIG_CRONTAB is not set
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_DEVMEM=y
+# CONFIG_FBSPLASH is not set
+CONFIG_FLASH_ERASEALL=y
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASHCP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_HEXEDIT=y
+CONFIG_I2CGET=y
+CONFIG_I2CSET=y
+CONFIG_I2CDUMP=y
+CONFIG_I2CDETECT=y
+CONFIG_I2CTRANSFER=y
+# CONFIG_INOTIFYD is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_TRUNCATE=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_FEATURE_LESS_WINCH=y
+CONFIG_FEATURE_LESS_ASK_TERMINAL=y
+CONFIG_FEATURE_LESS_DASHCMD=y
+CONFIG_FEATURE_LESS_LINENUMS=y
+CONFIG_FEATURE_LESS_RAW=y
+CONFIG_FEATURE_LESS_ENV=y
+CONFIG_LSSCSI=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+CONFIG_MAN=y
+CONFIG_MICROCOM=y
+CONFIG_MIM=y
+CONFIG_MT=y
+CONFIG_NANDWRITE=y
+CONFIG_NANDDUMP=y
+CONFIG_PARTPROBE=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+# CONFIG_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETFATTR=y
+CONFIG_SETSERIAL=y
+CONFIG_STRINGS=y
+CONFIG_TIME=y
+CONFIG_TS=y
+CONFIG_TTYSIZE=y
+CONFIG_UBIATTACH=y
+CONFIG_UBIDETACH=y
+CONFIG_UBIMKVOL=y
+CONFIG_UBIRMVOL=y
+CONFIG_UBIRSVOL=y
+CONFIG_UBIUPDATEVOL=y
+CONFIG_UBIRENAME=y
+CONFIG_VOLNAME=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_UNIX_LOCAL=y
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+CONFIG_VERBOSE_RESOLUTION_ERRORS=y
+CONFIG_FEATURE_TLS_SHA1=y
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+CONFIG_FEATURE_BRCTL_FANCY=y
+CONFIG_FEATURE_BRCTL_SHOW=y
+# CONFIG_DNSD is not set
+CONFIG_ETHER_WAKE=y
+CONFIG_FTPD=y
+CONFIG_FEATURE_FTPD_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
+CONFIG_FEATURE_FTPD_AUTHENTICATION=y
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+CONFIG_HOSTNAME=y
+CONFIG_DNSDOMAINNAME=y
+CONFIG_HTTPD=y
+CONFIG_FEATURE_HTTPD_RANGES=y
+CONFIG_FEATURE_HTTPD_SETUID=y
+CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
+CONFIG_FEATURE_HTTPD_AUTH_MD5=y
+CONFIG_FEATURE_HTTPD_CGI=y
+CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
+CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y
+CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
+CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
+CONFIG_FEATURE_HTTPD_PROXY=y
+CONFIG_FEATURE_HTTPD_GZIP=y
+CONFIG_FEATURE_HTTPD_ETAG=y
+CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y
+CONFIG_FEATURE_HTTPD_DATE=y
+CONFIG_FEATURE_HTTPD_ACL_IP=y
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFPLUGD=y
+CONFIG_IFUP=y
+CONFIG_IFDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPNEIGH=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_NEIGH=y
+CONFIG_FEATURE_IP_RARE_PROTOCOLS=y
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FAKEIDENTD is not set
+CONFIG_NAMEIF=y
+CONFIG_FEATURE_NAMEIF_EXTENDED=y
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NETCAT=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NC_110_COMPAT=y
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_FEATURE_NSLOOKUP_BIG=y
+CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
+CONFIG_NTPD=y
+CONFIG_FEATURE_NTPD_SERVER=y
+CONFIG_FEATURE_NTPD_CONF=y
+CONFIG_FEATURE_NTP_AUTH=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+# CONFIG_SLATTACH is not set
+CONFIG_SSL_CLIENT=y
+CONFIG_TC=y
+CONFIG_FEATURE_TC_INGRESS=y
+# CONFIG_TCPSVD is not set
+# CONFIG_UDPSVD is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_FEATURE_TELNET_WIDTH=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_FEATURE_TELNETD_INETD_WAIT=y
+CONFIG_TFTP=y
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
+CONFIG_FEATURE_TFTP_HPA_COMPAT=y
+CONFIG_TFTPD=y
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_TFTP_DEBUG is not set
+CONFIG_TLS=y
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=y
+CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
+CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y
+CONFIG_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_FEATURE_WGET_HTTPS=y
+CONFIG_FEATURE_WGET_OPENSSL=y
+CONFIG_WHOIS=y
+CONFIG_ZCIP=y
+CONFIG_UDHCPD=y
+CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC=y
+CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
+CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
+CONFIG_DUMPLEASES=y
+CONFIG_DHCPRELAY=y
+CONFIG_UDHCPC=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
+CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC6=y
+CONFIG_FEATURE_UDHCPC6_RFC3646=y
+CONFIG_FEATURE_UDHCPC6_RFC4704=y
+CONFIG_FEATURE_UDHCPC6_RFC4833=y
+CONFIG_FEATURE_UDHCPC6_RFC5970=y
+
+#
+# Common options for DHCP applets
+#
+CONFIG_FEATURE_UDHCP_PORT=y
+CONFIG_UDHCP_DEBUG=2
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_FEATURE_UDHCP_RFC3397=y
+CONFIG_FEATURE_UDHCP_8021Q=y
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+CONFIG_LPQ=y
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_POPMAILDIR=y
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+CONFIG_SENDMAIL=y
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_IOSTAT=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_LSOF=y
+CONFIG_MPSTAT=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PKILL=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+CONFIG_FEATURE_POWERTOP_INTERACTIVE=y
+CONFIG_PS=y
+# CONFIG_FEATURE_PS_WIDE is not set
+# CONFIG_FEATURE_PS_LONG is not set
+CONFIG_FEATURE_PS_TIME=y
+CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS=y
+CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y
+CONFIG_PSTREE=y
+CONFIG_PWDX=y
+# CONFIG_SMEMCAP is not set
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_INTERACTIVE=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_SMP_CPU=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
+CONFIG_WATCH=y
+CONFIG_FEATURE_SHOW_THREADS=y
+
+#
+# Runit Utilities
+#
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+CONFIG_SVC=y
+CONFIG_SVOK=y
+# CONFIG_SVLOGD is not set
+# CONFIG_CHCON is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SESTATUS is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_SETSEBOOL is not set
+
+#
+# Shells
+#
+CONFIG_SH_IS_ASH=y
+# CONFIG_SH_IS_HUSH is not set
+# CONFIG_SH_IS_NONE is not set
+# CONFIG_BASH_IS_ASH is not set
+# CONFIG_BASH_IS_HUSH is not set
+CONFIG_BASH_IS_NONE=y
+CONFIG_SHELL_ASH=y
+CONFIG_ASH=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_INTERNAL_GLOB=y
+CONFIG_ASH_BASH_COMPAT=y
+# CONFIG_ASH_BASH_SOURCE_CURDIR is not set
+CONFIG_ASH_BASH_NOT_FOUND_HOOK=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+CONFIG_ASH_IDLE_TIMEOUT=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_ECHO=y
+CONFIG_ASH_PRINTF=y
+CONFIG_ASH_TEST=y
+CONFIG_ASH_HELP=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_CTTYHACK=y
+# CONFIG_HUSH is not set
+CONFIG_SHELL_HUSH=y
+CONFIG_HUSH_BASH_COMPAT=y
+CONFIG_HUSH_BRACE_EXPANSION=y
+CONFIG_HUSH_LINENO_VAR=y
+CONFIG_HUSH_BASH_SOURCE_CURDIR=y
+CONFIG_HUSH_INTERACTIVE=y
+CONFIG_HUSH_SAVEHISTORY=y
+CONFIG_HUSH_JOB=y
+CONFIG_HUSH_TICK=y
+CONFIG_HUSH_IF=y
+CONFIG_HUSH_LOOPS=y
+CONFIG_HUSH_CASE=y
+CONFIG_HUSH_FUNCTIONS=y
+CONFIG_HUSH_LOCAL=y
+CONFIG_HUSH_RANDOM_SUPPORT=y
+CONFIG_HUSH_MODE_X=y
+CONFIG_HUSH_ECHO=y
+CONFIG_HUSH_PRINTF=y
+CONFIG_HUSH_TEST=y
+CONFIG_HUSH_HELP=y
+CONFIG_HUSH_EXPORT=y
+CONFIG_HUSH_EXPORT_N=y
+CONFIG_HUSH_READONLY=y
+CONFIG_HUSH_KILL=y
+CONFIG_HUSH_WAIT=y
+CONFIG_HUSH_COMMAND=y
+CONFIG_HUSH_TRAP=y
+CONFIG_HUSH_TYPE=y
+CONFIG_HUSH_TIMES=y
+CONFIG_HUSH_READ=y
+CONFIG_HUSH_SET=y
+CONFIG_HUSH_UNSET=y
+CONFIG_HUSH_ULIMIT=y
+CONFIG_HUSH_UMASK=y
+CONFIG_HUSH_GETOPTS=y
+CONFIG_HUSH_MEMLEAK=y
+
+#
+# Options common to all shells
+#
+CONFIG_FEATURE_SH_MATH=y
+CONFIG_FEATURE_SH_MATH_64=y
+CONFIG_FEATURE_SH_MATH_BASE=y
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+CONFIG_FEATURE_SH_STANDALONE=y
+CONFIG_FEATURE_SH_NOFORK=y
+CONFIG_FEATURE_SH_READ_FRAC=y
+CONFIG_FEATURE_SH_HISTFILESIZE=y
+CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y
+
+#
+# System Logging Utilities
+#
+# CONFIG_KLOGD is not set
+# CONFIG_FEATURE_KLOGD_KLOGCTL is not set
+# CONFIG_LOGGER is not set
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+# CONFIG_SYSLOGD is not set
+# CONFIG_FEATURE_ROTATE_LOGFILE is not set
+# CONFIG_FEATURE_REMOTE_LOG is not set
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+# CONFIG_FEATURE_SYSLOGD_CFG is not set
+# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
+# CONFIG_FEATURE_KMSG_SYSLOG is not set
diff --git a/etc/portage/savedconfig/sys-kernel/linux-firmware-99999999 b/etc/portage/savedconfig/sys-kernel/linux-firmware-99999999
new file mode 100644
index 0000000..f7321d1
--- /dev/null
+++ b/etc/portage/savedconfig/sys-kernel/linux-firmware-99999999
@@ -0,0 +1 @@
+iwlwifi-6000-4.ucode
diff --git a/etc/portage/savedconfig/x11-misc/dmenu-9999 b/etc/portage/savedconfig/x11-misc/dmenu-9999
new file mode 100644
index 0000000..34b49df
--- /dev/null
+++ b/etc/portage/savedconfig/x11-misc/dmenu-9999
@@ -0,0 +1,18 @@
+static int topbar = 1;
+static const char *fonts[] = {
+	"UW Ttyp0:pixelsize=14:style=Regular:antialias=false",
+	"Efont Biwidth:pixelsize=14:style=Regular:antialias=false",
+	"Efont Fixed:pixelsize=14:style=Regular:antialias=false",
+	"Misc Fixed:antialias=false",
+};
+static const char *prompt = NULL;
+static const char *colors[SchemeLast][2] = {
+	[SchemeNorm] = { "#c5c8c6", "#161719" },
+	[SchemeSel] = { "#161719", "#c5c8c6" },
+};
+
+static unsigned int lines = 0;
+
+static const char worddelimiters[] = " ";
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/x11-misc/slock-1.4 b/etc/portage/savedconfig/x11-misc/slock-1.4
new file mode 100644
index 0000000..12caede
--- /dev/null
+++ b/etc/portage/savedconfig/x11-misc/slock-1.4
@@ -0,0 +1,12 @@
+static const char *user		= "nobody";
+static const char *group	= "nobody";
+
+static const char *colorname[NUMCOLS] = {
+	[INIT] =   "#161719",
+	[INPUT] =  "#c5c8c6",
+	[FAILED] = "#cc6666",
+};
+
+static const int failonclear = 1;
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/x11-terms/st-9999 b/etc/portage/savedconfig/x11-terms/st-9999
new file mode 100644
index 0000000..1dfdd91
--- /dev/null
+++ b/etc/portage/savedconfig/x11-terms/st-9999
@@ -0,0 +1,323 @@
+static char *font = "UW Ttyp0:pixelsize=14:style=Regular:antialias=false";
+static int borderpx = 4;
+
+static char *shell = "/bin/sh";
+char *utmp = NULL;
+
+char *scroll = NULL;
+char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
+
+char *vtiden = "\033[?6c";
+
+static float cwscale = 1.0;
+static float chscale = 1.0;
+
+wchar_t *worddelimiters = L" ";
+
+static unsigned int doubleclicktimeout = 300;
+static unsigned int tripleclicktimeout = 600;
+
+int allowaltscreen = 1;
+
+int allowwindowops = 0;
+
+static double minlatency = 8;
+static double maxlatency = 33;
+
+static unsigned int blinktimeout = 800;
+
+static unsigned int cursorthickness = 1;
+
+static int bellvolume = 0;
+
+char *termname = "xterm-256color";
+
+unsigned int tabspaces = 4;
+
+static char *colorname[] = {
+	"#161719",
+	"#cc6666",
+	"#b5bd68",
+	"#f0c674",
+	"#81a2be",
+	"#b294bb",
+	"#8abeb7",
+	"#c5c8c6",
+
+	"#969896",
+	"#cc6666",
+	"#b5bd68",
+	"#f0c674",
+	"#81a2be",
+	"#b294bb",
+	"#8abeb7",
+	"#ffffff",
+};
+
+unsigned int defaultfg = 7;
+unsigned int defaultbg = 0;
+static unsigned int defaultcs = 7;
+static unsigned int defaultrcs = 0;
+
+static unsigned int cursorshape = 2;
+
+static unsigned int cols = 80;
+static unsigned int rows = 24;
+
+static unsigned int mouseshape = XC_xterm;
+static unsigned int mousefg = 7;
+static unsigned int mousebg = 0;
+
+static unsigned int defaultattr = 11;
+
+static uint forcemousemod = ShiftMask;
+
+static MouseShortcut mshortcuts[] = {
+	{ XK_ANY_MOD,	Button2,	selpaste,	{ .i = 0 }, 1 },
+	{ ShiftMask,	Button4,	ttysend,	{ .s = "\033[5;2~" } },
+	{ XK_ANY_MOD,	Button4,	ttysend,	{ .s = "\031" } },
+	{ ShiftMask,	Button5,	ttysend,	{ .s = "\033[6;2~" } },
+	{ XK_ANY_MOD,	Button5,	ttysend,	{ .s = "\005" } },
+};
+
+#define MODKEY Mod1Mask
+#define TERMMOD (ControlMask|ShiftMask)
+
+static Shortcut shortcuts[] = {
+	{ XK_ANY_MOD,	XK_Break,		sendbreak,		{ .i =  0} },
+	{ ControlMask,	XK_Print,		toggleprinter,	{ .i =  0} },
+	{ ShiftMask,	XK_Print,		printscreen,	{ .i =  0} },
+	{ XK_ANY_MOD,	XK_Print,		printsel,		{ .i =  0} },
+	{ TERMMOD,		XK_Prior,		zoom,			{ .f = +1} },
+	{ TERMMOD,		XK_Next,		zoom,			{ .f = -1} },
+	{ TERMMOD,		XK_Home,		zoomreset,		{ .f =  0} },
+	{ TERMMOD,		XK_C,			clipcopy,		{ .i =  0} },
+	{ TERMMOD,		XK_V,			clippaste,		{ .i =  0} },
+	{ TERMMOD,		XK_Y,			selpaste,		{ .i =  0} },
+	{ ShiftMask,	XK_Insert,		selpaste,		{ .i =  0} },
+	{ TERMMOD,		XK_Num_Lock,	numlock,		{ .i =  0} },
+};
+
+static KeySym mappedkeys[] = { -1 };
+
+static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
+
+static Key key[] = {
+	{ XK_KP_Home,       ShiftMask,      "\033[2J",       0,   -1 },
+	{ XK_KP_Home,       ShiftMask,      "\033[1;2H",     0,   +1 },
+	{ XK_KP_Home,       XK_ANY_MOD,     "\033[H",        0,   -1 },
+	{ XK_KP_Home,       XK_ANY_MOD,     "\033[1~",       0,   +1 },
+	{ XK_KP_Up,         XK_ANY_MOD,     "\033Ox",       +1,    0 },
+	{ XK_KP_Up,         XK_ANY_MOD,     "\033[A",        0,   -1 },
+	{ XK_KP_Up,         XK_ANY_MOD,     "\033OA",        0,   +1 },
+	{ XK_KP_Down,       XK_ANY_MOD,     "\033Or",       +1,    0 },
+	{ XK_KP_Down,       XK_ANY_MOD,     "\033[B",        0,   -1 },
+	{ XK_KP_Down,       XK_ANY_MOD,     "\033OB",        0,   +1 },
+	{ XK_KP_Left,       XK_ANY_MOD,     "\033Ot",       +1,    0 },
+	{ XK_KP_Left,       XK_ANY_MOD,     "\033[D",        0,   -1 },
+	{ XK_KP_Left,       XK_ANY_MOD,     "\033OD",        0,   +1 },
+	{ XK_KP_Right,      XK_ANY_MOD,     "\033Ov",       +1,    0 },
+	{ XK_KP_Right,      XK_ANY_MOD,     "\033[C",        0,   -1 },
+	{ XK_KP_Right,      XK_ANY_MOD,     "\033OC",        0,   +1 },
+	{ XK_KP_Prior,      ShiftMask,      "\033[5;2~",     0,    0 },
+	{ XK_KP_Prior,      XK_ANY_MOD,     "\033[5~",       0,    0 },
+	{ XK_KP_Begin,      XK_ANY_MOD,     "\033[E",        0,    0 },
+	{ XK_KP_End,        ControlMask,    "\033[J",       -1,    0 },
+	{ XK_KP_End,        ControlMask,    "\033[1;5F",    +1,    0 },
+	{ XK_KP_End,        ShiftMask,      "\033[K",       -1,    0 },
+	{ XK_KP_End,        ShiftMask,      "\033[1;2F",    +1,    0 },
+	{ XK_KP_End,        XK_ANY_MOD,     "\033[4~",       0,    0 },
+	{ XK_KP_Next,       ShiftMask,      "\033[6;2~",     0,    0 },
+	{ XK_KP_Next,       XK_ANY_MOD,     "\033[6~",       0,    0 },
+	{ XK_KP_Insert,     ShiftMask,      "\033[2;2~",    +1,    0 },
+	{ XK_KP_Insert,     ShiftMask,      "\033[4l",      -1,    0 },
+	{ XK_KP_Insert,     ControlMask,    "\033[L",       -1,    0 },
+	{ XK_KP_Insert,     ControlMask,    "\033[2;5~",    +1,    0 },
+	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[4h",      -1,    0 },
+	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[2~",      +1,    0 },
+	{ XK_KP_Delete,     ControlMask,    "\033[M",       -1,    0 },
+	{ XK_KP_Delete,     ControlMask,    "\033[3;5~",    +1,    0 },
+	{ XK_KP_Delete,     ShiftMask,      "\033[2K",      -1,    0 },
+	{ XK_KP_Delete,     ShiftMask,      "\033[3;2~",    +1,    0 },
+	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[P",       -1,    0 },
+	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[3~",      +1,    0 },
+	{ XK_KP_Multiply,   XK_ANY_MOD,     "\033Oj",       +2,    0 },
+	{ XK_KP_Add,        XK_ANY_MOD,     "\033Ok",       +2,    0 },
+	{ XK_KP_Enter,      XK_ANY_MOD,     "\033OM",       +2,    0 },
+	{ XK_KP_Enter,      XK_ANY_MOD,     "\r",           -1,    0 },
+	{ XK_KP_Subtract,   XK_ANY_MOD,     "\033Om",       +2,    0 },
+	{ XK_KP_Decimal,    XK_ANY_MOD,     "\033On",       +2,    0 },
+	{ XK_KP_Divide,     XK_ANY_MOD,     "\033Oo",       +2,    0 },
+	{ XK_KP_0,          XK_ANY_MOD,     "\033Op",       +2,    0 },
+	{ XK_KP_1,          XK_ANY_MOD,     "\033Oq",       +2,    0 },
+	{ XK_KP_2,          XK_ANY_MOD,     "\033Or",       +2,    0 },
+	{ XK_KP_3,          XK_ANY_MOD,     "\033Os",       +2,    0 },
+	{ XK_KP_4,          XK_ANY_MOD,     "\033Ot",       +2,    0 },
+	{ XK_KP_5,          XK_ANY_MOD,     "\033Ou",       +2,    0 },
+	{ XK_KP_6,          XK_ANY_MOD,     "\033Ov",       +2,    0 },
+	{ XK_KP_7,          XK_ANY_MOD,     "\033Ow",       +2,    0 },
+	{ XK_KP_8,          XK_ANY_MOD,     "\033Ox",       +2,    0 },
+	{ XK_KP_9,          XK_ANY_MOD,     "\033Oy",       +2,    0 },
+	{ XK_Up,            ShiftMask,      "\033[1;2A",     0,    0 },
+	{ XK_Up,            Mod1Mask,       "\033[1;3A",     0,    0 },
+	{ XK_Up,         ShiftMask|Mod1Mask,"\033[1;4A",     0,    0 },
+	{ XK_Up,            ControlMask,    "\033[1;5A",     0,    0 },
+	{ XK_Up,      ShiftMask|ControlMask,"\033[1;6A",     0,    0 },
+	{ XK_Up,       ControlMask|Mod1Mask,"\033[1;7A",     0,    0 },
+	{ XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A",  0,    0 },
+	{ XK_Up,            XK_ANY_MOD,     "\033[A",        0,   -1 },
+	{ XK_Up,            XK_ANY_MOD,     "\033OA",        0,   +1 },
+	{ XK_Down,          ShiftMask,      "\033[1;2B",     0,    0 },
+	{ XK_Down,          Mod1Mask,       "\033[1;3B",     0,    0 },
+	{ XK_Down,       ShiftMask|Mod1Mask,"\033[1;4B",     0,    0 },
+	{ XK_Down,          ControlMask,    "\033[1;5B",     0,    0 },
+	{ XK_Down,    ShiftMask|ControlMask,"\033[1;6B",     0,    0 },
+	{ XK_Down,     ControlMask|Mod1Mask,"\033[1;7B",     0,    0 },
+	{ XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0,    0 },
+	{ XK_Down,          XK_ANY_MOD,     "\033[B",        0,   -1 },
+	{ XK_Down,          XK_ANY_MOD,     "\033OB",        0,   +1 },
+	{ XK_Left,          ShiftMask,      "\033[1;2D",     0,    0 },
+	{ XK_Left,          Mod1Mask,       "\033[1;3D",     0,    0 },
+	{ XK_Left,       ShiftMask|Mod1Mask,"\033[1;4D",     0,    0 },
+	{ XK_Left,          ControlMask,    "\033[1;5D",     0,    0 },
+	{ XK_Left,    ShiftMask|ControlMask,"\033[1;6D",     0,    0 },
+	{ XK_Left,     ControlMask|Mod1Mask,"\033[1;7D",     0,    0 },
+	{ XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0,    0 },
+	{ XK_Left,          XK_ANY_MOD,     "\033[D",        0,   -1 },
+	{ XK_Left,          XK_ANY_MOD,     "\033OD",        0,   +1 },
+	{ XK_Right,         ShiftMask,      "\033[1;2C",     0,    0 },
+	{ XK_Right,         Mod1Mask,       "\033[1;3C",     0,    0 },
+	{ XK_Right,      ShiftMask|Mod1Mask,"\033[1;4C",     0,    0 },
+	{ XK_Right,         ControlMask,    "\033[1;5C",     0,    0 },
+	{ XK_Right,   ShiftMask|ControlMask,"\033[1;6C",     0,    0 },
+	{ XK_Right,    ControlMask|Mod1Mask,"\033[1;7C",     0,    0 },
+	{ XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0,   0 },
+	{ XK_Right,         XK_ANY_MOD,     "\033[C",        0,   -1 },
+	{ XK_Right,         XK_ANY_MOD,     "\033OC",        0,   +1 },
+	{ XK_ISO_Left_Tab,  ShiftMask,      "\033[Z",        0,    0 },
+	{ XK_Return,        Mod1Mask,       "\033\r",        0,    0 },
+	{ XK_Return,        XK_ANY_MOD,     "\r",            0,    0 },
+	{ XK_Insert,        ShiftMask,      "\033[4l",      -1,    0 },
+	{ XK_Insert,        ShiftMask,      "\033[2;2~",    +1,    0 },
+	{ XK_Insert,        ControlMask,    "\033[L",       -1,    0 },
+	{ XK_Insert,        ControlMask,    "\033[2;5~",    +1,    0 },
+	{ XK_Insert,        XK_ANY_MOD,     "\033[4h",      -1,    0 },
+	{ XK_Insert,        XK_ANY_MOD,     "\033[2~",      +1,    0 },
+	{ XK_Delete,        ControlMask,    "\033[M",       -1,    0 },
+	{ XK_Delete,        ControlMask,    "\033[3;5~",    +1,    0 },
+	{ XK_Delete,        ShiftMask,      "\033[2K",      -1,    0 },
+	{ XK_Delete,        ShiftMask,      "\033[3;2~",    +1,    0 },
+	{ XK_Delete,        XK_ANY_MOD,     "\033[P",       -1,    0 },
+	{ XK_Delete,        XK_ANY_MOD,     "\033[3~",      +1,    0 },
+	{ XK_BackSpace,     XK_NO_MOD,      "\177",          0,    0 },
+	{ XK_BackSpace,     Mod1Mask,       "\033\177",      0,    0 },
+	{ XK_Home,          ShiftMask,      "\033[2J",       0,   -1 },
+	{ XK_Home,          ShiftMask,      "\033[1;2H",     0,   +1 },
+	{ XK_Home,          XK_ANY_MOD,     "\033[H",        0,   -1 },
+	{ XK_Home,          XK_ANY_MOD,     "\033[1~",       0,   +1 },
+	{ XK_End,           ControlMask,    "\033[J",       -1,    0 },
+	{ XK_End,           ControlMask,    "\033[1;5F",    +1,    0 },
+	{ XK_End,           ShiftMask,      "\033[K",       -1,    0 },
+	{ XK_End,           ShiftMask,      "\033[1;2F",    +1,    0 },
+	{ XK_End,           XK_ANY_MOD,     "\033[4~",       0,    0 },
+	{ XK_Prior,         ControlMask,    "\033[5;5~",     0,    0 },
+	{ XK_Prior,         ShiftMask,      "\033[5;2~",     0,    0 },
+	{ XK_Prior,         XK_ANY_MOD,     "\033[5~",       0,    0 },
+	{ XK_Next,          ControlMask,    "\033[6;5~",     0,    0 },
+	{ XK_Next,          ShiftMask,      "\033[6;2~",     0,    0 },
+	{ XK_Next,          XK_ANY_MOD,     "\033[6~",       0,    0 },
+	{ XK_F1,            XK_NO_MOD,      "\033OP" ,       0,    0 },
+	{ XK_F1, /* F13 */  ShiftMask,      "\033[1;2P",     0,    0 },
+	{ XK_F1, /* F25 */  ControlMask,    "\033[1;5P",     0,    0 },
+	{ XK_F1, /* F37 */  Mod4Mask,       "\033[1;6P",     0,    0 },
+	{ XK_F1, /* F49 */  Mod1Mask,       "\033[1;3P",     0,    0 },
+	{ XK_F1, /* F61 */  Mod3Mask,       "\033[1;4P",     0,    0 },
+	{ XK_F2,            XK_NO_MOD,      "\033OQ" ,       0,    0 },
+	{ XK_F2, /* F14 */  ShiftMask,      "\033[1;2Q",     0,    0 },
+	{ XK_F2, /* F26 */  ControlMask,    "\033[1;5Q",     0,    0 },
+	{ XK_F2, /* F38 */  Mod4Mask,       "\033[1;6Q",     0,    0 },
+	{ XK_F2, /* F50 */  Mod1Mask,       "\033[1;3Q",     0,    0 },
+	{ XK_F2, /* F62 */  Mod3Mask,       "\033[1;4Q",     0,    0 },
+	{ XK_F3,            XK_NO_MOD,      "\033OR" ,       0,    0 },
+	{ XK_F3, /* F15 */  ShiftMask,      "\033[1;2R",     0,    0 },
+	{ XK_F3, /* F27 */  ControlMask,    "\033[1;5R",     0,    0 },
+	{ XK_F3, /* F39 */  Mod4Mask,       "\033[1;6R",     0,    0 },
+	{ XK_F3, /* F51 */  Mod1Mask,       "\033[1;3R",     0,    0 },
+	{ XK_F3, /* F63 */  Mod3Mask,       "\033[1;4R",     0,    0 },
+	{ XK_F4,            XK_NO_MOD,      "\033OS" ,       0,    0 },
+	{ XK_F4, /* F16 */  ShiftMask,      "\033[1;2S",     0,    0 },
+	{ XK_F4, /* F28 */  ControlMask,    "\033[1;5S",     0,    0 },
+	{ XK_F4, /* F40 */  Mod4Mask,       "\033[1;6S",     0,    0 },
+	{ XK_F4, /* F52 */  Mod1Mask,       "\033[1;3S",     0,    0 },
+	{ XK_F5,            XK_NO_MOD,      "\033[15~",      0,    0 },
+	{ XK_F5, /* F17 */  ShiftMask,      "\033[15;2~",    0,    0 },
+	{ XK_F5, /* F29 */  ControlMask,    "\033[15;5~",    0,    0 },
+	{ XK_F5, /* F41 */  Mod4Mask,       "\033[15;6~",    0,    0 },
+	{ XK_F5, /* F53 */  Mod1Mask,       "\033[15;3~",    0,    0 },
+	{ XK_F6,            XK_NO_MOD,      "\033[17~",      0,    0 },
+	{ XK_F6, /* F18 */  ShiftMask,      "\033[17;2~",    0,    0 },
+	{ XK_F6, /* F30 */  ControlMask,    "\033[17;5~",    0,    0 },
+	{ XK_F6, /* F42 */  Mod4Mask,       "\033[17;6~",    0,    0 },
+	{ XK_F6, /* F54 */  Mod1Mask,       "\033[17;3~",    0,    0 },
+	{ XK_F7,            XK_NO_MOD,      "\033[18~",      0,    0 },
+	{ XK_F7, /* F19 */  ShiftMask,      "\033[18;2~",    0,    0 },
+	{ XK_F7, /* F31 */  ControlMask,    "\033[18;5~",    0,    0 },
+	{ XK_F7, /* F43 */  Mod4Mask,       "\033[18;6~",    0,    0 },
+	{ XK_F7, /* F55 */  Mod1Mask,       "\033[18;3~",    0,    0 },
+	{ XK_F8,            XK_NO_MOD,      "\033[19~",      0,    0 },
+	{ XK_F8, /* F20 */  ShiftMask,      "\033[19;2~",    0,    0 },
+	{ XK_F8, /* F32 */  ControlMask,    "\033[19;5~",    0,    0 },
+	{ XK_F8, /* F44 */  Mod4Mask,       "\033[19;6~",    0,    0 },
+	{ XK_F8, /* F56 */  Mod1Mask,       "\033[19;3~",    0,    0 },
+	{ XK_F9,            XK_NO_MOD,      "\033[20~",      0,    0 },
+	{ XK_F9, /* F21 */  ShiftMask,      "\033[20;2~",    0,    0 },
+	{ XK_F9, /* F33 */  ControlMask,    "\033[20;5~",    0,    0 },
+	{ XK_F9, /* F45 */  Mod4Mask,       "\033[20;6~",    0,    0 },
+	{ XK_F9, /* F57 */  Mod1Mask,       "\033[20;3~",    0,    0 },
+	{ XK_F10,           XK_NO_MOD,      "\033[21~",      0,    0 },
+	{ XK_F10, /* F22 */ ShiftMask,      "\033[21;2~",    0,    0 },
+	{ XK_F10, /* F34 */ ControlMask,    "\033[21;5~",    0,    0 },
+	{ XK_F10, /* F46 */ Mod4Mask,       "\033[21;6~",    0,    0 },
+	{ XK_F10, /* F58 */ Mod1Mask,       "\033[21;3~",    0,    0 },
+	{ XK_F11,           XK_NO_MOD,      "\033[23~",      0,    0 },
+	{ XK_F11, /* F23 */ ShiftMask,      "\033[23;2~",    0,    0 },
+	{ XK_F11, /* F35 */ ControlMask,    "\033[23;5~",    0,    0 },
+	{ XK_F11, /* F47 */ Mod4Mask,       "\033[23;6~",    0,    0 },
+	{ XK_F11, /* F59 */ Mod1Mask,       "\033[23;3~",    0,    0 },
+	{ XK_F12,           XK_NO_MOD,      "\033[24~",      0,    0 },
+	{ XK_F12, /* F24 */ ShiftMask,      "\033[24;2~",    0,    0 },
+	{ XK_F12, /* F36 */ ControlMask,    "\033[24;5~",    0,    0 },
+	{ XK_F12, /* F48 */ Mod4Mask,       "\033[24;6~",    0,    0 },
+	{ XK_F12, /* F60 */ Mod1Mask,       "\033[24;3~",    0,    0 },
+	{ XK_F13,           XK_NO_MOD,      "\033[1;2P",     0,    0 },
+	{ XK_F14,           XK_NO_MOD,      "\033[1;2Q",     0,    0 },
+	{ XK_F15,           XK_NO_MOD,      "\033[1;2R",     0,    0 },
+	{ XK_F16,           XK_NO_MOD,      "\033[1;2S",     0,    0 },
+	{ XK_F17,           XK_NO_MOD,      "\033[15;2~",    0,    0 },
+	{ XK_F18,           XK_NO_MOD,      "\033[17;2~",    0,    0 },
+	{ XK_F19,           XK_NO_MOD,      "\033[18;2~",    0,    0 },
+	{ XK_F20,           XK_NO_MOD,      "\033[19;2~",    0,    0 },
+	{ XK_F21,           XK_NO_MOD,      "\033[20;2~",    0,    0 },
+	{ XK_F22,           XK_NO_MOD,      "\033[21;2~",    0,    0 },
+	{ XK_F23,           XK_NO_MOD,      "\033[23;2~",    0,    0 },
+	{ XK_F24,           XK_NO_MOD,      "\033[24;2~",    0,    0 },
+	{ XK_F25,           XK_NO_MOD,      "\033[1;5P",     0,    0 },
+	{ XK_F26,           XK_NO_MOD,      "\033[1;5Q",     0,    0 },
+	{ XK_F27,           XK_NO_MOD,      "\033[1;5R",     0,    0 },
+	{ XK_F28,           XK_NO_MOD,      "\033[1;5S",     0,    0 },
+	{ XK_F29,           XK_NO_MOD,      "\033[15;5~",    0,    0 },
+	{ XK_F30,           XK_NO_MOD,      "\033[17;5~",    0,    0 },
+	{ XK_F31,           XK_NO_MOD,      "\033[18;5~",    0,    0 },
+	{ XK_F32,           XK_NO_MOD,      "\033[19;5~",    0,    0 },
+	{ XK_F33,           XK_NO_MOD,      "\033[20;5~",    0,    0 },
+	{ XK_F34,           XK_NO_MOD,      "\033[21;5~",    0,    0 },
+	{ XK_F35,           XK_NO_MOD,      "\033[23;5~",    0,    0 },
+};
+
+static uint selmasks[] = {
+	[SEL_RECTANGULAR] = Mod1Mask,
+};
+
+static char ascii_printable[] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/x11-wm/dwm-9999 b/etc/portage/savedconfig/x11-wm/dwm-9999
new file mode 100644
index 0000000..dd96d8d
--- /dev/null
+++ b/etc/portage/savedconfig/x11-wm/dwm-9999
@@ -0,0 +1,99 @@
+static const unsigned int borderpx	= 1;
+static const unsigned int snap		= 32;
+static const int showbar			= 1;
+static const int topbar				= 1;
+
+static const char *fonts[] = { 
+	"UW Ttyp0:pixelsize=14:style=Regular:antialias=false",
+	"Efont Biwidth:pixelsize=14:style=Regular:antialias=false",
+	"Efont Fixed:pixelsize=14:style=Regular:antialias=false",
+	"Misc Fixed",
+};
+
+static const char *colors[][3] = {
+	[SchemeNorm] = {
+		"#c5c8c6",
+		"#161719",
+		"#161719",
+	},
+	[SchemeSel] = {
+		"#161719",
+		"#c5c8c6",
+		"#c5c8c6",
+	},
+};
+
+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+static const Rule rules[] = {
+	{ "Emacs",           NULL, NULL, 1 << 0, 0, -1 },
+	{ "jetbrains-clion", NULL, NULL, 1 << 2, 0, -1 },
+	{ "qutebrowser",     NULL, NULL, 1 << 1, 0, -1 },
+};
+
+static const float mfact		= 0.666;
+static const int nmaster		= 1;
+static const int resizehints	= 0;
+static const int lockfullscreen	= 1;
+
+static const Layout layouts[] = {
+	{ "[]=", tile },
+	{ "><>", NULL },
+	{ "[M]", monocle },
+};
+
+#define MODKEY Mod4Mask
+#define TAGKEYS(KEY,TAG) \
+	{ MODKEY,                       KEY, view,       { .ui = 1 << TAG } }, \
+	{ MODKEY|ControlMask,           KEY, toggleview, { .ui = 1 << TAG } }, \
+	{ MODKEY|ShiftMask,             KEY, tag,        { .ui = 1 << TAG } }, \
+	{ MODKEY|ControlMask|ShiftMask, KEY, toggletag,  { .ui = 1 << TAG } },
+
+static char dmenumon[2] = "0";
+static const char *dmenucmd[] = { NULL };
+
+static Key keys[] = {
+	{ MODKEY,           XK_b,      togglebar,      {0} },
+	{ MODKEY,           XK_j,      focusstack,     {.i = +1 } },
+	{ MODKEY,           XK_k,      focusstack,     {.i = -1 } },
+	{ MODKEY|ShiftMask, XK_k,      incnmaster,     {.i = +1 } },
+	{ MODKEY|ShiftMask, XK_j,      incnmaster,     {.i = -1 } },
+	{ MODKEY,           XK_comma,  setmfact,       {.f = -0.05} },
+	{ MODKEY,           XK_period, setmfact,       {.f = +0.05} },
+	{ MODKEY,           XK_p,      zoom,           {0} },
+	{ MODKEY,           XK_Tab,    view,           {0} },
+	{ MODKEY,           XK_d,      killclient,     {0} },
+	{ MODKEY,           XK_t,      setlayout,      {.v = &layouts[0]} },
+	{ MODKEY,           XK_m,      setlayout,      {.v = &layouts[1]} },
+	{ MODKEY,           XK_f,      setlayout,      {.v = &layouts[2]} },
+	{ MODKEY,           XK_o,      togglefloating, {0} },
+	{ MODKEY,           XK_h,      focusmon,       {.i = -1 } },
+	{ MODKEY,           XK_l,      focusmon,       {.i = +1 } },
+	{ MODKEY|ShiftMask, XK_h,      tagmon,         {.i = -1 } },
+	{ MODKEY|ShiftMask, XK_l,      tagmon,         {.i = +1 } },
+	{ MODKEY|ShiftMask, XK_q,      quit,           {0} },
+	TAGKEYS(            XK_1,                      0)
+	TAGKEYS(            XK_2,                      1)
+	TAGKEYS(            XK_3,                      2)
+	TAGKEYS(            XK_4,                      3)
+	TAGKEYS(            XK_5,                      4)
+	TAGKEYS(            XK_6,                      5)
+	TAGKEYS(            XK_7,                      6)
+	TAGKEYS(            XK_8,                      7)
+	TAGKEYS(            XK_9,                      8)
+};
+
+static Button buttons[] = {
+	{ ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
+	{ ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
+	{ ClkWinTitle,          0,              Button2,        zoom,           {0} },
+	{ ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
+	{ ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
+	{ ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
+	{ ClkTagBar,            0,              Button1,        view,           {0} },
+	{ ClkTagBar,            0,              Button3,        toggleview,     {0} },
+	{ ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
+	{ ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
+};
+
+/* vim: filetype=c */
diff --git a/etc/portage/smart-live-rebuild.conf b/etc/portage/smart-live-rebuild.conf
new file mode 100644
index 0000000..675537b
--- /dev/null
+++ b/etc/portage/smart-live-rebuild.conf
@@ -0,0 +1,2 @@
+[smart-live-rebuild]
+jobs = 1

Consider giving Nix/NixOS a try! <3