From 891c9525518ee03065d2b8a2e5f92a6a87341019 Mon Sep 17 00:00:00 2001 From: mhoellein Date: Tue, 7 Jul 2020 10:10:37 +0200 Subject: [PATCH] committing changes in /etc made by "/usr/bin/python3 /tmp/ubuntu-release-upgrader-vnqdc5dh/eoan --mode=server --frontend=DistUpgradeViewText" Package changes: -accountsservice 0.6.50-0ubuntu1 amd64 +accountsservice 0.6.55-0ubuntu10 amd64 -amd64-microcode 3.20191021.1+really3.20181128.1ubuntu1.1 amd64 -apache2 2.4.38-2ubuntu2.3 amd64 -apache2-bin 2.4.38-2ubuntu2.3 amd64 -apache2-data 2.4.38-2ubuntu2.3 all -apache2-utils 2.4.38-2ubuntu2.3 amd64 -apparmor 2.13.2-9ubuntu6.1 amd64 -apt 1.8.3 amd64 +amd64-microcode 3.20191021.1+really3.20181128.1ubuntu2 amd64 +apache2 2.4.41-1ubuntu1 amd64 +apache2-bin 2.4.41-1ubuntu1 amd64 +apache2-data 2.4.41-1ubuntu1 all +apache2-utils 2.4.41-1ubuntu1 amd64 +apparmor 2.13.3-5ubuntu1 amd64 +apt 1.9.4ubuntu0.1 amd64 -apt-transport-https 1.8.3 all -apt-utils 1.8.3 amd64 -base-files 10.1ubuntu9.2 amd64 +apt-transport-https 1.9.4ubuntu0.1 all +apt-utils 1.9.4ubuntu0.1 amd64 +base-files 10.2ubuntu7.19.10.0 amd64 -bash 5.0-3ubuntu1.1 amd64 -bash-completion 1:2.8-1ubuntu1 all -bind9 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -bind9-host 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -bind9utils 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -borgbackup 1.1.9-2 amd64 +bash 5.0-4ubuntu1 amd64 +bash-completion 1:2.9-1ubuntu1 all +bind9 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +bind9-host 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +bind9utils 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +borgbackup 1.1.10-2 amd64 -bsdutils 1:2.33.1-0.1ubuntu3 amd64 -busybox-initramfs 1:1.27.2-2ubuntu7 amd64 -busybox-static 1:1.27.2-2ubuntu7 amd64 -bzip2 1.0.6-9ubuntu0.19.04.1 amd64 -ca-certificates 20190110 all -command-not-found 18.10.0~pre2 all +bsdutils 1:2.34-0.1ubuntu2.4 amd64 +busybox-initramfs 1:1.30.1-4ubuntu4 amd64 +busybox-static 1:1.30.1-4ubuntu4 amd64 +bzip2 1.0.6-9.2 amd64 +ca-certificates 20190110ubuntu0.19.10.1 all +command-not-found 19.10.0 all -console-setup 1.178ubuntu12.1 all -console-setup-linux 1.178ubuntu12.1 all -coreutils 8.30-1ubuntu1 amd64 -cpio 2.12+dfsg-6ubuntu0.19.04.1 amd64 +console-setup 1.191ubuntu3 all +console-setup-linux 1.191ubuntu3 all +coreutils 8.30-3ubuntu2 amd64 +cpio 2.12+dfsg-9ubuntu0.1 amd64 -cron 3.0pl1-128.1ubuntu1 amd64 -curl 7.64.0-2ubuntu1.2 amd64 -dash 0.5.10.2-4ubuntu1 amd64 -dbconfig-common 2.0.11 all -dbconfig-mysql 2.0.11 all -dbus 1.12.12-1ubuntu1.1 amd64 -debconf 1.5.71ubuntu1 all -debconf-i18n 1.5.71ubuntu1 all -debianutils 4.8.6.1 amd64 +cron 3.0pl1-134ubuntu1 amd64 +curl 7.65.3-1ubuntu3.1 amd64 +dash 0.5.10.2-6 amd64 +dbconfig-common 2.0.11ubuntu2 all +dbconfig-mysql 2.0.11ubuntu2 all +dbus 1.12.14-1ubuntu2.1 amd64 +debconf 1.5.73 all +debconf-i18n 1.5.73 all +debianutils 4.8.6.3 amd64 -diffutils 1:3.7-2 amd64 +diffutils 1:3.7-3 amd64 -distro-info-data 0.39ubuntu2.2 all -dmidecode 3.2-1 amd64 -dmsetup 2:1.02.145-4.1ubuntu4.2 amd64 -dns-root-data 2018091102 all -dnsutils 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 +distro-info-data 0.40ubuntu4 all +dmidecode 3.2-2ubuntu0.1 amd64 +dmsetup 2:1.02.155-2ubuntu6.1 amd64 +dns-root-data 2019052802 all +dnsutils 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 -dovecot-core 1:2.3.4.1-1ubuntu2.4 amd64 -dovecot-imapd 1:2.3.4.1-1ubuntu2.4 amd64 -dpkg 1.19.6ubuntu1.1 amd64 -e2fsprogs 1.44.6-1ubuntu0.2 amd64 +dovecot-core 1:2.3.4.1-5ubuntu3.1 amd64 +dovecot-imapd 1:2.3.4.1-5ubuntu3.1 amd64 +dpkg 1.19.7ubuntu2 amd64 +e2fsprogs 1.45.3-4ubuntu2.1 amd64 -eject 2.1.5+deb1+cvs20081104-13.2 amd64 +eject 2.1.5+deb1+cvs20081104-14 amd64 -etckeeper 1.18.10-1ubuntu1 all -expect 5.45.4-2 amd64 -fdisk 2.33.1-0.1ubuntu3 amd64 -file 1:5.35-4ubuntu0.1 amd64 -findutils 4.6.0+git+20190209-2 amd64 +etckeeper 1.18.10-1ubuntu3 all +expect 5.45.4-2build1 amd64 +fdisk 2.34-0.1ubuntu2.4 amd64 +file 1:5.37-5ubuntu0.1 amd64 +findutils 4.6.0+git+20190209-2ubuntu1 amd64 -friendly-recovery 0.2.39ubuntu0.19.04.1 all +friendly-recovery 0.2.41 all -gcc-8-base 8.3.0-6ubuntu1 amd64 -gcc-9-base 9.1.0-2ubuntu2~19.04 amd64 -geoip-database 20181108-1 all +gcc-8-base 8.4.0-1ubuntu1~19.10 amd64 +gcc-9-base 9.2.1-9ubuntu2 amd64 +geoip-database 20190920-1 all -gir1.2-glib-2.0 1.60.1-1 amd64 -git 1:2.20.1-2ubuntu1.19.04.1 amd64 -git-man 1:2.20.1-2ubuntu1.19.04.1 all +gir1.2-glib-2.0 1.62.0-1 amd64 +git 1:2.20.1-2ubuntu1.19.10.3 amd64 +git-man 1:2.20.1-2ubuntu1.19.10.3 all -grep 3.3-1 amd64 +grep 3.3-1build1 amd64 -grub-common 2.02+dfsg1-12ubuntu2.1 amd64 +grub-common 2.04-1ubuntu12.2 amd64 -grub-pc 2.02+dfsg1-12ubuntu2.1 amd64 -grub-pc-bin 2.02+dfsg1-12ubuntu2.1 amd64 -grub2-common 2.02+dfsg1-12ubuntu2.1 amd64 -guile-2.2-libs 2.2.4+1-1ubuntu2 amd64 -gzip 1.9-3 amd64 -hdparm 9.58+ds-1 amd64 -hostname 3.21 amd64 -info 6.5.0.dfsg.1-4build1 amd64 -init 1.56+nmu1 amd64 -init-system-helpers 1.56+nmu1 all -initramfs-tools 0.131ubuntu19.2 all -initramfs-tools-bin 0.131ubuntu19.2 amd64 -initramfs-tools-core 0.131ubuntu19.2 all -install-info 6.5.0.dfsg.1-4build1 amd64 +grub-pc 2.04-1ubuntu12.2 amd64 +grub-pc-bin 2.04-1ubuntu12.2 amd64 +grub2-common 2.04-1ubuntu12.2 amd64 +guile-2.2-libs 2.2.6+1-1 amd64 +gzip 1.10-0ubuntu3.1 amd64 +hdparm 9.58+ds-4 amd64 +hostname 3.22 amd64 +info 6.6.0.dfsg.1-2ubuntu2 amd64 +init 1.57 amd64 +init-system-helpers 1.57 all +initramfs-tools 0.133ubuntu10 all +initramfs-tools-bin 0.133ubuntu10 amd64 +initramfs-tools-core 0.133ubuntu10 all +install-info 6.6.0.dfsg.1-2ubuntu2 amd64 -intel-microcode 3.20191115.1ubuntu0.19.04.2 amd64 -iproute2 4.18.0-1ubuntu2.1 amd64 -iptables 1.6.1-2ubuntu3 amd64 -iputils-ping 3:20180629-2ubuntu2 amd64 -iputils-tracepath 3:20180629-2ubuntu2 amd64 -irqbalance 1.5.0-3ubuntu1 amd64 -isc-dhcp-client 4.4.1-2ubuntu4 amd64 -isc-dhcp-common 4.4.1-2ubuntu4 amd64 -iso-codes 4.2-1 all +intel-microcode 3.20200609.0ubuntu0.19.10.2 amd64 +iproute2 5.2.0-1ubuntu2 amd64 +iptables 1.8.3-2ubuntu5 amd64 +iputils-ping 3:20190709-2 amd64 +iputils-tracepath 3:20190709-2 amd64 +irqbalance 1.6.0-1ubuntu1 amd64 +isc-dhcp-client 4.4.1-2ubuntu5 amd64 +isc-dhcp-common 4.4.1-2ubuntu5 amd64 +iso-codes 4.3-1 all -iw 5.0.1-1 amd64 +iw 5.3-1 amd64 -kbd 2.0.4-4ubuntu1 amd64 -keyboard-configuration 1.178ubuntu12.1 all -klibc-utils 2.0.6-1 amd64 -kmod 25-1ubuntu4 amd64 -krb5-locales 1.17-1 all -language-pack-en 1:19.04+20190412 all -language-pack-en-base 1:19.04+20190412 all -language-pack-gnome-en 1:19.04+20190412 all -language-pack-gnome-en-base 1:19.04+20190412 all -language-selector-common 0.194.1 all +kbd 2.0.4-4ubuntu2 amd64 +keyboard-configuration 1.191ubuntu3 all +klibc-utils 2.0.6-1ubuntu3 amd64 +kmod 26-1ubuntu1.1 amd64 +krb5-locales 1.17-6 all +language-pack-en 1:19.10+20191010 all +language-pack-en-base 1:19.10+20191010 all +language-pack-gnome-en 1:19.10+20191010 all +language-pack-gnome-en-base 1:19.10+20191010 all +language-selector-common 0.198 all -libaccountsservice0 0.6.50-0ubuntu1 amd64 +libaccountsservice0 0.6.55-0ubuntu10 amd64 -libaio1 0.3.111-1 amd64 +libaio1 0.3.112-5 amd64 -libapparmor1 2.13.2-9ubuntu6.1 amd64 +libapache2-mod-php7.3 7.3.11-0ubuntu0.19.10.6 amd64 +libapparmor1 2.13.3-5ubuntu1 amd64 -libaprutil1 1.6.1-3build1 amd64 -libaprutil1-dbd-sqlite3 1.6.1-3build1 amd64 -libaprutil1-ldap 1.6.1-3build1 amd64 +libaprutil1 1.6.1-4ubuntu0.1 amd64 +libaprutil1-dbd-sqlite3 1.6.1-4ubuntu0.1 amd64 +libaprutil1-ldap 1.6.1-4ubuntu0.1 amd64 -libapt-pkg-perl 0.1.34build1 amd64 +libapt-pkg-perl 0.1.36 amd64 +libapt-pkg5.90 1.9.4ubuntu0.1 amd64 -libasn1-8-heimdal 7.5.0+dfsg-2.1 amd64 -libassuan0 2.5.2-1 amd64 -libatm1 1:2.5.1-2build1 amd64 +libasn1-8-heimdal 7.5.0+dfsg-3build1 amd64 +libassuan0 2.5.3-7ubuntu1 amd64 +libatm1 1:2.5.1-4 amd64 -libaudit-common 1:2.8.3-1ubuntu3 all -libaudit1 1:2.8.3-1ubuntu3 amd64 +libaudit-common 1:2.8.5-2ubuntu1 all +libaudit1 1:2.8.5-2ubuntu1 amd64 -libb2-1 0.98.1-1 amd64 -libbind9-161 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -libblkid1 2.33.1-0.1ubuntu3 amd64 +libb2-1 0.98.1-1.1 amd64 +libbind9-161 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +libblkid1 2.34-0.1ubuntu2.4 amd64 -libbsd0 0.9.1-2ubuntu0.1 amd64 -libbz2-1.0 1.0.6-9ubuntu0.19.04.1 amd64 +libbsd0 0.10.0-1 amd64 +libbz2-1.0 1.0.6-9.2 amd64 -libcgi-fast-perl 1:2.13-1 all -libcgi-pm-perl 4.40-1 all -libcom-err2 1.44.6-1ubuntu0.2 amd64 -libcryptsetup12 2:2.1.0-1ubuntu1 amd64 -libcurl3-gnutls 7.64.0-2ubuntu1.2 amd64 -libcurl4 7.64.0-2ubuntu1.2 amd64 -libdb5.3 5.3.28+dfsg1-0.5ubuntu0.1 amd64 -libdbus-1-3 1.12.12-1ubuntu1.1 amd64 -libdebconfclient0 0.247ubuntu1 amd64 -libdevmapper1.02.1 2:1.02.145-4.1ubuntu4.2 amd64 -libdns-export1104 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -libdns1104 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -libdrm-common 2.4.97-1ubuntu1 all -libdrm2 2.4.97-1ubuntu1 amd64 -libedit2 3.1-20181209-1 amd64 -libelf1 0.176-1 amd64 +libcgi-fast-perl 1:2.15-1 all +libcgi-pm-perl 4.44-1 all +libcom-err2 1.45.3-4ubuntu2.1 amd64 +libcryptsetup12 2:2.2.0-3ubuntu1 amd64 +libcurl3-gnutls 7.65.3-1ubuntu3.1 amd64 +libcurl4 7.65.3-1ubuntu3.1 amd64 +libdb5.3 5.3.28+dfsg1-0.6ubuntu1 amd64 +libdbus-1-3 1.12.14-1ubuntu2.1 amd64 +libdebconfclient0 0.249ubuntu1 amd64 +libdevmapper1.02.1 2:1.02.155-2ubuntu6.1 amd64 +libdns-export1104 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +libdns1104 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +libdrm-common 2.4.99-1ubuntu1 all +libdrm2 2.4.99-1ubuntu1 amd64 +libedit2 3.1-20190324-1 amd64 +libefiboot1 37-2ubuntu2 amd64 +libefivar1 37-2ubuntu2 amd64 +libelf1 0.176-1.1 amd64 -liberror-perl 0.17027-2 all +liberror-perl 0.17028-1 all -libexpat1 2.2.6-1ubuntu0.19.5 amd64 -libext2fs2 1.44.6-1ubuntu0.2 amd64 +libexpat1 2.2.7-2 amd64 +libext2fs2 1.45.3-4ubuntu2.1 amd64 -libfdisk1 2.33.1-0.1ubuntu3 amd64 +libfdisk1 2.34-0.1ubuntu2.4 amd64 -libfreetype6 2.9.1-3 amd64 -libfribidi0 1.0.5-3.1ubuntu0.19.04.1 amd64 +libfreetype6 2.9.1-4 amd64 +libfribidi0 1.0.5-3.1ubuntu0.19.10.1 amd64 -libgcc1 1:9.1.0-2ubuntu2~19.04 amd64 -libgcrypt20 1.8.4-3ubuntu1.1 amd64 -libgd3 2.2.5-5.1 amd64 -libgdbm-compat4 1.18.1-4 amd64 -libgdbm6 1.18.1-4 amd64 -libgeoip1 1.6.12-1 amd64 -libgirepository-1.0-1 1.60.1-1 amd64 -libglib2.0-0 2.60.4-0ubuntu0.19.04.1 amd64 -libglib2.0-data 2.60.4-0ubuntu0.19.04.1 all +libgcc1 1:9.2.1-9ubuntu2 amd64 +libgcrypt20 1.8.4-5ubuntu2.1 amd64 +libgd3 2.2.5-5.2ubuntu0.19.10.1 amd64 +libgdbm-compat4 1.18.1-5 amd64 +libgdbm6 1.18.1-5 amd64 +libgeoip1 1.6.12-5 amd64 +libgirepository-1.0-1 1.62.0-1 amd64 +libglib2.0-0 2.62.4-1~ubuntu19.10.2 amd64 +libglib2.0-data 2.62.4-1~ubuntu19.10.2 all -libgnutls30 3.6.5-2ubuntu1.1 amd64 -libgomp1 9.1.0-2ubuntu2~19.04 amd64 -libgpg-error-l10n 1.35-1 all -libgpg-error0 1.35-1 amd64 +libgnutls30 3.6.9-5ubuntu1.2 amd64 +libgomp1 9.2.1-9ubuntu2 amd64 +libgpg-error-l10n 1.36-7 all +libgpg-error0 1.36-7 amd64 -libgssapi-krb5-2 1.17-1 amd64 -libgssapi3-heimdal 7.5.0+dfsg-2.1 amd64 -libhcrypto4-heimdal 7.5.0+dfsg-2.1 amd64 -libheimbase1-heimdal 7.5.0+dfsg-2.1 amd64 -libheimntlm0-heimdal 7.5.0+dfsg-2.1 amd64 +libgssapi-krb5-2 1.17-6 amd64 +libgssapi3-heimdal 7.5.0+dfsg-3build1 amd64 +libhcrypto4-heimdal 7.5.0+dfsg-3build1 amd64 +libheimbase1-heimdal 7.5.0+dfsg-3build1 amd64 +libheimntlm0-heimdal 7.5.0+dfsg-3build1 amd64 -libhx509-5-heimdal 7.5.0+dfsg-2.1 amd64 -libicu63 63.1-6 amd64 +libhx509-5-heimdal 7.5.0+dfsg-3build1 amd64 +libicu63 63.2-2ubuntu0.1 amd64 -libidn2-0 2.0.5-1ubuntu0.3 amd64 +libidn2-0 2.2.0-2 amd64 -libio-pty-perl 1:1.08-1.1build5 amd64 +libio-pty-perl 1:1.08-1.1build6 amd64 +libip4tc2 1.8.3-2ubuntu5 amd64 -libiptc0 1.6.1-2ubuntu3 amd64 -libirs161 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -libisc-export1100 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -libisc1100 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -libisccc161 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -libisccfg163 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 +libip6tc2 1.8.3-2ubuntu5 amd64 +libiptc0 1.8.3-2ubuntu5 amd64 +libirs161 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +libisc-export1100 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +libisc1100 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +libisccc161 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +libisccfg163 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 -libjpeg-turbo8 2.0.1-0ubuntu2.2 amd64 +libjpeg-turbo8 2.0.3-0ubuntu1.19.10.1 amd64 -libjs-jquery 3.3.1~dfsg-1 all -libjs-sphinxdoc 1.8.5-1ubuntu1 all +libjs-jquery 3.3.1~dfsg-3 all +libjs-sphinxdoc 1.8.5-3 all -libk5crypto3 1.17-1 amd64 +libjson-c4 0.13.1+dfsg-4ubuntu0.3 amd64 +libk5crypto3 1.17-6 amd64 -libklibc 2.0.6-1 amd64 -libkmod2 25-1ubuntu4 amd64 -libkrb5-26-heimdal 7.5.0+dfsg-2.1 amd64 -libkrb5-3 1.17-1 amd64 -libkrb5support0 1.17-1 amd64 +libklibc 2.0.6-1ubuntu3 amd64 +libkmod2 26-1ubuntu1.1 amd64 +libkrb5-26-heimdal 7.5.0+dfsg-3build1 amd64 +libkrb5-3 1.17-6 amd64 +libkrb5support0 1.17-6 amd64 -libldap-2.4-2 2.4.47+dfsg-3ubuntu2.2 amd64 -libldap-common 2.4.47+dfsg-3ubuntu2.2 all +libldap-2.4-2 2.4.48+dfsg-1ubuntu1.1 amd64 +libldap-common 2.4.48+dfsg-1ubuntu1.1 all -libltdl7 2.4.6-10 amd64 +libltdl7 2.4.6-11 amd64 -liblwp-mediatypes-perl 6.02-1 all -liblwres161 1:9.11.5.P1+dfsg-1ubuntu2.6 amd64 -liblz4-1 1.8.3-1ubuntu1 amd64 +liblwp-mediatypes-perl 6.04-1 all +liblwres161 1:9.11.5.P4+dfsg-5.1ubuntu2.2 amd64 +liblz4-1 1.9.1-1 amd64 -libmagic-mgc 1:5.35-4ubuntu0.1 amd64 -libmagic1 1:5.35-4ubuntu0.1 amd64 -libmailutils5 1:3.5-2build1 amd64 +libmagic-mgc 1:5.37-5ubuntu0.1 amd64 +libmagic1 1:5.37-5ubuntu0.1 amd64 +libmailutils6 1:3.6-1build1 amd64 -libmount1 2.33.1-0.1ubuntu3 amd64 +libmount1 2.34-0.1ubuntu2.4 amd64 -libncurses6 6.1+20181013-2ubuntu2 amd64 -libncursesw6 6.1+20181013-2ubuntu2 amd64 -libnet-ssleay-perl 1.85-2ubuntu3 amd64 -libnetfilter-conntrack3 1.0.7-1 amd64 +libmysqlclient21 8.0.20-0ubuntu0.19.10.1 amd64 +libncurses6 6.1+20190803-1ubuntu1 amd64 +libncursesw6 6.1+20190803-1ubuntu1 amd64 +libnet-ssleay-perl 1.88-0ubuntu1 amd64 +libnetfilter-conntrack3 1.0.7-2 amd64 +libnetplan0 0.99-0ubuntu3~19.10.2 amd64 -libnewt0.52 0.52.20-6ubuntu2 amd64 -libnfnetlink0 1.0.1-3 amd64 -libnghttp2-14 1.36.0-2 amd64 +libnewt0.52 0.52.21-2ubuntu1 amd64 +libnfnetlink0 1.0.1-3build1 amd64 +libnftnl11 1.1.4-1 amd64 +libnghttp2-14 1.39.2-1 amd64 -libnss-systemd 240-6ubuntu5.8 amd64 -libntfs-3g883 1:2017.3.23AR.3-2ubuntu1 amd64 -libntlm0 1.5-1 amd64 +libnss-systemd 242-7ubuntu3.11 amd64 +libntfs-3g883 1:2017.3.23AR.3-3ubuntu1 amd64 +libntlm0 1.5-2 amd64 -libp11-kit0 0.23.15-2 amd64 +libp11-kit0 0.23.17-2 amd64 -libpam-modules 1.3.1-5ubuntu1 amd64 -libpam-modules-bin 1.3.1-5ubuntu1 amd64 -libpam-runtime 1.3.1-5ubuntu1 all -libpam-systemd 240-6ubuntu5.8 amd64 -libpam0g 1.3.1-5ubuntu1 amd64 -libparted2 3.2-25 amd64 -libpcap0.8 1.8.1-6ubuntu1.19.04.1 amd64 -libpci3 1:3.5.2-1ubuntu2 amd64 +libpam-modules 1.3.1-5ubuntu1.19.10.1 amd64 +libpam-modules-bin 1.3.1-5ubuntu1.19.10.1 amd64 +libpam-runtime 1.3.1-5ubuntu1.19.10.1 all +libpam-systemd 242-7ubuntu3.11 amd64 +libpam0g 1.3.1-5ubuntu1.19.10.1 amd64 +libparted2 3.2-26 amd64 +libpcap0.8 1.9.1-2 amd64 +libpci3 1:3.6.2-2 amd64 -libperl5.28 5.28.1-6 amd64 +libperl5.28 5.28.1-6build1 amd64 -libplymouth4 0.9.4-1ubuntu1 amd64 -libpng16-16 1.6.36-6 amd64 -libpolkit-gobject-1-0 0.105-25 amd64 +libplymouth4 0.9.4git20190712-0ubuntu4.1 amd64 +libpng16-16 1.6.37-1 amd64 +libpolkit-gobject-1-0 0.105-26ubuntu1 amd64 -libprocps7 2:3.3.15-2ubuntu2.1 amd64 +libprocps7 2:3.3.15-2ubuntu3 amd64 -libpython-stdlib 2.7.16-1 amd64 -libpython2-stdlib 2.7.16-1 amd64 -libpython2.7 2.7.16-2ubuntu0.2 amd64 -libpython2.7-minimal 2.7.16-2ubuntu0.2 amd64 -libpython2.7-stdlib 2.7.16-2ubuntu0.2 amd64 -libpython3-stdlib 3.7.3-1 amd64 -libpython3.7 3.7.3-2ubuntu0.2 amd64 -libpython3.7-minimal 3.7.3-2ubuntu0.2 amd64 -libpython3.7-stdlib 3.7.3-2ubuntu0.2 amd64 -libreadline8 8.0-1 amd64 -libroken18-heimdal 7.5.0+dfsg-2.1 amd64 +libpython-stdlib 2.7.17-1 amd64 +libpython2-stdlib 2.7.17-1 amd64 +libpython2.7 2.7.17-1~19.10 amd64 +libpython2.7-minimal 2.7.17-1~19.10 amd64 +libpython2.7-stdlib 2.7.17-1~19.10 amd64 +libpython3-stdlib 3.7.5-1 amd64 +libpython3.7 3.7.5-2~19.10ubuntu1 amd64 +libpython3.7-minimal 3.7.5-2~19.10ubuntu1 amd64 +libpython3.7-stdlib 3.7.5-2~19.10ubuntu1 amd64 +libreadline8 8.0-3 amd64 +libroken18-heimdal 7.5.0+dfsg-3build1 amd64 -libsasl2-2 2.1.27+dfsg-1 amd64 -libsasl2-modules 2.1.27+dfsg-1 amd64 -libsasl2-modules-db 2.1.27+dfsg-1 amd64 -libseccomp2 2.4.1-0ubuntu0.19.04.3 amd64 -libselinux1 2.8-1build2 amd64 -libsemanage-common 2.8-2 all -libsemanage1 2.8-2 amd64 -libsepol1 2.8-1 amd64 -libslang2 2.3.2-1ubuntu1 amd64 -libsmartcols1 2.33.1-0.1ubuntu3 amd64 -libsodium23 1.0.17-1 amd64 -libsqlite3-0 3.27.2-2ubuntu0.2 amd64 -libss2 1.44.6-1ubuntu0.2 amd64 -libssh-4 0.8.6-3ubuntu0.3 amd64 -libssl1.1 1.1.1b-1ubuntu2.4 amd64 -libstdc++6 9.1.0-2ubuntu2~19.04 amd64 +libsasl2-2 2.1.27+dfsg-1ubuntu0.1 amd64 +libsasl2-modules 2.1.27+dfsg-1ubuntu0.1 amd64 +libsasl2-modules-db 2.1.27+dfsg-1ubuntu0.1 amd64 +libseccomp2 2.4.3-1ubuntu3.19.10.2 amd64 +libselinux1 2.9-2 amd64 +libsemanage-common 2.9-3 all +libsemanage1 2.9-3 amd64 +libsepol1 2.9-2 amd64 +libslang2 2.3.2-4 amd64 +libsmartcols1 2.34-0.1ubuntu2.4 amd64 +libsodium23 1.0.18-1 amd64 +libsqlite3-0 3.29.0-2ubuntu0.3 amd64 +libss2 1.45.3-4ubuntu2.1 amd64 +libssh-4 0.9.0-1ubuntu1.4 amd64 +libssl1.1 1.1.1c-1ubuntu4.1 amd64 +libstdc++6 9.2.1-9ubuntu2 amd64 -libsystemd0 240-6ubuntu5.8 amd64 -libtasn1-6 4.13-3 amd64 +libsystemd0 242-7ubuntu3.11 amd64 +libtasn1-6 4.14-3 amd64 -libtext-charwidth-perl 0.04-7.1build1 amd64 -libtext-iconv-perl 1.7-5build7 amd64 -libtext-wrapi18n-perl 0.06-7.1 all -libtiff5 4.0.10-4ubuntu0.1 amd64 +libtext-charwidth-perl 0.04-9 amd64 +libtext-iconv-perl 1.7-6 amd64 +libtext-wrapi18n-perl 0.06-9 all +libtiff5 4.0.10+git191003-1 amd64 -libtinfo6 6.1+20181013-2ubuntu2 amd64 +libtinfo6 6.1+20190803-1ubuntu1 amd64 -libudev1 240-6ubuntu5.8 amd64 -libunistring2 0.9.10-1ubuntu2 amd64 +libudev1 242-7ubuntu3.11 amd64 +libunistring2 0.9.10-2 amd64 -libusb-1.0-0 2:1.0.22-2 amd64 +libusb-1.0-0 2:1.0.23-1 amd64 -libuuid1 2.33.1-0.1ubuntu3 amd64 +libuuid1 2.34-0.1ubuntu2.4 amd64 -libwind0-heimdal 7.5.0+dfsg-2.1 amd64 -libwrap0 7.6.q-28 amd64 -libx11-6 2:1.6.7-1 amd64 -libx11-data 2:1.6.7-1 all -libxau6 1:1.0.8-1 amd64 +libwind0-heimdal 7.5.0+dfsg-3build1 amd64 +libwrap0 7.6.q-28build1 amd64 +libx11-6 2:1.6.8-1 amd64 +libx11-data 2:1.6.8-1 all +libxau6 1:1.0.9-0ubuntu1 amd64 -libxdmcp6 1:1.1.2-3 amd64 -libxext6 2:1.3.3-1 amd64 -libxml2 2.9.4+dfsg1-7ubuntu3 amd64 -libxmuu1 2:1.1.2-2 amd64 +libxdmcp6 1:1.1.3-0ubuntu1 amd64 +libxext6 2:1.3.4-0ubuntu1 amd64 +libxml2 2.9.4+dfsg1-7ubuntu3.1 amd64 +libxmuu1 2:1.1.3-0ubuntu1 amd64 -libxslt1.1 1.1.32-2ubuntu0.2 amd64 -libxtables12 1.6.1-2ubuntu3 amd64 +libxslt1.1 1.1.33-0ubuntu1.1 amd64 +libxtables12 1.8.3-2ubuntu5 amd64 -libzstd1 1.3.8+dfsg-3 amd64 -linux-base 4.5ubuntu1 all -linux-firmware 1.178.7 all -linux-generic 5.0.0.38.40 amd64 +libzstd1 1.4.3+dfsg-1 amd64 +linux-base 4.5ubuntu2.2 all +linux-firmware 1.183.5 all +linux-generic 5.3.0.62.52 amd64 -linux-headers-generic 5.0.0.38.40 amd64 +linux-headers-5.3.0-62 5.3.0-62.56 all +linux-headers-5.3.0-62-generic 5.3.0-62.56 amd64 +linux-headers-generic 5.3.0.62.52 amd64 -linux-image-generic 5.0.0.38.40 amd64 +linux-image-5.3.0-62-generic 5.3.0-62.56 amd64 +linux-image-generic 5.3.0.62.52 amd64 +linux-modules-5.3.0-62-generic 5.3.0-62.56 amd64 +linux-modules-extra-5.3.0-62-generic 5.3.0-62.56 amd64 -login 1:4.5-1.1ubuntu2 amd64 +login 1:4.5-1.1ubuntu4 amd64 -lsb-base 10.2019031300ubuntu1 all -lsb-release 10.2019031300ubuntu1 all -lshw 02.18-0.1ubuntu7 amd64 -lsof 4.91+dfsg-1ubuntu1 amd64 +logsave 1.45.3-4ubuntu2.1 amd64 +lsb-base 11.0.1ubuntu1 all +lsb-release 11.0.1ubuntu1 all +lshw 02.18.85-0.3 amd64 +lsof 4.91+dfsg-1ubuntu2 amd64 -mailutils 1:3.5-2build1 amd64 -mailutils-common 1:3.5-2build1 all -man-db 2.8.5-2 amd64 -manpages 4.16-1 all +lz4 1.9.1-1 amd64 +mailutils 1:3.6-1build1 amd64 +mailutils-common 1:3.6-1build1 all +man-db 2.8.7-3 amd64 +manpages 5.02-1 all -mime-support 3.60ubuntu1 all -mlocate 0.26-2ubuntu3.1 amd64 -mount 2.33.1-0.1ubuntu3 amd64 -mtr-tiny 0.92-2 amd64 +mecab-ipadic 2.7.0-20070801+main-2.1 all +mecab-ipadic-utf8 2.7.0-20070801+main-2.1 all +mecab-utils 0.996-6 amd64 +mime-support 3.63ubuntu1 all +mlocate 0.26-3ubuntu3 amd64 +mount 2.34-0.1ubuntu2.4 amd64 +mtr-tiny 0.93-1 amd64 -mysql-client-5.7 5.7.28-0ubuntu0.19.04.2 amd64 -mysql-client-core-5.7 5.7.28-0ubuntu0.19.04.2 amd64 -mysql-common 5.8+1.0.5 all -mysql-server 5.7.28-0ubuntu0.19.04.2 all +mysql-client-8.0 8.0.20-0ubuntu0.19.10.1 amd64 +mysql-client-core-8.0 8.0.20-0ubuntu0.19.10.1 amd64 +mysql-common 5.8+1.0.5ubuntu2 all +mysql-server 8.0.20-0ubuntu0.19.10.1 all -mysql-server-core-5.7 5.7.28-0ubuntu0.19.04.2 amd64 -nano 3.2-2 amd64 -ncurses-base 6.1+20181013-2ubuntu2 all -ncurses-bin 6.1+20181013-2ubuntu2 amd64 -ncurses-term 6.1+20181013-2ubuntu2 all +mysql-server-8.0 8.0.20-0ubuntu0.19.10.1 amd64 +mysql-server-core-8.0 8.0.20-0ubuntu0.19.10.1 amd64 +nano 4.3-1 amd64 +ncurses-base 6.1+20190803-1ubuntu1 all +ncurses-bin 6.1+20190803-1ubuntu1 amd64 +ncurses-term 6.1+20190803-1ubuntu1 all -netcat-openbsd 1.195-2 amd64 -netplan.io 0.98-0ubuntu1~19.04.1 amd64 -networkd-dispatcher 2.0-2 all -ntfs-3g 1:2017.3.23AR.3-2ubuntu1 amd64 -openssh-client 1:7.9p1-10 amd64 -openssh-server 1:7.9p1-10 amd64 -openssh-sftp-server 1:7.9p1-10 amd64 -openssl 1.1.1b-1ubuntu2.4 amd64 -os-prober 1.74ubuntu1 amd64 -parted 3.2-25 amd64 -passwd 1:4.5-1.1ubuntu2 amd64 -patch 2.7.6-3ubuntu0.1 amd64 -pciutils 1:3.5.2-1ubuntu2 amd64 -perl 5.28.1-6 amd64 -perl-base 5.28.1-6 amd64 -perl-modules-5.28 5.28.1-6 all +netcat-openbsd 1.203-1 amd64 +netplan.io 0.99-0ubuntu3~19.10.2 amd64 +networkd-dispatcher 2.0.1-1 all +ntfs-3g 1:2017.3.23AR.3-3ubuntu1 amd64 +openssh-client 1:8.0p1-6build1 amd64 +openssh-server 1:8.0p1-6build1 amd64 +openssh-sftp-server 1:8.0p1-6build1 amd64 +openssl 1.1.1c-1ubuntu4.1 amd64 +os-prober 1.74ubuntu2 amd64 +parted 3.2-26 amd64 +passwd 1:4.5-1.1ubuntu4 amd64 +patch 2.7.6-6 amd64 +pciutils 1:3.6.2-2 amd64 +perl 5.28.1-6build1 amd64 +perl-base 5.28.1-6build1 amd64 +perl-modules-5.28 5.28.1-6build1 all -php 2:7.2+69ubuntu1 all -php-bz2 2:7.2+69ubuntu1 all -php-common 2:69ubuntu1 all -php-curl 2:7.2+69ubuntu1 all -php-gd 2:7.2+69ubuntu1 all -php-mbstring 2:7.2+69ubuntu1 all -php-mysql 2:7.2+69ubuntu1 all -php-pear 1:1.10.6+submodules+notgz-1.1 all +php 2:7.3+69ubuntu2 all +php-bz2 2:7.3+69ubuntu2 all +php-common 2:69ubuntu2 all +php-curl 2:7.3+69ubuntu2 all +php-gd 2:7.3+69ubuntu2 all +php-mbstring 2:7.3+69ubuntu2 all +php-mysql 2:7.3+69ubuntu2 all +php-pear 1:1.10.9+submodules+notgz-1 all -php-phpseclib 2.0.14-1 all +php-phpseclib 2.0.21-2 all -php-xml 2:7.2+69ubuntu1 all -php-zip 2:7.2+69ubuntu1 all +php-xml 2:7.3+69ubuntu2 all +php-zip 2:7.3+69ubuntu2 all +php7.3 7.3.11-0ubuntu0.19.10.6 all +php7.3-bz2 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-cli 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-common 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-curl 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-gd 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-json 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-mbstring 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-mysql 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-opcache 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-readline 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-xml 7.3.11-0ubuntu0.19.10.6 amd64 +php7.3-zip 7.3.11-0ubuntu0.19.10.6 amd64 -pinentry-curses 1.1.0-1build2 amd64 -plymouth 0.9.4-1ubuntu1 amd64 -plymouth-theme-ubuntu-text 0.9.4-1ubuntu1 amd64 +pinentry-curses 1.1.0-3 amd64 +plymouth 0.9.4git20190712-0ubuntu4.1 amd64 +plymouth-theme-ubuntu-text 0.9.4git20190712-0ubuntu4.1 amd64 -postfix 3.3.2-4 amd64 -powermgmt-base 1.33 all -procps 2:3.3.15-2ubuntu2.1 amd64 +postfix 3.4.5-1ubuntu1 amd64 +powermgmt-base 1.36 all +procps 2:3.3.15-2ubuntu3 amd64 -publicsuffix 20190128.1516-1 all -python 2.7.16-1 amd64 -python-apt-common 1.8.5~ubuntu0.3 all -python-minimal 2.7.16-1 amd64 -python2 2.7.16-1 amd64 -python2-minimal 2.7.16-1 amd64 -python2.7 2.7.16-2ubuntu0.2 amd64 -python2.7-minimal 2.7.16-2ubuntu0.2 amd64 -python3 3.7.3-1 amd64 -python3-apt 1.8.5~ubuntu0.3 amd64 +publicsuffix 20190723.1836-1 all +python 2.7.17-1 amd64 +python-apt-common 1.9.0ubuntu1.4 all +python-minimal 2.7.17-1 amd64 +python2 2.7.17-1 amd64 +python2-minimal 2.7.17-1 amd64 +python2.7 2.7.17-1~19.10 amd64 +python2.7-minimal 2.7.17-1~19.10 amd64 +python3 3.7.5-1 amd64 +python3-apt 1.9.0ubuntu1.4 amd64 -python3-cffi-backend 1.12.2-1 amd64 -python3-chardet 3.0.4-3 all -python3-commandnotfound 18.10.0~pre2 all -python3-dbus 1.2.8-3 amd64 -python3-distro-info 0.21ubuntu2 all -python3-distupgrade 1:19.04.16.9 all -python3-gdbm 3.7.5-1~19.04 amd64 -python3-gi 3.32.0-1 amd64 -python3-idna 2.6-1 all +python3-cffi-backend 1.12.3-1build1 amd64 +python3-chardet 3.0.4-4 all +python3-commandnotfound 19.10.0 all +python3-dbus 1.2.12-1 amd64 +python3-distro-info 0.21ubuntu4 all +python3-distupgrade 1:19.10.15.4 all +python3-gdbm 3.7.5-1build1 amd64 +python3-gi 3.34.0-1 amd64 +python3-idna 2.6-2 all -python3-minimal 3.7.3-1 amd64 +python3-minimal 3.7.5-1 amd64 -python3-netifaces 0.10.4-1build2 amd64 -python3-pkg-resources 40.8.0-1 all +python3-netifaces 0.10.4-1build3 amd64 +python3-pkg-resources 41.1.0-1 all -python3-pymacaroons 0.13.0-2 all +python3-pymacaroons 0.13.0-3 all -python3-six 1.12.0-1 all -python3-update-manager 1:19.04.5 all -python3-urllib3 1.24.1-1ubuntu0.1 all -python3-yaml 3.13-2 amd64 -python3.7 3.7.3-2ubuntu0.2 amd64 -python3.7-minimal 3.7.3-2ubuntu0.2 amd64 -readline-common 8.0-1 all +python3-six 1.12.0-2 all +python3-update-manager 1:19.04.8.1 all +python3-urllib3 1.24.1-1ubuntu1 all +python3-yaml 5.1.2-1 amd64 +python3.7 3.7.5-2~19.10ubuntu1 amd64 +python3.7-minimal 3.7.5-2~19.10ubuntu1 amd64 +readline-common 8.0-3 all -rsyslog 8.32.0-1ubuntu7 amd64 -screen 4.6.2-3 amd64 +rsyslog 8.1901.0-1ubuntu4 amd64 +screen 4.6.2-3build1 amd64 -strace 4.25-0ubuntu1 amd64 -sudo 1.8.27-1ubuntu1.1 amd64 -systemd 240-6ubuntu5.8 amd64 -systemd-sysv 240-6ubuntu5.8 amd64 -sysvinit-utils 2.88dsf-59.10ubuntu2 amd64 -tar 1.30+dfsg-5 amd64 +strace 4.26-0.2ubuntu3 amd64 +sudo 1.8.27-1ubuntu4.1 amd64 +systemd 242-7ubuntu3.11 amd64 +systemd-sysv 242-7ubuntu3.11 amd64 +sysvinit-utils 2.95-5ubuntu2 amd64 +tar 1.30+dfsg-6 amd64 -tcl-expect 5.45.4-2 amd64 +tcl-expect 5.45.4-2build1 amd64 -tcpdump 4.9.2-3 amd64 +tcpdump 4.9.3-2 amd64 -tzdata 2019c-0ubuntu0.19.04 all -ubuntu-advantage-tools 19.4 amd64 +tzdata 2020a-0ubuntu0.19.10 all +ubuntu-advantage-tools 19.5.1 amd64 -ubuntu-minimal 1.431.1 amd64 -ubuntu-release-upgrader-core 1:19.04.16.9 all -ubuntu-standard 1.431.1 amd64 +ubuntu-minimal 1.440.1 amd64 +ubuntu-release-upgrader-core 1:19.10.15.4 all +ubuntu-standard 1.440.1 amd64 -udev 240-6ubuntu5.8 amd64 -ufw 0.36-1ubuntu1 all -update-manager-core 1:19.04.5 all -usb.ids 2019.02.23-1 all -usbutils 1:010-3 amd64 -util-linux 2.33.1-0.1ubuntu3 amd64 -uuid-runtime 2.33.1-0.1ubuntu3 amd64 -vim 2:8.1.0320-1ubuntu3.1 amd64 -vim-common 2:8.1.0320-1ubuntu3.1 all -vim-runtime 2:8.1.0320-1ubuntu3.1 all -vim-tiny 2:8.1.0320-1ubuntu3.1 amd64 +udev 242-7ubuntu3.11 amd64 +ufw 0.36-1ubuntu3 all +update-manager-core 1:19.04.8.1 all +usb.ids 2019.07.27-1 all +usbutils 1:012-1 amd64 +util-linux 2.34-0.1ubuntu2.4 amd64 +uuid-runtime 2.34-0.1ubuntu2.4 amd64 +vim 2:8.1.0875-5ubuntu2.1 amd64 +vim-common 2:8.1.0875-5ubuntu2.1 all +vim-runtime 2:8.1.0875-5ubuntu2.1 all +vim-tiny 2:8.1.0875-5ubuntu2.1 amd64 -wget 1.20.1-1ubuntu4 amd64 -whiptail 0.52.20-6ubuntu2 amd64 +wget 1.20.3-1ubuntu1 amd64 +whiptail 0.52.21-2ubuntu1 amd64 -xauth 1:1.0.10-1 amd64 +xauth 1:1.1-0ubuntu1 amd64 -xkb-data 2.23.1-1ubuntu1.18.10.1 all -xxd 2:8.1.0320-1ubuntu3.1 amd64 +xkb-data 2.26-2ubuntu2 all +xxd 2:8.1.0875-5ubuntu2.1 amd64 -zlib1g 1:1.2.11.dfsg-1ubuntu2 amd64 +zlib1g 1:1.2.11.dfsg-1ubuntu3 amd64 --- .etckeeper | 57 +- alternatives/arptables | 1 + alternatives/arptables-restore | 1 + alternatives/arptables-save | 1 + alternatives/ebtables | 1 + alternatives/ebtables-restore | 1 + alternatives/ebtables-save | 1 + alternatives/ip6tables | 1 + alternatives/ip6tables-restore | 1 + alternatives/ip6tables-save | 1 + alternatives/iptables | 1 + alternatives/iptables-restore | 1 + alternatives/iptables-save | 1 + alternatives/mecab-dictionary | 1 + alternatives/phar | 2 +- alternatives/phar.1.gz | 2 +- alternatives/phar.phar | 2 +- alternatives/phar.phar.1.gz | 2 +- alternatives/php | 2 +- alternatives/php.1.gz | 2 +- apache2/mods-available/php7.3.conf | 25 + apache2/mods-available/php7.3.load | 3 + apache2/mods-enabled/php7.3.conf | 1 + apache2/mods-enabled/php7.3.load | 1 + apm/event.d/20hdparm | 82 - apparmor.d/abstractions/X | 3 + apparmor.d/abstractions/base | 10 +- apparmor.d/abstractions/dri-common | 1 + apparmor.d/abstractions/fonts | 2 +- apparmor.d/abstractions/gnome | 5 + apparmor.d/abstractions/ldapclient | 3 + apparmor.d/abstractions/nameservice | 2 +- apparmor.d/abstractions/nvidia | 2 + apparmor.d/abstractions/postfix-common | 2 + apparmor.d/abstractions/python | 8 +- apparmor.d/abstractions/qt5 | 1 + .../abstractions/qt5-compose-cache-write | 3 +- apparmor.d/abstractions/qt5-settings-write | 8 +- .../abstractions/ubuntu-browsers.d/multimedia | 3 + apparmor.d/local/lsb_release | 0 apparmor.d/lsb_release | 50 + apparmor.d/usr.bin.man | 3 + apparmor.d/usr.sbin.mysqld | 7 + apparmor.d/usr.sbin.named | 21 + apparmor.d/usr.sbin.rsyslogd | 1 + apparmor.d/usr.sbin.tcpdump | 4 +- apt/apt.conf.d/01autoremove-kernels | 57 +- apt/apt.conf.d/51ubuntu-advantage-esm | 3 + ca-certificates.conf | 2 +- console-setup/Uni2-Fixed16.psf.gz | Bin 4147 -> 4151 bytes console-setup/cached_UTF-8_del.kmap.gz | Bin 4024 -> 4028 bytes console-setup/cached_Uni2-Fixed16.psf.gz | Bin 4147 -> 4151 bytes console-setup/cached_setup_font.sh | 4 +- cron.d/e2scrub_all | 2 + cron.daily/mlocate | 2 +- crontab | 9 +- default/grub | 1 + e2scrub.conf | 25 + group | 2 + group- | 2 +- grub.d/10_linux | 118 +- grub.d/10_linux_zfs | 997 +++++++++ grub.d/20_linux_xen | 72 +- gshadow | 2 + gshadow- | 2 +- init.d/cron | 4 +- init.d/irqbalance | 7 +- init.d/udev | 6 +- initramfs-tools/initramfs.conf | 2 +- issue | 2 +- issue.net | 2 +- kernel/postinst.d/initramfs-tools | 3 +- kernel/postrm.d/initramfs-tools | 3 +- logcheck/ignore.d.paranoid/mysql-server-8_0 | 9 + logcheck/ignore.d.server/mysql-server-8_0 | 32 + logcheck/ignore.d.server/rsyslog | 1 - .../ignore.d.workstation/mysql-server-8_0 | 32 + lsb-release | 6 +- mime.types | 12 +- mke2fs.conf | 5 +- mysql/mysql.conf.d/mysql.cnf | 6 + mysql/mysql.conf.d/mysqld.cnf | 92 +- nanorc | 122 +- passwd | 1 + passwd- | 3 +- php/7.3/apache2/conf.d/10-mysqlnd.ini | 1 + php/7.3/apache2/conf.d/10-opcache.ini | 1 + php/7.3/apache2/conf.d/10-pdo.ini | 1 + php/7.3/apache2/conf.d/15-xml.ini | 1 + php/7.3/apache2/conf.d/20-bz2.ini | 1 + php/7.3/apache2/conf.d/20-calendar.ini | 1 + php/7.3/apache2/conf.d/20-ctype.ini | 1 + php/7.3/apache2/conf.d/20-curl.ini | 1 + php/7.3/apache2/conf.d/20-dom.ini | 1 + php/7.3/apache2/conf.d/20-exif.ini | 1 + php/7.3/apache2/conf.d/20-fileinfo.ini | 1 + php/7.3/apache2/conf.d/20-ftp.ini | 1 + php/7.3/apache2/conf.d/20-gd.ini | 1 + php/7.3/apache2/conf.d/20-gettext.ini | 1 + php/7.3/apache2/conf.d/20-iconv.ini | 1 + php/7.3/apache2/conf.d/20-json.ini | 1 + php/7.3/apache2/conf.d/20-mbstring.ini | 1 + php/7.3/apache2/conf.d/20-mysqli.ini | 1 + php/7.3/apache2/conf.d/20-pdo_mysql.ini | 1 + php/7.3/apache2/conf.d/20-phar.ini | 1 + php/7.3/apache2/conf.d/20-posix.ini | 1 + php/7.3/apache2/conf.d/20-readline.ini | 1 + php/7.3/apache2/conf.d/20-shmop.ini | 1 + php/7.3/apache2/conf.d/20-simplexml.ini | 1 + php/7.3/apache2/conf.d/20-sockets.ini | 1 + php/7.3/apache2/conf.d/20-sysvmsg.ini | 1 + php/7.3/apache2/conf.d/20-sysvsem.ini | 1 + php/7.3/apache2/conf.d/20-sysvshm.ini | 1 + php/7.3/apache2/conf.d/20-tokenizer.ini | 1 + php/7.3/apache2/conf.d/20-wddx.ini | 1 + php/7.3/apache2/conf.d/20-xmlreader.ini | 1 + php/7.3/apache2/conf.d/20-xmlwriter.ini | 1 + php/7.3/apache2/conf.d/20-xsl.ini | 1 + php/7.3/apache2/conf.d/20-zip.ini | 1 + php/7.3/apache2/php.ini | 1945 +++++++++++++++++ php/7.3/cli/conf.d/10-mysqlnd.ini | 1 + php/7.3/cli/conf.d/10-opcache.ini | 1 + php/7.3/cli/conf.d/10-pdo.ini | 1 + php/7.3/cli/conf.d/15-xml.ini | 1 + php/7.3/cli/conf.d/20-bz2.ini | 1 + php/7.3/cli/conf.d/20-calendar.ini | 1 + php/7.3/cli/conf.d/20-ctype.ini | 1 + php/7.3/cli/conf.d/20-curl.ini | 1 + php/7.3/cli/conf.d/20-dom.ini | 1 + php/7.3/cli/conf.d/20-exif.ini | 1 + php/7.3/cli/conf.d/20-fileinfo.ini | 1 + php/7.3/cli/conf.d/20-ftp.ini | 1 + php/7.3/cli/conf.d/20-gd.ini | 1 + php/7.3/cli/conf.d/20-gettext.ini | 1 + php/7.3/cli/conf.d/20-iconv.ini | 1 + php/7.3/cli/conf.d/20-json.ini | 1 + php/7.3/cli/conf.d/20-mbstring.ini | 1 + php/7.3/cli/conf.d/20-mysqli.ini | 1 + php/7.3/cli/conf.d/20-pdo_mysql.ini | 1 + php/7.3/cli/conf.d/20-phar.ini | 1 + php/7.3/cli/conf.d/20-posix.ini | 1 + php/7.3/cli/conf.d/20-readline.ini | 1 + php/7.3/cli/conf.d/20-shmop.ini | 1 + php/7.3/cli/conf.d/20-simplexml.ini | 1 + php/7.3/cli/conf.d/20-sockets.ini | 1 + php/7.3/cli/conf.d/20-sysvmsg.ini | 1 + php/7.3/cli/conf.d/20-sysvsem.ini | 1 + php/7.3/cli/conf.d/20-sysvshm.ini | 1 + php/7.3/cli/conf.d/20-tokenizer.ini | 1 + php/7.3/cli/conf.d/20-wddx.ini | 1 + php/7.3/cli/conf.d/20-xmlreader.ini | 1 + php/7.3/cli/conf.d/20-xmlwriter.ini | 1 + php/7.3/cli/conf.d/20-xsl.ini | 1 + php/7.3/cli/conf.d/20-zip.ini | 1 + php/7.3/cli/php.ini | 1945 +++++++++++++++++ php/7.3/mods-available/bz2.ini | 3 + php/7.3/mods-available/calendar.ini | 3 + php/7.3/mods-available/ctype.ini | 3 + php/7.3/mods-available/curl.ini | 3 + php/7.3/mods-available/dom.ini | 3 + php/7.3/mods-available/exif.ini | 3 + php/7.3/mods-available/fileinfo.ini | 3 + php/7.3/mods-available/ftp.ini | 3 + php/7.3/mods-available/gd.ini | 3 + php/7.3/mods-available/gettext.ini | 3 + php/7.3/mods-available/iconv.ini | 3 + php/7.3/mods-available/json.ini | 3 + php/7.3/mods-available/mbstring.ini | 3 + php/7.3/mods-available/mysqli.ini | 3 + php/7.3/mods-available/mysqlnd.ini | 3 + php/7.3/mods-available/opcache.ini | 3 + php/7.3/mods-available/pdo.ini | 3 + php/7.3/mods-available/pdo_mysql.ini | 3 + php/7.3/mods-available/phar.ini | 3 + php/7.3/mods-available/posix.ini | 3 + php/7.3/mods-available/readline.ini | 3 + php/7.3/mods-available/shmop.ini | 3 + php/7.3/mods-available/simplexml.ini | 3 + php/7.3/mods-available/sockets.ini | 3 + php/7.3/mods-available/sysvmsg.ini | 3 + php/7.3/mods-available/sysvsem.ini | 3 + php/7.3/mods-available/sysvshm.ini | 3 + php/7.3/mods-available/tokenizer.ini | 3 + php/7.3/mods-available/wddx.ini | 3 + php/7.3/mods-available/xml.ini | 3 + php/7.3/mods-available/xmlreader.ini | 3 + php/7.3/mods-available/xmlwriter.ini | 3 + php/7.3/mods-available/xsl.ini | 3 + php/7.3/mods-available/zip.ini | 3 + postfix/post-install | 10 + postfix/postfix-files | 2 + postfix/postfix-script | 51 +- profile.d/bash_completion.sh | 2 +- rsyslog.conf | 8 +- shadow | 1 + shadow- | 1 + ssh/moduli | 876 ++++---- ssh/ssh_config | 1 - ssl/certs/157753a5.0 | 1 - ssl/certs/AddTrust_External_Root.pem | 1 - ssl/certs/ca-certificates.crt | 25 - systemd/sleep.conf | 25 + .../default.target.wants/e2scrub_reap.service | 1 + .../timers.target.wants/e2scrub_all.timer | 1 + ubuntu-advantage/uaclient.conf | 2 +- update-motd.d/50-motd-news | 4 +- updatedb.conf | 2 +- vim/vimrc | 8 +- 208 files changed, 6306 insertions(+), 759 deletions(-) create mode 120000 alternatives/arptables create mode 120000 alternatives/arptables-restore create mode 120000 alternatives/arptables-save create mode 120000 alternatives/ebtables create mode 120000 alternatives/ebtables-restore create mode 120000 alternatives/ebtables-save create mode 120000 alternatives/ip6tables create mode 120000 alternatives/ip6tables-restore create mode 120000 alternatives/ip6tables-save create mode 120000 alternatives/iptables create mode 120000 alternatives/iptables-restore create mode 120000 alternatives/iptables-save create mode 120000 alternatives/mecab-dictionary create mode 100644 apache2/mods-available/php7.3.conf create mode 100644 apache2/mods-available/php7.3.load create mode 120000 apache2/mods-enabled/php7.3.conf create mode 120000 apache2/mods-enabled/php7.3.load delete mode 100755 apm/event.d/20hdparm create mode 100644 apparmor.d/local/lsb_release create mode 100644 apparmor.d/lsb_release create mode 100644 apt/apt.conf.d/51ubuntu-advantage-esm create mode 100644 cron.d/e2scrub_all create mode 100644 e2scrub.conf create mode 100755 grub.d/10_linux_zfs create mode 100644 logcheck/ignore.d.paranoid/mysql-server-8_0 create mode 100644 logcheck/ignore.d.server/mysql-server-8_0 create mode 100644 logcheck/ignore.d.workstation/mysql-server-8_0 create mode 100644 mysql/mysql.conf.d/mysql.cnf create mode 120000 php/7.3/apache2/conf.d/10-mysqlnd.ini create mode 120000 php/7.3/apache2/conf.d/10-opcache.ini create mode 120000 php/7.3/apache2/conf.d/10-pdo.ini create mode 120000 php/7.3/apache2/conf.d/15-xml.ini create mode 120000 php/7.3/apache2/conf.d/20-bz2.ini create mode 120000 php/7.3/apache2/conf.d/20-calendar.ini create mode 120000 php/7.3/apache2/conf.d/20-ctype.ini create mode 120000 php/7.3/apache2/conf.d/20-curl.ini create mode 120000 php/7.3/apache2/conf.d/20-dom.ini create mode 120000 php/7.3/apache2/conf.d/20-exif.ini create mode 120000 php/7.3/apache2/conf.d/20-fileinfo.ini create mode 120000 php/7.3/apache2/conf.d/20-ftp.ini create mode 120000 php/7.3/apache2/conf.d/20-gd.ini create mode 120000 php/7.3/apache2/conf.d/20-gettext.ini create mode 120000 php/7.3/apache2/conf.d/20-iconv.ini create mode 120000 php/7.3/apache2/conf.d/20-json.ini create mode 120000 php/7.3/apache2/conf.d/20-mbstring.ini create mode 120000 php/7.3/apache2/conf.d/20-mysqli.ini create mode 120000 php/7.3/apache2/conf.d/20-pdo_mysql.ini create mode 120000 php/7.3/apache2/conf.d/20-phar.ini create mode 120000 php/7.3/apache2/conf.d/20-posix.ini create mode 120000 php/7.3/apache2/conf.d/20-readline.ini create mode 120000 php/7.3/apache2/conf.d/20-shmop.ini create mode 120000 php/7.3/apache2/conf.d/20-simplexml.ini create mode 120000 php/7.3/apache2/conf.d/20-sockets.ini create mode 120000 php/7.3/apache2/conf.d/20-sysvmsg.ini create mode 120000 php/7.3/apache2/conf.d/20-sysvsem.ini create mode 120000 php/7.3/apache2/conf.d/20-sysvshm.ini create mode 120000 php/7.3/apache2/conf.d/20-tokenizer.ini create mode 120000 php/7.3/apache2/conf.d/20-wddx.ini create mode 120000 php/7.3/apache2/conf.d/20-xmlreader.ini create mode 120000 php/7.3/apache2/conf.d/20-xmlwriter.ini create mode 120000 php/7.3/apache2/conf.d/20-xsl.ini create mode 120000 php/7.3/apache2/conf.d/20-zip.ini create mode 100644 php/7.3/apache2/php.ini create mode 120000 php/7.3/cli/conf.d/10-mysqlnd.ini create mode 120000 php/7.3/cli/conf.d/10-opcache.ini create mode 120000 php/7.3/cli/conf.d/10-pdo.ini create mode 120000 php/7.3/cli/conf.d/15-xml.ini create mode 120000 php/7.3/cli/conf.d/20-bz2.ini create mode 120000 php/7.3/cli/conf.d/20-calendar.ini create mode 120000 php/7.3/cli/conf.d/20-ctype.ini create mode 120000 php/7.3/cli/conf.d/20-curl.ini create mode 120000 php/7.3/cli/conf.d/20-dom.ini create mode 120000 php/7.3/cli/conf.d/20-exif.ini create mode 120000 php/7.3/cli/conf.d/20-fileinfo.ini create mode 120000 php/7.3/cli/conf.d/20-ftp.ini create mode 120000 php/7.3/cli/conf.d/20-gd.ini create mode 120000 php/7.3/cli/conf.d/20-gettext.ini create mode 120000 php/7.3/cli/conf.d/20-iconv.ini create mode 120000 php/7.3/cli/conf.d/20-json.ini create mode 120000 php/7.3/cli/conf.d/20-mbstring.ini create mode 120000 php/7.3/cli/conf.d/20-mysqli.ini create mode 120000 php/7.3/cli/conf.d/20-pdo_mysql.ini create mode 120000 php/7.3/cli/conf.d/20-phar.ini create mode 120000 php/7.3/cli/conf.d/20-posix.ini create mode 120000 php/7.3/cli/conf.d/20-readline.ini create mode 120000 php/7.3/cli/conf.d/20-shmop.ini create mode 120000 php/7.3/cli/conf.d/20-simplexml.ini create mode 120000 php/7.3/cli/conf.d/20-sockets.ini create mode 120000 php/7.3/cli/conf.d/20-sysvmsg.ini create mode 120000 php/7.3/cli/conf.d/20-sysvsem.ini create mode 120000 php/7.3/cli/conf.d/20-sysvshm.ini create mode 120000 php/7.3/cli/conf.d/20-tokenizer.ini create mode 120000 php/7.3/cli/conf.d/20-wddx.ini create mode 120000 php/7.3/cli/conf.d/20-xmlreader.ini create mode 120000 php/7.3/cli/conf.d/20-xmlwriter.ini create mode 120000 php/7.3/cli/conf.d/20-xsl.ini create mode 120000 php/7.3/cli/conf.d/20-zip.ini create mode 100644 php/7.3/cli/php.ini create mode 100644 php/7.3/mods-available/bz2.ini create mode 100644 php/7.3/mods-available/calendar.ini create mode 100644 php/7.3/mods-available/ctype.ini create mode 100644 php/7.3/mods-available/curl.ini create mode 100644 php/7.3/mods-available/dom.ini create mode 100644 php/7.3/mods-available/exif.ini create mode 100644 php/7.3/mods-available/fileinfo.ini create mode 100644 php/7.3/mods-available/ftp.ini create mode 100644 php/7.3/mods-available/gd.ini create mode 100644 php/7.3/mods-available/gettext.ini create mode 100644 php/7.3/mods-available/iconv.ini create mode 100644 php/7.3/mods-available/json.ini create mode 100644 php/7.3/mods-available/mbstring.ini create mode 100644 php/7.3/mods-available/mysqli.ini create mode 100644 php/7.3/mods-available/mysqlnd.ini create mode 100644 php/7.3/mods-available/opcache.ini create mode 100644 php/7.3/mods-available/pdo.ini create mode 100644 php/7.3/mods-available/pdo_mysql.ini create mode 100644 php/7.3/mods-available/phar.ini create mode 100644 php/7.3/mods-available/posix.ini create mode 100644 php/7.3/mods-available/readline.ini create mode 100644 php/7.3/mods-available/shmop.ini create mode 100644 php/7.3/mods-available/simplexml.ini create mode 100644 php/7.3/mods-available/sockets.ini create mode 100644 php/7.3/mods-available/sysvmsg.ini create mode 100644 php/7.3/mods-available/sysvsem.ini create mode 100644 php/7.3/mods-available/sysvshm.ini create mode 100644 php/7.3/mods-available/tokenizer.ini create mode 100644 php/7.3/mods-available/wddx.ini create mode 100644 php/7.3/mods-available/xml.ini create mode 100644 php/7.3/mods-available/xmlreader.ini create mode 100644 php/7.3/mods-available/xmlwriter.ini create mode 100644 php/7.3/mods-available/xsl.ini create mode 100644 php/7.3/mods-available/zip.ini delete mode 120000 ssl/certs/157753a5.0 delete mode 120000 ssl/certs/AddTrust_External_Root.pem create mode 100644 systemd/sleep.conf create mode 120000 systemd/system/default.target.wants/e2scrub_reap.service create mode 120000 systemd/system/timers.target.wants/e2scrub_all.timer diff --git a/.etckeeper b/.etckeeper index 13939e8..e2e315f 100755 --- a/.etckeeper +++ b/.etckeeper @@ -2,6 +2,7 @@ mkdir -p './X11/xkb' mkdir -p './acpi/events' +mkdir -p './apm/event.d' mkdir -p './apparmor.d/force-complain' mkdir -p './apt/auth.conf.d' mkdir -p './apt/preferences.d' @@ -161,6 +162,8 @@ maybe chmod 0644 'apache2/mods-available/negotiation.conf' maybe chmod 0644 'apache2/mods-available/negotiation.load' maybe chmod 0644 'apache2/mods-available/php7.2.conf' maybe chmod 0644 'apache2/mods-available/php7.2.load' +maybe chmod 0644 'apache2/mods-available/php7.3.conf' +maybe chmod 0644 'apache2/mods-available/php7.3.load' maybe chmod 0644 'apache2/mods-available/proxy.conf' maybe chmod 0644 'apache2/mods-available/proxy.load' maybe chmod 0644 'apache2/mods-available/proxy_ajp.load' @@ -220,7 +223,6 @@ maybe chmod 0644 'apache2/sites-available/default-ssl.conf' maybe chmod 0755 'apache2/sites-enabled' maybe chmod 0755 'apm' maybe chmod 0755 'apm/event.d' -maybe chmod 0755 'apm/event.d/20hdparm' maybe chmod 0755 'apparmor' maybe chmod 0755 'apparmor.d' maybe chmod 0755 'apparmor.d/abstractions' @@ -341,6 +343,7 @@ maybe chmod 0755 'apparmor.d/disable' maybe chmod 0755 'apparmor.d/force-complain' maybe chmod 0755 'apparmor.d/local' maybe chmod 0644 'apparmor.d/local/README' +maybe chmod 0644 'apparmor.d/local/lsb_release' maybe chmod 0644 'apparmor.d/local/nvidia_modprobe' maybe chmod 0644 'apparmor.d/local/sbin.dhclient' maybe chmod 0644 'apparmor.d/local/usr.bin.man' @@ -348,6 +351,7 @@ maybe chmod 0644 'apparmor.d/local/usr.sbin.mysqld' maybe chmod 0644 'apparmor.d/local/usr.sbin.named' maybe chmod 0644 'apparmor.d/local/usr.sbin.rsyslogd' maybe chmod 0644 'apparmor.d/local/usr.sbin.tcpdump' +maybe chmod 0644 'apparmor.d/lsb_release' maybe chmod 0644 'apparmor.d/nvidia_modprobe' maybe chmod 0644 'apparmor.d/sbin.dhclient' maybe chmod 0755 'apparmor.d/tunables' @@ -388,6 +392,7 @@ maybe chmod 0644 'apt/apt.conf.d/05etckeeper' maybe chmod 0644 'apt/apt.conf.d/20apt-esm-hook.conf' maybe chmod 0644 'apt/apt.conf.d/20apt-show-versions' maybe chmod 0644 'apt/apt.conf.d/50command-not-found' +maybe chmod 0644 'apt/apt.conf.d/51ubuntu-advantage-esm' maybe chmod 0644 'apt/apt.conf.d/70debconf' maybe chmod 0755 'apt/auth.conf.d' maybe chmod 0755 'apt/preferences.d' @@ -475,6 +480,7 @@ maybe chmod 0644 'console-setup/vtrgb' maybe chmod 0644 'console-setup/vtrgb.vga' maybe chmod 0755 'cron.d' maybe chmod 0644 'cron.d/.placeholder' +maybe chmod 0644 'cron.d/e2scrub_all' maybe chmod 0644 'cron.d/php' maybe chmod 0644 'cron.d/popularity-contest' maybe chmod 0644 'cron.d/sync' @@ -590,6 +596,7 @@ maybe chmod 0755 'dpkg/dpkg.cfg.d' maybe chmod 0755 'dpkg/origins' maybe chmod 0644 'dpkg/origins/debian' maybe chmod 0644 'dpkg/origins/ubuntu' +maybe chmod 0644 'e2scrub.conf' maybe chmod 0755 'emacs' maybe chmod 0755 'emacs/site-start.d' maybe chmod 0644 'emacs/site-start.d/50dictionaries-common.el' @@ -717,6 +724,7 @@ maybe chmod 0755 'grub.d' maybe chmod 0755 'grub.d/00_header' maybe chmod 0755 'grub.d/05_debian_theme' maybe chmod 0755 'grub.d/10_linux' +maybe chmod 0755 'grub.d/10_linux_zfs' maybe chmod 0755 'grub.d/20_linux_xen' maybe chmod 0755 'grub.d/30_os-prober' maybe chmod 0755 'grub.d/30_uefi-firmware' @@ -834,13 +842,16 @@ maybe chmod 0644 'locale.gen' maybe chmod 0755 'logcheck' maybe chmod 0755 'logcheck/ignore.d.paranoid' maybe chmod 0644 'logcheck/ignore.d.paranoid/mysql-server-5_7' +maybe chmod 0644 'logcheck/ignore.d.paranoid/mysql-server-8_0' maybe chmod 0755 'logcheck/ignore.d.server' maybe chmod 0644 'logcheck/ignore.d.server/gpg-agent' maybe chmod 0644 'logcheck/ignore.d.server/libsasl2-modules' maybe chmod 0644 'logcheck/ignore.d.server/mysql-server-5_7' +maybe chmod 0644 'logcheck/ignore.d.server/mysql-server-8_0' maybe chmod 0644 'logcheck/ignore.d.server/rsyslog' maybe chmod 0755 'logcheck/ignore.d.workstation' maybe chmod 0644 'logcheck/ignore.d.workstation/mysql-server-5_7' +maybe chmod 0644 'logcheck/ignore.d.workstation/mysql-server-8_0' maybe chmod 0644 'login.defs' maybe chmod 0644 'logrotate.conf' maybe chmod 0755 'logrotate.d' @@ -887,6 +898,7 @@ maybe chmod 0600 'mysql/debian.cnf' maybe chmod 0644 'mysql/my.cnf.fallback' maybe chmod 0644 'mysql/mysql.cnf' maybe chmod 0755 'mysql/mysql.conf.d' +maybe chmod 0644 'mysql/mysql.conf.d/mysql.cnf' maybe chmod 0644 'mysql/mysql.conf.d/mysqld.cnf' maybe chmod 0644 'mysql/mysql.conf.d/mysqld_safe_syslog.cnf' maybe chmod 0644 'nanorc' @@ -986,6 +998,48 @@ maybe chmod 0644 'php/7.2/mods-available/xmlreader.ini' maybe chmod 0644 'php/7.2/mods-available/xmlwriter.ini' maybe chmod 0644 'php/7.2/mods-available/xsl.ini' maybe chmod 0644 'php/7.2/mods-available/zip.ini' +maybe chmod 0755 'php/7.3' +maybe chmod 0755 'php/7.3/apache2' +maybe chmod 0755 'php/7.3/apache2/conf.d' +maybe chmod 0644 'php/7.3/apache2/php.ini' +maybe chmod 0755 'php/7.3/cli' +maybe chmod 0755 'php/7.3/cli/conf.d' +maybe chmod 0644 'php/7.3/cli/php.ini' +maybe chmod 0755 'php/7.3/mods-available' +maybe chmod 0644 'php/7.3/mods-available/bz2.ini' +maybe chmod 0644 'php/7.3/mods-available/calendar.ini' +maybe chmod 0644 'php/7.3/mods-available/ctype.ini' +maybe chmod 0644 'php/7.3/mods-available/curl.ini' +maybe chmod 0644 'php/7.3/mods-available/dom.ini' +maybe chmod 0644 'php/7.3/mods-available/exif.ini' +maybe chmod 0644 'php/7.3/mods-available/fileinfo.ini' +maybe chmod 0644 'php/7.3/mods-available/ftp.ini' +maybe chmod 0644 'php/7.3/mods-available/gd.ini' +maybe chmod 0644 'php/7.3/mods-available/gettext.ini' +maybe chmod 0644 'php/7.3/mods-available/iconv.ini' +maybe chmod 0644 'php/7.3/mods-available/json.ini' +maybe chmod 0644 'php/7.3/mods-available/mbstring.ini' +maybe chmod 0644 'php/7.3/mods-available/mysqli.ini' +maybe chmod 0644 'php/7.3/mods-available/mysqlnd.ini' +maybe chmod 0644 'php/7.3/mods-available/opcache.ini' +maybe chmod 0644 'php/7.3/mods-available/pdo.ini' +maybe chmod 0644 'php/7.3/mods-available/pdo_mysql.ini' +maybe chmod 0644 'php/7.3/mods-available/phar.ini' +maybe chmod 0644 'php/7.3/mods-available/posix.ini' +maybe chmod 0644 'php/7.3/mods-available/readline.ini' +maybe chmod 0644 'php/7.3/mods-available/shmop.ini' +maybe chmod 0644 'php/7.3/mods-available/simplexml.ini' +maybe chmod 0644 'php/7.3/mods-available/sockets.ini' +maybe chmod 0644 'php/7.3/mods-available/sysvmsg.ini' +maybe chmod 0644 'php/7.3/mods-available/sysvsem.ini' +maybe chmod 0644 'php/7.3/mods-available/sysvshm.ini' +maybe chmod 0644 'php/7.3/mods-available/tokenizer.ini' +maybe chmod 0644 'php/7.3/mods-available/wddx.ini' +maybe chmod 0644 'php/7.3/mods-available/xml.ini' +maybe chmod 0644 'php/7.3/mods-available/xmlreader.ini' +maybe chmod 0644 'php/7.3/mods-available/xmlwriter.ini' +maybe chmod 0644 'php/7.3/mods-available/xsl.ini' +maybe chmod 0644 'php/7.3/mods-available/zip.ini' maybe chmod 0755 'phpmyadmin' maybe chmod 0644 'phpmyadmin/apache.conf' maybe chmod 0755 'phpmyadmin/conf.d' @@ -1125,6 +1179,7 @@ maybe chmod 0644 'systemd/logind.conf' maybe chmod 0755 'systemd/network' maybe chmod 0644 'systemd/networkd.conf' maybe chmod 0644 'systemd/resolved.conf' +maybe chmod 0644 'systemd/sleep.conf' maybe chmod 0755 'systemd/system' maybe chmod 0644 'systemd/system.conf' maybe chmod 0755 'systemd/system/default.target.wants' diff --git a/alternatives/arptables b/alternatives/arptables new file mode 120000 index 0000000..f8fcc7b --- /dev/null +++ b/alternatives/arptables @@ -0,0 +1 @@ +/usr/sbin/arptables-nft \ No newline at end of file diff --git a/alternatives/arptables-restore b/alternatives/arptables-restore new file mode 120000 index 0000000..95e87dc --- /dev/null +++ b/alternatives/arptables-restore @@ -0,0 +1 @@ +/usr/sbin/arptables-nft-restore \ No newline at end of file diff --git a/alternatives/arptables-save b/alternatives/arptables-save new file mode 120000 index 0000000..9bb1596 --- /dev/null +++ b/alternatives/arptables-save @@ -0,0 +1 @@ +/usr/sbin/arptables-nft-save \ No newline at end of file diff --git a/alternatives/ebtables b/alternatives/ebtables new file mode 120000 index 0000000..8d5f660 --- /dev/null +++ b/alternatives/ebtables @@ -0,0 +1 @@ +/usr/sbin/ebtables-nft \ No newline at end of file diff --git a/alternatives/ebtables-restore b/alternatives/ebtables-restore new file mode 120000 index 0000000..c2e5813 --- /dev/null +++ b/alternatives/ebtables-restore @@ -0,0 +1 @@ +/usr/sbin/ebtables-nft-restore \ No newline at end of file diff --git a/alternatives/ebtables-save b/alternatives/ebtables-save new file mode 120000 index 0000000..600f8c2 --- /dev/null +++ b/alternatives/ebtables-save @@ -0,0 +1 @@ +/usr/sbin/ebtables-nft-save \ No newline at end of file diff --git a/alternatives/ip6tables b/alternatives/ip6tables new file mode 120000 index 0000000..0b2891f --- /dev/null +++ b/alternatives/ip6tables @@ -0,0 +1 @@ +/usr/sbin/ip6tables-legacy \ No newline at end of file diff --git a/alternatives/ip6tables-restore b/alternatives/ip6tables-restore new file mode 120000 index 0000000..7bedefc --- /dev/null +++ b/alternatives/ip6tables-restore @@ -0,0 +1 @@ +/usr/sbin/ip6tables-legacy-restore \ No newline at end of file diff --git a/alternatives/ip6tables-save b/alternatives/ip6tables-save new file mode 120000 index 0000000..502f99a --- /dev/null +++ b/alternatives/ip6tables-save @@ -0,0 +1 @@ +/usr/sbin/ip6tables-legacy-save \ No newline at end of file diff --git a/alternatives/iptables b/alternatives/iptables new file mode 120000 index 0000000..cc39472 --- /dev/null +++ b/alternatives/iptables @@ -0,0 +1 @@ +/usr/sbin/iptables-legacy \ No newline at end of file diff --git a/alternatives/iptables-restore b/alternatives/iptables-restore new file mode 120000 index 0000000..2293ced --- /dev/null +++ b/alternatives/iptables-restore @@ -0,0 +1 @@ +/usr/sbin/iptables-legacy-restore \ No newline at end of file diff --git a/alternatives/iptables-save b/alternatives/iptables-save new file mode 120000 index 0000000..eaf74bb --- /dev/null +++ b/alternatives/iptables-save @@ -0,0 +1 @@ +/usr/sbin/iptables-legacy-save \ No newline at end of file diff --git a/alternatives/mecab-dictionary b/alternatives/mecab-dictionary new file mode 120000 index 0000000..3d4db58 --- /dev/null +++ b/alternatives/mecab-dictionary @@ -0,0 +1 @@ +/var/lib/mecab/dic/ipadic-utf8 \ No newline at end of file diff --git a/alternatives/phar b/alternatives/phar index f5a2d89..b3b4ae7 120000 --- a/alternatives/phar +++ b/alternatives/phar @@ -1 +1 @@ -/usr/bin/phar7.2 \ No newline at end of file +/usr/bin/phar7.3 \ No newline at end of file diff --git a/alternatives/phar.1.gz b/alternatives/phar.1.gz index 57efcb8..f308505 120000 --- a/alternatives/phar.1.gz +++ b/alternatives/phar.1.gz @@ -1 +1 @@ -/usr/share/man/man1/phar7.2.1.gz \ No newline at end of file +/usr/share/man/man1/phar7.3.1.gz \ No newline at end of file diff --git a/alternatives/phar.phar b/alternatives/phar.phar index a3b2bf2..a03cf84 120000 --- a/alternatives/phar.phar +++ b/alternatives/phar.phar @@ -1 +1 @@ -/usr/bin/phar.phar7.2 \ No newline at end of file +/usr/bin/phar.phar7.3 \ No newline at end of file diff --git a/alternatives/phar.phar.1.gz b/alternatives/phar.phar.1.gz index 65eeed2..74ee7f3 120000 --- a/alternatives/phar.phar.1.gz +++ b/alternatives/phar.phar.1.gz @@ -1 +1 @@ -/usr/share/man/man1/phar.phar7.2.1.gz \ No newline at end of file +/usr/share/man/man1/phar.phar7.3.1.gz \ No newline at end of file diff --git a/alternatives/php b/alternatives/php index 0bbaf3e..c890124 120000 --- a/alternatives/php +++ b/alternatives/php @@ -1 +1 @@ -/usr/bin/php7.2 \ No newline at end of file +/usr/bin/php7.3 \ No newline at end of file diff --git a/alternatives/php.1.gz b/alternatives/php.1.gz index 0517612..4338797 120000 --- a/alternatives/php.1.gz +++ b/alternatives/php.1.gz @@ -1 +1 @@ -/usr/share/man/man1/php7.2.1.gz \ No newline at end of file +/usr/share/man/man1/php7.3.1.gz \ No newline at end of file diff --git a/apache2/mods-available/php7.3.conf b/apache2/mods-available/php7.3.conf new file mode 100644 index 0000000..d4df3e5 --- /dev/null +++ b/apache2/mods-available/php7.3.conf @@ -0,0 +1,25 @@ + + SetHandler application/x-httpd-php + + + SetHandler application/x-httpd-php-source + # Deny access to raw php sources by default + # To re-enable it's recommended to enable access to the files + # only in specific virtual host or directory + Require all denied + +# Deny access to files without filename (e.g. '.php') + + Require all denied + + +# Running PHP scripts in user directories is disabled by default +# +# To re-enable PHP in user directories comment the following lines +# (from to .) Do NOT set it to On as it +# prevents .htaccess files from disabling it. + + + php_admin_flag engine Off + + diff --git a/apache2/mods-available/php7.3.load b/apache2/mods-available/php7.3.load new file mode 100644 index 0000000..2c3982e --- /dev/null +++ b/apache2/mods-available/php7.3.load @@ -0,0 +1,3 @@ +# Conflicts: php5 +# Depends: mpm_prefork +LoadModule php7_module /usr/lib/apache2/modules/libphp7.3.so diff --git a/apache2/mods-enabled/php7.3.conf b/apache2/mods-enabled/php7.3.conf new file mode 120000 index 0000000..9c8673f --- /dev/null +++ b/apache2/mods-enabled/php7.3.conf @@ -0,0 +1 @@ +../mods-available/php7.3.conf \ No newline at end of file diff --git a/apache2/mods-enabled/php7.3.load b/apache2/mods-enabled/php7.3.load new file mode 120000 index 0000000..ea4fee1 --- /dev/null +++ b/apache2/mods-enabled/php7.3.load @@ -0,0 +1 @@ +../mods-available/php7.3.load \ No newline at end of file diff --git a/apm/event.d/20hdparm b/apm/event.d/20hdparm deleted file mode 100755 index 951d869..0000000 --- a/apm/event.d/20hdparm +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2000-2002 Massachusetts Institute of Technology -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -set -e - -# The APMD_DRIVES setting specifies the drives to be changed. Set -# this to an empty string to disable any changes. -#APMD_DRIVES= - -# The spindown timeout is set to the value of APMD_SPINDOWN when the -# computer is running on battery power. When the computer is on AC -# power, the spindown timeout is disabled. The number specified here -# is encoded in a complicated way. See the man page for hdparm(8) for -# details. For small timeouts, numbers between 1 and 240 specify -# multiples of 5 seconds. So the default value of 18 means 18*5=90 -# seconds, or 1.5 minutes. -APMD_SPINDOWN=18 - -HDPARM=/sbin/hdparm -[ -x "${HDPARM}" ] || exit 0 - -[ -n "${APMD_DRIVES}" ] || exit 0 - -for DRIVE in $APMD_DRIVES; do - [ -b "${DRIVE}" ] || exit 0 -done - -[ "${APMD_SPINDOWN}" -gt 0 ] || exit 0 - -power_conserve () -{ - # Set IDE hard disk spindown time to a short time. - for DRIVE in $APMD_DRIVES; do - "${HDPARM}" -q -S "${APMD_SPINDOWN}" "${DRIVE}" || true - done -} - -power_performance () -{ - # Disable IDE hard disk spindown. - for DRIVE in $APMD_DRIVES; do - "${HDPARM}" -q -S 0 "${DRIVE}" || true - done -} - -choose_power () -{ - if on_ac_power > /dev/null - then - power_performance - else - power_conserve - fi -} - -if [ "${1}" = "start" ]; then - choose_power -elif [ "${1}" = "resume" ] && [ "${2}" != "standby" ]; then - choose_power -elif [ "${1},${2}" = "change,power" ]; then - choose_power -elif [ "${1}" = "stop" ]; then - power_performance -fi - -exit 0 diff --git a/apparmor.d/abstractions/X b/apparmor.d/abstractions/X index 06408d3..db3521e 100644 --- a/apparmor.d/abstractions/X +++ b/apparmor.d/abstractions/X @@ -52,3 +52,6 @@ # mouse themes /etc/X11/cursors/ r, /etc/X11/cursors/** r, + + # Xwayland + owner /run/user/*/.mutter-Xwaylandauth.* r, diff --git a/apparmor.d/abstractions/base b/apparmor.d/abstractions/base index 16b2a1d..b0fabf3 100644 --- a/apparmor.d/abstractions/base +++ b/apparmor.d/abstractions/base @@ -65,13 +65,11 @@ # we might as well allow everything to use common libraries /{usr/,}lib{,32,64}/** r, - /{usr/,}lib{,32,64}/lib*.so* mr, - /{usr/,}lib{,32,64}/**/lib*.so* mr, + /{usr/,}lib{,32,64}/**.so* mr, /{usr/,}lib/@{multiarch}/** r, - /{usr/,}lib/@{multiarch}/lib*.so* mr, - /{usr/,}lib/@{multiarch}/**/lib*.so* mr, - /{usr/,}lib/tls/i686/{cmov,nosegneg}/lib*.so* mr, - /{usr/,}lib/i386-linux-gnu/tls/i686/{cmov,nosegneg}/lib*.so* mr, + /{usr/,}lib/@{multiarch}/**.so* mr, + /{usr/,}lib/tls/i686/{cmov,nosegneg}/*.so* mr, + /{usr/,}lib/i386-linux-gnu/tls/i686/{cmov,nosegneg}/*.so* mr, # /dev/null is pretty harmless and frequently used /dev/null rw, diff --git a/apparmor.d/abstractions/dri-common b/apparmor.d/abstractions/dri-common index efa389f..b5e0a5c 100644 --- a/apparmor.d/abstractions/dri-common +++ b/apparmor.d/abstractions/dri-common @@ -6,6 +6,7 @@ /usr/lib{,32,64}/dri/** mr, /usr/lib/@{multiarch}/dri/** mr, /usr/lib/fglrx/dri/** mr, + /dev/dri/ r, /dev/dri/** rw, /etc/drirc r, /usr/share/drirc.d/{,*.conf} r, diff --git a/apparmor.d/abstractions/fonts b/apparmor.d/abstractions/fonts index 25f8e0a..222aa5a 100644 --- a/apparmor.d/abstractions/fonts +++ b/apparmor.d/abstractions/fonts @@ -44,7 +44,7 @@ owner @{HOME}/.local/share/fonts/ r, owner @{HOME}/.local/share/fonts/** r, owner @{HOME}/.fonts.cache-2 mr, - owner @{HOME}/.{,cache/}fontconfig/ r, + owner @{HOME}/.{,cache/}fontconfig/ rw, owner @{HOME}/.{,cache/}fontconfig/** mrl, owner @{HOME}/.fonts.conf.d/ r, owner @{HOME}/.fonts.conf.d/** r, diff --git a/apparmor.d/abstractions/gnome b/apparmor.d/abstractions/gnome index 82d9ec4..c815319 100644 --- a/apparmor.d/abstractions/gnome +++ b/apparmor.d/abstractions/gnome @@ -46,6 +46,7 @@ /usr/lib/@{multiarch}/gdk-pixbuf-*/** mr, # per-user gtk configuration + owner @{HOME}/.config/gtk-3.0/ w, owner @{HOME}/.config/gtk-3.0/* r, owner @{HOME}/.gnome/Gnome r, owner @{HOME}/.gtk r, @@ -56,6 +57,7 @@ owner @{HOME}/.themes/** r, # for gtk file dialog + owner @{HOME}/.config/gtk-2.0/ w, owner @{HOME}/.config/gtk-2.0/** r, owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw, @@ -66,6 +68,9 @@ # per-user font business owner @{HOME}/.fonts.cache-* rwl, + # GtkComposeTable + owner @{HOME}/.cache/gtk-3.0/** r, + # icon caches /var/cache/**/icon-theme.cache r, /usr/share/**/icon-theme.cache r, diff --git a/apparmor.d/abstractions/ldapclient b/apparmor.d/abstractions/ldapclient index e3922ca..0c52728 100644 --- a/apparmor.d/abstractions/ldapclient +++ b/apparmor.d/abstractions/ldapclient @@ -18,4 +18,7 @@ /etc/sasl2/* r, /usr/lib{,32,64}/sasl2/* r, + # local LDAP name service daemon + /{,var/}run/nslcd/socket rw, + #include diff --git a/apparmor.d/abstractions/nameservice b/apparmor.d/abstractions/nameservice index 6e678fb..03776b8 100644 --- a/apparmor.d/abstractions/nameservice +++ b/apparmor.d/abstractions/nameservice @@ -39,7 +39,7 @@ /etc/resolv.conf r, # On systems where /etc/resolv.conf is managed programmatically, it is # a symlink to /{,var/}run/(whatever program is managing it)/resolv.conf. - /{,var/}run/{resolvconf,NetworkManager,systemd/resolve,connman}/resolv.conf r, + /{,var/}run/{resolvconf,NetworkManager,systemd/resolve,connman,netconfig}/resolv.conf r, /etc/resolvconf/run/resolv.conf r, /{,var/}run/systemd/resolve/stub-resolv.conf r, diff --git a/apparmor.d/abstractions/nvidia b/apparmor.d/abstractions/nvidia index 0717146..b01ef8b 100644 --- a/apparmor.d/abstractions/nvidia +++ b/apparmor.d/abstractions/nvidia @@ -4,6 +4,8 @@ # configuration queries capability ipc_lock, + /usr/share/nvidia/nvidia-application-profiles* r, + # libvdpau config file for nvidia workarounds /etc/vdpau_wrapper.cfg r, diff --git a/apparmor.d/abstractions/postfix-common b/apparmor.d/abstractions/postfix-common index 86e3888..3dc599a 100644 --- a/apparmor.d/abstractions/postfix-common +++ b/apparmor.d/abstractions/postfix-common @@ -17,8 +17,10 @@ # postfix's master can send us signals signal receive peer=/usr/lib/postfix/master, + signal receive peer=postfix-master, unix (send, receive) peer=(label=/usr/lib/postfix/master), + unix (send, receive) peer=(label=postfix-master), /etc/mailname r, /etc/postfix/*.cf r, diff --git a/apparmor.d/abstractions/python b/apparmor.d/abstractions/python index f99ae64..925161c 100644 --- a/apparmor.d/abstractions/python +++ b/apparmor.d/abstractions/python @@ -15,9 +15,9 @@ /usr/lib{,32,64}/python{2.[4-7],3.[0-9]}/{site,dist}-packages/ r, /usr/lib{,32,64}/python3.[0-9]/lib-dynload/*.so mr, - /usr/local/lib{,32,64}/python{2.[4-7],3.[0-9]}/**.{pyc,so} mr, - /usr/local/lib{,32,64}/python{2.[4-7],3.[0-9]}/**.{egg,py,pth} r, - /usr/local/lib{,32,64}/python{2.[4-7],3.[0-9]}/{site,dist}-packages/ r, + /usr/local/lib{,32,64}/python{2.[4-7],3,3.[0-9]}/**.{pyc,so} mr, + /usr/local/lib{,32,64}/python{2.[4-7],3,3.[0-9]}/**.{egg,py,pth} r, + /usr/local/lib{,32,64}/python{2.[4-7],3,3.[0-9]}/{site,dist}-packages/ r, /usr/local/lib{,32,64}/python3.[0-9]/lib-dynload/*.so mr, # Site-wide configuration @@ -28,7 +28,7 @@ /{var,usr}/lib/{pyshared,pycentral,python-support}/** r, /usr/lib/{pyshared,pycentral,python-support}/**.so mr, /var/lib/{pyshared,pycentral,python-support}/**.pyc mr, - /usr/{,local/}lib/python3/dist-packages/**.so mr, + /usr/lib/python3/dist-packages/**.so mr, # wx paths /usr/lib/wx/python/*.pth r, diff --git a/apparmor.d/abstractions/qt5 b/apparmor.d/abstractions/qt5 index 2e3e5ce..66a574b 100644 --- a/apparmor.d/abstractions/qt5 +++ b/apparmor.d/abstractions/qt5 @@ -16,6 +16,7 @@ # User files + owner @{HOME}/.config/QtProject/qtlogging.ini r, owner @{HOME}/.config/QtProject.conf r, # common settings for QFileDialog, etc (application might need write access) owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* r, # for "platforminputcontexts" plugins diff --git a/apparmor.d/abstractions/qt5-compose-cache-write b/apparmor.d/abstractions/qt5-compose-cache-write index e4f50f3..38cb234 100644 --- a/apparmor.d/abstractions/qt5-compose-cache-write +++ b/apparmor.d/abstractions/qt5-compose-cache-write @@ -3,5 +3,6 @@ # User files - owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* rw, + owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* rwl -> @{HOME}/.cache/#[0-9]*[0-9], + owner @{HOME}/.cache/#[0-9]*[0-9] rw, # QSaveFile (anonymous shared memory) diff --git a/apparmor.d/abstractions/qt5-settings-write b/apparmor.d/abstractions/qt5-settings-write index f9321ea..07d1097 100644 --- a/apparmor.d/abstractions/qt5-settings-write +++ b/apparmor.d/abstractions/qt5-settings-write @@ -3,9 +3,9 @@ # User files - owner @{HOME}/.config/#[0-9]* rw, - owner @{HOME}/.config/QtProject.conf rw, - owner @{HOME}/.config/QtProject.conf.?????? l -> @{HOME}/.config/#[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9], - owner @{HOME}/.config/QtProject.conf.?????? rw, # for temporary files like QtProject.conf.Aqrgeb + owner @{HOME}/.config/#[0-9]*[0-9] rw, + owner @{HOME}/.config/QtProject.conf rwl -> @{HOME}/.config/#[0-9]*[0-9], + # for temporary files like QtProject.conf.Aqrgeb + owner @{HOME}/.config/QtProject.conf.?????? rwl -> @{HOME}/.config/#[0-9]*[0-9], owner @{HOME}/.config/QtProject.conf.lock rwk, diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/multimedia b/apparmor.d/abstractions/ubuntu-browsers.d/multimedia index 84fbbc8..591d6b8 100644 --- a/apparmor.d/abstractions/ubuntu-browsers.d/multimedia +++ b/apparmor.d/abstractions/ubuntu-browsers.d/multimedia @@ -17,6 +17,9 @@ /usr/bin/gwenview Cxr -> sanitized_helper, #include + owner @{HOME}/.adobe/ w, + owner @{HOME}/.adobe/** rw, + owner @{HOME}/.macromedia/ w, owner @{HOME}/.macromedia/** rw, /opt/real/RealPlayer/mozilla/nphelix.so rm, /usr/bin/lpstat Cxr -> sanitized_helper, diff --git a/apparmor.d/local/lsb_release b/apparmor.d/local/lsb_release new file mode 100644 index 0000000..e69de29 diff --git a/apparmor.d/lsb_release b/apparmor.d/lsb_release new file mode 100644 index 0000000..5c05ba4 --- /dev/null +++ b/apparmor.d/lsb_release @@ -0,0 +1,50 @@ +# Note: This profile does not specify an attachment path because it is +# intended to be used only via "Px -> lsb_release" exec transitions from +# other profiles. We want to confine the lsb_release(1) utility when it +# is invoked from other confined applications, but not when it is used +# in regular (unconfined) shell scripts or run directly by the user. + +#include + +# Do not attach to /usr/bin/lsb_release by default +profile lsb_release { + #include + #include + + owner @{PROC}/@{pid}/fd/ r, + + /dev/tty rw, + + /usr/bin/lsb_release r, + /usr/bin/python3.[0-9] mr, + + /etc/debian_version r, + /etc/default/apport r, + /etc/dpkg/origins/** r, + /etc/lsb-release r, + /etc/lsb-release.d/ r, + + /{usr/,}bin/bash ixr, + /{usr/,}bin/dash ixr, + /usr/bin/basename ixr, + /usr/bin/dpkg-query ixr, + /usr/bin/getopt ixr, + /usr/bin/sed ixr, + /usr/bin/tr ixr, + + # TODO - many more permissions needed for this to work + deny /usr/bin/apt-cache x, + + /usr/bin/ r, + /usr/include/python*/pyconfig.h r, + /usr/share/distro-info/** r, + /usr/share/dpkg/** r, + /usr/share/terminfo/** r, + /var/lib/dpkg/** r, + + # file_inherit + deny /tmp/gtalkplugin.log w, + + # Site-specific additions and overrides. See local/README for details. + #include +} diff --git a/apparmor.d/usr.bin.man b/apparmor.d/usr.bin.man index 569aec9..145ed58 100644 --- a/apparmor.d/usr.bin.man +++ b/apparmor.d/usr.bin.man @@ -95,6 +95,9 @@ profile man_filter { # do is feed data to the invoking man process. /** r, + # Allow writing cat pages. + /var/cache/man/** w, + signal peer=/usr/bin/man, # @{profile_name} doesn't seem to work here. signal peer=/usr/bin/man//&man_filter, diff --git a/apparmor.d/usr.sbin.mysqld b/apparmor.d/usr.sbin.mysqld index f9c91bb..185cceb 100644 --- a/apparmor.d/usr.sbin.mysqld +++ b/apparmor.d/usr.sbin.mysqld @@ -33,9 +33,13 @@ /var/run/mysqld/mysqld.pid rw, /var/run/mysqld/mysqld.sock rw, /var/run/mysqld/mysqld.sock.lock rw, + /var/run/mysqld/mysqlx.sock rw, + /var/run/mysqld/mysqlx.sock.lock rw, /run/mysqld/mysqld.pid rw, /run/mysqld/mysqld.sock rw, /run/mysqld/mysqld.sock.lock rw, + /run/mysqld/mysqlx.sock rw, + /run/mysqld/mysqlx.sock.lock rw, # Allow systemd notify messages /{,var/}run/systemd/notify w, @@ -70,6 +74,9 @@ /var/log/mysql/ r, /var/log/mysql/** rw, +# Allow read access to mecab files + /var/lib/mecab/dic/ipadic-utf8/** r, + # Allow read access to OpenSSL config /etc/ssl/openssl.cnf r, # Site-specific additions and overrides. See local/README for details. diff --git a/apparmor.d/usr.sbin.named b/apparmor.d/usr.sbin.named index 87d528f..a4622da 100644 --- a/apparmor.d/usr.sbin.named +++ b/apparmor.d/usr.sbin.named @@ -22,6 +22,9 @@ /var/cache/bind/** lrw, /var/cache/bind/ rw, + # Database file used by allow-new-zones + /var/cache/bind/_default.nzd-lock rwk, + # gssapi /etc/krb5.keytab kr, /etc/bind/krb5.keytab kr, @@ -68,6 +71,24 @@ # dynamic updates /var/tmp/DNS_* rw, + # dyndb backends + /usr/lib/bind/*.so rm, + + # Samba DLZ + /{usr/,}lib/@{multiarch}/samba/bind9/*.so rm, + /{usr/,}lib/@{multiarch}/samba/gensec/*.so rm, + /{usr/,}lib/@{multiarch}/samba/ldb/*.so rm, + /{usr/,}lib/@{multiarch}/ldb/modules/ldb/*.so rm, + /var/lib/samba/bind-dns/dns.keytab rk, + /var/lib/samba/bind-dns/named.conf r, + /var/lib/samba/bind-dns/dns/** rwk, + /var/lib/samba/private/dns.keytab rk, + /var/lib/samba/private/named.conf r, + /var/lib/samba/private/dns/** rwk, + /etc/samba/smb.conf r, + /dev/urandom rwmk, + owner /var/tmp/krb5_* rwk, + # Site-specific additions and overrides. See local/README for details. #include } diff --git a/apparmor.d/usr.sbin.rsyslogd b/apparmor.d/usr.sbin.rsyslogd index d9b502a..9af2681 100644 --- a/apparmor.d/usr.sbin.rsyslogd +++ b/apparmor.d/usr.sbin.rsyslogd @@ -29,6 +29,7 @@ /var/spool/rsyslog/ r, /var/spool/rsyslog/** rwk, + /usr/sbin/rsyslog mr, /usr/lib{,32,64}/{,@{multiarch}/}rsyslog/*.so mr, /dev/tty* rw, diff --git a/apparmor.d/usr.sbin.tcpdump b/apparmor.d/usr.sbin.tcpdump index 7a7da4f..d0a7037 100644 --- a/apparmor.d/usr.sbin.tcpdump +++ b/apparmor.d/usr.sbin.tcpdump @@ -10,6 +10,7 @@ capability setuid, capability setgid, capability dac_override, + capability chown, network raw, network packet, @@ -18,10 +19,11 @@ @{PROC}/bus/usb/** r, # for finding an interface + /dev/ r, @{PROC}/[0-9]*/net/dev r, /sys/bus/usb/devices/ r, /sys/class/net/ r, - /sys/devices/**/net/* r, + /sys/devices/**/net/** r, # for -j capability net_admin, diff --git a/apt/apt.conf.d/01autoremove-kernels b/apt/apt.conf.d/01autoremove-kernels index 675c5e9..eb39173 100644 --- a/apt/apt.conf.d/01autoremove-kernels +++ b/apt/apt.conf.d/01autoremove-kernels @@ -1,62 +1,65 @@ // DO NOT EDIT! File autogenerated by /etc/kernel/postinst.d/apt-auto-removal APT::NeverAutoRemove { - "^linux-image-4\.18\.0-14-generic$"; "^linux-image-5\.0\.0-38-generic$"; - "^linux-headers-4\.18\.0-14-generic$"; + "^linux-image-5\.3\.0-62-generic$"; "^linux-headers-5\.0\.0-38-generic$"; - "^linux-image-extra-4\.18\.0-14-generic$"; + "^linux-headers-5\.3\.0-62-generic$"; "^linux-image-extra-5\.0\.0-38-generic$"; - "^linux-modules-4\.18\.0-14-generic$"; + "^linux-image-extra-5\.3\.0-62-generic$"; "^linux-modules-5\.0\.0-38-generic$"; - "^linux-modules-extra-4\.18\.0-14-generic$"; + "^linux-modules-5\.3\.0-62-generic$"; "^linux-modules-extra-5\.0\.0-38-generic$"; - "^linux-signed-image-4\.18\.0-14-generic$"; + "^linux-modules-extra-5\.3\.0-62-generic$"; "^linux-signed-image-5\.0\.0-38-generic$"; - "^linux-image-unsigned-4\.18\.0-14-generic$"; + "^linux-signed-image-5\.3\.0-62-generic$"; "^linux-image-unsigned-5\.0\.0-38-generic$"; - "^kfreebsd-image-4\.18\.0-14-generic$"; + "^linux-image-unsigned-5\.3\.0-62-generic$"; "^kfreebsd-image-5\.0\.0-38-generic$"; - "^kfreebsd-headers-4\.18\.0-14-generic$"; + "^kfreebsd-image-5\.3\.0-62-generic$"; "^kfreebsd-headers-5\.0\.0-38-generic$"; - "^gnumach-image-4\.18\.0-14-generic$"; + "^kfreebsd-headers-5\.3\.0-62-generic$"; "^gnumach-image-5\.0\.0-38-generic$"; - "^.*-modules-4\.18\.0-14-generic$"; + "^gnumach-image-5\.3\.0-62-generic$"; "^.*-modules-5\.0\.0-38-generic$"; - "^.*-kernel-4\.18\.0-14-generic$"; + "^.*-modules-5\.3\.0-62-generic$"; "^.*-kernel-5\.0\.0-38-generic$"; - "^linux-backports-modules-.*-4\.18\.0-14-generic$"; + "^.*-kernel-5\.3\.0-62-generic$"; "^linux-backports-modules-.*-5\.0\.0-38-generic$"; - "^linux-modules-.*-4\.18\.0-14-generic$"; + "^linux-backports-modules-.*-5\.3\.0-62-generic$"; "^linux-modules-.*-5\.0\.0-38-generic$"; - "^linux-tools-4\.18\.0-14-generic$"; + "^linux-modules-.*-5\.3\.0-62-generic$"; "^linux-tools-5\.0\.0-38-generic$"; - "^linux-cloud-tools-4\.18\.0-14-generic$"; + "^linux-tools-5\.3\.0-62-generic$"; "^linux-cloud-tools-5\.0\.0-38-generic$"; - "^linux-buildinfo-4\.18\.0-14-generic$"; + "^linux-cloud-tools-5\.3\.0-62-generic$"; "^linux-buildinfo-5\.0\.0-38-generic$"; - "^linux-source-4\.18\.0-14-generic$"; + "^linux-buildinfo-5\.3\.0-62-generic$"; "^linux-source-5\.0\.0-38-generic$"; + "^linux-source-5\.3\.0-62-generic$"; }; /* Debug information: # dpkg list: -ii linux-image-4.18.0-14-generic 4.18.0-14.15 amd64 Signed kernel image generic -iF linux-image-5.0.0-38-generic 5.0.0-38.41 amd64 Signed kernel image generic -ii linux-image-generic 5.0.0.38.40 amd64 Generic Linux kernel image +ii linux-image-4.18.0-14-generic 4.18.0-14.15 amd64 Signed kernel image generic +ii linux-image-5.0.0-38-generic 5.0.0-38.41 amd64 Signed kernel image generic +iF linux-image-5.3.0-62-generic 5.3.0-62.56 amd64 Signed kernel image generic +ii linux-image-generic 5.3.0.62.52 amd64 Generic Linux kernel image # list of installed kernel packages: 4.18.0-14-generic 4.18.0-14.15 5.0.0-38-generic 5.0.0-38.41 +5.3.0-62-generic 5.3.0-62.56 # list of different kernel versions: +5.3.0-62.56 5.0.0-38.41 4.18.0-14.15 -# Installing kernel: 5.0.0-38.41 (5.0.0-38-generic) -# Running kernel: 4.18.0-14.15 (4.18.0-14-generic) -# Last kernel: 5.0.0-38.41 -# Previous kernel: 4.18.0-14.15 +# Installing kernel: 5.3.0-62.56 (5.3.0-62-generic) +# Running kernel: 5.0.0-38.41 (5.0.0-38-generic) +# Last kernel: 5.3.0-62.56 +# Previous kernel: 5.0.0-38.41 # Kernel versions list to keep: -4.18.0-14.15 5.0.0-38.41 +5.3.0-62.56 # Kernel packages (version part) to protect: -4\.18\.0-14-generic 5\.0\.0-38-generic +5\.3\.0-62-generic */ diff --git a/apt/apt.conf.d/51ubuntu-advantage-esm b/apt/apt.conf.d/51ubuntu-advantage-esm new file mode 100644 index 0000000..97d687a --- /dev/null +++ b/apt/apt.conf.d/51ubuntu-advantage-esm @@ -0,0 +1,3 @@ +Unattended-Upgrade::Allowed-Origins { + "${distro_id}ESM:${distro_codename}-security"; +}; diff --git a/ca-certificates.conf b/ca-certificates.conf index 420f1c0..f3166e2 100644 --- a/ca-certificates.conf +++ b/ca-certificates.conf @@ -12,7 +12,7 @@ mozilla/ACCVRAIZ1.crt mozilla/AC_RAIZ_FNMT-RCM.crt mozilla/Actalis_Authentication_Root_CA.crt -mozilla/AddTrust_External_Root.crt +!mozilla/AddTrust_External_Root.crt mozilla/AffirmTrust_Commercial.crt mozilla/AffirmTrust_Networking.crt mozilla/AffirmTrust_Premium.crt diff --git a/console-setup/Uni2-Fixed16.psf.gz b/console-setup/Uni2-Fixed16.psf.gz index 52c26d4e6dc09ed8053b89d4ae8bc437dbbd36b6..37eb6549a069e3ac743378f24abac3ea0d6f36d2 100644 GIT binary patch literal 4151 zcmV-75XkQziwFP!0000219h1RcwEJOz{k4}u{MjmUW8ejwfwZ+F|rI;HpZ64vR*A~ zu`7(R1vX#|$O05h;D7A&SMx`8_vb0;zneXQBsR z$NQrH&Lrv^A0O`%G1qA5XZ7~m>zPc?#*LrW^6$^txM72pE>|p8tIaCTNtzZW%GK&% zzmgL(6N&yo6+753#Bnth>pM>$)*D|x6RE(V9Z|jp*FQtKcE9ur8A=J2zL>Mq>(Z)` z^1U|qM3jTjled+Xa+;1MXWXWnF+y0Ps(-Y82}j3AUA5Zs^&zHorn0(91za>fo6R4h=0&rDiW$G^ph~CFEDFsSd6(rALZ$QmKsRQYlBtt_mra z$+)IQjh=i@BW2fcB3=yrOqM`sPHtB&r=N+0_er->G2=t)ujt38a^1QDWiwi;iL^@I z4CQxfe<$c))jvabtY1 z^;g?zwO^%Z#^j2Xe_c3URbKCN{`bme`1<;v?|80O^Yu}!)z^=VtgqMn^cCZpro6GS z&6~sWs-vUB!$U)ZgVj*K_WbkO7p15f@Kts(SK21f&b$$HkM1PIWbW2)8LHU0BX?D);f2LJh zj{v9Mt1F}iK-mAe*mx1*%7%7Ej+8Ir_T0peZZRXkw8z(|inqpx*M2ns{QN=l(xHWo z>O&b9)yGC2(A8TJ#;XAk*3ZknaBdtx$`BJ1qYaNcjUK6XAC$Y3K81`&B zJ9$2Z^I2t3E4E#KwF9vGGgpj`k77*jO-JOMvZ|5sWQ`y7JzZW{elaHN@}lwf_{ha% zl|Gcc)RsL{)v;yOy12c<0yU>WQ&rsFn=MJ=AR94WRjfK%-cX!9!LT#NTXJ_}U zt6JsR`Lo$#v0f}@v%Xwc0OV8K_iM!#gjPI# zbj1^`cz!#+87$DD^=;bwA+)IW58wn8uy|5acjLF@SMHj zZW@(o`@?|%jdHBG{(5~b>*>kodwRn4SDzwQ^tj%JexhKUwcoM6KY@M2l~WV3{nW&? zX}Wyh`SH7rYw7syX1sTruXkou^{NvC!O2loFs$E1WHg)8MQ}tFBe}NRh^0xSTw5ro zOodaC`D*IRXz{usXPsP4{WIO&naTUFXnRC-^RHXjX}52uHUKx8{&n4Qbf2ePAo~Ww zw-38-zWL49AGl}Nu3g?{EMk9@T-F1CKDx?pE)$8~8<-G*ti*wVsrRo9UpYoDTg6R% zKd`hh!#koGd39acgIaJNTG(hr6yAu*)Wz6WuT)FMU3}L0TP__6+fQe=_qF%g>&?8v zn#P7gu-{b|8fLS0u(x@-yrUzXRtG*Ol{w({TB!Yvf10%3j%JIwi~aS=+pWa*Bhmdz zR905amQ{Xx|Dw{{axo?|Y$N9@^*viw`E9vaoO~Wr=e_s*^PaWashayDTh7JyGphda z^Ot84!($4kgTbMp;o;H3mWs7o3d^s?%8%`jDiu}1+D_lz>Mw@-n`P;af|5*nt45|i ziIT2BsbcSUg8jJbmKg5E?q1dhvZ?U3YLiHRn@x zUgf~*2KO)NtUJ!1n@wx=MeZNGR)_uPk1y-~LBBEQQKPRg-q)8OuTGHmeFd?T&adHo zNwr1KvzfG~-N<>t|Du0BVVQ{BM_9XQJ)d&XcqPZruayeN+x_8rB$t|z_Kb)>U!(hL z^(NeZtMa1p>P;B0Qb+GI{QUm@Or?&-`}zHNqyKO``ugupS0|r`_4u{V$LjnQov+~= z)4$R2tlyaNtk#5RynbVkcWXXnV)H2zt)IRTE9RoNqopZt4X3p4ZN7c8#+!a)#+#~L zG+w_k@j?FJK8!b({Rr|0@w~C(jr}wCXTA0KeM;qbfgIcbg!d`t`(c0j_4nh6!;zZu!sGrfL=_Dsv6J<{nzdxTt? zv>zzN*W=J0S^2#W>ipG7`J?x5VLUxb_t^S0_doXeG+)s1>X4-3D}&a3Gx@87dV4Tx z?#CkwB-HN(W`DeP zczAdR4Erm++U%6Q6OgwW=UtuKGIZm5f{xo~)#!bvYEYQoG{9I-TlV53_p^QrgZ9xP zf5KY#8&IzqxT zv>G7h5bdQ8E)`UIyZx$sOFzE-RJXzGfkwj9aiLK5jtPlGd_0D4)a;LL&X8;N_DdzQ z?TwP{@vdZhz3|R=mVHpNJs)-XnaKT0Q%^E4FzI~YRnWS>@#Jzv-Pcrtcr*X$QQwN2 z^7Z$k=Y#M*LTkiz^Q`u`d?FvUCwhda_BTBhTUv_T52?+2Z+Ed^`Y)47S--z{mu+9}E*Zr0Mm?oubv+3qOG2X|2}S!sq25TdmgVgm*%Rd$`+bxzGg#_chsS zEhN;dq^?%WAt1;uc|Y6rh6mG5!cDr4dyw1a9_*&v>Fx}7iK+`F7hnMtL5iCTxJvwmVAcL2JtNZuy_vtba9aL zJkK*k!MQ#80-=rKMf^?TCHynR%lKyr>D-Zgh0xhzuk$L;&Ej*(*La>o%eKI|a2}iw zBd}HUI$~tS z{3HAm?13w&!EX2o;eUnq;lJVc@CMuk55ePbCF$cSlX5~{C$E)P$*biRye-PbvPUkG-SQ~8P)goxBi;4z=kO_b4=&>y30gQEX22nk zk%!5woJEcfd4!xT4=1!-o*?_>D%mGj$`$f>-W)BDlgs2%*(;aGW92ct$;$<@AiJb1 z=gUqxk2gY2lTA4;uaQ^Eo$_+tl;kOLNH%0$o-7CD8d;Mk$*LTX6}eiL<%!CQBoCtw zpHHGQ_&VGN--M^3PP;E9)dZHJ1Y408!5nZGU_BrMx1+0Vq|3=8S|qP(vPs4|rGSc@NJ9&j)x8@jM&uC48&gORYAmZ!)@W5+FKM=R#QT*$*b=!8|!4|hXi+UwLWIqePnHu4?}X*d+xVJ75Y zj#`7@NLU5^a3Yjp0IF~j)Zk>O!x^v<&VsXHGn@k#z(w#e_&8h**TA(fuD(az=fIKh z9J~c@!#j{7emcy6Lm&_H)S3ugPy`7_!SS#K&V@_iqi{J~rRFSiHwiP~5a@*YP=QTw zCXB#VxCH(b{tP||?}MO>X^@4(U^W~91y}$*uo#YoC9nck!U<4Jp&G;;ZT?bM?endz>#niEQX`u7&sP|z*1NS$H7YIgH_NECqM~Kgw=2|oC0g% zR9FY6!Fm{m)8Py_2e!bua2}iwyWl4HB(vvJ@E33c{3U!E{t9-%-@{#SH+&WL!q?y) zxEJn+2jD^22M@u+@F+Y6kHZu2Bs>Gp!He(`ybQ0v`|t-CVb-SL{{icxPrs<8U}3B#se^EEFS| z5E4TIgaD2KmkqQ{!xg~D%l7!#e*4joF5S{&7j{W0l%|wYAe`a8&t6dIeRr=Gx(j=B zwZD1u=Dm5(&e*?s^M7-^ng7iE=g@K|nGv{B_2%8T-n#qdYDow!@7=w7?;X39obDB3 zV4zUwNGYe|SJdnEwNPK7Dxd0^=)u?V zzUaR*iTcLJ$NNOgH5&R^z3sMoCeyQF!>6_U$Fn!AUvH($6^qqsvx;+)riF=ewK~|Z zZ?GD&x6S%2BebLds<_ zuBlO@C*RXZ*)^Pq7ehajB@mjE+m*}dXCmQ!(ydg?_|W<*`thk;x2{0hjFxI5t&%rG zIiE-b{pX}RinUtPaUB2Cl}cqikw}>MJXy!B{%%qM#|ibIMpwy-SK%`GoxVuTP4xpg zXfEx^xS5obh_pV`Kt)B8q!QNO3Hn#{&(Ox<;o-GzXMDbBS=HUE|9Fs}7FL4#?x<<~ z)pl6zS1Fn?xnkvC8;)0%*ZZ9Ry|Nj;zW(Pso~zY-eN=1pbt5C|>NP)o#ki&^Z)|MS zrm(!~=;-k9(9qyuHPo*?|Gf4^>!;kNu~IUOuh(kTFn^^totVNNgzd4*A5aFc(9vPX zZ`w3A7Syj=Eap6=oAgn8sm4nx9DnVh`Dypt?@bveq5FSZCUD#I=ob5P6Kb}lCciiK z(WrOxsH*em<}ltH040AqS@tu~P&0^6Q;~69A3r+LU!ybKlGadAzTbYDowNI&X_eL^ zz^V7@3aJ4Q_J1xmUWB-!p`DQ<<%_sIH}RvJ%?L2<@inUAt?}WtUkw01f6%;iXknxJ zP{u{|v5^OK^_GY6Y5;`w^Rh3Tn@9u}!y5oiqfceN6zR}fha<4p#OmcqENKjeJ)6!> zo=@R?RvFZaZP#Dz0POzE6{F*$7?XR`5jm%axqz@ z4`na4WzSS~Y+1D~Zm+OFjp?h{zZm<|U9V55{m!Xj`@`{5jLCj|134Gdr;4}bK;K?} zTcvsV!`=wTYf3G+)Xvz4c7KAExA>zA>oE~5km~!9@n+4(k)VIW{!y~6Prv_z?*Y_?de7mL}fFV~g8EA}tf7ovZ6ZixPQrCIhQHMRS|o`KQzK=rq+|F&FIR<#Oc zFZHDM8-45jYm=VqoQ0e1ufJ+PuJYetnpdwkmF(*$NIxr3<_EF*&y4N;TCoM86;B^s z@kA@0-;Qqv3v_6GoA!Q4?N37crpD9|3q);bso6iduD3@kS@xq8tS^2GZTqW+p&E%o zba?K4@xBgpsCP#$jc#d++Ie#=*grMx9i*9&)?Tty3aokCjH!l1cW+dM&2asw7MbTI zZ(TO(iYfSmnEnHOw_+~bQET67!+tix`2w3)W}q2aB|Y94a2dbGedvDNTJHxuXK%Qh zMrGRma3DaV94oH7PM^zqdh+?6o^buur-Uq$cdYMEVBc`%)I@AQH8E|P zF5h>4{4V2KI)0lO@15rBomo}A>cl{Ba#R%z>o*Y@&E|9w98twct}QoWX%Z>d7Ro78 z;Z$V4n))(Yyl%)@Cs$MdOm}x?^8PE@9ueLA>lSv}?c1RZzzwE*fddgHbG@7}p{r?(l4*dHaA^#GucuJoJBM56ZwCPW}BabRHT{cFQlj*-h&aZ}$9 zENRT}j%Y?+Raf?)7MzC`HX0FyH)1k%G4|Cf)sk@+oq68oONPSs)7kBP?S1xoGq13^ zvAz)Och!Z4*{mJtZJsXc=t!s4fzL^0_Pf0nYJcOOCat%l*<$V@f4%Z{E3y4ZbiWdn zl~uE4mEYdKsPwj6jL8h!$oWcr&z4nwTP_wSpU2dB?_K}AXYF>X=Dx_5bFux5s(<|a zHikxTF3+sHNI=(#Ve3FabFZk!lRB!Zrk?PgEXZyUV z-kcsdgH(ik11nM`iKw1`Ba@( zIk39H{YyIQj`Qbc(^`Fz`vA&0 z3HRTsylA|76UM95(fbTPzrR0IsiX0Jem~ymKOB#~{(IBa$>(7`e(m$II)6pyYxu_W zZ*)BCH)cGmH6a?W-`L~bnopV7e9A=Yr*FiHx#;a^Y06u}DeZfkZ{Mu(rr((HrfL_B z*KbUGkUzK&)G@|IGbaZ#{mWQu#w52R8uWeTw;h*q?s=efy$bM*6F& z-Z-xqu@IBzHm9NzC3 zeTMDz`@?UqE;AgjX8kek^H+nQxy4EC4^}L_UX&)?r$+3Vl4AD{CEK1v+TRT8Yu&F| z<3p_<>B#s{rN!2tQhfah<2`$4-M?x37v8tJ`=a-6MmF|LuV0}(({gB!bo$U9A(tlY z2TJkvIJ8Gre(!@ie|1v+=>1z5Pmj_)wm!}Mk9|JP7j(QjB&qnypmpC&{_3FK9*mm% z@rr-HAKZ`A@lJUEA4#vQT`YfR)^i+Dtoo|!jzlPLAHr=9@4M~q_0eRvv))E|wMLw$G}*&ga6&`5Qv`$e_C+o893g|vu{knjwx z28cOCd+CEq1(n`zzbfC-k8eNKZ7_SFk??d}D3rZpLLw0#kKr3N`=gsP|(x6>G>&CZa^i_(b6=gbV0#=Rkm6S z3H2(etJQKya{$bOb+8^r;XcZ{9WEfe4Q}kZN8U@`&vrd5ALY5L>puAa&z)WSH!N0yW$o)W}2IDldj_);I_F3x+!J1#%HO0=i)l^oTF= zb}^wN;V6-H4{@`FuZxU3%l#ZNM~j>Bj}f28?-jow#B1^-wvioZ;pkAIxF z0Drl-5PyXj!|xLx!e1#a!tbZ_x*yFsybCdX7@>QN^)3VKQ4x9_;!3b;- zz0PaIkBZmv&ldyE8$2%%-@(679OrzO=a~2&{)fc(@h=iT!2b)e(Rq{SR&l2D7SD^t z5AiP%Z{vShyo3J{@gw|?in8-#p4&vl`3cXDiJ#(c7eB+lRBUiA6+b6*nfL|%<>Ht4 zSBPKXUnzc#zeB8ce#7%Baia5Eo>zuGW;{>m*YFJd3H}q_h5v#766)%<)%rfX1OEvB z1iRsKYOo7_M)+UhJ@{|FT!>#Z&v6V6SkhmECMm5u5ptIFV z$fTT**UD?;mGUZiId6+{vFwqHWVbv*E|iitTS<2vd>lRr@4}^gBS8zN!wfhGGV&0a zm9xmvArF(Y<)MU@$>U|eTq*nH3b|Y!$D1SNv2v+gB75aA@@RP!Z}M`1EXXeD%K5TW z&f|@c(_~YQ%d6!Ta)-Q(Hzj$p9Fh%LmnX?VxmwobiLxpOWJRu$WqE?KA<09i!{?Le z4895X!nffmsMGFCNHu|_D8UxwMKA~41y~Qrz-{PiE9r9ba5-1bA(WOgWxG6>(Dm>Y z;=c;t5YJYI$N8~Ea9psnz?_+NzG@Kv}Y zxsdp;5&9N93D3ZD@I1T%x1*IkZ~$NLgt>4pUw8oa!lSSc9)~C3Nq7!kfEUFyYVZ=F zm*Ew7RUF8h*F=VK@&@vE;JffW_yN2LZ@~}YZTK<#0{#I10UyAh;s2nMGUh`sEP-?3 zJQ#s3a4j_98G7U$$kB>9FcHLK+T+c9;n{n4?x8 zI2=|&Kb!z%7=S9A2sJnf>To)2fHUDN*aT<8`EVh81U?E^!PRgLjH~Za_c?GlJPU8a zTktldh@TEK;2_AuJhdW17ZgFl5pW!AhI8N&_%K`sSE@P7+)cs^I0!mnK2%^MoB<=S z1ullagujAMz-#(4=jeG;TTvBE8uu2!D<+UHE;@Sgfn0(TnyVm zsGb1_(r_@$g2NyObKr0|0v5xOa1l}KK3QcAZyc*eGOw@B2@OBQCVk5Bzt6# z-Af^3h>`7^-tYactM7e1=UmtQ$MbuB=lsrn&i&k=*t4g8J=8So7G}xWN*w5cs^=~s zheiiQdt20G>0|BT&3@f$b%bp@Utg=YP7+1jw#ZYv_UOag+8Qo`jPBXySykfN%Ogqs zdp8DUm@x3<{rI-N9NbLA_iaMf6kQKSNpl(0zbZj&TqLet?m6sbwkJ|c5vi-ryos}y zjJF51f*7G4Lf(;d&+(S*3>}M-Q3riB;j`3|v!oZVQ)(Q9ZR5@CrrWP?N(Le?D3B(@ z7|@o62F48x#Ip%R_{9|4kz`x%&WpH}Q=NQPMPb@a*^7MPD_L{g< zTW&C|`LOl^zq&hq|l zDh4UL^s)g}(o24ql4)2ssNM+9J3np9_Y=wlN$HnUsS#<^h^tXn+ziWCIQo@nj!$*Y zbVP!xytxOwF%g8HDfCDhMI=q*#S1R(Kdzr?y6UHe)_ zW7D@;76oqgEX2~YXG>4po2y(ma$G;Xv;qlCm@eF zL?c{A#jE{yoNRgL0M9`$=e4Q$=h*lkoR(K2kZLywmkAHMw>GOomhyb^cwXS&b|1NE zLPxQz2Z8MacpV!eO&jxG2}0>|=o~CD$GFdRdfdu&BA9W9ap&eX?p@F5qFvH&1u>lHwYHG zn4LvKW*z7LkRd;@iadZxKkP+ZI*I@#fM4ebPYG;heo)y*{5vEG$M z=prFO;gd9u?&uoPar2_g!Q;`RPl)XgxYz7=?gJ#=BZmbxJrJ8~RwpI3KpLoj^7=6k ztlAapmPq~v&TXkXA*~e9IQJHybOcNzkM7(P{}C$RGx`)!9;_0!zfFglXrh<%OB%C!a?ad$PCOYeFd+VSK7f3s{4(o}IaA6DZVq{q+M zb-->_FLb+o)G=(9`TH-oWH73B1h?Oi@mlQOPfy1oV3omHQ5L$**0kxMHrGV5BgTIR z9}!pTCP@AfoEM(nIZKD;BN^fhDuQ{U8=DL1)B0-9Lc_}^kg&wdtE12B$KPy$y=5CqrJU;TuwKA}D^@L;Dy-gG^s z1rq+dx%DTYBUYWB`i4%kE~kSDwN6 z@iRv?!eB>M1*<OwX<- zGK#|$VkuKY5$Se<$YmRkV73`NVi6Qf*5#``7b<+)hFN~oj_23OL(}$@oQfL+Mj=-2 z1pLV#Oy>RWh8a5B)WR_UP+Q03NK_RtH_S4$Qd~c*ioQ#eEl!lC^*ybOL9?Oa2Q){R zHR~&!yP;XXRYuWKJQ2P^k~YOa0kV6@{CHgJvl}2o7)6MuURVCx?D)Te;sGw~{in5?-4~^8i zmSPG^GC&GDV7S6@p}IIKdM)Urt^byN--fo`-xya*un2{bSqUB|p`JC|oBLlCMxQjTJtWJ*$@ z`BQpflyT%x)J8$s2GH1lHPQ!!lJQJ)Qd6P?*ncLymA=WwVaW^_xJcL3{uQ`vHzy>c z^kl@gbxbi09B8gO;&_2KxYMhz4=TYBubswcc2<(|$JCFBrB|qAR6xo1Mscke)e=NZ z9$RKiVdQkvyhiCay)k3pEQt`N@!-Dm4uv5J=AH|cN|~uo`n7L(*$j|X0WOl8MSMM^ z>Z$gEJNb?7i8#iO?TjCpZC-_BM>aHQ*I?6F&M1T)_BHi3HeF(A96F@gqx16HD>Z&p zj52*N%h*qG$ZUCte75zm&_1y z6yYfAWVPh{5FLAr2G({GJ|j2EBT39*k{h2 zoswBr=D9&wYN!|90V8Q{x>$1i_CrzFt%RX+s9DV0T!Q!R-;fgZ9tT~?af8u_M)oga z6}kyS%~0^Wq)Nvf=spa2HWKMn`sulyECc7mV&+le*bP5u%SZ?ClhezUuYnE&lSLt# zN@1FYFVFmu?b-NT)2H|gKX~Yw;l?&GLf%yDsSl)1ar!rm81`?Br`&V3vTfoNPsIgM zN;=tVhB!f9e16HjP)r}(Y%u@YC-;O@C7yc}A}EFE&M%@bzY%5DBO1G1{2$DBznuO$ z7eImZKcql@&qomZHzW!ID2P<79J=jUxtiIsrwZW33-V@(%U^PQw@7u(*kT+~e zGr-TJ=Tg7qLA+jN0RI%TW=amXB10yscs{y{3=T9g<%z@SU3ZQdbOL~L8CV3h2!a$Z zD;C=Ac3TlN zx#EeeQmCxbZg3s_n2m=*g6PNSBI}EDYIMJSr##2Go*`QP72W~GL*$HQ*}1}p47rRr z*Hf(O&*xUZI?n_=w>t>$(?(o?>RZDs>SfVGt#C>EuBC`aO{dG;Bm8JS&E5|l7#g<3SnYZ@L zYmrk&Z%Zy(vg!cQ*JfgZ?)?md>BLEes*$rcQa$M9*Fp8AC59dBk2UfJMYqpA{+YJ_ z0$m=n9u%SJIOj5BGKh_G0BVkOWRE%ZLRcdL!|?^icAxQ52l$O4^eE!b$ul)oV5jVG zG0#rb`F4fW+)*bT#Y)Tk>S6$)fymHCd{jTbibB zow#4tsh`d{_kKLVr7VB_^B3d&83!rY^h;~Z2PR?5VKqK?XYaccH|h0>+hGvr!q^Ie zvS?Yeo)K?TrhB2*mDQ*T>|mNwVN#s9WW!=(^?E1k$6d<8CXg-D*%^5&w>PY*8}3u_spe@^?&Z?TBzSV{hI_?c2AJuDHnrPv|f& z_Z2%Uff49Mv!2~tR}64i1S}E;f>*f#{X>dG=Sp}jylXawS2Oy!#A&fd53I#JF7l3W z=(eBMZS@ope_bsKw|OP_*Zt+e?&ezNkaAEuo6gTGe;iF<3RJ(T<^TLvl*ANam5dDV zYVR^LbD; zw=*=im#Gi`Sz6t=Csn|!6~wacg78RQJ<8IGsi!O9VfxNh!&Xz%%p>xe2PvO&zoUMK zP5#EOgLDo4sbG`XZ80XO9&-9CFfG?UfTs&2`+gwD0=re{803Y1BXTFP^J=uWsL9nm zpNy+z(n9@iTsQjxo(Jn`ojSD-NntM0bsSB(N=ZR^Youj-mw0r+Vw$O6F_oHc_p>&_ zJ=xDammj>@{2ca$Kj^qA`Ab9q(jsGl!xrnmq91p2GomXY{bpZ-WwP<)t3?rA-^_CI z0k_+>ATy>fB544W7=_Omd@5Yx&EM73wET3-8xu*DKYB1Fs3_c0WN~@?9$1V3wVqwB zPcM(wf7Gg1E74r=(EY$kOAoLdp_FaMU8#X_xZ}%LNm{8=(Jx`^QtmdK*cmXtpMq>y zC<@E9)eS;otVT|mHo;&e7G>fnAiZ_F&EMN9yb@qdUvY(0KCf>BX zDqb-Om~bkSmh9JtAI#ruoYv&mo_|`OzARR zdv?^9e3?JWemMF#(im8Lwa{mD7&~gp(~vVX@z;CoW}NZFAe7;n__$B*9#BKe7F)=K z88>+m*4(V*?Yj@%o5`edynbB7yWBL><_+I5OnR48=xCDYLZErJ6*HMp+x5VGK`-gc Y;?p#@fCabs_+y$o42RSq(^RMa1EL+$vj6}9 literal 4024 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 diff --git a/console-setup/cached_Uni2-Fixed16.psf.gz b/console-setup/cached_Uni2-Fixed16.psf.gz index 52c26d4e6dc09ed8053b89d4ae8bc437dbbd36b6..37eb6549a069e3ac743378f24abac3ea0d6f36d2 100644 GIT binary patch literal 4151 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/dev/null 2>/dev/null; then for i in /dev/vcs[0-9]*; do { : - setfont '/etc/console-setup/cached_Uni2-Fixed16.psf.gz' + setfont '/usr/share/consolefonts/Uni2-Fixed16.psf.gz' } < /dev/tty${i#/dev/vcs} > /dev/tty${i#/dev/vcs} done fi diff --git a/cron.d/e2scrub_all b/cron.d/e2scrub_all new file mode 100644 index 0000000..711b0b2 --- /dev/null +++ b/cron.d/e2scrub_all @@ -0,0 +1,2 @@ +30 3 * * 0 root test -e /run/systemd/system || SERVICE_MODE=1 /usr/lib/x86_64-linux-gnu/e2fsprogs/e2scrub_all_cron +10 3 * * * root test -e /run/systemd/system || SERVICE_MODE=1 /sbin/e2scrub_all -A -r diff --git a/cron.daily/mlocate b/cron.daily/mlocate index 331d063..bc69541 100755 --- a/cron.daily/mlocate +++ b/cron.daily/mlocate @@ -24,4 +24,4 @@ if [ -x /usr/bin/nocache ]; then NOCACHE="/usr/bin/nocache" fi -flock --nonblock /run/mlocate.daily.lock $NOCACHE $IONICE /usr/bin/updatedb.mlocate +flock --nonblock /run/mlocate.daily.lock $NOCACHE $IONICE nice /usr/bin/updatedb.mlocate diff --git a/crontab b/crontab index 95edd9b..c89cc0b 100644 --- a/crontab +++ b/crontab @@ -7,7 +7,14 @@ SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -# m h dom mon dow user command +# Example of job definition: +# .---------------- minute (0 - 59) +# | .------------- hour (0 - 23) +# | | .---------- day of month (1 - 31) +# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... +# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat +# | | | | | +# * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) diff --git a/default/grub b/default/grub index 52bcb31..54e73c9 100644 --- a/default/grub +++ b/default/grub @@ -4,6 +4,7 @@ # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 +GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="nomodeset" diff --git a/e2scrub.conf b/e2scrub.conf new file mode 100644 index 0000000..661fc13 --- /dev/null +++ b/e2scrub.conf @@ -0,0 +1,25 @@ +# e2scrub configuration file + +# Uncomment to enable automatic periodic runs of e2scrub_all +# (either via cron or via a systemd timer) +# periodic_e2scrub=1 + +# e-mail destination used by e2scrub_fail when problems are found with +# the file system. +# recipient=root + +# e-mail sender used by e2scrub_fail when problems are found with +# the file system. +# sender=e2scrub@host.domain.name + +# Snapshots will be created to run fsck; the snapshot will be of this size. +# snap_size_mb=256 + +# Set this to 1 to enable fstrim for everyone. +# fstrim=0 + +# Arguments passed into e2fsck. +# e2fsck_opts="-vtt" + +# Set this to 1 to have e2scrub_all scrub all LVs, not just the mounted ones. +# scrub_all=0 diff --git a/group b/group index 2aa6814..b2192e5 100644 --- a/group +++ b/group @@ -58,3 +58,5 @@ postfix:x:116: postdrop:x:117: dovecot:x:118: dovenull:x:119: +render:x:120: +tcpdump:x:121: diff --git a/group- b/group- index 0674f8f..7e862f4 100644 --- a/group- +++ b/group- @@ -49,7 +49,6 @@ messagebus:x:109: mlocate:x:110: uuidd:x:111: ssh:x:112: -nobody:x:999: systemd-coredump:x:998: mysql:x:113: ssl-cert:x:114: @@ -59,3 +58,4 @@ postfix:x:116: postdrop:x:117: dovecot:x:118: dovenull:x:119: +render:x:120: diff --git a/grub.d/10_linux b/grub.d/10_linux index f09a123..a98e2b0 100755 --- a/grub.d/10_linux +++ b/grub.d/10_linux @@ -61,12 +61,63 @@ case ${GRUB_DEVICE} in ;; esac +# Default to disabling partition uuid support to maintian compatibility with +# older kernels. +GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true} + +# get_dm_field_for_dev /dev/dm-0 uuid -> get the device mapper UUID for /dev/dm-0 +# get_dm_field_for_dev /dev/dm-1 name -> get the device mapper name for /dev/dm-1 +# etc +get_dm_field_for_dev () { + dmsetup info -c --noheadings -o $2 $1 2>/dev/null +} + +# Is $1 a multipath device? +is_multipath () { + local dmuuid dmtype + dmuuid="$(get_dm_field_for_dev $1 uuid)" + if [ $? -ne 0 ]; then + # Not a device mapper device -- or dmsetup not installed, and as + # multipath depends on kpartx which depends on dmsetup, if there is no + # dmsetup then there are not going to be any multipath devices. + return 1 + fi + # A device mapper "uuid" is always -. If is of the form + # part[0-9] then is the device the partition is on and we want to + # look at that instead. A multipath node always has of mpath. + dmtype="${dmuuid%%-*}" + if [ "${dmtype#part}" != "$dmtype" ]; then + dmuuid="${dmuuid#*-}" + dmtype="${dmuuid%%-*}" + fi + if [ "$dmtype" = "mpath" ]; then + return 0 + else + return 1 + fi +} + +if test -e "${GRUB_DEVICE}" && is_multipath "${GRUB_DEVICE}"; then + # If / is multipathed, there will be multiple paths to the partition, so + # using root=UUID= exposes the boot process to udev races. In addition + # GRUB_DEVICE in this case will be /dev/dm-0 or similar -- better to use a + # symlink that depends on the multipath name. + GRUB_DEVICE=/dev/mapper/"$(get_dm_field_for_dev $GRUB_DEVICE name)" + GRUB_DISABLE_LINUX_UUID=true +fi + # btrfs may reside on multiple devices. We cannot pass them as value of root= parameter # and mounting btrfs requires user space scanning, so force UUID in this case. -if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ - || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ +if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \ + || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ + && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \ + || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ + && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \ || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then LINUX_ROOT_DEVICE=${GRUB_DEVICE} +elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \ + || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then + LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID} else LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} fi @@ -79,6 +130,10 @@ case x"$GRUB_FS" in GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" fi;; xzfs) + # We have a more specialized ZFS handler, with multiple system in 10_linux_zfs. + if [ -e "`dirname $(readlink -f $0)`/10_linux_zfs" ]; then + exit 0 + fi rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`" LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}" @@ -226,6 +281,17 @@ EOF EOF fi fi + if test -n "${dtb}" ; then + if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then + message="$(gettext_printf "Loading device tree blob...")" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' +EOF + fi + sed "s/^/$submenu_indentation/" << EOF + devicetree ${rel_dirname}/${dtb} +EOF + fi fi sed "s/^/$submenu_indentation/" << EOF } @@ -266,7 +332,7 @@ EOF if [ "$vt_handoff" = 1 ]; then cat << 'EOF' if [ "${1}" = "keep" ]; then - set vt_handoff=vt.handoff=1 + set vt_handoff=vt.handoff=7 else set vt_handoff= fi @@ -327,7 +393,15 @@ while [ "x$list" != "x" ] ; do alt_version=`echo $version | sed -e "s,\.old$,,g"` linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" - initrd= + initrd_early= + for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \ + ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do + if test -e "${dirname}/${i}" ; then + initrd_early="${initrd_early} ${i}" + fi + done + + initrd_real= for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ "initrd-${version}" "initramfs-${version}.img" \ "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ @@ -337,7 +411,29 @@ while [ "x$list" != "x" ] ; do "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do if test -e "${dirname}/${i}" ; then - initrd="$i" + initrd_real="${i}" + break + fi + done + + initrd= + if test -n "${initrd_early}" || test -n "${initrd_real}"; then + initrd="${initrd_real}" + if test -n "${initrd_early}"; then + initrd="${initrd_early} ${initrd}" + fi + + initrd_display= + for i in ${initrd}; do + initrd_display="${initrd_display} ${dirname}/${i}" + done + gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 + fi + + dtb= + for i in "dtb-${version}" "dtb-${alt_version}" "dtb"; do + if test -e "${dirname}/${i}" ; then + dtb="$i" break fi done @@ -355,12 +451,16 @@ while [ "x$list" != "x" ] ; do initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"` fi - if test -n "${initrd}" ; then - gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 - elif test -z "${initramfs}" ; then + if test -z "${initramfs}" && test -z "${initrd_real}" ; then # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's # no initrd or builtin initramfs, it can't work here. - linux_root_device_thisversion=${GRUB_DEVICE} + if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \ + || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then + + linux_root_device_thisversion=${GRUB_DEVICE} + else + linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID} + fi fi if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then diff --git a/grub.d/10_linux_zfs b/grub.d/10_linux_zfs new file mode 100755 index 0000000..e995b23 --- /dev/null +++ b/grub.d/10_linux_zfs @@ -0,0 +1,997 @@ +#! /bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2019 Canonical Ltd. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix="/usr" +datarootdir="/usr/share" +ubuntu_recovery="1" +quiet_boot="1" +quick_boot="1" +gfxpayload_dynamic="1" +vt_handoff="1" + +. "${pkgdatadir}/grub-mkconfig_lib" + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +set -u + +## Skip early if zfs utils isn't installed (instead of failing on first zpool list) +if ! `which zfs >/dev/null 2>&1`; then + exit 0 +fi + +imported_pools="" +MNTDIR="$(mktemp -d ${TMPDIR:-/tmp}/zfsmnt.XXXXXX)" +ZFSTMP="$(mktemp -d ${TMPDIR:-/tmp}/zfstmp.XXXXXX)" + +RC=0 +on_exit() { + # Restore initial zpool import state + for pool in ${imported_pools}; do + zpool export "${pool}" + done + + mountpoint -q "${MNTDIR}" && umount "${MNTDIR}" || true + rmdir "${MNTDIR}" + rm -rf "${ZFSTMP}" + exit "${RC}" +} +trap on_exit EXIT INT QUIT ABRT PIPE TERM + +# List ONLINE and DEGRADED pools +import_pools() { + # We have to ignore zpool import output, as potentially multiple / will be available, + # and we need to autodetect all zpools this way with their real mountpoints. + local initial_pools="$(zpool list | awk '{if (NR>1) print $1}')" + local all_pools="" + local imported_pools="" + + zpool import -f -a -o cachefile=none -N 2>/dev/null + + all_pools="$(zpool list | awk '{if (NR>1) print $1}')" + for pool in ${all_pools}; do + if echo "${initial_pools}" | grep -wq "${pool}"; then + continue + fi + imported_pools="${imported_pools} ${pool}" + done + + echo "${imported_pools}" +} + +# List all the dataset with a root mountpoint +get_root_datasets() { + local pools="$(zpool list | awk '{if (NR>1) print $1}')" + + for p in ${pools}; do + local rel_pool_root=$(zpool get -H altroot ${p} | awk '{print $3}') + if [ "${rel_pool_root}" = "-" ]; then + rel_pool_root="/" + fi + + zfs list -H -o name,canmount,mountpoint -t filesystem | grep -E '^'"${p}"'(\s|/[[:print:]]*\s)(on|noauto)\s'"${rel_pool_root}"'$' | awk '{print $1}' + done +} + +# find if given datasets can be mounted for directory and return its path (snapshot or real path) +# $1 is our current dataset name +# $2 directory path we look for (cannot contains /) +# $3 is the temporary mount directory to use +# $4 is the optional snapshot name +# return path for directory (which can be a mountpoint) +validate_system_dataset() { + local dataset="$1" + local directory="$2" + local mntdir="$3" + local snapshot_name="$4" + + local mount_path="${mntdir}/${directory}" + + if zfs list "${dataset}" >/dev/null 2>&1; then + if ! mount -o noatime,zfsutil -t zfs "${dataset}" "${mount_path}"; then + grub_warn "Failed to find a valid directory '${directory}' for dataset '${dataset}@${snapshot_name}'. Ignoring" + return + fi + fi + + local candidate_path="${mount_path}" + if [ -n "${snapshot_name}" ]; then + candidate_path="${candidate_path}/.zfs/snapshot/${snapshot_name}" + if ! mountpoint -q "${mount_path}"; then + candidate_path="${candidate_path}/${directory}" + fi + fi + + if [ -n "$(ls ${candidate_path} 2>/dev/null)" ]; then + echo "${candidate_path}" + return + else + mountpoint -q "${mount_path}" && umount "${mount_path}" || true + fi +} + +# Detect system directory relevant to the other, trying to find the ones associated on the current dataset or snapshot/ +# System directory should be at most a direct child dataset of main datasets (no recursivity) +# We can fallback trying other zfs pools if no match has been found. +# $1 is our current dataset name (which can have @snapshot name) +# $2 directory path we look for (cannot contains /) +# $3 restrict_to_same_pool (true|false) force looking for dataset with the same basename in the current dataset pool only +# $4 is the temporary mount directory to use +# $5 is the optional etc directory (if not $2 is not etc itself) +# return path for directory (which can be a mountpoint) +get_system_directory() { + local dataset_path="$1" + local directory="$2" + local restrict_to_same_pool="$3" + local mntdir="$4" + local etc_dir="$5" + + if [ -z "${etc_dir}" ]; then + etc_dir="${mntdir}/etc" + fi + + local candidate_path="${mntdir}/${directory}" + + # 1. Look for /etc/fstab first (which will mount even on top of non empty $directory) + local directory_in_fstab="false" + if [ -f "${etc_dir}/fstab" ]; then + mount_args=$(awk '/^[^#].*[ \t]\/'"${directory}"'[ \t]/ {print "-t", $3, $1}' "${etc_dir}/fstab") + if [ -n "${mount_args}" ]; then + mount -o noatime ${mount_args} "${candidate_path}" + directory_in_fstab="true" + fi + fi + + # If directory isn't empty. Only count if coming from /etc/fstab. Will be + # handled below otherwise as we are interested in potential snapshots. + if [ "${directory_in_fstab}" = "true" -a -n "$(ls ${candidate_path} 2>/dev/null)" ]; then + echo "${candidate_path}" + return + fi + + # 2. Handle zfs case, which can be a snapshots. + + local base_dataset_path="${dataset_path}" + local snapshot_name="" + # For snapshots we extract the parent dataset + if echo "${dataset_path}" | grep -q '@'; then + base_dataset_path=$(echo "${dataset_path}" | cut -d '@' -f1) + snapshot_name=$(echo "${dataset_path}" | cut -d '@' -f2) + fi + base_dataset_name="${base_dataset_path##*/}" + base_pool="$(echo "${base_dataset_path}" | cut -d'/' -f1)" + + # 2.a) Look for child dataset included in base dataset, which needs to hold same snapshot if any + candidate_path=$(validate_system_dataset "${base_dataset_path}/${directory}" "${directory}" "${mntdir}" "${snapshot_name}") + if [ -n "${candidate_path}" ]; then + echo "${candidate_path}" + return + fi + + # 2.b) Look for current dataset (which is already mounted as /) + candidate_path="${mntdir}/${directory}" + if [ -n "${snapshot_name}" ]; then + candidate_path="${mntdir}/.zfs/snapshot/${snapshot_name}/${directory}" + fi + if [ -n "$(ls ${candidate_path} 2>/dev/null)" ]; then + echo "${candidate_path}" + return + fi + + # 2.c) Look for every datasets in every pool which isn't the current dataset which holds: + # - the same dataset name (last section) than our base_dataset_name + # - mountpoint=directory + # - canmount!=off + all_same_base_dataset_name="$(zfs list -H -t filesystem -o name,canmount | awk '/^[^ ]+\/'"${base_dataset_name}"'[ \t](on|noauto)/ {print $1}') " + + # order by local pool datasets first + current_pool_same_base_datasets="" + other_pools_same_base_datasets="" + root_pool=$(echo "${dataset_path%%/*}") + for d in ${all_same_base_dataset_name}; do + cur_dataset_pool=$(echo "${d%%/*}") + if echo "${cur_dataset_pool}" | grep -wq "${root_pool}" 2>/dev/null ; then + current_pool_same_base_datasets="${current_pool_same_base_datasets} ${d}" + else + other_pools_same_base_datasets="${other_pools_same_base_datasets} ${d}" + fi + done + ordered_same_base_datasets="${current_pool_same_base_datasets} ${other_pools_same_base_datasets}" + if [ "${restrict_to_same_pool}" = "true" ]; then + ordered_same_base_datasets="${current_pool_same_base_datasets}" + fi + + # now, loop over them + for d in ${ordered_same_base_datasets}; do + cur_dataset_pool=$(echo "${d%%/*}") + + rel_pool_root=$(zpool get -H altroot ${cur_dataset_pool} | awk '{print $3}') + if [ "${rel_pool_root}" = "-" ]; then + rel_pool_root="" + fi + + # check mountpoint match + candidate_dataset=$(zfs get -H mountpoint ${d} | grep -E "mountpoint\s${rel_pool_root}/${directory}\s" | awk '{print $1}') + if [ -z "${candidate_dataset}" ]; then + continue + fi + + candidate_path=$(validate_system_dataset "${candidate_dataset}" "${directory}" "${mntdir}" "${snapshot_name}") + if [ -n "${candidate_path}" ]; then + echo "${candidate_path}" + return + fi + done + + # 2.d) If we didn't find anything yet: check for persistent datasets corresponding to our mountpoint, with canmount=on without any snapshot associated: + # Note: we go over previous datasets as well, but this is ok, as we didn't include them before. + all_mountable_datasets="$(zfs list -t filesystem -o name,canmount | awk '/^[^ ]+[ \t]+on/ {print $1}')" + + # order by local pool datasets first + current_pool_datasets="" + other_pools_datasets="" + root_pool=$(echo "${dataset_path%%/*}") + for d in ${all_mountable_datasets}; do + cur_dataset_pool=$(echo "${d%%/*}") + if echo "${cur_dataset_pool}" | grep -wq "${root_pool}" 2>/dev/null ; then + current_pool_datasets="${current_pool_datasets} ${d}" + else + other_pools_datasets="${other_pools_datasets} ${d}" + fi + done + ordered_datasets="${current_pool_datasets} ${other_pools_datasets}" + if [ "${restrict_to_same_pool}" = "true" ]; then + ordered_datasets="${current_pool_datasets}" + fi + + for d in ${ordered_datasets}; do + cur_dataset_pool=$(echo "${d%%/*}") + + rel_pool_root=$(zpool get -H altroot ${cur_dataset_pool} | awk '{print $3}') + if [ "${rel_pool_root}" = "-" ]; then + rel_pool_root="" + fi + + # check mountpoint match + candidate_dataset=$(zfs get -H mountpoint ${d} | grep -E "mountpoint\s${rel_pool_root}/${directory}\s" | awk '{print $1}') + if [ -z "${candidate_dataset}" ]; then + continue + fi + + candidate_path=$(validate_system_dataset "${d}" "${directory}" "${mntdir}" "") + if [ -n "${candidate_path}" ]; then + echo "${candidate_path}" + return + fi + done + + grub_warn "Failed to find a valid directory '${directory}' for dataset '${dataset_path}'. Ignoring" + return +} + +# Return if secure boot is enabled on that system +is_secure_boot_enabled() { + if LANG=C mokutil --sb-state 2>/dev/null | grep -qi enabled; then + echo "true" + return + fi + echo "false" + return +} + + +# Given a filesystem or snapshot dataset, returns dataset|machine id|pretty name|last used +# $1 is dataset we want information from +# $2 is the temporary mount directory to use +get_dataset_info() { + local dataset="$1" + local mntdir="$2" + + local base_dataset="${dataset}" + local etc_dir="${mntdir}/etc" + local is_snapshot="false" + # For snapshot we extract the parent dataset + if echo "${dataset}" | grep -q '@'; then + base_dataset=$(echo "${dataset}" | cut -d '@' -f1) + is_snapshot="true" + fi + + mount -o noatime,zfsutil -t zfs "${base_dataset}" "${mntdir}" + + # read machine-id/os-release from /etc + etc_dir=$(get_system_directory "${dataset}" "etc" "true" "${mntdir}" "") + if [ -z "${etc_dir}" ]; then + grub_warn "Ignoring ${dataset}" + mountpoint -q "${mntdir}/etc" && umount "${mntdir}/etc" || true + umount "${mntdir}" + return + fi + + machine_id="" + if [ -f "${etc_dir}/machine-id" ]; then + machine_id=$(cat "${etc_dir}/machine-id") + fi + # We have to use a random temporary id if we don't have any machine-id file or if this one is empty + # (mostly the case of new installations before first boot). + # Let's use the dataset name directly for this. + # Consequence is that all datasets are then separated. + if [ -z "${machine_id}" ]; then + machine_id="${dataset}" + fi + pretty_name=$(. "${etc_dir}/os-release" && echo "${PRETTY_NAME}") + mountpoint -q "${mntdir}/etc" && umount "${mntdir}/etc" || true + + # read available kernels from /boot + boot_dir=$(get_system_directory "${dataset}" "boot" "false" "${mntdir}" "${etc_dir}") + if [ -z "${boot_dir}" ]; then + grub_warn "Ignoring ${dataset}" + mountpoint -q "${mntdir}/boot" && umount "${mntdir}/boot" || true + umount "${mntdir}" + return + fi + + machine="$(uname -m)" + case "${machine}" in + i?86) GENKERNEL_ARCH="x86" ;; + mips|mips64) GENKERNEL_ARCH="mips" ;; + mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;; + arm*) GENKERNEL_ARCH="arm" ;; + *) GENKERNEL_ARCH="${machine}" ;; + esac + + initrd_list="" + kernel_list="" + for linux in $(find "${boot_dir}" -maxdepth 1 -type f -regex '.*/\(vmlinuz\|vmlinux\|kernel\)-.*'|sort -V); do + if ! grub_file_is_not_garbage "${linux}" ; then + continue + fi + + # Filters entry if efi/non efi. + # Note that for now we allow kernel without .efi.signed as those are signed kernel + # on ubuntu, loaded by the shim. + case "${linux}" in + *.efi.signed) + if [ "$(is_secure_boot_enabled)" = "false" ]; then + continue + fi + ;; + esac + + linux_basename=$(basename "${linux}") + linux_dirname=$(dirname "${linux}") + version=$(echo "${linux_basename}" | sed -e "s,^[^0-9]*-,,g") + alt_version=$(echo "${version}" | sed -e "s,\.old$,,g") + + gettext_printf "Found linux image: %s in %s\n" "${linux_basename}" "${dataset}" >&2 + + initrd="" + for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ + "initrd-${version}" "initramfs-${version}.img" \ + "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ + "initrd-${alt_version}" "initramfs-${alt_version}.img" \ + "initramfs-genkernel-${version}" \ + "initramfs-genkernel-${alt_version}" \ + "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ + "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do + if test -e "${linux_dirname}/${i}" ; then + initrd="$i" + break + fi + done + + if test -z "${initrd}" ; then + grub_warn "Couldn't find any valid initrd for dataset ${dataset}." + continue + fi + + gettext_printf "Found initrd image: %s in %s\n" "${initrd}" "${dataset}" >&2 + + rel_linux_dirname=$(make_system_path_relative_to_its_root "${linux_dirname}") + + initrd_list="${rel_linux_dirname}/${initrd}|${initrd_list}" + kernel_list="${rel_linux_dirname}/${linux_basename}|${kernel_list}" + done + + initrd_list="${initrd_list%|}" + kernel_list="${kernel_list%|}" + + initrd_device=$(${grub_probe} --target=device "${boot_dir}") + + mountpoint -q "${mntdir}/boot" && umount "${mntdir}/boot" || true + + # for zsys snapshots: we want to know which kernel we successful last booted with + last_booted_kernel=$(zfs get -H com.ubuntu.zsys:last-booted-kernel "${dataset}" | awk '{print $3}') + + # snapshot: last_used is dataset creation time + if [ "${is_snapshot}" = "true" ]; then + last_used="$(zfs get -pH creation "${dataset}" | awk -F '\t' '{print $3}')" + # otherwise, last_used is manually marked at boot/shutdown on a root dataset for zsys + else + # if current system, take current time + if zfs mount | awk '/[ \t]+\/$/ {print $1}' | grep -q ${dataset}; then + last_used=$(date +%s) + else + last_used=$(zfs get -H com.ubuntu.zsys:last-used "${dataset}" | awk '{print $3}') + # case of non zsys, or zsys without annotation, take /etc/machine-id stat (as we mounted with noatime). + # However, as systems can be relatime, if system is current mounted one, set current time (case of clone + reboot + # within the same d). + if [ "${last_used}" = "-" ]; then + last_used=$(stat --printf="%X" "${mntdir}/etc/os-release") + if [ -f "${mntdir}/etc/machine-id" ]; then + last_used=$(stat --printf="%X" "${mntdir}/etc/machine-id") + fi + fi + fi + fi + + is_zsys=$(zfs get -H com.ubuntu.zsys:bootfs "${base_dataset}" | awk '{print $3}') + + if [ -n "${initrd_list}" -a -n "${kernel_list}" ]; then + echo "${dataset}\t${is_zsys}\t${machine_id}\t${pretty_name}\t${last_used}\t${initrd_device}\t${initrd_list}\t${kernel_list}\t${last_booted_kernel}" + else + grub_warn "didn't find any valid initrd or kernel." + fi + + umount "${mntdir}" || true +} + +# Scan available boot options and returns in a formatted list +# $1 is the temporary mount directory to use +bootlist() { + local mntdir="$1" + local boot_list="" + + for dataset in $(get_root_datasets); do + # get information from current root dataset + boot_list="${boot_list}$(get_dataset_info ${dataset} ${mntdir})\n" + + # get information from snapshots of this root dataset + for snapshot_dataset in $(zfs list -r -H -o name -t snapshot "${dataset}" | grep "${dataset}"@); do + boot_list="${boot_list}$(get_dataset_info ${snapshot_dataset} ${mntdir})\n" + done + done + echo "${boot_list}" +} + + +# Order machine ids by last_used from their main entry +get_machines_sorted() { + local bootlist="$1" + + local machineids="$(echo "${bootlist}" | awk '{print $3}' | sort -u)" + for machineid in ${machineids}; do + echo "${bootlist}" | awk 'BEGIN{FS="\t"} $1 !~ /.*@.*/ {print $5, $3}' | sort -nr | grep -E "[^^]\b${machineid}\b" | head -1 + done | sort -nr | awk '{print $2}' +} + +# Sort entries by last_used for a given machineid +sort_entries_for_machineid() { + local bootlist="$1" + local machineid="$2" + + tab="$(printf '\t')" + echo "${bootlist}" | grep -E "[^^]\b${machineid}\b" | sort -k5,5r -k1,1 -t "${tab}" +} + +# Return main entry index +get_main_entry() { + local entries="$1" + + echo "${entries}" | awk 'BEGIN{FS="\t"} $1 !~ /.*@.*/ {print}' | head -1 +} + +# Return specific field at index from entry +get_field_from_entry() { + local entry="$1" + local index="$2" + + echo "${entry}" | awk "BEGIN{FS=\"\t\"} {print \$$index}" +} + +# Get the main entry metadata +main_entry_meta() { + local main_entry="$1" + + initrd=$(get_field_from_entry "${main_entry}" 7 | cut -d'|' -f1) + kernel=$(get_field_from_entry "${main_entry}" 8 | cut -d'|' -f1) + + # Take first element (most recent entry) which is not a snapshot + echo "${main_entry}" | awk "BEGIN{ FS=\"\t\"; OFS=\"\t\"} {print \$3, \$2, \"main\", \$4, \$1, \$6, \"$initrd\", \"$kernel\"}" +} + +# Get advanced entries metadata +advanced_entries_meta() { + local main_entry="$1" + + last_used_kernel="$(get_field_from_entry "${main_entry}" 9 )" + + # We must align initrds with kernels. + # Adds initrds to the stack then pop them 1 by 1 as we process the kernels + set -- $(get_field_from_entry "${main_entry}" 7 | tr "|" " ") + for kernel in $(get_field_from_entry "${main_entry}" 8 | tr "|" " "); do + # get initrd and pop to the next one + initrd="$1"; shift + + was_last_used_kernel="false" + kernel_basename=$(basename "${kernel}") + if [ "${kernel_basename}" = "${last_used_kernel}" ]; then + was_last_used_kernel="true" + fi + + echo "${main_entry}" | awk "BEGIN{ FS=\"\t\"; OFS=\"\t\"} {print \$3, \$2, \"advanced\", \$4, \$1, \$6, \"$initrd\", \"$kernel\", \"$was_last_used_kernel\"}" + done +} + +# Get history metadata +history_entries_meta() { + local entries="$1" + local main_dataset_name="$2" + local main_dataset_releasename="$3" + + if [ -z "${entries}" ]; then + return + fi + + # Traverse snapshots and clones + echo "${entries}" | while read entry; do + name="" + # Compute snapshot/filesystem dataset name + snap_dataset_name="$(get_field_from_entry "${entry}" 1)" + + snapname="${snap_dataset_name##*@}" + # If, this is a clone, take what is after main_dataset_name + if [ "${snapname}" = "${snap_dataset_name}" ]; then + snapname="${snap_dataset_name##${main_dataset_name}_}" + + # Handle manual user clone (not prefixed by "main_dataset_name") + snapname="${snapname##*/}" + fi + + # We keep the snapname only if it is not only a zsys auto snapshot + if echo "${snapname}" | grep -q "^autozsys_"; then + snapname="" + fi + + # We store the release only if it different from main dataset release (snapshot before a release upgrade) + releasename=$(get_field_from_entry "${entry}" 4) + if [ "${releasename}" = "${main_dataset_releasename}" ]; then + releasename="" + fi + + # Snapshot date + foo="$(get_field_from_entry "${entry}" 5)" + snapdate="$(date -d @$(get_field_from_entry "${entry}" 5) "+%x @ %H:%M")" + + # For snapshots/clones the name can have the following formats: + # : autozsys, same release + # on : autozsys, different release + # on : Manual snapshot, same release + # , on : Manual snapshot, different release + if [ "${snapname}" = "" -a "${releasename}" = "" ]; then + name="${snapdate}" + elif [ "${snapname}" = "" -a "${releasename}" != "" ]; then + name=$(gettext_printf "%s on %s" "${releasename}" "${snapdate}") + elif [ "${snapname}" != "" -a "${releasename}" = "" ]; then + name=$(gettext_printf "%s on %s" "${snapname}" "${snapdate}") + else # snapname != "" && releasename != "" + name=$(gettext_printf "%s, %s on %s" "${snapname}" "${releasename}" "${snapdate}") + fi + + # Choose kernel and initrd if the snapshot was booted successfully on a specific kernel before + # Take latest by default if no match + initrd=$(get_field_from_entry "${entry}" 7 | cut -d'|' -f1) + kernel=$(get_field_from_entry "${entry}" 8 | cut -d'|' -f1) + last_used_kernel="$(get_field_from_entry "${entry}" 9)" + + # We must align initrds with kernels. + # Adds initrds to the stack then pop them 1 by 1 as we process the kernels + set -- $(get_field_from_entry "${entry}" 7 | tr "|" " ") + for k in $(get_field_from_entry "${entry}" 8|tr "|" " "); do + # get initrd and pop to the next one + candidate_initrd="$1"; shift + + kernel_basename=$(basename "${k}") + if [ "${kernel_basename}" = "${last_used_kernel}" ]; then + kernel="${k}" + initrd="${candidate_initrd}" + break + fi + done + + echo "${entry}" | awk "BEGIN{ FS=\"\t\"; OFS=\"\t\"} {print \$3, \$2, \"history\", \"$name\", \$1, \$6, \"$initrd\", \"$kernel\"}" + done +} + +# Generate metadata from a BOOTLIST that will subsequently used to generate +# the final grub menu entries +generate_grub_menu_metadata() { + local bootlist="$1" + + # Sort machineids by last_used from their main entry + for machineid in $(get_machines_sorted "${bootlist}"); do + entries="$(sort_entries_for_machineid "${bootlist}" ${machineid})" + main_entry="$(get_main_entry "${entries}")" + + if [ -z "$main_entry" ]; then + continue + fi + + main_entry_meta "${main_entry}" + advanced_entries_meta "${main_entry}" + + main_dataset_name="$(get_field_from_entry "${main_entry}" 1)" + main_dataset_releasename="$(get_field_from_entry "${main_entry}" 4)" + # grep -v errcode != 0 if there is no match. || true to not fail with -e + other_entries="$(echo "${entries}" | grep -v "${main_entry}" || true)" + history_entries_meta "${other_entries}" "${main_dataset_name}" "${main_dataset_releasename}" + done +} + +# Print the configuration part common to all sections +# Note: +# If 10_linux runs these part will be defined twice in grub configuration +print_menu_prologue() { + cat << 'EOF' +function gfxmode { + set gfxpayload="${1}" +EOF + if [ "${vt_handoff}" = 1 ]; then + cat << 'EOF' + if [ "${1}" = "keep" ]; then + set vt_handoff=vt.handoff=1 + else + set vt_handoff= + fi +EOF + fi + cat << EOF +} +EOF + + # Use ELILO's generic "efifb" when it's known to be available. + # FIXME: We need an interface to select vesafb in case efifb can't be used. + GRUB_GFXPAYLOAD_LINUX="${GRUB_GFXPAYLOAD_LINUX:-}" + if [ "${GRUB_GFXPAYLOAD_LINUX}" != "" ] || [ "${gfxpayload_dynamic}" = 0 ]; then + echo "set linux_gfx_mode=${GRUB_GFXPAYLOAD_LINUX}" + else + cat << EOF +if [ "\${recordfail}" != 1 ]; then + if [ -e \${prefix}/gfxblacklist.txt ]; then + if hwmatch \${prefix}/gfxblacklist.txt 3; then + if [ \${match} = 0 ]; then + set linux_gfx_mode=keep + else + set linux_gfx_mode=text + fi + else + set linux_gfx_mode=text + fi + else + set linux_gfx_mode=keep + fi +else + set linux_gfx_mode=text +fi +EOF + fi + cat << EOF +export linux_gfx_mode +EOF +} + +# Cache for prepare_grub_to_access_device call +# $1: boot_device +prepare_grub_to_access_device_cached() { + local boot_device="$1" + + local boot_device_idx=$(echo ${boot_device} | tr '/' '_') + + cache_file="${ZFSTMP}/$(echo boot_device${boot_device_idx})" + if [ ! -f "${cache_file}" ]; then + set +u + echo "$(prepare_grub_to_access_device ${boot_device})" > "${cache_file}" + set -u + fi + + cat "${cache_file}" +} + + +# Print a grub menu entry +zfs_linux_entry () { + submenu_level="$1" + title="$2" + type="$3" + dataset="$4" + boot_device="$5" + initrd="$6" + kernel="$7" + kernel_additional_args="${8:-}" + + kernel_version=$(basename "${kernel}" | sed -e "s,^[^0-9]*-,,g") + submenu_indentation="$(printf %${submenu_level}s | tr " " "${grub_tab}")" + + echo "menuentry '$(echo "${title}" | grub_quote)' ${CLASS} \${menuentry_id_option} 'gnulinux-${dataset}-${kernel_version}' {" | sed "s/^/${submenu_indentation}/" + + if [ "${quick_boot}" = 1 ]; then + echo " recordfail" | sed "s/^/${submenu_indentation}/" + fi + + # Use ELILO's generic "efifb" when it's known to be available. + # FIXME: We need an interface to select vesafb in case efifb can't be used. + if [ "${GRUB_GFXPAYLOAD_LINUX}" = "" ]; then + echo " load_video" | sed "s/^/${submenu_indentation}/" + else + if [ "${GRUB_GFXPAYLOAD_LINUX}" != xtext ]; then + echo " load_video" | sed "s/^/${submenu_indentation}/" + fi + fi + + if ([ "${ubuntu_recovery}" = 0 ] || [ "${type}" != "recovery" ]) && \ + ([ "${GRUB_GFXPAYLOAD_LINUX}" != "" ] || [ "${gfxpayload_dynamic}" = 1 ]); then + echo " gfxmode \${linux_gfx_mode}" | sed "s/^/${submenu_indentation}/" + fi + + echo " insmod gzio" | sed "s/^/${submenu_indentation}/" + echo " if [ \"\${grub_platform}\" = xen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/${submenu_indentation}/" + + echo "$(prepare_grub_to_access_device_cached ${boot_device} | grub_add_tab | sed "s/^/${submenu_indentation}/")" + + if [ "${quiet_boot}" = 0 ] || [ "${type}" != simple ]; then + message="$(gettext_printf "Loading Linux %s ..." ${kernel_version})" + sed "s/^/${submenu_indentation}/" << EOF + echo '$(echo "$message" | grub_quote)' +EOF + fi + + linux_default_args="${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + if [ ${type} = "recovery" ]; then + linux_default_args="${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" + fi + + sed "s/^/${submenu_indentation}/" << EOF + linux ${kernel} root=ZFS=${dataset} ro ${linux_default_args} ${kernel_additional_args} +EOF + + if [ "${quiet_boot}" = 0 ] || [ "${type}" != simple ]; then + message="$(gettext_printf "Loading initial ramdisk ...")" + sed "s/^/${submenu_indentation}/" << EOF + echo '$(echo "$message" | grub_quote)' +EOF + fi + sed "s/^/${submenu_indentation}/" << EOF + initrd ${initrd} +EOF + + echo "}" | sed "s/^/${submenu_indentation}/" +} + +# Generate a GRUB Menu from menu meta data +# $1 menu metadata +generate_grub_menu() { + local menu_metadata="$1" + local last_section="" + local main_dataset_name="" + local main_dataset="" + local have_zsys="" + + if [ -z "${menu_metadata}" ]; then + return + fi + + CLASS="--class gnu-linux --class gnu --class os" + + if [ "${GRUB_DISTRIBUTOR}" = "" ] ; then + OS=GNU/Linux + else + case ${GRUB_DISTRIBUTOR} in + Ubuntu|Kubuntu) + OS="${GRUB_DISTRIBUTOR}" + ;; + *) + OS="${GRUB_DISTRIBUTOR} GNU/Linux" + ;; + esac + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1 | LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + fi + + if [ -x /lib/recovery-mode/recovery-menu ]; then + GRUB_CMDLINE_LINUX_RECOVERY=recovery + else + GRUB_CMDLINE_LINUX_RECOVERY=single + fi + if [ "${ubuntu_recovery}" = 1 ]; then + GRUB_CMDLINE_LINUX_RECOVERY="${GRUB_CMDLINE_LINUX_RECOVERY} nomodeset" + fi + + if [ "${vt_handoff}" = 1 ]; then + for word in ${GRUB_CMDLINE_LINUX_DEFAULT}; do + if [ "${word}" = splash ]; then + GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT} \${vt_handoff}" + fi + done + fi + + print_menu_prologue + + # IFS is set to TAB (ASCII 0x09) + echo "${menu_metadata}" | + { + at_least_one_entry=0 + have_zsys="$(which zsys || true)" + while IFS="$(printf '\t')" read -r machineid iszsys section name dataset device initrd kernel opt; do + + # Disable history for non zsys system or if systems is a zsys one and zsys isn't installed. + # In pure zfs systems, we identified multiple issues due to the mount generator + # in upstream zfs which makes it incompatible. Don't show history for now. + if [ "${section}" = "history" ]; then + if [ "${iszsys}" != "yes" ] || [ "${iszsys}" = "yes" -a -z "${have_zsys}" ]; then + continue + fi + fi + + if [ "${last_section}" != "${section}" -a -n "${last_section}" ]; then + # Close previous section wrapper + if [ "${last_section}" != "main" ]; then + echo "}" # Add grub_tabs + fi + fi + + case "${section}" in + main) + title="${name}" + main_dataset_name="${name}" + main_dataset="${dataset}" + + zfs_linux_entry 0 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" + at_least_one_entry=1 + ;; + advanced) + # normal and recovery entries for a given kernel + if [ "${last_section}" != "${section}" ]; then + echo "submenu '$(gettext_printf "Advanced options for %s" "${main_dataset_name}" | grub_quote)' \${menuentry_id_option} 'gnulinux-advanced-${main_dataset}' {" + fi + + last_booted_kernel_marker="" + if [ "${opt}" = "true" ]; then + last_booted_kernel_marker="* " + fi + + kernel_version=$(basename "${kernel}" | sed -e "s,^[^0-9]*-,,g") + title="$(gettext_printf "%s%s, with Linux %s" "${last_booted_kernel_marker}" "${name}" "${kernel_version}")" + zfs_linux_entry 1 "${title}" "advanced" "${dataset}" "${device}" "${initrd}" "${kernel}" + + GRUB_DISABLE_RECOVERY=${GRUB_DISABLE_RECOVERY:-} + if [ "${GRUB_DISABLE_RECOVERY}" != "true" ]; then + title="$(gettext_printf "%s%s, with Linux %s (%s)" "${last_booted_kernel_marker}" "${name}" "${kernel_version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" + zfs_linux_entry 1 "${title}" "recovery" "${dataset}" "${device}" "${initrd}" "${kernel}" + fi + at_least_one_entry=1 + ;; + history) + # Revert to a snapshot + # revert system, revert system and user data and associated recovery entries + if [ "${last_section}" != "${section}" ]; then + echo "submenu '$(gettext_printf "History for %s" "${main_dataset_name}" | grub_quote)' \${menuentry_id_option} 'gnulinux-history-${main_dataset}' {" + fi + + if [ "${iszsys}" = "yes" ]; then + title="$(gettext_printf "Revert to %s" "${name}" | grub_quote)" + else + title="$(gettext_printf "Boot on %s" "${name}" | grub_quote)" + fi + echo " submenu '${title}' \${menuentry_id_option} 'gnulinux-history-${dataset}' {" + + # Zsys only: let revert system without destroying snapshots + if [ "${iszsys}" = "yes" ]; then + title="$(gettext_printf "Revert system only")" + zfs_linux_entry 2 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" + title="$(gettext_printf "Revert system and user data")" + zfs_linux_entry 2 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" "zsys-revert=userdata" + + GRUB_DISABLE_RECOVERY="${GRUB_DISABLE_RECOVERY:-}" + if [ "${GRUB_DISABLE_RECOVERY}" != "true" ]; then + title="$(gettext_printf "Revert system only (%s)" "$(gettext "${GRUB_RECOVERY_TITLE}")")" + zfs_linux_entry 2 "${title}" "recovery" "${dataset}" "${device}" "${initrd}" "${kernel}" + title="$(gettext_printf "Revert system and user data (%s)" "$(gettext "${GRUB_RECOVERY_TITLE}")")" + zfs_linux_entry 2 "${title}" "recovery" "${dataset}" "${device}" "${initrd}" "${kernel}" "zsys-revert=userdata" + fi + # Non-zsys: boot temporarly on snapshots or rollback (destroying intermediate snapshots) + else + title="$(gettext_printf "One time boot")" + zfs_linux_entry 2 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" + + GRUB_DISABLE_RECOVERY="${GRUB_DISABLE_RECOVERY:-}" + if [ "${GRUB_DISABLE_RECOVERY}" != "true" ]; then + title="$(gettext_printf "One time boot (%s)" "$(gettext "${GRUB_RECOVERY_TITLE}")")" + zfs_linux_entry 2 "${title}" "recovery" "${dataset}" "${device}" "${initrd}" "${kernel}" + fi + + title="$(gettext_printf "Revert system (all intermediate snapshots will be destroyed)")" + zfs_linux_entry 2 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" "rollback=yes" + fi + + echo " }" + at_least_one_entry=1 + ;; + *) + grub_warn "unknown section: ${section}. Ignoring entry ${name} for ${dataset}" + ;; + esac + last_section="${section}" + done + + if [ "${at_least_one_entry}" -eq 1 ]; then + echo "}" + fi + } +} + +# don't add trailing newline of variable is empty +# $1: content to write +# $2: destination file +trailing_newline_if_not_empty() { + content="$1" + dest="$2" + + if [ -z "${content}" ]; then + touch "${dest}" + return + fi + echo "${content}" > "${dest}" +} + + +GRUB_LINUX_ZFS_TEST="${GRUB_LINUX_ZFS_TEST:-}" +case "${GRUB_LINUX_ZFS_TEST}" in + bootlist) + # Import all available pools on the system and return imported list + imported_pools=$(import_pools) + boot_list="$(bootlist ${MNTDIR})" + trailing_newline_if_not_empty "${boot_list}" "${GRUB_LINUX_ZFS_TEST_OUTPUT}" + break + ;; + metamenu) + boot_list="$(cat ${GRUB_LINUX_ZFS_TEST_INPUT})" + menu_metadata="$(generate_grub_menu_metadata "${boot_list}")" + trailing_newline_if_not_empty "${menu_metadata}" "${GRUB_LINUX_ZFS_TEST_OUTPUT}" + break + ;; + grubmenu) + menu_metadata="$(cat ${GRUB_LINUX_ZFS_TEST_INPUT})" + grub_menu=$(generate_grub_menu "${menu_metadata}") + trailing_newline_if_not_empty "${grub_menu}" "${GRUB_LINUX_ZFS_TEST_OUTPUT}" + break + ;; + *) + # Import all available pools on the system and return imported list + imported_pools=$(import_pools) + # Generate the complete list of boot entries + boot_list="$(bootlist ${MNTDIR})" + # Create boot menu meta data from the list of boot entries + menu_metadata="$(generate_grub_menu_metadata "${boot_list}")" + # Create boot menu meta data from the list of boot entries + grub_menu="$(generate_grub_menu "${menu_metadata}")" + if [ -n "${grub_menu}" ]; then + # We want the trailing newline as a marker will be added + echo "${grub_menu}" + fi + ;; +esac diff --git a/grub.d/20_linux_xen b/grub.d/20_linux_xen index fb3ed82..a032ecc 100755 --- a/grub.d/20_linux_xen +++ b/grub.d/20_linux_xen @@ -49,12 +49,22 @@ case ${GRUB_DEVICE} in ;; esac +# Default to disabling partition uuid support to maintian compatibility with +# older kernels. +GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true} + # btrfs may reside on multiple devices. We cannot pass them as value of root= parameter # and mounting btrfs requires user space scanning, so force UUID in this case. -if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ - || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ +if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \ + || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ + && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \ + || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ + && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \ || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then LINUX_ROOT_DEVICE=${GRUB_DEVICE} +elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \ + || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then + LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID} else LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} fi @@ -137,9 +147,13 @@ EOF if test -n "${initrd}" ; then # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" + initrd_path= + for i in ${initrd}; do + initrd_path="${initrd_path} ${rel_dirname}/${i}" + done sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - ${module_loader} --nounzip ${rel_dirname}/${initrd} + ${module_loader} --nounzip $(echo $initrd_path) EOF fi sed "s/^/$submenu_indentation/" << EOF @@ -214,13 +228,27 @@ while [ "x${xen_list}" != "x" ] ; do if [ "x$is_top_level" != xtrue ]; then echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" fi - if ($grub_file --is-x86-multiboot2 $current_xen); then - xen_loader="multiboot2" - module_loader="module2" + if ($grub_file --is-arm64-efi $current_xen); then + xen_loader="xen_hypervisor" + module_loader="xen_module" else - xen_loader="multiboot" - module_loader="module" + if ($grub_file --is-x86-multiboot2 $current_xen); then + xen_loader="multiboot2" + module_loader="module2" + else + xen_loader="multiboot" + module_loader="module" + fi fi + + initrd_early= + for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \ + ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do + if test -e "${xen_dirname}/${i}" ; then + initrd_early="${initrd_early} ${i}" + fi + done + while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` gettext_printf "Found linux image: %s\n" "$linux" >&2 @@ -231,7 +259,7 @@ while [ "x${xen_list}" != "x" ] ; do alt_version=`echo $version | sed -e "s,\.old$,,g"` linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" - initrd= + initrd_real= for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ "initrd-${version}" "initramfs-${version}.img" \ "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ @@ -241,15 +269,31 @@ while [ "x${xen_list}" != "x" ] ; do "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do if test -e "${dirname}/${i}" ; then - initrd="$i" + initrd_real="$i" break fi done - if test -n "${initrd}" ; then - gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 - else + + initrd= + if test -n "${initrd_early}" || test -n "${initrd_real}"; then + initrd="${initrd_early} ${initrd_real}" + + initrd_display= + for i in ${initrd}; do + initrd_display="${initrd_display} ${dirname}/${i}" + done + gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 + fi + + if test -z "${initrd_real}"; then # "UUID=" magic is parsed by initrds. Since there's no initrd, it can't work here. - linux_root_device_thisversion=${GRUB_DEVICE} + if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \ + || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then + + linux_root_device_thisversion=${GRUB_DEVICE} + else + linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID} + fi fi if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then diff --git a/gshadow b/gshadow index 7f9d058..693c6e3 100644 --- a/gshadow +++ b/gshadow @@ -58,3 +58,5 @@ postfix:!:: postdrop:!:: dovecot:!:: dovenull:!:: +render:!:: +tcpdump:!:: diff --git a/gshadow- b/gshadow- index 48fc6e9..e5283ef 100644 --- a/gshadow- +++ b/gshadow- @@ -49,7 +49,6 @@ messagebus:!:: mlocate:!:: uuidd:!:: ssh:!:: -nobody:!!:: systemd-coredump:!!:: mysql:!:: ssl-cert:!:: @@ -59,3 +58,4 @@ postfix:!:: postdrop:!:: dovecot:!:: dovenull:!:: +render:!:: diff --git a/init.d/cron b/init.d/cron index d09a505..c90dc1e 100755 --- a/init.d/cron +++ b/init.d/cron @@ -5,8 +5,8 @@ # Provides: cron # Required-Start: $remote_fs $syslog $time # Required-Stop: $remote_fs $syslog $time -# Should-Start: $network $named slapd autofs ypbind nscd nslcd winbind -# Should-Stop: $network $named slapd autofs ypbind nscd nslcd winbind +# Should-Start: $network $named slapd autofs ypbind nscd nslcd winbind sssd +# Should-Stop: $network $named slapd autofs ypbind nscd nslcd winbind sssd # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Regular background program processing daemon diff --git a/init.d/irqbalance b/init.d/irqbalance index 390c4c1..ba2b4ec 100755 --- a/init.d/irqbalance +++ b/init.d/irqbalance @@ -24,7 +24,6 @@ DOPTIONS="" # Defaults - don't touch, edit /etc/default/ OPTIONS="" -ONESHOT=0 test -x $DAEMON || exit 0 @@ -81,7 +80,11 @@ case "$1" in log_end_msg $? ;; status) - status_of_proc $DAEMON $NAME + if [ -z "${IRQBALANCE_ONESHOT+x}" ]; then + status_of_proc $DAEMON $NAME + else + echo "Irqbalance setup to run in oneshot mode." + fi ;; *) N=/etc/init.d/$SNAME diff --git a/init.d/udev b/init.d/udev index 6a3c9b3..a10a586 100755 --- a/init.d/udev +++ b/init.d/udev @@ -166,7 +166,8 @@ case "$1" in log_daemon_msg "Starting $DESC" "$NAME" if start-stop-daemon --start --name $NAME --user root --quiet \ - --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile; then + --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile \ + --notify-await; then # prevents udevd to be killed by sendsigs (see #791944) mkdir -p $OMITDIR ln -sf $PIDFILE $OMITDIR/$NAME @@ -226,7 +227,8 @@ case "$1" in log_daemon_msg "Starting $DESC" "$NAME" if start-stop-daemon --start --name $NAME --user root --quiet \ - --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile; then + --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile \ + --notify-await; then # prevents udevd to be killed by sendsigs (see #791944) mkdir -p $OMITDIR ln -sf $PIDFILE $OMITDIR/$NAME diff --git a/initramfs-tools/initramfs.conf b/initramfs-tools/initramfs.conf index 04b40bc..70ec614 100644 --- a/initramfs-tools/initramfs.conf +++ b/initramfs-tools/initramfs.conf @@ -50,7 +50,7 @@ COMPCACHE_SIZE="" # COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz ] # -COMPRESS=gzip +COMPRESS=lz4 # # NFS Section of the config. diff --git a/issue b/issue index 11e36ab..49190fa 100644 --- a/issue +++ b/issue @@ -1,2 +1,2 @@ -Ubuntu 19.04 \n \l +Ubuntu 19.10 \n \l diff --git a/issue.net b/issue.net index ca8c4de..45de8c2 100644 --- a/issue.net +++ b/issue.net @@ -1 +1 @@ -Ubuntu 19.04 +Ubuntu 19.10 diff --git a/kernel/postinst.d/initramfs-tools b/kernel/postinst.d/initramfs-tools index 0d463f4..5d02e57 100755 --- a/kernel/postinst.d/initramfs-tools +++ b/kernel/postinst.d/initramfs-tools @@ -32,4 +32,5 @@ if [ -n "$DEB_MAINT_PARAMS" ]; then fi # we're good - create initramfs. update runs do_bootloader -INITRAMFS_TOOLS_KERNEL_HOOK=1 update-initramfs -c -t -k "${version}" ${bootopt} >&2 +# shellcheck disable=SC2086 +INITRAMFS_TOOLS_KERNEL_HOOK=1 update-initramfs -c -k "${version}" ${bootopt} >&2 diff --git a/kernel/postrm.d/initramfs-tools b/kernel/postrm.d/initramfs-tools index d58fa61..471da86 100755 --- a/kernel/postrm.d/initramfs-tools +++ b/kernel/postrm.d/initramfs-tools @@ -32,4 +32,5 @@ if [ -n "$DEB_MAINT_PARAMS" ]; then fi # delete initramfs -INITRAMFS_TOOLS_KERNEL_HOOK=1 update-initramfs -d -t -k "${version}" ${bootopt} >&2 +# shellcheck disable=SC2086 +INITRAMFS_TOOLS_KERNEL_HOOK=1 update-initramfs -d -k "${version}" ${bootopt} >&2 diff --git a/logcheck/ignore.d.paranoid/mysql-server-8_0 b/logcheck/ignore.d.paranoid/mysql-server-8_0 new file mode 100644 index 0000000..00cc5c3 --- /dev/null +++ b/logcheck/ignore.d.paranoid/mysql-server-8_0 @@ -0,0 +1,9 @@ +/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$ +/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$ +/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$ +mysqld\[[0-9]+\]: $ +mysqld\[[0-9]+\]: Version: .* socket: '/var/run/mysqld/mysqld.sock' port: 3306$ +mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$ +mysqld_safe\[[0-9]+\]: started$ +usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$ +usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$ diff --git a/logcheck/ignore.d.server/mysql-server-8_0 b/logcheck/ignore.d.server/mysql-server-8_0 new file mode 100644 index 0000000..37f25cb --- /dev/null +++ b/logcheck/ignore.d.server/mysql-server-8_0 @@ -0,0 +1,32 @@ +/etc/init.d/mysql\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$ +/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$ +/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$ +/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$ +mysqld\[[0-9]+\]: ?$ +mysqld\[[0-9]+\]: .*InnoDB: Shutdown completed +mysqld\[[0-9]+\]: .*InnoDB: Started; +mysqld\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$ +mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Normal shutdown$ +mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: ready for connections\.$ +mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Shutdown complete$ +mysqld\[[0-9]+\]: /usr/sbin/mysqld: ready for connections\.$ +mysqld\[[0-9]+\]: .*/usr/sbin/mysqld: Shutdown Complete$ +mysqld\[[0-9]+\]: Version: .* socket +mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$ +mysqld_safe\[[0-9]+\]: ?$ +mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$ +mysqld_safe\[[0-9]+\]: ended$ +mysqld_safe\[[0-9]+\]: http://www.mysql.com$ +mysqld_safe\[[0-9]+\]: NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run$ +mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$ +mysqld_safe\[[0-9]+\]: Please report any problems with the /usr/bin/mysqlbug script!$ +mysqld_safe\[[0-9]+\]: See the manual for more instructions.$ +mysqld_safe\[[0-9]+\]: started$ +mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at https://order.mysql.com$ +mysqld_safe\[[0-9]+\]: The latest information about MySQL is available on the web at$ +mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$ +mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$ +mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root -h app109 password 'new-password'$ +mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$ +usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$ +usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$ diff --git a/logcheck/ignore.d.server/rsyslog b/logcheck/ignore.d.server/rsyslog index e5f9b3b..171f20e 100644 --- a/logcheck/ignore.d.server/rsyslog +++ b/logcheck/ignore.d.server/rsyslog @@ -3,4 +3,3 @@ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ rsyslogd: \[origin software="rsyslogd" swVersion="[0-9.]+" x-pid="[0-9]+" x-info="http://www.rsyslog.com"\] start$ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ rsyslogd: \[origin software="rsyslogd" swVersion="[0-9.]+" x-pid="[0-9]+" x-info="http://www.rsyslog.com"\] exiting on signal [0-9]+.$ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ rsyslogd: \[origin software="rsyslogd" swVersion="[0-9.]+" x-pid="[0-9]+" x-info="http://www.rsyslog.com"\] rsyslogd was HUPed$ -^\w{3} [ :0-9]{11} [._[:alnum:]-]+ systemd-tmpfiles\[[0-9]+\]: \[/usr/lib/tmpfiles.d/var.conf:[0-9]+\] Duplicate line for path "/var/log", ignoring\.$ diff --git a/logcheck/ignore.d.workstation/mysql-server-8_0 b/logcheck/ignore.d.workstation/mysql-server-8_0 new file mode 100644 index 0000000..37f25cb --- /dev/null +++ b/logcheck/ignore.d.workstation/mysql-server-8_0 @@ -0,0 +1,32 @@ +/etc/init.d/mysql\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$ +/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$ +/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$ +/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$ +mysqld\[[0-9]+\]: ?$ +mysqld\[[0-9]+\]: .*InnoDB: Shutdown completed +mysqld\[[0-9]+\]: .*InnoDB: Started; +mysqld\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$ +mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Normal shutdown$ +mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: ready for connections\.$ +mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Shutdown complete$ +mysqld\[[0-9]+\]: /usr/sbin/mysqld: ready for connections\.$ +mysqld\[[0-9]+\]: .*/usr/sbin/mysqld: Shutdown Complete$ +mysqld\[[0-9]+\]: Version: .* socket +mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$ +mysqld_safe\[[0-9]+\]: ?$ +mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$ +mysqld_safe\[[0-9]+\]: ended$ +mysqld_safe\[[0-9]+\]: http://www.mysql.com$ +mysqld_safe\[[0-9]+\]: NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run$ +mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$ +mysqld_safe\[[0-9]+\]: Please report any problems with the /usr/bin/mysqlbug script!$ +mysqld_safe\[[0-9]+\]: See the manual for more instructions.$ +mysqld_safe\[[0-9]+\]: started$ +mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at https://order.mysql.com$ +mysqld_safe\[[0-9]+\]: The latest information about MySQL is available on the web at$ +mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$ +mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$ +mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root -h app109 password 'new-password'$ +mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$ +usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$ +usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$ diff --git a/lsb-release b/lsb-release index 11f740b..d3bfa18 100644 --- a/lsb-release +++ b/lsb-release @@ -1,4 +1,4 @@ DISTRIB_ID=Ubuntu -DISTRIB_RELEASE=19.04 -DISTRIB_CODENAME=disco -DISTRIB_DESCRIPTION="Ubuntu 19.04" +DISTRIB_RELEASE=19.10 +DISTRIB_CODENAME=eoan +DISTRIB_DESCRIPTION="Ubuntu 19.10" diff --git a/mime.types b/mime.types index 3f31ff2..8e26dee 100644 --- a/mime.types +++ b/mime.types @@ -49,6 +49,7 @@ application/ecmascript es application/edi-consent application/edi-x12 application/edifact +application/epub+zip epub application/eshop application/font-sfnt otf ttf application/font-tdpfr pfr @@ -71,8 +72,9 @@ application/isup application/java-archive jar application/java-serialized-object ser application/java-vm class -application/javascript js +application/javascript js mjs application/json json +application/ld+json jsonld application/m3g m3g application/mac-binhex40 hqx application/mac-compactpro cpt @@ -129,6 +131,7 @@ application/smil+xml smi smil application/timestamp-query application/timestamp-reply application/vemmi +application/wasm wasm application/whoispp-query application/whoispp-response application/wita @@ -624,6 +627,13 @@ chemical/x-vmd vmd chemical/x-xtel xtel chemical/x-xyz xyz +font/collection ttc +font/otf ttf otf +font/sfnt ttf otf +font/ttf ttf otf +font/woff woff +font/woff2 woff2 + image/cgm image/g3fax image/gif gif diff --git a/mke2fs.conf b/mke2fs.conf index 01e35cf..d99dc70 100644 --- a/mke2fs.conf +++ b/mke2fs.conf @@ -15,12 +15,10 @@ inode_size = 256 } small = { - blocksize = 1024 inode_size = 128 inode_ratio = 4096 } floppy = { - blocksize = 1024 inode_size = 128 inode_ratio = 8192 } @@ -45,3 +43,6 @@ blocksize = 4096 inode_size = 128 } + +[options] + fname_encoding = utf8 diff --git a/mysql/mysql.conf.d/mysql.cnf b/mysql/mysql.conf.d/mysql.cnf new file mode 100644 index 0000000..dc4478e --- /dev/null +++ b/mysql/mysql.conf.d/mysql.cnf @@ -0,0 +1,6 @@ +# +# The MySQL database client configuration file +# +# Ref to https://dev.mysql.com/doc/refman/en/mysql-command-options.html + +[mysql] diff --git a/mysql/mysql.conf.d/mysqld.cnf b/mysql/mysql.conf.d/mysqld.cnf index b4aa9db..f5de296 100644 --- a/mysql/mysql.conf.d/mysqld.cnf +++ b/mysql/mysql.conf.d/mysqld.cnf @@ -1,10 +1,6 @@ # # The MySQL database server configuration file. # -# You can copy this to one of: -# - "/etc/mysql/my.cnf" to set global options, -# - "~/.my.cnf" to set user-specific options. -# # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. @@ -12,31 +8,23 @@ # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html -# This will be passed to all mysql clients -# It has been reported that passwords should be enclosed with ticks/quotes -# escpecially if they contain "#" chars... -# Remember to edit /etc/mysql/debian.cnf when changing the socket location. - # Here is entries for some specific programs # The following values assume you have at least 32M ram -[mysqld_safe] -socket = /var/run/mysqld/mysqld.sock -nice = 0 - [mysqld] # # * Basic Settings # user = mysql -pid-file = /var/run/mysqld/mysqld.pid -socket = /var/run/mysqld/mysqld.sock -port = 3306 -basedir = /usr -datadir = /var/lib/mysql -tmpdir = /tmp -lc-messages-dir = /usr/share/mysql -skip-external-locking +# pid-file = /var/run/mysqld/mysqld.pid +# socket = /var/run/mysqld/mysqld.sock +# port = 3306 +# datadir = /var/lib/mysql + + +# If MySQL is running as a replication slave, this should be +# changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir +# tmpdir = /tmp # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. @@ -45,61 +33,45 @@ bind-address = 127.0.0.1 # * Fine Tuning # key_buffer_size = 16M -max_allowed_packet = 16M -thread_stack = 192K -thread_cache_size = 8 +# max_allowed_packet = 64M +# thread_stack = 256K + +# thread_cache_size = -1 + # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover-options = BACKUP -#max_connections = 100 -#table_open_cache = 64 -#thread_concurrency = 10 -# -# * Query Cache Configuration -# -query_cache_limit = 1M -query_cache_size = 16M + +# max_connections = 151 + +# table_open_cache = 4000 + # # * Logging and Replication # # Both location gets rotated by the cronjob. +# +# Log all queries # Be aware that this log type is a performance killer. -# As of 5.1 you can enable the log at runtime! -#general_log_file = /var/log/mysql/mysql.log -#general_log = 1 +# general_log_file = /var/log/mysql/query.log +# general_log = 1 # # Error log - should be very few entries. # log_error = /var/log/mysql/error.log # # Here you can see queries with especially long duration -#slow_query_log = 1 -#slow_query_log_file = /var/log/mysql/mysql-slow.log -#long_query_time = 2 -#log-queries-not-using-indexes +# slow_query_log = 1 +# slow_query_log_file = /var/log/mysql/mysql-slow.log +# long_query_time = 2 +# log-queries-not-using-indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. -#server-id = 1 -#log_bin = /var/log/mysql/mysql-bin.log -expire_logs_days = 10 +# server-id = 1 +# log_bin = /var/log/mysql/mysql-bin.log +# binlog_expire_logs_seconds = 2592000 max_binlog_size = 100M -#binlog_do_db = include_database_name -#binlog_ignore_db = include_database_name -# -# * InnoDB -# -# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. -# Read the manual for more InnoDB related options. There are many! -# -# * Security Features -# -# Read the manual, too, if you want chroot! -# chroot = /var/lib/mysql/ -# -# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". -# -# ssl-ca=/etc/mysql/cacert.pem -# ssl-cert=/etc/mysql/server-cert.pem -# ssl-key=/etc/mysql/server-key.pem +# binlog_do_db = include_database_name +# binlog_ignore_db = include_database_name diff --git a/nanorc b/nanorc index 427801a..cbaa6a8 100644 --- a/nanorc +++ b/nanorc @@ -1,19 +1,15 @@ ## Sample initialization file for GNU nano. ## -## Please note that you must have configured nano with --enable-nanorc -## for this file to be read! Also note that this file should not be in -## DOS or Mac format, and that characters specially interpreted by the -## shell should not be escaped here. +## This file should not be in DOS or Mac format, and characters +## specially interpreted by the shell should not be escaped here. ## ## To make sure an option is disabled, use "unset